diff --git a/package/base/linux/linux.conf b/package/base/linux/linux.conf index 05bd982a3..c4f712f09 100644 --- a/package/base/linux/linux.conf +++ b/package/base/linux/linux.conf @@ -36,8 +36,7 @@ echo_status "Preparing to build a linux kernel $pkg_linux_mode package." case "$xpkg" in *-cross-*) pkg_linux_cross="${xpkg#**-cross-}" - echo_error "Building linux kernel cross packages isn't supported yet." - exit 1 + abort "Building linux kernel cross packages isn't supported yet." ;; esac @@ -45,7 +44,10 @@ esac treever=${xpkg/linux/} treever=${treever/-*/} -[ "$vanilla_ver" ] || vanilla_ver="$ver" +: ${vanilla_ver:=$ver} +if [[ ${vanilla_ver} == 2.6.* ]] ; then + vanilla_ver=$( echo ${vanilla_ver} | cut -d. -f-3 ) +fi srctar="linux-${vanilla_ver}.tar.bz2" lx_extraversion="" @@ -90,7 +92,7 @@ for x in $confdir/linux$treever/*.patch; do done # add hppa patch if needed -if [[ "$arch" == hppa && "$vanillaver" == 2.6* ]]; then +if [[ "$arch" == hppa && "$vanillaver" == 2.6.* ]]; then var_insert patchfiles " " "$archdir/patch-2.6.*-pa*.bz2" fi @@ -281,8 +283,7 @@ lx_config () yes '' | eval $MAKE oldconfig > /dev/null fi - echo "Clean up the *.orig and *~ files ... " - rm -f .config.old `find -name '*.orig' -o -name '*~'` + lx_cleanup echo "Generic linux source configuration finished." } @@ -291,15 +292,28 @@ pkg_linux_brokenfiles="$base/architecture/$arch/kernel-disable.lst \ $base/architecture/$arch/kernel$treever-disable.lst \ $confdir/linux$treever/disable-broken.lst $pkg_linux_brokenfiles" -main_lx_src() { +lx_source() { echo "Extracting the Linux Kernel Sources [$vanilla_ver] ... " tar $taropt $archdir/$srctar cd linux-$vanilla_ver - echo "Correcting user and permissions ..." - chown -R root:root . ; chmod -R u=rwX,go=rX . + if [ -e $archdir/patch-${ver}.bz2 ] ; then + echo "Patching up to $ver ..." + bzcat $archdir/patch-${ver}.bz2 | patch $patchopt + fi + + echo "Correcting ownership and permissions ..." + chown -R 0:0 . ; chmod -R u=rwX,go=rX . +} + +lx_cleanup() { + echo "Clean up the *.orig and *~ files ... " + find -name '*.orig' -o -name '*~' | xargs rm -f + rm -f .config.old .config.[1-9] +} - echo "Configuring kernel source ..." +main_lx_src() { + lx_source lx_config echo "Copying to $root/usr/src/linux-${lx_kernelrelease} ..." @@ -337,13 +351,12 @@ main_lx_src() { echo "Creating scripts/* because external modules need it ..." eval $MAKE scripts/ fi - - echo "Clean up the *.orig and *~ files ... " - find -name '*.orig' -o -name '*~' | xargs rm -f - rm -f .config.old .config.[1-9] + + lx_cleanup } main_lx() { + lx_source lx_config # we need to rerun the oldconfig since the used .config @@ -478,15 +491,14 @@ main_lx() { fi } +autoextract=0 case "$pkg_linux_mode" in source) - autoextract=0 createdocs=0 custmain="main_lx_src" ;; image) custmain="main_lx" - autopatch=0 ;; esac diff --git a/package/base/linux/linux.desc b/package/base/linux/linux.desc index b7e8f54ad..2b27e04cd 100644 --- a/package/base/linux/linux.desc +++ b/package/base/linux/linux.desc @@ -50,8 +50,9 @@ #endif #if xpkg == linux26.* -[V] 2.6.16.9 -[D] 109392926 linux-2.6.16.9.tar.bz2 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ +[V] 2.6.16.18 +[D] 82985259 linux-2.6.16.tar.bz2 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ +[D] 2019327378 patch-2.6.16.18.bz2 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ [D] 4024976103 patch-2.6.16-pa11.gz http://cvs.parisc-linux.org/download/linux-2.6/ #endif