wok-next annotate linux/receipt @ rev 19583

Up: cookutils, tazpkg, aufs, kmod, lguest, linux, linux64.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Jan 02 07:42:47 2017 +0200 (2017-01-02)
parents c76d35a1ca0b
children 5528876d95a1
rev   line source
pankso@3 1 # SliTaz package receipt.
pankso@3 2
pankso@3 3 PACKAGE="linux"
al@19583 4 VERSION="4.9.0"
pankso@3 5 CATEGORY="base-system"
al@19583 6 SHORT_DESC="The Linux Kernel and modules"
pankso@3864 7 MAINTAINER="devel@slitaz.org"
pascal@14657 8 LICENSE="GPL2"
al@19583 9 WEB_SITE="https://www.kernel.org/"
pankso@12803 10 HOST_ARCH="i486 arm x86_64"
pankso@12803 11
al@19583 12 TARBALL="$PACKAGE-${VERSION%.0}.tar.xz"
al@19583 13 WGET_URL="https://www.kernel.org/pub/linux/kernel/v4.x/$TARBALL"
al@19583 14
pankso@15855 15 DEPENDS="kmod"
al@19583 16 BUILD_DEPENDS="slitaz-toolchain perl git xz lzma patch kmod bc \
pascal@17029 17 uclibc-cross-compiler-x86_64"
al@19583 18 SPLIT="lguest linux-acpi linux-agp linux-aoe linux-appletalk linux-arcnet \
al@19583 19 linux-autofs linux-bluetooth linux-bridge linux-cifs linux-coda linux-configfs \
al@19583 20 linux-cpufreq linux-cramfs linux-crypto linux-cryptoloop linux-dialup \
al@19583 21 linux-dlm linux-drm linux-exofs linux-firewire linux-firmware linux-gfs2 \
al@19583 22 linux-hfs linux-hfsplus linux-hwmon linux-input-misc linux-input-tablet \
al@19583 23 linux-input-touchscreen linux-ipv6 linux-irda linux-isdn linux-jfs \
al@19583 24 linux-joystick linux-kvm linux-logfs linux-md linux-media linux-memstick \
al@19583 25 linux-minix linux-mmc linux-module-headers linux-mwave linux-nbd linux-ncpfs \
al@19583 26 linux-netfilter linux-nfsd linux-ocfs2 linux-radio linux-reiserfs linux-romfs \
al@19583 27 linux-sched linux-scsi linux-sound linux-source linux-speakup linux-squashfs \
al@19583 28 linux-staging linux-toshiba linux-usb-misc linux-usbdsl linux-usbip linux-uwb \
al@19583 29 linux-video linux-wan linux-wimax linux-wireless linux-without-modules \
al@19583 30 linux-zram linux64 linux64-acpi linux64-agp linux64-aoe linux64-appletalk \
al@19583 31 linux64-arcnet linux64-autofs linux64-bluetooth linux64-bridge linux64-btrfs \
al@19583 32 linux64-cifs linux64-coda linux64-configfs linux64-cpufreq linux64-cramfs \
al@19583 33 linux64-crypto linux64-cryptoloop linux64-dialup linux64-dlm linux64-drm \
al@19583 34 linux64-exofs linux64-firewire linux64-gfs2 linux64-hfs linux64-hfsplus \
al@19583 35 linux64-hwmon linux64-input-misc linux64-input-tablet \
al@19583 36 linux64-input-touchscreen linux64-ipv6 linux64-irda linux64-isdn linux64-jfs \
al@19583 37 linux64-joystick linux64-kvm linux64-logfs linux64-md linux64-media \
al@19583 38 linux64-memstick linux64-minix linux64-mmc linux64-module-headers \
al@19583 39 linux64-mwave linux64-nbd linux64-ncpfs linux64-netfilter linux64-nfsd \
al@19583 40 linux64-ocfs2 linux64-radio linux64-reiserfs linux64-romfs linux64-sched \
al@19583 41 linux64-scsi linux64-sound linux64-speakup linux64-squashfs linux64-staging \
al@19583 42 linux64-usb-misc linux64-usbdsl linux64-usbip linux64-uwb linux64-video \
al@19583 43 linux64-wan linux64-wimax linux64-wireless linux64-without-modules \
al@19583 44 linux64-zram"
pankso@12824 45
pankso@15855 46 #
pankso@15855 47 # The Linux receipt handle cross compilation. For x86_64 we actually use
pankso@15855 48 # the uclibc-cross-compiler-x86_64 and for ARM we use a real cross env.
al@19583 49 # Please discuss any change and keep it simple, don't play with VERSION
al@19583 50 # string or Kernel SUBLEVEL because depmod and Pankso don't like that!
pankso@15855 51 #
al@19583 52 # The receipt also handle some cook options for faster build:
pankso@15855 53 # --nox64 : Skip the x86_64 cross compilation
pankso@15855 54 # --nonomods : Skip bzImage without modules build
pankso@15855 55 #
al@19583 56 nox64='yes' # hardcoded now
pankso@12812 57
pankso@12803 58 # Aufs enable chroot
pascal@14223 59 AUFS_NOT_RAMFS="uclibc-cross-compiler-x86_64 is not compatible with aufs+tmpfs 8("
pankso@3 60
pankso@12824 61 # Handle multiarch compilation. Less bdeps when cross-compiling for ARM
pankso@12803 62 case "$ARCH" in
pankso@15855 63 arm) BUILD_DEPENDS="xz" ;;
pankso@12824 64 x86_64) BUILD_DEPENDS="xz" ;;
pankso@12824 65 esac
pankso@12824 66
pankso@15855 67 # Handle multiarch installation. ARM use Busybox modutils, so avoid any
pankso@15855 68 # deps on kmod. SLITAZ_ARCH can have also custom post_install commands
pankso@15921 69 if [ -f $root/etc/slitaz/slitaz.conf ]; then
pankso@15921 70 . $root/etc/slitaz/slitaz.conf
pankso@15921 71 case "$SLITAZ_ARCH" in
pankso@15921 72 arm) DEPENDS="" ;;
pankso@15921 73 esac
pankso@15921 74 fi
pankso@12824 75
al@19583 76 add_headers_for_type()
al@19583 77 {
al@19583 78 # $1: type, for example "VIDEO_"
al@19583 79 # $2: where to search, for example "drivers/media"
al@19583 80 echo -e "\n\nAdding headers for $1..."
al@19583 81 for i in $(cd $src/$2; find -name Kconfig | sed 's|^\./||'); do
al@19583 82 if fgrep -q "config $1" $src/$2/$i; then
al@19583 83 echo " * $2/$j/*.h"
al@19583 84 j=$(dirname $i)
al@19583 85 mkdir -p $1/$path/$2/$j
al@19583 86 cp -a $src/$2/$j/*.h $1/$path/$2/$j
al@19583 87 fi
al@19583 88 done
al@19583 89 }
al@19583 90
pascal@17366 91 install_module_headers()
pascal@17366 92 {
al@19583 93 local path="usr/src/linux-$KVERSION"
al@19583 94 mkdir -p $1/lib/modules/$KVERSION
pascal@17366 95 ln -sf /$path $1/lib/modules/$KVERSION/build
al@19583 96 install -D -m644 $src/Makefile $1/$path/Makefile
al@19583 97 install -D -m644 $src/kernel/Makefile $1/$path/kernel/Makefile
al@19583 98 install -D -m644 $src/.config $1/$path/.config
al@19583 99 mkdir -p $1/$path/include
pascal@17366 100
al@19583 101 cp -a $src/include/* $1/$path/include/
pascal@17366 102
pascal@17366 103 # copy arch includes for external modules
pascal@17366 104 mkdir -p $1/$path/arch/x86
pascal@17366 105 cp -a $src/arch/x86/include $1/$path/arch/x86/
pascal@17366 106
pascal@17366 107 # copy files necessary for later builds, like nvidia and vmware
al@19583 108 cp -a $src/Module.symvers $1/$path
al@19583 109 cp -a $src/scripts $1/$path
al@19583 110 # fix permissions on scripts dir
al@19583 111 chmod og-w -R $1/$path/scripts
al@19583 112 mkdir -p $1/$path/.tmp_versions
pascal@17366 113
pascal@17366 114 mkdir -p $1/$path/arch/x86/kernel
al@19583 115 cp -a $src/arch/x86/Makefile $1/$path/arch/x86/
al@19583 116 cp -a $src/arch/x86/Makefile_32.cpu $1/$path/arch/x86/
pascal@17366 117 cp -a $src/arch/x86/kernel/asm-offsets.s $1/$path/arch/x86/kernel/
pascal@17366 118
pascal@17366 119 # add headers for lirc package
al@19583 120 # mkdir -p $1/$path/drivers/media/video
al@19583 121 # cp -a $src/drivers/media/video/*.h $1/$path/drivers/media/video/
al@19583 122 #
al@19583 123 # for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 ; do
al@19583 124 # mkdir -p $1/$path/drivers/media/video/$i
al@19583 125 # cp -a $src/drivers/media/video/$i/*.h $1/$path/drivers/media/video/$i
al@19583 126 # done
pascal@17366 127
al@19583 128 add_headers_for_type 'VIDEO_' 'drivers/media'
pascal@17366 129
pascal@17366 130 # add docbook makefile
pascal@17366 131 install -D -m644 $src/Documentation/DocBook/Makefile \
al@19583 132 $1/$path/Documentation/DocBook/Makefile
pascal@17366 133
al@19583 134 # add md headers
al@19583 135 # mkdir -p $1/$path/drivers/md
al@19583 136 # cp -a $src/drivers/md/*.h $1/$path/drivers/md
al@19583 137 add_headers_for_type 'MD_' 'drivers'
pascal@17366 138
pascal@17366 139 # add inotify.h
pascal@17366 140 mkdir -p $1/$path/include/linux
pascal@17366 141 cp -a $src/include/linux/inotify.h $1/$path/include/linux/
pascal@17366 142
pascal@17366 143 # add wireless headers
al@19583 144 # mkdir -p $1/$path/net/mac80211/
al@19583 145 # cp -a $src/net/mac80211/*.h $1/$path/net/mac80211/
al@19583 146 add_headers_for_type 'MAC80211' 'net'
pascal@17366 147
pascal@17366 148 # add dvb headers for external modules
pascal@17366 149 # in reference to:
pascal@17366 150 # http://bugs.archlinux.org/task/9912
al@19583 151 # mkdir -p $1/$path/drivers/media/dvb/dvb-core
al@19583 152 # cp -a $src/drivers/media/dvb/dvb-core/*.h $1/$path/drivers/media/dvb/dvb-core/
al@19583 153 add_headers_for_type 'DVB_' 'drivers/media'
pascal@17366 154
pascal@17366 155 # add dvb headers for external modules
pascal@17366 156 # in reference to:
pascal@17366 157 # http://bugs.archlinux.org/task/11194
al@19583 158 # if [ -d $src/include/config/dvb/ ]; then
al@19583 159 # mkdir -p $1/$path/include/config/dvb/
al@19583 160 # cp $src/include/config/dvb/*.h $1/$path/include/config/dvb/
al@19583 161 # fi
al@19583 162 #
pascal@17366 163
pascal@17366 164 # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
pascal@17366 165 # in reference to:
pascal@17366 166 # http://bugs.archlinux.org/task/13146
al@19583 167 # mkdir -p $1/$path/drivers/media/dvb/frontends/
al@19583 168 # cp -a $src/drivers/media/dvb/frontends/lgdt330x.h $1/$path/drivers/media/dvb/frontends/
al@19583 169 # cp -a $src/drivers/media/video/msp3400-driver.h $1/$path/drivers/media/dvb/frontends/
pascal@17366 170
al@19583 171 # add dvb headers
pascal@17366 172 # in reference to:
pascal@17366 173 # http://bugs.archlinux.org/task/20402
al@19583 174 # mkdir -p $1/$path/drivers/media/dvb/dvb-usb
al@19583 175 # cp -a $src/drivers/media/dvb/dvb-usb/*.h $1/$path/drivers/media/dvb/dvb-usb/
al@19583 176 # mkdir -p $1/$path/drivers/media/dvb/frontends
al@19583 177 # cp -a $src/drivers/media/dvb/frontends/*.h $1/$path/drivers/media/dvb/frontends/
al@19583 178 # mkdir -p $1/$path/drivers/media/common/tuners
al@19583 179 # cp -a $src/drivers/media/common/tuners/*.h $1/$path/drivers/media/common/tuners/
pascal@17366 180
pascal@17366 181 # add xfs and shmem for aufs building
pascal@17366 182 mkdir -p $1/$path/fs/xfs
pascal@17366 183 mkdir -p $1/$path/mm
pascal@17366 184 cp -a $src/fs/xfs/xfs_sb.h $1/$path/fs/xfs/xfs_sb.h
al@19583 185
pascal@17366 186 # copy in Kconfig files
al@19583 187 for i in $(find . -name "Kconfig*"); do
pascal@17366 188 mkdir -p $1/$path/$(echo $i | sed 's|/Kconfig.*||')
pascal@17366 189 cp -a $src/$i $1/$path/$i
pascal@17366 190 done
pascal@17366 191
pascal@17366 192 chown -R root.root $1/$path
pascal@17366 193 find $1/$path -type d -exec chmod 755 {} \;
pascal@17366 194 # remove unneeded architectures
pascal@17366 195 rm -rf $1/$path/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
al@19583 196 }
al@19583 197
pascal@17366 198
pankso@3 199 # Rules to configure and make the package.
pankso@3 200 compile_rules()
pankso@3 201 {
pankso@15921 202 if [ -f "/usr/share/boot/initrd" ]; then
pankso@15921 203 cp /usr/share/boot/initrd initrd.cpio
pankso@15921 204 fi
pankso@12803 205
pankso@15855 206 # Handle cross compilation
pankso@12803 207 case "$ARCH" in
pankso@12803 208 arm)
pankso@15855 209 echo "Compiling: $ARCH Kernel"
pankso@12824 210 make mrproper
pankso@12824 211 patch -Np1 < $stuff/$ARCH/linux-arm.patch || exit 1
pankso@12824 212 cp -f $stuff/$ARCH/linux-arm.config .config
pascal@15733 213 yes '' | make ARCH=$ARCH oldconfig
pankso@12803 214 make ARCH=$ARCH CROSS_COMPILE=${HOST_SYSTEM}- bzImage &&
pankso@12803 215 make ARCH=$ARCH CROSS_COMPILE=${HOST_SYSTEM}- modules &&
pankso@12803 216 make ARCH=$ARCH CROSS_COMPILE=${HOST_SYSTEM}- \
pankso@12803 217 INSTALL_MOD_PATH=$DESTDIR modules_install &&
pankso@12803 218 mkdir -p $DESTDIR/boot &&
pankso@12824 219 cp -a arch/arm/boot/zImage \
pankso@12803 220 $DESTDIR/boot/linux-$VERSION-slitaz-$ARCH
pankso@15921 221 #$stuff/gztazmod.sh $DESTDIR/lib/modules/$VERSION-slitaz
pankso@12803 222 return 0 ;;
pankso@12803 223 x86_64)
al@19583 224 echo "TODO: Maybe use default? But cross compile in x86_64 chroot"
pankso@12803 225 echo "so we can remove the 64 build by uclibc-cross-compiler-x86_64"
pankso@12803 226 return 0 ;;
pankso@12803 227 esac
pankso@12803 228
pankso@15855 229 # Check for Aufs and get source/patches if needed
pankso@9731 230 echo "Checking for Aufs packages..."
pankso@15855 231 AUFSVER=$(grep ^VERSION= $WOK/aufs/receipt | cut -d "=" -f2 | sed -e 's/"//g')
pankso@15855 232 AUFSDIR="$WOK/aufs/source/aufs-${AUFSVER}"
pankso@15855 233 if [ ! -d "$AUFSDIR" ]; then
pankso@15855 234 [ ! -f "$SRC/aufs-${AUFSVER}.tar.bz2" ] && cook aufs --getsrc
pankso@12288 235 mkdir -p $WOK/aufs/source/
pankso@15855 236 echo "Extracting: aufs-${AUFSVER}.tar.bz2"
pankso@15855 237 tar xjf $SRC/aufs-${AUFSVER}.tar.bz2 -C $WOK/aufs/source/
pankso@9731 238 fi
al@19583 239
pankso@12285 240 echo "cook:linux" > $command
pankso@12285 241
pankso@9731 242 echo "Copying Aufs files and patches..."
slaxemulator@7297 243 cp -a $AUFSDIR/Documentation $AUFSDIR/fs $AUFSDIR/include $src
al@19583 244 cp -a $AUFSDIR/aufs4-*.patch $stuff
pankso@12285 245
pankso@15855 246 # SliTaz db stuff
pankso@15855 247 [ -d $WOK/$PACKAGE/source/slitaz ] && rm -rf $WOK/$PACKAGE/source/slitaz
pankso@12285 248 mkdir -p $WOK/$PACKAGE/source/slitaz
pankso@12290 249 echo "$WGET_URL" > $WOK/$PACKAGE/source/slitaz/url
pankso@12285 250 cp $stuff/gztazmod.sh $stuff/list_modules.sh $WOK/$PACKAGE/source/slitaz
pankso@12285 251 cp $stuff/bootloader.sh $WOK/$PACKAGE/source/slitaz
pankso@12803 252
pankso@5640 253 # Apply patches
pankso@9731 254 echo "Applying patches..."
pascal@521 255 while read patch_file; do
pankso@12285 256 echo "$patch_file" >> $WOK/$PACKAGE/source/slitaz/patches
pankso@12285 257 cp $stuff/$patch_file $WOK/$PACKAGE/source/slitaz
pascal@1442 258 if [ -f done.$patch_file ]; then
al@19583 259 echo "Skipping $patch_file"; continue
pascal@1442 260 fi
al@19583 261 echo -e "\nApply $patch_file"
pankso@15855 262 patch -p1 < $WOK/$PACKAGE/source/slitaz/$patch_file || return 1
pascal@1442 263 touch done.$patch_file
pascal@521 264 done <<EOT
al@19583 265 aufs4-base.patch
al@19583 266 aufs4-standalone.patch
al@19583 267 aufs4-loopback.patch
al@19583 268 aufs4-mmap.patch
pascal@521 269 EOT
al@19583 270
pankso@15855 271 # Mrproper and lguest
al@19583 272 echo "Making kernel proper and then build lguest..."
pankso@3864 273 make mrproper
al@19583 274 cd tools/lguest
pankso@15855 275 make lguest || return 1
pankso@15855 276 cd $src
al@19583 277
pankso@15855 278 #
pankso@15855 279 # Arch x86_64: TODO have a real cross environment
pankso@15855 280 #
al@19583 281 if [ -z "$nox64" ]; then
al@19583 282 echo "Making x86_64 Kernel"
al@19583 283
pankso@15855 284 # Build bzImage64 without modules first
al@19583 285 if [ -z "$nonomods" ]; then
pankso@15855 286 cp -f $stuff/$PACKAGE-slitaz.config64 .config
pankso@15855 287 sed -i 's/CONFIG_MODULES=y/# CONFIG_MODULES is not set/' .config
al@19583 288 # We can't keep every driver in staging???
pankso@15855 289 sed -i -e 's/^CONFIG_RTL8192/#&/' \
pankso@15855 290 -e 's/^CONFIG_R8187SE/#&/' \
pankso@15855 291 -e 's/^CONFIG_RT2870/#&/' .config
al@19583 292
pankso@15855 293 echo -e "\n* Configure bzImage64 without modules...\n"
pankso@15855 294 yes '' | make ARCH=x86_64 oldconfig
al@19583 295
pankso@15855 296 echo -e "\n* Building bzImage64 without modules...\n"
pankso@15855 297 make -j 4 ARCH=x86_64 CROSS_COMPILE=uclibc-x86_64- bzImage || exit 1
al@19583 298
pankso@15855 299 [ -d $DESTDIR ] || mkdir -p $DESTDIR/linux64
pankso@15855 300 mv arch/x86/boot/bzImage $DESTDIR/linux64
pankso@15855 301 mv System.map System.map-without-modules64
pankso@15855 302 fi
al@19583 303
pankso@15855 304 # Build bzImage64 with modules
pankso@15855 305 cp -f $stuff/$PACKAGE-slitaz.config64 .config
al@19583 306
pankso@15855 307 echo -e "\n* Configure bzImage64 with modules...\n"
pankso@15855 308 yes '' | make ARCH=x86_64 oldconfig
al@19583 309
pankso@15855 310 echo -e "\n* Building bzImage64 with modules...\n"
pankso@15855 311 make -j 4 ARCH=x86_64 CROSS_COMPILE=uclibc-x86_64- bzImage &&
pankso@15855 312 make -j 4 ARCH=x86_64 CROSS_COMPILE=uclibc-x86_64- modules &&
pankso@15855 313 make ARCH=x86_64 INSTALL_MOD_PATH=$DESTDIR/linux64 modules_install &&
pankso@15855 314 make ARCH=x86_64 INSTALL_HDR_PATH=$DESTDIR/linux64/usr headers_install &&
al@19583 315
pankso@15855 316 ln .config $WOK/$PACKAGE/source/slitaz/config64
pankso@15855 317 [ -s arch/x86/boot/bzImage ] || return 1
al@19583 318 mkdir -p $DESTDIR/linux64/boot 2>/dev/null
pascal@17031 319 mv arch/x86/boot/bzImage $DESTDIR/linux64/boot/vmlinuz-$VERSION-slitaz64
pascal@17366 320 KVERSION=$VERSION-slitaz64
pascal@17366 321 install_module_headers $DESTDIR/linux64
pankso@15855 322 ln System.map System.map-modules64
pankso@15855 323 ln Module.symvers Module.symvers-modules64
pankso@15855 324 else
pankso@15855 325 echo "* Skipping: x86_64 Kernel..."
pankso@12285 326 fi
al@19583 327
pankso@12294 328 #
pankso@15855 329 # Linux Arch i386 - GCC arch i486
pankso@12294 330 #
al@19583 331 echo "Making x86 Kernel..."
pankso@12803 332
pankso@12294 333 # Build bzImage without modules first
al@19583 334 if [ -z "$nonomods" ]; then
pankso@15855 335 cp -f $stuff/$PACKAGE-slitaz.config .config
pankso@15855 336 sed -i 's/CONFIG_MODULES=y/# CONFIG_MODULES is not set/' .config
al@19583 337 # We can't keep every driver in staging???
pankso@15855 338 sed -i -e 's/^CONFIG_RTL8192/#&/' \
pankso@15855 339 -e 's/^CONFIG_R8187SE/#&/' \
pankso@15855 340 -e 's/^CONFIG_RT2870/#&/' .config
al@19583 341
pankso@15855 342 echo -e "\n* Configure bzImage without modules...\n"
pankso@15855 343 yes '' | make ARCH=i386 oldconfig
al@19583 344
pankso@15855 345 echo -e "\n* Building bzImage without modules...\n"
pascal@15670 346 make ARCH=i386 -j 4 bzImage || exit 1
al@19583 347
pankso@15855 348 [ -d $DESTDIR ] || mkdir -p $DESTDIR
pankso@15855 349 mv arch/x86/boot/bzImage $DESTDIR
pankso@15855 350 mv System.map System.map-without-modules
pankso@12294 351 fi
al@19583 352
pankso@12294 353 # Build bzImage with modules
pankso@12294 354 cp -f $stuff/$PACKAGE-slitaz.config .config
al@19583 355
pankso@15855 356 echo -e "\n* Configure bzImage with modules...\n"
pascal@15733 357 yes '' | make ARCH=i386 oldconfig
al@19583 358
pankso@12294 359 ln .config $WOK/$PACKAGE/source/slitaz/config
al@19583 360
pankso@15855 361 echo -e "\n* Building bzImage with modules...\n"
pascal@15670 362 make ARCH=i386 -j 4 bzImage &&
pascal@15670 363 make ARCH=i386 -j 4 modules &&
pascal@15670 364 make ARCH=i386 INSTALL_MOD_PATH=$DESTDIR modules_install &&
pascal@15670 365 make ARCH=i386 INSTALL_HDR_PATH=$DESTDIR/usr headers_install &&
al@19583 366
pankso@15855 367 [ -s arch/x86/boot/bzImage ] || return 1
pankso@12294 368 mkdir -p $DESTDIR/boot 2> /dev/null
pankso@12294 369 mv arch/x86/boot/bzImage $DESTDIR/boot/vmlinuz-$VERSION-slitaz
pascal@17366 370 KVERSION=$VERSION-slitaz
al@19583 371
pascal@17366 372 install_module_headers $DESTDIR
al@19583 373
slaxemulator@6719 374 # Compress all modules.
pankso@15855 375 if [ -d "$DESTDIR/lib/modules/$VERSION-slitaz" ]; then
pankso@15855 376 $stuff/gztazmod.sh $DESTDIR/lib/modules/$VERSION-slitaz
pankso@15855 377 else
pankso@15855 378 return 1
pankso@15855 379 fi
pascal@17031 380 if [ -d "$DESTDIR/linux64/lib/modules/$VERSION-slitaz64" ]; then
pascal@17031 381 $stuff/gztazmod.sh $DESTDIR/linux64/lib/modules/$VERSION-slitaz64
pankso@15855 382 fi
pascal@7667 383 ln System.map System.map-modules
pascal@7667 384 ln Module.symvers Module.symvers-modules
pankso@3864 385 }
erjo@253 386
pankso@3 387 # Rules to gen a SliTaz package suitable for Tazpkg.
pankso@3 388 genpkg_rules()
pankso@3 389 {
pankso@12803 390 case "$ARCH" in
pankso@12803 391 arm)
pankso@12803 392 echo "Packing: ARM Kernel"
pankso@12803 393 cp -a $install/* $fs
pankso@12803 394 rm -f $fs/lib/modules/*/build $fs/lib/modules/*/source
pankso@12803 395 return 0 ;;
pankso@12803 396 x86_64)
pankso@12803 397 echo "TODO: use default or custom x86_64 packing"
pankso@12803 398 return 0 ;;
pankso@12803 399 esac
pankso@12803 400
al@18734 401 export PACKAGE VERSION
al@18734 402 local path
al@18734 403 cp -a $install/boot $fs
al@18734 404
al@18734 405 # Compress all modules.
al@18734 406 path=$fs/lib/modules/$VERSION-slitaz/kernel
al@18734 407 mkdir -p $path
al@18734 408
al@18734 409 # Get the base modules
al@18734 410 export src install
al@18734 411 mkdir -p $WOK/$PACKAGE/source/tmp
al@19583 412
al@19583 413 # Warning: stuff/list_modules.sh must find the generated modules.list
al@18734 414 $stuff/list_modules.sh \
pankso@15855 415 $(cat $stuff/modules.list) > $WOK/$PACKAGE/source/tmp/modules.list
al@19583 416
al@18734 417 while read module; do
al@18734 418 dir=$(dirname $module)
al@18734 419 [ -d $path/$dir ] || mkdir -p $path/$dir
al@18734 420 cp -a $install/lib/modules/$VERSION-slitaz/kernel/$module $path/$dir
al@18734 421 done < $WOK/$PACKAGE/source/tmp/modules.list
al@18734 422
al@18734 423 # Remove unresolved links
al@18734 424 rm -f $fs/lib/modules/$VERSION-slitaz/build
al@18734 425 rm -f $fs/lib/modules/$VERSION-slitaz/source
al@18734 426
al@18734 427 # We only need module.{order,builtin} because other map files are
al@18734 428 # generated by depmod in post_install
al@18734 429 cp -a $install/lib/modules/$VERSION-slitaz/modules.order \
pankso@15855 430 $install/lib/modules/$VERSION-slitaz/modules.builtin \
pankso@15855 431 $fs/lib/modules/$VERSION-slitaz
al@18734 432
al@19583 433 # Pack all packages with a Kernel module
al@19583 434 [ ! -d "$install/lib/modules/$VERSION-slitaz" ] && return 1
al@19583 435 for i in $SPLIT; do
al@19583 436 cook $i
al@18734 437 done
al@18734 438
al@19583 439 # Check any module in Kernel .config that's not added to a linux-* pkgs
al@19583 440 # and remove aufs patches: we don't need them in HG wok.
pankso@15855 441 $stuff/check_modules.sh
al@19583 442 rm -f $stuff/aufs4-*
pankso@3 443 }
pankso@3 444
pankso@3 445 # Pre and post install commands for Tazpkg.
pankso@3 446 post_install()
pankso@3 447 {
al@18734 448 chroot "$root/" depmod -a $VERSION-slitaz
al@18734 449
al@18734 450 # Handle multiarch installation
al@18734 451 case "$SLITAZ_ARCH" in
pankso@12803 452 arm)
pankso@12803 453 echo "Kernel : /boot/linux-$VERSION-slitaz-$ARCH"
pankso@12803 454 echo "Modules: /lib/modules/$VERSION-slitaz"
pankso@12803 455 return 0 ;;
pankso@12803 456 esac
al@18734 457
pankso@15855 458 # GRUB stuff.
pankso@15855 459 if [ -f "$1/boot/grub/menu.lst" ]; then
pankso@15855 460 # Current root device
pankso@15855 461 root_dev="/dev/$(lsblk | grep '/$'| grep -o '[a-z]d[a-z][0-9]*')"
pankso@15855 462 grub_part="$(( $(echo $root_dev | grep -o '[0-9]*$')-1 ))"
pankso@15855 463 # Use device.map to find grub device number
pankso@15855 464 grub_dev="$(grep $(echo $root_dev | grep -o '^/dev/.d.' ) \
al@19583 465 "$1/boot/grub/device.map" | cut -f1 | sed "s/)$/.$grub_part)/g")"
al@18734 466
al@19583 467 # Add and clean Kernel entries in case of upgrade for installed system.
pascal@18730 468 if ! grep -q vmlinuz-$VERSION-slitaz "$1/boot/grub/menu.lst"; then
al@18734 469
pankso@15855 470 # Clean the old entry
pankso@15855 471 # TODO: old vmlinuz file is removed but the entry is still there.
pankso@15855 472 # So grub error:15 when selected: http://bugs.slitaz.org/?id=74
border@13797 473
pankso@15855 474 # Add the new entry
al@19583 475 cat >> "$1/boot/grub/menu.lst" <<EOT
pankso@4056 476
pankso@4056 477 title SliTaz GNU/Linux (Kernel $VERSION-slitaz)
border@13754 478 $grub_dev
border@13754 479 kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev quiet
pankso@4056 480 EOT
border@13754 481 # Make it the default entry
pascal@18730 482 last_entry=$(( $(grep -c '^title' "$1/boot/grub/menu.lst")-1 ))
pascal@18730 483 sed -e "s/^default.*/default $last_entry/g" -i "$1/boot/grub/menu.lst"
pankso@4056 484 fi
al@18734 485
pankso@4056 486 # Display information message.
pankso@15855 487 cat <<EOT
al@18734 488
pankso@4056 489 ----
al@19583 490 GRUB is installed, these three lines must be in your /boot/grub/menu.lst:
pankso@1154 491
pankso@1154 492 title SliTaz GNU/Linux (Kernel $VERSION-slitaz)
pankso@1154 493 $grub_dev
pankso@4056 494 kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev
pascal@886 495 ----
pascal@886 496 EOT
pankso@1154 497 fi
pascal@18707 498 true
pankso@3 499 }