X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=drbd.spec;h=312a0fd6a39829b92683aec1e0ecf6c85887bc55;hb=7de43e0acdebffbf83a47a4ff1506144016b36d3;hp=4a5eecd2f490648ae5ebe3e25290c06a93bfb3f3;hpb=22e491219688277efbd3f78a6cca92f772c4c535;p=packages%2Fdrbd.git diff --git a/drbd.spec b/drbd.spec index 4a5eecd..312a0fd 100644 --- a/drbd.spec +++ b/drbd.spec @@ -1,21 +1,53 @@ +# +# TODO: +# - trigger to update drbd-8.2 config +# - warning: Installed (but unpackaged) file(s) found: +# /etc/xen/scripts/block-drbd +# /usr/lib/ocf/resource.d/linbit/drbd +# +# 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 -# conditional build -# _without_dist_kernel without kernel from distribution - -%define _kernel24 %(echo %{_kernel_ver} | grep -q '2\.[012]\.' ; echo $?) +%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 3 +%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.1 -%define rel 10 -Release: %{rel} +Summary(pl.UTF-8): drbd jest urządzeniem blokowym dla klastrów o wysokiej niezawodności +Name: %{pname}%{_alt_kernel} +Version: 8.3.2 +Release: %{_rel} License: GPL Group: Base/Kernel -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/8.3/%{pname}-%{version}.tar.gz +# Source0-md5: 8aa8f7891d397ff25b7a3f77f56d353b +Patch0: %{pname}-Makefile.patch +Patch1: %{pname}-swab.patch +Patch2: %{pname}-parallel-install.patch +Patch3: %{pname}-bash-completion-install.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,176 +55,181 @@ 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 -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 +%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(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 -Prereq: rc-scripts -Prereq: chkconfig +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 +Obsoletes: drbdsetup8 %description -n drbdsetup Setup tool and init scripts for DRBD. -%description -n drbdsetup -l pl -Narzêdzie konfiguracyjne i skrypty startowe dla DRBD. +%description -n drbdsetup -l pl.UTF-8 +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} +%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 -Prereq: /sbin/depmod -%{!?_without_dist_kernel:%requires_releq_kernel_up} +%{?with_dist_kernel:%requires_releq_kernel} +Requires(post,postun): /sbin/depmod Requires: drbdsetup -%description -n kernel-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 -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. +%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. + +%package -n bash-completion-drbd +Summary: bash-completion for drbd +Summary(pl.UTF-8): Bashowe uzupełnianie poleceń dla drbd +Group: Applications/Shells +Requires: bash-completion + +%description -n bash-completion-drbd +This package provides bash-completion for 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_str} +%description -n bash-completion-drbd -l pl.UTF-8 +Ten pakiet dostarcza bashowe uzupełnianie poleceń dla drbd. + +%package -n drbd-udev +Summary: udev rules for drbd kernel module +Summary(pl.UTF-8): Reguły udev dla modułów jądra Linuksa dla drbd Group: Base/Kernel -Prereq: /sbin/depmod -%{!?_without_dist_kernel:%requires_releq_kernel_smp} -Requires: drbdsetup +Requires: udev-core -%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 -n drbd-udev +udev rules for drbd kernel module. -%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. +%description -n drbd-udev -l pl.UTF-8 +Reguły udev dla modułu jądra Linuksa dla drbd. %prep -%setup -q -n %{name} -%if %{_kernel24} -%patch -p1 -%endif +%setup -q -n %{pname}-%{version} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %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 -%endif - SMPFLAG="-D__SMP__ -D__KERNEL_SMP=1" \ - KERNVER="%{_kernel_ver}" \ - INCLUDE="-I%{_kernelsrcdir}/include" \ - DEBUGFLAGS="%{rpmcflags} %{?debug:-DDBG}" \ - 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 userspace} +%{__make} tools \ + KVER=dummy \ + CC="%{__cc}" \ + OPTCFLAGS="%{rpmcflags}" \ + LDFLAGS="%{rpmldflags}" %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}" \ - 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} -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 +%if %{with kernel} +%install_kernel_modules -m drbd/drbd -d kernel/drivers/block +%endif -install user/drbdsetup $RPM_BUILD_ROOT%{_sbindir} -install scripts/drbd.conf $RPM_BUILD_ROOT%{_sysconfdir} +%if %{with userspace} +%{__make} install -C scripts \ + DRBD_ENABLE_UDEV=1 \ + PREFIX=$RPM_BUILD_ROOT 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 +rm -rf $RPM_BUILD_ROOT/etc/init.d +install user/{drbdadm,drbdmeta,drbdsetup} $RPM_BUILD_ROOT/sbin -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 +%attr(755,root,root) %{_sysconfdir}/ha.d/resource.d/drbdupper +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/drbd.conf %{_mandir}/man[58]/* +%dir /usr/lib/drbd +%attr(755,root,root) /usr/lib/drbd/* +%attr(755,root,root) %{_sbindir}/drbd-overview -%files -n kernel-block-drbd +%files -n bash-completion-drbd %defattr(644,root,root,755) -%doc *.gz -/lib/modules/%{_kernel_ver}/misc/drbd.o +/etc/bash_completion.d/drbdadm -%files -n kernel-smp-block-drbd +%files -n drbd-udev %defattr(644,root,root,755) -%doc *.gz -/lib/modules/%{_kernel_ver}smp/misc/drbd.o +%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/65-drbd.rules +%endif + +%if %{with kernel} +%files -n kernel%{_alt_kernel}-block-drbd +%defattr(644,root,root,755) +%doc ChangeLog README +/lib/modules/%{_kernel_ver}/block/drbd.ko* +%endif