Fixes to usage text; updated busybox.spec

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2009-10-02 11:37:17 +02:00
parent 88a37689a7
commit 26ff18b424
4 changed files with 158 additions and 82 deletions

View File

@ -133,7 +133,7 @@ docs/BusyBox.txt: docs/busybox.pod
docs/BusyBox.1: docs/busybox.pod
$(disp_doc)
$(Q)-mkdir -p docs
$(Q)-pod2man --center=BusyBox --release="version $(VERSION)" $< > $@
$(Q)-pod2man --center=BusyBox --release="version $(KERNELVERSION)" $< > $@
docs/BusyBox.html: docs/busybox.net/BusyBox.html
$(disp_doc)

View File

@ -1,44 +1,120 @@
%define name busybox
%define epoch 0
%define version 0.61.pre
%define release %(date -I | sed -e 's/-/_/g')
%define serial 1
Summary: Statically linked binary providing simplified versions of system commands
Name: busybox
Version: 1.15.1
Release: 1%{?dist}
Epoch: 1
License: GPLv2
Group: System Environment/Shells
Source: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
Source1: busybox-static.config
Source2: busybox-petitboot.config
Source3: http://www.uclibc.org/downloads/uClibc-0.9.30.1.tar.bz2
Source4: uClibc.config
Patch16: busybox-1.10.1-hwclock.patch
# patch to avoid conflicts with getline() from stdio.h, already present in upstream VCS
Patch22: uClibc-0.9.30.1-getline.patch
Obsoletes: busybox-anaconda
URL: http://www.busybox.net
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libselinux-devel >= 1.27.7-2
BuildRequires: libsepol-devel
BuildRequires: libselinux-static
BuildRequires: libsepol-static
BuildRequires: glibc-static
Name: %{name}
#Epoch: %{epoch}
Version: %{version}
Release: %{release}
Serial: %{serial}
Copyright: GPL
Group: System/Utilities
Summary: BusyBox is a tiny suite of Unix utilities in a multi-call binary.
URL: http://busybox.net/
Source: ftp://busybox.net/busybox/%{name}-%{version}.tar.gz
Buildroot: /var/tmp/%{name}-%{version}
Packager : Erik Andersen <andersen@codepoet.org>
%define debug_package %{nil}
%Description
BusyBox combines tiny versions of many common UNIX utilities into a single
small executable. It provides minimalist replacements for most of the utilities
you usually find in fileutils, shellutils, findutils, textutils, grep, gzip,
tar, etc. BusyBox provides a fairly complete POSIX environment for any small
or emdedded system. The utilities in BusyBox generally have fewer options then
their full featured GNU cousins; however, the options that are provided behave
very much like their GNU counterparts.
%package petitboot
Group: System Environment/Shells
Summary: Version of busybox configured for use with petitboot
%Prep
%setup -q -n %{name}-%{version}
%description
Busybox is a single binary which includes versions of a large number
of system commands, including a shell. This package can be very
useful for recovering from certain types of system failures,
particularly those involving broken shared libraries.
%Build
make
%description petitboot
Busybox is a single binary which includes versions of a large number
of system commands, including a shell. The version contained in this
package is a minimal configuration intended for use with the Petitboot
bootloader used on PlayStation 3. The busybox package provides a binary
better suited to normal use.
%Install
%prep
%setup -q -a3
%patch16 -b .ia64 -p1
cat %{SOURCE4} >uClibc-0.9.30.1/.config1
%patch22 -b .getline -p1
%build
# create static busybox - the executable is kept as busybox-static
# We use uclibc instead of system glibc, uclibc is several times
# smaller, this is important for static build.
# Build uclibc first.
cd uClibc-0.9.30.1
# fixme:
mkdir kernel-include
cp -a /usr/include/asm kernel-include
cp -a /usr/include/asm-generic kernel-include
cp -a /usr/include/linux kernel-include
# uclibc can't be built on ppc64,s390,ia64, we set $arch to "" in this case
arch=`uname -m | sed -e 's/i.86/i386/' -e 's/ppc/powerpc/' -e 's/ppc64//' -e 's/powerpc64//' -e 's/ia64//' -e 's/s390.*//'`
echo "TARGET_$arch=y" >.config
echo "TARGET_ARCH=\"$arch\"" >>.config
cat .config1 >>.config
if test "$arch"; then yes "" | make oldconfig; fi
if test "$arch"; then cat .config; fi
if test "$arch"; then make V=1; fi
if test "$arch"; then make install; fi
if test "$arch"; then make install_kernel_headers; fi
cd ..
# we are back in busybox-NN.MM dir now
cp %{SOURCE1} .config
# set all new options to defaults
yes "" | make oldconfig
# gcc needs to be convinced to use neither system headers, nor libs,
# nor startfiles (i.e. crtXXX.o files)
if test "$arch"; then \
mv .config .config1 && \
grep -v ^CONFIG_SELINUX .config1 >.config && \
yes "" | make oldconfig && \
cat .config && \
make V=1 \
EXTRA_CFLAGS="-isystem uClibc-0.9.30.1/installed/include" \
CFLAGS_busybox="-static -nostartfiles -LuClibc-0.9.30.1/installed/lib uClibc-0.9.30.1/installed/lib/crt1.o uClibc-0.9.30.1/installed/lib/crti.o uClibc-0.9.30.1/installed/lib/crtn.o"; \
else \
cat .config && \
make V=1 CC="gcc $RPM_OPT_FLAGS"; \
fi
cp busybox busybox.static
# create busybox optimized for petitboot
make clean
# copy new configuration file
cp %{SOURCE2} .config
# set all new options to defaults
yes "" | make oldconfig
make V=1 CC="%__cc $RPM_OPT_FLAGS"
cp busybox busybox.petitboot
%install
rm -rf $RPM_BUILD_ROOT
make CONFIG_PREFIX=$RPM_BUILD_ROOT install
mkdir -p $RPM_BUILD_ROOT/sbin
install -m 755 busybox.static $RPM_BUILD_ROOT/sbin/busybox
install -m 755 busybox.petitboot $RPM_BUILD_ROOT/sbin/busybox.petitboot
%Clean
%clean
rm -rf $RPM_BUILD_ROOT
%Files
%defattr(-,root,root)
/
%files
%defattr(-,root,root,-)
%doc LICENSE docs/busybox.net/*.html
/sbin/busybox
%files petitboot
%defattr(-,root,root,-)
%doc LICENSE
/sbin/busybox.petitboot
%changelog

View File

@ -48,7 +48,7 @@
"\n -h DIR Home directory" \
"\n -g GECOS GECOS field" \
"\n -s SHELL Login shell" \
"\n -G GROUP Add user to existing group" \
"\n -G GRP Add user to existing group" \
"\n -S Create a system user" \
"\n -D Do not assign a password" \
"\n -H Do not create home directory" \
@ -689,7 +689,7 @@
"\n -D FMT Use FMT for -d TIME conversion" \
) \
"\n" \
"\nRecognized formats for TIME:" \
"\nRecognized TIME formats:" \
"\n hh:mm[:ss]" \
"\n [YYYY.]MM.DD-hh:mm[:ss]" \
"\n YYYY-MM-DD hh:mm[:ss]" \
@ -1189,12 +1189,12 @@
#define blkid_trivial_usage \
""
#define blkid_full_usage "\n\n" \
"Print UUIDs of all filesystems."
"Print UUIDs of all filesystems"
#define findfs_trivial_usage \
"LABEL=label or UUID=uuid"
#define findfs_full_usage "\n\n" \
"Find a filesystem device based on a label or UUID."
"Find a filesystem device based on a label or UUID"
#define findfs_example_usage \
"$ findfs LABEL=MyDevice"
@ -4497,7 +4497,7 @@
"\n PORT Port to listen on" \
"\n PROG [ARGS] Program to run" \
"\n -l NAME Local hostname (else looks up local hostname in DNS)" \
"\n-u USER[:GROUP] Change to user/group after bind" \
"\n -u USER[:GRP] Change to user/group after bind" \
"\n -c N Handle up to N connections simultaneously" \
"\n -b N Allow a backlog of approximately N TCP SYNs" \
"\n -C N[:MSG] Allow only up to N connections from the same IP" \
@ -4512,12 +4512,12 @@
#define udpsvd_full_usage "\n\n" \
"Create UDP socket, bind to IP:PORT and wait\n" \
"for incoming packets. Run PROG for each packet,\n" \
"redirecting all further packets with same peer ip:port to it\n" \
"redirecting all further packets with same peer ip:port to it.\n" \
"\n IP IP to listen on. '0' = all" \
"\n PORT Port to listen on" \
"\n PROG [ARGS] Program to run" \
"\n -l NAME Local hostname (else looks up local hostname in DNS)" \
"\n-u USER[:GROUP] Change to user/group after bind" \
"\n -u USER[:GRP] Change to user/group after bind" \
"\n -c N Handle up to N connections simultaneously" \
"\n -h Look up peer's hostname" \
"\n -E Do not set up environment variables" \