--- plamo/01_minimum/devel.txz/old/kernel_headers-20160219/PlamoBuild.kernel_headers-4.1.15_plamoRPi2 2016-02-19 08:30:28.000000000 +0900 +++ plamo/01_minimum/devel.txz/kernel_headers/PlamoBuild.kernel_headers-4.9.36_plamoRPi2 2017-07-27 11:36:32.000000000 +0900 @@ -1,224 +1,56 @@ #!/bin/sh -x ###################################################################### -url="https://github.com/raspberry/linux.git - ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/UNICON/vd_unicon-kernel-20150627-4.1.patch +url="https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.36.tar.xz + ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/UNICON/vd_unicon-kernel-20161217-4.9.patch ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/UNICON/vd_unicon-kernel-fonts-20140614.patch.bz2 https://github.com/sfjro/aufs4-standalone.git - ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/mcp/4.1-panic_beep.patch - ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/mcp/4.1-morse_code_panics.patch - ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/toi/tuxonice-for-linux-4.1.6-2015-08-22.patch.bz2 + ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/mcp/4.9-panic_beep.patch + ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/mcp/4.9-morse_code_panics.patch + ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/toi/tuxonice-for-linux-4.9.1-2017-01-06.patch.bz2 ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/ovlfs/overlayfs-allow_unprivileged_mounts.patch - ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/config-4.1.15-plamoRPi2" + ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/rpi/rpi-4.9.36-20170705-3ecb1db.patch.xz + ftp://plamo.linet.gr.jp/pub/Plamo-test/kernelsrc_patches/config-4.9.36-plamo@LV@" +verify= +digest= +branch[3]=aufs4.9 +commitid[3]=c8baf66 pkgbase=kernel_headers -vers=4.1.15_plamoRPi2 -arch=arm -build=P3 -src=linux +vers=4.9.36_plamo@LV@ +arch=`uname -m` +build=P1 +src=linux-4.9.36 +patchfiles="" OPT_CONFIG="" DOCS="" +template=20170713 +tmplurl=ftp://plamo.linet.gr.jp/pub/Plamo-src/admin ###################################################################### -fscheck() { - PANGRAM="The quick brown fox jumps over the lazy dog." - echo -n "Checking for the filesystem ... " - mkdir pangram ; ( cd pangram ; touch $PANGRAM ) - mv pangram pangram~ ; mkdir pangram ; touch -r pangram~ pangram - tar cpf pangram.tar pangram ; rmdir pangram ; mv pangram~ pangram - for i in $PANGRAM ; do tar rpf pangram.tar pangram/$i ; done - touch -t `date '+%m%d0900'` pangram.tar ; gzip pangram.tar - touch pangram.tar.gz ; mv pangram.tar.gz pangram1.tgz - tar cpf pangram.tar pangram - touch -t `date '+%m%d0900'` pangram.tar ; gzip pangram.tar - touch pangram.tar.gz ; mv pangram.tar.gz pangram2.tgz - if cmp -s pangram1.tgz pangram2.tgz ; then - echo "OK" - rm -rf pangram pangram1.tgz pangram2.tgz - else - echo "NG" - cat <<- "EOF" - Hmm, packaging may not be done properly on this filesystem. - Would you please try again on a default filesystem, thanks! - - Happy packaging!! - - Quitting... - EOF - exit - fi -} - -install2() { - install -d ${2%/*} ; install -m 644 $1 $2 -} - -strip_bindir() { - echo "compressing in $1" - if [ -d $1 ] ; then ( - shopt -s nullglob - cd $1 - for i in * ; do - echo "$i" - if [ -h $i ] ; then continue ; fi - if [ -n "`file $i | grep "not stripped"`" ] ; then - echo "stripping -p $i" - strip -p $i - fi - done - ) fi -} - -strip_libdir() { - echo "compressing in $1" - if [ -d $1 ] ; then ( - shopt -s nullglob - cd $1 - for i in *.so *.so.* *.a ; do - echo "$i" - if [ -h $i ] ; then continue ; fi - if [ -n "`nm -a $i | grep " a "`" ] ; then - if [ $i != ${i%.a} ] ; then - echo -n "ranlib and " - touch -r $i $i.mt ; ranlib $i ; touch -r $i.mt $i ; rm $i.mt - fi - echo "stripping -gp $i" - strip -gp $i - fi - done - ) fi -} - -gzip_dir() { - echo "compressing in $1" - if [ -d $1 ] ; then ( - cd $1 - files=`ls -f --indicator-style=none | sed '/^\.\{1,2\}$/d'` - for i in $files ; do - echo "$i" - if [ ! -f $i -a ! -h $i -o $i != ${i%.gz} ] ; then continue ; fi - lnks=`ls -l $i | awk '{print $2}'` - if [ $lnks -gt 1 ] ; then - inum=`ls -i $i | awk '{print $1}'` - for j in `find . -maxdepth 1 -inum $inum` ; do - if [ ${j#./} == $i ] ; then - gzip -f $i - else - rm -f ${j#./} ; ln $i.gz ${j#./}.gz - fi - done - elif [ -h $i ] ; then - target=`readlink $i` ; rm -f $i ; ln -s $target.gz $i.gz - else - gzip $i - fi - done - for i in $files ; do mv ${i%.gz}.gz $C ; done - for i in $files ; do mv $C/${i%.gz}.gz . ; done - ) fi -} - -gzip_one() { - gzip $1 ; mv $1.gz $C ; mv $C/${1##*/}.gz ${1%/*} -} - -compress() { - for i in {$P,$P/usr}/{sbin,bin} ; do strip_bindir $i ; done - for i in {$P,$P/usr}/$libdir ; do strip_libdir $i ; done - if [ -f $infodir/dir ] ; then rm -f $infodir/dir ; fi - gzip_dir $infodir - for i in `seq 9` n ; do gzip_dir $mandir/man$i ; done -} - -prune_symlink() { - echo "pruning symlink in $1" - if [ -d $1 ] ; then ( - cd $P - rm -f /tmp/iNsT-a.$$ ; touch /tmp/iNsT-a.$$ - for i in `find ${1#$P/} -type l` ; do - target=`readlink $i` - echo "$i -> $target" - echo $i$'\n'$target >> /tmp/iNsT-a.$$ - done - COUNT=1 - LINE=`sed -n "${COUNT}p" /tmp/iNsT-a.$$` - while [ -n "$LINE" ] ; do - LINKGOESIN=`dirname $LINE` - LINKNAMEIS=`basename $LINE` - COUNT=$(($COUNT + 1)) - LINKPOINTSTO=`sed -n "${COUNT}p" /tmp/iNsT-a.$$` - if [ ! -d install ] ; then mkdir install ; fi - cat <<- EOF >> install/doinst.sh - ( cd $LINKGOESIN ; rm -rf $LINKNAMEIS ) - ( cd $LINKGOESIN ; ln -sf $LINKPOINTSTO $LINKNAMEIS ) - EOF - rm -rf $LINE ; touch -t `date '+%m%d0900'` install/doinst.sh $LINE - COUNT=$(($COUNT + 1)) - LINE=`sed -n "${COUNT}p" /tmp/iNsT-a.$$` - done - rm -f /tmp/iNsT-a.$$ - ) fi -} - -convert() { - for i in {$P,$P/usr}/{sbin,bin} ; do prune_symlink $i ; done - for i in {$P,$P/usr}/$libdir ; do prune_symlink $i ; done - prune_symlink $infodir - for i in `seq 9` n ; do prune_symlink $mandir/man$i ; done -} - -fscheck -W=`pwd` -for i in `seq 0 $((${#src[@]} - 1))` ; do - S[$i]=$W/${src[$i]} ; B[$i]=$W/build`test ${#src[@]} -eq 1 || echo $i` -done -P=$W/work ; C=$W/pivot -infodir=$P/usr/share/info -mandir=$P/usr/share/man -docdir=$P/usr/share/doc -myname=`basename $0` -pkg=$pkgbase-$vers-$arch-$build -case $arch in x86_64) libdir=lib64 ;; *) libdir=lib ;; esac -if [ $# -eq 0 ] ; then - opt_download=1 ; opt_config=1 ; opt_build=1 ; opt_package=1 +if [ -f functions ] ; then + source ./functions +elif [ ! -f /usr/share/plamo/functions ] ; then + wget ftp://plamo.linet.gr.jp/pub/Plamo-src/admin/functions + source ./functions else - opt_download=0 ; opt_config=0 ; opt_build=0 ; opt_package=0 - for i in $@ ; do - case $i in - download) opt_download=1 ;; - config) opt_config=1 ;; - build) opt_build=1 ;; - package) opt_package=1 ;; - esac - done + source /usr/share/plamo/functions fi + +fscheck +case `uname -m` in i686) lv=SMP ;; x86_64) lv=64 ;; armv7l) lv=RPi2 ;; esac +url=${url/@LV@/$lv} ; vers=${vers/@LV@/$lv} +case `uname -m` in i686|x86_64) arch=i386 ;; armv7l) arch=arm ;; esac +prepare "$@" if [ $opt_download -eq 1 ] ; then - for i in $url ; do - case ${i##*.} in - git) if [ ! -d `basename ${i##*/} .git` ] ; then git clone $i ; fi ;; - *) if [ ! -f ${i##*/} ] ; then wget $i ; fi ;; - esac - done - for i in $url ; do - case ${i##*.} in - tar) tar xvpf ${i##*/} ;; - gz) tar xvpzf ${i##*/} ;; - bz2) tar xvpjf ${i##*/} ;; - xz) tar xvpJf ${i##*/} ;; - git) ( cd `basename ${i##*/} .git` - case `basename ${i##*/} .git` in - linux) git checkout origin/rpi-4.1.y ; git reset --hard d51c7d8 ;; - aufs4-*) git checkout origin/aufs4.1 ; git reset --hard 2b569cf ;; - esac ) ;; - esac - done + download_sources fi if [ $opt_config -eq 1 ] ; then for i in `seq 0 $((${#B[@]} - 1))` ; do if [ -d ${B[$i]} ] ; then rm -rf ${B[$i]} ; fi ; cp -a ${S[$i]} ${B[$i]} done + apply_patches cd $B - rm -rf .git ; touch .git - patch -Np1 -i $W/vd_unicon-kernel-20150627-4.1.patch + patch -Np1 -i $W/vd_unicon-kernel-20161217-4.9.patch bunzip2 -c $W/vd_unicon-kernel-fonts-20140614.patch.bz2 | patch -Np1 -i - patch -Np1 -i $W/aufs4-standalone/aufs4-kbuild.patch patch -Np1 -i $W/aufs4-standalone/aufs4-base.patch @@ -227,22 +59,22 @@ cp -av $W/aufs4-standalone/Documentation . cp -av $W/aufs4-standalone/fs . cp -pv $W/aufs4-standalone/include/uapi/linux/aufs_type.h include/uapi/linux - patch -Np1 -i $W/4.1-panic_beep.patch - patch -Np1 -i $W/4.1-morse_code_panics.patch - bunzip2 -c $W/tuxonice-for-linux-4.1.6-2015-08-22.patch.bz2 | patch -Np1 -i - + patch -Np1 -i $W/4.9-panic_beep.patch + patch -Np1 -i $W/4.9-morse_code_panics.patch + bunzip2 -c $W/tuxonice-for-linux-4.9.1-2017-01-06.patch.bz2 | patch -Np1 -i - + chmod 755 scripts/tuxonice_output_to_csv.sh patch -Np1 -i $W/overlayfs-allow_unprivileged_mounts.patch - cp -p $W/config-4.1.15-plamoRPi2 .config + if [ `uname -m` == armv7l ] ; then + unxz -c $W/rpi-4.9.36-20170705-3ecb1db.patch.xz | patch -Np1 -i - + chmod 755 drivers/net/wireless/realtek/rtl8192cu/{clean,runwpa,wlan0dhcp} + chmod 755 scripts/{knlinfo,mkknlimg} + fi + cp -p $W/config-4.9.36-plamo$lv .config for i in `seq 0 $((${#B[@]} - 1))` ; do cd ${B[$i]} - if [ -f Makefile ] ; then - make clean - fi - if [ -f config.log ] ; then - rm -rf config.cache config.log - fi if [ -x configure ] ; then - ./configure --prefix=/usr --libdir='${exec_prefix}'/$libdir \ - --infodir='${prefix}'/share/info \ + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libdir='${exec_prefix}'/$libdir --infodir='${prefix}'/share/info \ --mandir='${prefix}'/share/man ${OPT_CONFIG[$i]} fi done @@ -256,12 +88,7 @@ done fi if [ $opt_package -eq 1 ] ; then - if [ `id -u` -ne 0 ] ; then - read -p "Do you want to package as root? [y/N] " ans - if [ "x$ans" == "xY" -o "x$ans" == "xy" ] ; then - cd $W ; /bin/su -c "$0 package" ; exit - fi - fi + root_priv if [ -d $P ] ; then rm -rf $P ; fi ; mkdir -p $P if [ -d $C ] ; then rm -rf $C ; fi ; mkdir -p $C touch $W/i.st ; sleep 1 @@ -278,30 +105,12 @@ find $P ! -type l -newer i.st ! -newer i.et \ -exec touch -t `date '+%m%d0900'` {} \; compress - for i in `seq 0 $((${#DOCS[@]} - 1))` ; do - for j in ${DOCS[$i]} ; do - for k in ${S[$i]}/$j ; do - install2 $k $docdir/${src[$i]}/${k#${S[$i]}/} - touch -r $k $docdir/${src[$i]}/${k#${S[$i]}/} - gzip_one $docdir/${src[$i]}/${k#${S[$i]}/} - done - done - install -d $docdir/$src - if [ $i -eq 0 ] ; then - install $myname $docdir/$src - touch -t `date '+%m%d0900'` $docdir/$src/$myname - gzip_one $docdir/$src/$myname - else - ln $docdir/$src/$myname.gz $docdir/${src[$i]} - fi - ( cd $docdir ; find ${src[$i]} -type d -exec touch -r $W/{} {} \; ) - done - touch -t `date '+%m%d0900'` $docdir/$src - convert + install -d $docdir/$src + setup_docdir + convert_links tar cvpf $pkg.tar -C $P `cd $P ; find usr/include -maxdepth 1 | tail -n+2` tar rvpf $pkg.tar -C $P usr/share/doc/$src touch -t `date '+%m%d0900'` $pkg.tar ; xz $pkg.tar ; touch $pkg.tar.xz mv $pkg.tar.xz $pkg.txz - read -p "Do you want to keep work files? [y/N] " ans - if [ "x$ans" != "xY" -a "x$ans" != "xy" ] ; then rm -rf $P $C i.[se]t ; fi + cleanup fi