diff --git a/sys-fs/mdadm/Manifest b/sys-fs/mdadm/Manifest new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/Manifest @@ -0,0 +1,33 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +AUX mdadm-2.6-syslog-updates.patch 1117 RMD160 c7de674fc76eb444d1d5f97a5a4c59c955aa51b6 SHA1 c00f4f283acd226241aed07e35133f965bb8b154 SHA256 207fd5ec76829fed5310f766001686807c623fe3eee541701f3366f96ef77b86 +AUX mdadm-2.6.4-mdassemble.patch 465 RMD160 4abcfcd75242d552f674a850ea116835a8f56aea SHA1 609161b594c51644f30de98a7a74473361bdb98b SHA256 015321cbb219f80444c9d56d01bde36f828d2814c57712a7655bdbae811ff8c4 +AUX mdadm-3.0-dont-make-man.patch 278 RMD160 a0275251626d91dc53b3fadfab6543961f5d7608 SHA1 0c74b7f10fab185442654bb965ac557daa567c17 SHA256 bfc42300913a178c3bcd5f9af4c721893224b2741beddcfba6498d012b1d5679 +AUX mdadm.confd 205 RMD160 9b4af661ef05e6dbab9ead55506a1ef0670a9076 SHA1 46d75372ecfcfcb34b1576bd994c22cae24f2a79 SHA256 ec55674955af7a31da51b8b72b599e8519809287dad796a9b16155bcba471b79 +AUX mdadm.rc 574 RMD160 69640d0b1fbd11bd7078c0e7791d247420653b73 SHA1 39044e7d6ad63c44669baf9775230670f04b201c SHA256 3073b14619cb7b2c99c33f2d6cfd1e59ce5557899bffebaa65fa52f3caffadc7 +AUX mdraid.confd 225 RMD160 944896151ffdaf7b172c8d045d3cf9bd9083fabd SHA1 41b2e6441e1bac71657290a6764774fb0d452721 SHA256 1b7918c4bdd024607bcb49d7cea0a77cb70502d2fbb4dbe07024bb5b5699c8e0 +AUX mdraid.rc 637 RMD160 64741e62695e9dbefba5dcef37137e93d621f5e6 SHA1 c443e5cb47359b307515d942ca3d6b713b4f2244 SHA256 55c37752aa34db35bc36f566b0f093e21022ee9ae9dd11465e472d192a8631d2 +AUX mdraid.rc-3.1.1 815 RMD160 df283e9b55ba6df3ac209861e18c3197ede51885 SHA1 a34072a43037ec9f8c4bc858660bb261a6dfff1d SHA256 95f759ba9d4f719bb5122546fdcce18dd9b0060df1296cf8ae17a04137e163e2 +AUX raid-start.sh-3.0 799 RMD160 6495c44ea5be6e18a2b76e0c724f2dbf36073f90 SHA1 2df50d9f03cc907990ddd4b235dbc605c3e208c8 SHA256 7f4e6b5d148578f417bcc05d4d4d5c65641c2a810b74b2f7f43b808c7c52a9ce +AUX raid-stop.sh 645 RMD160 a2855fbdad1222044a9de5b7a9f441592d42960b SHA1 daa2052a3835ca178005a96a3675759a96119203 SHA256 167a6bd452b5831cd5235eb80bf5f91bb2e5a10db132408fce29e60eb9d200db +DIST mdadm-3.1.4.tar.bz2 288578 RMD160 f41a2be4158efac08dbe2e95f1c6812609475fad SHA1 4ee43922d38b15a930daaaa026ef1b4efacdbc8a SHA256 849ad0ad4ad3c1d2d8806a16b30e1f59ab2daf313cb103807207f7cba889ea63 +EBUILD mdadm-3.1.4.ebuild 1963 RMD160 4a58c543194ab9e512ad20f4d7fab086cc9fc60e SHA1 85fa709d61a1fd63ab219bccb7800b87b9aa073a SHA256 6f273ecc3f0425f58b444150a3bc67a233b33c0fb7b2ca01c5be3a1ff5770b46 +MISC metadata.xml 164 RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 SHA1 9c213f5803676c56439df3716be07d6692588856 SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.14 (GNU/Linux) + +iQIcBAEBCAAGBQJNGqVIAAoJEHQ6UuhrqBBQqFEP/REitgZWNIX9vzK73goCjQMm +K7ZtdVOOEb1XrhYTyePMASbGba0Lerx7KZvnyKx8st2n/i+MoZ7upcikrewn8r1G +gxdg2/FEieauJeLMPpjFovsP63BO5l3uH1Eau4/eWUIXxqoC0kgPLjPzcyZ7G6IQ +YK7w1g0FCWq1va2ZImcnhN+vEQziuSIxgS+on8ynnbJbkLSYKtnlgEOYekyXjDHv +cic8W6R8Y8IcY3XaYdHhEu7fwTruRnhNGeHUDio9sYfk4R07vTNFjzngvIW8cjTv +IyzDyMFKEbpOMp75AmWPcUfxxYaVLmp6DFdg9KQqKT8akbs0+tuR648QI0m6T3Ub +xBFhC8S8SyjkgKwcM1cH4MebTtd5UZGW1yAeDy/pciggQodCq+dRNFZq8qaMWHgd +MZfRAGoJW4LGuSGzfr3ld5Gn6ZJoHMrs8crqm7tZ7Ug2iPKrt6A2/ki0cwXq3pRf +jdsCxh82NeoploBNcFl5UBK/1+JExksVaXvVY0Pffo9rXLeqL/+QgaFTragJfLF0 +iCg13Z+FCGR8XNKXHKRopI/7ay4UjBqrOfX7Eo4boOx4kgWtqUY0fJzP3+rzQPCb +vSHhDL+L70DWKfbgmUIGnA7LnpvLaE2+XRAwK3dOJQHurQHrgGUJagjlGLv3Wuq7 +0GVHkOqTAlyzomi9fw7/ +=nCE4 +-----END PGP SIGNATURE----- diff --git a/sys-fs/mdadm/files/mdadm-2.6-syslog-updates.patch b/sys-fs/mdadm/files/mdadm-2.6-syslog-updates.patch new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/files/mdadm-2.6-syslog-updates.patch @@ -0,0 +1,30 @@ +--- mdadm-2.4.1/Monitor.c ++++ mdadm-2.4.1/Monitor.c +@@ -126,7 +126,7 @@ + fprintf(stderr, Name ": Monitor using program \"%s\" from config file\n", + alert_cmd); + } +- if (scan && !mailaddr && !alert_cmd) { ++ if (scan && !mailaddr && !alert_cmd && !dosyslog) { + fprintf(stderr, Name ": No mail address or alert command - not monitoring.\n"); + return 1; + } +@@ -465,7 +465,7 @@ + { + int priority; + +- if (!cmd && !mailaddr) { ++ if (!cmd && !mailaddr && !dosyslog) { + time_t now = time(0); + + printf("%1.15s: %s on %s %s\n", ctime(&now)+4, event, dev, disc?disc:"unknown device"); +--- mdadm-2.4.1/ReadMe.c ++++ mdadm-2.4.1/ReadMe.c +@@ -463,6 +464,7 @@ + " --mail= -m : Address to mail alerts of failure to\n" + " --program= -p : Program to run when an event is detected\n" + " --alert= : same as --program\n" ++" --syslog -y : Report alerts via syslog\n" + " --delay= -d : seconds of delay between polling state. default=60\n" + " --config= -c : specify a different config file\n" + " --scan -s : find mail-address/program in config file\n" diff --git a/sys-fs/mdadm/files/mdadm-2.6.4-mdassemble.patch b/sys-fs/mdadm/files/mdadm-2.6.4-mdassemble.patch new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/files/mdadm-2.6.4-mdassemble.patch @@ -0,0 +1,16 @@ +http://bugs.gentoo.org/211426 + +make default mdassemble sane + +--- Makefile ++++ Makefile +@@ -121,8 +121,7 @@ + $(CC) $(CXFLAGS) $(LDFLAGS) -o test_stripe -DMAIN restripe.c + + mdassemble : $(ASSEMBLE_SRCS) mdadm.h +- rm -f $(OBJS) +- $(DIET_GCC) $(ASSEMBLE_FLAGS) -o mdassemble $(ASSEMBLE_SRCS) $(STATICSRC) ++ $(CC) $(LDFLAGS) $(ASSEMBLE_FLAGS) -DHAVE_STDINT_H -o mdassemble $(ASSEMBLE_SRCS) $(STATICSRC) + + mdassemble.static : $(ASSEMBLE_SRCS) mdadm.h + rm -f $(OBJS) diff --git a/sys-fs/mdadm/files/mdadm-3.0-dont-make-man.patch b/sys-fs/mdadm/files/mdadm-3.0-dont-make-man.patch new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/files/mdadm-3.0-dont-make-man.patch @@ -0,0 +1,11 @@ +The .man files are never installed so there's no point in +generating them, especially since the source manpages are +installed. + +--- mdadm-3.0/Makefile ++++ mdadm-3.0/Makefile +@@ -69,3 +69,3 @@ + +-all : mdadm mdmon mdadm.man md.man mdadm.conf.man mdmon.man ++all : mdadm mdmon + diff --git a/sys-fs/mdadm/files/mdadm.confd b/sys-fs/mdadm/files/mdadm.confd new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/files/mdadm.confd @@ -0,0 +1,7 @@ +# /etc/conf.d/mdadm: config file for /etc/init.d/mdadm + +# Misc options to pass to mdadm in monitor mode. +# For more info, run `mdadm --monitor --help` or see +# the mdadm(8) manpage. + +MDADM_OPTS="--syslog" diff --git a/sys-fs/mdadm/files/mdadm.rc b/sys-fs/mdadm/files/mdadm.rc new file mode 100755 --- /dev/null +++ b/sys-fs/mdadm/files/mdadm.rc @@ -0,0 +1,26 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/mdadm/files/mdadm.rc,v 1.2 2006/04/25 05:41:51 vapier Exp $ + +depend() { + use logger dns net +} + +start() { + ebegin "Starting mdadm monitor" + mdadm --monitor --scan \ + --daemonise \ + --pid-file /var/run/mdadm.pid \ + ${MDADM_OPTS} + eend $? +} + +stop() { + local ret + ebegin "Stopping mdadm monitor" + start-stop-daemon --stop --pidfile /var/run/mdadm.pid + ret=$? + rm -f /var/run/mdadm.pid + eend ${ret} +} diff --git a/sys-fs/mdadm/files/mdraid.confd b/sys-fs/mdadm/files/mdraid.confd new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/files/mdraid.confd @@ -0,0 +1,5 @@ +# /etc/conf.d/mdraid: config file for /etc/init.d/mdraid + +# For people who run raid on top of some other layer (like +# dmcrypt), use rc_need to specify that requirement. See +# the runscript(8) man page for more information. diff --git a/sys-fs/mdadm/files/mdraid.rc b/sys-fs/mdadm/files/mdraid.rc new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/files/mdraid.rc @@ -0,0 +1,27 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/mdadm/files/mdraid.rc,v 1.4 2008/06/28 16:44:39 vapier Exp $ + +depend() { + if [ ! -e /sbin/functions.sh ] ; then + # on baselayout-1 this could cause + # dependency-cycles with checkroot (before *) + before checkfs fsck + after modules + fi +} + +start() { + if [ -e /sbin/functions.sh ] ; then + eerror "The ${SVCNAME} init script is written for baselayout-2" + eerror "Please do not use it with baselayout-1" + return 1 + fi + + start_addon raid +} + +stop() { + stop_addon raid +} diff --git a/sys-fs/mdadm/files/mdraid.rc-3.1.1 b/sys-fs/mdadm/files/mdraid.rc-3.1.1 new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/files/mdraid.rc-3.1.1 @@ -0,0 +1,40 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/mdadm/files/mdraid.rc-3.1.1,v 1.1 2010/01/24 22:20:57 robbat2 Exp $ + +depend() { + if [ ! -e /sbin/functions.sh ] ; then + # on baselayout-1 this could cause + # dependency-cycles with checkroot (before *) + before checkfs fsck + after modules + fi +} + +run_addon() { + local f=/lib/rcscripts/addons/$1.sh + if [ -r "$f" ]; then + ( . "$f" ) + fi +} +start_addon() { + run_addon "$1"-start +} +stop_addon() { + run_addon "$1"-stop +} + +start() { + if [ -e /sbin/functions.sh ] ; then + eerror "The ${SVCNAME} init script is written for baselayout-2" + eerror "Please do not use it with baselayout-1" + return 1 + fi + + start_addon raid +} + +stop() { + stop_addon raid +} diff --git a/sys-fs/mdadm/files/raid-start.sh-3.0 b/sys-fs/mdadm/files/raid-start.sh-3.0 new file mode 100755 --- /dev/null +++ b/sys-fs/mdadm/files/raid-start.sh-3.0 @@ -0,0 +1,28 @@ +# /lib/rcscripts/addons/raid-start.sh: Setup raid volumes at boot +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/mdadm/files/raid-start.sh-3.0,v 1.2 2010/06/03 02:03:40 vapier Exp $ + +[ -f /proc/mdstat ] || exit 0 + +# Start software raid with mdadm +if [ -x /sbin/mdadm ] ; then + ebegin "Starting up RAID devices" + output=$(mdadm -As 2>&1) + ret=$? + [ ${ret} -ne 0 ] && echo "${output}" + eend ${ret} +fi + +if [ -x /sbin/blockdev ] ; then + partitioned_devs=$(ls /dev/md_d* 2>/dev/null) + if [ -n "${partitioned_devs}" ]; then + ebegin "Creating RAID device partitions" + /sbin/blockdev ${partitioned_devs} + eend 0 + # wait because vgscan runs next, and we want udev to fire + sleep 1 + fi +fi + +# vim:ts=4 diff --git a/sys-fs/mdadm/files/raid-stop.sh b/sys-fs/mdadm/files/raid-stop.sh new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/files/raid-stop.sh @@ -0,0 +1,19 @@ +# /lib/rcscripts/addons/raid-stop.sh: Stop raid volumes at shutdown +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/mdadm/files/raid-stop.sh,v 1.4 2008/06/28 16:36:46 vapier Exp $ + +[ -f /proc/mdstat ] || exit 0 + +# Stop software raid with mdadm (new school) +mdadm_conf="/etc/mdadm/mdadm.conf" +[ -e /etc/mdadm.conf ] && mdadm_conf="/etc/mdadm.conf" +if [ -x /sbin/mdadm -a -f "${mdadm_conf}" ] ; then + ebegin "Shutting down RAID devices (mdadm)" + output=$(mdadm -Ss 2>&1) + ret=$? + [ ${ret} -ne 0 ] && echo "${output}" + eend ${ret} +fi + +# vim:ts=4 diff --git a/sys-fs/mdadm/mdadm-3.1.4.ebuild b/sys-fs/mdadm/mdadm-3.1.4.ebuild new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/mdadm-3.1.4.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/mdadm/mdadm-3.1.4.ebuild,v 1.8 2010/11/09 19:17:44 armin76 Exp $ + +inherit eutils flag-o-matic + +DESCRIPTION="A useful tool for running RAID systems - it can be used as a replacement for the raidtools" +HOMEPAGE="http://neil.brown.name/blog/mdadm" +SRC_URI="mirror://kernel/linux/utils/raid/mdadm/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" +IUSE="static" + +DEPEND="" +RDEPEND=">=sys-apps/util-linux-2.16" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${PN}-3.0-dont-make-man.patch + epatch "${FILESDIR}"/${PN}-2.6-syslog-updates.patch + epatch "${FILESDIR}"/${PN}-2.6.4-mdassemble.patch #211426 + use static && append-ldflags -static + + sed -i -e 's:-z now::' Makefile || die #331653 +} + +src_compile() { + emake \ + CROSS_COMPILE=${CHOST}- \ + CWFLAGS="-Wall" \ + CXFLAGS="${CFLAGS}" \ + all mdassemble \ + || die "emake failed" +} + +src_install() { + emake DESTDIR="${D}" install || die + into / + dosbin mdassemble || die + dodoc ChangeLog INSTALL TODO README* ANNOUNCE-${PV} + + exeinto /$(get_libdir)/rcscripts/addons + newexe "${FILESDIR}"/raid-start.sh-3.0 raid-start.sh || die + newexe "${FILESDIR}"/raid-stop.sh raid-stop.sh || die + + insinto /etc + newins mdadm.conf-example mdadm.conf + newinitd "${FILESDIR}"/mdadm.rc mdadm || die + newconfd "${FILESDIR}"/mdadm.confd mdadm || die + newinitd "${FILESDIR}"/mdraid.rc-3.1.1 mdraid || die + newconfd "${FILESDIR}"/mdraid.confd mdraid || die + + # do not rely on /lib -> /libXX link + sed -i \ + -e "s-/lib/rcscripts/-/$(get_libdir)/rcscripts/-" \ + "${D}"/etc/init.d/* +} + +pkg_postinst() { + elog "If using baselayout-2 and not relying on kernel auto-detect" + elog "of your RAID devices, you need to add 'mdraid' to your 'boot'" + elog "runlevel. Run the following command:" + elog "rc-update add mdraid boot" +} diff --git a/sys-fs/mdadm/metadata.xml b/sys-fs/mdadm/metadata.xml new file mode 100644 --- /dev/null +++ b/sys-fs/mdadm/metadata.xml @@ -0,0 +1,5 @@ + + + +base-system +