wok-next annotate busybox/receipt @ rev 19941
gst0-ffmpeg*: tiny patch
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Oct 15 19:06:21 2017 +0200 (2017-10-15) |
parents | d6dd7b81a69c |
children | 0e7893ac206d |
rev | line source |
---|---|
al@19875 | 1 # SliTaz package receipt v2. |
pankso@0 | 2 |
pankso@0 | 3 PACKAGE="busybox" |
al@19875 | 4 VERSION="1.27.2" |
pankso@0 | 5 CATEGORY="base-system" |
al@19875 | 6 SHORT_DESC="Tiny versions of UNIX utilities" |
pankso@289 | 7 MAINTAINER="pascal.bellard@slitaz.org" |
pascal@14657 | 8 LICENSE="GPL2" |
al@19596 | 9 WEB_SITE="https://busybox.net/" |
pankso@12772 | 10 HOST_ARCH="i486 arm" |
pankso@0 | 11 |
al@19596 | 12 TARBALL="$PACKAGE-$VERSION.tar.bz2" |
al@19596 | 13 WGET_URL="${WEB_SITE}downloads/$TARBALL" |
al@19596 | 14 |
al@19875 | 15 BUILD_DEPENDS_arm="bzip2" |
al@19875 | 16 BUILD_DEPENDS="patch bzip2 gettext perl pam-dev" # uclibc-cross-compiler-i486 musl-libc-dev dietlibc |
al@19875 | 17 #SPLIT="busybox-boot busybox-pam busybox-static ssfs-busybox" |
al@19875 | 18 SPLIT="busybox-pam ssfs-busybox" |
pascal@8237 | 19 |
pankso@0 | 20 # Rules to configure and make the package. |
al@19875 | 21 compile_rules() { |
pankso@12755 | 22 case "$ARCH" in |
pankso@16528 | 23 arm*) |
pankso@12755 | 24 echo "cook: CROSS_COMPILE=$CROSS_COMPILE" |
pankso@12926 | 25 cp $stuff/arm/$PACKAGE.config .config |
pankso@12926 | 26 make oldconfig && |
pankso@12926 | 27 make && make install || return 1 |
al@19596 | 28 chmod 4755 $src/_install/bin/busybox |
al@19596 | 29 ;; |
al@19596 | 30 x86_64) |
al@19596 | 31 echo "TODO" |
al@19596 | 32 ;; |
pankso@12755 | 33 i?86) |
al@19596 | 34 echo 'Making busybox' |
al@19875 | 35 cp $stuff/.config $src && |
pankso@12926 | 36 make oldconfig && |
al@19875 | 37 make && |
al@19875 | 38 make install || return 1 |
al@19596 | 39 strip --strip-unneeded -R .eh_frame -R .eh_frame_hdr \ |
pankso@12755 | 40 $src/_install/bin/busybox |
al@19626 | 41 mv docs/busybox.1 docs/busybox.base.1 |
al@19626 | 42 |
al@19626 | 43 # prepare busybox-pam package |
al@19875 | 44 echo 'Making busybox-pam' |
al@19875 | 45 sed -i 's|# CONFIG_PAM is not set|CONFIG_PAM=y|' $src/.config |
al@19875 | 46 make oldconfig && |
al@19875 | 47 make || return 1 |
al@19626 | 48 strip --strip-unneeded -R .eh_frame -R .eh_frame_hdr busybox |
al@19626 | 49 mv busybox busybox-pam |
al@19626 | 50 mv docs/busybox.1 docs/busybox.pam.1 |
al@19626 | 51 |
al@19626 | 52 # prepare busybox-static package |
pascal@19631 | 53 if [ -n "$(/usr/bin/uclibc-i486-gcc --version 2>/dev/null)" ]; then |
al@19875 | 54 echo 'Making busybox-uclibc' |
al@19875 | 55 cp $stuff/.config-static $src/.config |
al@19875 | 56 sed -i 's|# CONFIG_ASH_INTERNAL_GLOB is not set|CONFIG_ASH_INTERNAL_GLOB=y|' $src/.config |
al@19875 | 57 make oldconfig && |
al@19875 | 58 make || return 1 |
al@19626 | 59 cp busybox busybox-static |
al@19626 | 60 mv busybox busybox-uclibc |
al@19626 | 61 mv -f docs/busybox.1 docs/busybox.static.1 |
al@19626 | 62 fi |
al@19626 | 63 |
al@19875 | 64 if [ -x '/usr/bin/musl-gcc' ]; then |
al@19875 | 65 echo 'Making busybox-musl' |
al@19626 | 66 # prepare busybox-musl package |
al@19875 | 67 cp $stuff/.config-static $src/.config |
al@19875 | 68 sed -i 's|uclibc-i486-||' $src/.config |
al@19875 | 69 make oldconfig && |
al@19875 | 70 make CC=musl-gcc || return 1 |
al@19626 | 71 mv busybox busybox-musl |
al@19626 | 72 mv -f docs/busybox.1 docs/busybox.static.1 |
al@19626 | 73 fi |
al@19626 | 74 |
al@19875 | 75 if [ -x '/usr/lib/diet/bin/diet' ]; then |
al@19875 | 76 echo 'Making busybox-diet' |
al@19626 | 77 # prepare busybox-diet package |
al@19875 | 78 cp $stuff/.config-static $src/.config |
al@19875 | 79 sed -i 's|uclibc-i486-||; |
al@19875 | 80 s|CFLAGS="|&-D_BSD_SOURCE |; |
al@19875 | 81 s|LDFLAGS="|&-Wl,--allow-multiple-definition |; |
al@19875 | 82 s|LDLIBS="|&compat rpc |' $src/.config |
al@19875 | 83 make oldconfig && |
al@19875 | 84 make CC="/usr/lib/diet/bin/diet gcc" || return 1 |
al@19626 | 85 mv busybox busybox-diet |
al@19626 | 86 mv -f docs/busybox.1 docs/busybox.static.1 |
al@19626 | 87 fi |
al@19626 | 88 |
al@19626 | 89 # prepare ssfs-busybox package |
al@19875 | 90 echo 'Making busybox-ssfs' |
al@19875 | 91 rootfs="$src/ssfs-busybox/usr/share/ssfs/rootfs" |
al@19626 | 92 mkdir -p $rootfs/etc |
al@19875 | 93 cp $stuff/.config-ssfs $src/.config |
al@19875 | 94 make oldconfig && |
al@19875 | 95 make busybox && |
al@19626 | 96 make CONFIG_PREFIX=$rootfs install || return 1 |
al@19626 | 97 cp $stuff/busybox.conf-ssfs $rootfs/etc/busybox.conf |
al@19626 | 98 chown -R 0.0 $rootfs/etc |
al@19626 | 99 chmod 0600 $rootfs/etc/busybox.conf |
al@19626 | 100 chmod 4755 $rootfs/bin/busybox |
al@19159 | 101 |
al@19596 | 102 echo 'Making translations' |
al@19159 | 103 make -C $stuff/po install |
al@19626 | 104 cp docs/busybox.base.1 docs/busybox.1 |
al@19159 | 105 ;; |
al@19159 | 106 |
pankso@12755 | 107 esac |
al@19596 | 108 |
al@19596 | 109 cook_pick_manpages $src/docs/busybox.1 |
al@19875 | 110 cook_pick_docs \ |
al@19875 | 111 $src/docs/*.txt \ |
al@19875 | 112 $src/docs/*.htm* \ |
al@19875 | 113 $src/docs/cgi |
pankso@12755 | 114 } |
pankso@12755 | 115 |
pankso@12755 | 116 # Cross compilation check. |
al@19875 | 117 testsuite() { |
pankso@12755 | 118 readelf -h $src/_install/bin/busybox |
pankso@0 | 119 } |
pankso@0 | 120 |
pankso@0 | 121 # Rules to gen a SliTaz package suitable for Tazpkg. |
al@19875 | 122 genpkg_rules() { |
al@19875 | 123 case $PACKAGE in |
al@19875 | 124 busybox) |
al@19875 | 125 DEPENDS="slitaz-base-files glibc-base ncurses" |
al@19875 | 126 CONFIG_FILES="/etc/dnsd.conf /etc/inetd.conf /etc/udhcpd.conf \ |
al@19875 | 127 /etc/resolv.conf /etc/httpd.conf" |
al@19875 | 128 cp -a $src/_install/* $fs |
al@19875 | 129 [ -e $fs/sbin/ip ] && ln -s busybox $fs/bin/ip |
al@19875 | 130 rm -f $fs/bin/bbconfig $fs/usr/bin/ar |
al@19875 | 131 mkdir -p \ |
al@19875 | 132 $fs/etc/init.d \ |
al@19875 | 133 $fs/var/spool/cron/crontabs \ |
al@19875 | 134 $fs/var/spool/lpd \ |
al@19875 | 135 $fs/var/lib/misc \ |
al@19875 | 136 $fs/etc/modprobe.d \ |
al@19875 | 137 $fs/usr/share/udhcpc |
pankso@12755 | 138 |
al@19875 | 139 # Busybox config files |
al@19875 | 140 cp -a $stuff/etc/* $fs/etc |
al@19875 | 141 chown -R 0.0 $fs/etc |
al@19875 | 142 chmod 600 $fs/etc/busybox.conf |
pankso@10817 | 143 |
al@19875 | 144 # Daemon scripts |
al@19875 | 145 cp $stuff/daemon $fs/etc/init.d |
al@19875 | 146 for i in crond dnsd ftpd httpd inetd lpd klogd ntpd syslogd \ |
al@19875 | 147 telnetd tftpd udhcpd zcip; do |
al@19875 | 148 grep -qi "config_$i=y" $stuff/.config && |
al@19875 | 149 ln -s daemon $fs/etc/init.d/$i |
al@19875 | 150 done |
al@19875 | 151 rm $fs/linuxrc |
pankso@12755 | 152 |
al@19875 | 153 # Udhcpc stuff |
al@19875 | 154 cp $stuff/udhcp.script $fs/usr/share/udhcpc/default.script |
al@19875 | 155 chmod +x $fs/usr/share/udhcpc/default.script |
pankso@10817 | 156 |
al@19875 | 157 # Httpd stuff (httphelper.sh found in slitaz-base-files package) |
al@19875 | 158 ln -s /usr/lib/slitaz/httphelper.sh $fs/usr/bin/httpd_helper.sh |
al@19875 | 159 cp -r $stuff/www $fs/var |
pascal@18006 | 160 |
al@19875 | 161 # Update copyright year |
al@19875 | 162 grep -rl 'YEAR' $fs/var/www | xargs sed -i "s|YEAR|$(date +%Y)|" |
al@19875 | 163 : |
al@19875 | 164 ;; |
al@19875 | 165 busybox-boot) |
al@19875 | 166 jslinux=false |
al@19875 | 167 CAT="base-system|for core-5in1/boot flavor" |
al@19875 | 168 DEPENDS="linux syslinux" |
al@19875 | 169 mkdir -p \ |
al@19875 | 170 $fs/usr/share/boot/bin \ |
al@19875 | 171 $fs/usr/share/boot/dev |
al@19875 | 172 |
al@19875 | 173 CHOICE='static' |
al@19875 | 174 for i in uclibc musl diet; do |
al@19875 | 175 [ -x "$src/busybox-$i" ] || continue |
al@19875 | 176 [ -x "$src/busybox-$CHOICE" ] && |
al@19875 | 177 [ $(stat -c %s $src/busybox-$i) -ge \ |
al@19875 | 178 $(stat -c %s $src/busybox-$CHOICE) ] && |
al@19875 | 179 continue |
al@19875 | 180 CHOICE="$i" |
al@19875 | 181 done |
al@19875 | 182 cp -a $src/busybox-$CHOICE $fs/usr/share/boot/bin/busybox |
al@19875 | 183 |
al@19875 | 184 chmod 4755 $fs/usr/share/boot/bin/busybox |
al@19875 | 185 mknod -m 660 $fs/usr/share/boot/dev/console c 5 1 |
al@19875 | 186 mknod -m 771 $fs/usr/share/boot/dev/null c 1 3 |
al@19875 | 187 mknod -m 660 $fs/usr/share/boot/dev/tty c 5 0 |
al@19875 | 188 mknod -m 660 $fs/usr/share/boot/dev/tty1 c 4 1 |
al@19875 | 189 if $jslinux; then |
al@19875 | 190 mknod -m 644 $fs/usr/share/boot/dev/clipboard c 10 231 |
al@19875 | 191 mknod -m 660 $fs/usr/share/boot/dev/ttyS0 c 4 64 |
al@19875 | 192 fi |
al@19875 | 193 |
al@19875 | 194 cp $stuff/init $fs/usr/share/boot/init |
al@19875 | 195 $jslinux || sed -i '/jslinux/d' $fs/usr/share/boot/init |
al@19875 | 196 chmod +x $fs/usr/share/boot/init |
al@19875 | 197 |
al@19875 | 198 ( cd $fs/usr/share/boot; find bin dev init | cpio -o -H newc > initrd ) |
al@19875 | 199 rm -rf \ |
al@19875 | 200 $fs/usr/share/boot/bin \ |
al@19875 | 201 $fs/usr/share/boot/dev \ |
al@19875 | 202 $fs/usr/share/boot/init |
al@19875 | 203 ;; |
al@19875 | 204 busybox-pam) |
al@19875 | 205 CAT="base-system|with PAM support" |
al@19875 | 206 DEPENDS="busybox pam" |
al@19875 | 207 CONFIG_FILES="/etc/pam.d" |
al@19875 | 208 PROVIDE="busybox:pam" |
al@19875 | 209 mkdir -p \ |
al@19875 | 210 $fs/bin/ \ |
al@19875 | 211 $fs/etc/pam.d/ |
al@19875 | 212 cp -a $src/busybox-pam $fs/bin/busybox |
al@19875 | 213 cp $stuff/login $fs/etc/pam.d/ |
al@19875 | 214 ;; |
al@19875 | 215 busybox-static) |
al@19875 | 216 CAT="base-system|static version" |
al@19875 | 217 DEPENDS=" " |
al@19875 | 218 mkdir -p $fs/usr/share/boot |
al@19875 | 219 |
al@19875 | 220 CHOICE='static' |
al@19875 | 221 for i in uclibc musl diet; do |
al@19875 | 222 [ -x "$src/busybox-$i" ] || continue |
al@19875 | 223 [ -x "$src/busybox-$CHOICE" ] && |
al@19875 | 224 [ $(stat -c %s $src/busybox-$i) -ge \ |
al@19875 | 225 $(stat -c %s $src/busybox-$CHOICE) ] && |
al@19875 | 226 continue |
al@19875 | 227 CHOICE="$i" |
al@19875 | 228 done |
al@19875 | 229 cp -a $src/busybox-$CHOICE $fs/usr/share/boot/busybox-static |
al@19875 | 230 ;; |
al@19875 | 231 ssfs-busybox) |
al@19875 | 232 # NOTE: We install files in Ssfs data directory to always have ready |
al@19875 | 233 # to create chroot on the server and provide an easy way to update |
al@19875 | 234 # the vdisk. We don't do a static build, we need some shared lib in |
al@19875 | 235 # the chroot anyway. Busybox is configured to not use /usr and with |
al@19875 | 236 # a minimal set of applets. |
al@19875 | 237 |
al@19875 | 238 CAT="base-system|for Ssfs virtual disk minimal chroot" |
al@19875 | 239 rootfs=$fs/usr/share/ssfs/rootfs |
al@19875 | 240 cp -a $src/ssfs-busybox/* $fs |
al@19875 | 241 ;; |
al@19875 | 242 esac |
pankso@0 | 243 } |
pankso@557 | 244 |
pankso@12755 | 245 # GNU utils stuff. |
al@19875 | 246 pre_install_busybox() { |
pascal@5015 | 247 local i |
pascal@18846 | 248 [ -s $1/etc/resolv.conf ] && |
pascal@18816 | 249 cp -a $1/etc/resolv.conf $1/etc/resolv.conf-busybox-install |
al@19875 | 250 answer='' |
al@19596 | 251 for i in $(sed '/busybox$/d; /bin\//!d' "$1$INSTALLED/$PACKAGE/files.list"); do |
pascal@18730 | 252 [ -f "$1$i" ] || continue |
pascal@5015 | 253 if [ -z "$answer" ]; then |
al@19596 | 254 echo |
al@19596 | 255 confirm 'Keep installed GNU utilities?' y || break |
al@19596 | 256 answer='Y' |
pascal@5015 | 257 fi |
pascal@18730 | 258 cp -a "$1$i" "$1$i-busybox-install" |
pascal@5924 | 259 done |
pankso@557 | 260 } |
pascal@983 | 261 |
al@19875 | 262 post_install_busybox() { |
pascal@5015 | 263 local i |
pascal@18816 | 264 [ -f $1/etc/resolv.conf-busybox-install ] && |
pascal@18816 | 265 mv -f $1/etc/resolv.conf-busybox-install $1/etc/resolv.conf |
al@19596 | 266 for i in $($1/bin/busybox --list-full); do |
al@19596 | 267 [ -f "$1/$i-busybox-install" ] || continue |
al@19596 | 268 mv "$1/$i-busybox-install" "$1/$i" |
al@19596 | 269 done |
pascal@18730 | 270 chmod 4755 "$1/bin/busybox" |
pankso@10818 | 271 |
al@19596 | 272 touch "$1/etc/daemons.conf" |
pankso@10818 | 273 # /etc/daemons.conf (tftp + dnsd + httpd may not be present) |
al@19596 | 274 if ! grep -q ^DNSD_OPTIONS "$1/etc/daemons.conf"; then |
al@19596 | 275 cat >> "$1/etc/daemons.conf" <<EOF |
al@19596 | 276 # Domain name server options. |
al@19596 | 277 DNSD_OPTIONS="-d" |
al@19596 | 278 |
al@19596 | 279 EOF |
pankso@10818 | 280 fi |
pascal@18816 | 281 if ! grep -q ^TFTPD_OPTIONS $1/etc/daemons.conf; then |
al@19596 | 282 cat >> "$1/etc/daemons.conf" <<EOF |
al@19596 | 283 # Tftp daemon options. |
al@19596 | 284 TFTPD_OPTIONS="-r /boot" |
al@19596 | 285 |
al@19596 | 286 EOF |
pankso@10818 | 287 fi |
pascal@5686 | 288 } |
pascal@8932 | 289 |
al@19875 | 290 # We can't remove this package! |
al@19875 | 291 pre_remove_busybox() { |
pascal@8932 | 292 exit 1 |
pascal@8932 | 293 } |
al@19875 | 294 |
al@19875 | 295 pre_remove_busybox_pam() { |
al@19875 | 296 # We install non-pam busybox to replace busybox-pam. |
al@19875 | 297 tazpkg get-install busybox --forced |
al@19875 | 298 |
al@19875 | 299 # We remove /bin/busybox from the file.list of busybox-pam. |
al@19875 | 300 # This way, the non-pam busybox we just installed will not be |
al@19875 | 301 # removed. |
al@19875 | 302 sed '/\/bin\/busybox/d' \ |
al@19875 | 303 -i /var/lib/tazpkg/installed/busybox-pam/files.list |
al@19875 | 304 } |
al@19875 | 305 |
al@19875 | 306 post_install_busybox_pam() { |
al@19875 | 307 chmod 4755 "$1/bin/busybox" |
al@19875 | 308 } |
al@19875 | 309 |
al@19875 | 310 post_install_busybox_static() { |
al@19875 | 311 chmod 4755 "$1/usr/share/boot/busybox-static" |
al@19875 | 312 } |