/[gentoo-x86]/eclass/linux-mod.eclass
Gentoo

Diff of /eclass/linux-mod.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.8 Revision 1.67
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2004 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.8 2004/12/06 22:05:08 johnm Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.67 2006/07/24 20:18:09 genstef Exp $
4 4
5# This eclass provides functions for compiling external kernel modules 5# Description: This eclass is used to interface with linux-info in such a way
6# from source. 6# to provide the functionality required and initial functions
7# required to install external modules against a kernel source
8# tree.
9#
10# Maintainer: John Mylchreest <johnm@gentoo.org>
11# Copyright 2004 Gentoo Linux
12#
13# Please direct your bugs to the current eclass maintainer :)
7 14
8inherit linux-info 15# A Couple of env vars are available to effect usage of this eclass
9ECLASS=linux-mod 16# These are as follows:
10INHERITED="$INHERITED $ECLASS" 17#
11EXPORT_FUNCTIONS pkg_setup pkg_postinst src_compile 18# Env Var Option Default Description
19# KERNEL_DIR <string> /usr/src/linux The directory containing kernel
20# the target kernel sources.
21# ECONF_PARAMS <string> The parameters to pass to econf.
22# If this is not set, then econf
23# isn't run.
24# BUILD_PARAMS <string> The parameters to pass to emake.
25# BUILD_TARGETS <string> clean modules The build targets to pass to
26# make.
27# MODULE_NAMES <string> This is the modules which are
28# to be built automatically using
29# the default pkg_compile/install.
30# They are explained properly
31# below. It will only make
32# BUILD_TARGETS once in any
33# directory.
12 34
35# MODULE_NAMES - Detailed Overview
36#
37# The structure of each MODULE_NAMES entry is as follows:
38# modulename(libdir:srcdir:objdir)
39# for example:
40# MODULE_NAMES="module_pci(pci:${S}/pci:${S}) module_usb(usb:${S}/usb:${S})"
41#
42# what this would do is
43# cd ${S}/pci
44# make ${BUILD_PARAMS} ${BUILD_TARGETS}
45# cd ${S}
46# insinto /lib/modules/${KV_FULL}/pci
47# doins module_pci.${KV_OBJ}
48#
49# cd ${S}/usb
50# make ${BUILD_PARAMS} ${BUILD_TARGETS}
51# cd ${S}
52# insinto /lib/modules/${KV_FULL}/usb
53# doins module_usb.${KV_OBJ}
54#
55# if the srcdir isnt specified, it assumes ${S}
56# if the libdir isnt specified, it assumes misc.
57# if the objdir isnt specified, it assumes srcdir
58
59# There is also support for automatyed modules.d file generation.
60# This can be explicitly enabled by setting any of the following variables.
61#
62#
63# MODULESD_${modulename}_ENABLED This enables the modules.d file
64# generation even if we dont
65# specify any additional info.
66# MODULESD_${modulename}_EXAMPLES This is a bash array containing
67# a list of examples which should
68# be used. If you want us to try and
69# take a guess. Set this to "guess"
70# MODULESD_${modulename}_ALIASES This is a bash array containing
71# a list of associated aliases.
72# MODULESD_${modulename}_ADDITIONS This is a bash array containing
73# A list of additional things to
74# add to the bottom of the file.
75# This can be absolutely anything.
76# Each entry is a new line.
77# MODULES_${modulename}_DOCS This is a string list which contains
78# the full path to any associated
79# documents for $modulename
80
81# The order of these is important as both of linux-info and eutils contain
82# set_arch_to_kernel and set_arch_to_portage functions and the ones in eutils
83# are deprecated in favor of the ones in linux-info.
84# See http://bugs.gentoo.org/show_bug.cgi?id=127506
85
86inherit eutils linux-info multilib
87EXPORT_FUNCTIONS pkg_setup pkg_preinst pkg_postinst src_install src_compile pkg_postrm
88
89IUSE="kernel_linux"
90SLOT="0"
13DESCRIPTION="Based on the $ECLASS eclass" 91DESCRIPTION="Based on the $ECLASS eclass"
14SLOT=0 92RDEPEND="kernel_linux? ( virtual/modutils )"
15DEPEND="virtual/linux-sources 93DEPEND="${RDEPEND}
16 sys-apps/sed" 94 sys-apps/sed"
17
18
19# This eclass is designed to help ease the installation of external kernel
20# modules into the kernel tree.
21
22 95
23# eclass utilities 96# eclass utilities
24# ---------------------------------- 97# ----------------------------------
98
99check_vermagic() {
100 local curr_gcc_ver=$(gcc -dumpversion)
101 local tmpfile old_chost old_gcc_ver result=0
102
103 tmpfile=`find ${KV_DIR}/ -iname "*.o.cmd" -exec grep usr/lib/gcc {} \; -quit`
104 tmpfile=${tmpfile//*usr/lib}
105 tmpfile=${tmpfile//\/include*}
106 old_chost=${tmpfile//*gcc\/}
107 old_chost=${old_chost//\/*}
108 old_gcc_ver=${tmpfile//*\/}
109
110 if [[ -z ${old_gcc_ver} || -z ${old_chost} ]]; then
111 ewarn ""
112 ewarn "Unable to detect what version of GCC was used to compile"
113 ewarn "the kernel. Build will continue, but you may experience problems."
114 elif [[ ${curr_gcc_ver} != ${old_gcc_ver} ]]; then
115 ewarn ""
116 ewarn "The version of GCC you are using (${curr_gcc_ver}) does"
117 ewarn "not match the version of GCC used to compile the"
118 ewarn "kernel (${old_gcc_ver})."
119 result=1
120 elif [[ ${CHOST} != ${old_chost} ]]; then
121 ewarn ""
122 ewarn "The current CHOST (${CHOST}) does not match the chost"
123 ewarn "used when compiling the kernel (${old_chost})."
124 result=1
125 fi
126
127 if [[ ${result} -gt 0 ]]; then
128 ewarn ""
129 ewarn "Build will not continue, because you will experience problems."
130 ewarn "To fix this either change the version of GCC you wish to use"
131 ewarn "to match the kernel, or recompile the kernel first."
132 die "GCC Version Mismatch."
133 fi
134}
25 135
26use_m() { 136use_m() {
27 # if we haven't determined the version yet, we need too. 137 # if we haven't determined the version yet, we need too.
28 get_version; 138 get_version;
29 139
30 # if the kernel version is greater than 2.6.6 then we should use 140 # if the kernel version is greater than 2.6.6 then we should use
31 # M= instead of SUBDIRS= 141 # M= instead of SUBDIRS=
32 [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && \ 142 [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && \
33 return 0 || return 1 143 return 0 || return 1
34} 144}
35 145
36convert_to_m() { 146convert_to_m() {
37 [ ! -f "${1}" ] && die "convert_to_m() requires a filename as an argument"
38 if use_m 147 if use_m
39 then 148 then
149 [ ! -f "${1}" ] && \
150 die "convert_to_m() requires a filename as an argument"
40 ebegin "Converting ${1/${WORKDIR}\//} to use M= instead of SUBDIRS=" 151 ebegin "Converting ${1/${WORKDIR}\//} to use M= instead of SUBDIRS="
41 sed -i 's:SUBDIRS=:M=:g' ${1} 152 sed -i 's:SUBDIRS=:M=:g' ${1}
42 eend $? 153 eend $?
43 fi 154 fi
44} 155}
45 156
46update_depmod() { 157update_depmod() {
47 # if we haven't determined the version yet, we need too. 158 # if we haven't determined the version yet, we need too.
48 get_version; 159 get_version;
49 160
50 ebegin "Updating module dependencies for ${KV_FULL}" 161 ebegin "Updating module dependencies for ${KV_FULL}"
51 if [ -r ${KV_OUT_DIR}/System.map ] 162 if [ -r ${KV_OUT_DIR}/System.map ]
52 then 163 then
53 depmod -ae -F ${KV_OUT_DIR}/System.map -b ${ROOT} -r ${KV_FULL} 164 depmod -ae -F ${KV_OUT_DIR}/System.map -b ${ROOT} -r ${KV_FULL}
165 eend $?
54 else 166 else
55 ewarn 167 ewarn
56 ewarn "${KV_OUT_DIR}/System.map not found." 168 ewarn "${KV_OUT_DIR}/System.map not found."
57 ewarn "You must manually update the kernel module dependencies using depmod." 169 ewarn "You must manually update the kernel module dependencies using depmod."
170 eend 1
58 ewarn 171 ewarn
59 fi 172 fi
60 eend $?
61} 173}
62 174
63update_modules() { 175update_modules() {
64 if [ -x /sbin/modules-update ] ; 176 if [ -x /sbin/modules-update ] && \
65 then 177 grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then
66 ebegin "Updating modules.conf" 178 ebegin "Updating modules.conf"
67 /sbin/modules-update 179 /sbin/modules-update
68 eend $? 180 eend $?
181 fi
182}
183
184move_old_moduledb() {
185 local OLDDIR=${ROOT}/usr/share/module-rebuild/
186 local NEWDIR=${ROOT}/var/lib/module-rebuild/
187
188 if [[ -f ${OLDDIR}/moduledb ]]; then
189 [[ ! -d ${NEWDIR} ]] && mkdir -p ${NEWDIR}
190 [[ ! -f ${NEWDIR}/moduledb ]] && \
191 mv ${OLDDIR}/moduledb ${NEWDIR}/moduledb
192 rm -f ${OLDDIR}/*
193 rmdir ${OLDDIR}
194 fi
195}
196
197update_moduledb() {
198 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
199 move_old_moduledb
200
201 if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then
202 [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR}
203 touch ${MODULEDB_DIR}/moduledb
204 fi
205 if [[ -z $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
206 einfo "Adding module to moduledb."
207 echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb
208 fi
209}
210
211remove_moduledb() {
212 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
213 move_old_moduledb
214
215 if [[ -n $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
216 einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb."
217 sed -ie "/.*${CATEGORY}\/${PN}-${PVR}.*/d" ${MODULEDB_DIR}/moduledb
69 fi 218 fi
70} 219}
71 220
72set_kvobj() { 221set_kvobj() {
73 if kernel_is 2 6 222 if kernel_is 2 6
74 then 223 then
75 KV_OBJ="ko" 224 KV_OBJ="ko"
76 else 225 else
77 KV_OBJ="o" 226 KV_OBJ="o"
78 fi 227 fi
228 # Do we really need to know this?
229 # Lets silence it.
79 einfo "Using KV_OBJ=${KV_OBJ}" 230 # einfo "Using KV_OBJ=${KV_OBJ}"
80} 231}
81 232
82display_postinst() { 233generate_modulesd() {
83 # if we haven't determined the version yet, we need too. 234 # This function will generate the neccessary modules.d file from the
84 get_version; 235 # information contained in the modules exported parms
85
86 local modulename moduledir sourcedir module_temp file i
87
88 file=${ROOT}/etc/modules.autoload.d/kernel-${KV_MAJOR}.${KV_MINOR}
89 file=${file/\/\///}
90 236
91 einfo "If you would like to load this module automatically upon boot" 237 local currm_path currm currm_t t myIFS myVAR
92 einfo "please type the following as root:" 238 local module_docs module_enabled module_aliases \
93 for i in ${MODULE_NAMES} 239 module_additions module_examples module_modinfo module_opts
240
241 for currm_path in ${@}
94 do 242 do
95 module_temp="$(echo ${i} | sed -e "s:.*(\(.*\)):\1:")" 243 currm=${currm_path//*\/}
96 modulename="${i/(*/}" 244 currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]')
97 moduledir="${module_temp/:*/}" 245 currm_t=${currm}
98 moduledir="${moduledir:-misc}" 246 while [[ -z ${currm_t//*-*} ]]; do
99 sourcedir="${module_temp/*:/}" 247 currm_t=${currm_t/-/_}
100 sourcedir="${sourcedir:-${S}}" 248 done
101 249
102 einfo " # echo \"${modulename}\" >> ${file}" 250 module_docs="$(eval echo \${MODULESD_${currm_t}_DOCS})"
251 module_enabled="$(eval echo \${MODULESD_${currm_t}_ENABLED})"
252 module_aliases="$(eval echo \${#MODULESD_${currm_t}_ALIASES[*]})"
253 module_additions="$(eval echo \${#MODULESD_${currm_t}_ADDITIONS[*]})"
254 module_examples="$(eval echo \${#MODULESD_${currm_t}_EXAMPLES[*]})"
255
256 [[ ${module_aliases} -eq 0 ]] && unset module_aliases
257 [[ ${module_additions} -eq 0 ]] && unset module_additions
258 [[ ${module_examples} -eq 0 ]] && unset module_examples
259
260 # If we specify we dont want it, then lets exit, otherwise we assume
261 # that if its set, we do want it.
262 [[ ${module_enabled} == no ]] && return 0
263
264 # unset any unwanted variables.
265 for t in ${!module_*}
266 do
267 [[ -z ${!t} ]] && unset ${t}
268 done
269
270 [[ -z ${!module_*} ]] && return 0
271
272 # OK so now if we have got this far, then we know we want to continue
273 # and generate the modules.d file.
274 module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})"
275 module_config="${T}/modulesd-${currm}"
276
277 ebegin "Preparing file for modules.d"
278 #-----------------------------------------------------------------------
279 echo "# modules.d configuration file for ${currm}" >> ${module_config}
280 #-----------------------------------------------------------------------
281 [[ -n ${module_docs} ]] && \
282 echo "# For more information please read:" >> ${module_config}
283 for t in ${module_docs}
284 do
285 echo "# ${t//*\/}" >> ${module_config}
286 done
287 echo >> ${module_config}
288
289 #-----------------------------------------------------------------------
290 if [[ ${module_aliases} -gt 0 ]]
291 then
292 echo "# Internal Aliases - Do not edit" >> ${module_config}
293 echo "# ------------------------------" >> ${module_config}
294
295 for((t=0; t<${module_aliases}; t++))
296 do
297 echo "alias $(eval echo \${MODULESD_${currm}_ALIASES[$t]})" \
298 >> ${module_config}
299 done
300 echo '' >> ${module_config}
301 fi
302
303 #-----------------------------------------------------------------------
304 if [[ -n ${module_modinfo} ]]
305 then
306 echo >> ${module_config}
307 echo "# Configurable module parameters" >> ${module_config}
308 echo "# ------------------------------" >> ${module_config}
309 myIFS="${IFS}"
310 IFS="$(echo -en "\n\b")"
311
312 for t in ${module_modinfo}
313 do
314 myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")"
315 if [[ -n ${myVAR} ]]
316 then
317 module_opts="${module_opts} ${t%%:*}:${myVAR}"
318 fi
319 echo -e "# ${t%%:*}:\t${t#*:}" >> ${module_config}
320 done
321 IFS="${myIFS}"
322 echo '' >> ${module_config}
323 fi
324
325 #-----------------------------------------------------------------------
326 if [[ $(eval echo \${MODULESD_${currm}_ALIASES[0]}) == guess ]]
327 then
328 # So lets do some guesswork eh?
329 if [[ -n ${module_opts} ]]
330 then
331 echo "# For Example..." >> ${module_config}
332 echo "# --------------" >> ${module_config}
333 for t in ${module_opts}
334 do
335 echo "# options ${currm} ${t//:*}=${t//*:}" >> ${module_config}
336 done
337 echo '' >> ${module_config}
338 fi
339 elif [[ ${module_examples} -gt 0 ]]
340 then
341 echo "# For Example..." >> ${module_config}
342 echo "# --------------" >> ${module_config}
343 for((t=0; t<${module_examples}; t++))
344 do
345 echo "options $(eval echo \${MODULESD_${currm}_EXAMPLES[$t]})" \
346 >> ${module_config}
347 done
348 echo '' >> ${module_config}
349 fi
350
351 #-----------------------------------------------------------------------
352 if [[ ${module_additions} -gt 0 ]]
353 then
354 for((t=0; t<${module_additions}; t++))
355 do
356 echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" \
357 >> ${module_config}
358 done
359 echo '' >> ${module_config}
360 fi
361
362 #-----------------------------------------------------------------------
363
364 # then we install it
365 insinto /etc/modules.d
366 newins ${module_config} ${currm_path//*\/}
367
368 # and install any documentation we might have.
369 [[ -n ${module_docs} ]] && dodoc ${module_docs}
103 done 370 done
104 echo 371 eend 0
372 return 0
373}
374
375find_module_params() {
376 local matched_offset=0 matched_opts=0 test="${@}" temp_var result
377 local i=0 y=0 z=0
378
379 for((i=0; i<=${#test}; i++))
380 do
381 case ${test:${i}:1} in
382 \() matched_offset[0]=${i};;
383 \:) matched_opts=$((${matched_opts} + 1));
384 matched_offset[${matched_opts}]="${i}";;
385 \)) matched_opts=$((${matched_opts} + 1));
386 matched_offset[${matched_opts}]="${i}";;
387 esac
388 done
389
390 for((i=0; i<=${matched_opts}; i++))
391 do
392 # i = offset were working on
393 # y = last offset
394 # z = current offset - last offset
395 # temp_var = temporary name
396 case ${i} in
397 0) tempvar=${test:0:${matched_offset[0]}};;
398 *) y=$((${matched_offset[$((${i} - 1))]} + 1))
399 z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]}));
400 z=$((${z} - 1))
401 tempvar=${test:${y}:${z}};;
402 esac
403
404 case ${i} in
405 0) result="${result} modulename:${tempvar}";;
406 1) result="${result} libdir:${tempvar}";;
407 2) result="${result} srcdir:${tempvar}";;
408 3) result="${result} objdir:${tempvar}";;
409 esac
410 done
411
412 echo ${result}
105} 413}
106 414
107# default ebuild functions 415# default ebuild functions
108# -------------------------------- 416# --------------------------------
109 417
110linux-mod_pkg_setup() { 418linux-mod_pkg_setup() {
111 linux-info_pkg_setup; 419 linux-info_pkg_setup;
112 check_kernel_built; 420 check_kernel_built;
113 check_modules_supported; 421 strip_modulenames;
114 check_extra_config; 422 [[ -n ${MODULE_NAMES} ]] && check_modules_supported
115 set_kvobj; 423 set_kvobj;
424 # Commented out with permission from johnm until a fixed version for arches
425 # who intentionally use different kernel and userland compilers can be
426 # introduced - Jason Wever <weeve@gentoo.org>, 23 Oct 2005
427 #check_vermagic;
428}
429
430strip_modulenames() {
431 local i
432 for i in ${MODULE_IGNORE}; do
433 MODULE_NAMES=${MODULE_NAMES//${i}(*}
434 done
116} 435}
117 436
118linux-mod_src_compile() { 437linux-mod_src_compile() {
119 local modulename moduledir sourcedir module_temp xarch i 438 local modulename libdir srcdir objdir i n myARCH="${ARCH}" myABI="${ABI}"
120 xarch="${ARCH}" 439 ARCH="$(tc-arch-kernel)"
121 unset ARCH 440 ABI="${KERNEL_ABI}"
441 CC_HOSTCC=$(tc-getBUILD_CC)
442 CC_CC=$(tc-getCC)
122 443
444 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
445 strip_modulenames;
123 for i in "${MODULE_NAMES}" 446 for i in ${MODULE_NAMES}
124 do 447 do
125 module_temp="$(echo ${i} | sed -e "s:.*(\(.*\)):\1:")" 448 unset libdir srcdir objdir
126 modulename="${i/(*/}" 449 for n in $(find_module_params ${i})
127 moduledir="${module_temp/:*/}" 450 do
128 moduledir="${moduledir:-misc}" 451 eval ${n/:*}=${n/*:/}
129 sourcedir="${module_temp/*:/}" 452 done
453 libdir=${libdir:-misc}
130 sourcedir="${sourcedir:-${S}}" 454 srcdir=${srcdir:-${S}}
131 455 objdir=${objdir:-${srcdir}}
456
457 if [ ! -f "${srcdir}/.built" ];
458 then
459 cd ${srcdir}
132 einfo "Preparing ${modulename} module" 460 einfo "Preparing ${modulename} module"
133 cd ${sourcedir} 461 if [[ -n ${ECONF_PARAMS} ]]
134 emake ${BUILD_PARAMS} ${BUILD_TARGETS:-clean module} || die Unable to make ${BUILD_PARAMS} ${BUILD_TARGETS:-clean module}. 462 then
463 econf ${ECONF_PARAMS} || \
464 die "Unable to run econf ${ECONF_PARAMS}"
465 fi
466
467 emake HOSTCC=${CC_HOSTCC} CC=${CC_CC}\
468 ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
469 || die "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
470 touch ${srcdir}/.built
471 cd ${OLDPWD}
472 fi
135 done 473 done
136 ARCH="${xarch}" 474
475 ARCH="${myARCH}"
476 ABI="${myABI}"
137} 477}
138 478
139linux-mod_src_install() { 479linux-mod_src_install() {
140 local modulename moduledir sourcedir module_temp i 480 local modulename libdir srcdir objdir i n
141 481
482 strip_modulenames;
142 for i in "${MODULE_NAMES}" 483 for i in ${MODULE_NAMES}
143 do 484 do
144 module_temp="$(echo ${i} | sed -e "s:.*(\(.*\)):\1:")" 485 unset libdir srcdir objdir
145 modulename="${i/(*/}" 486 for n in $(find_module_params ${i})
146 moduledir="${module_temp/:*/}" 487 do
147 moduledir="${moduledir:-misc}" 488 eval ${n/:*}=${n/*:/}
148 sourcedir="${module_temp/*:/}" 489 done
490 libdir=${libdir:-misc}
149 sourcedir="${sourcedir:-${S}}" 491 srcdir=${srcdir:-${S}}
492 objdir=${objdir:-${srcdir}}
150 493
151 einfo "Installing ${modulename} module" 494 einfo "Installing ${modulename} module"
152 cd ${sourcedir} 495 cd ${objdir} || die "${objdir} does not exist"
153 insinto /lib/modules/${KV_FULL}/${moduledir} 496 insinto /lib/modules/${KV_FULL}/${libdir}
154 doins ${modulename}.${KV_OBJ} 497 doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed"
498 cd ${OLDPWD}
499
500 generate_modulesd ${objdir}/${modulename}
155 done 501 done
156} 502}
157 503
504linux-mod_pkg_preinst() {
505 [ -d ${IMAGE}/lib/modules ] && UPDATE_DEPMOD=true || UPDATE_DEPMOD=false
506 [ -d ${IMAGE}/etc/modules.d ] && UPDATE_MODULES=true || UPDATE_MODULES=false
507 [ -d ${IMAGE}/lib/modules ] && UPDATE_MODULEDB=true || UPDATE_MODULEDB=false
508}
509
158linux-mod_pkg_postinst() { 510linux-mod_pkg_postinst() {
159 update_depmod; 511 ${UPDATE_DEPMOD} && update_depmod;
160 update_modules; 512 ${UPDATE_MODULES} && update_modules;
161 display_postinst; 513 ${UPDATE_MODULEDB} && update_moduledb;
162} 514}
515
516linux-mod_pkg_postrm() {
517 remove_moduledb;
518}

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.67

  ViewVC Help
Powered by ViewVC 1.1.20