X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=drbd.spec;h=fe84b773e9fc452bd8d05914915ecc851e60731e;hb=051b4c42f4f4253289079dbc73f0ce81df702e8b;hp=28a062253e58370b21592d855855859c627137f4;hpb=8bbec5cd85e6103276c78157a0a9fad9a5b99086;p=packages%2Fdrbd.git diff --git a/drbd.spec b/drbd.spec index 28a0622..fe84b77 100644 --- a/drbd.spec +++ b/drbd.spec @@ -1,21 +1,44 @@ -%define _kernel_ver %(grep UTS_RELEASE %{_kernelsrcdir}/include/linux/version.h 2>/dev/null | cut -d'"' -f2) -%define _kernel24 %(echo %{_kernel_ver} | grep -q '2\.[012]\.' ; echo $?) +# +# Conditional build: +%bcond_without dist_kernel # allow non-distribution kernel +%bcond_without kernel # don't build kernel modules +%bcond_without userspace # don't build userspace module +%bcond_with verbose # verbose build (V=1) +%bcond_with grsec_kernel # build for kernel-grsecurity +# +%ifarch sparc +%undefine with_smp +%endif -%define rel 1 +%if %{without kernel} +%undefine with_dist_kernel +%endif +%if %{with kernel} && %{with dist_kernel} && %{with grsec_kernel} +%define alt_kernel grsecurity +%endif +%if "%{_alt_kernel}" != "%{nil}" +%undefine with_userspace +%endif +%define _rel 1 +%define pname drbd 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 -Release: %{rel} +Summary(pl.UTF-8): drbd jest urządzeniem blokowym dla klastrów o wysokiej niezawodności +Name: %{pname}%{_alt_kernel} +Version: 8.2.5 +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/ -Conflicts: kernel < %{_kernel_ver}, kernel > %{_kernel_ver} +Source0: http://oss.linbit.com/drbd/8.2/%{pname}-%{version}.tar.gz +# Source0-md5: f3297c1d032fd90cd0441285fef05bcb +Patch0: %{pname}-Makefile.patch +URL: http://www.drbd.org/ +%if %{with userspace} +BuildRequires: bison +BuildRequires: flex +%endif +%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2} +BuildRequires: rpmbuild(macros) >= 1.379 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -23,208 +46,140 @@ 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 -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. +%description -l pl.UTF-8 +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. + +%description -l pt_BR.UTF-8 +O DRBD é um dispositivo de bloco que é projetado para construir +clusters de Alta Disponibilidade. Isto é feito espelhando um +dispositivo de bloco inteiro via rede (dedicada ou não). Pode ser +visto como um RAID 1 via rede. Este pacote contém utilitários para +gerenciar dispositivos DRBD. %package -n drbdsetup Summary: Setup tool and scripts for DRBD -Summary(es): Utilities to manage DRBD devices -Summary(pl): Narzêdzie konfiguracyjne i skrypty dla DRBD -Summary(pt_BR): Utilitários para gerenciar dispositivos DRBD +Summary(pl.UTF-8): Narzędzie konfiguracyjne i skrypty dla DRBD +Summary(pt_BR.UTF-8): Utilitários para gerenciar dispositivos DRBD Group: Applications/System -Group(de): Applikationen/System -Group(pl): Aplikacje/System -Prereq: rc-scripts -Requires: %{name} = %{version} +Requires(post,preun): /sbin/chkconfig +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(postun): /usr/sbin/groupdel +Requires: rc-scripts +Provides: group(haclient) +Conflicts: drbdsetup24 %description -n drbdsetup Setup tool and init scripts for DRBD. -%description -l pl -n drbdsetup -Narzêdzie konfiguracyjne i skrypty startowe dla DRBD. - -%description -l pt_BR -O DRBD é um dispositivo de bloco que é projetado para construir -clusters de Alta Disponibilidade. Isto é feito espelhando um -dispositivo de bloco inteiro via rede (dedicada ou não). Pode ser -visto como um RAID 1 via rede. Este pacote contém utilitários para -gerenciar dispositivos DRBD. - -%description -l es -DRBD is a block device which is designed to build High Availability -clusters. This is done by mirroring a whole block device via (maybe -dedicated) network. You could see it as a network RAID 1. This package -contains the utils to manage DRBD devices. - -%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} -Group: Base/Kernel -Group(de): Grundsätzlich/Kern -Group(pl): Podstawowe/J±dro -Prereq: /sbin/depmod -Requires: drbdsetup -Conflicts: kernel-smp-block-drbd -Conflicts: kernel < %{_kernel_ver} -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 -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. +%description -n drbdsetup -l pl.UTF-8 +Narzędzie konfiguracyjne i skrypty startowe dla DRBD. -%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} +%package -n kernel%{_alt_kernel}-block-drbd +Summary: Kernel module with drbd - a block device designed to build high availibility clusters +Summary(pl.UTF-8): 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} +Requires(post,postun): /sbin/depmod Requires: drbdsetup -Conflicts: kernel-block-drbd -Conflicts: kernel < %{_kernel_ver} -Conflicts: kernel > %{_kernel_ver} -%description -n kernel-smp-block-drbd +%description -n kernel%{_alt_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-smp-block-drbd -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. +%description -n kernel%{_alt_kernel}-block-drbd -l pl.UTF-8 +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 -n %{pname}-%{version} +%patch0 -p1 %build -%if 0 -%{__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 \ + KVER=dummy \ + CC="%{__cc}" \ + OPTCFLAGS="%{rpmcflags}" \ + LDFLAGS="%{rpmldflags}" %endif - SMPFLAG="-D__SMP__" \ - KERNVER="%{_kernel_ver}" \ - INCLUDE="-I%{_kernelsrcdir}/include" \ - DEBUGFLAGS="%{rpmcflags} %{?debug:-DDBG}" -mv drbd/drbd.o drbd-smp.o -%endif - -%{__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 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) +%build_kernel_modules -m drbd %endif - SMPFLAG="" \ - KERNVER="%{_kernel_ver}" \ - INCLUDE="-I%{_kernelsrcdir}/include" \ - DEBUGFLAGS="%{rpmcflags} %{?debug:-DDBG}" %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 %{_kernel24} -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 -%if 0 -install drbd-smp.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/drbd.o -%endif -%else -install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/block -install drbd/drbd.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/block -%if 0 -install drbd-smp.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/block/drbd.o -%endif +%if %{with kernel} +%install_kernel_modules -m drbd/drbd -d block %endif -install user/drbdsetup $RPM_BUILD_ROOT%{_sbindir} +%if %{with userspace} +install user/{drbdadm,drbdmeta,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 - -%postun -n kernel-block-drbd -/sbin/depmod -a +%post -n kernel%{_alt_kernel}-block-drbd +%depmod %{_kernel_ver} -%post -n kernel-smp-block-drbd -/sbin/depmod -a +%postun -n kernel%{_alt_kernel}-block-drbd +%depmod %{_kernel_ver} -%postun -n kernel-smp-block-drbd -/sbin/depmod -a +%pre -n drbdsetup +%groupadd -g 60 haclient %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 +%postun -n drbdsetup +if [ "$1" = "0" ]; then + %groupremove haclient +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/drbdadm +%attr(2754,root,haclient) /sbin/drbdsetup +%attr(2754,root,haclient) /sbin/drbdmeta +%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]/* - -%files -n kernel-block-drbd -%defattr(644,root,root,755) -%doc *.gz -%if %{_kernel24} -/lib/modules/%{_kernel_ver}/misc/drbd.o -%else -/lib/modules/%{_kernel_ver}/block/drbd.o %endif -%if 0 -%files -n kernel-smp-block-drbd +%if %{with kernel} +%files -n kernel%{_alt_kernel}-block-drbd %defattr(644,root,root,755) -%doc *.gz -%if %{_kernel24} -/lib/modules/%{_kernel_ver}smp/misc/drbd.o -%else -/lib/modules/%{_kernel_ver}smp/block/drbd.o -%endif +%doc ChangeLog README +/lib/modules/%{_kernel_ver}/block/drbd.ko* %endif