wok-current view busybox/receipt @ rev 19277
get-vivaldi: update deps
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Jul 05 17:03:57 2016 +0200 (2016-07-05) |
parents | 7f188676b59c |
children | 55af80781843 |
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
72 mv docs/busybox.1 docs/busybox.base.1
74 # prepare busybox-pam package
75 sed -i 's/# CONFIG_PAM is not set/CONFIG_PAM=y/' .config
76 make oldconfig && make || return 1
77 strip --strip-unneeded -R .eh_frame -R .eh_frame_hdr busybox
78 mv busybox busybox-pam
79 mv docs/busybox.1 docs/busybox.pam.1
81 # prepare busybox-static package
82 if [ -x /usr/bin/uclibc-i486-gcc ]; then
83 cp $stuff/$PACKAGE-${VERSION%.*}.config-static .config
84 make oldconfig && make || return 1
85 cp busybox busybox-static
86 mv busybox busybox-uclibc
87 mv -f docs/busybox.1 docs/busybox.static.1
88 fi
90 if [ -x /usr/bin/musl-gcc ]; then
91 # prepare busybox-musl package
92 cp $stuff/$PACKAGE-${VERSION%.*}.config-static .config
93 sed -i 's|uclibc-i486-||' .config
94 make oldconfig && make CC=musl-gcc || return 1
95 mv busybox busybox-musl
96 mv -f docs/busybox.1 docs/busybox.static.1
97 fi
99 if [ -x /usr/lib/diet/bin/diet ]; then
100 # prepare busybox-diet package
101 cp $stuff/$PACKAGE-${VERSION%.*}.config-static .config
102 sed -i 's|uclibc-i486-||;s|CFLAGS="|&-D_BSD_SOURCE |;s|LDFLAGS="|&-Wl,--allow-multiple-definition |;s|LDLIBS="|&compat rpc |' .config
103 make oldconfig && make CC="/usr/lib/diet/bin/diet gcc" || return 1
104 mv busybox busybox-diet
105 mv -f docs/busybox.1 docs/busybox.static.1
106 fi
108 # prepare ssfs-busybox package
109 rootfs=$src/ssfs-busybox/usr/share/ssfs/rootfs
110 mkdir -p $rootfs/etc
111 cp $stuff/$PACKAGE-${VERSION%.*}.config-ssfs .config
112 make oldconfig && make busybox &&
113 make CONFIG_PREFIX=$rootfs install || return 1
114 cp $stuff/busybox.conf-ssfs $rootfs/etc/busybox.conf
115 chown -R 0.0 $rootfs/etc
116 chmod 0600 $rootfs/etc/busybox.conf
117 chmod 4755 $rootfs/bin/busybox
119 # Compile translations
120 make -C $stuff/po install
121 cp docs/busybox.base.1 docs/busybox.1
123 ;;
125 esac
126 }
128 # Cross compilation check.
129 testsuite()
130 {
131 readelf -h $src/_install/bin/busybox
132 }
134 # Rules to gen a SliTaz package suitable for Tazpkg.
135 genpkg_rules()
136 {
137 cp -a $src/_install/* $fs
138 [ -e $fs/sbin/ip ] && ln -s busybox $fs/bin/ip
139 rm -f $fs/bin/bbconfig $fs/usr/bin/ar
140 mkdir -p $fs/etc/init.d $fs/var/spool/cron/crontabs $fs/var/spool/lpd \
141 $fs/var/lib/misc
143 # Busybox config files.
144 for f in busybox.conf dnsd.conf udhcpd.conf inetd.conf httpd.conf \
145 syslog.conf zcip.script
146 do
147 cp $stuff/$f $fs/etc
148 done
149 chown -R 0.0 $fs/etc
150 chmod 600 $fs/etc/busybox.conf
151 touch $fs/etc/resolv.conf
153 # Daemon scripts.
154 cp $stuff/daemon $fs/etc/init.d
155 DAEMON="crond dnsd ftpd httpd inetd lpd klogd ntpd syslogd telnetd tftpd udhcpd zcip"
156 for i in $DAEMON; do
157 grep -qi config_$i=y $stuff/$PACKAGE-${VERSION%.*}.config &&
158 ln -s daemon $fs/etc/init.d/$i
159 done
160 rm $fs/linuxrc
161 mkdir -p $fs/etc/modprobe.d
163 # Udhcpc stuff.
164 mkdir -p $fs/usr/share/udhcpc
165 cp $stuff/udhcp.script $fs/usr/share/udhcpc/default.script
166 chmod +x $fs/usr/share/udhcpc/default.script
168 # Httpd stuff.
169 ln -s /usr/lib/slitaz/httphelper.sh $fs/usr/bin/httpd_helper.sh
170 cp -a $stuff/www $fs/var
172 # Update copyright year
173 grep -rl 'copy; 2' $fs/var/www | xargs \
174 sed -i "s/copy; [0-9]*/copy; $(date +%Y)/"
176 # Remove kmod & core-util-mount links
177 while read link; do
178 rm -f $fs$link
179 done <<EOT
180 /bin/mount
181 /bin/mountpoint
182 /bin/umount
183 /sbin/depmod
184 /sbin/insmod
185 /sbin/modinfo
186 /sbin/modprobe
187 /sbin/rmmod
188 EOT
189 }
191 # GNU utils stuff.
192 pre_install()
193 {
194 local i
195 [ -s $1/etc/resolv.conf ] &&
196 cp -a $1/etc/resolv.conf $1/etc/resolv.conf-busybox-install
197 answer=""
198 for i in $(cat "$1$INSTALLED/$PACKAGE/files.list"); do
199 [ -f "$1$i" ] || continue
200 case "$i" in
201 /bin/busybox) continue ;;
202 *bin/*) ;;
203 *) continue ;;
204 esac
205 if [ -z "$answer" ]; then
206 echo -n "Keep installed GNU utilities ? "
207 read -t 30 answer # by default: keep
208 case "$answer" in
209 n*|N*) break;;
210 *) answer="Y";;
211 esac
212 fi
213 cp -a "$1$i" "$1$i-busybox-install"
214 done
215 }
217 post_install()
218 {
219 local i
220 [ -f $1/etc/resolv.conf-busybox-install ] &&
221 mv -f $1/etc/resolv.conf-busybox-install $1/etc/resolv.conf
222 while read i ; do
223 [ -f "$1$i-busybox-install" ] || continue
224 mv "$1$i-busybox-install" "$1$i"
225 done < "$1$INSTALLED/$PACKAGE/files.list"
226 chmod 4755 "$1/bin/busybox"
228 touch $1/etc/daemons.conf
229 # /etc/daemons.conf (tftp + dnsd + httpd may not be present)
230 if ! grep -q ^DNSD_OPTIONS $1/etc/daemons.conf; then
231 echo '# Domain name server options.' >> $1/etc/daemons.conf
232 echo 'DNSD_OPTIONS="-d"' >> $1/etc/daemons.conf
233 echo '' >> $1/etc/daemons.conf
234 fi
235 if ! grep -q ^TFTPD_OPTIONS $1/etc/daemons.conf; then
236 echo '# Tftp daemon options.' >> $1/etc/daemons.conf
237 echo 'TFTPD_OPTIONS="-r /boot"' >> $1/etc/daemons.conf
238 echo '' >> $1/etc/daemons.conf
239 fi
240 sed -i "s/copy; 20../copy; $(date +%Y)/" $1/var/www/httpd/404.html
241 }
243 pre_remove()
244 {
245 # We can not remove this package !
246 exit 1
247 }