f1da6a
import kmod-14-2.el7.src.rpm
@@ -0,0 +1 @@
|
|
1
|
+
a9fa2993369a285f45aef11a8a2b56e7c57a56b1 SOURCES/kmod-14.tar.xz
|
@@ -1,5 +0,0 @@
|
|
1
|
-
The master branch has no content
|
2
|
-
|
3
|
-
Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
|
4
|
-
|
5
|
-
If you find this file in a distro specific branch, it means that no content has been checked in yet
|
@@ -0,0 +1,475 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
weak-modules - determine which modules are kABI compatible with installed
|
4
|
+
kernels and set up the symlinks in /lib/*/weak-updates.
|
5
|
+
|
6
|
+
Changelog:
|
7
|
+
|
8
|
+
2010/01/10 - Further updates for dracut use on Fedora/RHEL (jcm).
|
9
|
+
2009/09/16 - Rebase and add a bunch of updates for dracut (jcm).
|
10
|
+
|
11
|
+
unset LANG LC_ALL LC_COLLATE
|
12
|
+
|
13
|
+
tmpdir=$(mktemp -td ${0##*/}.XXXXXX)
|
14
|
+
trap "rm -rf $tmpdir" EXIT
|
15
|
+
unset ${!changed_modules_*} ${!changed_initramfs_*}
|
16
|
+
|
17
|
+
initramfs_prefix="/boot" # can customize here
|
18
|
+
dracut="/sbin/dracut"
|
19
|
+
|
20
|
+
if [ ! -x "$dracut" ]
|
21
|
+
then
|
22
|
+
echo "weak-modules: this tool requires a dracut-enabled kernel"
|
23
|
+
exit 1
|
24
|
+
fi
|
25
|
+
|
26
|
+
doit:
|
27
|
+
# A wrapper used whenever we're going to perform a real operation.
|
28
|
+
doit() {
|
29
|
+
[ -n "$verbose" ] && echo "$@"
|
30
|
+
[ -n "$dry_run" ] || "$@"
|
31
|
+
}
|
32
|
+
|
33
|
+
# rpmsort: The sort in coreutils can't sort the RPM list how we want it so we
|
34
|
+
# instead transform the list into a form it will sort correctly, then sort.
|
35
|
+
rpmsort() {
|
36
|
+
local IFS=$' '
|
37
|
+
REVERSE=""
|
38
|
+
rpmlist=($(cat))
|
39
|
+
|
40
|
+
if [ "-r" == "$1" ];
|
41
|
+
then
|
42
|
+
REVERSE="-r"
|
43
|
+
fi
|
44
|
+
|
45
|
+
echo ${rpmlist[@]} | \
|
46
|
+
sed -e 's/-/../g' | \
|
47
|
+
sort ${REVERSE} -n -t"." -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 -k6,6 -k7,7 \
|
48
|
+
-k8,8 -k9,9 -k10,10 | \
|
49
|
+
sed -e 's/\.\./-/g'
|
50
|
+
}
|
51
|
+
|
52
|
+
read_modules_list:
|
53
|
+
# Read in a list of modules from standard input. Convert the filenames into
|
54
|
+
absolute paths and compute the kernel release for each module (either using
|
55
|
+
# the modinfo section or through the absolute path.
|
56
|
+
read_modules_list() {
|
57
|
+
local IFS=$'\n'
|
58
|
+
modules=($(cat))
|
59
|
+
|
60
|
+
for ((n = 0; n < ${#modules[@]}; n++)); do
|
61
|
+
if [ ${modules[n]:0:1} != '/' ]; then
|
62
|
+
modules[n]="$PWD/${modules[n]}"
|
63
|
+
fi
|
64
|
+
if [ -f "${modules[n]}" ]; then
|
65
|
+
module_krels[n]=$(krel_of_module ${modules[n]})
|
66
|
+
else
|
67
|
+
# Try to extract the kernel release from the path
|
68
|
+
set -- "${modules[n]#/lib/modules/}"
|
69
|
+
module_krels[n]=${1%%/*}
|
70
|
+
fi
|
71
|
+
done
|
72
|
+
}
|
73
|
+
|
74
|
+
read_old_initramfs:
|
75
|
+
compare_initramfs_modules() {
|
76
|
+
local old_initramfs=$1
|
77
|
+
local new_initramfs=$2
|
78
|
+
|
79
|
+
rm -rf "$tmpdir/old_initramfs"
|
80
|
+
rm -rf "$tmpdir/new_initramfs"
|
81
|
+
mkdir "$tmpdir/old_initramfs"
|
82
|
+
mkdir "$tmpdir/new_initramfs"
|
83
|
+
|
84
|
+
pushd "$tmpdir/old_initramfs" >/dev/null
|
85
|
+
zcat "$old_initramfs" | cpio -i 2>/dev/null
|
86
|
+
n=0; for i in `find . -iname \*.ko|sort`; do
|
87
|
+
old_initramfs_modules[n]="$i"
|
88
|
+
n=$((n+1))
|
89
|
+
done
|
90
|
+
popd >/dev/null
|
91
|
+
|
92
|
+
pushd "$tmpdir/new_initramfs" >/dev/null
|
93
|
+
zcat "$new_initramfs" | cpio -i 2>/dev/null
|
94
|
+
n=0; for i in `find . -iname \*.ko|sort`; do
|
95
|
+
new_initramfs_modules[n]="$i"
|
96
|
+
n=$((n+1))
|
97
|
+
done
|
98
|
+
popd >/dev/null
|
99
|
+
|
100
|
+
if [ "${#old_initramfs_modules[@]}" == "${#new_initramfs_modules[@]}" ];
|
101
|
+
then
|
102
|
+
for ((n = 0; n < ${#old_initramfs_modules[@]}; n++)); do
|
103
|
+
old_md5=`md5sum $tmpdir/old_initramfs/${old_initramfs_modules[n]}|sed -nre 's:(^\ )* .*:\1:p'`
|
104
|
+
new_md5=`md5sum $tmpdir/new_initramfs/${new_initramfs_modules[n]}|sed -nre 's:(^\ )* .*:\1:p'`
|
105
|
+
if [ ! "$old_md5" == "$new_md5" ];
|
106
|
+
then
|
107
|
+
return 1
|
108
|
+
fi
|
109
|
+
done
|
110
|
+
else
|
111
|
+
return 1
|
112
|
+
fi
|
113
|
+
|
114
|
+
return 0
|
115
|
+
}
|
116
|
+
|
117
|
+
check_initramfs:
|
118
|
+
check and possibly also update the initramfs for changed kernels
|
119
|
+
check_initramfs() {
|
120
|
+
local kernel=$1
|
121
|
+
|
122
|
+
# If there is no initramfs already we will not make one here.
|
123
|
+
if [ -e "$initramfs_prefix/initramfs-$kernel.img" ];
|
124
|
+
then
|
125
|
+
old_initramfs="$initramfs_prefix/initramfs-$kernel.img"
|
126
|
+
tmp_initramfs="$initramfs_prefix/initramfs-$kernel.tmp"
|
127
|
+
new_initramfs="$initramfs_prefix/initramfs-$kernel.img"
|
128
|
+
|
129
|
+
$dracut -f "$tmp_initramfs" "$kernel"
|
130
|
+
|
131
|
+
if ! $(compare_initramfs_modules "$old_initramfs" "$tmp_initramfs");
|
132
|
+
then
|
133
|
+
doit mv "$tmp_initramfs" "$new_initramfs"
|
134
|
+
else
|
135
|
+
rm -f "$tmp_initramfs"
|
136
|
+
fi
|
137
|
+
fi
|
138
|
+
}
|
139
|
+
|
140
|
+
krel_of_module:
|
141
|
+
# Compute the kernel release of a module.
|
142
|
+
krel_of_module() {
|
143
|
+
declare module=$1
|
144
|
+
/sbin/modinfo -F vermagic "$module" | awk '{print $1}'
|
145
|
+
}
|
146
|
+
|
147
|
+
module_is_compatible:
|
148
|
+
# Determine if a module is compatible with a particular kernel release. Also
|
149
|
+
include any symbol deps that might be introduced by other external kmods.
|
150
|
+
module_is_compatible() {
|
151
|
+
declare module=$1 krel=$2 module_krel=$(krel_of_module "$module")
|
152
|
+
|
153
|
+
if [ ! -e "$tmpdir/all-symvers-$krel-$module_krel" ]; then
|
154
|
+
# Symbols exported by the "new" kernel
|
155
|
+
if [ ! -e $tmpdir/symvers-$krel ]; then
|
156
|
+
if [ -e /boot/symvers-$krel.gz ]; then
|
157
|
+
zcat /boot/symvers-$krel.gz \
|
158
|
+
| sed -r -ne 's:^(0x[0]*[0-9a-f]{8}\t[0-9a-zA-Z_]+)\t.*:\1:p'
|
159
|
+
fi > $tmpdir/symvers-$krel
|
160
|
+
fi
|
161
|
+
|
162
|
+
# Symbols that other add-on modules of the "old" kernel export
|
163
|
+
# (and that this module may require)
|
164
|
+
if [ ! -e "$tmpdir/extra-symvers-$module_krel" ]; then
|
165
|
+
if [ -e /lib/modules/$module_krel/extra ] && \
|
166
|
+
[ -n "`find /lib/modules/$module_krel/extra -type f`" ]; then
|
167
|
+
find /lib/modules/$module_krel/extra -name '*.ko' \
|
168
|
+
| xargs nm \
|
169
|
+
| sed -nre 's:^[0]*([0-9a-f]{8}) A __crc_(.*):0x\1 \2:p'
|
170
|
+
fi > $tmpdir/extra-symvers-$module_krel
|
171
|
+
fi
|
172
|
+
|
173
|
+
sort -u $tmpdir/symvers-$krel $tmpdir/extra-symvers-$module_krel \
|
174
|
+
> "$tmpdir/all-symvers-$krel-$module_krel"
|
175
|
+
fi
|
176
|
+
|
177
|
+
# If the module does not have modversions enabled, $tmpdir/modvers
|
178
|
+
# will be empty.
|
179
|
+
/sbin/modprobe --dump-modversions "$module" \
|
180
|
+
| sed -r -e 's:^(0x[0]*[0-9a-f]{8}\t.*):\1:' \
|
181
|
+
| sort -u \
|
182
|
+
> $tmpdir/modvers
|
183
|
+
|
184
|
+
# Only include lines of the second file in the output that don't
|
185
|
+
# match lines in the first file. (The default separator is
|
186
|
+
# <space>, so we are matching the whole line.)
|
187
|
+
join -j 1 -v 2 $tmpdir/all-symvers-$krel-$module_krel \
|
188
|
+
$tmpdir/modvers > $tmpdir/join
|
189
|
+
|
190
|
+
if [ ! -s $tmpdir/modvers ]; then
|
191
|
+
echo "Warning: Module ${module##*/} from kernel $module_krel has no" \
|
192
|
+
"modversions, so it cannot be reused for kernel $krel" >&2
|
193
|
+
elif [ -s $tmpdir/join ]; then
|
194
|
+
[ -n "$verbose" ] &&
|
195
|
+
echo "Module ${module##*/} from kernel $module_krel is not compatible" \ "with kernel $krel in symbols:" $(sed -e 's:.* ::' $tmpdir/join)
|
196
|
+
else
|
197
|
+
[ -n "$verbose" ] &&
|
198
|
+
echo "Module ${module##*/} from kernel $module_krel is compatible" \
|
199
|
+
"with kernel $krel"
|
200
|
+
return 0
|
201
|
+
fi
|
202
|
+
return 1
|
203
|
+
}
|
204
|
+
|
205
|
+
usage() {
|
206
|
+
echo "Usage: ${0##*/} [options] {--add-modules|--remove-modules}"
|
207
|
+
echo "${0##*/} [options] {--add-kernel|--remove-kernel} {kernel-release}"
|
208
|
+
cat <<'EOF'
|
209
|
+
--add-modules
|
210
|
+
Add a list of modules read from standard input. Create
|
211
|
+
symlinks in compatible kernel's weak-updates/ directory.
|
212
|
+
The list of modules is read from standard input.
|
213
|
+
|
214
|
+
--remove-modules
|
215
|
+
Remove compatibility symlinks from weak-updates/ directories
|
216
|
+
for a list of modules. The list of modules is read from
|
217
|
+
standard input. Optionally specify --delete-modules to
|
218
|
+
prevent weak-modules from attempting to locate any
|
219
|
+
compatible modules to replace those being removed.
|
220
|
+
|
221
|
+
--add-kernel
|
222
|
+
Add compatibility symlinks for all compatible modules to the
|
223
|
+
specified or running kernel.
|
224
|
+
|
225
|
+
--remove-kernel
|
226
|
+
Remove all compatibility symlinks for the specified or current
|
227
|
+
kernel.
|
228
|
+
|
229
|
+
--no-initramfs
|
230
|
+
Do not generate an initramfs.
|
231
|
+
|
232
|
+
--verbose
|
233
|
+
Print the commands executed.
|
234
|
+
|
235
|
+
--dry-run
|
236
|
+
Do not create/remove any files.
|
237
|
+
EOF
|
238
|
+
exit $1
|
239
|
+
}
|
240
|
+
|
241
|
+
module_has_changed:
|
242
|
+
Mark if an actual change occured that we need to deal with later by calling
|
243
|
+
# depmod or mkinitramfs against the affected kernel.
|
244
|
+
module_has_changed() {
|
245
|
+
|
246
|
+
declare module=$1 krel=$2
|
247
|
+
|
248
|
+
module=${module%.ko}
|
249
|
+
module=${module##*/}
|
250
|
+
|
251
|
+
eval "changed_modules_${krel//[^a-zA-Z0-9]/_}=$krel"
|
252
|
+
eval "changed_initramfs_${krel//[^a-zA-Z0-9]/_}=$krel"
|
253
|
+
|
254
|
+
}
|
255
|
+
|
256
|
+
add_modules:
|
257
|
+
Read in a list of modules from stdinput and process them for compatibility
|
258
|
+
with installed kernels under /lib/modules.
|
259
|
+
add_modules() {
|
260
|
+
read_modules_list || exit 1
|
261
|
+
if [ ${#modules[@]} -gt 0 ]; then
|
262
|
+
for krel in $(ls /lib/modules/); do
|
263
|
+
[ -e "/boot/symvers-$krel.gz" ] || continue
|
264
|
+
for ((n = 0; n < ${#modules[@]}; n++)); do
|
265
|
+
module="${modules[n]}"
|
266
|
+
module_krel="${module_krels[n]}"
|
267
|
+
case "$module" in
|
268
|
+
/lib/modules/$krel/*)
|
269
|
+
# Module was built against this kernel, update initramfs.
|
270
|
+
module_has_changed $module $krel
|
271
|
+
continue ;;
|
272
|
+
esac
|
273
|
+
|
274
|
+
# Module my also serve as a weak-update built against another
|
275
|
+
# kernel. We need to create symlinks for compatible kernels
|
276
|
+
# under /lib/modules and rerun depmod/dracut for those.
|
277
|
+
|
278
|
+
subpath=`echo $module | sed -nre "s:/lib/modules/$module_krel/([^/]*)/(.*):\2:p"`
|
279
|
+
weak_module="/lib/modules/$krel/weak-updates/${subpath#/}"
|
280
|
+
if [ -r "$weak_module" ]; then
|
281
|
+
weak_krel=$(krel_of_module "$weak_module")
|
282
|
+
if [ "$weak_krel" != "$module_krel" ] &&
|
283
|
+
[ "$(printf "%s\n" "$weak_krel" "$module_krel" \
|
284
|
+
| rpmsort | (read input; echo "$input"; \
|
285
|
+
while read input; do true; done))" = \
|
286
|
+
"$module_krel" ]; then
|
287
|
+
# Keep modules from more recent kernels.
|
288
|
+
[ -n "$verbose" ] && echo \
|
289
|
+
"Keeping module ${module##*/} from kernel $weak_krel for kernel $krel"
|
290
|
+
continue
|
291
|
+
fi
|
292
|
+
fi
|
293
|
+
if module_is_compatible $module $krel; then
|
294
|
+
doit mkdir -p $(dirname $weak_module)
|
295
|
+
doit ln -sf $module $weak_module
|
296
|
+
# Module was built against another kernel, update initramfs.
|
297
|
+
module_has_changed $module $krel
|
298
|
+
fi
|
299
|
+
done
|
300
|
+
done
|
301
|
+
fi
|
302
|
+
}
|
303
|
+
|
304
|
+
remove_modules:
|
305
|
+
Read in a list of modules from stdinput and process them for removal.
|
306
|
+
Parameter is noreplace to delete modules, otherwise link compat.
|
307
|
+
remove_modules() {
|
308
|
+
delete_modules=${1:-replace}
|
309
|
+
|
310
|
+
read_modules_list || exit 1
|
311
|
+
if [ ${#modules[@]} -gt 0 ]; then
|
312
|
+
|
313
|
+
# Hunt for all known users of this module in /lib/modules, remove them
|
314
|
+
# and create symlinks to other compatible modules (downgrade) if
|
315
|
+
# possible, update initramfs for each modified kernel too.
|
316
|
+
|
317
|
+
krels=($(ls /lib/modules/ | rpmsort -r))
|
318
|
+
for krel in "${krels[@]}"; do
|
319
|
+
[ -e "/boot/symvers-$krel.gz" ] || continue
|
320
|
+
for ((n = 0; n < ${#modules[@]}; n++)); do
|
321
|
+
module="${modules[n]}"
|
322
|
+
module_krel="${module_krels[n]}"
|
323
|
+
|
324
|
+
# Module is going to be removed, update initramfs.
|
325
|
+
module_has_changed $module $krel
|
326
|
+
|
327
|
+
subpath="${module#/lib/modules/$module_krel/extra}"
|
328
|
+
weak_module="/lib/modules/$krel/weak-updates/${subpath#/}"
|
329
|
+
if [ "$module" == "`readlink $weak_module`" ]; then
|
330
|
+
[ -n "$verbose" ] && echo \
|
331
|
+
"Removing compatible module ${module##*/} from kernel $krel"
|
332
|
+
doit rm -f "$weak_module"
|
333
|
+
if [ "replace" == "$delete_modules" ]; then
|
334
|
+
for krel2 in "${krels[@]}"; do
|
335
|
+
if [ $krel2 != $krel ]; then
|
336
|
+
module="/lib/modules/$krel2/extra/${subpath#/}"
|
337
|
+
[ -e "$module" ] || continue
|
338
|
+
if module_is_compatible "$module" "$krel"; then
|
339
|
+
[ -n "$verbose" ] && echo \
|
340
|
+
"Adding compatible module ${module##*/} from kernel $krel2 instead"
|
341
|
+
doit ln -s "$module" "$weak_module"
|
342
|
+
module_has_changed $module $krel
|
343
|
+
break
|
344
|
+
fi
|
345
|
+
fi
|
346
|
+
done
|
347
|
+
fi
|
348
|
+
doit rmdir --parents --ignore-fail-on-non-empty \
|
349
|
+
"$(dirname "$weak_module")"
|
350
|
+
fi
|
351
|
+
done
|
352
|
+
done
|
353
|
+
fi
|
354
|
+
}
|
355
|
+
|
356
|
+
add_kernel() {
|
357
|
+
add_krel=${1:-$(uname -r)}
|
358
|
+
if [ ! -e "/boot/symvers-$add_krel.gz" ]; then
|
359
|
+
echo "Symvers dump file /boot/symvers-$add_krel.gz" \
|
360
|
+
"not found" >&2
|
361
|
+
exit 1
|
362
|
+
fi
|
363
|
+
for krel in $(ls /lib/modules/ | rpmsort -r); do
|
364
|
+
[ "$add_krel" = "$krel" ] && continue
|
365
|
+
[ -d /lib/modules/$krel/extra ] || continue
|
366
|
+
for module in $(find /lib/modules/$krel/extra -name '*.ko'); do
|
367
|
+
subpath="${module#/lib/modules/$krel/extra}"
|
368
|
+
weak_module="/lib/modules/$add_krel/weak-updates/${subpath#/}"
|
369
|
+
[ -e "$weak_module" ] && continue
|
370
|
+
if module_is_compatible $module $add_krel; then
|
371
|
+
module_has_changed $module $add_krel
|
372
|
+
doit mkdir -p $(dirname $weak_module)
|
373
|
+
doit ln -sf $module $weak_module
|
374
|
+
fi
|
375
|
+
done
|
376
|
+
done
|
377
|
+
}
|
378
|
+
|
379
|
+
remove_kernel() {
|
380
|
+
remove_krel=${1:-$(uname -r)}
|
381
|
+
weak_modules="/lib/modules/$remove_krel/weak-updates"
|
382
|
+
module_has_changed $weak_modules $remove_krel
|
383
|
+
doit rm -rf "$weak_modules"
|
384
|
+
}
|
385
|
+
|
386
|
+
################################################################################
|
387
|
+
################################## MAIN GUTS ###################################
|
388
|
+
################################################################################
|
389
|
+
|
390
|
+
options=`getopt -o h --long help,add-modules,remove-modules \
|
391
|
+
--long add-kernel,remove-kernel \
|
392
|
+
--long dry-run,no-initramfs,verbose,delete-modules -- "$@"`
|
393
|
+
|
394
|
+
[ $? -eq 0 ] || usage 1
|
395
|
+
|
396
|
+
eval set -- "$options"
|
397
|
+
|
398
|
+
while :; do
|
399
|
+
case "$1" in
|
400
|
+
--add-modules)
|
401
|
+
do_add_modules=1
|
402
|
+
;;
|
403
|
+
--remove-modules)
|
404
|
+
do_remove_modules=1
|
405
|
+
;;
|
406
|
+
--add-kernel)
|
407
|
+
do_add_kernel=1
|
408
|
+
;;
|
409
|
+
--remove-kernel)
|
410
|
+
do_remove_kernel=1
|
411
|
+
;;
|
412
|
+
--dry-run)
|
413
|
+
dry_run=1
|
414
|
+
;;
|
415
|
+
--no-initramfs)
|
416
|
+
no_initramfs=1
|
417
|
+
;;
|
418
|
+
--verbose)
|
419
|
+
verbose=1
|
420
|
+
;;
|
421
|
+
--delete-modules)
|
422
|
+
do_delete_modules=1
|
423
|
+
;;
|
424
|
+
-h|--help)
|
425
|
+
usage 0
|
426
|
+
;;
|
427
|
+
--)
|
428
|
+
shift
|
429
|
+
break
|
430
|
+
;;
|
431
|
+
esac
|
432
|
+
shift
|
433
|
+
done
|
434
|
+
|
435
|
+
if [ -n "$do_add_modules" ]; then
|
436
|
+
add_modules
|
437
|
+
|
438
|
+
elif [ -n "$do_remove_modules" ]; then
|
439
|
+
if [ -n "$do_delete_modules" ]; then
|
440
|
+
remove_modules "noreplace"
|
441
|
+
else
|
442
|
+
remove_modules
|
443
|
+
fi
|
444
|
+
|
445
|
+
elif [ -n "$do_add_kernel" ]; then
|
446
|
+
kernel=${1:-$(uname -r)}
|
447
|
+
add_kernel $kernel
|
448
|
+
|
449
|
+
elif [ -n "$do_remove_kernel" ]; then
|
450
|
+
kernel=${1:-$(uname -r)}
|
451
|
+
remove_kernel $kernel
|
452
|
+
|
453
|
+
exit 0
|
454
|
+
else
|
455
|
+
usage 1
|
456
|
+
fi
|
457
|
+
|
458
|
+
################################################################################
|
459
|
+
###################### CLEANUP POST ADD/REMOVE MODULE/KERNEL ###################
|
460
|
+
################################################################################
|
461
|
+
|
462
|
+
run depmod and dracut as needed
|
463
|
+
for krel in ${!changed_modules_*}; do
|
464
|
+
krel=${!krel}
|
465
|
+
|
466
|
+
doit /sbin/depmod -ae -F /boot/System.map-$krel $krel
|
467
|
+
done
|
468
|
+
|
469
|
+
for krel in ${!changed_initramfs_*}; do
|
470
|
+
krel=${!krel}
|
471
|
+
|
472
|
+
if [ ! -n "$no_initramfs" ]; then
|
473
|
+
check_initramfs $krel
|
474
|
+
fi
|
475
|
+
done
|
@@ -0,0 +1,215 @@
|
|
1
|
+
Name: kmod
|
2
|
+
Version: 14
|
3
|
+
Release: 2%{?dist}
|
4
|
+
Summary: Linux kernel module management utilities
|
5
|
+
|
6
|
+
Group: System Environment/Kernel
|
7
|
+
License: GPLv2+
|
8
|
+
URL: http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary
|
9
|
+
Source0: ftp://ftp.kernel.org/pub/linux/utils/kernel/kmod/%{name}-%{version}.tar.xz
|
10
|
+
Source1: weak-modules
|
11
|
+
Exclusiveos: Linux
|
12
|
+
|
13
|
+
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
14
|
+
BuildRequires: chrpath
|
15
|
+
BuildRequires: zlib-devel
|
16
|
+
BuildRequires: xz-devel
|
17
|
+
BuildRequires: libxslt
|
18
|
+
|
19
|
+
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
20
|
+
|
21
|
+
Provides: module-init-tools = 4.0-1
|
22
|
+
Obsoletes: module-init-tools < 4.0-1
|
23
|
+
Provides: /sbin/modprobe
|
24
|
+
|
25
|
+
%description
|
26
|
+
The kmod package provides various programs needed for automatic
|
27
|
+
loading and unloading of modules under 2.6, 3.x, and later kernels, as well
|
28
|
+
as other module management programs. Device drivers and filesystems are two
|
29
|
+
examples of loaded and unloaded modules.
|
30
|
+
|
31
|
+
%package libs
|
32
|
+
Summary: Libraries to handle kernel module loading and unloading
|
33
|
+
License: LGPLv2+
|
34
|
+
Group: System Environment/Libraries
|
35
|
+
|
36
|
+
%description libs
|
37
|
+
The kmod-libs package provides runtime libraries for any application that
|
38
|
+
wishes to load or unload Linux kernel modules from the running system.
|
39
|
+
|
40
|
+
%package devel
|
41
|
+
Summary: Header files for kmod development
|
42
|
+
Group: Development/Libraries
|
43
|
+
Requires: %{name} = %{version}-%{release}
|
44
|
+
|
45
|
+
%description devel
|
46
|
+
The kmod-devel package provides header files used for development of
|
47
|
+
applications that wish to load or unload Linux kernel modules.
|
48
|
+
|
49
|
+
%prep
|
50
|
+
%setup -q
|
51
|
+
|
52
|
+
%build
|
53
|
+
export V=1
|
54
|
+
%configure \
|
55
|
+
--with-zlib \
|
56
|
+
--with-xz
|
57
|
+
make %{?_smp_mflags}
|
58
|
+
make check
|
59
|
+
|
60
|
+
%install
|
61
|
+
make install DESTDIR=$RPM_BUILD_ROOT
|
62
|
+
pushd $RPM_BUILD_ROOT/%{_mandir}/man5
|
63
|
+
ln -s modprobe.d.5.gz modprobe.conf.5.gz
|
64
|
+
popd
|
65
|
+
|
66
|
+
rm -rf $RPM_BUILD_ROOT%{_libdir}/*.la
|
67
|
+
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
|
68
|
+
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/modprobe
|
69
|
+
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/modinfo
|
70
|
+
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/insmod
|
71
|
+
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/rmmod
|
72
|
+
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/depmod
|
73
|
+
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/lsmod
|
74
|
+
|
75
|
+
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d
|
76
|
+
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d
|
77
|
+
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/modprobe.d
|
78
|
+
|
79
|
+
mkdir -p $RPM_BUILD_ROOT/sbin
|
80
|
+
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_sbindir}/weak-modules
|
81
|
+
|
82
|
+
%post libs -p /sbin/ldconfig
|
83
|
+
|
84
|
+
%postun libs -p /sbin/ldconfig
|
85
|
+
|
86
|
+
%files
|
87
|
+
%defattr(-,root,root,-)
|
88
|
+
%dir %{_sysconfdir}/depmod.d
|
89
|
+
%dir %{_sysconfdir}/modprobe.d
|
90
|
+
%dir %{_prefix}/lib/modprobe.d
|
91
|
+
%{_bindir}/kmod
|
92
|
+
%{_sbindir}/modprobe
|
93
|
+
%{_sbindir}/modinfo
|
94
|
+
%{_sbindir}/insmod
|
95
|
+
%{_sbindir}/rmmod
|
96
|
+
%{_sbindir}/lsmod
|
97
|
+
%{_sbindir}/depmod
|
98
|
+
%{_sbindir}/weak-modules
|
99
|
+
%attr(0644,root,root) %{_mandir}/man5/*.5*
|
100
|
+
%attr(0644,root,root) %{_mandir}/man8/*.8*
|
101
|
+
%doc NEWS README TODO COPYING
|
102
|
+
|
103
|
+
%files libs
|
104
|
+
%{_libdir}/libkmod.so.*
|
105
|
+
|
106
|
+
%files devel
|
107
|
+
%{_includedir}/libkmod.h
|
108
|
+
%{_libdir}/pkgconfig/libkmod.pc
|
109
|
+
%{_libdir}/libkmod.so
|
110
|
+
|
111
|
+
%changelog
|
112
|
+
* Wed Aug 07 2013 Václav Pavlín <vpavlin@redhat.com> - 14-2
|
113
|
+
- Run tests during build
|
114
|
+
|
115
|
+
* Fri Jul 05 2013 Josh Boyer <jwboyer@redhat.com> - 14-1
|
116
|
+
- Update to version 14
|
117
|
+
|
118
|
+
* Fri Apr 19 2013 Václav Pavlín <vpavlin@redhat.com> - 13-2
|
119
|
+
- Main package should require -libs
|
120
|
+
|
121
|
+
* Wed Apr 10 2013 Josh Boyer <jwboyer@redhat.com> - 13-1
|
122
|
+
- Update to version 13
|
123
|
+
|
124
|
+
* Wed Mar 20 2013 Weiping Pan <wpan@redhat.com> - 12-3
|
125
|
+
- Pull in weak-modules for kABI from Jon Masters <jcm@redhat.com>
|
126
|
+
|
127
|
+
* Mon Mar 18 2013 Josh Boyer <jwboyer@redhat.com>
|
128
|
+
- Add patch to make rmmod understand built-in modules (rhbz 922187)
|
129
|
+
|
130
|
+
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 12-2
|
131
|
+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
132
|
+
|
133
|
+
* Thu Dec 06 2012 Josh Boyer <jwboyer@redhat.com>
|
134
|
+
- Update to version 12
|
135
|
+
|
136
|
+
* Thu Nov 08 2012 Josh Boyer <jwboyer@redhat.com>
|
137
|
+
- Update to version 11
|
138
|
+
|
139
|
+
* Fri Sep 07 2012 Josh Boyer <jwboyer@redaht.com>
|
140
|
+
- Update to version 10
|
141
|
+
|
142
|
+
* Mon Aug 27 2012 Josh Boyer <jwboyer@redhat.com>
|
143
|
+
- Update to version 9
|
144
|
+
|
145
|
+
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8-3
|
146
|
+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
147
|
+
|
148
|
+
* Wed May 23 2012 Josh Boyer <jwboyer@redhat.com> - 8-2
|
149
|
+
- Provide modprobe.conf(5) (rhbz 824552)
|
150
|
+
|
151
|
+
* Tue May 08 2012 Josh Boyer <jwboyer@redhat.com> - 8-1
|
152
|
+
- Update to version 8
|
153
|
+
|
154
|
+
* Mon Mar 19 2012 Kay Sievers <kay@redhat.com> - 7-1
|
155
|
+
- update to version 7
|
156
|
+
- fix issue with --show-depends, where built-in
|
157
|
+
modules of the running kernel fail to include
|
158
|
+
loadable modules of the kernel specified
|
159
|
+
|
160
|
+
* Sun Mar 04 2012 Kay Sievers <kay@redhat.com> - 6-1
|
161
|
+
- update to version 6
|
162
|
+
- remove all patches, they are included in the release
|
163
|
+
|
164
|
+
* Fri Feb 24 2012 Kay Sievers <kay@redhat.com> - 5-8
|
165
|
+
- try to address brc#771285
|
166
|
+
|
167
|
+
* Sun Feb 12 2012 Kay Sievers <kay@redhat.com> - 5-7
|
168
|
+
- fix infinite loop with softdeps
|
169
|
+
|
170
|
+
* Thu Feb 09 2012 Harald Hoyer <harald@redhat.com> 5-6
|
171
|
+
- add upstream patch to fix "modprobe --ignore-install --show-depends"
|
172
|
+
otherwise dracut misses a lot of modules, which are already loaded
|
173
|
+
|
174
|
+
* Wed Feb 08 2012 Harald Hoyer <harald@redhat.com> 5-5
|
175
|
+
- add "lsmod"
|
176
|
+
|
177
|
+
* Tue Feb 7 2012 Kay Sievers <kay@redhat.com> - 5-4
|
178
|
+
- remove temporarily added fake-provides
|
179
|
+
|
180
|
+
* Tue Feb 7 2012 Kay Sievers <kay@redhat.com> - 5-3
|
181
|
+
- temporarily add fake-provides to be able to bootstrap
|
182
|
+
the new udev which pulls the old udev into the buildroot
|
183
|
+
|
184
|
+
* Tue Feb 7 2012 Kay Sievers <kay@redhat.com> - 5-1
|
185
|
+
- Update to version 5
|
186
|
+
- replace the module-init-tools package and provide all tools
|
187
|
+
as compatibility symlinks
|
188
|
+
|
189
|
+
* Mon Jan 16 2012 Kay Sievers <kay@redhat.com> - 4-1
|
190
|
+
- Update to version 4
|
191
|
+
- set --with-rootprefix=
|
192
|
+
- enable zlib and xz support
|
193
|
+
|
194
|
+
* Thu Jan 05 2012 Jon Masters <jcm@jonmasters.org> - 3-1
|
195
|
+
- Update to latest upstream (adds new depmod replacement utility)
|
196
|
+
- For the moment, use the "kmod" utility to test the various functions
|
197
|
+
|
198
|
+
* Fri Dec 23 2011 Jon Masters <jcm@jonmasters.org> - 2-6
|
199
|
+
- Update kmod-2-with-rootlibdir patch with rebuild automake files
|
200
|
+
|
201
|
+
* Fri Dec 23 2011 Jon Masters <jcm@jonmasters.org> - 2-5
|
202
|
+
- Initial build for Fedora following package import
|
203
|
+
|
204
|
+
* Thu Dec 22 2011 Jon Masters <jcm@jonmasters.org> - 2-4
|
205
|
+
- There is no generic macro for non-multilib "/lib", hardcode like others
|
206
|
+
|
207
|
+
* Thu Dec 22 2011 Jon Masters <jcm@jonmasters.org> - 2-3
|
208
|
+
- Update package incorporating fixes from initial review feedback
|
209
|
+
- Cleaups to SPEC, rpath, documentation, library and binary locations
|
210
|
+
|
211
|
+
* Thu Dec 22 2011 Jon Masters <jcm@jonmasters.org> - 2-2
|
212
|
+
- Update package for posting to wider test audience (initial review submitted)
|
213
|
+
|
214
|
+
* Thu Dec 22 2011 Jon Masters <jcm@jonmasters.org> - 2-1
|
215
|
+
- Initial Fedora package for module-init-tools replacement (kmod) library
|