# # spec file for package mdadm (Version 3.0) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: mdadm Version: 3.0 Release: 4 %define ver 3.0-devel2 BuildRequires: sgmltool PreReq: %fillup_prereq %insserv_prereq Obsoletes: raidtools AutoReqProv: on Group: System/Base License: GPL v2 or later Url: http://www.kernel.org/pub/linux/utils/raid/mdadm/ Summary: Utility for Configuring MD Setup BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: %{name}-%{ver}.tar.bz2 Patch1: super-intel-undefined-operation.patch Patch2: mdmon-ia64-clone.patch Source1: Software-RAID.HOWTO.tar.bz2 Source2: sysconfig.mdadm Source3: mdadmd Source4: boot.md Source5: mkinitrd-setup.sh Source6: mkinitrd-boot.sh %description Mdadm is a program that can be used to control Linux md devices. It is intended to provide all the functionality of the mdtools and raidtools programs but with a very different interface. Authors: -------- Neil Brown %prep %setup -q -a1 -n %{name}-%{ver} %patch1 %patch2 %build %{suse_update_config -f} make CXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-error" cd Software-RAID.HOWTO sgml2html Software-RAID.HOWTO.sgml sgml2txt Software-RAID.HOWTO.sgml %install make install DESTDIR=$RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT%{_var}/adm/fillup-templates install -d $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}/init.d} install -d $RPM_BUILD_ROOT/lib/udev/devices install -m 755 %{S:4} %{S:3} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/ install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts install -m 755 %{S:5} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-md.sh install -m 755 %{S:6} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-md.sh install -m 644 %{S:2} $RPM_BUILD_ROOT%{_var}/adm/fillup-templates/ ln -sf ../../etc/init.d/mdadmd $RPM_BUILD_ROOT/%{_sbindir}/rcmdadmd install -d $RPM_BUILD_ROOT/var/run/mdadm %post [ -x /sbin/mkinitrd_setup ] && mkinitrd_setup %{fillup_and_insserv -Y boot.md} %postun %restart_on_update mdadmd [ -x /sbin/mkinitrd_setup ] && mkinitrd_setup %{insserv_cleanup} %preun %stop_on_removal mdadmd %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %attr(0755,root,root) %config %{_sysconfdir}/init.d/* %attr(640,root,disk) %dev(b,9,0) /lib/udev/devices/md0 %attr(640,root,disk) %dev(b,9,1) /lib/udev/devices/md1 %attr(640,root,disk) %dev(b,9,2) /lib/udev/devices/md2 %attr(640,root,disk) %dev(b,9,3) /lib/udev/devices/md3 %attr(640,root,disk) %dev(b,9,4) /lib/udev/devices/md4 %attr(640,root,disk) %dev(b,9,5) /lib/udev/devices/md5 %attr(640,root,disk) %dev(b,9,6) /lib/udev/devices/md6 %attr(640,root,disk) %dev(b,9,7) /lib/udev/devices/md7 %attr(640,root,disk) %dev(b,9,8) /lib/udev/devices/md8 %attr(640,root,disk) %dev(b,9,9) /lib/udev/devices/md9 %attr(640,root,disk) %dev(b,9,10) /lib/udev/devices/md10 %attr(640,root,disk) %dev(b,9,11) /lib/udev/devices/md11 %attr(640,root,disk) %dev(b,9,12) /lib/udev/devices/md12 %attr(640,root,disk) %dev(b,9,13) /lib/udev/devices/md13 %attr(640,root,disk) %dev(b,9,14) /lib/udev/devices/md14 %attr(640,root,disk) %dev(b,9,15) /lib/udev/devices/md15 %attr(640,root,disk) %dev(b,9,16) /lib/udev/devices/md16 %attr(640,root,disk) %dev(b,9,17) /lib/udev/devices/md17 %attr(640,root,disk) %dev(b,9,18) /lib/udev/devices/md18 %attr(640,root,disk) %dev(b,9,19) /lib/udev/devices/md19 %attr(640,root,disk) %dev(b,9,20) /lib/udev/devices/md20 %attr(640,root,disk) %dev(b,9,21) /lib/udev/devices/md21 %attr(640,root,disk) %dev(b,9,22) /lib/udev/devices/md22 %attr(640,root,disk) %dev(b,9,23) /lib/udev/devices/md23 %attr(640,root,disk) %dev(b,9,24) /lib/udev/devices/md24 %attr(640,root,disk) %dev(b,9,25) /lib/udev/devices/md25 %attr(640,root,disk) %dev(b,9,26) /lib/udev/devices/md26 %attr(640,root,disk) %dev(b,9,27) /lib/udev/devices/md27 %attr(640,root,disk) %dev(b,9,28) /lib/udev/devices/md28 %attr(640,root,disk) %dev(b,9,29) /lib/udev/devices/md29 %attr(640,root,disk) %dev(b,9,30) /lib/udev/devices/md30 %attr(640,root,disk) %dev(b,9,31) /lib/udev/devices/md31 %doc COPYING ChangeLog README.initramfs TODO mdadm.conf-example mkinitramfs %doc Software-RAID.HOWTO/Software-RAID.HOWTO*{.txt,.html} %doc %{_mandir}/man?/* /sbin/* /lib/udev %{_sbindir}/* %{_var}/adm/fillup-templates/sysconfig.mdadm %dir /var/run/mdadm %dir /lib/mkinitrd %dir /lib/mkinitrd/scripts /lib/mkinitrd/scripts/setup-md.sh /lib/mkinitrd/scripts/boot-md.sh %changelog * Thu Nov 06 2008 nfbrown@suse.de - Update from mdadm-3.0-devel1 to mdadm-3.0-devel2. This includes various bug fixes and enhancements to the extent that DDF and IMSM work reasonably well and can be auto-assembled much like other arrays. - Allow BOOT_MD_USE_MDADM_CONFIG to have the value 'part' that, like 'no', arrays are auto-assembled. However they get assembled as 'mdp' partitionable arrays where possible. This currently only affect arrays with v1.x metadata. This supports FATE#303894 * Fri Oct 03 2008 mmarek@suse.cz - fixed mdmon's clone_monitor on ia64 * Fri Oct 03 2008 mmarek@suse.cz - fixed byte swapping in super-intel.c on big endian. * Wed Sep 24 2008 ro@suse.de - change "udevsettle" to "udevadm settle" * Fri Sep 19 2008 mmarek@suse.cz - added /var/run/mdadm for mdmon - fixed build * Thu Sep 18 2008 nfbrown@suse.de - update to mdadm-3.0-devel1 package version number is set to 3.0 to avodi future confusion. This is a substantial update that provides support for handling the metadata entirely in userspace and thus making easier to handle a variety of metadata formats. Support is included for DDF and for the Intel Matrix metadata used by recent ICH chipsets. An extra program 'mdmon' is needed and included. It is run to monitor any array using 'external' (to the kernel) metadata and will update the metadata in response to device failures etc. This is required for FATE 304219 * Wed Sep 03 2008 hare@suse.de - Call mkinitrd_setup during %%post and %%postun (bnc#413709) * Sun Aug 17 2008 aj@suse.de - Fix init scripts. * Wed Jul 23 2008 hare@suse.de - Include mkinitrd scriptlets. * Fri Jun 20 2008 mmarek@suse.cz - updated to 2.6.7 + fixes from git * Avoid segfault when parsing /proc/mdstat with auto-read-only arrays. * For v0.90 superblocks, print the 'Events' count as a real count, not 2 numbers separated by a dot. * Allow creation of a RAID6 with exactly one missing device. * Use LOG_PID for syslog, so you get the pid of mdadm in the log files. * --export now works with --examine too (not just --detail) * Improve auto-creation of device special file when using --incremental * Simple locking for --incremental so mdadm doesn't get confused when run concurrently with itself. * Make --incremental cope better with arrays that are being reshaped. * Fix autoassemble for stack arrays. - remove /tmp/mdadm.conf in boot.md (bnc#401138) * Wed Apr 30 2008 mmarek@suse.cz - added some fixes from Neil's git repo, fixing bnc#368704 among others * Mon Feb 04 2008 mmarek@suse.cz - correctly display rc_status in boot.md * Wed Jan 23 2008 mmarek@suse.cz - fixed auto-assembly part of boot.md * if /etc/mdadm.conf is empy or only contains whitespace or comments, no autoassembly is done * remove /tmp/mdadm.conf even if a directory [#329678] - dropped mdrun and raidautorun (no longer needed) * Wed Oct 24 2007 mmarek@suse.cz - updated to 2.6.4 * Make "--create --auto=mdp" work for non-standard device names. * Fix restarting of a 'reshape' if it was stopped in the middle. * Fix a segfault when using v1 superblock. * Make --write-mostly effective when re-adding a device to an array. * Various minor fixes - changes in 2.6.3: * allow --write-behind to be set for --grow. * When adding new disk to an array, don't reserve so much bitmap space that the disk cannot store the required data. (Needed when 1.x array was created with older mdadm). * When adding a drive that was a little too small, we did not get the correct error message. * Make sure that if --assemble find an array in the critical region of a reshape, and cannot find the critical data to restart the reshape, it gives an error message. * Fix segfault with '--detail --export' and non-persistent superblocks. * Various manpage updates. * Improved 'raid4' support (--assemble, --monitor) * Option parsing fixes w.r.t -a * Interpret "--assemble --metadata=1" to allow any version 1.x metadata, and be more specific in the "metadata=" message printed with --examine --brief * Fix spare migration in --monitor. * Fri Jul 27 2007 mmarek@suse.cz - changes to the init script [#288454] * don't try to autoassemble if /etc/mdadm.conf exists (even an empty one) * ony autoassemble partitions found in /proc/partitions * Fri Jul 13 2007 mmarek@suse.cz - updated to 2.6.2 * --fail detached and --remove faulty can be used to fail and remove devices that are no longer physically present. * --export option for --detail or present information in a format that can be processed by udev. * fix internal bitmap allocation problems with v1.1, v1.2 metadata. * --help now goes to stdout so you can direct it to a pager. * Various manpage updates. * Make "--grow --add" for linear arrays really work. * --auto-detect to trigger in-kernel autodetect. * Make return code for "--detail --test" more reliable. Missing devices as well as failed devices cause an error. - added some fixes from Neil's git repo (mdadm-git-fixes.patch) * Thu Jun 21 2007 adrian@suse.de - fix changelog entry order * Mon Apr 02 2007 mmarek@suse.cz - updated to 2.6.1 * --monitor was producing some meaningless warnings due to a bug. * Fix some compiler warnings. * Fully support --grow for raid6. If a reshape crashed during the critical period, mdadm wouldn't restore the Q information properly. * Update documentation for --grow. * Report bitmap status in --detail and --examine * Default to v1 superblocks instead of v0.90 if the array is too big for 0.90 to handle. * Sort the output of "mdadm --detail --scan" so that it is in a suitable order for assembling arrays. i.e. components come before an array that they are part of. * Require bitmap files to have a '/' in their name. * Rewrite 'reshape' support including performing a backup of the critical region for a raid5 growth, and restoring that backup after a crash. * Put a 'canary' at each end of the backup so a corruption can be more easily detected. * Support --backup-file for backing-up critical section during growth. * Erase old superblocks (of different versions) when creating new array. * Allow --monitor to work with arrays with >28 devices * Report reshape information in --detail * Handle symlinks in /dev better * Fix mess in --detail output which a device is missing. * Support 'bitmap=' in mdadm.conf for auto-assembling arrays with write-intent bitmaps in separate files. * Fix alignment problem in version-1 superblocks. NOTE: This is an incompatable change affecting raid5 reshape. If you want to reshape a raid5 using version-1 superblocks, use 2.6.17-rc2 or later, and mdadm-2.4.1 or later. * Support 'mailfrom' line in mdadm.conf so the From: line in alert emails can be explicitly set. * Arrange that SparesMissing (which is similar in import to DegradedArray) generates an Email. * Assume "DEVICE partitions" if no DEVICE line is given. * Support new 'offset' layout for raid10. * When creating a bitmap file, choose a chunksize to limit number of bitmap chunks to 2 million. More than this can cause kmalloc failure. * New 'CREATE' line in mdadm.conf for defaults such as owner, group, mode and auto-flag * --detail checks if array has been started or not and includes that in report. * When using --update=uuid on an array with a bitmap, update the bitmap's uuid too. * Add a copy of /proc/mdstat to the mail message sent by mdadm --monitor. * New flag --no-degraded to avoid starting arrays if there are fewer devices available than last time the array was started. This is only needed with --scan, as with --scan, that behaviour is the default. * Support for 'homehost' concept. This is a fairly major update. It includes a configfile option and a command line option for specifying a homehost, records that host in the superblock, and reports the homehost where possible. * Support for Auto Assembly. "mdadm -As" will, if provided with the name of a homehost, try to assemble all arrays it can find that were created for that homehost. See man pages for more details. * Don't try to create devices with --manage or --grow * allow default metadata (superblock) type to be specified in mdadm.conf * Avoid some misdetection of overlapping partitions * Add 'Array Slot' line to --examine for version-1 superblocks to make it a bit easier to see what is happening. * Work around bug in --add handling for version-1 superblocks in 2.6.17 (and prior). * Make -assemble a bit more resilient to finding strange information in superblocks. * When creating devices in /dev/md/ create matching symlinks from /dev. e.g. /dev/md0 -> /dev/md/0. Allow this to be disabled in mdadm.conf or on command line. * Allow a number (of partitions) after the 'yes' option to --auto= This is particularly useful in the 'create' line in mdadm.conf. * Remove partitions from any whole device that is made part of an md array. This is a work-around for annoying messages when the first block on some drive accidentally looks like a partition table. * Close stray fd in mdassemble so that it can assemble stacked devices * If mdassemble finds an array already assembled, it marks it read-write. * Remove error in md_open if array is already active. This isn't needed and gets in the ways if an array was created e.g. in initramfs, but device doesn't yet exist in /dev. * When --assemble --scan is run, if all arrays that could be found have already been started, don't report an error. * Allow --assemble --force to mark a raid6 clean when it has two missing devices (which is needed else if won't assemble. Without this fix it would only assemble if one or zero missing devices. * Support --update=devicesize for cases where the underlying device can change size. * Default to --auto=yes so the array devices with 'standard' names get created automatically, as this is almost always what is wanted. * Give useful message if raid4/5/6 cannot be started because it is not clean and is also degraded. * Increase raid456 stripe cache size if needed to --grow the array. The setting used unfortunately requires intimate knowledge of the kernel, and it not reset when the reshape finishes. * Change 'Device Size' to 'Used Dev Size' because it only shows how much of each device is actually used, not how big they are. * --wait or -W will wait for resync activity to finish on the given devices. * If two drives in a raid5 disappear at the same time, then "-Af" will add them both in rather than just one and forcing the array to 'clean'. This is slightly safer in some cases. * Don't hold md device open for so long in --monitor mode - map_dev can be slow and interferes with trying to stop the array. * Support --uuid= with --create to choose your own UUID. * New major more "--incremental" for incremental assemble of arrays, intended for use with udev. * lots of bugfixes * manpage updates * Wed Jan 10 2007 mmarek@suse.cz - use raidautorun instead of mdrun to autodetect the raid arrays in boot.md [#230733] * Wed Nov 08 2006 prusnak@suse.cz - fixed subscript out of range [#212697] * Wed Sep 20 2006 mjancar@suse.cz - update to 2.5.3 * lots bugfixes * drop all patches (integrated upstream) * Fri Jul 28 2006 olh@suse.de - remove dropped boot.ibmsis from boot.md - boot.rootfsck should start before boot.md (#181972) * Fri Jul 21 2006 olh@suse.de - remove boot.proc from Required-Start: in boot.md (#178753) * Wed May 03 2006 mjancar@suse.cz - fix false SparesMissing error (#171326) * Wed Apr 26 2006 hare@suse.de - Fix init script dependencies - Implement MDADM_DEVICE_TIMEOUT to set a timeout for udevsettle (#149979) * Tue Apr 25 2006 mjancar@suse.cz - add static device nodes for udev (#168824) * Wed Apr 19 2006 mjancar@suse.cz - set $BOOT_MD_USE_MDADM_CONFIG to "yes" by default (#155120) * Fri Apr 07 2006 mjancar@suse.cz - detach mdadmd from tty in rcmdadmd (#160881) * Mon Apr 03 2006 mjancar@suse.cz - fix garbled output with --detail (#160827) - fix fix write-mostly with --add and --re-add (#162968) * Fri Mar 24 2006 mjancar@suse.cz - add /sbin/raidautorun (#159460) * Wed Mar 08 2006 mjancar@suse.cz - add $BOOT_MD_USE_MDADM_CONFIG sysconfig variable (#155120) * Thu Feb 09 2006 mjancar@suse.cz - round free size to chunk size multiply on --create (#148562) * Tue Feb 07 2006 mjancar@suse.cz - move boot.multipath to Should-Start instead of Required-Start * Mon Feb 06 2006 mjancar@suse.cz - add "Obsoletes: raidtools" - start boot.md after boot.multipath - call mdadm without -a from mdrun, an argument is required in 2.2 * Mon Feb 06 2006 mjancar@suse.de - don't start mdadmd by default * Sun Feb 05 2006 mjancar@suse.cz - include option for email to be sent on start (#142105) - fix missing md autostart due to raidtools dropped (#148234) * include mdrun script from Debian * create boot.md initscipt * Sun Feb 05 2006 schwab@suse.de - Fix memset parameters. * Thu Feb 02 2006 mjancar@suse.cz - fix segfault on --assemble (#146514) * Fri Jan 27 2006 mls@suse.de - converted neededforbuild to BuildRequires * Wed Jan 25 2006 olh@suse.de - fix uninitialized variable, memset call and memcmp/memcpy bug mdadm.bug144647-array.init.patch mdadm.bug144647-update_super1-memcpy.patch mdadm.bug144647-add_internal_bitmap0-memcpy.patch * Wed Jan 11 2006 mjancar@suse.cz - update ro 2.2 * Tue Dec 20 2005 ro@suse.de - at least output errors if they occur (instead of ignoring) * Wed Nov 30 2005 schwab@suse.de - Fix broken formats. * Tue Oct 25 2005 aj@suse.de - Build with -fno-strict-aliasing. * Wed Oct 12 2005 mjancar@suse.cz - update to 2.1 * Thu Jul 28 2005 anicka@suse.cz - update to 1.12.0 * Wed Jun 15 2005 meissner@suse.de - use RPM_OPT_FLAGS correctly. * Tue Apr 19 2005 postadal@suse.de - updated to version 1.11.0 - fixed for gcc 4.0 - removed obsoleted patch config-fix * Wed Mar 30 2005 postadal@suse.cz - fixed parsing command line option '--config=partions' [#74603] * Fri Feb 04 2005 postadal@suse.cz - updated to version 1.9.0 * Thu Jan 13 2005 postadal@suse.cz - updated to version 1.8.1 - extended comment in sysconfig.mdadm [#48567] * Fri Aug 06 2004 postadal@suse.cz - updated to version 1.6.0 * added --auto= and --assume-clean options * added "degraded" and "recovering" options to the "Status:" entry * Tue Feb 10 2004 postadal@suse.cz - updated to version 1.5.0 * new commands "mdassemble" * support for raid6 as found in 2.6.2 * support partitioned md arrays with a different major number and naming scheme * added "SparesMissing" event when --monitor first sees an array and it doesn't have the enough spare devices. * Sun Jan 11 2004 adrian@suse.de - add %%defattr * Mon Dec 01 2003 fehr@suse.de - fix quoting problem in start script (#33392) * Fri Aug 29 2003 fehr@suse.de - add PreReq for fillup * Tue Aug 26 2003 fehr@suse.de - add %%stop_on_removal and %%restart_on_update * Thu Aug 14 2003 fehr@suse.de - add missing activation metadata in sysconfig (#28901) * Tue Jul 29 2003 fehr@suse.de - update to new version 1.3.0 of package * Mon Apr 14 2003 postadal@suse.cz - fixed init script (added return value for unimplemented reload function) * Mon Mar 31 2003 postadal@suse.cz - added buildroot, init script, sysconfig - bzip2 sources and cleaned specfile * Thu Mar 20 2003 fehr@suse.de - update to version 1.2.0 of package * Mon Mar 03 2003 fehr@suse.de - update to version 1.1.0 of package * Mon Dec 02 2002 fehr@suse.de - Fix for new glibc/gcc * Tue Sep 17 2002 ro@suse.de - removed bogus self-provides * Fri Sep 13 2002 lmb@suse.de - Fix for 64bit arch; ioctl returns long instead of int (#20339) * Fri Aug 23 2002 lmb@suse.de - Multipath arrays can now be build manually even without a superblock. - One debugging chunk removed from patch. * Tue Aug 13 2002 lmb@suse.de - Fix for the assembly of multipath arrays. * Mon Aug 12 2002 lmb@suse.de - Added patch to support the enhanced multipath features. * Mon Aug 05 2002 fehr@suse.de - make SuSE package from version 1.0.1 of mdadm