wok view busybox-boot/receipt @ rev 13879

busybox-boot: add mount=, loopfs= & subroot= cmdline args
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Jan 17 13:39:49 2013 +0100 (2013-01-17)
parents 4aed2b24febc
children ac41646beaa9
line source
1 # SliTaz package receipt.
3 PACKAGE="busybox-boot"
4 VERSION="1.20.2"
5 CATEGORY="base-system"
6 SHORT_DESC="Many common UNIX utilities for core-5in1/boot flavor."
7 MAINTAINER="pascal.bellard@slitaz.org"
8 DEPENDS="linux syslinux"
9 WANTED="busybox"
10 WEB_SITE="http://www.busybox.net/"
11 CONFIG_FILES=""
13 # Rules to gen a SliTaz package suitable for Tazpkg.
14 genpkg_rules()
15 {
16 jslinux=false
17 mkdir -p $fs/bin $fs/sbin $fs/dev/pts $fs/proc $fs/sys $fs/tmp $fs/mnt
18 cp -a $src/busybox-static $fs/bin/busybox
19 mknod -m 660 $fs/dev/console c 5 1
20 mknod -m 771 $fs/dev/null c 1 3
21 mknod -m 660 $fs/dev/tty c 5 0
22 mknod -m 660 $fs/dev/loop0 b 7 0
23 mknod -m 660 $fs/dev/loop1 b 7 1
24 while read name major minor ; do
25 for i in '' 1 2 3 4 5 6 7 8 9 ; do
26 mknod -m 644 $fs/dev/$name$i b $major $(($i + $minor))
27 done
28 done <<EOT
29 hda 3 0
30 hdb 3 64
31 sda 8 0
32 sdb 8 16
33 EOT
34 if $jslinux; then
35 mknod -m 644 $fs/dev/clipboard c 10 231
36 mknod -m 660 $fs/dev/ttyS0 c 4 64
37 fi
38 mknod -m 660 $fs/dev/tty1 c 4 1
39 cat > $fs/init <<EOT
40 #!/bin/busybox sh
42 for i in \$(busybox --list) ; do busybox ln /bin/busybox /bin/\$i; done
44 export PATH=/bin
45 export HOME=/
46 export TERM=vt100
48 mount -t proc none /proc
50 arg()
51 {
52 grep -q $1= /proc/cmdline && root="$(sed "s/.*$1=\([^ ]*\).*/\1/" </proc/cmdline)"
53 }
55 arg mount && mount $root /mnt
56 arg loopfs && losetup /dev/loop0 /mnt/$root && mount /dev/loop0 /mnt
57 arg subroot && cp /bin/chroot /mnt/$root/dev/shm &&
58 exec switch_root mnt $root/dev/shm/chroot $root /sbin/init
60 [ -d /proc/bus/usb ] && mount -t usbfs usbfs /proc/bus/usb
61 mount -t sysfs none /sys
62 mount -t devpts none /dev/pts
64 TTY=\$(tty 2>/dev/null)
65 TTY=\${TTY:-/dev/tty1}
66 EOT
67 $jslinux && cat >> $fs/init <<EOT
68 stty -F \$TTY rows 30 2>/dev/null
69 EOT
70 cat >> $fs/init <<EOT
72 busybox | sed '/Current/,\$!d'
73 while true; do
74 if [ -x /bin/setsid ]; then
75 setsid sh -c "exec sh <\$TTY >\$TTY 2>&1"
76 else
77 sh <\$TTY >\$TTY 2>&1
78 fi
79 done
80 EOT
81 chmod +x $fs/init
82 ln $fs/init $fs/sbin/init
83 }
85 pre_install()
86 {
87 rm -rf $1/bin $1/sbin
88 }
90 post_install()
91 {
92 rm -rf $1/lib $1/var $1/sbin $1/home $1/root $1/media
93 }