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 } |