diff --git a/centos_pkg_dirs b/centos_pkg_dirs index eeed11094..60309e94a 100644 --- a/centos_pkg_dirs +++ b/centos_pkg_dirs @@ -124,3 +124,4 @@ kernel/kernel-modules/intel-ixgbe kernel/kernel-modules/qat17 kernel/kernel-modules/tpmdd kernel/kernel-modules/integrity +kernel/kernel-modules/drbd diff --git a/centos_pkg_dirs_rt b/centos_pkg_dirs_rt index 4c481dc34..7c2f200d6 100644 --- a/centos_pkg_dirs_rt +++ b/centos_pkg_dirs_rt @@ -10,3 +10,4 @@ kernel/kernel-modules/intel-ixgbe kernel/kernel-modules/qat17 kernel/kernel-modules/tpmdd kernel/kernel-modules/integrity +kernel/kernel-modules/drbd diff --git a/kernel/kernel-modules/drbd/PKG-INFO b/kernel/kernel-modules/drbd/PKG-INFO new file mode 100644 index 000000000..667707a10 --- /dev/null +++ b/kernel/kernel-modules/drbd/PKG-INFO @@ -0,0 +1,16 @@ +Metadata-Version: 1.1 +Name: drbd-kernel +Version: 8.4.7 +Summary: Kernel driver for DRBD +Home-page: +Author: +Author-email: +License: GPLv2+ + +Description: +This module is the kernel-dependent driver for DRBD. This is split out so +that multiple kernel driver versions can be installed, one for each +installed kernel. + + +Platform: UNKNOWN diff --git a/kernel/kernel-modules/drbd/centos/build_srpm.data b/kernel/kernel-modules/drbd/centos/build_srpm.data new file mode 100644 index 000000000..0e3d42eb2 --- /dev/null +++ b/kernel/kernel-modules/drbd/centos/build_srpm.data @@ -0,0 +1,4 @@ +COPY_LIST="$FILES_BASE/* \ + $DISTRO/patches/* \ + $CGCS_BASE/downloads/drbd-8.4.7-1.tar.gz" +TIS_PATCH_VER=3 diff --git a/kernel/kernel-modules/drbd/centos/drbd-kernel.spec b/kernel/kernel-modules/drbd/centos/drbd-kernel.spec new file mode 100644 index 000000000..dd88cfc8c --- /dev/null +++ b/kernel/kernel-modules/drbd/centos/drbd-kernel.spec @@ -0,0 +1,159 @@ +%if "%{?_tis_build_type}" == "rt" +%define bt_ext -rt +%else +%undefine bt_ext +%endif + +# Define the kmod package name here. +%define kmod_name drbd + +Name: drbd-kernel%{?bt_ext} +Summary: Kernel driver for DRBD +Version: 8.4.7 +%define upstream_release 1 +Release: %{upstream_release}%{?_tis_dist}.%{tis_patch_ver} +%global tarball_version %(echo "%{version}-%{?upstream_release}" | sed -e "s,%{?dist}$,,") +Group: System Environment/Kernel +License: GPLv2+ +Summary: %{kmod_name} kernel module(s) + +BuildRequires: kernel%{?bt_ext}-devel, redhat-rpm-config, perl, openssl +ExclusiveArch: x86_64 + +# Sources. +Source0: http://oss.linbit.com/drbd/drbd-%{tarball_version}.tar.gz + +# WRS +Patch0001: 0001-remove_bind_before_connect_error.patch + +%define kversion %(rpm -q kernel%{?bt_ext}-devel | sort --version-sort | tail -1 | sed 's/kernel%{?bt_ext}-devel-//') + +Summary: drbd kernel module(s) +Group: System Environment/Kernel +%global _use_internal_dependency_generator 0 +Provides: kernel-modules >= %{kversion} +Provides: drbd-kernel = %{?epoch:%{epoch}:}%{version}-%{release} +Requires(post): /usr/sbin/depmod +Requires(postun): /usr/sbin/depmod +BuildRequires: kernel%{?bt_ext}-devel + +%description +This module is the kernel-dependent driver for DRBD. This is split out so +that multiple kernel driver versions can be installed, one for each +installed kernel. + +%package -n kmod-drbd%{?bt_ext} +Summary: drbd kernel module(s) +%description -n kmod-drbd%{?bt_ext} +This module is the kernel-dependent driver for DRBD. This is split out so +that multiple kernel driver versions can be installed, one for each +installed kernel. + +%post -n kmod-drbd%{?bt_ext} +echo "Working. This may take some time ..." +if [ -e "/boot/System.map-%{kversion}" ]; then + /usr/sbin/depmod -aeF "/boot/System.map-%{kversion}" "%{kversion}" > /dev/null || : +fi +modules=( $(find /lib/modules/%{kversion}/extra/drbd | grep '\.ko$') ) +if [ -x "/sbin/weak-modules" ]; then + printf '%s\n' "${modules[@]}" | /sbin/weak-modules --add-modules +fi +echo "Done." +%preun -n kmod-drbd%{?bt_ext} +rpm -ql kmod-drbd%{?bt_ext}-%{version}-%{release}.x86_64 | grep '\.ko$' > /var/run/rpm-kmod-drbd%{?bt_ext}-modules +%postun -n kmod-drbd%{?bt_ext} +echo "Working. This may take some time ..." +if [ -e "/boot/System.map-%{kversion}" ]; then + /usr/sbin/depmod -aeF "/boot/System.map-%{kversion}" "%{kversion}" > /dev/null || : +fi +modules=( $(cat /var/run/rpm-kmod-drbd%{?bt_ext}-modules) ) +rm /var/run/rpm-kmod-drbd%{?bt_ext}-modules +if [ -x "/sbin/weak-modules" ]; then + printf '%s\n' "${modules[@]}" | /sbin/weak-modules --remove-modules +fi +echo "Done." +%files -n kmod-drbd%{?bt_ext} +%defattr(644,root,root,755) +/lib/modules/%{kversion}/ +%config(noreplace)/etc/depmod.d/drbd.conf +%doc /usr/share/doc/kmod-drbd-%{version}/ + + +# Disable the building of the debug package(s). +%define debug_package %{nil} + +%prep +%setup -q -n drbd-%{tarball_version} +%patch0001 -p1 + +%build +rm -rf obj +mkdir obj +ln -s ../scripts obj/ +cp -r drbd obj/default +make -C obj/default %{_smp_mflags} all KDIR=/usr/src/kernels/%{kversion} + +%install +pwd +%{__install} -d %{buildroot}/lib/modules/%{kversion}/extra/%{kmod_name}/ +%{__install} obj/default/%{kmod_name}.ko %{buildroot}/lib/modules/%{kversion}/extra/%{kmod_name}/ +%{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ +%{__install} -d %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/ +%{__install} ChangeLog %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/ +%{__install} COPYING %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/ +mv obj/default/.kernel.config.gz obj/k-config-$kernelrelease.gz +%{__install} obj/k-config-$kernelrelease.gz %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/ + +echo "override drbd * weak-updates" > %{buildroot}%{_sysconfdir}/depmod.d/drbd.conf + +# Strip the modules(s). +find %{buildroot} -type f -name \*.ko -exec %{__strip} --strip-debug \{\} \; + +# Always Sign the modules(s). +# If the module signing keys are not defined, define them here. +%{!?privkey: %define privkey /usr/src/kernels/%{kversion}/signing_key.priv} +%{!?pubkey: %define pubkey /usr/src/kernels/%{kversion}/signing_key.x509} +for module in $(find %{buildroot} -type f -name \*.ko); +do %{__perl} /usr/src/kernels/%{kversion}/scripts/sign-file \ + sha256 %{privkey} %{pubkey} $module; +done + +%clean +%{__rm} -rf %{buildroot} + +%changelog +* Wed Dec 16 2015 Philipp Reisner - 8.4.7-1 +- New upstream release. + +* Wed Sep 16 2015 Lars Ellenberg - 8.4.6-5 +- New upstream release. + +* Thu Jul 30 2015 Lars Ellenberg - 8.4.6-4 +- New upstream release. + +* Fri Apr 3 2015 Philipp Reisner - 8.4.6-1 +- New upstream release. + +* Mon Jun 2 2014 Philipp Reisner - 8.4.5-1 +- New upstream release. + +* Fri Oct 11 2013 Philipp Reisner - 8.4.4-1 +- New upstream release. + +* Tue Feb 5 2013 Philipp Reisner - 8.4.3-1 +- New upstream release. + +* Thu Sep 6 2012 Philipp Reisner - 8.4.2-1 +- New upstream release. + +* Tue Dec 20 2011 Philipp Reisner - 8.4.1-1 +- New upstream release. + +* Mon Jul 18 2011 Philipp Reisner - 8.4.0-1 +- New upstream release. + +* Fri Jan 28 2011 Philipp Reisner - 8.3.10-1 +- New upstream release. + +* Thu Nov 25 2010 Andreas Gruenbacher - 8.3.9-1 +- Convert to a Kernel Module Package. diff --git a/kernel/kernel-modules/drbd/centos/files/filelist-redhat b/kernel/kernel-modules/drbd/centos/files/filelist-redhat new file mode 100644 index 000000000..28a2f9989 --- /dev/null +++ b/kernel/kernel-modules/drbd/centos/files/filelist-redhat @@ -0,0 +1,11 @@ +%defattr(644,root,root,755) +%doc COPYING +%doc ChangeLog +%if 0%(grep -q "release 5" /etc/redhat-release && echo 1) +/lib/modules/%verrel%variant +%doc obj/k-config-%verrel%variant.gz +%else +/lib/modules/%verrel%dotvariant +%doc obj/k-config-%verrel%dotvariant.gz +%endif +%config /etc/depmod.d/drbd.conf diff --git a/kernel/kernel-modules/drbd/centos/patches/0001-remove_bind_before_connect_error.patch b/kernel/kernel-modules/drbd/centos/patches/0001-remove_bind_before_connect_error.patch new file mode 100644 index 000000000..2060d51c7 --- /dev/null +++ b/kernel/kernel-modules/drbd/centos/patches/0001-remove_bind_before_connect_error.patch @@ -0,0 +1,12 @@ +Index: drbd-8.4.7-1/drbd/drbd_receiver.c +=================================================================== +--- drbd-8.4.7-1.orig/drbd/drbd_receiver.c ++++ drbd-8.4.7-1/drbd/drbd_receiver.c +@@ -718,6 +718,7 @@ out: + /* peer not (yet) available, network problem */ + case ECONNREFUSED: case ENETUNREACH: + case EHOSTDOWN: case EHOSTUNREACH: ++ case EADDRNOTAVAIL: + disconnect_on_error = 0; + break; + default: