diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/Manifest index 961f422d5f..d8a958ec1c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/Manifest @@ -1,2 +1,6 @@ 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/README.md b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/README.md deleted file mode 100644 index 0374e15666..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/README.md +++ /dev/null @@ -1,6 +0,0 @@ -This is a fork of Gentoo's sys-fs/mdadm package. The main reason of -having this fork is to carry Flatcar-specific patches for using -systemd.timer instead of cron.weekly. - -There is also a minor change to build this package by default for -arm64 without needing an entry in accept_keywords file. diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.2-mdadm_env.patch b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.2-mdadm_env.patch new file mode 100644 index 0000000000..bd09da5538 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.2-mdadm_env.patch @@ -0,0 +1,36 @@ +--- 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-do-not-call-gcc-directly.patch b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-do-not-call-gcc-directly.patch new file mode 100644 index 0000000000..0ba8c45284 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-do-not-call-gcc-directly.patch @@ -0,0 +1,53 @@ +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 +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 +--- + 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 + diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-in_initrd-collision.patch b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-in_initrd-collision.patch new file mode 100644 index 0000000000..54e4aadacb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-in_initrd-collision.patch @@ -0,0 +1,45 @@ +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; diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-ldflags.patch b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-ldflags.patch new file mode 100644 index 0000000000..e8e93d4245 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-ldflags.patch @@ -0,0 +1,11 @@ +--- 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl-basename.patch b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl-basename.patch new file mode 100644 index 0000000000..b8d0c3a7ca --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl-basename.patch @@ -0,0 +1,19 @@ +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; diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl-include.patch b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl-include.patch new file mode 100644 index 0000000000..da9efc9a01 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl-include.patch @@ -0,0 +1,14 @@ +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 + #include + #include +- ++#include + + /* + * following taken from linux/blkpg.h because they aren't + diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl125-1.patch b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl125-1.patch new file mode 100644 index 0000000000..a10b56b67b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-musl125-1.patch @@ -0,0 +1,44 @@ + +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 +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 +Signed-off-by: Mariusz Tkaczyk +--- + 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 + #include + ++#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 + diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-no-udev.patch b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-no-udev.patch new file mode 100644 index 0000000000..dd7ef696ac --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm-4.3-no-udev.patch @@ -0,0 +1,31 @@ +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 +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 +Signed-off-by: Mariusz Tkaczyk +--- + 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 + #include + #include ++ ++#ifndef NO_LIBUDEV + #include ++#endif + + static char *unblock_path; + diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.service b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.service deleted file mode 100644 index 182c97310b..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.service +++ /dev/null @@ -1,6 +0,0 @@ -[Unit] -Description=Initiates a check run of an MD array's redundancy information. - -[Service] -Type=oneshot -ExecStart=/usr/sbin/checkarray --cron --all --idle --quiet diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.timer b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.timer deleted file mode 100644 index ad1a52d828..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.timer +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Weekly check for MD array's redundancy information. - -[Install] -WantedBy=timers.target - -[Timer] -OnCalendar=weekly -Persistent=true diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.weekly b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.weekly new file mode 100644 index 0000000000..e2b35b550f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/files/mdadm.weekly @@ -0,0 +1,5 @@ +#!/bin/sh +# This requires that AUTOCHECK is true in /etc/default/mdadm +if [ -x /usr/sbin/checkarray ] && [ $(date +\%d) -le 7 ]; then + /usr/sbin/checkarray --cron --all --idle --quiet +fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.2-r3.ebuild similarity index 70% rename from sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.2-r1.ebuild rename to sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.2-r3.ebuild index cc41f29d25..55ff5a471b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.2-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.2-r3.ebuild @@ -1,9 +1,6 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Flatcar: Based on mdadm-4.2-r1.ebuild from commit -# 81a13f851b7502d547ff8c0434bf64a443877fb1 in Gentoo repo (see -# https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/mdadm/mdadm-4.2-r1.ebuild?id=81a13f851b7502d547ff8c0434bf64a443877fb1). EAPI=7 inherit flag-o-matic systemd toolchain-funcs udev @@ -16,23 +13,17 @@ SRC_URI="https://www.kernel.org/pub/linux/utils/raid/mdadm/${P/_/-}.tar.xz LICENSE="GPL-2" SLOT="0" -# Flatcar: Build for amd64 and arm64 -KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +[[ "${PV}" = *_rc* ]] || \ +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv sparc x86" IUSE="static systemd +udev" -# Only sys-fs/eudev provides static-libs right now, so if you have systemd, -# you need to choose between static or udev, as your udev won't have static libs. -# bug #830485 -REQUIRED_USE="systemd? ( ?? ( static udev ) )" +REQUIRED_USE="static? ( !udev )" BDEPEND="app-arch/xz-utils virtual/pkgconfig" -DEPEND="udev? ( - static? ( !systemd? ( sys-fs/eudev[static-libs] ) ) - !static? ( virtual/libudev:= ) - )" -RDEPEND=">=sys-apps/util-linux-2.16 - udev? ( !static? ( virtual/libudev:= ) )" +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. @@ -41,6 +32,7 @@ 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() { @@ -69,6 +61,9 @@ src_compile() { # 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 } @@ -96,13 +91,12 @@ src_install() { insinto /etc/default newins "${FILESDIR}"/etc-default-mdadm mdadm - systemd_dounit "${FILESDIR}"/mdadm.service - systemd_dounit "${FILESDIR}"/mdadm.timer - - systemd_enable_service timers.target mdadm.timer + 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. @@ -112,3 +106,7 @@ pkg_postinst() { fi fi } + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.3-r1.ebuild new file mode 100644 index 0000000000..a2271bcf25 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.3-r1.ebuild @@ -0,0 +1,128 @@ +# 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 +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.3.ebuild new file mode 100644 index 0000000000..e503b5875f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.3.ebuild @@ -0,0 +1,126 @@ +# 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 +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.4.ebuild new file mode 100644 index 0000000000..25366a118d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.4.ebuild @@ -0,0 +1,122 @@ +# 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 + +DEB_PF="4.4-3" +DESCRIPTION="Tool for running RAID systems - replacement for the raidtools" +HOMEPAGE="https://github.com/md-raid-utilities/mdadm https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/" +SRC_URI="https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/snapshot/${P}.tar.gz" +SRC_URI+=" mirror://debian/pool/main/m/mdadm/${PN}_${DEB_PF}.debian.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv sparc x86" +fi +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=( + "${WORKDIR}/debian/patches/debian" +) + +mdadm_emake() { + # We should probably make libdlm into USE flags (bug #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="$(usev !corosync '-DNO_COROSYNC')" + DLM="-DNO_DLM" + + # bug #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 + + einstalldocs + + # install mdcheck_start.service, needed for systemd units (bug #833000) + exeinto /usr/share/mdadm/ + doexe misc/mdcheck + + insinto /etc + newins documentation/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 +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/metadata.xml index 536bb38d9f..c5395c9d19 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/metadata.xml @@ -5,7 +5,11 @@ base-system@gentoo.org Gentoo Base System + + Support for corosync cluster engine + cpe:/a:mdadm_project:mdadm + md-raid-utilities/mdadm