wok-tiny annotate linux/receipt @ rev 156

linux: recompress with upx
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Nov 15 11:54:42 2019 +0100 (2019-11-15)
parents bd7b94f2c7d0
children a28c45a86936
rev   line source
pascal@94 1 # SliTaz package receipt.
pascal@94 2
pascal@94 3 PACKAGE="linux"
pascal@94 4 VERSION="2.6.14"
pascal@94 5 CATEGORY="base-system"
pascal@94 6 SHORT_DESC="The Linux kernel."
pascal@94 7 TARGET="i486"
pascal@94 8 MAINTAINER="devel@slitaz.org"
pascal@94 9 LICENSE="GPL2"
pascal@94 10 TARBALL="$PACKAGE-$VERSION.tar.bz2"
pascal@94 11 WEB_SITE="http://www.kernel.org/"
pascal@94 12 WGET_URL="https://www.kernel.org/pub/linux/kernel/v${VERSION:0:3}/$TARBALL"
pascal@94 13 WEB_SITE2="http://elinux.org/Linux_Tiny"
pascal@94 14 PATCH="https://www.selenic.com/tiny/2.6.14-tiny1.patch.bz2"
pascal@94 15 AUTO_SELECTION="always"
pascal@94 16
pascal@107 17 DEPENDS=""
pascal@156 18 BUILD_DEPENDS="slitaz-toolchain perl git lzma wget gcc2 upx"
pascal@143 19 BUILD_SUGGESTED="advancecomp zopfli"
pascal@143 20 INSTALL_DEPENDS="lz4 grep"
pascal@94 21
pascal@107 22 case "$TARGET" in
pascal@153 23 i486) SUGGESTED="memtest ipxe plop";; # bundle may install a boot menu
pascal@107 24 esac
pascal@107 25
pascal@139 26 S2bin()
pascal@139 27 {
pascal@141 28 [ -s $stuff/$1.S ] &&
pascal@141 29 cc -o $1.o -Wa,-algms=$1.lst -c $stuff/$1.S &&
pascal@139 30 objcopy -O binary $1.o $1.bin
pascal@139 31 }
pascal@139 32
pascal@94 33 # Rules to configure and make the package.
pascal@94 34 compile_rules()
pascal@94 35 {
pascal@94 36 [ -s $SRC/$(basename $PATCH) ] ||
pascal@94 37 wget --no-check-certificate -O $SRC/$(basename $PATCH) $PATCH
pascal@94 38 bzcat $SRC/$(basename $PATCH) | patch -p1
pascal@110 39 patch -p0 < $stuff/linux-2.6.14-unpack.u
pascal@119 40 patch -p0 < $stuff/jsclipboard.u
pascal@141 41 sed -i 's|\([>\.]\)val|\1u.val|;s|\([>\.]\)next|\1u.next|;216s|};|} u;|' \
pascal@141 42 lib/inflate.c
pascal@94 43 sed '/DEBUG/,/* kstrdup/d' < mm/slab.c > mm/kstrdup.c
pascal@94 44 echo 'obj-y += kstrdup.o' >> mm/Makefile
pascal@94 45 sed -i 's|3.1024|11*256|' arch/i386/boot/compressed/misc.c
pascal@116 46 sed -i 's/O_CREAT/&|O_TRUNC/' init/initramfs.c
pascal@94 47 which advdef 2> /dev/null &&
pascal@141 48 sed -i 's|gzip)|&\n advdef -z4 $@|' \
pascal@141 49 usr/Makefile arch/i386/boot/compressed/Makefile
pascal@119 50 which zopfli 2> /dev/null &&
pascal@119 51 sed -i 's|gzip -f -9 <|time zopfli --i100 -c|' scripts/Makefile.lib
pascal@94 52
pascal@141 53 [ -s $WOK/busybox/source/busybox*/rootfs.cpio ] || tazwok cook busybox
pascal@94 54 cp $WOK/busybox/source/busybox*/rootfs.cpio $src
pascal@94 55 cp $WOK/busybox/source/busybox*/.config $src/config-busybox
pascal@94 56 mkdir $src/slitaz
pascal@94 57 cp $stuff/list_modules.sh $src/slitaz
pascal@139 58 S2bin bootloader
pascal@141 59 S2bin helper
pascal@139 60 S2bin unpacklz4
pascal@141 61 cp $stuff/pack .
pascal@156 62 sh ./pack --build
pascal@94 63
pascal@110 64 sed -i '/config %config:/{NNNps/config %config:/%config:/}' Makefile
pascal@110 65 sed -i 's/^config %config:/config:/' Makefile
pascal@94 66 cp $stuff/linux-$VERSION-slitaz.config .config
pascal@94 67 yes '' | make ARCH=i386 HOSTCC=gcc-2 config
pascal@94 68 make ARCH=i386 CC=gcc-2 HOSTCC=gcc-2 -j 4 bzImage
pascal@156 69 which upx 2> /dev/null &&
pascal@156 70 upx --ultra-brute arch/i386/boot/bzImage
pascal@94 71 grep -q "CONFIG_MODULES=y" .config &&
pascal@94 72 make ARCH=i386 CC=gcc-2 HOSTCC=gcc-2 -j 4 modules &&
pascal@94 73 make ARCH=i386 INSTALL_MOD_PATH=$DESTDIR -j 1 modules_install || true
pascal@139 74 S2bin bundle
pascal@104 75 cp $stuff/bundle .
pascal@156 76 sh ./bundle
pascal@139 77 S2bin cmdline
pascal@94 78 }
pascal@94 79
pascal@94 80 # Rules to gen a SliTaz package suitable for Tazpkg.
pascal@94 81 genpkg_rules()
pascal@94 82 {
pascal@94 83 mkdir $fs/boot
pascal@94 84 cp -a $src/arch/i386/boot/bzImage $fs/boot/
pascal@95 85 dd if=$src/bootloader.bin of=$fs/boot/bzImage conv=notrunc
pascal@109 86 dd if=$src/cmdline.bin bs=1 seek=560 of=$fs/boot/bzImage conv=notrunc
pascal@141 87 cp -a $src/pack $fs/boot/
pascal@94 88 cp -a $src/System.map $fs/boot/
pascal@94 89 cp -a $src/.config $fs/boot/config
pascal@94 90 cp -a $src/config-busybox $fs/boot
pascal@104 91 cp -a $src/bundle.sh $fs/boot/bundle
pascal@94 92 }
pascal@94 93
pascal@94 94 # Pre and post install commands for Tazpkg.
pascal@94 95 post_install()
pascal@94 96 {
pascal@141 97 echo "Processing post-install commands..."
pascal@141 98 [ -s $1/boot/cmdline ] && cat $1/boot/cmdline | sed 's/^ *//' | \
pascal@143 99 dd of=$1/boot/bzImage conv=notrunc bs=1 seek=768 count=3072
pascal@141 100 $1/boot/pack $1/boot/bzImage
pascal@141 101
pascal@141 102 # GRUB stuff.
pascal@141 103 if [ -f "$1/boot/grub/menu.lst" ]; then
pascal@141 104 root_dev=$(sed '/root=/!d;s/.*root=\([^ ]*\).*/\1/' \
pascal@141 105 < $1/boot/grub/menu.lst | head -n 1)
pascal@141 106 grub_dev=$(grep "root (" < $1/boot/grub/menu.lst | head -n 1)
pascal@94 107 # Add new kernel entry in case of upgrade for installed system.
pascal@141 108 grep -q $SOURCE-$VERSION-slitaz $1/boot/grub/menu.lst ||
pascal@141 109 [ -s $1/boot/cmdline ] && cmdline=" $(cat $1/boot/cmdline)"
pascal@141 110 cat >> $1/boot/grub/menu.lst << EOT
pascal@94 111
pascal@94 112 title SliTaz GNU/Linux (Kernel $VERSION-slitaz)
pascal@94 113 $grub_dev
pascal@141 114 kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev$cmdline
pascal@94 115 EOT
pascal@94 116 # Display information message.
pascal@141 117 cat <<EOT
pascal@94 118 ----
pascal@94 119 GRUB is installed, these tree lines must be in your /boot/grub/menu.lst:
pascal@94 120
pascal@94 121 title SliTaz GNU/Linux (Kernel $VERSION-slitaz)
pascal@94 122 $grub_dev
pascal@141 123 kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev$cmdline
pascal@94 124 ----
pascal@94 125 EOT
pascal@94 126 fi
pascal@94 127 }