mdadm/mdadm.spec

544 lines
22 KiB
RPMSpec

#
# 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: 9
%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
Patch3: mdadm-destdir.patch
Patch4: mdadm-overflow.patch
Patch5: mdadm-auto-assemble.patch
Patch6: Start-kpartx-for-imsm-devices.patch
Patch7: intel.fixes.patch
Patch8: name.fixes.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 <neilb@suse.de>
%prep
%setup -q -a1 -n %{name}-%{ver}
%patch1
%patch2
%patch3
%patch4
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%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
# remove here, using the one in the udev package
rm -f $RPM_BUILD_ROOT/lib/udev/rules.d/64-md-raid.rules
%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/*
%dir /lib/udev
%dir /lib/udev/devices
%{_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
* Fri Nov 14 2008 nfbrown@suse.de
- intel.fixes.patch : various fixes from intel for
proper handling of their metadata
- name.fixes.patch : various fixes for new handling
of device names - one could cause a crash.
* Sun Nov 09 2008 ro@suse.de
- fix patch apply depth
* Fri Nov 07 2008 nfbrown@suse.de
- mdadm-auto-assemble.patch - fix various bugs in
auto-assemble
- start-kpartx-for-imsm-devices.patch - IMSM devices
need to be partitioned, and may programs including
YaST don't understand partitioned md devices,
so run kpartx to create 'dm' based partitions which
have a better chance for being understood
This relates to FATE#304220
* Fri Nov 07 2008 ro@suse.de
- remove udev rule (conflicting with file in udev package)
* Fri Nov 07 2008 ro@suse.de
- buildfix: add missing DESTDIR to Makefile for udev rule
- fix len in snprintf to silence compiler warning about potential
overflow
* 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