forked from LINBIT/drbd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdrbd-kernel.spec
140 lines (118 loc) · 4.99 KB
/
drbd-kernel.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
Name: drbd-kernel
Summary: Kernel driver for DRBD
Version: 9.1.7
Release: 1
# always require a suitable userland
Requires: drbd-utils >= 9.2.0
%global tarball_version %(echo "%{version}" | sed -e "s,%{?dist}$,," -e "s,~,-,")
Source: http://oss.linbit.com/drbd/drbd-%{tarball_version}.tar.gz
License: GPLv2+
Group: System Environment/Kernel
URL: http://www.drbd.org/
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-XXXXXX)
%if ! %{defined suse_version}
BuildRequires: redhat-rpm-config
%endif
%if %{defined kernel_module_package_buildreqs}
BuildRequires: %kernel_module_package_buildreqs
%endif
%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.
%prep
%setup -q -n drbd-%{tarball_version}
%if %{defined suse_kernel_module_package}
# Support also sles10, where kernel_module_package was not yet defined.
# In sles11, suse_k_m_p became a wrapper around k_m_p.
%if 0%{?suse_version} < 1110
# We need to exclude some flavours on sles10 etc,
# or we hit an rpm internal buffer limit.
%suse_kernel_module_package -n drbd -f filelist-suse kdump kdumppae vmi vmipae um
%else
%suse_kernel_module_package -n drbd -f filelist-suse
%endif
%else
# Concept stolen from sles kernel-module-subpackage:
# include the kernel version in the package version,
# so we can have more than one kmod-drbd.
# Needed, because even though kABI is still "compatible" in RHEL 6.0 to 6.1,
# the actual functionality differs very much: 6.1 does no longer do BARRIERS,
# but wants FLUSH/FUA instead.
# For convenience, we want both 6.0 and 6.1 in the same repository,
# and have yum/rpm figure out via dependencies, which kmod version should be installed.
# This is a dirty hack, non generic, and should probably be enclosed in some "if-on-rhel6".
%define _this_kmp_version %{version}_%(echo %kernel_version | sed -r 'y/-/_/; s/\.el.\.(x86_64|i.86)$//;')
%kernel_module_package -v %_this_kmp_version -n drbd -f filelist-redhat %{?lb_flavors}
%endif
%build
rm -rf obj
mkdir obj
for flavor in %flavors_to_build; do
cp -a -r drbd obj/$flavor
#make -C %{kernel_source $flavor} M=$PWD/obj/$flavor
# Workaround: for the whole kernel compatibility patching concept to work,
# we need to be able to refer to the drbd sources as "drbd". We cannot
# change the target filenames of the patches, because they are pre-computed
# and shipped with the release tarball.
# As a "solution", create a symlink called "drbd" that points to the set of
# sources that are currently being built.
# Since we potentially have to build for multiple flavors, remove the link
# after each build and re-create it for the next one.
# Since we are using spatch and shipping pre-computed patches, make sure
# the timestamps are preserved by the cp
ln -s $flavor obj/drbd
make -C obj/$flavor %{_smp_mflags} all KDIR=%{kernel_source $flavor}
rm obj/drbd
done
%install
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
%if %{defined kernel_module_package_moddir}
export INSTALL_MOD_DIR=%{kernel_module_package_moddir drbd}
%else
%if %{defined suse_kernel_module_package}
export INSTALL_MOD_DIR=updates
%else
export INSTALL_MOD_DIR=extra/drbd
%endif
%endif
# Very likely kernel_module_package_moddir did ignore the parameter,
# so we just append it here. The weak-modules magic expects that location.
[ $INSTALL_MOD_DIR = extra ] && INSTALL_MOD_DIR=extra/drbd
for flavor in %flavors_to_build ; do
make -C %{kernel_source $flavor} modules_install \
M=$PWD/obj/$flavor
kernelrelease=$(cat %{kernel_source $flavor}/include/config/kernel.release || make -s -C %{kernel_source $flavor} kernelrelease)
mv obj/$flavor/.kernel.config.gz obj/k-config-$kernelrelease.gz
mv obj/$flavor/Module.symvers ../../RPMS/Module.symvers.$kernelrelease.$flavor.%{_arch}
done
%if %{defined suse_kernel_module_package}
# On SUSE, putting the modules into the default path determined by
# %kernel_module_package_moddir is enough to give them priority over
# shipped modules.
rm -f drbd.conf
%else
mkdir -p $RPM_BUILD_ROOT/etc/depmod.d
printf "override %s * weak-updates/drbd\n" drbd drbd_transport_tcp \
> $RPM_BUILD_ROOT/etc/depmod.d/drbd.conf
install -D misc/SECURE-BOOT-KEY-linbit.com.der $RPM_BUILD_ROOT/etc/pki/linbit/SECURE-BOOT-KEY-linbit.com.der
%endif
%clean
rm -rf %{buildroot}
%changelog
* Tue Apr 20 2022 Philipp Reisner <[email protected]> - 9.1.7
- New upstream release.
* Mon Feb 14 2022 Philipp Reisner <[email protected]> - 9.1.6
- New upstream release.
* Tue Dec 14 2021 Philipp Reisner <[email protected]> - 9.1.5
- New upstream release.
* Tue Oct 5 2021 Philipp Reisner <[email protected]> - 9.1.4
- New upstream release.
* Wed Jul 14 2021 Philipp Reisner <[email protected]> - 9.1.3
- New upstream release.
* Thu May 06 2021 Philipp Reisner <[email protected]> - 9.1.2
- New upstream release.
* Fri Mar 26 2021 Philipp Reisner <[email protected]> - 9.1.1
- New upstream release.
* Thu Feb 25 2021 Philipp Reisner <[email protected]> - 9.1.0
- New upstream release.