# # spec file for package drbd (Version 8.2.5) # # Copyright (c) 2008 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: bison flex glib-devel kernel-source kernel-syms module-init-tools Summary: Distributed Replicated Block Device Version: 8.2.5 Release: 1 Source: %{name}-%{version}.tar.bz2 Patch0: drbd-optflags.patch License: GPL v2 or later 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 Lars Ellenberg %package KMP License: GPL v2 or later 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 Lars Ellenberg %prep %setup -n drbd-%{version} %patch0 -p1 mkdir source cp -a drbd/. source/. || : cp source/Makefile-2.6 source/Makefile mkdir obj %build export RPM_BUILD_ROOT export CONFIG_BLK_DEV_DRBD=m 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 CONFIG_BLK_DEV_DRBD=m export DIST=suselike make PREFIX=%{buildroot}/ install-tools ln -sf ../etc/init.d/drbd $RPM_BUILD_ROOT/sbin/rcdrbd 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 # ___ # 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} %preun %{stop_on_removal} %postun %{insserv_cleanup} %files -n drbd %defattr(644, root, root) %config(noreplace) /etc/drbd.conf %defattr(755, root, root) /sbin/drbdadm /sbin/drbdsetup /sbin/rcdrbd /sbin/drbdmeta /etc/xen/scripts/block-drbd /etc/ha.d/resource.d/drbddisk %config /etc/init.d/drbd %defattr(-, root, root) /var/lib/drbd /usr/lib/drbd %dir /etc/ha.d %dir /etc/ha.d/resource.d %dir /etc/xen %dir /etc/xen/scripts %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 %{_mandir}/man8/drbdmeta.8* %doc COPYING %doc README %doc ChangeLog %doc scripts/drbd.conf %changelog * Tue Apr 15 2008 lmb@suse.de - Update to 8.2.5 (FATE#302403) - Include online-verify + various fixes to it. - Fix races between online-verify and application writes. - Fixed data-integrity-alg features. - Improved latency. - Full support for migration of meta-data from 0.7 -> 0.8. - Fix some more races, bugs, and memory leaks. * Wed Dec 05 2007 ro@suse.de - hack to compile with 2.6.24 * Tue Sep 18 2007 ro@suse.de - do really build a module * Mon Sep 17 2007 lmb@suse.de - Update to drbd 8.0.6 for kernel-compatibility (310187) * Thu Apr 05 2007 lrupp@suse.de - added module-init-tools to BuildRequires * Fri Mar 30 2007 rguenther@suse.de - add flex BuildRequires - add /etc/modprobe.d directory * Fri Mar 30 2007 ro@suse.de - added bison to buildreq * Mon Jan 15 2007 lmb@suse.de - Update to 0.7.23 for Linux kernels >2.6.19. * Tue Oct 31 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 to - changed neededforbuild to * 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 * Tue Sep 03 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 to * 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 to - changed neededforbuild to - changed neededforbuild to * 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