Magellan Linux

Diff of /smage/trunk/include/kernel.sminc

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

smage/branches/alx-0_6_0/include/kernel26.sminc revision 1661 by niro, Sat Jan 22 23:14:38 2011 UTC smage/trunk/include/kernel.sminc revision 4527 by niro, Fri Mar 15 11:06:39 2013 UTC
# Line 1  Line 1 
1  # kernel26 global smage functions  # kernel global smage functions
2  # $Header: /alx-cvs/smage/include/kernel26.sminc,v 1.4 2006/04/03 20:08:07 niro Exp $  # $Id$
3    
4  # needed extra vars:  # needed extra vars:
5  #   ${KERNEL_TYPE}:   needed, 'sources' or 'image'  #  ${KERNEL_TYPE}:       needed, 'sources', 'headers' or 'image'
6  #   ${BRANCH}:        needed, style branch of the kernel  #  ${BRANCH}:            needed, style branch of the kernel
7  #   ${KERNEL_CONFIG}: optional, needed if you want to override the default  #  ${KERNEL_CONFIG}:     optional, needed if you want to override the default
8  #                     searchpath ${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD}  #                        searchpath ${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD}
9  #  #
10  #   ${PSUBVER}:       optional, only needed for 2.6.x.x naming scheme  #  ${PSUBVER}:           optional, only needed for 2.6.x.x naming scheme
11  #   ${EXTRAVERSION}:  optinal, extra version for the kernel name  #  ${EXTRAVERSION}:      optinal, extra version for the kernel name
12  #                     default setting is ${PSUBVER}-${BRANCH}-${PBUILD}  #                        default setting is ${PSUBVER}-${BRANCH}-${PBUILD}
13    #  ${KERNEL_IMAGE_PATH}: override the default KERNEL_IMAGE_PATH (to build xen images for e.g.)
14    #  ${COMPRESS_MODULES}:  compresses the kernel modules with given compressor (gzip|bzip2|xz)
15    #  ${LINUX_FIRMWARE}:    remove included firmware bits if requested
16    #                        set the version here like USE_LINUX_FIRMARE="20110605"
17    #                        version "internal" keeps the bits too
18    #
19    #  ${INCLUDE_KERNELVERSION_FILE}:
20    #  ${USE_KERNEL_SYMLINKS}:
21    
22    sminclude mtools
23    
24  EXTRAVERSION="${PSUBVER}-${BRANCH}-${PBUILD}"  # remove me when all distris support this:
25    if [[ ${USE_KERNEL_ARCH_EXTENSION} = true ]]
26    then
27     KERNEL_ARCH_EXTENSION="-${ARCH}"
28    else
29     KERNEL_ARCH_EXTENSION=""
30    fi
31    
32    if [[ ! -z ${COMPRESS_MODULES} ]]
33    then
34     case ${COMPRESS_MODULES} in
35     gzip)
36     COMPRESS_MODULES_CMD="gzip -9v"
37     SDEPEND="${SDEPEND}
38     >= app-arch/gzip-1.4"
39     ;;
40     bzip2)
41     COMPRESS_MODULES_CMD="bzip2 -9v"
42     SDEPEND="${SDEPEND}
43     >= app-arch/bzip2-1.0.6"
44     ;;
45     xz)
46     COMPRESS_MODULES_CMD="xz -9v"
47     SDEPEND="${SDEPEND}
48     >= app-arch/xz-5"
49     ;;
50     none)
51     echo "Disabled compressed kernel-modules!"
52     COMPRESS_MODULES_CMD=""
53     ;;
54     *) die "Unkown compression format '${COMPRESS_MODULES}'" ;;
55     esac
56    fi
57    
58    # some sane defaults
59    : ${PCAT="sys-kernel"}
60    : ${HOMEPAGE="http://magellan-linux.de/"}
61    : ${TARBALLPVER="${PVER}"}
62    : ${SRCFILE="linux-${TARBALLPVER}.tar.bz2"}
63    : ${SRCDIR="${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}"}
64    
65    if [[ -z ${SRC_URI[*]} ]]
66    then
67     SRC_URI=(
68     http://www.kernel.org/pub/linux/kernel/v$(echo ${PVER} | cut -d. -f1).x/${SRCFILE}
69     http://ftp.uni-erlangen.de/pub/Linux/MIRROR.kernel/v$(echo ${PVER} | cut -d. -f1).x/${SRCFILE}
70     mirror://kernel-${BRANCH}/${SRCFILE}
71     )
72     case ${KERNEL_TYPE} in
73     image|sources)
74     SRC_URI=(
75     ${SRC_URI[*]}
76     mirror://kernel-${BRANCH}/config-${PVER}-${BRANCH}-${PBUILD}-i686
77     mirror://kernel-${BRANCH}/config-${PVER}-${BRANCH}-${PBUILD}-x86_64
78     )
79     ;;
80     esac
81    fi
82    
83    case ${KERNEL_TYPE} in
84     image)
85     : ${PROVIDE="virtual/kernel"}
86     : ${DEPEND=">= virtual/module-tools
87     >= sys-fs/udev-115
88     >= virtual/initramfs-tools
89     >= virtual/initscripts"}
90     if [[ ! -z ${LINUX_FIRMWARE}  ]] && [[ ${LINUX_FIRMWARE} != internal ]]
91     then
92     DEPEND="${DEPEND}
93     >= sys-kernel/linux-firmware-${LINUX_FIRMWARE}"
94     fi
95     : ${DESCRIPTION="Kernel image of the '${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}' kernel branch."}
96     ;;
97    
98     sources)
99     : ${PROVIDE="virtual/kernel-sources"}
100     : ${DESCRIPTION="Kernel sources of the '${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}' kernel branch."}
101     ;;
102    
103     headers)
104     : ${PROVIDE="virtual/kernel-headers"}
105     : ${DESCRIPTION="Sanitized kernel headers for libc."}
106     ;;
107    esac
108    
109    EXTRAVERSION="${PSUBVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}"
110  KERNEL_CONFIG="${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD}-${ARCH}"  KERNEL_CONFIG="${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD}-${ARCH}"
111    
112  kernel26_src_prepare()  # special vars for mage file only
113    KPVER="${PVER}"
114    KPBUILD="${PBUILD}"
115    KBRANCH="${BRANCH}"
116    SPECIAL_VARS="${SPECIAL_VARS} KPVER KPBUILD KBRANCH USE_KERNEL_SYMLINKS"
117    
118    kernel_src_prepare()
119  {  {
120   munpack ${SRCFILE} || die   munpack ${SRCFILE} || die
121   mv ${BUILDDIR}/linux-${PVER/${PSUBVER}/} ${SRCDIR} || die   mv ${BUILDDIR}/linux-${TARBALLPVER} ${SRCDIR} || die
122    
123   # fix permissions   # fix permissions
124   chown -R 0:0 ${SRCDIR} || die   chown -R 0:0 ${SRCDIR} || die
# Line 28  kernel26_src_prepare() Line 129  kernel26_src_prepare()
129   # fixes INSTALL_PATH to /boot and EXTRAVERSION   # fixes INSTALL_PATH to /boot and EXTRAVERSION
130   sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' \   sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' \
131   -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die   -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die
132    
133     # fix sublevel version with 3.x kernels and higher
134     local kver=$(echo ${PVER} | sed "s:\.::g")
135     if [[ ${PVER%%.*} -gt 2 ]]
136     then
137     local sublevel="$(echo ${PVER} | cut -d. -f3)"
138     sed -i "s:^\(SUBLEVEL =\).*:\1 ${sublevel}:" Makefile || die
139     fi
140  }  }
141    
142  kernel26_src_compile()  kernel_src_compile()
143  {  {
144   cd ${SRCDIR}   cd ${SRCDIR}
145    
146   make mrproper || die   make mrproper || die
147    
148   # inject our kernel config   if [[ ${KERNEL_TYPE} = sources ]] || [[ ${KERNEL_TYPE} = image ]]
149   cp ${KERNEL_CONFIG} ${SRCDIR}/.config || die   then
150   make oldconfig || die   # inject our kernel config
151     cp ${KERNEL_CONFIG} ${SRCDIR}/.config || die
152     make ARCH=${ARCH/i*86/x86} oldconfig || die
153     fi
154    
155   case ${KERNEL_TYPE} in   case ${KERNEL_TYPE} in
156   image)   image)
157   mmake || die   mmake ARCH=${ARCH/i*86/x86} || die
158     ;;
159    
160     headers)
161     make ARCH=${ARCH/i*86/x86} headers_check || die
162   ;;   ;;
163    
164   sources)   sources)
165   make clean || die   make clean || die
166    
167   # needed to compile other programs like iptables   # needed to compile other programs like iptables
168   make prepare || die   make ARCH=${ARCH/i*86/x86} prepare || die
169   # needed to cover >=2.6.14 builds   # needed to cover >=2.6.14 builds
170   make prepare-all || die   # but deprecated with >=2.6.21, prepare cover all targets there
171   make scripts || die   local kver=$(echo ${PVER} | sed "s:\.::g")
172     # honor >=3.0.x; add one zero
173     if [[ ${PVER%%.*} -gt 2 ]]
174     then
175     kver="${kver}0"
176     fi
177     if [[ ${kver} < 2621 ]]
178     then
179     make ARCH=${ARCH/i*86/x86} prepare-all || die
180     fi
181     make ARCH=${ARCH/i*86/x86} scripts || die
182    
183   # at least alsa-drivers needs this one ...   # at least alsa-drivers needs this one ...
184   touch include/linux/autoconf.h || die   touch include/linux/autoconf.h || die
185    
186     # compat symlink for 3.7.x new version.h location until everything is fixed
187   ;;   ;;
188   esac   esac
189  }  }
190    
191  kernel26_image_src_install()  kernel_image_src_install()
192  {  {
193   cd ${SRCDIR}   cd ${SRCDIR}
194    
195   # needed directories   # needed directories
196   install -d ${BINDIR}/boot || die   minstalldir /boot || die
197    
198   # install modules   # install modules
199   make INSTALL_MOD_PATH=${BINDIR} modules_install || die   make ARCH=${ARCH/i*86/x86} INSTALL_MOD_PATH=${BINDIR}/usr modules_install || die
200    
201   # install kernelimage   # install kernelimage
202   local my_arch="${ARCH}"   if [[ -z ${KERNEL_IMAGE_PATH} ]]
203   [[ ${my_arch} = i*86 ]] && my_arch=i386   then
204   install -m 0644 -o root -g root \   local my_arch="${ARCH}"
205   arch/${my_arch}/boot/bzImage \   [[ ${my_arch} = i*86 ]] && my_arch=i386
206   ${BINDIR}/boot/kernel-${PVER}-${BRANCH}-${PBUILD} \   minstallfile arch/${my_arch}/boot/bzImage \
207   || die   /boot/kernel-${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION} \
208     || die
209     else
210     minstallfile ${KERNEL_IMAGE_PATH} \
211     /boot/kernel-${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION} \
212     || die
213     fi
214    
215   # install System.map   # install System.map
216   install -m 0644 -o root -g root \   minstallfile System.map \
217   System.map \   /boot/System.map-${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION} \
218   ${BINDIR}/boot/System.map-${PVER}-${BRANCH}-${PBUILD} \   || die
219    
220     # install Module.symvers in boot and /usr/src
221     minstallfile Module.symvers \
222     /boot/Module.symvers-${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION} \
223     || die
224     minstalldir /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} || die
225     minstallfile Module.symvers \
226     /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \
227   || die   || die
228    
229   # install kernel description   if [[ ${INCLUDE_KERNELVERSION_FILE} = true ]]
230   echo "   then
231  KRNVER=${BRANCH}-${PVER}-${ARCH}-${PBUILD}   MCONFIG=/boot/kernelversion
232  KRNLIB=${PVER}-${BRANCH}-${PBUILD}   # install kernel description
233  KRNIMG=kernel-${PVER}-${BRANCH}-${PBUILD}   mclearconfig || die
234  KRNINITRD=   maddconfig "KRNVER=${BRANCH}-${PVER}-${ARCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}" || die
235  " > ${BINDIR}/boot/kernelversion || die   maddconfig "KRNLIB=${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}" || die
236     maddconfig "KRNIMG=kernel-${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}" || die
237     maddconfig "KRNINITRD=" || die
238     fi
239    
240   # install kernel-config from srcdir   # install kernel-config from srcdir
241   install -m 0644 -o root -g root \   minstallfile .config \
242   .config \   /boot/config-${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION} \
  ${BINDIR}/boot/config-${PVER}-${BRANCH}-${PBUILD} \  
243   || die   || die
244    
245   # fix build symlink   # fix build symlink
246   if [ -L ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/build ]   if [ -L ${BINDIR}/usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build ]
247   then   then
248   echo "fixing build symlink"   echo "fixing build symlink"
249   rm ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/build || die   rm ${BINDIR}/usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build || die
250   ln -snf /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \   mlink /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \
251   ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/build \   /usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build \
252   || die   || die
253   fi   fi
254    
255   # and fixing source symlink   # and fixing source symlink
256   if [ -L ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/source ]   if [ -L ${BINDIR}/usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source ]
257   then   then
258   echo "fixing source symlink"   echo "fixing source symlink"
259   rm ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/source || die   rm ${BINDIR}/usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source || die
260   ln -snf /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \   mlink /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \
261   ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/source \   /usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source \
262   || die   || die
263   fi   fi
264    
265     # remove firmware bits if $LINUX_FIRMWARE was set
266     if [[ ! -z ${LINUX_FIRMWARE} ]] && [[ ${LINUX_FIRMWARE} != internal ]]
267     then
268     if [[ -d ${BINDIR}/usr/lib/firmware ]]
269     then
270     rm -rv ${BINDIR}/usr/lib/firmware
271     fi
272     fi
273    
274     # compress modules if COMPRESS_MODULES_CMD was set
275     if [[ ! -z ${COMPRESS_MODULES_CMD} ]]
276     then
277     # compress all kernel modules
278     find ${BINDIR} -name \*.ko | xargs ${COMPRESS_MODULES_CMD} || die
279     fi
280    }
281    
282    kernel_headers_src_install()
283    {
284     cd ${SRCDIR}
285     make ARCH=${ARCH/i*86/x86} INSTALL_HDR_PATH=${BINDIR}/usr headers_install || die
286    
287     # clean-up unnecessary files
288     find ${BINDIR} -name .install -or -name ..install.cmd | xargs --no-run-if-empty rm -f
289  }  }
290    
291  kernel26_sources_src_install()  kernel_sources_src_install()
292  {  {
293   cd ${BUILDDIR}   cd ${BUILDDIR}
294    
# Line 127  kernel26_sources_src_install() Line 296  kernel26_sources_src_install()
296   tar cvjf ${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 $(basename ${SRCDIR}) || die   tar cvjf ${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 $(basename ${SRCDIR}) || die
297    
298   echo "Moving linux-${PVER}-${BRANCH}-${PBUILD} tarball to \${BINDIR}/usr/src ... "   echo "Moving linux-${PVER}-${BRANCH}-${PBUILD} tarball to \${BINDIR}/usr/src ... "
299   install -d ${BINDIR}/usr/src || die   minstalldir /usr/src || die
300   mv ${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 ${BINDIR}/usr/src || die   mv ${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 ${BINDIR}/usr/src || die
301  }  }
302    
303  # installs module-sources path/to/SRCDIR to MODDIR/MODNAME  # installs module-sources path/to/SRCDIR to MODDIR/MODNAME
304  # kernel26_external_modules_install path/to/SRCDIR DESTDIRNAME  # kernel_external_modules_install path/to/SRCDIR DESTDIRNAME
305  kernel26_external_modules_install()  kernel_external_modules_install()
306  {  {
307   cd ${BUILDDIR}   cd ${BUILDDIR}
308    
# Line 146  kernel26_external_modules_install() Line 315  kernel26_external_modules_install()
315   mv ${modsrc} ${moddir}/${moddest} || die   mv ${modsrc} ${moddir}/${moddest} || die
316  }  }
317    
318  kernel26_external_modules_tarball()  kernel_external_modules_tarball()
319  {  {
320   cd ${BUILDDIR}   cd ${BUILDDIR}
321    
# Line 155  kernel26_external_modules_tarball() Line 324  kernel26_external_modules_tarball()
324   kernel-modules-${PVER}-${BRANCH}-${PBUILD} || die   kernel-modules-${PVER}-${BRANCH}-${PBUILD} || die
325    
326   echo "Moving kernel-modules-${PVER}-${BRANCH}-${PBUILD} tarball to \${BINDIR}/usr/src ... "   echo "Moving kernel-modules-${PVER}-${BRANCH}-${PBUILD} tarball to \${BINDIR}/usr/src ... "
327   install -d ${BINDIR}/usr/src || die   minstalldir /usr/src || die
328   mv ${BUILDDIR}/kernel-modules-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 ${BINDIR}/usr/src || die   mv ${BUILDDIR}/kernel-modules-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 ${BINDIR}/usr/src || die
329  }  }
330    
331  kernel26_src_install()  kernel_src_install()
332  {  {
333   case ${KERNEL_TYPE} in   case ${KERNEL_TYPE} in
334   image)   image)
335   kernel26_image_src_install || die   kernel_image_src_install || die
336     ;;
337    
338     headers)
339     kernel_headers_src_install || die
340   ;;   ;;
341    
342   sources)   sources)
343   kernel26_sources_src_install || die   kernel_sources_src_install || die
344   ;;   ;;
345   esac   esac
346  }  }
# Line 199  mod_suffix() Line 372  mod_suffix()
372  {  {
373   local ksrc="$@"   local ksrc="$@"
374   local mod_suffix   local mod_suffix
375     local kmv
376    
377   if [[ $(kernel_major_version ${ksrc}) = 2.6 ]]   kmv=$(kernel_major_version ${ksrc})
378     if [[ ${kmv//.} -ge 26 ]]
379   then   then
380   mod_suffix="ko"   mod_suffix="ko"
381   else   else
# Line 210  mod_suffix() Line 385  mod_suffix()
385   echo ${mod_suffix}   echo ${mod_suffix}
386  }  }
387    
388  export_inherits kernel26 src_prepare src_compile src_install  kernel_image_preinstall()
389    {
390     if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
391     then
392     mount /boot &> /dev/null
393     fi
394    }
395    
396    kernel_image_preremove()
397    {
398     if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
399     then
400     mount /boot &> /dev/null
401    
402     # remove old image entry from grub
403     new-kernel-pkg -v --rminitrd --rmmoddep --remove ${KPVER}-${KBRANCH}-${KPBUILD}
404     fi
405    }
406    
407    kernel_image_postinstall()
408    {
409     [ ! -d ${MROOT}/sys ] && install -d ${MROOT}/sys
410    
411     # fixes a small glitch in <=mage-0.3.6-r15 with symlinks
412     [ -f ${MROOT}/usr/src/linux-${KPVER}-${KBRANCH}-${KPBUILD} ] && \
413     rm ${MROOT}/usr/src/linux-${KPVER}-${KBRANCH}-${KPBUILD}
414    
415     [ -x ${MROOT}/sbin/depmod ] &&
416     ${MROOT}/sbin/depmod -ae \
417     -F /boot/System.map-${KPVER}-${KBRANCH}-${KPBUILD} \
418     ${KPVER}-${KBRANCH}-${KPBUILD}
419    
420     # do not run this if ${MROOT} is set !
421     if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
422     then
423     new-kernel-pkg -v --mkinitrd --make-default --install ${KPVER}-${KBRANCH}-${KPBUILD}
424     fi
425    
426     if [[ ${USE_KERNEL_SYMLINKS} = true ]]
427     then
428     # symlink actual kernel to /boot/vmlinuz etc...
429     ln -snf kernel-${KPVER}-${KBRANCH}-${KPBUILD} ${MROOT}/boot/vmlinuz
430     ln -snf System.map-${KPVER}-${KBRANCH}-${KPBUILD} ${MROOT}/boot/System.map
431     ln -snf config-${KPVER}-${KBRANCH}-${KPBUILD} ${MROOT}/boot/config
432     [[ -f ${MROOT}/boot/initrd-${KPVER}-${KBRANCH}-${KPBUILD}.img ]] &&
433     ln -snf initrd-${KPVER}-${KBRANCH}-${KPBUILD}.img ${MROOT}/boot/initrd
434     fi
435    }
436    
437    kernel_sources_postinstall()
438    {
439     # check for linux-VERSION/include as the kernel-image installs
440     # the file Modules.symver in the linux-VERSION directory
441     if mqueryfeature "kernelsrcunpack" &&
442     [ ! -d ${MROOT}/usr/src/linux-${KPVER}-${KBRANCH}-${KPBUILD}/include ]
443     then
444     echo "Unpacking linux-${KPVER}-${KBRANCH}-${KPBUILD} source tarball ... "
445     tar xvjf ${MROOT}/usr/src/linux-${KPVER}-${KBRANCH}-${KPBUILD}.tar.bz2 -C ${MROOT}/usr/src
446     fi
447    
448     if mqueryfeature "kernelsrcunpack" &&
449     [ ! -d ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} ] &&
450     [ -f ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD}.tar.bz2 ]
451     then
452     echo "Unpacking kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} source tarball ... "
453     tar xvjf ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD}.tar.bz2 -C ${MROOT}/usr/src
454     fi
455    
456     # create linux symlink
457     if mqueryfeature "linuxsymlink"
458     then
459     echo "Creating linux -> linux-${KPVER}-${KBRANCH}-${KPBUILD} symlink ... "
460     [ ! -d ${MROOT}/usr/src ] && install ${MROOT}/usr/src
461     ln -snf ${MROOT}/usr/src/linux-${KPVER}-${KBRANCH}-${KPBUILD} \
462     ${MROOT}/usr/src/linux || die
463     fi
464    
465     # create kernel-modules symlink
466     if mqueryfeature "linuxsymlink" &&
467     [ -d ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} ]
468     then
469     echo "Creating kernel-modules -> kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} symlink ... "
470     [ ! -d ${MROOT}/usr/src ] && install ${MROOT}/usr/src
471     ln -snf ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} \
472     ${MROOT}/usr/src/kernel-modules || die
473     fi
474    }
475    
476    export_inherits kernel src_prepare src_compile src_install
477    
478    # export pre/postinstall functions depending on KERNEL_TYPE
479    case ${KERNEL_TYPE} in
480     image)
481     export_inherits kernel_image preinstall preremove postinstall
482     SPECIAL_FUNCTIONS="${SPECIAL_FUNCTIONS} kernel_image_preinstall kernel_image_preremove kernel_image_postinstall"
483     ;;
484     sources)
485     export_inherits kernel_sources postinstall
486     SPECIAL_FUNCTIONS="${SPECIAL_FUNCTIONS} kernel_sources_postinstall"
487     ;;
488    esac

Legend:
Removed from v.1661  
changed lines
  Added in v.4527