X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=drbd.spec;h=68ca6ac84fd839015b00d5372438b6452c4f80b8;hb=c6ef38fad206b63c4abcaeec2fce6a03afe3671a;hp=8a8d1c78de45b18332d178478eb366e11cb79ee6;hpb=8d06e3dac66b9b4fc4305d53169704c2e3c6a341;p=packages%2Fdrbd.git diff --git a/drbd.spec b/drbd.spec index 8a8d1c7..68ca6ac 100644 --- a/drbd.spec +++ b/drbd.spec @@ -1,26 +1,30 @@ +# +# Conditional build: +%bcond_without dist_kernel # allow non-distribution kernel +%bcond_without kernel # don't build kernel modules +%bcond_without smp # don't build SMP module +%bcond_without userspace # don't build userspace module +%bcond_with verbose # verbose build (V=1) +# +%ifarch sparc +%undefine with_smp +%endif -# conditional build -# _without_dist_kernel without kernel form ditribution - -%define _kernel_ver %(grep UTS_RELEASE %{_kernelsrcdir}/include/linux/version.h 2>/dev/null | cut -d'"' -f2) -%define _kernel_ver_str %(echo %{_kernel_ver} | sed s/-/_/g) -%define _kernel24 %(echo %{_kernel_ver} | grep -q '2\.[012]\.' ; echo $?) - -%define rel 1 - +%define _rel 1 Summary: drbd is a block device designed to build high availibility clusters Summary(pl): drbd jest urz±dzeniem blokowym dla klastrów o wysokiej niezawodno¶ci Name: drbd -Version: 0.5.8.1 -Release: %{rel} +Version: 0.7.21 +Release: %{_rel} License: GPL Group: Base/Kernel -Group(de): Grundsätzlich/Kern -Group(pl): Podstawowe/J±dro -Source0: http://www.complang.tuwien.ac.at/reisner/drbd/download/%{name}-%{version}.tar.gz -Patch0: %{name}-kernel24.patch -URL: http://www.complang.tuwien.ac.at/reisner/drbd/ -%{!?_without_dist_kernel:BuildRequires: kernel-headers >= 2.2.20} +Source0: http://oss.linbit.com/drbd/0.7/%{name}-%{version}.tar.gz +# Source0-md5: 17bfc263852db38fa9e51e02eb264e43 +URL: http://www.drbd.org/ +BuildRequires: bison +BuildRequires: flex +%{?with_dist_kernel:BuildRequires: kernel-module-build} +BuildRequires: rpmbuild(macros) >= 1.268 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -45,185 +49,165 @@ Summary: Setup tool and scripts for DRBD Summary(pl): Narzêdzie konfiguracyjne i skrypty dla DRBD Summary(pt_BR): Utilitários para gerenciar dispositivos DRBD Group: Applications/System -Group(de): Applikationen/System -Group(pl): Aplikacje/System -Prereq: rc-scripts -Prereq: chkconfig +Requires(post,preun): /sbin/chkconfig +Requires: rc-scripts +Conflicts: drbdsetup24 %description -n drbdsetup Setup tool and init scripts for DRBD. -%description -l pl -n drbdsetup +%description -n drbdsetup -l pl Narzêdzie konfiguracyjne i skrypty startowe dla DRBD. %package -n kernel-block-drbd -Summary: kernel module with drbd - a block device designed to build high availibility clusters -Summary(pl): Modu³ kernela do drbd - urz±dzenia blokowego dla klastrów o wysokiej niezawodno¶ci -Release: %{rel}@%{_kernel_ver_str} +Summary: Kernel module with drbd - a block device designed to build high availibility clusters +Summary(pl): Modu³ j±dra do drbd - urz±dzenia blokowego dla klastrów o wysokiej niezawodno¶ci +Release: %{_rel}@%{_kernel_ver_str} Group: Base/Kernel -Group(de): Grundsätzlich/Kern -Group(pl): Podstawowe/J±dro -Prereq: /sbin/depmod +%{?with_dist_kernel:%requires_releq_kernel_up} +Requires(post,postun): /sbin/depmod Requires: drbdsetup -Conflicts: kernel-smp-block-drbd -%{!?_without_dist_kernel:Conflicts: kernel-smp} -%{!?_without_dist_kernel:Conflicts: kernel < %{_kernel_ver}} -%{!?_without_dist_kernel:Conflicts: kernel > %{_kernel_ver}} %description -n kernel-block-drbd drbd is a block device which is designed to build high availability clusters. This is done by mirroring a whole block device via (a dedicated) network. You could see it as a network RAID1. -%description -l pl -n kernel-block-drbd +%description -n kernel-block-drbd -l pl drbd jest urz±dzeniem blokowym zaprojektowanym dla klastrów o wysokiej niezawodno¶ci. drbd dzia³a jako mirroring ca³ego urz±dzenia blokowego przez (dedykowan±) sieæ. Mo¿e byæ widoczny jako sieciowy RAID1. %package -n kernel-smp-block-drbd Summary: SMP kernel module with drbd - a block device designed to build high availibility clusters -Summary(pl): Modu³ kernela SMP do drbd - urz±dzenia blokowego dla klastrów o wysokiej niezawodno¶ci -Release: %{rel}@%{_kernel_ver_str} +Summary(pl): Wersja SMP Modu³u j±dra do drbd - urz±dzenia blokowego dla klastrów o wysokiej niezawodno¶ci +Release: %{_rel}@%{_kernel_ver_str} Group: Base/Kernel -Group(de): Grundsätzlich/Kern -Group(pl): Podstawowe/J±dro -Prereq: /sbin/depmod +%{?with_dist_kernel:%requires_releq_kernel_smp} +Requires(post,postun): /sbin/depmod Requires: drbdsetup -Conflicts: kernel-block-drbd -%{!?_without_dist_kernel:Conflicts: kernel-up} -%{!?_without_dist_kernel:Conflicts: kernel < %{_kernel_ver}} -%{!?_without_dist_kernel:Conflicts: kernel > %{_kernel_ver}} %description -n kernel-smp-block-drbd drbd is a block device which is designed to build high availability clusters. This is done by mirroring a whole block device via (a dedicated) network. You could see it as a network RAID1. -%description -l pl -n kernel-smp-block-drbd +%description -n kernel-smp-block-drbd -l pl drbd jest urz±dzeniem blokowym zaprojektowanym dla klastrów o wysokiej niezawodno¶ci. drbd dzia³a jako mirroring ca³ego urz±dzenia blokowego przez (dedykowan±) sieæ. Mo¿e byæ widoczny jako sieciowy RAID1. %prep -%setup -q -n %{name} -%if %{_kernel24} -%patch -p1 -%endif +%setup -q %build - -# SMP begin -%{__make} \ -%ifarch %{ix86} - KAF_i386="%{rpmcflags} -malign-loops=2 -malign-jumps=2 -malign-functions=2 -fomit-frame-pointer" \ -%else -%ifarch %{alpha} - KAF_alpha="%{rpmcfalgs} -ffixed8 -mno-fp-regs" \ +%if %{with userspace} +%{__make} tools \ + CC="%{__cc}" %endif + +%if %{with kernel} +cd drbd +sed -i -e 's#$(CONFIG_BLK_DEV_DRBD)#m#g' Makefile-2.6 +ln -sf Makefile-2.6 Makefile +# kernel module(s) +for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do + if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then + exit 1 + fi + install -d o/include/linux + ln -sf %{_kernelsrcdir}/config-$cfg o/.config + ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers + ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h + %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts + %{__make} -C %{_kernelsrcdir} clean \ + RCS_FIND_IGNORE="-name '*.ko' -o" \ + M=$PWD O=$PWD/o \ + %{?with_verbose:V=1} + %{__make} -C %{_kernelsrcdir} modules \ +%if "%{_target_base_arch}" != "%{_arch}" + ARCH=%{_target_base_arch} \ + CROSS_COMPILE=%{_target_base_cpu}-pld-linux- \ %endif - SMPFLAG="-D__SMP__ -D__KERNEL_SMP=1" \ - KERNVER="%{_kernel_ver}" \ - INCLUDE="-I%{_kernelsrcdir}/include" \ - DEBUGFLAGS="%{rpmcflags} %{?debug:-DDBG}" - -mv drbd/drbd.o drbd-smp.o -# SMP end - -# UP begin -%{__make} \ -%ifarch %{ix86} - KAF_i386="%{rpmcflags} -malign-loops=2 -malign-jumps=2 -malign-functions=2 -fomit-frame-pointer" \ -%else -%ifarch %{alpha} - KAF_alpha="%{rpmcfalgs} -ffixed8 -mno-fp-regs" \ -%endif + HOSTCC="%{__cc}" \ + CPP="%{__cpp}" \ + M=$PWD O=$PWD/o \ + %{?with_verbose:V=1} + mv drbd{,-$cfg}.ko +done %endif - SMPFLAG="" \ - KERNVER="%{_kernel_ver}" \ - INCLUDE="-I%{_kernelsrcdir}/include" \ - DEBUGFLAGS="%{rpmcflags} %{?debug:-DDBG}" -# SMP end %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_sbindir},%{_mandir}/man{5,8},%{_sysconfdir}} \ +install -d $RPM_BUILD_ROOT{/sbin,%{_mandir}/man{5,8},%{_sysconfdir}} \ $RPM_BUILD_ROOT{/etc/rc.d/init.d,/etc/ha.d/resource.d} -%if 0 +%if %{with kernel} install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc -install drbd/drbd.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/drbd.o -install drbd-smp.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/drbd.o -%else -install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/block -install drbd/drbd.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/block -install drbd-smp.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/block/drbd.o +install drbd/drbd-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \ + $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/drbd.ko +%if %{with smp} && %{with dist_kernel} +install drbd/drbd-smp.ko \ + $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/drbd.ko +%endif %endif -install user/drbdsetup $RPM_BUILD_ROOT%{_sbindir} +%if %{with userspace} +install user/{drbdadm,drbdsetup} $RPM_BUILD_ROOT/sbin install scripts/drbd.conf $RPM_BUILD_ROOT%{_sysconfdir} install scripts/drbd $RPM_BUILD_ROOT/etc/rc.d/init.d -ln -sf /etc/rc.d/init.d/drbd $RPM_BUILD_ROOT/etc/ha.d/resource.d/datadisk -install documentation/drbd.conf.5 $RPM_BUILD_ROOT%{_mandir}/man5 -install documentation/drbdsetup.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install scripts/drbddisk $RPM_BUILD_ROOT%{_sysconfdir}/ha.d/resource.d -gzip -9nf ChangeLog README TODO +install documentation/*.5 $RPM_BUILD_ROOT%{_mandir}/man5 +install documentation/*.8 $RPM_BUILD_ROOT%{_mandir}/man8 +%endif %clean rm -rf $RPM_BUILD_ROOT -%post -n kernel-block-drbd -/sbin/depmod -a +%post -n kernel-block-drbd +%depmod %{_kernel_ver} %postun -n kernel-block-drbd -/sbin/depmod -a +%depmod %{_kernel_ver} -%post -n kernel-smp-block-drbd -/sbin/depmod -a +%post -n kernel-smp-block-drbd +%depmod %{_kernel_ver}smp %postun -n kernel-smp-block-drbd -/sbin/depmod -a +%depmod %{_kernel_ver}smp %post -n drbdsetup /sbin/chkconfig --add drbd -if [ -f /var/lock/subsys/drbd ]; then - /etc/rc.d/init.d/drbd restart >&2 -else - echo "Run \"/etc/rc.d/init.d/drbd start\" to start drbd service." >&2 -fi +%service drbd restart %preun -n drbdsetup if [ "$1" = "0" ]; then - if [ -f /var/lock/subsys/drbd ]; then - /etc/rc.d/init.d/drbd stop - fi + %service drbd stop /sbin/chkconfig --del drbd fi +%if %{with userspace} %files -n drbdsetup %defattr(644,root,root,755) -%attr(755,root,root) %{_sbindir}/drbdsetup -%attr(755,root,root) /etc/rc.d/init.d/drbd -%attr(755,root,root) %{_sysconfdir}/ha.d/resource.d/datadisk -%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/drbd.conf +%attr(755,root,root) /sbin/* +%attr(754,root,root) /etc/rc.d/init.d/drbd +%attr(755,root,root) %{_sysconfdir}/ha.d/resource.d/drbddisk +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/drbd.conf %{_mandir}/man[58]/* +%endif +%if %{with kernel} %files -n kernel-block-drbd %defattr(644,root,root,755) -%doc *.gz -%if %{_kernel24} -/lib/modules/%{_kernel_ver}/block/drbd.o -%else -/lib/modules/%{_kernel_ver}/block/drbd.o -%endif +%doc ChangeLog README +/lib/modules/%{_kernel_ver}/misc/* -%if 1 +%if %{with smp} && %{with dist_kernel} %files -n kernel-smp-block-drbd %defattr(644,root,root,755) -%doc *.gz -%if %{_kernel24} -/lib/modules/%{_kernel_ver}smp/block/drbd.o -%else -/lib/modules/%{_kernel_ver}smp/block/drbd.o +%doc ChangeLog README +/lib/modules/%{_kernel_ver}smp/misc/* %endif %endif