mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-20 11:51:06 +02:00
sys-fs/mdadm: Sync with Gentoo
It's from Gentoo commit fe2cde2ee3fd193de8f392232dcf86667a9172d0. Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
This commit is contained in:
parent
f3c9515c8a
commit
3938915204
@ -1,6 +1,2 @@
|
||||
DIST mdadm-4.2.tar.xz 453624 BLAKE2B de7c4318dc5479de41378233869ab84ca2cd0e8a42310157b1acb969e7152af61556fbbe6f17bf6af4dfaf5543e49b1c982d2baeedf1c39b000032f4db7f5502 SHA512 57897a2b7fb8b0b88bece50501099872bb45ddb076cfc323d563588096d2b66b1ecba3724534943f651ace2bfe591482570700616500dc3398552e4f9ff0c37d
|
||||
DIST mdadm-4.3.tar.xz 465820 BLAKE2B 3b6955339adb6c254a69d698e3b807838f8840e37f7f94280f4a1fbffb082ee694309f4b6f9adc8edfa2071fde324bf00ae0493d5b2e6c8d87796783dfa3ee1c SHA512 e44977f2f80d2471cb313803a60c92dafe8282ac06bbbfd41ae90ca493c64a3da94db924538788d045fd7f0667333912dabedb0b070f9abf5c0540b32e0fa08f
|
||||
DIST mdadm-4.4.tar.gz 619823 BLAKE2B d368681d94e31db2127a1114ad21b76647ee4b62f701705a93ca8482a58ec10d9cd58c5394bb346da0c58339f759fa6168441250a504931e43c0943b74ceef85 SHA512 08682b27f41a230f188d3b61e22e95ff8808b36c8fc2cba1dff443d39a72b35ba2eaf29ed64c7e5583c177fe6b71df983ec9a80a4128d8f07d58b7435d4700f6
|
||||
DIST mdadm_4.2~rc2-7.debian.tar.xz 89904 BLAKE2B dd04f2dd044d0bca85920eaf5c79a288d69c47a7ad7e36509a126c01ef63bd045d7e0530450650028de39d74ad852995ca080c3a73dbcb1cf1b3783118109f35 SHA512 3d36533d2713b663606919b2bfec18b15e18a6a0194e333e38e4a58f175da96af7b1fe16f0c36ee148e14492a4e0710b9fad6ac7856495b63c0176ebb7333be6
|
||||
DIST mdadm_4.3-1.debian.tar.xz 86972 BLAKE2B 52af9ddacc402d8c3318bac31b4cd5ac3045e564832546146ba0a18d6a43866ae2c21270ac15f48df98c4f76af0eeae41679ea9e0e265dad44914bd58f27d689 SHA512 1c5203523f0c7fe271d850ab4ad376a449e870f8f1549dc4460adede1f59a1a364e741562954297e7848bae19d1cfe273a31f1bfaf739dd37559a0666abd8517
|
||||
DIST mdadm_4.4-3.debian.tar.xz 88948 BLAKE2B 48d2af9477b420f1bbaffebbeaf2389038f8f58846264fcda5f25d72c64c5543a2cd73eb3fba4c7dc834810e3367f571628bdcc43989724f773fc3789514c765 SHA512 8be55fb40e21ad4026339e8e03df1c4889b66f36d4c41627dd60528dc424e5faa10cb20e8e3fbe737eb9af4705eed10bd4e7017353e773ac73cbeaaa3670d2ff
|
||||
|
@ -1,31 +0,0 @@
|
||||
https://bugs.gentoo.org/580188
|
||||
|
||||
From 5c97e465b33bf8fefb17da7f553a1c3812e508d5 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Frysinger <vapier@gentoo.org>
|
||||
Date: Tue, 19 Apr 2016 18:10:54 -0400
|
||||
Subject: [PATCH] include sys/sysmacros.h for major/minor/makedev prototypes
|
||||
|
||||
These funcs are defined in sys/sysmacros.h, so include it for them.
|
||||
It works today due to an implicit include by sys/types.h, but the
|
||||
various Linux C libraries are moving away from that.
|
||||
|
||||
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
||||
---
|
||||
mdadm.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/mdadm.h b/mdadm.h
|
||||
index d209488..b8767a7 100755
|
||||
--- a/mdadm.h
|
||||
+++ b/mdadm.h
|
||||
@@ -33,6 +33,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
|
||||
# endif
|
||||
#endif
|
||||
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdint.h>
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,36 +0,0 @@
|
||||
Fix collision with libudev symbols when statically linking.
|
||||
|
||||
https://bugs.gentoo.org/830485
|
||||
--- a/mdadm.h
|
||||
+++ b/mdadm.h
|
||||
@@ -1665,7 +1665,7 @@
|
||||
extern void udev_block(char *devnm);
|
||||
extern void udev_unblock(void);
|
||||
|
||||
-extern int in_initrd(void);
|
||||
+extern int mdadm_in_initrd(void);
|
||||
|
||||
struct cmap_hooks {
|
||||
void *cmap_handle; /* corosync lib related */
|
||||
--- a/mdmon.c
|
||||
+++ b/mdmon.c
|
||||
@@ -309,7 +309,7 @@
|
||||
{NULL, 0, NULL, 0}
|
||||
};
|
||||
|
||||
- if (in_initrd()) {
|
||||
+ if (mdadm_in_initrd()) {
|
||||
/*
|
||||
* set first char of argv[0] to @. This is used by
|
||||
* systemd to signal that the task was launched from
|
||||
--- a/util.c
|
||||
+++ b/util.c
|
||||
@@ -2219,7 +2219,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int in_initrd(void)
|
||||
+int mdadm_in_initrd(void)
|
||||
{
|
||||
/* This is based on similar function in systemd. */
|
||||
struct statfs s;
|
@ -1,36 +0,0 @@
|
||||
--- mdadm-4.2/systemd/SUSE-mdadm_env.sh 2021-12-30 11:43:35.000000000 -0800
|
||||
+++ mdadm-4.2/systemd/SUSE-mdadm_env.sh 2024-02-19 12:20:56.509632098 -0800
|
||||
@@ -6,6 +7,12 @@
|
||||
|
||||
MDADM_SCAN="yes"
|
||||
|
||||
+# Gentoo: source conf.d
|
||||
+mdadmd_CONFIG=/etc/conf.d/mdadm
|
||||
+if test -r $mdadmd_CONFIG; then
|
||||
+ . $mdadmd_CONFIG
|
||||
+fi
|
||||
+
|
||||
# Following adapted from /etc/init.d/mdadmd on openSUSE
|
||||
|
||||
mdadmd_CONFIG=/etc/sysconfig/mdadm
|
||||
@@ -42,7 +49,8 @@
|
||||
fi
|
||||
|
||||
mkdir -p /run/sysconfig
|
||||
-echo "MDADM_MONITOR_ARGS=$MDADM_RAIDDEVICES $MDADM_DELAY $MDADM_MAIL $MDADM_PROGRAM $MDADM_SCAN $MDADM_SEND_MAIL $MDADM_CONFIG" > /run/sysconfig/mdadm
|
||||
+# Gentoo: added $MDADM_OPTS to the end.
|
||||
+echo "MDADM_MONITOR_ARGS=$MDADM_RAIDDEVICES $MDADM_DELAY $MDADM_MAIL $MDADM_PROGRAM $MDADM_SCAN $MDADM_SEND_MAIL $MDADM_CONFIG $MDADM_OPTS" > /run/sysconfig/mdadm
|
||||
if [ -n "$MDADM_CHECK_DURATION" ]; then
|
||||
echo "MDADM_CHECK_DURATION=$MDADM_CHECK_DURATION" >> /run/sysconfig/mdadm
|
||||
fi
|
||||
--- mdadm-4.2.orig/Makefile 2024-02-19 12:27:19.512400849 -0800
|
||||
+++ mdadm-4.2/Makefile 2024-02-19 12:27:39.517338433 -0800
|
||||
@@ -298,7 +298,7 @@
|
||||
$(INSTALL) -D -m 755 .install.tmp.3 $(DESTDIR)$(SYSTEMD_DIR)-shutdown/$$file ; \
|
||||
rm -f .install.tmp.3; \
|
||||
done
|
||||
- if [ -f /etc/SuSE-release -o -n "$(SUSE)" ] ;then $(INSTALL) -D -m 755 systemd/SUSE-mdadm_env.sh $(DESTDIR)$(LIB_DIR)/mdadm_env.sh ;fi
|
||||
+ $(INSTALL) -D -m 755 systemd/SUSE-mdadm_env.sh $(DESTDIR)$(LIB_DIR)/mdadm_env.sh
|
||||
|
||||
install-bin: mdadm mdmon
|
||||
$(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm
|
@ -1,53 +0,0 @@
|
||||
https://bugs.gentoo.org/931972
|
||||
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=027b2d37a8cd56973d117107acc25a64cfe0a92f
|
||||
|
||||
From b7028334f2dfbb0b11cf1fa34ecb89d5287c367b Mon Sep 17 00:00:00 2001
|
||||
From: Gwendal Grignou <gwendal@chromium.org>
|
||||
Date: Wed, 15 May 2024 14:30:59 -0700
|
||||
Subject: [PATCH] Makefile: Do not call gcc directly
|
||||
|
||||
When mdadm is compiled with clang, direct gcc will fail.
|
||||
Make sure to use $(CC) variable instead.
|
||||
|
||||
Note that Clang does not support --help=warnings --
|
||||
-print-diagnostic-options should be used instead.
|
||||
So with Clang, the compilation will go through, but the
|
||||
extra warning flags will never be added.
|
||||
|
||||
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
|
||||
---
|
||||
Makefile | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index adac7905..ec8c4226 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -56,21 +56,21 @@ CWFLAGS += -Wp -O3
|
||||
endif
|
||||
|
||||
ifeq ($(origin FALLTHROUGH), undefined)
|
||||
- FALLTHROUGH := $(shell gcc -Q --help=warnings 2>&1 | grep "implicit-fallthrough" | wc -l)
|
||||
+ FALLTHROUGH := $(shell $(CC) $(CFLAGS) -Q --help=warnings 2>&1 | grep "implicit-fallthrough" | wc -l)
|
||||
ifneq "$(FALLTHROUGH)" "0"
|
||||
CWFLAGS += -Wimplicit-fallthrough=0
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(origin FORMATOVERFLOW), undefined)
|
||||
- FORMATOVERFLOW := $(shell gcc -Q --help=warnings 2>&1 | grep "format-overflow" | wc -l)
|
||||
+ FORMATOVERFLOW := $(shell $(CC) $(CFLAGS) -Q --help=warnings 2>&1 | grep "format-overflow" | wc -l)
|
||||
ifneq "$(FORMATOVERFLOW)" "0"
|
||||
CWFLAGS += -Wformat-overflow
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(origin STRINGOPOVERFLOW), undefined)
|
||||
- STRINGOPOVERFLOW := $(shell gcc -Q --help=warnings 2>&1 | grep "stringop-overflow" | wc -l)
|
||||
+ STRINGOPOVERFLOW := $(shell $(CC) $(CFLAGS) -Q --help=warnings 2>&1 | grep "stringop-overflow" | wc -l)
|
||||
ifneq "$(STRINGOPOVERFLOW)" "0"
|
||||
CWFLAGS += -Wstringop-overflow
|
||||
endif
|
||||
--
|
||||
2.45.0.215.g3402c0e53f-goog
|
||||
|
@ -1,45 +0,0 @@
|
||||
Fix collision with libudev symbols when statically linking.
|
||||
|
||||
https://bugs.gentoo.org/830485
|
||||
--- a/mdadm.h
|
||||
+++ b/mdadm.h
|
||||
@@ -1665,7 +1665,7 @@
|
||||
extern void udev_block(char *devnm);
|
||||
extern void udev_unblock(void);
|
||||
|
||||
-extern int in_initrd(void);
|
||||
+extern int mdadm_in_initrd(void);
|
||||
|
||||
struct cmap_hooks {
|
||||
void *cmap_handle; /* corosync lib related */
|
||||
--- a/mdmon.c
|
||||
+++ b/mdmon.c
|
||||
@@ -309,7 +309,7 @@
|
||||
{NULL, 0, NULL, 0}
|
||||
};
|
||||
|
||||
- if (in_initrd()) {
|
||||
+ if (mdadm_in_initrd()) {
|
||||
/*
|
||||
* set first char of argv[0] to @. This is used by
|
||||
* systemd to signal that the task was launched from
|
||||
--- a/util.c
|
||||
+++ b/util.c
|
||||
@@ -1960,7 +1960,7 @@
|
||||
int len;
|
||||
pid_t pid;
|
||||
int status;
|
||||
- char *prefix = in_initrd() ? "initrd-" : "";
|
||||
+ char *prefix = mdadm_in_initrd() ? "initrd-" : "";
|
||||
char pathbuf[1024];
|
||||
char *paths[4] = {
|
||||
pathbuf,
|
||||
@@ -2219,7 +2219,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int in_initrd(void)
|
||||
+int mdadm_in_initrd(void)
|
||||
{
|
||||
/* This is based on similar function in systemd. */
|
||||
struct statfs s;
|
@ -1,11 +0,0 @@
|
||||
--- mdadm-4.3/Makefile.orig 2024-03-13 20:11:48.949678469 -0700
|
||||
+++ mdadm-4.3/Makefile 2024-03-13 20:11:52.773671814 -0700
|
||||
@@ -132,7 +132,7 @@
|
||||
MON_LDFLAGS += -pthread
|
||||
endif
|
||||
|
||||
-LDFLAGS = -Wl,-z,now,-z,noexecstack
|
||||
+LDFLAGS += -Wl,-z,now,-z,noexecstack
|
||||
|
||||
# If you want a static binary, you might uncomment these
|
||||
# LDFLAGS += -static
|
@ -1,19 +0,0 @@
|
||||
https://bugs.gentoo.org/926289#c6
|
||||
https://github.com/md-raid-utilities/mdadm/commit/9dbd11e091f84eb0bf9d717283774816c4c4453d
|
||||
--- a/mdadm.h
|
||||
+++ b/mdadm.h
|
||||
@@ -223,6 +223,14 @@ struct dlm_lksb {
|
||||
struct __una_u16 { __u16 x; } __attribute__ ((packed));
|
||||
struct __una_u32 { __u32 x; } __attribute__ ((packed));
|
||||
|
||||
+/*
|
||||
+ * Ensure GNU basename behavior on GLIBC less systems.
|
||||
+ */
|
||||
+#ifndef __GLIBC__
|
||||
+#define basename(path) \
|
||||
+ (strrchr((path), '/') ? strrchr((path),'/') + 1 : (path))
|
||||
+#endif
|
||||
+
|
||||
static inline __u16 __get_unaligned16(const void *p)
|
||||
{
|
||||
const struct __una_u16 *ptr = (const struct __una_u16 *)p;
|
@ -1,14 +0,0 @@
|
||||
https://bugs.gentoo.org/926289#c7
|
||||
https://github.com/md-raid-utilities/mdadm/commit/8bda86099089b44129ef6206764f9de47a45f0db
|
||||
--- a/util.c
|
||||
+++ b/util.c
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <ctype.h>
|
||||
#include <dirent.h>
|
||||
#include <dlfcn.h>
|
||||
-
|
||||
+#include <limits.h>
|
||||
|
||||
/*
|
||||
* following taken from linux/blkpg.h because they aren't
|
||||
|
@ -1,44 +0,0 @@
|
||||
|
||||
Note- This is also needed for musl-1.2.5 (aside other fixes)- dilfridge
|
||||
|
||||
From 52bead95d2957437c691891fcdc49bd6afccdd49 Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Fri, 12 Apr 2024 18:45:13 +0200
|
||||
Subject: Create.c: fix uclibc build
|
||||
|
||||
Define FALLOC_FL_ZERO_RANGE if needed as FALLOC_FL_ZERO_RANGE is only
|
||||
defined for aarch64 on uclibc-ng resulting in the following or1k build
|
||||
failure since commit 577fd10486d8d1472a6b559066f344ac30a3a391:
|
||||
|
||||
Create.c: In function 'write_zeroes_fork':
|
||||
Create.c:155:35: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
|
||||
155 | if (fallocate(fd, FALLOC_FL_ZERO_RANGE | FALLOC_FL_KEEP_SIZE,
|
||||
| ^~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Fixes:
|
||||
- http://autobuild.buildroot.org/results/0e04bcdb591ca5642053e1f7e31384f06581e989
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||||
---
|
||||
Create.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Create.c b/Create.c
|
||||
index 4397ff49..d94253b1 100644
|
||||
--- a/Create.c
|
||||
+++ b/Create.c
|
||||
@@ -32,6 +32,10 @@
|
||||
#include <sys/signalfd.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
+#ifndef FALLOC_FL_ZERO_RANGE
|
||||
+#define FALLOC_FL_ZERO_RANGE 16
|
||||
+#endif
|
||||
+
|
||||
static int round_size_and_verify(unsigned long long *size, int chunk)
|
||||
{
|
||||
if (*size == 0)
|
||||
--
|
||||
cgit 1.2.3-korg
|
||||
|
@ -1,31 +0,0 @@
|
||||
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/patch/?id=1750758c7ff526e3560433f6235e5cfa35cf646a
|
||||
https://bugs.gentoo.org/928228
|
||||
|
||||
From 1750758c7ff526e3560433f6235e5cfa35cf646a Mon Sep 17 00:00:00 2001
|
||||
From: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||||
Date: Wed, 6 Mar 2024 15:50:55 +0100
|
||||
Subject: udev.c: Do not require libudev.h if DNO_LIBUDEV
|
||||
|
||||
libudev may not be presented at all, do not require it.
|
||||
|
||||
Reported-by: Boian Bonev <bbonev@ipacct.com>
|
||||
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||||
---
|
||||
udev.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/udev.c b/udev.c
|
||||
index bc4722b0..066e6ab1 100644
|
||||
--- a/udev.c
|
||||
+++ b/udev.c
|
||||
@@ -26,7 +26,10 @@
|
||||
#include <signal.h>
|
||||
#include <limits.h>
|
||||
#include <syslog.h>
|
||||
+
|
||||
+#ifndef NO_LIBUDEV
|
||||
#include <libudev.h>
|
||||
+#endif
|
||||
|
||||
static char *unblock_path;
|
||||
|
@ -1,112 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic systemd toolchain-funcs udev
|
||||
|
||||
DESCRIPTION="Tool for running RAID systems - replacement for the raidtools"
|
||||
HOMEPAGE="https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/"
|
||||
DEB_PF="4.2~rc2-7"
|
||||
SRC_URI="https://www.kernel.org/pub/linux/utils/raid/mdadm/${P/_/-}.tar.xz
|
||||
mirror://debian/pool/main/m/mdadm/${PN}_${DEB_PF}.debian.tar.xz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
[[ "${PV}" = *_rc* ]] || \
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv sparc x86"
|
||||
IUSE="static systemd +udev"
|
||||
|
||||
REQUIRED_USE="static? ( !udev )"
|
||||
|
||||
BDEPEND="app-arch/xz-utils
|
||||
virtual/pkgconfig"
|
||||
DEPEND="udev? ( virtual/libudev:= )"
|
||||
RDEPEND="${DEPEND}
|
||||
>=sys-apps/util-linux-2.16"
|
||||
|
||||
# The tests edit values in /proc and run tests on software raid devices.
|
||||
# Thus, they shouldn't be run on systems with active software RAID devices.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}"-3.4-sysmacros.patch #580188
|
||||
"${FILESDIR}/${PN}"-4.2-in_initrd-collision.patch #830461
|
||||
"${FILESDIR}/${PN}"-4.2-mdadm_env.patch #628968
|
||||
)
|
||||
|
||||
mdadm_emake() {
|
||||
# We should probably make corosync & libdlm into USE flags. #573782
|
||||
local args=(
|
||||
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
||||
CC="$(tc-getCC)"
|
||||
CWFLAGS="-Wall"
|
||||
CXFLAGS="${CFLAGS}"
|
||||
UDEVDIR="$(get_udevdir)"
|
||||
SYSTEMD_DIR="$(systemd_get_systemunitdir)"
|
||||
COROSYNC="-DNO_COROSYNC"
|
||||
DLM="-DNO_DLM"
|
||||
|
||||
# https://bugs.gentoo.org/732276
|
||||
STRIP=
|
||||
|
||||
"$@"
|
||||
)
|
||||
emake "${args[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use static && append-ldflags -static
|
||||
|
||||
# CPPFLAGS won't work for this
|
||||
use udev || append-cflags -DNO_LIBUDEV
|
||||
|
||||
# bug 907082
|
||||
use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE
|
||||
|
||||
mdadm_emake all
|
||||
}
|
||||
|
||||
src_test() {
|
||||
mdadm_emake test
|
||||
|
||||
sh ./test || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mdadm_emake DESTDIR="${D}" install install-systemd
|
||||
dodoc ChangeLog INSTALL TODO README* ANNOUNCE-*
|
||||
|
||||
insinto /etc
|
||||
newins mdadm.conf-example mdadm.conf
|
||||
newinitd "${FILESDIR}"/mdadm.rc mdadm
|
||||
newconfd "${FILESDIR}"/mdadm.confd mdadm
|
||||
newinitd "${FILESDIR}"/mdraid.rc mdraid
|
||||
newconfd "${FILESDIR}"/mdraid.confd mdraid
|
||||
|
||||
# From the Debian patchset
|
||||
into /usr
|
||||
dodoc "${WORKDIR}"/debian/README.checkarray
|
||||
dosbin "${WORKDIR}"/debian/checkarray
|
||||
insinto /etc/default
|
||||
newins "${FILESDIR}"/etc-default-mdadm mdadm
|
||||
|
||||
exeinto /etc/cron.weekly
|
||||
newexe "${FILESDIR}"/mdadm.weekly mdadm
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
udev_reload
|
||||
if ! systemd_is_booted; then
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||
# Only inform people the first time they install.
|
||||
elog "If you're not relying on kernel auto-detect of your RAID"
|
||||
elog "devices, you need to add 'mdraid' to your 'boot' runlevel:"
|
||||
elog " rc-update add mdraid boot"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
udev_reload
|
||||
}
|
@ -1,128 +0,0 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit flag-o-matic systemd toolchain-funcs udev
|
||||
|
||||
DESCRIPTION="Tool for running RAID systems - replacement for the raidtools"
|
||||
HOMEPAGE="https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/"
|
||||
DEB_PF="4.3-1"
|
||||
SRC_URI="https://www.kernel.org/pub/linux/utils/raid/mdadm/${P/_/-}.tar.xz
|
||||
mirror://debian/pool/main/m/mdadm/${PN}_${DEB_PF}.debian.tar.xz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
[[ "${PV}" = *_rc* ]] || \
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv sparc x86"
|
||||
IUSE="static systemd +udev corosync"
|
||||
|
||||
REQUIRED_USE="static? ( !udev )"
|
||||
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
DEPEND="udev? ( virtual/libudev:= )
|
||||
corosync? ( sys-cluster/corosync )"
|
||||
RDEPEND="${DEPEND}
|
||||
>=sys-apps/util-linux-2.16"
|
||||
|
||||
# The tests edit values in /proc and run tests on software raid devices.
|
||||
# Thus, they shouldn't be run on systems with active software RAID devices.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
#"${FILESDIR}/${PN}"-3.4-sysmacros.patch #580188 # upstream has it later in the list of includes as of 4.3.
|
||||
"${FILESDIR}/${PN}"-4.3-in_initrd-collision.patch #830461
|
||||
"${FILESDIR}/${PN}"-4.2-mdadm_env.patch #628968
|
||||
"${FILESDIR}/${PN}"-4.3-ldflags.patch
|
||||
"${FILESDIR}/${PN}"-4.3-no-udev.patch
|
||||
"${FILESDIR}/${PN}"-4.3-musl125-1.patch
|
||||
"${FILESDIR}/${PN}"-4.3-do-not-call-gcc-directly.patch # 931972
|
||||
"${FILESDIR}/${PN}"-4.3-musl-basename.patch
|
||||
"${FILESDIR}/${PN}"-4.3-musl-include.patch
|
||||
"${WORKDIR}/debian/patches/debian/0001-fix-manpages.patch"
|
||||
"${WORKDIR}/debian/patches/debian/0003-host-name-in-default-mailfrom.patch"
|
||||
"${WORKDIR}/debian/patches/debian/0004-exit-gracefully-when-md-device-not-found.patch"
|
||||
"${WORKDIR}/debian/patches/debian/0007-no-Werror.patch"
|
||||
)
|
||||
|
||||
mdadm_emake() {
|
||||
# We should probably make libdlm into USE flags. #573782
|
||||
local args=(
|
||||
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
||||
CC="$(tc-getCC)"
|
||||
CWFLAGS="-Wall -fPIE"
|
||||
CXFLAGS="${CFLAGS}"
|
||||
LDFLAGS="${LDFLAGS}"
|
||||
UDEVDIR="$(get_udevdir)"
|
||||
SYSTEMD_DIR="$(systemd_get_systemunitdir)"
|
||||
COROSYNC="$(usex corosync '' -DNO_COROSYNC)"
|
||||
DLM="-DNO_DLM"
|
||||
|
||||
# https://bugs.gentoo.org/732276
|
||||
STRIP=
|
||||
|
||||
"$@"
|
||||
)
|
||||
emake "${args[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use static && append-ldflags -static
|
||||
|
||||
# CPPFLAGS won't work for this
|
||||
use udev || append-cflags -DNO_LIBUDEV
|
||||
|
||||
# bug 907082
|
||||
use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE
|
||||
|
||||
mdadm_emake all
|
||||
}
|
||||
|
||||
src_test() {
|
||||
mdadm_emake test
|
||||
|
||||
sh ./test || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mdadm_emake DESTDIR="${D}" install install-systemd
|
||||
dodoc ChangeLog INSTALL TODO README* ANNOUNCE-*
|
||||
|
||||
# install mdcheck_start.service
|
||||
# needed for systemd units https://bugs.gentoo.org/833000
|
||||
exeinto /usr/share/mdadm/
|
||||
doexe misc/mdcheck
|
||||
|
||||
insinto /etc
|
||||
newins mdadm.conf-example mdadm.conf
|
||||
newinitd "${FILESDIR}"/mdadm.rc mdadm
|
||||
newconfd "${FILESDIR}"/mdadm.confd mdadm
|
||||
newinitd "${FILESDIR}"/mdraid.rc mdraid
|
||||
newconfd "${FILESDIR}"/mdraid.confd mdraid
|
||||
|
||||
# From the Debian patchset
|
||||
into /usr
|
||||
dodoc "${WORKDIR}"/debian/local/doc/README.checkarray
|
||||
dosbin "${WORKDIR}"/debian/local/bin/checkarray
|
||||
insinto /etc/default
|
||||
newins "${FILESDIR}"/etc-default-mdadm mdadm
|
||||
|
||||
exeinto /etc/cron.weekly
|
||||
newexe "${FILESDIR}"/mdadm.weekly mdadm
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
udev_reload
|
||||
if ! systemd_is_booted; then
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||
# Only inform people the first time they install.
|
||||
elog "If you're not relying on kernel auto-detect of your RAID"
|
||||
elog "devices, you need to add 'mdraid' to your 'boot' runlevel:"
|
||||
elog " rc-update add mdraid boot"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
udev_reload
|
||||
}
|
@ -1,126 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic systemd toolchain-funcs udev
|
||||
|
||||
DESCRIPTION="Tool for running RAID systems - replacement for the raidtools"
|
||||
HOMEPAGE="https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/"
|
||||
DEB_PF="4.3-1"
|
||||
SRC_URI="https://www.kernel.org/pub/linux/utils/raid/mdadm/${P/_/-}.tar.xz
|
||||
mirror://debian/pool/main/m/mdadm/${PN}_${DEB_PF}.debian.tar.xz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
[[ "${PV}" = *_rc* ]] || \
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
IUSE="static systemd +udev corosync"
|
||||
|
||||
REQUIRED_USE="static? ( !udev )"
|
||||
|
||||
BDEPEND="app-arch/xz-utils
|
||||
virtual/pkgconfig"
|
||||
DEPEND="udev? ( virtual/libudev:= )
|
||||
corosync? ( sys-cluster/corosync )"
|
||||
RDEPEND="${DEPEND}
|
||||
>=sys-apps/util-linux-2.16"
|
||||
|
||||
# The tests edit values in /proc and run tests on software raid devices.
|
||||
# Thus, they shouldn't be run on systems with active software RAID devices.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
#"${FILESDIR}/${PN}"-3.4-sysmacros.patch #580188 # upstream has it later in the list of includes as of 4.3.
|
||||
"${FILESDIR}/${PN}"-4.3-in_initrd-collision.patch #830461
|
||||
"${FILESDIR}/${PN}"-4.2-mdadm_env.patch #628968
|
||||
"${FILESDIR}/${PN}"-4.3-ldflags.patch
|
||||
"${FILESDIR}/${PN}"-4.3-no-udev.patch
|
||||
"${FILESDIR}/${PN}"-4.3-musl125-1.patch
|
||||
"${WORKDIR}/debian/patches/debian/0001-fix-manpages.patch"
|
||||
"${WORKDIR}/debian/patches/debian/0003-host-name-in-default-mailfrom.patch"
|
||||
"${WORKDIR}/debian/patches/debian/0004-exit-gracefully-when-md-device-not-found.patch"
|
||||
"${WORKDIR}/debian/patches/debian/0007-no-Werror.patch"
|
||||
)
|
||||
|
||||
mdadm_emake() {
|
||||
# We should probably make corosync & libdlm into USE flags. #573782
|
||||
local args=(
|
||||
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
||||
CC="$(tc-getCC)"
|
||||
CWFLAGS="-Wall"
|
||||
CXFLAGS="${CFLAGS}"
|
||||
LDFLAGS="${LDFLAGS}"
|
||||
UDEVDIR="$(get_udevdir)"
|
||||
SYSTEMD_DIR="$(systemd_get_systemunitdir)"
|
||||
COROSYNC="$(usex corosync '' -DNO_COROSYNC)"
|
||||
DLM="-DNO_DLM"
|
||||
|
||||
# https://bugs.gentoo.org/732276
|
||||
STRIP=
|
||||
|
||||
"$@"
|
||||
)
|
||||
emake "${args[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use static && append-ldflags -static
|
||||
|
||||
# CPPFLAGS won't work for this
|
||||
use udev || append-cflags -DNO_LIBUDEV
|
||||
|
||||
# bug 907082
|
||||
use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE
|
||||
|
||||
mdadm_emake all
|
||||
}
|
||||
|
||||
src_test() {
|
||||
mdadm_emake test
|
||||
|
||||
sh ./test || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mdadm_emake DESTDIR="${D}" install install-systemd
|
||||
dodoc ChangeLog INSTALL TODO README* ANNOUNCE-*
|
||||
|
||||
# install mdcheck_start.service
|
||||
# needed for systemd units https://bugs.gentoo.org/833000
|
||||
exeinto /usr/share/mdadm/
|
||||
doexe misc/mdcheck
|
||||
|
||||
insinto /etc
|
||||
newins mdadm.conf-example mdadm.conf
|
||||
newinitd "${FILESDIR}"/mdadm.rc mdadm
|
||||
newconfd "${FILESDIR}"/mdadm.confd mdadm
|
||||
newinitd "${FILESDIR}"/mdraid.rc mdraid
|
||||
newconfd "${FILESDIR}"/mdraid.confd mdraid
|
||||
|
||||
# From the Debian patchset
|
||||
into /usr
|
||||
dodoc "${WORKDIR}"/debian/local/doc/README.checkarray
|
||||
dosbin "${WORKDIR}"/debian/local/bin/checkarray
|
||||
insinto /etc/default
|
||||
newins "${FILESDIR}"/etc-default-mdadm mdadm
|
||||
|
||||
exeinto /etc/cron.weekly
|
||||
newexe "${FILESDIR}"/mdadm.weekly mdadm
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
udev_reload
|
||||
if ! systemd_is_booted; then
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||
# Only inform people the first time they install.
|
||||
elog "If you're not relying on kernel auto-detect of your RAID"
|
||||
elog "devices, you need to add 'mdraid' to your 'boot' runlevel:"
|
||||
elog " rc-update add mdraid boot"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
udev_reload
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user