slitaz-arm annotate rpi/tazbian @ rev 219

dot command may not search current directory first
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Jul 23 13:50:45 2017 +0200 (2017-07-23)
parents 9c7847becd6b
children
rev   line source
pascal@192 1 #!/bin/sh
pascal@192 2 #
pascal@210 3 # (C) 2014-2016 SliTaz GNU/Linux - GPL2
pascal@192 4 #
paul@202 5 # Creates a Debian package to install SliTaz on a Raspbian without
paul@202 6 # repartitioning.
pascal@192 7 #
pascal@192 8 # AUTHORS: Pascal Bellard <pascal.bellard@slitaz.org>
pascal@192 9 #
pascal@192 10
pascal@192 11 [ $(id -u) -ne 0 ] && echo "Must be root. Abort." && exit 1
pascal@192 12
pascal@213 13 REVISION=3
pascal@207 14 DESTDIR=var/os/slitaz
pascal@206 15 DESCRIPTION="Tiny Linux distribution with multi boot features"
pascal@207 16 LONG_DESCRIPTION="SliTaz can run fully in RAM or can be installed \
pascal@207 17 on the SD card in a\nsubdirectory of your Raspbian (example /$DESTDIR)."
pascal@206 18 WEB_SITE="http://arm.slitaz.org/rpi/"
pascal@206 19 MAINTAINER="Pascal Bellard <pascal.bellard@slitaz.org>"
pascal@213 20 LICENSE=GPL
pascal@206 21
pascal@205 22 tazpkg()
pascal@205 23 {
pascal@210 24 if [ -x /usr/bin/tazpkg -a "$1" == "get-install" ]; then
pascal@205 25 /usr/bin/tazpkg "$@"
pascal@206 26 return $?
pascal@205 27 fi
pascal@205 28 [ "$1" == "get-install" ] && echo "abort: can't find $2" && exit 1
pascal@205 29 mkdir -p tazpkg$$
pascal@205 30 cd tazpkg$$
pascal@210 31 cpio -i < ../$2 > /dev/null 2>&1
pascal@205 32 gunzip fs.cpio.gz 2> /dev/null
pascal@205 33 [ -s fs.cpio ] || unlzma fs.cpio.lzma
pascal@210 34 cpio -idmu < fs.cpio > /dev/null 2>&1
pascal@205 35 cd ..
pascal@205 36 sh <<EOT
pascal@205 37 . tazpkg$$/receipt
pascal@205 38 mkdir -p ${3#--root=}/var/lib/tazpkg/installed/\$PACKAGE
pascal@205 39 grep -qs ^pre_install tazpkg$$/receipt && pre_install ${3#--root=}
pascal@205 40 cp -a tazpkg$$/fs/. ${3#--root=}
pascal@205 41 grep -qs ^post_install tazpkg$$/receipt && post_install ${3#--root=}
pascal@205 42 rm -rf tazpkg$$/fs*
pascal@205 43 mv tazpkg$$/* ${3#--root=}/var/lib/tazpkg/installed/\$PACKAGE
pascal@205 44 EOT
pascal@205 45 md5sum $2 >> ${3#--root=}/var/lib/tazpkg/installed.md5
pascal@205 46 rm -rf tazpkg$$
pascal@205 47 }
pascal@205 48
pascal@206 49 buildfs()
pascal@206 50 {
pascal@192 51 CURDIR=$PWD
pascal@192 52 TMPDIR=/tmp/rasp$$
pascal@192 53 mkdir -p $TMPDIR
pascal@192 54 cd $TMPDIR
pascal@192 55 URL=http://mirror.slitaz.org/arm/rpi/
pascal@210 56 echo "Read $URL"
pascal@192 57 wget -O - $URL | sed '/slitaz-rpi/!d;s/.*href=.\([a-zA-Z0-9._-]*\).*/\1/' | sort -r > index
pascal@192 58 VERSION="$(sed '/rpi-desktop/!d' index | sed 's/.*-desktop-\([0-9_-]*\).*/\1/;q')"
pascal@192 59
pascal@210 60 for file in $(sed '/rpi-base/!d;q' index) $(sed '/rpi-desktop/!d;q' index); do
pascal@210 61 echo "Get $file "
pascal@210 62 wget -O - $URL$file | tar xjf -
pascal@213 63 WGET_URL=$URL$file
pascal@210 64 done
pascal@192 65
pascal@210 66 mkdir -p fs/$DESTDIR fs/boot/slitaz fs/boot/slitaz-base fs/boot/slitaz-live \
pascal@206 67 fs/boot/$raspos
pascal@192 68
pascal@210 69 BOOT=$(ls -d slitaz-rpi-base-*/boot)
pascal@210 70 [ ! -d "$BOOT" ] && echo "Abort ($BOOT) !" && exit 1
pascal@210 71
pascal@192 72 # setup boot configuration
pascal@210 73 echo "entry=SliTaz $VERSION on SD-card" > fs/boot/slitaz/menu.txt
pascal@210 74 echo "entry=SliTaz base $VERSION in RAM" > fs/boot/slitaz-base/menu.txt
pascal@210 75 echo "entry=SliTaz desktop $VERSION in RAM" > fs/boot/slitaz-live/menu.txt
pascal@210 76 cp $BOOT/config.txt fs/boot/slitaz
pascal@210 77 grep -q ^kernel= fs/boot/slitaz/config.txt ||
pascal@210 78 echo "kernel=kernel.img >> fs/boot/slitaz/config.txt"
pascal@210 79 sed -i '/^initramfs/d' fs/boot/slitaz/config.txt
pascal@210 80 cp fs/boot/slitaz/config.txt fs/boot/slitaz-base
pascal@210 81 cp fs/boot/slitaz/config.txt fs/boot/slitaz-live
pascal@198 82 echo "initramfs rootfs-base.gz" >> fs/boot/slitaz/config.txt
pascal@198 83 echo "initramfs ../slitaz/rootfs-base.gz" >> fs/boot/slitaz-base/config.txt
pascal@210 84 echo "initramfs ../slitaz/rootfs-base.gz,../slitaz/rootfs-live.gz" >> fs/boot/slitaz-live/config.txt
pascal@210 85
pascal@210 86 if [ -s $BOOT/kernel7.img ]; then
pascal@210 87 mv $BOOT/kernel*.img fs/boot/slitaz
pascal@210 88 sed -i 's|kernel.img|../slitaz/&|' fs/boot/slitaz-*/config.txt
pascal@210 89 else
pascal@210 90 rm -rf slitaz-rpi-*/boot/kernel.img \
pascal@210 91 slitaz-rpi-*/rootfs/lib/modules/* \
pascal@210 92 slitaz-rpi-*/rootfs/lib/firmware/*
pascal@210 93 sed -i 's|kernel.img|../&|' fs/boot/slitaz-*/config.txt
pascal@210 94 fi
pascal@192 95
pascal@192 96 # update base package
pascal@192 97 BASE=$(ls -d slitaz-rpi-base-*/rootfs)
pascal@210 98 [ ! -d "$BASE" ] && echo "Abort ($BASE) !" && exit 1
pascal@201 99 LIVE=$(ls -d slitaz-rpi-desktop-*/rootfs)
pascal@201 100 [ ! -d "$LIVE" ] && echo "Abort ($LIVE) !" && exit 1
pascal@201 101 LIVESZ=$(du -ks $LIVE | cut -f1)
pascal@192 102 wget http://hg.slitaz.org/slitaz-arm/raw-file/tip/rpi/piboot
pascal@196 103 wget http://hg.slitaz.org/slitaz-boot-scripts/raw-file/tip/init
pascal@196 104 chmod +x piboot init
pascal@192 105 mv piboot $BASE/sbin
pascal@199 106 sed -i 's|mnt /mnt|mnt "/mnt -o noatime"|' init
pascal@210 107 sed -i 's#.*remount,ro#grep -q "tmpfs /mnt tmpfs" /proc/mounts || &#' init
pascal@200 108 mknod -m 660 $BASE/dev/mmcblk0 b 179 0
pascal@210 109 for i in $(seq 1 5); do
pascal@210 110 mknod -m 660 $BASE/dev/mmcblk0p$i b 179 $i
pascal@210 111 done
pascal@210 112 grep /dev/pts $BASE/etc/fstab || cat >> $BASE/etc/fstab <<EOT
pascal@210 113 devpts /dev/pts devpts rw,gid=5,mode=0620 0 0
pascal@210 114 EOT
pascal@210 115
pascal@210 116 [ -s slitaz-rpi-base*/boot/kernel7.img ] ||
pascal@215 117 sed -i 's#.*d /proc/sys/dev/cdrom#grep -q subroot= /proc/cmdline || for d in /dev/mmc*p[2-9]; do\n\tumount /mnt\n\tmount -r $d /mnt \&\&\n\tcp -a /mnt/lib/firmware /lib/ \&\&\n\tcp -a /mnt/lib/modules/$(uname -r) /lib/modules/ \&\& break\n\tcp -a /mnt/shared/lib/firmware /lib/ \&\&\n\tcp -a /mnt/shared/lib/modules/$(uname -r) /lib/modules/ \&\& break\ndone 2> /dev/null\numount /mnt\n\n&#' init
pascal@210 118 mv init $BASE/rdinit
pascal@201 119 sed -i 's/.*mmcblk0p[2-9].*/# &/;s/noatime/noauto,&/' $BASE/etc/fstab $LIVE/etc/fstab
pascal@192 120 wget http://cook.slitaz.org/cross/arm/packages/packages.list
pascal@192 121 while read file pkg extra ; do
pascal@192 122 [ -s boot$file ] && continue
pascal@192 123 [ -n "$extra" ] && continue
pascal@192 124 pkg=$(grep ^$pkg- packages.list | sort | sed q).tazpkg
pascal@192 125 wget http://cook.slitaz.org/cross/arm/packages/$pkg
pascal@192 126 tazpkg install $pkg --root=$BASE/
pascal@192 127 done <<EOT
pascal@192 128 /usr/lib/libz.so zlib
pascal@192 129 /usr/sbin/kexec kexec-tools
pascal@192 130 /usr/bin/tset ncursesw
pascal@192 131 /usr/bin/dialog dialog
pascal@192 132 /usr/lib/libxml2.so libxml2 aria2
pascal@192 133 /usr/bin/gpg-error libgpg-error aria2
pascal@192 134 /usr/lib/libgcrypt.so libgcrypt aria2
pascal@192 135 /usr/lib/libgmp.so gmp aria2
pascal@192 136 /usr/lib/libnettle.so nettle aria2
pascal@192 137 /usr/lib/libreadline.so readline aria2
pascal@196 138 /usr/bin/p11-kit p11-kit aria2
pascal@192 139 /usr/lib/libgnutls.so libgnutls aria2
pascal@192 140 /usr/lib/libtasn1.so libtasn1 aria2
pascal@192 141 /usr/bin/gnutls-cli gnutls aria2
pascal@192 142 /usr/bin/aria2c aria2 aria2
pascal@192 143 EOT
pascal@192 144
pascal@210 145 echo "Deduplicate base & live"
pascal@192 146 ( cd $BASE/ ; find ! -type d ) | while read file; do
pascal@192 147 if [ -L $BASE/$file ]; then
pascal@192 148 [ -L $LIVE/$file ] &&
pascal@192 149 [ "$(readlink $BASE/$file)" == "$(readlink $LIVE/$file)" ] &&
pascal@192 150 rm -f $LIVE/$file
pascal@192 151 elif [ -f $BASE/$file ]; then
pascal@192 152 [ -f $LIVE/$file ] &&
pascal@192 153 cmp $BASE/$file $LIVE/$file > /dev/null 2>&1 &&
pascal@192 154 rm -f $LIVE/$file
pascal@192 155 elif [ -b $BASE/$file ]; then
pascal@192 156 [ -b $LIVE/$file ] &&
pascal@192 157 [ "$(stat -c '%a:%u:%g:%t:%T' $BASE/$file)" == \
pascal@192 158 "$(stat -c '%a:%u:%g:%t:%T' $LIVE/$file)" ] &&
pascal@192 159 rm -f $LIVE/$file
pascal@192 160 elif [ -c $BASE/$file ]; then
pascal@192 161 [ -c $LIVE/$file ] &&
pascal@192 162 [ "$(stat -c '%a:%u:%g:%t:%T' $BASE/$file)" == \
pascal@192 163 "$(stat -c '%a:%u:%g:%t:%T' $LIVE/$file)" ] &&
pascal@192 164 rm -f $LIVE/$file
pascal@192 165 fi
pascal@192 166 done
pascal@192 167 ( cd $BASE/ ; find -type d ) | while read dir; do
pascal@196 168 rmdir $LIVE/$dir 2> /dev/null
pascal@192 169 done
pascal@192 170
pascal@210 171 while read dir suffix ; do
pascal@210 172 echo "Build $suffix archive"
pascal@210 173 ( cd $dir ; find * | cpio -o -H newc ) | if [ -x /usr/bin/zopfli ]; then
pascal@210 174 cat > fs/boot/slitaz/rootfs-$suffix
pascal@210 175 zopfli fs/boot/slitaz/rootfs-$suffix
pascal@210 176 rm -f fs/boot/slitaz/rootfs-$suffix
pascal@210 177 else
pascal@210 178 gzip -9 > fs/boot/slitaz/rootfs-$suffix.gz
pascal@210 179 fi
pascal@210 180 [ -x /usr/bin/advdef ] && advdef -z4 fs/boot/slitaz/rootfs-$suffix.gz
pascal@210 181 r=$(($(stat -c %s fs/boot/slitaz/rootfs-$suffix.gz) % 4))
pascal@210 182 [ $r -eq 0 ] || dd if=/dev/zero bs=1 count=$((4 - $r)) \
pascal@210 183 >> fs/boot/slitaz/rootfs-$suffix.gz 2> /dev/null
pascal@210 184 done <<EOT
pascal@210 185 $BASE base
pascal@210 186 $LIVE live
pascal@210 187 EOT
pascal@206 188 }
pascal@192 189
pascal@206 190 mkpostinst()
pascal@206 191 {
pascal@206 192 cat <<EOT
pascal@210 193 RDEV=\$(sed 's/^\(\|.* \)root=\([^ ]*\).*/\2/' /boot/cmdline.txt)
pascal@198 194 FSTYPE=\$(awk '/ \/ / { if (\$1 != "rootfs") print \$3 }' < /proc/mounts)
pascal@196 195
pascal@200 196 echo "Extracting /$DESTDIR ..."
pascal@192 197 cd /$DESTDIR
pascal@192 198 zcat /boot/slitaz/rootfs-base.gz | cpio -idmu
pascal@198 199 zcat /boot/slitaz/rootfs-live.gz | cpio -idmu
pascal@210 200 EOT
pascal@210 201 [ -s slitaz-rpi-base*/boot/kernel7.img ] || cat <<EOT
pascal@210 202 echo "Get modules & firmwares ..."
pascal@210 203 cp -a /lib/modules /lib/firmware lib
pascal@210 204 EOT
pascal@210 205 cat <<EOT
pascal@206 206 if ! grep -qs $raspos etc/fstab ; then
pascal@200 207 echo "Update /$DESTDIR/etc/fstab ..."
pascal@206 208 mkdir -p mnt/$raspos
pascal@200 209 sed -i 's/noauto,//' etc/fstab
pascal@198 210 cat >> etc/fstab <<EOM
pascal@206 211 \$RDEV /mnt/$raspos \$FSTYPE noatime 0 0
pascal@206 212 tmpfs /mnt/$raspos/$DESTDIR tmpfs size=0 0 0
pascal@192 213 EOM
pascal@198 214 fi
pascal@201 215 cd - > /dev/null
pascal@192 216
pascal@210 217 if [ ! -f /boot/menu.txt ]; then
pascal@192 218
pascal@200 219 echo "Update /boot ..."
pascal@198 220 for i in keyboard locale ; do
pascal@198 221 [ -s /etc/default/\$i ] && . /etc/default/\$i
pascal@192 222 done
pascal@199 223 KMAP=\$(find /$DESTDIR/usr/share/kbd/keymaps | grep /\$XKBLAYOUT[.-] | head -n1)
pascal@199 224 [ "\$KMAP" ] && KMAP="kmap=\$(basename \$KMAP .map.gz)"
pascal@192 225 cat > /boot/menu.txt <<EOM
pascal@192 226 title=Raspberry PI boot menu
pascal@192 227 subtitle=Select the OS with ARROW keys and hit RETURN
pascal@210 228 timeout=10
pascal@206 229 default=$raspos
pascal@196 230 \$KMAP
pascal@192 231 edittitle=Edit menu
pascal@196 232 readonly
pascal@192 233 #noedit
pascal@196 234 #nowebboot
pascal@213 235 #webpath=http://my.home.web.site/pxe/rpi/index.php,http://or.this.one/rpi.txt
pascal@192 236 EOM
pascal@210 237 echo "entry=$menustr" > /boot/$raspos/menu.txt
pascal@198 238 KERNEL=\$(sed '/^kernel/!d;s/.*=//' /boot/config.txt)
pascal@206 239 cp /boot/config.txt /boot/cmdline.txt /boot/$raspos/
pascal@210 240 sed -i '/^initramfs/d' /boot/config.txt
pascal@210 241 echo "initramfs slitaz/rootfs-base.gz" >> /boot/config.txt
pascal@210 242 EOT
pascal@210 243 [ -s slitaz-rpi-base*/boot/kernel7.img ] && cat <<EOT
pascal@206 244 mv /boot/\${KERNEL:-kernel.img} /boot/$raspos/
pascal@210 245 sed -i '/^kernel/d' /boot/config.txt
pascal@192 246 echo "kernel=slitaz/kernel.img" >> /boot/config.txt
pascal@210 247 EOT
pascal@210 248 cat <<EOT
pascal@196 249 L=
pascal@210 250 for i in \$LANG \${LANG%.*} \${LANG%@*} \${LANG%_*} ; do
pascal@210 251 [ -s /$DESTDIR/usr/share/i18n/locales/\$i ] && L=lang=\$i
pascal@210 252 done
pascal@210 253 TZ=\$(cat /etc/timezone 2> /dev/null || true)
pascal@210 254 X="\$L \$KMAP \${TZ:+tz=\$TZ} quiet"
pascal@210 255 echo "\$(cat /boot/cmdline.txt) \$X rdinit=/sbin/piboot" > /boot/cmdline.txt
pascal@210 256 echo "root=/dev/null \$X rdinit=/rdinit mount=\$RDEV subroot=$DESTDIR rootwait" > /boot/slitaz/cmdline.txt
pascal@210 257 echo "root=/dev/null \$X" > /boot/slitaz-base/cmdline.txt
pascal@192 258 cp /boot/slitaz-base/cmdline.txt /boot/slitaz-live/cmdline.txt
pascal@207 259 echo "The SliTaz boot menu is available for the next (re)boot."
pascal@192 260
pascal@192 261 fi
pascal@206 262 EOT
pascal@206 263 }
pascal@206 264
pascal@206 265 mkpurge()
pascal@206 266 {
pascal@206 267 cat <<EOT
pascal@206 268 echo "Remove /$DESTDIR & /boot/slitaz* trees..."
pascal@206 269 rm -rf /$DESTDIR /boot/slitaz*
pascal@206 270 EOT
pascal@206 271 }
pascal@206 272
pascal@206 273 mkdisable()
pascal@206 274 {
pascal@206 275 cat <<EOT
pascal@206 276 if [ -d /boot/$raspos ]; then
pascal@206 277 echo "Restore $raspos boot files..."
pascal@206 278 rm -f /boot/$raspos/menu.txt
pascal@206 279 mv -f /boot/$raspos/* /boot
pascal@210 280 rmdir /boot/$raspos
pascal@206 281 fi
pascal@206 282 rm -f /boot/menu.txt /boot/slitaz*/cmdline.txt
pascal@206 283 EOT
pascal@206 284 }
pascal@206 285
pascal@206 286 pkgdebian()
pascal@206 287 {
pascal@206 288 # Create raspbian package
pascal@206 289 echo "2.0" > debian-binary
pascal@206 290 cat > control <<EOT
pascal@206 291 Package: slitaz
pascal@210 292 Version: $VERSION-$REVISION
pascal@206 293 Architecture: armhf
pascal@206 294 Maintainer: $MAINTAINER
pascal@206 295 Installed-Size: $(($(du -ks fs | cut -f1) + $LIVESZ))
pascal@206 296 Section: miscellaneous
pascal@206 297 Priority: optional
pascal@206 298 Homepage: $WEB_SITE
pascal@206 299 Description: $DESCRIPTION
pascal@210 300 $(echo -e $LONG_DESCRIPTION | sed 's/^/ /')
pascal@206 301 EOT
pascal@206 302 ( cd fs ; find * -type f -exec md5sum {} \; ) > md5sums
pascal@206 303 cat > postinst <<EOT
pascal@206 304 #!/bin/sh
pascal@206 305
pascal@206 306 set -e
pascal@206 307
pascal@206 308 $(mkpostinst)
pascal@196 309
pascal@192 310 exit 0
pascal@192 311 EOT
pascal@206 312 cat > prerm <<EOT
pascal@192 313 #!/bin/sh
pascal@192 314
pascal@192 315 purge()
pascal@192 316 {
pascal@206 317 $(mkpurge)
pascal@192 318 }
pascal@192 319
pascal@192 320 disable()
pascal@192 321 {
pascal@206 322 $(mkdisable)
pascal@192 323 }
pascal@192 324
pascal@192 325 case "\$1" in
pascal@192 326 purge)
pascal@192 327 disable
pascal@192 328 purge
pascal@192 329 ;;
pascal@192 330 remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
pascal@192 331 disable
pascal@192 332 ;;
pascal@192 333 *)
pascal@201 334 echo "prerm called with unknown argument \\\`\$1'" >&2
pascal@192 335 exit 0
pascal@192 336 esac
pascal@192 337 EOT
pascal@206 338 chmod +x postinst prerm
pascal@206 339 tar czf control.tar.gz md5sums control postinst prerm
pascal@206 340 rm -rf fs/$DESTDIR/*
pascal@206 341 cd fs ; tar czf ../data.tar.gz . ; cd ..
pascal@210 342 ar rcs slitaz-$VERSION-${REVISION}_armhf.deb debian-binary control.tar.gz data.tar.gz
pascal@210 343 mv slitaz-$VERSION-${REVISION}_armhf.deb $CURDIR
pascal@206 344 cd $CURDIR
pascal@206 345 rm -rf $TMPDIR
pascal@210 346 ls -l slitaz-$VERSION-${REVISION}_armhf.deb
pascal@206 347 }
pascal@206 348
pascal@206 349 mkmtree()
pascal@206 350 {
pascal@206 351 echo "#mtree"
pascal@206 352 echo "/set type=file uid=0 gid=0 mode=644"
pascal@206 353 find .??* * | while read file; do
pascal@206 354 echo -n "$file $(stat -c "time=%Y.000000" "$file")"
pascal@206 355 n="$(stat -c "%a" "$file")"; [ "$n" == "644" ] || echo -n " mode=$n"
pascal@206 356 n="$(stat -c "%u" "$file")"; [ "$n" == "0" ] || echo -n " uid=$n"
pascal@206 357 n="$(stat -c "%g" "$file")"; [ "$n" == "0" ] || echo -n " gid=$n"
pascal@206 358 if [ -f "$file" ]; then
pascal@206 359 echo -n " $(stat -c "size=%s" "$file")"
pascal@206 360 echo -n " md5digest=$(md5sum "$file" | sed 's/ .*//')"
pascal@206 361 echo -n " sha256digest=$(sha256sum "$file" | sed 's/ .*//')"
pascal@206 362 fi
pascal@206 363 [ -d "$file" ] && echo -n " type=dir"
pascal@206 364 echo ""
pascal@206 365 done
pascal@206 366 }
pascal@206 367
pascal@206 368 pkgarch()
pascal@206 369 {
pascal@206 370 cd fs
pascal@210 371 VERSION=$VERSION-$REVISION
pascal@206 372 # Create arch package
pascal@206 373 cat > .PKGINFO <<EOT
pascal@206 374 pkgname = slitaz
pascal@206 375 pkgver = $VERSION
pascal@206 376 pkgdesc = $DESCRIPTION
pascal@206 377 url = $WEB_SITE
pascal@206 378 builddate = $(date +%s)
pascal@206 379 packager = $MAINTAINER
pascal@206 380 size = $(du -s . | awk "{ print \$1*1024+$LIVESZ }")
pascal@206 381 arch = armv6h
pascal@213 382 license = $LICENSE
pascal@206 383 EOT
pascal@206 384 cat > .INSTALL <<EOT
pascal@206 385 post_install() {
pascal@206 386 $(mkpostinst)
pascal@206 387 }
pascal@206 388
pascal@206 389 post_remove() {
pascal@206 390 $(mkdisable)
pascal@206 391 $(mkpurge)
pascal@206 392 }
pascal@206 393 EOT
pascal@206 394 mkmtree | gzip -9 > ../.MTREE
pascal@206 395 mv ../.MTREE .
pascal@206 396 tar cvzf ../slitaz-$VERSION-armv6h.pkg.tar.gz .??* *
pascal@206 397 mv ../slitaz-$VERSION-armv6h.pkg.tar.gz $CURDIR
pascal@206 398 cd $CURDIR
pascal@206 399 rm -rf $TMPDIR
pascal@206 400 ls -l slitaz-$VERSION-armv6h.pkg.tar.gz
pascal@206 401 }
pascal@206 402
pascal@213 403 pkgrpm()
pascal@213 404 {
pascal@213 405 cat > rpm.spec <<EOT
pascal@213 406 %define desktop_vendor newrpms
pascal@213 407 %{!?_dist: %{expand: %%define dist rhfc14}}
pascal@213 408
pascal@213 409 Name: slitaz
pascal@213 410 Version: $VERSION
pascal@213 411 Release: $REVISION
pascal@213 412 Summary: $DESCRIPTION
pascal@213 413 License: $LICENSE
pascal@213 414 Group: System Environment/Boot loader
pascal@213 415 URL: $WEB_SITE
pascal@213 416 Source0: $WGET_URL
pascal@213 417 ExclusiveArch: arm
pascal@213 418 Distribution: $raspos
pascal@213 419 Packager: $MAINTAINER
pascal@213 420 BuildRoot: $PWD/fs
pascal@213 421
pascal@213 422 %description
pascal@213 423 $(echo -e "$LONG_DESCRIPTION")
pascal@213 424
pascal@213 425 %post
pascal@213 426 $(mkpostinst)
pascal@213 427
pascal@213 428 %postun
pascal@213 429 $(mkdisable)
pascal@213 430 $(mkpurge)
pascal@213 431
pascal@213 432 %files
pascal@213 433
pascal@213 434 %defattr(0755, root, root)
pascal@213 435 /boot
pascal@213 436 /var/os/slitaz
pascal@213 437 EOT
pascal@213 438 rpmbuild -bb --target=arm --buildroot=$PWD/fs rpm.spec
pascal@214 439 mv ~/rpmbuild/RPMS/arm/slitaz-$VERSION-$REVISION.arm.rpm $CURDIR
pascal@213 440 cd $CURDIR
pascal@213 441 rm -rf $TMPDIR
pascal@214 442 ls -l slitaz-$VERSION-$REVISION.arm.rpm
pascal@213 443
pascal@213 444 }
pascal@213 445
pascal@206 446 case "$(basename $0)" in
pascal@206 447 tazarch)
pascal@206 448 raspos=archarm
pascal@210 449 menustr="Arch Linux ARM \$(uname -r)"
pascal@206 450 buildfs
pascal@206 451 pkgarch
pascal@206 452 ;;
pascal@213 453 tazrpm)
pascal@213 454 [ -x /usr/bin/rpmbuild ] || tazpkg get-install rpm4
pascal@213 455 [ -e /usr/share/misc/magic.mgc ] || tazpkg get-install file
pascal@213 456 raspos=pidora
pascal@213 457 menustr="\$(cat /etc/pidora-release)"
pascal@213 458 buildfs
pascal@213 459 pkgrpm
pascal@213 460 ;;
pascal@206 461 *)
pascal@206 462 [ -x /usr/bin/ar -o -x /bin/ar ] || tazpkg get-install binutils
pascal@206 463 raspos=raspbian
pascal@210 464 menustr="Raspbian \$(cat /etc/debian_version)"
pascal@206 465 buildfs
pascal@206 466 pkgdebian
pascal@206 467 ;;
pascal@206 468 esac