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

Contents of /eclass/linux-mod.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.53 - (hide annotations) (download)
Sat Oct 22 16:55:17 2005 UTC (8 years, 11 months ago) by johnm
Branch: MAIN
Changes since 1.52: +39 -1 lines
Adding in vermagic check. This is a little crude, but picks up on the most common problem

1 johnm 1.1 # Copyright 1999-2004 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 johnm 1.53 # $Header: /var/cvsroot/gentoo-x86/eclass/linux-mod.eclass,v 1.52 2005/09/22 14:13:36 johnm Exp $
4 johnm 1.1
5 johnm 1.10 # Description: This eclass is used to interface with linux-info in such a way
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 :)
14    
15     # A Couple of env vars are available to effect usage of this eclass
16     # These are as follows:
17 swegener 1.49 #
18 johnm 1.26 # 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 swegener 1.49 # to be built automatically using
29     # the default pkg_compile/install.
30     # They are explained properly
31     # below. It will only make
32 johnm 1.26 # BUILD_TARGETS once in any
33     # directory.
34 johnm 1.10
35     # MODULE_NAMES - Detailed Overview
36 swegener 1.49 #
37 johnm 1.10 # The structure of each MODULE_NAMES entry is as follows:
38 johnm 1.26 # modulename(libdir:srcdir:objdir)
39 johnm 1.10 # for example:
40 johnm 1.26 # MODULE_NAMES="module_pci(pci:${S}/pci:${S}) module_usb(usb:${S}/usb:${S})"
41 swegener 1.49 #
42 johnm 1.10 # what this would do is
43     # cd ${S}/pci
44     # make ${BUILD_PARAMS} ${BUILD_TARGETS}
45 johnm 1.26 # cd ${S}
46 johnm 1.10 # insinto /lib/modules/${KV_FULL}/pci
47     # doins module_pci.${KV_OBJ}
48     #
49     # cd ${S}/usb
50     # make ${BUILD_PARAMS} ${BUILD_TARGETS}
51 johnm 1.26 # cd ${S}
52 johnm 1.10 # insinto /lib/modules/${KV_FULL}/usb
53     # doins module_usb.${KV_OBJ}
54     #
55 johnm 1.26 # 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 johnm 1.1
82     inherit linux-info
83 johnm 1.37 EXPORT_FUNCTIONS pkg_setup pkg_postinst src_install src_compile pkg_postrm
84 johnm 1.1
85 agriffis 1.48 IUSE="" # don't put pcmcia here, rather in the ebuilds that actually support pcmcia
86 johnm 1.26 SLOT="0"
87 johnm 1.1 DESCRIPTION="Based on the $ECLASS eclass"
88 brix 1.46 RDEPEND="virtual/modutils
89 brix 1.39 pcmcia? ( virtual/pcmcia )"
90 brix 1.50 DEPEND="virtual/linux-sources
91     sys-apps/sed
92     pcmcia? ( virtual/pcmcia )"
93 johnm 1.26
94 johnm 1.1 # eclass utilities
95     # ----------------------------------
96    
97 johnm 1.53 check_vermagic() {
98     local curr_gcc_ver=$(gcc -dumpversion)
99     local tmpfile old_chost old_gcc_ver result=0
100    
101     tmpfile=`find ${KV_DIR} -iname "*.o.cmd" -exec grep usr/lib/gcc {} \; -quit`
102     tmpfile=${tmpfile//*usr/lib}
103     tmpfile=${tmpfile//\/include*}
104     old_chost=${tmpfile//*gcc\/}
105     old_chost=${old_chost//\/*}
106     old_gcc_ver=${tmpfile//*\/}
107    
108     if [[ ${curr_gcc_ver} != ${old_gcc_ver} ]]; then
109     ewarn ""
110     ewarn "The version of GCC you are using (${curr_gcc_ver}) does"
111     ewarn "not match the version of GCC used to compile the"
112     ewarn "kernel (${old_gcc_ver})."
113     result=1
114     elif [[ ${CHOST} != ${old_chost} ]]; then
115     ewarn ""
116     ewarn "The current CHOST (${CHOST}) does not match the chost"
117     ewarn "used when compiling the kernel (${old_chost})."
118     result=1
119     elif [[ -z ${old_gcc_ver} || -z ${old_chost} ]]; then
120     ewarn ""
121     ewarn "Unable to detect what version of GCC was used to compile"
122     ewarn "the kernel. Build will continue, but you may experience problems."
123     fi
124    
125     if [[ ${result} -gt 0 ]]; then
126     ewarn ""
127     ewarn "Build will not continue, because you will experience problems."
128     ewarn "To fix this either change the version of GCC you wish to use"
129     ewarn "to match the kernel, or recompile the kernel first."
130     die "GCC Version Mismatch."
131     fi
132     }
133    
134 johnm 1.33 unpack_pcmcia_sources() {
135     # So while the two eclasses exist side-by-side and also the ebuilds inherit
136     # both we need to check for PCMCIA_SOURCE_DIR, and if we find it, then we
137     # bail out and assume pcmcia.eclass is working on it.
138     [[ -n ${PCMCIA_SOURCE_DIR} ]] && return 1
139    
140     if [[ -f "${1}" ]]; then
141     PCMCIA_SOURCE_DIR="${WORKDIR}/pcmcia-cs/"
142 swegener 1.49
143 johnm 1.33 ebegin "Decompressing pcmcia-cs sources"
144     mkdir -p ${PCMCIA_SOURCE_DIR}
145     tar -xjf ${1} -C ${PCMCIA_SOURCE_DIR}
146     eend $?
147    
148     if [[ -f ${PCMCIA_SOURCE_DIR}/pcmcia-cs-version ]]; then
149     PCMCIA_VERSION=$(cat ${PCMCIA_SOURCE_DIR}/pcmcia-cs-version)
150     einfo "Found pcmcia-cs-${PCMCIA_VERSION}"
151     fi
152     fi
153     }
154    
155     # Dummy function for compatibility.
156     pcmcia_configure() { return 0; }
157    
158     pcmcia_src_unpack() {
159     local pcmcia_tbz="${ROOT}/usr/src/pcmcia-cs/pcmcia-cs-build-env.tbz2"
160    
161     # if the kernel has pcmcia support built in, then we just ignore all this.
162     if linux_chkconfig_present PCMCIA; then
163     einfo "Kernel based PCMCIA support has been detected."
164     else
165     if kernel_is 2 4; then
166     unpack_pcmcia_sources ${pcmcia_tbz};
167     else
168     einfo "We have detected that you are running a 2.6 kernel"
169     einfo "but you are not using the built-in PCMCIA support."
170     einfo "We will assume you know what you are doing, but please"
171     einfo "consider using the built in PCMCIA support instead."
172     sleep 10
173    
174     unpack_pcmcia_sources ${pcmcia_tbz};
175     fi
176     fi
177     }
178    
179 johnm 1.1 use_m() {
180     # if we haven't determined the version yet, we need too.
181     get_version;
182 swegener 1.49
183 johnm 1.1 # if the kernel version is greater than 2.6.6 then we should use
184 johnm 1.8 # M= instead of SUBDIRS=
185 johnm 1.1 [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && \
186     return 0 || return 1
187     }
188    
189     convert_to_m() {
190     if use_m
191     then
192 johnm 1.32 [ ! -f "${1}" ] && \
193     die "convert_to_m() requires a filename as an argument"
194 johnm 1.8 ebegin "Converting ${1/${WORKDIR}\//} to use M= instead of SUBDIRS="
195 johnm 1.1 sed -i 's:SUBDIRS=:M=:g' ${1}
196     eend $?
197     fi
198     }
199    
200     update_depmod() {
201     # if we haven't determined the version yet, we need too.
202     get_version;
203 swegener 1.49
204 johnm 1.1 ebegin "Updating module dependencies for ${KV_FULL}"
205 johnm 1.5 if [ -r ${KV_OUT_DIR}/System.map ]
206 johnm 1.1 then
207 johnm 1.5 depmod -ae -F ${KV_OUT_DIR}/System.map -b ${ROOT} -r ${KV_FULL}
208 johnm 1.18 eend $?
209 johnm 1.1 else
210     ewarn
211 johnm 1.5 ewarn "${KV_OUT_DIR}/System.map not found."
212 johnm 1.1 ewarn "You must manually update the kernel module dependencies using depmod."
213 johnm 1.18 eend 1
214 johnm 1.1 ewarn
215     fi
216     }
217    
218 johnm 1.3 update_modules() {
219 kingtaco 1.31 if [ -x /sbin/modules-update ] && \
220     grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* >/dev/null 2>&1; then
221 johnm 1.3 ebegin "Updating modules.conf"
222     /sbin/modules-update
223     eend $?
224     fi
225     }
226    
227 johnm 1.41 move_old_moduledb() {
228     local OLDDIR=${ROOT}/usr/share/module-rebuild/
229     local NEWDIR=${ROOT}/var/lib/module-rebuild/
230 swegener 1.49
231 johnm 1.41 if [[ -f ${OLDDIR}/moduledb ]]; then
232     [[ ! -d ${NEWDIR} ]] && mkdir -p ${NEWDIR}
233 johnm 1.42 [[ ! -f ${NEWDIR}/moduledb ]] && \
234     mv ${OLDDIR}/moduledb ${NEWDIR}/moduledb
235     rm -f ${OLDDIR}/*
236 johnm 1.41 rmdir ${OLDDIR}
237     fi
238     }
239    
240 johnm 1.37 update_moduledb() {
241 johnm 1.40 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
242 johnm 1.41 move_old_moduledb
243 johnm 1.40
244     if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then
245     [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR}
246     touch ${MODULEDB_DIR}/moduledb
247 johnm 1.37 fi
248 johnm 1.40 if [[ -z $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
249 johnm 1.37 einfo "Adding module to moduledb."
250 johnm 1.40 echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb
251 swegener 1.49 fi
252 johnm 1.37 }
253    
254     remove_moduledb() {
255 johnm 1.40 local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/
256 johnm 1.41 move_old_moduledb
257 johnm 1.40
258     if [[ -n $(grep ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb) ]]; then
259 johnm 1.37 einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb."
260 johnm 1.40 sed -ie "/.*${CATEGORY}\/${P}.*/d" ${MODULEDB_DIR}/moduledb
261 johnm 1.37 fi
262     }
263    
264 johnm 1.1 set_kvobj() {
265     if kernel_is 2 6
266     then
267     KV_OBJ="ko"
268     else
269     KV_OBJ="o"
270     fi
271 johnm 1.26 # Do we really need to know this?
272     # Lets silence it.
273     # einfo "Using KV_OBJ=${KV_OBJ}"
274 johnm 1.1 }
275    
276 johnm 1.11 generate_modulesd() {
277     # This function will generate the neccessary modules.d file from the
278     # information contained in the modules exported parms
279 johnm 1.26
280     local currm_path currm t myIFS myVAR
281     local module_docs module_enabled module_aliases \
282     module_additions module_examples module_modinfo module_opts
283    
284     for currm_path in ${@}
285 johnm 1.11 do
286 johnm 1.26 currm=${currm_path//*\/}
287     currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]')
288    
289     module_docs="$(eval echo \${MODULESD_${currm}_DOCS})"
290     module_enabled="$(eval echo \${MODULESD_${currm}_ENABLED})"
291 johnm 1.30 module_aliases="$(eval echo \${#MODULESD_${currm/-/_}_ALIASES[*]})"
292     module_additions="$(eval echo \${#MODULESD_${currm/-/_}_ADDITIONS[*]})"
293     module_examples="$(eval echo \${#MODULESD_${currm/-/_}_EXAMPLES[*]})"
294 johnm 1.26
295 johnm 1.27 [[ ${module_aliases} -eq 0 ]] && unset module_aliases
296     [[ ${module_additions} -eq 0 ]] && unset module_additions
297     [[ ${module_examples} -eq 0 ]] && unset module_examples
298 johnm 1.26
299 swegener 1.49 # If we specify we dont want it, then lets exit, otherwise we assume
300 johnm 1.26 # that if its set, we do want it.
301     [[ ${module_enabled} == no ]] && return 0
302    
303     # unset any unwanted variables.
304     for t in ${!module_*}
305 johnm 1.11 do
306 johnm 1.26 [[ -z ${!t} ]] && unset ${t}
307 johnm 1.11 done
308    
309 johnm 1.26 [[ -z ${!module_*} ]] && return 0
310    
311     # OK so now if we have got this far, then we know we want to continue
312     # and generate the modules.d file.
313     module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})"
314     module_config="${T}/modulesd-${currm}"
315    
316 johnm 1.11 ebegin "Preparing file for modules.d"
317 johnm 1.26 #-----------------------------------------------------------------------
318     echo "# modules.d configuration file for ${currm}" >> ${module_config}
319     #-----------------------------------------------------------------------
320     [[ -n ${module_docs} ]] && \
321     echo "# For more information please read:" >> ${module_config}
322     for t in ${module_docs}
323 johnm 1.11 do
324 johnm 1.26 echo "# ${t//*\/}" >> ${module_config}
325 johnm 1.11 done
326 johnm 1.26 echo >> ${module_config}
327 johnm 1.11
328 johnm 1.26 #-----------------------------------------------------------------------
329 johnm 1.27 if [[ ${module_aliases} -gt 0 ]]
330 johnm 1.11 then
331     echo "# Internal Aliases - Do not edit" >> ${module_config}
332     echo "# ------------------------------" >> ${module_config}
333 johnm 1.12
334 johnm 1.26 for((t=0; t<${module_aliases}; t++))
335 johnm 1.11 do
336 johnm 1.26 echo "alias $(eval echo \${MODULESD_${currm}_ALIASES[$t]})" \
337     >> ${module_config}
338 johnm 1.12 done
339 johnm 1.26 echo '' >> ${module_config}
340 johnm 1.11 fi
341    
342 johnm 1.26 #-----------------------------------------------------------------------
343     if [[ -n ${module_modinfo} ]]
344 johnm 1.11 then
345     echo >> ${module_config}
346     echo "# Configurable module parameters" >> ${module_config}
347     echo "# ------------------------------" >> ${module_config}
348 johnm 1.26 myIFS="${IFS}"
349 johnm 1.11 IFS="$(echo -en "\n\b")"
350 swegener 1.49
351 johnm 1.26 for t in ${module_modinfo}
352 johnm 1.11 do
353 johnm 1.26 myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")"
354     if [[ -n ${myVAR} ]]
355 johnm 1.11 then
356 johnm 1.26 module_opts="${module_opts} ${t%%:*}:${myVAR}"
357 johnm 1.11 fi
358 johnm 1.26 echo -e "# ${t%%:*}:\t${t#*:}" >> ${module_config}
359 swegener 1.49 done
360 johnm 1.26 IFS="${myIFS}"
361     echo '' >> ${module_config}
362     fi
363    
364     #-----------------------------------------------------------------------
365     if [[ $(eval echo \${MODULESD_${currm}_ALIASES[0]}) == guess ]]
366     then
367     # So lets do some guesswork eh?
368     if [[ -n ${module_opts} ]]
369     then
370     echo "# For Example..." >> ${module_config}
371     echo "# --------------" >> ${module_config}
372     for t in ${module_opts}
373     do
374     echo "# options ${currm} ${t//:*}=${t//*:}" >> ${module_config}
375     done
376     echo '' >> ${module_config}
377     fi
378 johnm 1.27 elif [[ ${module_examples} -gt 0 ]]
379 johnm 1.26 then
380     echo "# For Example..." >> ${module_config}
381     echo "# --------------" >> ${module_config}
382     for((t=0; t<${module_examples}; t++))
383     do
384     echo "options $(eval echo \${MODULESD_${currm}_EXAMPLES[$t]})" \
385     >> ${module_config}
386 johnm 1.11 done
387 johnm 1.26 echo '' >> ${module_config}
388 johnm 1.11 fi
389 johnm 1.26
390     #-----------------------------------------------------------------------
391 johnm 1.27 if [[ ${module_additions} -gt 0 ]]
392 johnm 1.11 then
393 johnm 1.26 for((t=0; t<${module_additions}; t++))
394 johnm 1.11 do
395 johnm 1.26 echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" \
396     >> ${module_config}
397 johnm 1.11 done
398 johnm 1.26 echo '' >> ${module_config}
399 johnm 1.11 fi
400 swegener 1.49
401 johnm 1.26 #-----------------------------------------------------------------------
402    
403 johnm 1.12 # then we install it
404 johnm 1.11 insinto /etc/modules.d
405 johnm 1.27 newins ${module_config} ${currm_path//*\/}
406    
407 johnm 1.12 # and install any documentation we might have.
408 johnm 1.26 [[ -n ${module_docs} ]] && dodoc ${module_docs}
409 johnm 1.11 done
410     eend 0
411 johnm 1.26 return 0
412 johnm 1.11 }
413    
414 johnm 1.18 find_module_params() {
415     local matched_offset=0 matched_opts=0 test="${@}" temp_var result
416     local i=0 y=0 z=0
417 swegener 1.49
418 johnm 1.18 for((i=0; i<=${#test}; i++))
419     do
420     case ${test:${i}:1} in
421     \() matched_offset[0]=${i};;
422     \:) matched_opts=$((${matched_opts} + 1));
423     matched_offset[${matched_opts}]="${i}";;
424     \)) matched_opts=$((${matched_opts} + 1));
425     matched_offset[${matched_opts}]="${i}";;
426     esac
427     done
428 swegener 1.49
429 johnm 1.18 for((i=0; i<=${matched_opts}; i++))
430     do
431     # i = offset were working on
432     # y = last offset
433     # z = current offset - last offset
434     # temp_var = temporary name
435     case ${i} in
436     0) tempvar=${test:0:${matched_offset[0]}};;
437     *) y=$((${matched_offset[$((${i} - 1))]} + 1))
438     z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]}));
439     z=$((${z} - 1))
440     tempvar=${test:${y}:${z}};;
441     esac
442 swegener 1.49
443 johnm 1.18 case ${i} in
444     0) result="${result} modulename:${tempvar}";;
445     1) result="${result} libdir:${tempvar}";;
446     2) result="${result} srcdir:${tempvar}";;
447     3) result="${result} objdir:${tempvar}";;
448     esac
449     done
450 swegener 1.49
451 johnm 1.18 echo ${result}
452     }
453    
454 johnm 1.1 # default ebuild functions
455     # --------------------------------
456    
457     linux-mod_pkg_setup() {
458 johnm 1.6 linux-info_pkg_setup;
459     check_kernel_built;
460 johnm 1.1 check_modules_supported;
461     set_kvobj;
462 johnm 1.53 check_vermagic;
463 johnm 1.1 }
464    
465     linux-mod_src_compile() {
466 johnm 1.26 local modulename libdir srcdir objdir i n myARCH="${ARCH}"
467 johnm 1.52 ARCH="$(tc-arch-kernel)"
468 johnm 1.26
469 johnm 1.16 BUILD_TARGETS=${BUILD_TARGETS:-clean module}
470 swegener 1.49
471 johnm 1.20 for i in ${MODULE_IGNORE}
472     do
473     MODULE_NAMES=${MODULE_NAMES//${i}(*}
474     done
475 johnm 1.1
476 johnm 1.9 for i in ${MODULE_NAMES}
477 johnm 1.1 do
478 johnm 1.23 unset libdir srcdir objdir
479 johnm 1.18 for n in $(find_module_params ${i})
480     do
481     eval ${n/:*}=${n/*:/}
482     done
483     libdir=${libdir:-misc}
484     srcdir=${srcdir:-${S}}
485     objdir=${objdir:-${srcdir}}
486 swegener 1.49
487 johnm 1.18 if [ ! -f "${srcdir}/.built" ];
488 johnm 1.16 then
489 johnm 1.18 cd ${srcdir}
490 johnm 1.16 einfo "Preparing ${modulename} module"
491 johnm 1.22 if [[ -n ${ECONF_PARAMS} ]]
492     then
493     econf ${ECONF_PARAMS} || \
494     die "Unable to run econf ${ECONF_PARAMS}"
495     fi
496    
497 johnm 1.21 emake ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \
498 johnm 1.18 || die "Unable to make \
499     ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}."
500     touch ${srcdir}/.built
501 johnm 1.16 cd ${OLDPWD}
502     fi
503 johnm 1.1 done
504 johnm 1.26
505     ARCH="${myARCH}"
506 johnm 1.1 }
507    
508     linux-mod_src_install() {
509 johnm 1.18 local modulename libdir srcdir objdir i n
510 swegener 1.49
511 johnm 1.20 for i in ${MODULE_IGNORE}
512     do
513     MODULE_NAMES=${MODULE_NAMES//${i}(*}
514     done
515 johnm 1.1
516 johnm 1.9 for i in ${MODULE_NAMES}
517 johnm 1.1 do
518 johnm 1.23 unset libdir srcdir objdir
519 johnm 1.18 for n in $(find_module_params ${i})
520     do
521     eval ${n/:*}=${n/*:/}
522     done
523     libdir=${libdir:-misc}
524     srcdir=${srcdir:-${S}}
525     objdir=${objdir:-${srcdir}}
526 johnm 1.1
527     einfo "Installing ${modulename} module"
528 johnm 1.18 cd ${objdir}
529 johnm 1.26 insinto ${ROOT}lib/modules/${KV_FULL}/${libdir}
530 johnm 1.1 doins ${modulename}.${KV_OBJ}
531 johnm 1.16 cd ${OLDPWD}
532 swegener 1.49
533 johnm 1.26 generate_modulesd ${objdir}/${modulename}
534 johnm 1.1 done
535     }
536    
537     linux-mod_pkg_postinst() {
538     update_depmod;
539 johnm 1.3 update_modules;
540 johnm 1.37 update_moduledb;
541 johnm 1.1 }
542 johnm 1.37
543     linux-mod_pkg_postrm() {
544     remove_moduledb;
545     }

  ViewVC Help
Powered by ViewVC 1.1.20