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:
Flatcar Buildbot 2025-09-01 07:15:17 +00:00 committed by Krzesimir Nowak
parent f3c9515c8a
commit 3938915204
14 changed files with 0 additions and 690 deletions

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}