wok-6.x view busybox/receipt @ rev 18484
Up tazpkg-test(846)
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Oct 09 13:15:59 2015 +0300 (2015-10-09) |
parents | 23ecc4e2565b |
children | 57ce4a5c6e0f |
line source
1 # SliTaz package receipt.
3 PACKAGE="busybox"
4 VERSION="1.23.2"
5 CATEGORY="base-system"
6 SHORT_DESC="Busybox combines tiny versions of many common UNIX utilities."
7 MAINTAINER="pascal.bellard@slitaz.org"
8 LICENSE="GPL2"
9 TARBALL="$PACKAGE-$VERSION.tar.bz2"
10 WEB_SITE="http://www.busybox.net/"
11 WGET_URL="http://www.busybox.net/downloads/$TARBALL"
12 HOST_ARCH="i486 arm"
14 DEPENDS="slitaz-base-files glibc-base ncurses-common"
15 BUILD_DEPENDS="bzip2 pam pam-dev uclibc-cross-compiler-i486 \
16 musl-libc-dev dietlibc"
18 CONFIG_FILES="/etc/dnsd.conf /etc/inetd.conf /etc/udhcpd.conf \
19 /etc/resolv.conf /etc/httpd.conf"
20 AUFS_NOT_RAMFS="uclibc-cross-compiler-i486 is not compatible with aufs+tmpfs 8("
22 # Handle cross compilation
23 case "$ARCH" in
24 arm*) BUILD_DEPENDS="bzip2" ;;
25 esac
27 # Busybox patches
28 apply_bb_patchs()
29 {
30 while read file; do
31 [ -f done.$file ] && continue
32 echo "Apply $file..."
33 patch -p1 < $stuff/$PACKAGE-${VERSION%.*}-$file || return 1
34 touch done.$file
35 done <<EOT
36 tar.u
37 stat.u
38 ris.u
39 zmodules.u
40 printable.u
41 cmdline.u
42 diff.u
43 diet.u
44 losetup.u
45 fbvnc.u
46 cpio.u
47 ftpd.u
48 dpkgxz.u
49 shutdown.u
50 EOT
51 cp $stuff/$PACKAGE-${VERSION%.*}.config .config
52 }
54 # Rules to configure and make the package.
55 compile_rules()
56 {
57 case "$ARCH" in
58 arm*)
59 echo "cook: CROSS_COMPILE=$CROSS_COMPILE"
60 apply_bb_patchs &&
61 cp $stuff/arm/$PACKAGE.config .config
62 make oldconfig &&
63 make && make install || return 1
64 chmod 4755 $src/_install/bin/busybox ;;
65 x86_64) echo "TODO" ;;
66 i?86)
67 apply_bb_patchs &&
68 make oldconfig &&
69 make && make install || return 1
70 strip --strip-unneeded -R .eh_frame -R .eh_frame_hdr \
71 $src/_install/bin/busybox
73 # prepare busybox-pam package
74 sed -i 's/# CONFIG_PAM is not set/CONFIG_PAM=y/' .config
75 make oldconfig && make || return 1
76 strip --strip-unneeded -R .eh_frame -R .eh_frame_hdr busybox
77 mv busybox busybox-pam
79 # prepare busybox-static package
80 if [ -x /usr/bin/uclibc-i486-gcc ]; then
81 cp $stuff/$PACKAGE-${VERSION%.*}.config-static .config
82 make oldconfig && make || return 1
83 cp busybox busybox-static
84 mv busybox busybox-uclibc
85 fi
87 if [ -x /usr/bin/musl-gcc ]; then
88 # prepare busybox-musl package
89 cp $stuff/$PACKAGE-${VERSION%.*}.config-static .config
90 sed -i 's|uclibc-i486-||' .config
91 make oldconfig && make CC=musl-gcc || return 1
92 mv busybox busybox-musl
93 fi
95 if [ -x /usr/lib/diet/bin/diet ]; then
96 # prepare busybox-diet package
97 cp $stuff/$PACKAGE-${VERSION%.*}.config-static .config
98 sed -i 's|uclibc-i486-||;s|CFLAGS="|&-D_BSD_SOURCE |;s|LDFLAGS="|&-Wl,--allow-multiple-definition |;s|LDLIBS="|&compat rpc |' .config
99 make oldconfig && make CC="/usr/lib/diet/bin/diet gcc" || return 1
100 mv busybox busybox-diet
101 fi
103 # prepare ssfs-busybox package
104 rootfs=$src/ssfs-busybox/usr/share/ssfs/rootfs
105 mkdir -p $rootfs/etc
106 cp $stuff/$PACKAGE-${VERSION%.*}.config-ssfs .config
107 make oldconfig && make busybox &&
108 make CONFIG_PREFIX=$rootfs install || return 1
109 cp $stuff/busybox.conf-ssfs $rootfs/etc/busybox.conf
110 chown -R 0.0 $rootfs/etc
111 chmod 0600 $rootfs/etc/busybox.conf
112 chmod 4755 $rootfs/bin/busybox ;;
113 esac
114 }
116 # Cross compilation check.
117 testsuite()
118 {
119 readelf -h $src/_install/bin/busybox
120 }
122 # Rules to gen a SliTaz package suitable for Tazpkg.
123 genpkg_rules()
124 {
125 cp -a $src/_install/* $fs
126 [ -e $fs/sbin/ip ] && ln -s busybox $fs/bin/ip
127 rm -f $fs/bin/bbconfig $fs/usr/bin/ar
128 mkdir -p $fs/etc/init.d $fs/var/spool/cron/crontabs $fs/var/spool/lpd
130 # Busybox config files.
131 for f in busybox.conf dnsd.conf udhcpd.conf inetd.conf httpd.conf \
132 syslog.conf zcip.script
133 do
134 cp $stuff/$f $fs/etc
135 done
136 chown -R 0.0 $fs/etc
137 chmod 600 $fs/etc/busybox.conf
138 touch $fs/etc/resolv.conf
140 # Daemon scripts.
141 cp $stuff/daemon $fs/etc/init.d
142 DAEMON="crond dnsd ftpd httpd inetd lpd klogd ntpd syslogd telnetd tftpd udhcpd zcip"
143 for i in $DAEMON; do
144 grep -qi config_$i=y $stuff/$PACKAGE-${VERSION%.*}.config &&
145 ln -s daemon $fs/etc/init.d/$i
146 done
147 rm $fs/linuxrc
148 mkdir -p $fs/etc/modprobe.d
150 # Udhcpc stuff.
151 mkdir -p $fs/usr/share/udhcpc
152 cp $stuff/udhcp.script $fs/usr/share/udhcpc/default.script
153 chmod +x $fs/usr/share/udhcpc/default.script
155 # Httpd stuff.
156 ln -s /usr/lib/slitaz/httphelper.sh $fs/usr/bin/httpd_helper.sh
157 cp -a $stuff/www $fs/var
159 # Update copyright year
160 grep -rl 'copy; 2' $fs/var/www | xargs \
161 sed -i "s/copy; [0-9]*/copy; $(date +%Y)/"
162 }
164 # GNU utils stuff.
165 pre_install()
166 {
167 local i
168 cp -a /etc/resolv.conf /etc/resolv.conf-busybox-install
169 answer=""
170 for i in $(cat $1$INSTALLED/$PACKAGE/files.list); do
171 [ -f $1$i ] || continue
172 case "$i" in
173 /bin/busybox) continue ;;
174 *bin/*) ;;
175 *) continue ;;
176 esac
177 if [ -z "$answer" ]; then
178 echo -n "Keep installed GNU utilities ? "
179 read -t 30 answer # by default: keep
180 case "$answer" in
181 n*|N*) break;;
182 *) answer="Y";;
183 esac
184 fi
185 cp -a $1$i $1$i-busybox-install
186 done
187 }
189 post_install()
190 {
191 local i
192 [ -f /etc/resolv.conf-busybox-install ] &&
193 mv -f /etc/resolv.conf-busybox-install /etc/resolv.conf
194 while read i ; do
195 [ -f $1$i-busybox-install ] || continue
196 mv $1$i-busybox-install $1$i
197 done < $1$INSTALLED/$PACKAGE/files.list
198 chmod 4755 $1/bin/busybox
200 # /etc/daemons.conf (tftp + dnsd + httpd may not be present)
201 if ! grep -q ^DNSD_OPTIONS $root/etc/daemons.conf; then
202 echo '# Domain name server options.' >> $root/etc/daemons.conf
203 echo 'DNSD_OPTIONS="-d"' >> $root/etc/daemons.conf
204 echo '' >> $root/etc/daemons.conf
205 fi
206 if ! grep -q ^TFTPD_OPTIONS $root/etc/daemons.conf; then
207 echo '# Tftp daemon options.' >> $root/etc/daemons.conf
208 echo 'TFTPD_OPTIONS="-r /boot"' >> $root/etc/daemons.conf
209 echo '' >> $root/etc/daemons.conf
210 fi
211 sed -i "s/copy; 20../copy; $(date +%Y)/" $root/var/www/httpd/404.html
212 }
214 pre_remove()
215 {
216 # We can not remove this package !
217 exit 1
218 }