X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=drbd.spec;h=68ca6ac84fd839015b00d5372438b6452c4f80b8;hb=c6ef38fad206b63c4abcaeec2fce6a03afe3671a;hp=ef4d934df7a77cecbe1a576a3f3f09705eeaf956;hpb=ea0a006e21767a39284d13b10db95c2d23fe29fb;p=packages%2Fdrbd.git diff --git a/drbd.spec b/drbd.spec index ef4d934..68ca6ac 100644 --- a/drbd.spec +++ b/drbd.spec @@ -1,23 +1,30 @@ # # Conditional build: -# _without_dist_kernel without kernel from distribution +%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) # -%define _kernel24 %(echo %{_kernel_ver} | grep -q '2\.[012]\.' ; echo $?) +%ifarch sparc +%undefine with_smp +%endif +%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.6.4 -%define rel 1 -Release: %{rel} +Version: 0.7.21 +Release: %{_rel} License: GPL Group: Base/Kernel -Source0: http://www.linbit.com/en/filemanager/download/40/%{name}-%{version}.tar.gz -# Source0-md5: 2b65c75c4358d3d5db7e3a2134785315 -Patch0: %{name}-kernel24.patch -URL: http://www.complang.tuwien.ac.at/reisner/drbd/ -%{!?_without_dist_kernel:BuildRequires: kernel-headers >= 2.2.20} -BuildRequires: rpmbuild(macros) >= 1.118 +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 @@ -42,8 +49,9 @@ 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 -PreReq: rc-scripts Requires(post,preun): /sbin/chkconfig +Requires: rc-scripts +Conflicts: drbdsetup24 %description -n drbdsetup Setup tool and init scripts for DRBD. @@ -52,11 +60,11 @@ Setup tool and init scripts for DRBD. 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 -%{!?_without_dist_kernel:%requires_releq_kernel_up} +%{?with_dist_kernel:%requires_releq_kernel_up} Requires(post,postun): /sbin/depmod Requires: drbdsetup @@ -72,10 +80,10 @@ przez (dedykowan %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 -%{!?_without_dist_kernel:%requires_releq_kernel_smp} +%{?with_dist_kernel:%requires_releq_kernel_smp} Requires(post,postun): /sbin/depmod Requires: drbdsetup @@ -90,76 +98,81 @@ niezawodno 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" \ -%endif +%if %{with userspace} +%{__make} tools \ + CC="%{__cc}" %endif - SMPFLAG="-D__SMP__ -D__KERNEL_SMP=1" \ - KERNVER="%{__kernel_ver}" \ - INCLUDE="-I%{_kernelsrcdir}/include" \ - DEBUGFLAGS="%{rpmcflags} %{?debug:-DDBG}" \ - LINUX="%{_kernelsrcdir}" \ - CC="%{kgcc}" - -mv -f 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" \ + +%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 + 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}" \ - LINUX="%{_kernelsrcdir}" \ - CC="%{kgcc}" -# 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 %{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 +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 + +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 +%post -n kernel-block-drbd %depmod %{_kernel_ver} %postun -n kernel-block-drbd %depmod %{_kernel_ver} -%post -n kernel-smp-block-drbd +%post -n kernel-smp-block-drbd %depmod %{_kernel_ver}smp %postun -n kernel-smp-block-drbd @@ -167,35 +180,34 @@ rm -rf $RPM_BUILD_ROOT %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) -%doc documentation/{HOWTO/*.html,*.txt} -%attr(755,root,root) %{_sbindir}/drbdsetup +%attr(755,root,root) /sbin/* %attr(754,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) %{_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 ChangeLog README /lib/modules/%{_kernel_ver}/misc/* +%if %{with smp} && %{with dist_kernel} %files -n kernel-smp-block-drbd %defattr(644,root,root,755) %doc ChangeLog README /lib/modules/%{_kernel_ver}smp/misc/* +%endif +%endif