From e2f6e1221330f2944d467cad2fb630deb5ef6f0a Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 1 Dec 2000 19:55:04 +0000 Subject: [PATCH] More pristine source directory updates. It now works for me (including doing install). How about you? -Erik --- Makefile | 14 +++++------ applets/busybox.mkll | 6 ++++- applets/busybox.sh | 12 +++++---- busybox.mkll | 6 ++++- busybox.sh | 12 +++++---- debian/changelog | 4 ++- debian/control | 36 +++++++++++++++++++------- debian/rules | 60 ++++++++++++++++++++++++++++++++++++++++---- 8 files changed, 116 insertions(+), 34 deletions(-) diff --git a/Makefile b/Makefile index d43547e5f..bea9614a6 100644 --- a/Makefile +++ b/Makefile @@ -167,14 +167,14 @@ docs/BusyBox.1: docs/busybox.pod docs/busybox.pod ) > docs/BusyBox.1 docs/BusyBox.html: docs/busybox.lineo.com/BusyBox.html - - rm -f docs/BusyBox.html - - ln -s docs/busybox.lineo.com/BusyBox.html docs/BusyBox.html + -@ rm -f docs/BusyBox.html + -@ ln -s docs/busybox.lineo.com/BusyBox.html docs/BusyBox.html docs/busybox.lineo.com/BusyBox.html: docs/busybox.pod - - mkdir -p docs/busybox.lineo.com + -@ mkdir -p docs/busybox.lineo.com - (cd $(BB_SRC_DIR); pod2html --noindex docs/busybox.pod ) \ > docs/busybox.lineo.com/BusyBox.html - - rm -f pod2html* + -@ rm -f pod2html* # New docs based on DOCBOOK SGML @@ -210,7 +210,7 @@ busybox: $(OBJECTS) $(STRIP) busybox.links: Config.h - -(cd $(BB_SRC_DIR); ./busybox.mkll ) | sort >$@ + -$(BB_SRC_DIR)/busybox.mkll $(BB_SRC_DIR)applets.h | sort >$@ nfsmount.o cmdedit.o: %.o: %.h $(OBJECTS): %.o: %.c Config.h busybox.h Makefile @@ -237,10 +237,10 @@ distclean: clean - cd tests && $(MAKE) distclean install: busybox busybox.links - ./install.sh $(PREFIX) + $(BB_SRC_DIR)/install.sh $(PREFIX) install-hardlinks: busybox busybox.links - ./install.sh $(PREFIX) --hardlinks + $(BB_SRC_DIR)/install.sh $(PREFIX) --hardlinks debug_pristine: @ echo VPATH=\"$(VPATH)\" diff --git a/applets/busybox.mkll b/applets/busybox.mkll index d7b9ec539..922dcdd81 100755 --- a/applets/busybox.mkll +++ b/applets/busybox.mkll @@ -2,7 +2,11 @@ # Make busybox links list file. DF="Config.h" -MF="applets.h" + +MF=$1 +if [ "$MF" = "" ]; then + MF="applets.h" +fi LIST="$(gcc -E -dM $DF | sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\/BB_\1/gp;' | sort)" diff --git a/applets/busybox.sh b/applets/busybox.sh index e01b88162..22493bf59 100755 --- a/applets/busybox.sh +++ b/applets/busybox.sh @@ -1,10 +1,12 @@ #!/bin/sh -# I added in the extra "ls" so only source files that -# actually exist will show up in the compile list. -ls -1 ` \ - gcc -E -dM Config.h | \ +RAW=` \ + gcc -E -dM ${1:-Config.h} | \ sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\/\1.c/gp;' \ | tr '[:upper:]' '[:lower:]' | sort -` 2>/dev/null | sed -e 's/\.c$/\.o/g' +` +cd ${2:-.} +# I added in the extra "ls" so only source files that +# actually exist will show up in the compile list. +ls -1 $RAW 2>/dev/null | sed -e 's/\.c$/\.o/g' diff --git a/busybox.mkll b/busybox.mkll index d7b9ec539..922dcdd81 100755 --- a/busybox.mkll +++ b/busybox.mkll @@ -2,7 +2,11 @@ # Make busybox links list file. DF="Config.h" -MF="applets.h" + +MF=$1 +if [ "$MF" = "" ]; then + MF="applets.h" +fi LIST="$(gcc -E -dM $DF | sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\/BB_\1/gp;' | sort)" diff --git a/busybox.sh b/busybox.sh index e01b88162..22493bf59 100755 --- a/busybox.sh +++ b/busybox.sh @@ -1,10 +1,12 @@ #!/bin/sh -# I added in the extra "ls" so only source files that -# actually exist will show up in the compile list. -ls -1 ` \ - gcc -E -dM Config.h | \ +RAW=` \ + gcc -E -dM ${1:-Config.h} | \ sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\/\1.c/gp;' \ | tr '[:upper:]' '[:lower:]' | sort -` 2>/dev/null | sed -e 's/\.c$/\.o/g' +` +cd ${2:-.} +# I added in the extra "ls" so only source files that +# actually exist will show up in the compile list. +ls -1 $RAW 2>/dev/null | sed -e 's/\.c$/\.o/g' diff --git a/debian/changelog b/debian/changelog index c1c9cb2bd..3300927e8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ busybox (0.48pre-1) unstable; urgency=low - * New version released. See changelog for details. + * Non-release. + * See changelog for details. + * Now includes .udeb support for the debian-installer. -- Erik Andersen Mon, 25 Sep 2000 23:00:56 -0600 diff --git a/debian/control b/debian/control index bbbf86e09..54475b799 100644 --- a/debian/control +++ b/debian/control @@ -1,16 +1,16 @@ Source: busybox Priority: optional Maintainer: Erik Andersen -Build-Depends: debhelper -Standards-Version: 3.1.1 +Build-Depends: debhelper (>= 2.1.18), dpkg-dev (1.7.0) +Standards-Version: 3.2.1.0 Package: busybox Architecture: any Depends: ${shlibs:Depends} -Conflicts: binutils, bsdutils, console-tools, cpio, debianutils, dnsutils, dpkg, fbset, fdflush, fileutils, grep, gzip, hostname, modutils, mount, netbase, procps, psmisc, sed, sharutils, shellutils, sysklogd, sysvinit, tar, textutils, update, util-linux -Replaces: netbase +Conflicts: +Replaces: Section: utils -Description: Tiny utilities for the debian-installer and for embedded systems. +Description: Tiny utilities for small and embedded systems. BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for the most common utilities you would usually find on your desktop system (i.e. ls, cp, mv, @@ -19,10 +19,10 @@ Description: Tiny utilities for the debian-installer and for embedded systems. provide the expected functionality and behave very much like their GNU counterparts. . - BusyBox is used by the debian-installer. Installing BusyBox onto your Debian - system is not recommended, unless you are intended to make a very small - embedded system. Chances are good that for embedded systems, you will want to - recompile to only include the tools and utilities you wish to include. + This package installs the BusyBox binary but does not install symlinks + for any of the supported utilities. You can use /bin/busybox --install + to install BusyBox to the current directory (you do not want to do this + in / on your Debian system!). Package: busybox-static Architecture: any @@ -44,3 +44,21 @@ Description: Provides a stand alone rescue shell with tons of builtin utilities. your system from certain destruction. Invoke "busybox", and it will list the available builtin commands. +Package: busybox-udeb +Architecture: any +Depends: ${shlibs:Depends} +Section: debian-installer +Description: Tiny utilities for the debian-installer and for embedded systems. + BusyBox combines tiny versions of many common UNIX utilities into a single + small executable. It provides minimalist replacements for the most common + utilities you would usually find on your desktop system (i.e. ls, cp, mv, + mount, tar, etc). The utilities in BusyBox generally have fewer options than + their full-featured GNU cousins; however, the options that are included + provide the expected functionality and behave very much like their GNU + counterparts. + . + BusyBox is used by the debian-installer. Installing BusyBox onto your Debian + system is not recommended, unless you are intended to make a very small + embedded system. Chances are good that for embedded systems, you will want to + recompile to only include the tools and utilities you wish to include. + diff --git a/debian/rules b/debian/rules index ffa9b5c36..67741b19f 100755 --- a/debian/rules +++ b/debian/rules @@ -8,14 +8,23 @@ export DH_COMPAT=1 bb=debian/tmp +bbbd=debian/bb_builddir bbs=debian/busybox-static +bbsbd=debian/bb-static_builddir + +#For the debian-installer .udeb package +PACKAGE=busybox-udeb +VERSION=$(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2) +ARCH=$(shell dpkg --print-architecture) +FILENAME=$(PACKAGE)_$(VERSION)_$(ARCH).udeb +PRIORITY=$(shell grep ^Priority: debian/control | cut -d ' ' -f 2) clean: dh_testdir dh_testroot rm -f build-stamp-busybox build-stamp-busybox-static -$(MAKE) clean - -rm -rf $(bb) $(bbs) + -rm -rf $(bb) $(bbbd) $(bbs) $(bbsbd) dh_clean half_clean: @@ -27,7 +36,9 @@ half_clean: build: build-stamp-busybox build-stamp-busybox: dh_testdir - $(MAKE) + mkdir -p $(bbbd) + cp Makefile Config.h $(bbbd) + (cd $(bbbd); $(MAKE) "BB_SRC_DIR=../../") touch build-stamp-busybox install: build @@ -35,7 +46,7 @@ install: build dh_testroot dh_clean -k dh_installdirs - $(MAKE) "PREFIX=$(bb)" install + (cd $(bbbd); $(MAKE) "BB_SRC_DIR=../../" "PREFIX=../../$(bb)" install) mkdir -p $(bb)/usr/share/man/man1 cp docs/BusyBox.1 $(bb)/usr/share/man/man1/busybox.1 @@ -67,7 +78,7 @@ binary-indep: # We have nothing to do by default. # Build architecture-dependent files here. -binary-arch: busybox busybox-static +binary-arch: busybox busybox-static busybox-udeb busybox: install @echo "--- Building: $@" @@ -87,7 +98,7 @@ busybox: install # $(bb)/usr/share/doc/busybox/busybox.lineo.com/images/CVS \ # $(bb)/usr/share/doc/busybox/busybox.lineo.com/images/.cvsignore #dh_undocumented -p$@ - dh_installchangelogs -p$@ Changelog + #dh_installchangelogs -p$@ Changelog dh_strip -p$@ dh_compress -p$@ dh_fixperms -p$@ @@ -126,5 +137,44 @@ busybox-static: do_static dh_builddeb -p$@ +# Note that this builds a .udeb, which is not policy compliant or anything. +# +busybox-udeb: install + @echo "--- Building: $@" + dh_testdir + dh_testroot + dh_installdirs + # + #Note that for busybox, we do not install any docs, + # or man apges or anything else. This is in blatent violation of every + # Debian policy out there, since this package is intended to be used + # _only_ by the debian-installer. + # + #dh_installdocs -p$@ docs/BusyBox.txt \ + # docs/BusyBox.html docs/busybox.lineo.com AUTHORS README TODO + #rm -rf $(bb)/usr/share/doc/busybox/busybox.lineo.com/CVS \ + # $(bb)/usr/share/doc/busybox/busybox.lineo.com/.cvsignore \ + # $(bb)/usr/share/doc/busybox/busybox.lineo.com/images/CVS \ + # $(bb)/usr/share/doc/busybox/busybox.lineo.com/images/.cvsignore + #dh_undocumented -p$@ + #dh_installchangelogs -p$@ Changelog + dh_strip -p$@ + dh_compress -p$@ + dh_fixperms -p$@ + dh_installdeb -p$@ + dh_shlibdeps -p$@ + # + #Make _very_ sure there are no docs lurking about. + # + rm -rf $(bb)/usr/share/doc + rm -rf $(bb)/usr/share/man + dh_gencontrol -p$@ + # Don't write your stupid guesses to debian/files. + #dh_gencontrol -p$@ -- -fdebian/files~ + # Register file manually. + dpkg-distaddfile $(FILENAME) debian-installer $(PRIORITY) + dh_md5sums -p$@ + dh_builddeb -p$@ --filename=$(FILENAME) + binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install