wok-tiny annotate linux/receipt @ rev 187

Add bootlife (again)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Feb 04 18:58:39 2024 +0000 (4 months ago)
parents d5c772484b59
children
rev   line source
pascal@94 1 # SliTaz package receipt.
pascal@94 2
pascal@94 3 PACKAGE="linux"
pascal@174 4 VERSION="2.6.20"
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 AUTO_SELECTION="always"
pascal@94 14
pascal@107 15 DEPENDS=""
pascal@174 16 BUILD_DEPENDS="slitaz-toolchain perl git lzma wget upx"
pascal@143 17 INSTALL_DEPENDS="lz4 grep"
pascal@94 18
pascal@107 19 case "$TARGET" in
pascal@174 20 i486) SUGGESTED="memtest ipxe plop tfttest x86test";; # bundle may install a boot menu
pascal@107 21 esac
pascal@107 22
pascal@139 23 S2bin()
pascal@139 24 {
pascal@141 25 [ -s $stuff/$1.S ] &&
pascal@178 26 cc $2 -o $1.o -Wa,-algms=$1.lst -c $stuff/$1.S &&
pascal@183 27 objcopy --only-section=.text -O binary $1.o $1.bin
pascal@139 28 }
pascal@139 29
pascal@173 30 rootfs()
pascal@173 31 {
pascal@173 32 [ -s $stuff/root.cpio ] && cp $stuff/root.cpio . &&
pascal@173 33 sed -i 's|CONFIG_INITRAMFS_SOURCE="|&root.cpio|' .config
pascal@173 34 }
pascal@173 35
pascal@178 36 setup_code()
pascal@178 37 {
pascal@178 38 echo $((514 + $(od -An -j 513 -N 1 -i $1)))
pascal@178 39 }
pascal@178 40
pascal@94 41 # Rules to configure and make the package.
pascal@94 42 compile_rules()
pascal@94 43 {
pascal@173 44 export CFLAGS="-march=i386 -Os -pipe -fomit-frame-pointer"
pascal@174 45 for i in $stuff/linux-$VERSION-*.u ; do
pascal@174 46 patch -p0 < $i
pascal@174 47 done
pascal@116 48 sed -i 's/O_CREAT/&|O_TRUNC/' init/initramfs.c
pascal@174 49 sed -i 's|hostname|echo tank|' scripts/mkcompile_h
pascal@94 50
pascal@94 51 mkdir $src/slitaz
pascal@94 52 cp $stuff/list_modules.sh $src/slitaz
pascal@139 53 S2bin bootloader
pascal@141 54 S2bin helper
pascal@139 55 S2bin unpacklz4
pascal@179 56 cp $stuff/pack $stuff/un*.S .
pascal@94 57
pascal@174 58 sed -i '/config %config:/{NNNps/config %config:/%config:/}' Makefile &&
pascal@110 59 sed -i 's/^config %config:/config:/' Makefile
pascal@157 60
pascal@174 61 #2.6.20
pascal@174 62 sed -i '/\/ %\/:/{NNps/\/ %\/:/%\/:/}' Makefile &&
pascal@174 63 sed -i 's/^\/ %\/:/\/:/' Makefile
pascal@174 64 sed -i 's|.*netinet/in|#include <limits.h>\n&|' scripts/mod/sumversion.c
pascal@174 65
pascal@94 66 cp $stuff/linux-$VERSION-slitaz.config .config
pascal@173 67 rootfs
pascal@174 68 yes '' | make ARCH=i386 HOSTCC=gcc config
pascal@174 69 make ARCH=i386 CC=gcc HOSTCC=gcc -j 4 bzImage
pascal@178 70 cp arch/i386/boot/bzImage arch/i386/boot/bzImage.made.386
pascal@179 71 sh ./pack --build arch/i386/boot/bzImage.made.386
pascal@157 72
pascal@94 73 grep -q "CONFIG_MODULES=y" .config &&
pascal@174 74 make ARCH=i386 CC=gcc HOSTCC=gcc -j 4 modules &&
pascal@94 75 make ARCH=i386 INSTALL_MOD_PATH=$DESTDIR -j 1 modules_install || true
pascal@139 76 S2bin bundle
pascal@104 77 cp $stuff/bundle .
pascal@156 78 sh ./bundle
pascal@178 79 S2bin cmdline -DEDIT_CMDLINE ; mv cmdline.bin editcmdline.bin
pascal@139 80 S2bin cmdline
pascal@173 81 [ $(upx --version 2> /dev/null | sed '/upx/!d;s|upx ||;s|\.||;q')0 -ge 3960 ] &&
pascal@173 82 upx --ultra-brute arch/i386/boot/bzImage
pascal@167 83 cp arch/i386/boot/bzImage arch/i386/boot/bzImage.386
pascal@167 84 cp .config .config.386
pascal@167 85 cp System.map System.map.386
pascal@167 86 cp $stuff/linux-$VERSION-slitaz.config.586 .config
pascal@173 87 rootfs
pascal@174 88 yes '' | make ARCH=i386 HOSTCC=gcc config
pascal@174 89 make ARCH=i386 CC=gcc HOSTCC=gcc -j 4 bzImage
pascal@178 90 cp arch/i386/boot/bzImage arch/i386/boot/bzImage.made
pascal@167 91 which upx 2> /dev/null && upx --ultra-brute arch/i386/boot/bzImage
pascal@94 92 }
pascal@94 93
pascal@94 94 # Rules to gen a SliTaz package suitable for Tazpkg.
pascal@94 95 genpkg_rules()
pascal@94 96 {
pascal@94 97 mkdir $fs/boot
pascal@141 98 cp -a $src/pack $fs/boot/
pascal@104 99 cp -a $src/bundle.sh $fs/boot/bundle
pascal@179 100 cp -a $src/cmdline.bin $fs/boot/
pascal@179 101 cp -a $src/editcmdline.bin $fs/boot/
pascal@173 102 for i in '' .386 ; do
pascal@173 103 [ -s $src/arch/i386/boot/bzImage$i ] || continue
pascal@173 104 cp -a $src/arch/i386/boot/bzImage$i $fs/boot/
pascal@179 105 dd if=$src/bootloader.bin of=$fs/boot/bzImage$i conv=notrunc 2> /dev/null
pascal@173 106 cp -a $src/System.map$i $fs/boot/
pascal@173 107 cp -a $src/.config$i $fs/boot/config$i
pascal@173 108 done
pascal@94 109 }
pascal@94 110
pascal@167 111 config_form()
pascal@167 112 {
pascal@167 113 cat <<EOT
pascal@173 114 <p>
pascal@173 115 Tune the kernel according to the CPU type
pascal@173 116 </p>
pascal@167 117 <table>
pascal@173 118 <tr>
pascal@173 119 <td><input type="radio" name="CPU586" $([ "$CPU586" = "no" ] && echo "checked=checked ")value="no"> for any CPU starting from 386sx</td>
pascal@173 120 <td><input type="radio" name="CPU586" $([ "$CPU586" != "no" ] && echo "checked=checked ")value="yes"> optimized for pentium or newer CPU</td>
pascal@167 121 </tr>
pascal@167 122 </table>
pascal@178 123 <input type="checkbox" name="EDIT_CMDLINE" ${EDIT_CMDLINE:+ckecked="ckecked" }/>
pascal@178 124 The user can edit the kernel cmdline at boot time.
pascal@167 125 EOT
pascal@167 126 }
pascal@167 127
pascal@94 128 # Pre and post install commands for Tazpkg.
pascal@94 129 post_install()
pascal@94 130 {
pascal@167 131 for i in $1/boot/*.386 ; do
pascal@167 132 [ "$CPU586" = "yes" ] && rm -f $i || mv -f $i ${i%.386}
pascal@167 133 done 2> /dev/null
pascal@179 134 [ -s $1/boot/cmdline ] && cat $1/boot/cmdline | sed 's/^ *//' | \
pascal@179 135 dd of=$1/boot/bzImage conv=notrunc bs=1 seek=768 count=3072 &&
pascal@179 136 dd if=$1/boot/cmdline.bin bs=1 seek=$(setup_code $1/boot/bzImage) of=$1/boot/bzImage conv=notrunc
pascal@178 137 [ "$EDIT_CMDLINE" ] &&
pascal@179 138 dd if=$1/boot/editcmdline.bin bs=1 seek=$(setup_code $1/boot/bzImage) of=$1/boot/bzImage conv=notrunc
pascal@141 139 $1/boot/pack $1/boot/bzImage
pascal@94 140 }