drbd/drbd.spec

502 lines
18 KiB
RPMSpec
Raw Normal View History

#
# spec file for package drbd (Version 0.7.23)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: drbd
BuildRequires: glib-devel kernel-source kernel-syms
Summary: Distributed Replicated Block Device
Version: 0.7.23
Release: 1
Source: %{name}-%{version}.tar.gz
# Source: drbd-SVN.tar.bz2
Source1: drbd-Makefile.module
Source2: drbd-modprobe.d
Patch0: drbd-optflags.patch
Patch1: drbd-kver.patch
License: GNU General Public License (GPL)
Group: Productivity/Clustering/HA
Provides: drbdsetup drbd-control
URL: http://www.drbd.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: %insserv_prereq %fillup_prereq fileutils
%suse_kernel_module_package kdump um
%description
Drbd is a distributed replicated block device. It mirrors a block
device over the network to another machine. Think of it as networked
raid 1. It is a building block for setting up clusters.
Authors:
--------
Philipp Reisner <philipp.reisner@linbit.com>
Lars Ellenberg <lars.ellenberg@linbit.com>
%package KMP
Summary: Distributed Replicated Block Device
Group: System/Kernel
%description KMP
Drbd is a distributed replicated block device. It mirrors a block
device over the network to another machine. Think of it as networked
raid 1. It is a building block for setting up clusters.
Authors:
--------
Philipp Reisner <philipp.reisner@linbit.com>
Lars Ellenberg <lars.ellenberg@linbit.com>
%prep
%setup -n drbd-%{version}
%patch0 -p1
%patch1 -p0
mkdir source
cp -a drbd/. source/. || :
cp %{SOURCE1} source/Makefile
mkdir obj
%build
export RPM_BUILD_ROOT
export DIST=suselike
mkdir -p %{buildroot}
make clean
make PREFIX=%{buildroot}/ OPTFLAGS="$RPM_OPT_FLAGS" tools
export EXTRA_CFLAGS='-DVERSION=\"%version\"'
for flavor in %flavors_to_build; do
rm -rf obj/$flavor
cp -r source obj/$flavor
make -C /usr/src/linux-obj/%_target_cpu/$flavor modules \
M=$PWD/obj/$flavor
done
%install
export RPM_BUILD_ROOT
export DIST=suselike
make PREFIX=%{buildroot}/ install-tools
ln -sf ../etc/init.d/drbd $RPM_BUILD_ROOT/sbin/rcdrbd
ln -sf drbddisk $RPM_BUILD_ROOT/etc/ha.d/resource.d/datadisk
mkdir -p $RPM_BUILD_ROOT/var/lib/drbd
#
# and I only want to install a hint to the example conf
#
cat <<___ > $RPM_BUILD_ROOT/etc/drbd.conf
#
# please have a a look at the example configuration file in
# %{_docdir}/drbd/drbd.conf
#
___
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d/
cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/modprobe.d/drbd
# Install kernel modules:
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
export INSTALL_MOD_DIR=updates
for flavor in %flavors_to_build; do
make -C /usr/src/linux-obj/%_target_cpu/$flavor modules_install \
M=$PWD/obj/$flavor
done
%clean
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
%post
%{fillup_and_insserv -p}
%postun
%{insserv_cleanup}
%files -n drbd
%defattr(-, root, root)
%config /etc/drbd.conf
/sbin/drbdadm
/sbin/drbdsetup
/sbin/rcdrbd
/var/lib/drbd
%config /etc/init.d/drbd
%config /etc/modprobe.d/drbd
%dir /etc/ha.d
%dir /etc/ha.d/resource.d
/etc/ha.d/resource.d/drbddisk
/etc/ha.d/resource.d/datadisk
%doc %{_mandir}/man5/drbd.conf.5*
%doc %{_mandir}/man8/drbd.8*
%doc %{_mandir}/man8/drbdsetup.8*
%doc %{_mandir}/man8/drbdadm.8*
%doc %{_mandir}/man8/drbddisk.8*
%doc COPYING
%doc README
%doc ChangeLog
%doc upgrade_*.txt
%doc scripts/drbd.conf
%changelog -n drbd
* Mon Jan 15 2007 - lmb@suse.de
- Update to 0.7.23 for Linux kernels >2.6.19.
* Mon Oct 30 2006 - lmb@suse.de
- Update to the officially released 0.7.22 version.
- Implement "freeze_io" feature.
- convert-MODULE_PARM.diff: drop unneeded patch.
* Fri Oct 06 2006 - lmb@suse.de
- Update to 0.7.22:
- In protocol A and B, on connection loss, drbd could "forget" to set
certain areas out of sync.
- fix races between failure in drbd_send_dblock and concurrently
running tl_clear.
- fix potential access-afer-free in drbd_dio_end.
- fix possible list corruption respective resulting deadlock in
receive_DataRequest.
- improved the drbd_thread_stop / start code.
* Mon Aug 14 2006 - lmb@suse.de
- Update to 0.7.21.
* Fixed the "syncer stalled" after reconnect symptom.
* Fixed the "stalled in WFParams" after reconnect symptom. The cause
of this bug was actually a misuse of the data socket.
* Allow to set the uplug_watermark to 1, only usefull for very strange
cases.
* The GC comparison code failed to start a resync in case the two
cluster node failed simultaniously (common power failure).
* Fixed DRBD's code to start kernel threads to work on 2.6.17 also.
* IOCTL return codes fixed for 32bit userland - 64 bit kernel
setups.
* New config option "unplug-watermark".
* Released the drbd_alloc_ee() / drbd_free_ee() implementation from
the DRBD+ branch to the main branch.
* Fixed a bug where lc_del() left a list poison in an LRU chache's
hash table. The only way to trigger this bug was:
up (>>200M), primary, mkfs, resize to 200M, down, up
* DRBD now propagates the backing storage's read ahead properties
to upper layers. With devices that read very fast, this is
important.
* GFP_KERNEL was changed to GFP_NOIO in a few places, to make it
more save against deadlocks in the memory subsystem.
* Thu May 04 2006 - lmb@suse.de
- Import fixes from 0.7.18:
- Under high memory pressure it was possible to hit a deadlock on a
kmalloc(). Changed the GFP mask, it is no longer possible to deadlock
it with memory pressure.
- With very unlucky network timing during connect DRBD falls into a
connect / drop-connection loop, that as soon as DRBD is in this loop
is very stable. This is fixed now, DRBD detects this situation an
breaks out of it.
- Fix to the init-script. Now it waits until udev has created the device
nodes of _all_ resources.
- A small fix for the 32bit userland 64bit kernel people, running older
kernels.
- Improved handling of IO errors during initial read in of the activity
log.
* Sun Apr 02 2006 - agruen@suse.de
- convert-MODULE_PARM.diff: Convert from the obsolete MODULE_PARM
to the new module_param.
* Mon Mar 27 2006 - lmb@suse.de
- Fix memory allocation flags for the activity log (GFP_KERNEL ->
GFP_NOIO) to avoid possible deadlock.
* Mon Mar 06 2006 - lmb@suse.de
- Import upstream fixes from 0.7.17:
- There was a bug that could cause the activity log to be not applied
after a primary crash, when an other size than 127 elements was
configured.
- There was a bug in the activity log code, that could cause that the
latest update to the AL is omitted at recovery time.
- The "Marked additional XXKB as out-of-synced based on AL." message
showed one one eighth of the real amount.
* Thu Feb 16 2006 - lmb@suse.de
- Update to 0.7.16, new fixes:
- DRBD no longer shrinks an consistent device if it gets connected to
an smaller peer or attached to a smaller disk.
- There was a bug related to the degr-wcf-timeout config option, it was
never used in recent DRBD releases. Fixed.
* Fri Feb 03 2006 - agruen@suse.de
- drbd.spec: Replace %%arch with %%_target_cpu.
* Thu Feb 02 2006 - ro@suse.de
- added KMP subpackage (required with suse_kernel_module_package)
* Tue Jan 31 2006 - lmb@suse.de
- Change km_drbd to a KMP.
- Import fix to deal with serialized recursive calls to
generic_make_request() and avoid a deadlock (SVN r2056).
* Thu Jan 26 2006 - lmb@suse.de
- Compile fix for 2.6.16-rc1.
* Wed Jan 25 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
* Mon Jan 23 2006 - lmb@suse.de
- Import some updated documentation.
* Tue Dec 20 2005 - lmb@suse.de
- Update to 0.7.15.
* Thu Dec 01 2005 - lmb@suse.de
- Update to 0.7.14/SVN.
* Thu Sep 01 2005 - lmb@suse.de
- Switch to stable version 0.7.13.
* Thu Jun 30 2005 - meissner@suse.de
- use RPM_OPT_FLAGS correctly.
* Mon Feb 21 2005 - lmb@suse.de
- Update to upstream 0.8_pre1 (SVN 1763).
* Wed Feb 02 2005 - lmb@suse.de
- Update to upstream 0.7.10 (1754).
* Fri Jan 14 2005 - ro@suse.de
- fix typo in specfile
* Wed Dec 01 2004 - lmb@suse.de
- Update to upstream version 0.7.6.
* Mon Sep 20 2004 - lmb@suse.de
- Merge fixes from SLES9 SP1 with STABLE.
* Fri Sep 03 2004 - lmb@suse.de
- Realign with upstream.
* Fri Aug 27 2004 - lmb@suse.de
- Allow invalidate if cstate<Connected and Secondary
- Data integrity protection: Disallow the user to make a primary node
SyncTarget via IOCTLs
- Fix modprobe.d documentation (for users who do want to use the new
block major explicitly).
- Cosmetic: Disable XFS statistics by default.
* Wed Aug 25 2004 - lmb@suse.de
- Fix human-count handling to avoid more data inconsistency.
- SLES9/SL9.1: Do NOT use new major number by default.
- Pre-generate documentation. Shorten dependencies even more!
* Mon Aug 16 2004 - lmb@suse.de
- Shrink dependency list even further.
* Mon Aug 16 2004 - lmb@suse.de
- Remove subversion requirement for building with perl hack.
* Tue Aug 10 2004 - lmb@suse.de
- Add modprobe.d file so that upgrading from previous versions is
smooth.
* Fri Aug 06 2004 - lmb@suse.de
- Update to 0.7.2-final (still from SVN).
- Proper handling of backing storage devices that occasionally fail
READA (=read ahead) requests. (E.g. LVM and MD) DRBD now fails READA
requests itself, if a resynchronisation is running and it would need
to fetch the block from its peer.
- "drbdadm adjust" had a race, which caused random errors. ( Missing
waitpid() ). Fixed now.
- Properly substract SyncPause times from the syncer performance
numbers.
- Fix to the syncer progress bar in /proc/drbd.
* Fri Aug 06 2004 - lmb@suse.de
- Fix minor module build issue.
* Wed Aug 04 2004 - lmb@suse.de
- Upgrade to 0.7.2-pre from SVN
- Changes block major from 43 to officially reserved 147 and from
/dev/nbXX to /dev/drbdXX.
- Work-around for XFS bug.
- Handle human and timeout counters correctly.
- Some bugfixes and speedups in particular for protocol A and B.
* Wed Jul 07 2004 - lmb@suse.de
- Fix various 64bit issues. (Final part of #41538)
* Thu Jul 01 2004 - lmb@suse.de
- Reenable fixed zero-copy again. (#42222)
- Fix drbd to work with hard sector sizes != 512bytes (dasd)
(#41538)
- Fix 64bit problem when calling wait_event_interruptible_timeout()
- Merge upstream code cleanups.
* Fri Jun 18 2004 - lmb@suse.de
- Update to drbd-0.7-pre8 from upstream:
- Disabling zero-copy IO for now (#41852).
- Bitmap code restructured and lots of bugs fixed.
- Safe default: Always force a full-resync on initial setup.
- Ensuring that we never sync/read from an inconsistent peer.
- Various other fixes.
* Wed Jun 09 2004 - lmb@suse.de
- fix ioctls on s390x
- Fix failure in local disk handling.
* Wed Jun 02 2004 - lmb@suse.de
- Do not go into in an infinite loop on recursive symlinks under /dev.
- More consistent error handling in the kernel module.
* Tue Jun 01 2004 - lmb@suse.de
- Import test harness.
- More fixes from upstream:
+ Rate-limit printks to prevent DoS
+ Test for whether the lower level device is detached in all cases
+ Do not send several Write Hints in a row
* Thu May 27 2004 - lmb@suse.de
- Import bugfixes from upstream (equivalent to drbd-0.7-rc1).
(Replaces some previously separate patches.)
- Fix drbddisk to reply to heartbeat status inquiries correctly.
- Clean up build.
- Enable more verbose logging.
* Tue May 18 2004 - lmb@suse.de
- Fix recalc_sigpending useage.
- Activate additional debugging useful for test harness runs.
* Wed May 12 2004 - lmb@suse.de
- Update to drbd 0.7-pre7, bugfix release
* Thu Apr 29 2004 - kraxel@suse.de
- one more kernel build fix, previous was incomplete :-/
* Wed Apr 28 2004 - kraxel@suse.de
- fix kernel build failure.
* Sat Apr 24 2004 - lmb@suse.de
- Fix random memory corruption bug.
* Fri Apr 23 2004 - lmb@suse.de
- Update to latest CVS to fix SMP issues.
* Tue Apr 06 2004 - agruen@suse.de
- Add missing include path (testing with Makefile.suse currently
does not catch this case).
* Tue Mar 30 2004 - lmb@suse.de
- Update to CVS-2004-03-30
- Should fix #37446
- Add new magic for km test builds if kernel-source is present.
* Fri Mar 19 2004 - lmb@suse.de
- Update to latest CVS once more.
- Kill any files laying around from patches or CVS artifacts.
* Mon Mar 15 2004 - lmb@suse.de
- Update to latest CVS.
* Thu Mar 04 2004 - kraxel@suse.de
- add olh's regparm fix.
* Thu Feb 19 2004 - lmb@suse.de
- Upgrade to 0.7_pre5 from upstream.
- Include some hacks to test build of the km_ modules.
* Tue Feb 17 2004 - lmb@suse.de
- Stale patch included last time.
* Tue Feb 17 2004 - lmb@suse.de
- Fix at least the build on ppc64, x86_64 and ia64.
* Mon Feb 16 2004 - lmb@suse.de
- Upgrade to drbd 0.7
- Reenable new & wonderful km_drbd package
* Mon Jan 26 2004 - ro@suse.de
- comment out km_drbd package
* Sat Jan 10 2004 - adrian@suse.de
- build as user
* Wed Sep 10 2003 - lmb@suse.de
- Fix some build failures on ppc64.
- Honor CONFIG_DEBUGSYM for UML build.
* Tue Aug 26 2003 - lmb@suse.de
- No longer build the ja & pt docs.
* Tue Aug 19 2003 - lmb@suse.de
- Do apply the patch.
* Mon Aug 18 2003 - lmb@suse.de
- Fix distribution detection.
* Mon Aug 18 2003 - lmb@suse.de
- Added build fixes for building under UML.
- Fix for unacked count << 0.
* Thu Jul 31 2003 - lmb@suse.de
- Upgrade to 0.6.6.
* Fri Jul 25 2003 - schwab@suse.de
- Respect INSTALL_MOD_PATH.
* Wed Jun 11 2003 - kukuk@suse.de
- Add all directories to filelist
* Tue Jun 03 2003 - jg@suse.de
- Update to 0.6.4, changes:
- Reworked build system (i.e. better Makefiles)
- SyncAll works forward insead of backwards. Improves performance on some
storage controlers.
- Reworked /etc/init.d/drbd script (i.e. better support of different bash
releases)
* Wed Mar 26 2003 - jg@suse.de
- Update to 0.6.3, changes:
- Lockup of primary if secondary fails during resync. Fixed. (Stupid!)
- Probabely SMP only deadlock in the drop-conection code path.
- Improved connect code. (The old code could trap into a distributed
deadlock, resulting in an endless connect/disconnect loop.)
- The 'BitMap too small bug' was actually caused by a patch in
SuSE's distribution kernel. This patch makes DRBD 'more' compatible
with SuSE's kernel.
- Improved code to allocate buffers for the rsynchronisation process.
The old code allocated physical adjacent pages although the syncer
does not need them! The old code could fail under high memory pressure.
- Removed BitMap too small patch (is part of 0.6.3)
- added /etc/ha.d/resource.d/datadisk to filelist so it is possible
to install heartbeat after drbd
- removed unneeded /etc/ha.d/resource.d/drbd-control
* Mon Mar 17 2003 - jg@suse.de
- Added "BitMap too small" fix (Bug #25384)
* Wed Feb 12 2003 - jg@suse.de
- Updated to 0.6.2
- SMP fix in drbd_dio_end_sec()
- /etc/init.d/drbd knows about returncodes of fsck
* Tue Dec 17 2002 - jg@suse.de
- Moved drbdsetup from /usr/sbin to /sbin to support /usr on nfs
- Removed accidentialy included CVS directories from tar-file
* Wed Dec 11 2002 - jg@suse.de
- Updated to 0.6.1 final
* Mon Nov 11 2002 - ro@suse.de
- changed neededforbuild <jade_dsl> to <openjade>
- changed neededforbuild <sp> to <opensp>
* Wed Oct 02 2002 - jg@suse.de
- Updated to 0.6.1-pre17, changes:
- Merged syncer speedup code by Lars G. Ellenberg
- Merged most of Lars' modifications to the ioctl interface
- Marged the bug-fixes from the lge-branch
- Implemented the TimoutCounter in the meta-data code.
- Fixed a bug that could cause lockup of the primary node on
SMP systems using a SCSI device for DRBD, it always happened
during resynchronisation. (!)
- Checking /.buildenv now in buildsystem instead of /etc/*-release
* Tue Sep 03 2002 - jg@suse.de
- Init script fixes:
- Removed abortion on non existing block devices (may
break LVM setups)
- Sourcing . /etc/rc.status earlier now
- Allowing execution via rcdrbd link
* Mon Sep 02 2002 - jg@suse.de
- Incorporated latest changes from CVS
- Using lge branch now (syncer much faster)
* Wed Aug 21 2002 - jg@suse.de
- Fixed manpage generation (should now even build on ppc64)
* Tue Aug 20 2002 - jg@suse.de
- Added PreReq tag
* Mon Aug 19 2002 - kukuk@suse.de
- fix compilation on UL
* Tue Aug 13 2002 - jg@suse.de
- Added documentation stuff again
- Modified init script to comply with LSB
* Mon Aug 12 2002 - jg@suse.de
- Updated to latest version from CVS repository
- Removed temporary documentation path from Makefile (does
not build)
* Tue Mar 05 2002 - jg@suse.de
- Fixed broken specfile
* Mon Mar 04 2002 - jg@suse.de
- updated to bugfix release 0.6.1pre10
- Data-corruption bug in SyncAll fixed (was introduced in pre9)
- Fixed an OOPS in tl_check_sector() (was introduced in pre9)
- Fixed Linux-2.2.x compability (was broken in pre9)
- removed documentation patch (not needed anymore)
* Wed Feb 20 2002 - jg@suse.de
- modified init script to honor inittimeout settings
* Wed Feb 20 2002 - jg@suse.de
- added -include /usr/src/linux/include/linux/modversions.h
to km_drbd Makefile in case CONFIG_MODVERSIONS is set
- modified the init script to comply to LSB and to skip
the "interactive" part on boot
* Tue Feb 12 2002 - jg@suse.de
- added -DMODVERSION and -D__SMP__ to km_drbd Makefile (according
to kernel configuration)
* Fri Feb 01 2002 - ro@suse.de
- changed neededforbuild <libpng> to <libpng-devel-packages>
* Tue Jan 29 2002 - jg@suse.de
- updated to 0.6.1-pre9
* Thu Dec 20 2001 - jg@suse.de
- replaced insserv call in specfile with respective macro
* Wed Dec 19 2001 - jg@suse.de
- updated to 0.6.1-pre7 (supports now kernel 2.4)
- removed insserv call after installing
- removed fillup template
- removed some outdated documentation files
* Fri Jul 27 2001 - mt@suse.de
- fixed init script to be LSB compliant
* Fri Jul 20 2001 - kukuk@suse.de
- changed neededforbuild <gs_fonts> to <ghostscript-fonts-std>
- changed neededforbuild <gs_lib> to <ghostscript-library>
- changed neededforbuild <gs_serv> to <ghostscript-serv>
* Sun Jan 14 2001 - mt@suse.de
- added km_drbd subpackage with drbd kernel module source
* Fri Dec 01 2000 - mt@suse.de
- added mkdir $RPM_BUILD_ROOT/sbin in spec
* Fri Dec 01 2000 - kukuk@suse.de
- move sbin/init.d -> etc/init.d
* Mon Nov 27 2000 - mt@suse.de
- fixed link src for rcdrbd in spec file
- changed group to Applications/Clustering
* Thu Nov 23 2000 - mt@suse.de
- removed heartbeat from neededforbuild
* Wed Nov 22 2000 - mt@suse.de
- changed to LSB installation of run level links
* Fri Nov 10 2000 - mt@suse.de
- no module build in spec - drbd module is patched into the kernel
* Wed Nov 08 2000 - mt@suse.de
- new package