Magellan Linux

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

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

smage/trunk/include/kernel26.sminc revision 2792 by niro, Mon Aug 29 20:03:18 2011 UTC smage/trunk/include/kernel.sminc revision 2957 by niro, Wed Sep 7 11:32:21 2011 UTC
# Line 1  Line 1 
1  # kernel26 global smage functions  # kernel global smage functions
2  # $Id$  # $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}
# Line 23  else Line 23  else
23  fi  fi
24    
25  # some sane defaults  # some sane defaults
26    : ${PCATEGORIE="sys-kernel"}
27    : ${HOMEPAGE="http://magellan-linux.de/"}
28  : ${SRCFILE="linux-${PVER/${PSUBVER}/}.tar.bz2"}  : ${SRCFILE="linux-${PVER/${PSUBVER}/}.tar.bz2"}
29  : ${SRCDIR="${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}"}  : ${SRCDIR="${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}"}
30    
31  : ${SRC_URI=(  case ${KERNEL_TYPE} in
32   http://www.kernel.org/pub/linux/kernel/v${PVER:0:3}/${SRCFILE}   image|sources)
33   mirror://kernel26-${BRANCH}/${SRCFILE}   if [[ -z ${SRC_URI[*]} ]]
34   mirror://kernel26-${BRANCH}/config-${PVER}-${BRANCH}-${PBUILD}-i686   then
35   mirror://kernel26-${BRANCH}/config-${PVER}-${BRANCH}-${PBUILD}-x86_64   SRC_URI=(
36  )}   http://www.kernel.org/pub/linux/kernel/v$(echo ${PVER} | cut -d. -f1-2)/${SRCFILE}
37     http://ftp.uni-erlangen.de/pub/Linux/MIRROR.kernel/v$(echo ${PVER} | cut -d. -f1-2)/${SRCFILE}
38  : ${DEPEND=">= sys-apps/module-init-tools-3.2   mirror://kernel-${BRANCH}/${SRCFILE}
39   >= sys-fs/udev-115   mirror://kernel-${BRANCH}/config-${PVER}-${BRANCH}-${PBUILD}-i686
40   >= sys-apps/mkinitrd-5.0.8   mirror://kernel-${BRANCH}/config-${PVER}-${BRANCH}-${PBUILD}-x86_64
41   >= sys-apps/initscripts-0.4.3"}   )
42     fi
43     ;;
44    
45     headers)
46     if [[ -z ${SRC_URI[*]} ]]
47     then
48     SRC_URI=(
49     http://www.kernel.org/pub/linux/kernel/v$(echo ${PVER} | cut -d. -f1-2)/${SRCFILE}
50     http://ftp.uni-erlangen.de/pub/Linux/MIRROR.kernel/v$(echo ${PVER} | cut -d. -f1-2)/${SRCFILE}
51     mirror://kernel-${BRANCH}/${SRCFILE}
52     )
53     fi
54     ;;
55    esac
56    
57    case ${KERNEL_TYPE} in
58     image)
59     : ${PROVIDE="virtual/kernel"}
60     : ${DEPEND=">= sys-apps/module-init-tools-3.2
61     >= sys-fs/udev-115
62     >= sys-apps/mkinitrd-5.0.8
63     >= virtual/initscripts"}
64     : ${DESCRIPTION="Kernel image of the '${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}' kernel."}
65     ;;
66    
67     sources)
68     : ${PROVIDE="virtual/kernel-sources"}
69     : ${DESCRIPTION="Kernel sources of the '${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}' kernel."}
70     ;;
71    
72  : ${PROVIDE="virtual/kernel"}   headers)
73     : ${PROVIDE="virtual/kernel-headers"}
74     : ${DESCRIPTION="Sanitized kernel headers for libc."}
75     ;;
76    esac
77    
78  EXTRAVERSION="${PSUBVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}"  EXTRAVERSION="${PSUBVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}"
79  KERNEL_CONFIG="${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD}-${ARCH}"  KERNEL_CONFIG="${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD}-${ARCH}"
# Line 49  KPBUILD="${PBUILD}" Line 84  KPBUILD="${PBUILD}"
84  KBRANCH="${BRANCH}"  KBRANCH="${BRANCH}"
85  SPECIAL_VARS="${SPECIAL_VARS} KPVER KPBUILD KBRANCH"  SPECIAL_VARS="${SPECIAL_VARS} KPVER KPBUILD KBRANCH"
86    
87  kernel26_src_prepare()  kernel_src_prepare()
88  {  {
89   munpack ${SRCFILE} || die   munpack ${SRCFILE} || die
90   mv ${BUILDDIR}/linux-${PVER/${PSUBVER}/} ${SRCDIR} || die   mv ${BUILDDIR}/linux-${PVER/${PSUBVER}/} ${SRCDIR} || die
# Line 65  kernel26_src_prepare() Line 100  kernel26_src_prepare()
100   -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die   -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die
101  }  }
102    
103  kernel26_src_compile()  kernel_src_compile()
104  {  {
105   cd ${SRCDIR}   cd ${SRCDIR}
106    
107   make mrproper || die   make mrproper || die
108    
109   # inject our kernel config   if [[ ${KERNEL_TYPE} = sources ]] || [[ ${KERNEL_TYPE} = image ]]
110   cp ${KERNEL_CONFIG} ${SRCDIR}/.config || die   then
111   make ARCH=${ARCH/i*86/x86} oldconfig || die   # inject our kernel config
112     cp ${KERNEL_CONFIG} ${SRCDIR}/.config || die
113     make ARCH=${ARCH/i*86/x86} oldconfig || die
114     fi
115    
116   case ${KERNEL_TYPE} in   case ${KERNEL_TYPE} in
117   image)   image)
118   mmake ARCH=${ARCH/i*86/x86} || die   mmake ARCH=${ARCH/i*86/x86} || die
119   ;;   ;;
120    
121     headers)
122     make ARCH=${ARCH/i*86/x86} headers_check || die
123     ;;
124    
125   sources)   sources)
126   make clean || die   make clean || die
127    
# Line 87  kernel26_src_compile() Line 129  kernel26_src_compile()
129   make ARCH=${ARCH/i*86/x86} prepare || die   make ARCH=${ARCH/i*86/x86} prepare || die
130   # needed to cover >=2.6.14 builds   # needed to cover >=2.6.14 builds
131   # but deprecated with >=2.6.21, prepare cover all targets there   # but deprecated with >=2.6.21, prepare cover all targets there
132   [[ $(echo ${PVER} | sed "s:\.::g") < 2621 ]] && { make ARCH=${ARCH/i*86/x86} prepare-all || die; }   local kver=$(echo ${PVER} | sed "s:\.::g")
133     # honor >=3.0.x; add one zero
134     if [[ ${PVER%%.*} -gt 2 ]]
135     then
136     kver="${kver}0"
137     fi
138     if [[ ${kver} < 2621 ]]
139     then
140     make ARCH=${ARCH/i*86/x86} prepare-all || die
141     fi
142   make ARCH=${ARCH/i*86/x86} scripts || die   make ARCH=${ARCH/i*86/x86} scripts || die
143    
144   # at least alsa-drivers needs this one ...   # at least alsa-drivers needs this one ...
# Line 96  kernel26_src_compile() Line 147  kernel26_src_compile()
147   esac   esac
148  }  }
149    
150  kernel26_image_src_install()  kernel_image_src_install()
151  {  {
152   cd ${SRCDIR}   cd ${SRCDIR}
153    
# Line 168  KRNINITRD= Line 219  KRNINITRD=
219   fi   fi
220  }  }
221    
222  kernel26_sources_src_install()  kernel_headers_src_install()
223    {
224     cd ${SRCDIR}
225     make ARCH=${ARCH/i*86/x86} INSTALL_HDR_PATH=${BINDIR}/usr headers_install || die
226    }
227    
228    kernel_sources_src_install()
229  {  {
230   cd ${BUILDDIR}   cd ${BUILDDIR}
231    
# Line 181  kernel26_sources_src_install() Line 238  kernel26_sources_src_install()
238  }  }
239    
240  # installs module-sources path/to/SRCDIR to MODDIR/MODNAME  # installs module-sources path/to/SRCDIR to MODDIR/MODNAME
241  # kernel26_external_modules_install path/to/SRCDIR DESTDIRNAME  # kernel_external_modules_install path/to/SRCDIR DESTDIRNAME
242  kernel26_external_modules_install()  kernel_external_modules_install()
243  {  {
244   cd ${BUILDDIR}   cd ${BUILDDIR}
245    
# Line 195  kernel26_external_modules_install() Line 252  kernel26_external_modules_install()
252   mv ${modsrc} ${moddir}/${moddest} || die   mv ${modsrc} ${moddir}/${moddest} || die
253  }  }
254    
255  kernel26_external_modules_tarball()  kernel_external_modules_tarball()
256  {  {
257   cd ${BUILDDIR}   cd ${BUILDDIR}
258    
# Line 208  kernel26_external_modules_tarball() Line 265  kernel26_external_modules_tarball()
265   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
266  }  }
267    
268  kernel26_src_install()  kernel_src_install()
269  {  {
270   case ${KERNEL_TYPE} in   case ${KERNEL_TYPE} in
271   image)   image)
272   kernel26_image_src_install || die   kernel_image_src_install || die
273     ;;
274    
275     headers)
276     kernel_headers_src_install || die
277   ;;   ;;
278    
279   sources)   sources)
280   kernel26_sources_src_install || die   kernel_sources_src_install || die
281   ;;   ;;
282   esac   esac
283  }  }
# Line 248  mod_suffix() Line 309  mod_suffix()
309  {  {
310   local ksrc="$@"   local ksrc="$@"
311   local mod_suffix   local mod_suffix
312     local kmv
313    
314   if [[ $(kernel_major_version ${ksrc}) = 2.6 ]]   kmv=$(kernel_major_version ${ksrc})
315     if [[ ${kmv//.} -ge 26 ]]
316   then   then
317   mod_suffix="ko"   mod_suffix="ko"
318   else   else
# Line 259  mod_suffix() Line 322  mod_suffix()
322   echo ${mod_suffix}   echo ${mod_suffix}
323  }  }
324    
325  kernel26_image_preinstall()  kernel_image_preinstall()
326  {  {
327   if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]   if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
328   then   then
# Line 267  kernel26_image_preinstall() Line 330  kernel26_image_preinstall()
330   fi   fi
331  }  }
332    
333  kernel26_image_preremove()  kernel_image_preremove()
334  {  {
335   if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]   if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
336   then   then
# Line 275  kernel26_image_preremove() Line 338  kernel26_image_preremove()
338   fi   fi
339  }  }
340    
341  kernel26_image_postremove()  kernel_image_postremove()
342  {  {
343   if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]   if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
344   then   then
# Line 284  kernel26_image_postremove() Line 347  kernel26_image_postremove()
347   fi   fi
348  }  }
349    
350  kernel26_image_postinstall()  kernel_image_postinstall()
351  {  {
352   [ ! -d ${MROOT}/sys ] && install -d ${MROOT}/sys   [ ! -d ${MROOT}/sys ] && install -d ${MROOT}/sys
353    
# Line 311  kernel26_image_postinstall() Line 374  kernel26_image_postinstall()
374   ln -snf initrd-${KPVER}-${KBRANCH}-${KPBUILD}.img ${MROOT}/boot/initrd   ln -snf initrd-${KPVER}-${KBRANCH}-${KPBUILD}.img ${MROOT}/boot/initrd
375  }  }
376    
377  kernel26_sources_postinstall()  kernel_sources_postinstall()
378  {  {
379   # check for linux-VERSION/include as the kernel-image installs   # check for linux-VERSION/include as the kernel-image installs
380   # the file Modules.symver in the linux-VERSION directory   # the file Modules.symver in the linux-VERSION directory
# Line 348  kernel26_sources_postinstall() Line 411  kernel26_sources_postinstall()
411   fi   fi
412  }  }
413    
414  export_inherits kernel26 src_prepare src_compile src_install  export_inherits kernel src_prepare src_compile src_install
415    
416  # export pre/postinstall functions depending on KERNEL_TYPE  # export pre/postinstall functions depending on KERNEL_TYPE
417  case ${KERNEL_TYPE} in  case ${KERNEL_TYPE} in
418   image)   image)
419   export_inherits kernel26_image preinstall preremove postinstall postremove   export_inherits kernel_image preinstall preremove postinstall postremove
420   SPECIAL_FUNCTIONS="${SPECIAL_FUNCTIONS} kernel26_image_preinstall kernel26_image_preremove kernel26_image_postinstall kernel26_image_postremove"   SPECIAL_FUNCTIONS="${SPECIAL_FUNCTIONS} kernel_image_preinstall kernel_image_preremove kernel_image_postinstall kernel_image_postremove"
421   ;;   ;;
422   sources)   sources)
423   export_inherits kernel26_sources postinstall   export_inherits kernel_sources postinstall
424   SPECIAL_FUNCTIONS="${SPECIAL_FUNCTIONS} kernel26_sources_postinstall"   SPECIAL_FUNCTIONS="${SPECIAL_FUNCTIONS} kernel_sources_postinstall"
425   ;;   ;;
426  esac  esac

Legend:
Removed from v.2792  
changed lines
  Added in v.2957