wok-next annotate linux/receipt @ rev 19586

linux: update install_module_headers(), update stuff/modules.list. Mask empty linux-* packages (let it build for now, don't remove). Waiting for the new config...
author Aleksej Bobylev <al.bobylev@gmail.com>
date Wed Jan 04 10:35:18 2017 +0200 (2017-01-04)
parents 5528876d95a1
children 5534f89ab5ad
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@19586 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
pascal@17366 76 install_module_headers()
pascal@17366 77 {
al@19586 78 # $1 = $install or $install/linux64
al@19586 79
al@19583 80 local path="usr/src/linux-$KVERSION"
al@19583 81 mkdir -p $1/lib/modules/$KVERSION
pascal@17366 82 ln -sf /$path $1/lib/modules/$KVERSION/build
al@19583 83 install -D -m644 $src/Makefile $1/$path/Makefile
al@19583 84 install -D -m644 $src/kernel/Makefile $1/$path/kernel/Makefile
al@19583 85 install -D -m644 $src/.config $1/$path/.config
pascal@17366 86
al@19586 87 mkdir -p $1/$path/include
al@19586 88 for i in acpi asm-generic config crypto drm generated keys linux math-emu \
al@19586 89 media net pcmcia scsi soc sound trace uapi video xen; do
al@19586 90 cp -a $src/include/$i $1/$path/include/
al@19586 91 done
pascal@17366 92
pascal@17366 93 # copy arch includes for external modules
pascal@17366 94 mkdir -p $1/$path/arch/x86
pascal@17366 95 cp -a $src/arch/x86/include $1/$path/arch/x86/
pascal@17366 96
pascal@17366 97 # copy files necessary for later builds, like nvidia and vmware
al@19583 98 cp -a $src/Module.symvers $1/$path
al@19583 99 cp -a $src/scripts $1/$path
al@19586 100
al@19583 101 # fix permissions on scripts dir
al@19586 102 chmod og-w -R $1/$path/scripts
al@19586 103 mkdir -p $1/$path/.tmp_versions
pascal@17366 104
pascal@17366 105 mkdir -p $1/$path/arch/x86/kernel
al@19586 106 cp $src/arch/x86/Makefile $1/$path/arch/x86/
al@19586 107 cp $src/arch/x86/Makefile_32.cpu $1/$path/arch/x86/
al@19586 108 cp $src/arch/x86/kernel/asm-offsets.s $1/$path/arch/x86/kernel/
pascal@17366 109
al@19586 110 # # add headers for lirc package
al@19583 111 # mkdir -p $1/$path/drivers/media/video
al@19583 112 # cp -a $src/drivers/media/video/*.h $1/$path/drivers/media/video/
al@19583 113 # for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 ; do
al@19583 114 # mkdir -p $1/$path/drivers/media/video/$i
al@19583 115 # cp -a $src/drivers/media/video/$i/*.h $1/$path/drivers/media/video/$i
al@19583 116 # done
pascal@17366 117
pascal@17366 118 # add docbook makefile
pascal@17366 119 install -D -m644 $src/Documentation/DocBook/Makefile \
al@19583 120 $1/$path/Documentation/DocBook/Makefile
pascal@17366 121
al@19583 122 # add md headers
al@19586 123 mkdir -p $1/$path/drivers/md
al@19586 124 cp $src/drivers/md/*.h $1/$path/drivers/md
pascal@17366 125
pascal@17366 126 # add inotify.h
pascal@17366 127 mkdir -p $1/$path/include/linux
al@19586 128 cp $src/include/linux/inotify.h $1/$path/include/linux/
pascal@17366 129
pascal@17366 130 # add wireless headers
al@19586 131 mkdir -p $1/$path/net/mac80211/
al@19586 132 cp $src/net/mac80211/*.h $1/$path/net/mac80211/
pascal@17366 133
pascal@17366 134 # add dvb headers for external modules
al@19586 135 # in reference to http://bugs.archlinux.org/task/9912
al@19586 136 mkdir -p $1/$path/drivers/media/dvb-core
al@19586 137 cp $src/drivers/media/dvb-core/*.h $1/$path/drivers/media/dvb-core/
al@19586 138 # and http://bugs.archlinux.org/task/11194
al@19586 139 mkdir -p $1/$path/include/config/dvb/
al@19586 140 cp $src/include/config/dvb/*.h $1/$path/include/config/dvb/
pascal@17366 141
pascal@17366 142 # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
al@19586 143 # in reference to http://bugs.archlinux.org/task/13146
al@19586 144 mkdir -p $1/$path/drivers/media/dvb-frontends/ $1/$path/drivers/media/i2c/
al@19586 145 cp $src/drivers/media/dvb-frontends/lgdt330x.h $1/$path/drivers/media/dvb-frontends/
al@19586 146 cp $src/drivers/media/i2c/msp3400-driver.h $1/$path/drivers/media/i2c/
pascal@17366 147
al@19583 148 # add dvb headers
al@19586 149 # in reference to http://bugs.archlinux.org/task/20402
al@19586 150 mkdir -p $1/$path/drivers/media/usb/dvb-usb
al@19586 151 cp $src/drivers/media/usb/dvb-usb/*.h $1/$path/drivers/media/usb/dvb-usb/
al@19586 152 mkdir -p $1/$path/drivers/media/dvb-frontends
al@19586 153 cp $src/drivers/media/dvb-frontends/*.h $1/$path/drivers/media/dvb-frontends/
al@19586 154 mkdir -p $1/$path/drivers/media/tuners
al@19586 155 cp $src/drivers/media/tuners/*.h $1/$path/drivers/media/tuners/
pascal@17366 156
pascal@17366 157 # add xfs and shmem for aufs building
al@19586 158 mkdir -p $1/$path/fs/xfs $1/$path/mm
al@19583 159
pascal@17366 160 # copy in Kconfig files
al@19583 161 for i in $(find . -name "Kconfig*"); do
al@19586 162 mkdir -p $1/$path/$(dirname $i)
al@19586 163 cp $src/$i $1/$path/$i
pascal@17366 164 done
pascal@17366 165
al@19586 166 # add objtool for external module building and enabled VALIDATION_STACK option
al@19586 167 if [ -f $src/tools/objtool/objtool ]; then
al@19586 168 mkdir -p $1/$path/tools/objtool
al@19586 169 cp -a $src/tools/objtool/objtool $1/$path/tools/objtool/
al@19586 170 fi
al@19586 171
pascal@17366 172 chown -R root.root $1/$path
al@19586 173 find $1/$path -type d -exec chmod 755 \{\} \;
al@19586 174
pascal@17366 175 # remove unneeded architectures
al@19586 176 for i in alpha arc arm arm26 arm64 avr32 blackfin c6x cris frv h8300 \
al@19586 177 hexagon ia64 m32r m68k m68knommu metag mips microblaze mn10300 \
al@19586 178 openrisc parisc powerpc ppc s390 score sh sh64 sparc sparc64 tile \
al@19586 179 unicore32 um v850 xtensa; do
al@19586 180 rm -rf $1/$path/arch/$i
al@19586 181 done
al@19583 182 }
al@19583 183
pascal@17366 184
pankso@3 185 # Rules to configure and make the package.
pankso@3 186 compile_rules()
pankso@3 187 {
pankso@15921 188 if [ -f "/usr/share/boot/initrd" ]; then
pankso@15921 189 cp /usr/share/boot/initrd initrd.cpio
pankso@15921 190 fi
pankso@12803 191
pankso@15855 192 # Handle cross compilation
pankso@12803 193 case "$ARCH" in
pankso@12803 194 arm)
pankso@15855 195 echo "Compiling: $ARCH Kernel"
pankso@12824 196 make mrproper
pankso@12824 197 patch -Np1 < $stuff/$ARCH/linux-arm.patch || exit 1
pankso@12824 198 cp -f $stuff/$ARCH/linux-arm.config .config
pascal@15733 199 yes '' | make ARCH=$ARCH oldconfig
pankso@12803 200 make ARCH=$ARCH CROSS_COMPILE=${HOST_SYSTEM}- bzImage &&
pankso@12803 201 make ARCH=$ARCH CROSS_COMPILE=${HOST_SYSTEM}- modules &&
pankso@12803 202 make ARCH=$ARCH CROSS_COMPILE=${HOST_SYSTEM}- \
pankso@12803 203 INSTALL_MOD_PATH=$DESTDIR modules_install &&
pankso@12803 204 mkdir -p $DESTDIR/boot &&
pankso@12824 205 cp -a arch/arm/boot/zImage \
pankso@12803 206 $DESTDIR/boot/linux-$VERSION-slitaz-$ARCH
pankso@15921 207 #$stuff/gztazmod.sh $DESTDIR/lib/modules/$VERSION-slitaz
pankso@12803 208 return 0 ;;
pankso@12803 209 x86_64)
al@19583 210 echo "TODO: Maybe use default? But cross compile in x86_64 chroot"
pankso@12803 211 echo "so we can remove the 64 build by uclibc-cross-compiler-x86_64"
pankso@12803 212 return 0 ;;
pankso@12803 213 esac
pankso@12803 214
al@19586 215 # Check for Aufs and get source / patches if needed
pankso@9731 216 echo "Checking for Aufs packages..."
pankso@15855 217 AUFSVER=$(grep ^VERSION= $WOK/aufs/receipt | cut -d "=" -f2 | sed -e 's/"//g')
pankso@15855 218 AUFSDIR="$WOK/aufs/source/aufs-${AUFSVER}"
pankso@15855 219 if [ ! -d "$AUFSDIR" ]; then
pankso@15855 220 [ ! -f "$SRC/aufs-${AUFSVER}.tar.bz2" ] && cook aufs --getsrc
pankso@12288 221 mkdir -p $WOK/aufs/source/
pankso@15855 222 echo "Extracting: aufs-${AUFSVER}.tar.bz2"
pankso@15855 223 tar xjf $SRC/aufs-${AUFSVER}.tar.bz2 -C $WOK/aufs/source/
pankso@9731 224 fi
al@19583 225
pankso@12285 226 echo "cook:linux" > $command
pankso@12285 227
pankso@9731 228 echo "Copying Aufs files and patches..."
slaxemulator@7297 229 cp -a $AUFSDIR/Documentation $AUFSDIR/fs $AUFSDIR/include $src
al@19583 230 cp -a $AUFSDIR/aufs4-*.patch $stuff
pankso@12285 231
pankso@15855 232 # SliTaz db stuff
pankso@15855 233 [ -d $WOK/$PACKAGE/source/slitaz ] && rm -rf $WOK/$PACKAGE/source/slitaz
pankso@12285 234 mkdir -p $WOK/$PACKAGE/source/slitaz
pankso@12290 235 echo "$WGET_URL" > $WOK/$PACKAGE/source/slitaz/url
pankso@12285 236 cp $stuff/gztazmod.sh $stuff/list_modules.sh $WOK/$PACKAGE/source/slitaz
pankso@12285 237 cp $stuff/bootloader.sh $WOK/$PACKAGE/source/slitaz
pankso@12803 238
pankso@5640 239 # Apply patches
pankso@9731 240 echo "Applying patches..."
pascal@521 241 while read patch_file; do
pankso@12285 242 echo "$patch_file" >> $WOK/$PACKAGE/source/slitaz/patches
pankso@12285 243 cp $stuff/$patch_file $WOK/$PACKAGE/source/slitaz
pascal@1442 244 if [ -f done.$patch_file ]; then
al@19583 245 echo "Skipping $patch_file"; continue
pascal@1442 246 fi
al@19583 247 echo -e "\nApply $patch_file"
pankso@15855 248 patch -p1 < $WOK/$PACKAGE/source/slitaz/$patch_file || return 1
pascal@1442 249 touch done.$patch_file
pascal@521 250 done <<EOT
al@19583 251 aufs4-base.patch
al@19583 252 aufs4-standalone.patch
al@19583 253 aufs4-loopback.patch
al@19583 254 aufs4-mmap.patch
pascal@521 255 EOT
al@19583 256
pankso@15855 257 # Mrproper and lguest
al@19583 258 echo "Making kernel proper and then build lguest..."
pankso@3864 259 make mrproper
al@19583 260 cd tools/lguest
pankso@15855 261 make lguest || return 1
pankso@15855 262 cd $src
al@19583 263
pankso@15855 264 #
pankso@15855 265 # Arch x86_64: TODO have a real cross environment
pankso@15855 266 #
al@19583 267 if [ -z "$nox64" ]; then
al@19583 268 echo "Making x86_64 Kernel"
al@19583 269
pankso@15855 270 # Build bzImage64 without modules first
al@19583 271 if [ -z "$nonomods" ]; then
pankso@15855 272 cp -f $stuff/$PACKAGE-slitaz.config64 .config
pankso@15855 273 sed -i 's/CONFIG_MODULES=y/# CONFIG_MODULES is not set/' .config
al@19583 274 # We can't keep every driver in staging???
pankso@15855 275 sed -i -e 's/^CONFIG_RTL8192/#&/' \
pankso@15855 276 -e 's/^CONFIG_R8187SE/#&/' \
pankso@15855 277 -e 's/^CONFIG_RT2870/#&/' .config
al@19583 278
pankso@15855 279 echo -e "\n* Configure bzImage64 without modules...\n"
pankso@15855 280 yes '' | make ARCH=x86_64 oldconfig
al@19583 281
pankso@15855 282 echo -e "\n* Building bzImage64 without modules...\n"
pankso@15855 283 make -j 4 ARCH=x86_64 CROSS_COMPILE=uclibc-x86_64- bzImage || exit 1
al@19583 284
pankso@15855 285 [ -d $DESTDIR ] || mkdir -p $DESTDIR/linux64
pankso@15855 286 mv arch/x86/boot/bzImage $DESTDIR/linux64
pankso@15855 287 mv System.map System.map-without-modules64
pankso@15855 288 fi
al@19583 289
pankso@15855 290 # Build bzImage64 with modules
pankso@15855 291 cp -f $stuff/$PACKAGE-slitaz.config64 .config
al@19583 292
pankso@15855 293 echo -e "\n* Configure bzImage64 with modules...\n"
pankso@15855 294 yes '' | make ARCH=x86_64 oldconfig
al@19583 295
pankso@15855 296 echo -e "\n* Building bzImage64 with modules...\n"
pankso@15855 297 make -j 4 ARCH=x86_64 CROSS_COMPILE=uclibc-x86_64- bzImage &&
pankso@15855 298 make -j 4 ARCH=x86_64 CROSS_COMPILE=uclibc-x86_64- modules &&
pankso@15855 299 make ARCH=x86_64 INSTALL_MOD_PATH=$DESTDIR/linux64 modules_install &&
pankso@15855 300 make ARCH=x86_64 INSTALL_HDR_PATH=$DESTDIR/linux64/usr headers_install &&
al@19583 301
pankso@15855 302 ln .config $WOK/$PACKAGE/source/slitaz/config64
pankso@15855 303 [ -s arch/x86/boot/bzImage ] || return 1
al@19583 304 mkdir -p $DESTDIR/linux64/boot 2>/dev/null
pascal@17031 305 mv arch/x86/boot/bzImage $DESTDIR/linux64/boot/vmlinuz-$VERSION-slitaz64
pascal@17366 306 KVERSION=$VERSION-slitaz64
pascal@17366 307 install_module_headers $DESTDIR/linux64
pankso@15855 308 ln System.map System.map-modules64
pankso@15855 309 ln Module.symvers Module.symvers-modules64
pankso@15855 310 else
pankso@15855 311 echo "* Skipping: x86_64 Kernel..."
pankso@12285 312 fi
al@19583 313
pankso@12294 314 #
pankso@15855 315 # Linux Arch i386 - GCC arch i486
pankso@12294 316 #
al@19583 317 echo "Making x86 Kernel..."
pankso@12803 318
pankso@12294 319 # Build bzImage without modules first
al@19583 320 if [ -z "$nonomods" ]; then
pankso@15855 321 cp -f $stuff/$PACKAGE-slitaz.config .config
pankso@15855 322 sed -i 's/CONFIG_MODULES=y/# CONFIG_MODULES is not set/' .config
al@19583 323 # We can't keep every driver in staging???
pankso@15855 324 sed -i -e 's/^CONFIG_RTL8192/#&/' \
pankso@15855 325 -e 's/^CONFIG_R8187SE/#&/' \
pankso@15855 326 -e 's/^CONFIG_RT2870/#&/' .config
al@19583 327
pankso@15855 328 echo -e "\n* Configure bzImage without modules...\n"
pankso@15855 329 yes '' | make ARCH=i386 oldconfig
al@19583 330
pankso@15855 331 echo -e "\n* Building bzImage without modules...\n"
pascal@15670 332 make ARCH=i386 -j 4 bzImage || exit 1
al@19583 333
pankso@15855 334 [ -d $DESTDIR ] || mkdir -p $DESTDIR
pankso@15855 335 mv arch/x86/boot/bzImage $DESTDIR
pankso@15855 336 mv System.map System.map-without-modules
pankso@12294 337 fi
al@19583 338
pankso@12294 339 # Build bzImage with modules
pankso@12294 340 cp -f $stuff/$PACKAGE-slitaz.config .config
al@19583 341
pankso@15855 342 echo -e "\n* Configure bzImage with modules...\n"
pascal@15733 343 yes '' | make ARCH=i386 oldconfig
al@19583 344
pankso@12294 345 ln .config $WOK/$PACKAGE/source/slitaz/config
al@19583 346
pankso@15855 347 echo -e "\n* Building bzImage with modules...\n"
pascal@15670 348 make ARCH=i386 -j 4 bzImage &&
pascal@15670 349 make ARCH=i386 -j 4 modules &&
pascal@15670 350 make ARCH=i386 INSTALL_MOD_PATH=$DESTDIR modules_install &&
pascal@15670 351 make ARCH=i386 INSTALL_HDR_PATH=$DESTDIR/usr headers_install &&
al@19583 352
pankso@15855 353 [ -s arch/x86/boot/bzImage ] || return 1
al@19586 354 mkdir -p $DESTDIR/boot 2>/dev/null
pankso@12294 355 mv arch/x86/boot/bzImage $DESTDIR/boot/vmlinuz-$VERSION-slitaz
pascal@17366 356 KVERSION=$VERSION-slitaz
al@19583 357
pascal@17366 358 install_module_headers $DESTDIR
al@19583 359
slaxemulator@6719 360 # Compress all modules.
pankso@15855 361 if [ -d "$DESTDIR/lib/modules/$VERSION-slitaz" ]; then
pankso@15855 362 $stuff/gztazmod.sh $DESTDIR/lib/modules/$VERSION-slitaz
pankso@15855 363 else
pankso@15855 364 return 1
pankso@15855 365 fi
pascal@17031 366 if [ -d "$DESTDIR/linux64/lib/modules/$VERSION-slitaz64" ]; then
pascal@17031 367 $stuff/gztazmod.sh $DESTDIR/linux64/lib/modules/$VERSION-slitaz64
pankso@15855 368 fi
pascal@7667 369 ln System.map System.map-modules
pascal@7667 370 ln Module.symvers Module.symvers-modules
pankso@3864 371 }
erjo@253 372
pankso@3 373 # Rules to gen a SliTaz package suitable for Tazpkg.
pankso@3 374 genpkg_rules()
pankso@3 375 {
pankso@12803 376 case "$ARCH" in
pankso@12803 377 arm)
pankso@12803 378 echo "Packing: ARM Kernel"
pankso@12803 379 cp -a $install/* $fs
pankso@12803 380 rm -f $fs/lib/modules/*/build $fs/lib/modules/*/source
pankso@12803 381 return 0 ;;
pankso@12803 382 x86_64)
pankso@12803 383 echo "TODO: use default or custom x86_64 packing"
pankso@12803 384 return 0 ;;
pankso@12803 385 esac
pankso@12803 386
al@18734 387 export PACKAGE VERSION
al@18734 388 local path
al@18734 389 cp -a $install/boot $fs
al@18734 390
al@18734 391 # Compress all modules.
al@18734 392 path=$fs/lib/modules/$VERSION-slitaz/kernel
al@18734 393 mkdir -p $path
al@18734 394
al@18734 395 # Get the base modules
al@18734 396 export src install
al@18734 397 mkdir -p $WOK/$PACKAGE/source/tmp
al@19583 398
al@19583 399 # Warning: stuff/list_modules.sh must find the generated modules.list
al@18734 400 $stuff/list_modules.sh \
pankso@15855 401 $(cat $stuff/modules.list) > $WOK/$PACKAGE/source/tmp/modules.list
al@19583 402
al@18734 403 while read module; do
al@18734 404 dir=$(dirname $module)
al@18734 405 [ -d $path/$dir ] || mkdir -p $path/$dir
al@18734 406 cp -a $install/lib/modules/$VERSION-slitaz/kernel/$module $path/$dir
al@18734 407 done < $WOK/$PACKAGE/source/tmp/modules.list
al@18734 408
al@18734 409 # Remove unresolved links
al@18734 410 rm -f $fs/lib/modules/$VERSION-slitaz/build
al@18734 411 rm -f $fs/lib/modules/$VERSION-slitaz/source
al@18734 412
al@18734 413 # We only need module.{order,builtin} because other map files are
al@18734 414 # generated by depmod in post_install
al@18734 415 cp -a $install/lib/modules/$VERSION-slitaz/modules.order \
pankso@15855 416 $install/lib/modules/$VERSION-slitaz/modules.builtin \
pankso@15855 417 $fs/lib/modules/$VERSION-slitaz
al@18734 418
al@19583 419 # Pack all packages with a Kernel module
al@19583 420 [ ! -d "$install/lib/modules/$VERSION-slitaz" ] && return 1
al@19583 421 for i in $SPLIT; do
al@19583 422 cook $i
al@18734 423 done
al@18734 424
al@19583 425 # Check any module in Kernel .config that's not added to a linux-* pkgs
pankso@15855 426 $stuff/check_modules.sh
al@19586 427
al@19586 428 # Remove Aufs patches: we don't need them in HG wok.
al@19583 429 rm -f $stuff/aufs4-*
pankso@3 430 }
pankso@3 431
pankso@3 432 # Pre and post install commands for Tazpkg.
pankso@3 433 post_install()
pankso@3 434 {
al@18734 435 # Handle multiarch installation
al@18734 436 case "$SLITAZ_ARCH" in
pankso@12803 437 arm)
pankso@12803 438 echo "Kernel : /boot/linux-$VERSION-slitaz-$ARCH"
pankso@12803 439 echo "Modules: /lib/modules/$VERSION-slitaz"
pankso@12803 440 return 0 ;;
pankso@12803 441 esac
al@18734 442
pankso@15855 443 # GRUB stuff.
pankso@15855 444 if [ -f "$1/boot/grub/menu.lst" ]; then
pankso@15855 445 # Current root device
pankso@15855 446 root_dev="/dev/$(lsblk | grep '/$'| grep -o '[a-z]d[a-z][0-9]*')"
pankso@15855 447 grub_part="$(( $(echo $root_dev | grep -o '[0-9]*$')-1 ))"
pankso@15855 448 # Use device.map to find grub device number
pankso@15855 449 grub_dev="$(grep $(echo $root_dev | grep -o '^/dev/.d.' ) \
al@19583 450 "$1/boot/grub/device.map" | cut -f1 | sed "s/)$/.$grub_part)/g")"
al@18734 451
al@19583 452 # Add and clean Kernel entries in case of upgrade for installed system.
pascal@18730 453 if ! grep -q vmlinuz-$VERSION-slitaz "$1/boot/grub/menu.lst"; then
al@18734 454
pankso@15855 455 # Clean the old entry
pankso@15855 456 # TODO: old vmlinuz file is removed but the entry is still there.
pankso@15855 457 # So grub error:15 when selected: http://bugs.slitaz.org/?id=74
border@13797 458
pankso@15855 459 # Add the new entry
al@19583 460 cat >> "$1/boot/grub/menu.lst" <<EOT
pankso@4056 461
pankso@4056 462 title SliTaz GNU/Linux (Kernel $VERSION-slitaz)
border@13754 463 $grub_dev
border@13754 464 kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev quiet
pankso@4056 465 EOT
border@13754 466 # Make it the default entry
pascal@18730 467 last_entry=$(( $(grep -c '^title' "$1/boot/grub/menu.lst")-1 ))
pascal@18730 468 sed -e "s/^default.*/default $last_entry/g" -i "$1/boot/grub/menu.lst"
pankso@4056 469 fi
al@18734 470
pankso@4056 471 # Display information message.
pankso@15855 472 cat <<EOT
al@18734 473
pankso@4056 474 ----
al@19583 475 GRUB is installed, these three lines must be in your /boot/grub/menu.lst:
pankso@1154 476
pankso@1154 477 title SliTaz GNU/Linux (Kernel $VERSION-slitaz)
pankso@1154 478 $grub_dev
pankso@4056 479 kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev
pascal@886 480 ----
pascal@886 481 EOT
pankso@1154 482 fi
al@19586 483 :
pankso@3 484 }