From: Wichert Akkerman Date: Sun, 4 Mar 2001 14:39:05 +0000 (+0000) Subject: * ChangeLog: undo file corruption (ugh) X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cf5d2919f686a15e8e623130b74af3ba2428fbeb;p=dpkg * ChangeLog: undo file corruption (ugh) * utils/start-stop-daemon.8: fix typo * configure.in: use AC_C_INLINE instead of our own test * lib/nfmalloc, include/dpkg-db.h: remove HAVE_INLINE tests, use extern inline directly * lib/varbuf.c: add inline keyowrd to varbufaddc * optlib/Makefile.in: undo earlier patch and build libopt.a again * lib/Makefile.in: use libopt.a again, and a rule to build it * Makefile.in: build optlib before lib * Makefile.conf.in: add RANLIB * dselect/method.h, dselect/methlist.cc, dselect/method.cc, dselect/methparse.cc: rename struct option to dselect_option to prevent conflict with getopt.h * main/help.c: rework do_script a bit to compile without errors * scripts/dpkg-gencontrol.1: add -n option to specify filename * scripts/dpkg-source.1: + document -n option for dpkg-gencontrol + fix confusing wording for dpkg-buildpackage -uc option + fix layout error for dpkg-distaddfile section + it's DEADJOE, not DEAD_JOEY * scripts/dpkg-architecture.pl: + apply cleanup patch from Julian Gilbey + modify gcc regexp to recognize gcc versions like 2.96-ia64-000717 * scripts/dpkg-checkbuilddeps.pl, scripts/dpkg-checkbuilddeps.1: new script from Joey Hess to check build dependencies * THANKS: Add Joey Hess * scripts/dpkg-parsechangelog.pl: + support reading changelog from stdin + remove Linux reference * scripts/dpkg-statoverride.pl: exit with exitcode 1 if we do --list but don't output anything, and use exitcode 2 if we try to remove a non-exiting override (unless --force is given). * scripts/dpkg-statoverride.8: document new exitcode for --list * main/main.c, main/dpkg.8: remove --smallmem and --largemem references * scripts/dpkg-buildpackage.sh: + don't bother to specify architecture settings on commandlines since we put them in the environment already + remove debsign support, it's useless and debsign can't handle it + use DEB_BUILD_ARCH to get build architecture, not DEB_HOST_ARCH + remove Linux reference * scripts/dpkg-scanpackages.pl: mark last argument as optional in usage info * scripts/dpkg-scanpackages.8, scripts/dpkg-name.1, scripts/dpkg-shlibdeps.pl, scripts/dpkg-source.pl, scripts/822-date.1, scripts/cl-debian.pl, scripts/cleanup-info.pl, scripts/dpkg-genchanges.pl, scripts/dpkg-distaddfile.pl, scripts/dpkg-source.1, scripts/dpkg-divert.pl, scripts/install-info.pl, scripts/install-info.8, scripts/dpkg-gencontrol.pl, scripts/update-alternatives.pl, scripts/update-rc.d.8: remove Linux references --- diff --git a/ChangeLog b/ChangeLog index 180d367e..dbe2acf1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,60 @@ +Fri Mar 2 17:29:02 CET 2001 Wichert Akkerman + + * The Copenhagen Commit + * ChangeLog: undo file corruption (ugh) + * utils/start-stop-daemon.8: fix typo + * configure.in: use AC_C_INLINE instead of our own test + * lib/nfmalloc, include/dpkg-db.h: remove HAVE_INLINE tests, use extern + inline directly + * lib/varbuf.c: add inline keyowrd to varbufaddc + * optlib/Makefile.in: undo earlier patch and build libopt.a again + * lib/Makefile.in: use libopt.a again, and a rule to build it + * Makefile.in: build optlib before lib + * Makefile.conf.in: add RANLIB + * dselect/method.h, dselect/methlist.cc, dselect/method.cc, + dselect/methparse.cc: rename struct option to dselect_option to prevent + conflict with getopt.h + * main/help.c: rework do_script a bit to compile without errors + * scripts/dpkg-gencontrol.1: add -n option to specify filename + * scripts/dpkg-source.1: + + document -n option for dpkg-gencontrol + + fix confusing wording for dpkg-buildpackage -uc option + + fix layout error for dpkg-distaddfile section + + it's DEADJOE, not DEAD_JOEY + * scripts/dpkg-architecture.pl: + + apply cleanup patch from Julian Gilbey + + modify gcc regexp to recognize gcc versions like 2.96-ia64-000717 + * scripts/dpkg-checkbuilddeps.pl, scripts/dpkg-checkbuilddeps.1: new + script from Joey Hess to check build dependencies + * THANKS: Add Joey Hess + * scripts/dpkg-parsechangelog.pl: + + support reading changelog from stdin + + remove Linux reference + * scripts/dpkg-statoverride.pl: exit with exitcode 1 if we do --list but + don't output anything, and use exitcode 2 if we try to remove a + non-exiting override (unless --force is given). + * scripts/dpkg-statoverride.8: document new exitcode for --list + * main/main.c, main/dpkg.8: remove --smallmem and --largemem references + * scripts/dpkg-buildpackage.sh: + + don't bother to specify architecture settings on commandlines since + we put them in the environment already + + remove debsign support, it's useless and debsign can't handle it + + use DEB_BUILD_ARCH to get build architecture, not DEB_HOST_ARCH + + remove Linux reference + * scripts/dpkg-scanpackages.pl: mark last argument as optional in + usage info + * scripts/dpkg-scanpackages.8, scripts/dpkg-name.1, + scripts/dpkg-shlibdeps.pl, scripts/dpkg-source.pl, scripts/822-date.1, + scripts/cl-debian.pl, scripts/cleanup-info.pl, scripts/dpkg-genchanges.pl, + scripts/dpkg-distaddfile.pl, scripts/dpkg-source.1, + scripts/dpkg-divert.pl, scripts/install-info.pl, scripts/install-info.8, + scripts/dpkg-gencontrol.pl, scripts/update-alternatives.pl, + scripts/update-rc.d.8: remove Linux references + +Sun Feb 25 20:26:03 CET 2001 Wichert Akkerman + + * version-nr: update to 1.9.0 + Sun Feb 25 19:17:53 CET 2001 Wichert Akkerman * debian/changelog: merged additions from v1.8 branch @@ -1189,7 +1246,105 @@ Tue Jan 11 03:34:22 CET 2000 Wichert Akkerman * scripts/dpkg-genchanges.pl: also upload full source if version is *-0.1 * doc/ja/dpkg.8: updated with patch from Hiroshi KISE -Tue Jan 11 18:32:52 CET 2000 Wichert Akkerman + + * configure.in: Fix include in test for alphasort + * Makefile.in: add intl to subdirectory-list + * dpkg-deb/Makefile.in: set top_builddir + * dselect/Makefile.in: set top_builddir + * main/Makefile.in: set top_builddir + * lib/compat.c: add really simple snprintf (doesn't do range-checking) + * lib/compat.c: add sys_siglist + * configure.in: add tests for snprintf and sys_siglist + * include/dpkg.h.in: don't include sys/sysinfo.h, filesdb.c is the only + thing that needs it and it has its own include. + +Tue Jan 11 02:02:00 CET 2000 Wichert Akkerman + + * dselect/baselist.cc: don't specify SA_INTERRUPT, since it's + not portable and the default behaviour + * main/enquiry.c: include sys/termios.h (needed on Solaris) + * lib/lock.c: use EACCESS instead of EWOULDBLOCK + * dselect/main.cc: fix help for -D + * dselect/main.cc: try to lock admindir instead of using readwrite + * dselect/method.cc: switch to using fcntl for lock since that is more + portable, and revamp lockingcode to reduce code duplication + +Mon Jan 10 20:55:45 CET 2000 Wichert Akkerman + + * Update Swedish and Russian translation + +Sun Jan 9 16:11:39 CET 2000 Wichert Akkerman + + * Merge patches from Josip Rodin: + + various text and manpage updates + + dselect/method.cc: don't abort if locking fails but give a + warning + + THANKS: fix various small errors + +Sun Jan 9 01:40:23 CET 2000 Wichert Akkerman + + * scripts/cl-debian.pl: Allow space between `#' and the bugnumber in the + changelog scripts + * scripts/start-stop-daemon.c: test for __sparc__ instead + * scripts/Makefile.in: add optlib to CFLAGS + * utils/start-stop-daemon.c: add option to chroot first, patch from Marco d'Itri + * utils/start-stop-daemon.8: document chroot option + * dselect/pkgtop.cc: use waddnstr to print package description instead of waddch + +Fri Jan 7 18:24:45 CET 2000 Wichert Akkerman + + * dselect/method.cc: pass admindir to dpkg + * dselect/Makefile.in: fix rule to build helpmessages + * dselect/curkeys.h: use curses.h instead of ncurses.h, since someone + decided to play nasty and just remove that + * scripts/: remove dpkg-safelist + * dpkg-deb/build.c: remove dpkg-safelist calls + * main/enquiry.c: redo formula to get fieldwidths for packages + +Wed Jan 5 17:09:45 CET 2000 Wichert Akkerman + + * Merge patch from Tom Lees : + + scripts/dpkg-buildpackage.sh: support debsign + * scripts/update-alternatives.8: fix wrong order of parameters + in ACTION section + * Updated Polish translation + +Sun Dec 26 01:31:08 CET 1999 Wichert Akkerman + + * Update copyright for Swedish translation to SPI instead of Debian + +Sat Dec 25 04:04:48 CET 1999 Wichert Akkerman + + * dselect/pkgtop.cc: use waddnstr instead of waddch so we don't strip + the 8th bit of characters + * Replace `Debian Linux' with `Debian GNU/Linux' in some more places + * Update Spanish translation + * main/enquire.c: always use a minimum width of 80 in list1package + * debian/rules: install dpkg-safefilelist + +Sat Dec 25 02:50:31 CET 1999 Wichert Akkerman + + * Oops, forgot to add scripts/dpkg-safefilelist.{1,pl} + * debian/control: remove double empty line + * dpkg-deb/main.c: Fix help-message + +Fri Dec 24 17:34:30 CET 1999 Wichert Akkerman + + * version-nr: update to 1.6.5 + * doc/Makefile.in: install THANKS + * TODO: remove items that have been done + * lib/showcright.c: exit(0) after showing the copyright since + we don't exec cat anymore + * Patch from David Huggins-Daines : + + main/configure.c: add NULL to execlp() parameters; this fixes the random + segfaults when showing the conffile-diff + +Fri Dec 24 15:35:29 CET 1999 Wichert Akkerman + + * debian/control: add Build-Depends + * THANKS: new file which lists everyone who contributed to the code + * Change `Debian Linux' to `Debian GNU/Linux' in a couple of manpages * main/enquiry.c: modify list1package to use the full width of the tty * main/main.c: fix wrong call to fputs * Merge patches from Adam Heath: @@ -4245,6 +4400,3 @@ Thu Aug 25 11:46:27 1994 Ian Murdock (imurdock@debra.debian.org) ChangeLog begins Thu Aug 25 11:46:27 1994 for dpkg 0.93.5. -Local variables: -mode: debian-changelog -End: diff --git a/Makefile.conf.in b/Makefile.conf.in index 0c6a5387..8bcc5602 100644 --- a/Makefile.conf.in +++ b/Makefile.conf.in @@ -37,6 +37,13 @@ alternativesdir = $(sysconfdir)/alternatives PERL = @PERL@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs LN = @LN_S@ +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +SED = @SED@ +RM = @RM@ + WARN_ALL = @WARN_ALL@ WARN_WRITESTRINGS = @WARN_WRITESTRINGS@ @@ -45,12 +52,6 @@ WARN_IMPLICIT = @WARN_IMPLICIT@ CC = @CC@ CFLAGS = @CFLAGS@ @CWARNS@ -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -SED = @SED@ -RM = @RM@ CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ @@ -59,6 +60,8 @@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ +RANLIB = @RANLIB@ + DEFS = @DEFS@ -D_GNU_SOURCE INCLUDE_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir) -I$(srcdir) -I../include -I.. -I. -I$(top_srcdir)/optlib diff --git a/Makefile.in b/Makefile.in index 3f9bece3..5b283d57 100644 --- a/Makefile.in +++ b/Makefile.in @@ -8,7 +8,7 @@ GENFILES = version.h include Makefile.conf -SUBDIRS = include lib optlib intl dpkg-deb split scripts utils main \ +SUBDIRS = include optlib lib intl dpkg-deb split scripts utils main \ utils @DSELECTDIR@ po methods doc all: version.h all-recursive diff --git a/THANKS b/THANKS index 200bb8cd..d8c596eb 100644 --- a/THANKS +++ b/THANKS @@ -26,6 +26,7 @@ J.H.M. Dassen Jim Pick Jim Van Zandt Joel Klecker +Joey Hess Josip Rodin Juan Cespedes Juergen Menden diff --git a/configure.in b/configure.in index c8735410..6eb23217 100644 --- a/configure.in +++ b/configure.in @@ -115,6 +115,7 @@ AC_SIZE_T AC_VPRINTF AC_C_CONST AC_C_BIGENDIAN +AC_C_INLINE AC_CHECK_SIZEOF(unsigned long) AC_CHECK_SIZEOF(unsigned int) AC_CHECK_TYPE(ptrdiff_t,int) diff --git a/debian/changelog b/debian/changelog index c9a221c5..abe6694d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,12 @@ dpkg (1.9.0) unstable; urgency=low + * The Copenhagen release + * Things should mostly work OpenBSD 2.8 as well now * Removed all --smallmem code, as smallmem and largemem now actually use about the same amount of memory, and largemem is faster. Both --largemem and --smallmem are now obselete options, and will print - a warning if used. - * Update German translation, Closes: Bug#80529 + a warning if used. Closes: Bug#84905 + * Update German translation, Closes: Bug#80529,#87581 * Update French translation, Closes: Bug#65284,#87238 * Add French manpages, courtesy of Philippe Batailler * Ingore vim swapfiles in dpkg-source, Closes: Bug#81630 @@ -26,15 +28,31 @@ dpkg (1.9.0) unstable; urgency=low * Minor script changes, Closes: Bug#87485 * Stop dpkg-genchanges from complaining about missing packages when doing a source-only build. Closes: Bug#87571 - * Make dpkg-architecture -s export all variables instead of only - the first + * Various dpkg-architecture cleanups. Closes: Bug#87505 + * Modify dpkg-architecture to handle gcc versions containing letters. + Closes: Bug#83083 * dpkg-buildpackage updates: Closes: Bug#87572 + make -C work properly + fix test for gpg secret keyring + improve source messages + skip signing pause when building unsigned packages + test for invalid signinterface. Closes: Bug#87579 + + remove debsign support, it's useless and doesn't work + + Use correct architecture when naming .changes file. Closes: Bug#88015 * Fix wording in dpkg-statoverride manpage for --add. Closes: Bug#85080 + * Fix typo in start-stop-daemon manpage. Closes: Bug#88225 + * Add dpkg-checkbuilddeps to check if build dependencies are satisfied + and modify dpkg-buildpackage to call it if wanted. Closes: Bug#86453 + * dpkg-parsechangelog can read a changelog from stdin now. Closes: Bug#80142 + * Fix confusing wording for dpkg-buildpackage -uc option in manpage. + Closes: Bug#83468 + * dpkg-statoverride now exits with exitcode 1 if we do a --list but don't + output anything. Closes: Bug#84328 + * Remove Linux reference from all scripts, they should run fine on + other OSes as well. + * Mark last argument in dpkg-scanpackages usage info as optional. + Closes: Bug#86658 + * Fix formatting error in dpkg-source.1. Closes: Bug#82723 -- Wichert Akkerman UNRELEASED @@ -617,7 +635,7 @@ dpkg (1.4.1.7) unstable; urgency=low + varbufprintf (used for some error messages) vsnprintf return value assumption changed to correspond to reality rather than glibc-doc. + Don't read available-info when not needed (slightly improved from - dpkg-iwj: don't read for listfiles either :) + dpkg-iwj: don't read for listfiles either :) + Cleanup --assert-* code + Assume largemem on systems without sysinfo(2). + modify preexec-script for easier script execution diff --git a/debian/control b/debian/control index 8958b403..736ca936 100644 --- a/debian/control +++ b/debian/control @@ -28,7 +28,7 @@ Package: dpkg-dev Section: devel Priority: important Architecture: all -Depends: perl5, cpio (>= 2.4.2-2), patch (>= 2.2-1), make, binutils +Depends: perl5, perl-modules, cpio (>= 2.4.2-2), patch (>= 2.2-1), make, binutils Recommends: c-compiler Suggests: gnupg, debian-keyring Conflicts: dpkgname diff --git a/debian/rules b/debian/rules index abd16b26..91e03099 100755 --- a/debian/rules +++ b/debian/rules @@ -156,14 +156,15 @@ binary-dpkg-dev: stamp-binary set -e ; for i in dpkg-name dpkg-source dpkg-genchanges dpkg-gencontrol \ dpkg-shlibdeps dpkg-buildpackage dpkg-distaddfile 822-date \ dpkg-scanpackages dpkg-scansources dpkg-architecture \ - dpkg-parsechangelog ; do \ + dpkg-parsechangelog dpkg-checkbuilddeps ; do \ mv $(TMP)/usr/bin/$$i $(TMP_DPKG_DEV)/usr/bin/ ; \ done set -e ; for i in "" ja sv ; do \ install -d -m 755 -o root -g root $(TMP_DPKG_DEV)/usr/share/man/$$i/man1 ; \ for m in dpkg-name.1 dpkg-source.1 822-date.1 dpkg-architecture.1 \ dpkg-buildpackage.1 dpkg-distaddfile.1 dpkg-genchanges.1 \ - dpkg-gencontrol.1 dpkg-parsechangelog.1 dpkg-shlibdeps.1 ; do \ + dpkg-gencontrol.1 dpkg-parsechangelog.1 dpkg-shlibdeps.1 \ + dpkg-checkbuilddeps.1 ; do \ if [ -e $(TMP)/usr/share/man/$$i/man1/$$m ] ; then \ mv $(TMP)/usr/share/man/$$i/man1/$$m $(TMP_DPKG_DEV)/usr/share/man/$$i/man1/$$m ; \ fi ; \ diff --git a/dselect/methlist.cc b/dselect/methlist.cc index e3a903cc..bd2632cf 100644 --- a/dselect/methlist.cc +++ b/dselect/methlist.cc @@ -119,9 +119,9 @@ methodlist::methodlist() : baselist(&methodlistbindings) { if (debug) fprintf(debug,"methodlist[%p]::methodlist()\n",this); - table= new struct option*[noptions]; + table= new struct dselect_option*[noptions]; - struct option *opt, **ip; + struct dselect_option *opt, **ip; for (opt=options, ip=table, nitems=0; opt; opt=opt->next, nitems++) { if (opt == coption) { assert(newcursor==-1); newcursor= nitems; } *ip++= opt; diff --git a/dselect/method.cc b/dselect/method.cc index 01756a34..93336d80 100644 --- a/dselect/method.cc +++ b/dselect/method.cc @@ -80,7 +80,7 @@ static void cu_unlockmethod(int, void**) { static enum urqresult ensureoptions(void) { const char *const *ccpp; - option *newoptions; + dselect_option *newoptions; int nread; if (!options) { diff --git a/dselect/method.h b/dselect/method.h index 7482044d..986bc5d4 100644 --- a/dselect/method.h +++ b/dselect/method.h @@ -27,8 +27,8 @@ struct method { char *name, *path, *pathinmeth; }; -struct option { - option *next; +struct dselect_option { + dselect_option *next; method *meth; char index[OPTIONINDEXMAXLEN]; char *name, *summary; @@ -40,7 +40,7 @@ class methodlist : public baselist { int name_column, description_column; // Table of methods - struct option **table; + struct dselect_option **table; // Misc. char searchstring[50]; @@ -69,10 +69,10 @@ class methodlist : public baselist { }; extern int noptions; -extern struct option *options, *coption; +extern struct dselect_option *options, *coption; extern struct method *methods; -extern void readmethods(const char *pathbase, option **optionspp, int *nread); +extern void readmethods(const char *pathbase, dselect_option **optionspp, int *nread); extern void getcurrentopt(); extern void writecurrentopt(); diff --git a/dselect/methparse.cc b/dselect/methparse.cc index aee018ed..17f015da 100644 --- a/dselect/methparse.cc +++ b/dselect/methparse.cc @@ -42,7 +42,7 @@ extern "C" { #include "bindings.h" int noptions=0; -struct option *options=0, *coption=0; +struct dselect_option *options=0, *coption=0; struct method *methods=0; static void badmethod(const char *pathname, const char *why) NONRETURNING; @@ -57,7 +57,7 @@ static void eofmethod(const char *pathname, FILE *f, const char *why) { badmethod(pathname,why); } -void readmethods(const char *pathbase, option **optionspp, int *nread) { +void readmethods(const char *pathbase, dselect_option **optionspp, int *nread) { static const char *const methodprograms[]= { METHODSETUPSCRIPT, METHODUPDATESCRIPT, METHODINSTALLSCRIPT, 0 }; @@ -69,7 +69,7 @@ void readmethods(const char *pathbase, option **optionspp, int *nread) { struct dirent *dent; struct varbuf vb; method *meth; - option *opt, **optinsert; + dselect_option *opt, **optinsert; struct stat stab; baselen= strlen(pathbase); @@ -131,7 +131,7 @@ void readmethods(const char *pathbase, option **optionspp, int *nread) { while ((c= fgetc(names)) != EOF) { if (isspace(c)) continue; - opt= new option; + opt= new dselect_option; opt->meth= meth; vb.reset(); do { @@ -228,7 +228,7 @@ void getcurrentopt() { int admindirlen; char *p; method *meth; - option *opt; + dselect_option *opt; if (!methoptfile) { admindirlen= strlen(admindir); diff --git a/include/dpkg-db.h b/include/dpkg-db.h index 8ac50578..1e7fa2b0 100644 --- a/include/dpkg-db.h +++ b/include/dpkg-db.h @@ -273,12 +273,7 @@ struct varbuf { #endif }; -#if HAVE_INLINE -inline extern void varbufaddc(struct varbuf *v, int c) { - if (v->used >= v->size) varbufextend(v); - v->buf[v->used++]= c; -} -#endif +inline extern void varbufaddc(struct varbuf *v, int c); #ifdef __cplusplus inline void varbuf::operator()(int c) { varbufaddc(this,c); } @@ -308,11 +303,7 @@ int epochsdiffer(const struct versionrevision *a, const struct versionrevision *b); /*** from nfmalloc.c ***/ -#ifdef HAVE_INLINE extern inline void *nfmalloc(size_t); -#else -extern void *nfmalloc(size_t); -#endif char *nfstrsave(const char*); char *nfstrnsave(const char*, int); void nffreeall(void); diff --git a/lib/Makefile.in b/lib/Makefile.in index 9ecc3f1a..5b8ff91f 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -16,8 +16,11 @@ ALL_CFLAGS += -DCOPYINGFILE=\"$(copyingfile)\" .PHONY: all all:: libdpkg.a - -libdpkg.a: $(OBJECTS) ../optlib/*.o + +../optlib/libopt.a: + set -e ; cd ../optlib ; $(MAKE) libopt.a + +libdpkg.a: $(OBJECTS) ../optlib/libopt.a $(AR) r $@ $^ $(RANLIB) $@ diff --git a/lib/nfmalloc.c b/lib/nfmalloc.c index 822074b4..08c7f3bb 100644 --- a/lib/nfmalloc.c +++ b/lib/nfmalloc.c @@ -45,11 +45,7 @@ static void nfobstack_init(void) { obstack_chunk_size(&db_obs) = CHUNK_SIZE; } -#ifdef HAVE_INLINE inline void *nfmalloc(size_t size) -#else -void *nfmalloc(size_t size) -#endif { OBSTACK_INIT; return obstack_alloc(&db_obs, size); diff --git a/lib/varbuf.c b/lib/varbuf.c index 0092bdda..e813c4a9 100644 --- a/lib/varbuf.c +++ b/lib/varbuf.c @@ -27,7 +27,7 @@ #include #include -void varbufaddc(struct varbuf *v, int c) { +inline void varbufaddc(struct varbuf *v, int c) { if (v->used >= v->size) varbufextend(v); v->buf[v->used++]= c; } diff --git a/main/dpkg.8 b/main/dpkg.8 index fa0f6447..838ba8ff 100644 --- a/main/dpkg.8 +++ b/main/dpkg.8 @@ -408,10 +408,6 @@ Try to (de)install things even when not root. Ignore dependency-checking for specified packages (actually, checking is performed, but only warnings about conflicts are given, nothing else). .TP -\fB--largemem\fP | \fB--smallmem\fP -Tells \fBdpkg\fP whether to preserve memory (e.g. with less than 24 MB -of RAM) or consume as much as needed(the default). -.TP \fB--new\fP | \fB--old\fP Select new or old binary package format. This is a \fBdpkg-deb\fP(1) option. @@ -496,7 +492,7 @@ for more information about them: .TP .B DPKG_NO_TSTP Define this to something if you prefer \fBdpkg\fP starting a new -shell rather than suspending \fBdpkg\fP, while doing a shell escape. +shell rather than suspending itself, while doing a shell escape. .TP .B SHELL The program \fBdpkg\fP will execute while starting a new shell. diff --git a/main/help.c b/main/help.c index 858012bc..5f5f4912 100644 --- a/main/help.c +++ b/main/help.c @@ -259,8 +259,13 @@ static int do_script(const char *pkg, const char *scriptname, const char *script c1= m_fork(); if (!c1) { + char **narglist; + for (r=0; arglist[r]; r++) ; + narglist=nfmalloc(r*sizeof(char*)); + for (r=1; arglist[r]; r++) + narglist[r]= arglist[r]; scriptexec= preexecscript(scriptpath,arglist); - arglist[0]=scriptexec; + narglist[0]= (char*)scriptexec; execv(scriptexec,arglist); ohshite(desc,name); } diff --git a/main/main.c b/main/main.c index b1cdfed6..475b7bb7 100644 --- a/main/main.c +++ b/main/main.c @@ -97,7 +97,6 @@ Options:\n\ -E|--skip-same-version Skip packages whose same version is installed\n\ -G|--refuse-downgrade Skip packages with earlier version than installed\n\ -B|--auto-deconfigure Install even if it would break some other package\n\ - --largemem | --smallmem Optimise for large (>4Mb) or small (<4Mb) RAM use\n\ --no-act Just say what we would do - don't do it\n\ -D|--debug= Enable debugging - see -Dhelp or --debug=help\n\ --status-fd Send status change updates to file descriptor \n\ diff --git a/optlib/Makefile.in b/optlib/Makefile.in index e8632045..c618589d 100644 --- a/optlib/Makefile.in +++ b/optlib/Makefile.in @@ -7,11 +7,14 @@ include ../Makefile.conf SOURCES = getopt.c getopt1.c long-options.c closeout.c obstack.c OBJECTS = $(patsubst %.c, %.o, $(SOURCES)) -GENFILES = $(OBJECTS) +GENFILES = $(OBJECTS) libopt.a .PHONY: all -all:: $(OBJECTS) +all:: libopt.a +libopt.a: $(OBJECTS) + $(AR) r $@ $^ + .PHONY: install install:: all diff --git a/scripts/822-date.1 b/scripts/822-date.1 index 5fb56a47..6d9e9627 100644 --- a/scripts/822-date.1 +++ b/scripts/822-date.1 @@ -1,6 +1,6 @@ .\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Authors: Ian Jackson -.TH 822\-DATE 1 "14th August 1996" "Debian Project" "Debian GNU/Linux manual" +.TH 822\-DATE 1 "14th August 1996" "Debian Project" "dpkg utilities" .SH NAME 822\-date \- Print date and time in RFC822 format .SH SYNOPSIS diff --git a/scripts/Makefile.in b/scripts/Makefile.in index 4133e3e9..a44cd9ac 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -7,13 +7,14 @@ include ../Makefile.conf BIN_SCRIPTS = dpkg-name dpkg-source dpkg-genchanges \ dpkg-gencontrol dpkg-shlibdeps dpkg-buildpackage \ dpkg-parsechangelog dpkg-distaddfile 822-date \ - dpkg-scanpackages dpkg-scansources dpkg-architecture + dpkg-scanpackages dpkg-scansources \ + dpkg-architecture dpkg-checkbuilddeps SBIN_SCRIPTS = update-rc.d update-alternatives install-info \ dpkg-divert dpkg-statoverride cleanup-info MAN1PAGES = dpkg-name.1 dpkg-source.1 822-date.1 \ - dpkg-architecture.1 + dpkg-architecture.1 dpkg-checkbuilddeps.1 MAN8PAGES = update-rc.d.8 update-alternatives.8 install-info.8 \ cleanup-info.8 dpkg-scanpackages.8 dpkg-scansources.8 \ dpkg-divert.8 dpkg-statoverride.8 diff --git a/scripts/cl-debian.pl b/scripts/cl-debian.pl index 67ed0d64..9731c2a7 100755 --- a/scripts/cl-debian.pl +++ b/scripts/cl-debian.pl @@ -21,7 +21,7 @@ $since=''; sub usageversion { print STDERR -"Debian GNU/Linux parsechangelog/dpkg $version. Copyright (C) 1996 +"Debian parsechangelog/dpkg $version. Copyright (C) 1996 Ian Jackson. This is free software; see the GNU General Public Licence version 2 or later for copying conditions. There is NO warranty. diff --git a/scripts/cleanup-info.pl b/scripts/cleanup-info.pl index d16e3ce9..ce34f84d 100755 --- a/scripts/cleanup-info.pl +++ b/scripts/cleanup-info.pl @@ -27,7 +27,7 @@ my $version = '1.1.6'; # This line modified by Makefile sub version { print STDERR <>8) { + &warn("Couldn't determine gcc system type, falling back to default (native compilation)"); + $gcc = ''; } else { + $gcc =~ s!^.*gcc-lib/([^/]*)/(?:egcs-)?\d+(?:[.\da-z]*)/libgcc.*$!$1!s; + if (defined $1 and $! ne '') { + $gcc = $1; + } else { + &warn("Couldn't determine gcc system type, falling back to default (native compilation)"); + $gcc = ''; + } +} + +if ($gcc ne '') { @list = &gnu_to_debian($gcc); if (!defined(@list)) { &warn ("Unknown gcc system type $gcc, falling back to default (native compilation)"), @@ -135,10 +145,8 @@ if ($gcc eq '') { $gcc=$archtable{$list[0]}; $deb_host_arch = $list[0]; $deb_host_gnu_type = $gcc; - $deb_host_gnu_cpu = $gcc; - $deb_host_gnu_system = $gcc; - $deb_host_gnu_cpu =~ s/-.*$//; - $deb_host_gnu_system =~ s/^.*-//; + ($deb_host_gnu_system = $gcc) =~ s/^.*-//; + ($deb_host_gnu_cpu = $gcc ) =~ s/-.*$//; } } if (!defined($deb_host_arch)) { @@ -206,7 +214,7 @@ if ($req_host_gnu_type ne '') { #$gcc =~ s!^.*gcc-lib/(.*)/\d+(?:.\d+)*/libgcc.*$!$1!s; &warn("Specified GNU system type $deb_host_gnu_type does not match gcc system type $gcc.") if ($gcc ne '') && ($gcc ne $deb_host_gnu_type); -undef @env; +%env = (); if (!$force) { $deb_build_arch = $ENV{DEB_BUILD_ARCH} if (exists $ENV{DEB_BUILD_ARCH}); $deb_build_gnu_cpu = $ENV{DEB_BUILD_GNU_CPU} if (exists $ENV{DEB_BUILD_GNU_CPU}); @@ -218,36 +226,38 @@ if (!$force) { $deb_host_gnu_type = $ENV{DEB_HOST_GNU_TYPE} if (exists $ENV{DEB_HOST_GNU_TYPE}); } -push @env, "DEB_BUILD_ARCH=$deb_build_arch"; -push @env, "DEB_BUILD_GNU_CPU=$deb_build_gnu_cpu"; -push @env, "DEB_BUILD_GNU_SYSTEM=$deb_build_gnu_system"; -push @env, "DEB_BUILD_GNU_TYPE=$deb_build_gnu_type"; -push @env, "DEB_HOST_ARCH=$deb_host_arch"; -push @env, "DEB_HOST_GNU_CPU=$deb_host_gnu_cpu"; -push @env, "DEB_HOST_GNU_SYSTEM=$deb_host_gnu_system"; -push @env, "DEB_HOST_GNU_TYPE=$deb_host_gnu_type"; +@ordered = qw(DEB_BUILD_ARCH DEB_BUILD_GNU_CPU + DEB_BUILD_GNU_SYSTEM DEB_BUILD_GNU_TYPE + DEB_HOST_ARCH DEB_HOST_GNU_CPU + DEB_HOST_GNU_SYSTEM DEB_HOST_GNU_TYPE); + +$env{'DEB_BUILD_ARCH'}=$deb_build_arch; +$env{'DEB_BUILD_GNU_CPU'}=$deb_build_gnu_cpu; +$env{'DEB_BUILD_GNU_SYSTEM'}=$deb_build_gnu_system; +$env{'DEB_BUILD_GNU_TYPE'}=$deb_build_gnu_type; +$env{'DEB_HOST_ARCH'}=$deb_host_arch; +$env{'DEB_HOST_GNU_CPU'}=$deb_host_gnu_cpu; +$env{'DEB_HOST_GNU_SYSTEM'}=$deb_host_gnu_system; +$env{'DEB_HOST_GNU_TYPE'}=$deb_host_gnu_type; if ($action eq 'l') { - print join("\n",@env)."\n"; + foreach $k (@ordered) { + print "$k=$env{$k}\n"; + } } elsif ($action eq 's') { - print "export ".join("\n",@env)."\n" if ($#env != 0); - print "export ".join("\nexport ",@env)."\n" if ($#enf != 0); + foreach $k (@ordered) { + print "$k=$env{$k}; "; + } + print "export ".join(" ",@ordered)."\n"; } elsif ($action eq 'u') { - print "unset DEB_BUILD_ARCH DEB_BUILD_GNU_CPU DEB_BUILD_GNU_SYSTEM DEB_BUILD_GNU_TYPE DEB_HOST_ARCH DEB_HOST_GNU_CPU DEB_HOST_GNU_SYSTEM DEB_HOST_GNU_TYPE\n"; + print "unset ".join(" ",@ordered)."\n"; } elsif ($action eq 'c') { - foreach $_ (@env) { - m/^(.*)=(.*)$/; - $ENV{$1}=$2; - } + @ENV{keys %env} = values %env; exec @ARGV; } elsif ($action eq 'q') { - undef %env; - foreach $_ (@env) { - m/^(.*)=(.*)$/; - $env{$1}=$2; - } if (exists $env{$req_variable_to_print}) { print "$env{$req_variable_to_print}\n"; # works because -q implies -f ! + print "$env{$req_variable_to_print}\n"; } else { die "$req_variable_to_print is not a supported variable name"; } @@ -465,4 +475,4 @@ dpkg-cross If you have questions about the usage of the make variables in your rules files, or about cross compilation support in your packages, please email me. -The addresse is Marcus Brinkmann . +The address is Marcus Brinkmann . diff --git a/scripts/dpkg-buildpackage.sh b/scripts/dpkg-buildpackage.sh index cbd6149d..d655ad9c 100755 --- a/scripts/dpkg-buildpackage.sh +++ b/scripts/dpkg-buildpackage.sh @@ -7,7 +7,7 @@ version="1.3.0"; # This line modified by Makefile progname="`basename \"$0\"`" usageversion () { cat >&2 < -p + -d do not check build dependencies and conflicts + -D check build dependencies and conflicts -k the key to use for signing -sgpg the sign-command is called like GPG -spgp the sign-command is called like PGP - -sdebsign the sign-command works like debsign -us unsigned source -uc unsigned changes -a Debian architecture we build for @@ -55,6 +56,8 @@ fi signsource='withecho signfile' signchanges='withecho signfile' cleansource=false +checkbuilddep=true +checkbuilddep_args='' binarytarget=binary sourcestyle='' version='' @@ -72,9 +75,10 @@ do -r*) rootcommand="$value" ;; -p*) signcommand="$value" ;; -k*) signkey="$value" ;; + -d) checkbuilddep=false ;; + -D) checkbuilddep=true ;; -sgpg) forcesigninterface=gpg ;; -spgp) forcesigninterface=pgp ;; - -sdebsign) forcesigninterface=debsign ;; -us) signsource=: ;; -uc) signchanges=: ;; -ap) usepause="true";; @@ -88,9 +92,9 @@ do -nc) noclean=true; if [ -z "$binaryonly" ]; then binaryonly=-b; fi ;; -b) binaryonly=-b; [ "$sourceonly" ] && \ { echo >&2 "$progname: cannot combine $1 and -S" ; exit 2 ; } ;; - -B) binaryonly=-B; binarytarget=binary-arch; [ "$sourceonly" ] && \ + -B) binaryonly=-B; checkbuilddep_args=-B; binarytarget=binary-arch; [ "$sourceonly" ] && \ { echo >&2 "$progname: cannot combine $1 and -S" ; exit 2 ; } ;; - -S) sourceonly=-S; [ "$binaryonly" ] && \ + -S) sourceonly=-S; checkbuilddep=false; [ "$binaryonly" ] && \ { echo >&2 "$progname: cannot combine $binaryonly and $1" ; exit 2 ; } ;; -v*) since="$value" ;; -m*) maint="$value" ;; @@ -113,16 +117,11 @@ else signinterface=$signcommand fi -if [ "$signinterface" != "gpg" -a "$signinterface" != "pgp" -a \ - "$signitnerface" != "debsign" ] ; \ +if [ "$signinterface" != "gpg" -a "$signinterface" != "pgp" ] ; then echo >&2 "$progname: invalid sign interface specified" exit 1 fi -if test "$signinterface" = "debsign"; then - signsource=: -fi - mustsetvar () { if [ "x$2" = x ]; then echo >&2 "$progname: unable to determine $3" ; \ @@ -139,10 +138,11 @@ mustsetvar package "`dpkg-parsechangelog | sed -n 's/^Source: //p'`" "source pac mustsetvar version "`dpkg-parsechangelog | sed -n 's/^Version: //p'`" "source version" if [ -n "$maint" ]; then maintainer="$maint"; else mustsetvar maintainer "`dpkg-parsechangelog | sed -n 's/^Maintainer: //p'`" "source maintainer"; fi -eval `dpkg-architecture -a${arch} -t${targetgnusystem} -s` -archlist=`dpkg-architecture -a${targetarch} -t${targetgnusystem} -f 2> /dev/null` +eval `dpkg-architecture -a${arch} -t${targetgnusystem} -s -f` +env +exit 0 if [ x$sourceonly = x ]; then - mustsetvar arch "`dpkg-architecture -a${targetarch} -t${targetgnusystem} -qDEB_HOST_ARCH`" "build architecture" + mustsetvar arch "`dpkg-architecture -a${targetarch} -t${targetgnusystem} -qDEB_BUILD_ARCH`" "build architecture" else arch=source fi @@ -155,13 +155,6 @@ signfile () { (cat "../$1" ; echo "") | \ $signcommand --local-user "${signkey:-$maintainer}" --clearsign --armor \ --textmode > "../$1.asc" - elif test "$signinterface" = "debsign"; then - if test x$signkey != x; then - $signcommand -k"$signkey" ../$1 - else - $signcommand ../$1 - fi - return else $signcommand -u "${signkey:-$maintainer}" +clearsig=on -fast <"../$1" \ >"../$1.asc" @@ -175,6 +168,14 @@ withecho () { "$@" } +if [ "$checkbuilddep" = "true" ]; then + if ! dpkg-checkbuilddeps $checkbuilddep_args; then + echo >&2 "$progname: Build dependancies/conflicts unsatisfied; aborting." + echo >&2 "$progname: (Use -d flag to override.)" + exit 3 + fi +fi + set -- $binaryonly $sourceonly $sourcestyle if [ -n "$maint" ]; then set -- "$@" "-m$maint" ; fi if [ -n "$changedby" ]; then set -- "$@" "-e$changedby" ; fi @@ -182,14 +183,14 @@ if [ -n "$since" ]; then set -- "$@" "-v$since" ; fi if [ -n "$desc" ]; then set -- "$@" "-C$desc" ; fi if [ x$noclean != xtrue ]; then - withecho $rootcommand debian/rules clean $archlist + withecho $rootcommand debian/rules clean fi if [ x$binaryonly = x ]; then cd ..; withecho dpkg-source $diffignore -b "$dirn"; cd "$dirn" fi if [ x$sourceonly = x ]; then - withecho debian/rules build $archlist - withecho $rootcommand debian/rules $binarytarget $archlist + withecho debian/rules build + withecho $rootcommand debian/rules $binarytarget fi if [ "$usepause" = "true" -a "signchanges" != ":" ] && [ "x$binaryonly" = x -o "x$signchanges" != x ] ; then echo Press the return key to start signing process @@ -236,7 +237,7 @@ fi $signchanges "$pva.changes" if $cleansource; then - withecho $rootcommand debian/rules clean $archlist + withecho $rootcommand debian/rules clean fi echo "dpkg-buildpackage: $srcmsg" diff --git a/scripts/dpkg-distaddfile.pl b/scripts/dpkg-distaddfile.pl index 3bebc2c8..1d7f9f48 100755 --- a/scripts/dpkg-distaddfile.pl +++ b/scripts/dpkg-distaddfile.pl @@ -13,7 +13,7 @@ require 'controllib.pl'; sub usageversion { print STDERR -"Debian GNU/Linux dpkg-distaddfile $version. Copyright (C) 1996 +"Debian dpkg-distaddfile $version. Copyright (C) 1996 Ian Jackson. This is free software; see the GNU General Public Licence version 2 or later for copying conditions. There is NO warranty. diff --git a/scripts/dpkg-divert.pl b/scripts/dpkg-divert.pl index 8093a3da..a5f705bb 100755 --- a/scripts/dpkg-divert.pl +++ b/scripts/dpkg-divert.pl @@ -8,7 +8,7 @@ $version= '1.0.11'; # This line modified by Makefile $admindir= "/var/lib/dpkg"; # This line modified by Makefile sub showversion { - print("Debian GNU/Linux dpkg-divert $version.\n") || &quit("failed to write version: $!"); + print("Debian dpkg-divert $version.\n") || &quit("failed to write version: $!"); } sub usage { diff --git a/scripts/dpkg-genchanges.pl b/scripts/dpkg-genchanges.pl index 285e729e..ba15cc86 100755 --- a/scripts/dpkg-genchanges.pl +++ b/scripts/dpkg-genchanges.pl @@ -30,9 +30,9 @@ require 'controllib.pl'; sub usageversion { print STDERR -"Debian GNU/Linux dpkg-genchanges $version. +"Debian dpkg-genchanges $version. Copyright (C) 1996 Ian Jackson. -Copyright (C) 2000 Wichert Akkerman. +Copyright (C) 2000,2001 Wichert Akkerman. This is free software; see the GNU General Public Licence version 2 or later for copying conditions. There is NO warranty. diff --git a/scripts/dpkg-gencontrol.pl b/scripts/dpkg-gencontrol.pl index 0d2f1b67..a4bfa91d 100755 --- a/scripts/dpkg-gencontrol.pl +++ b/scripts/dpkg-gencontrol.pl @@ -17,7 +17,7 @@ require 'controllib.pl'; sub usageversion { print STDERR -"Debian GNU/Linux dpkg-gencontrol $version. +"Debian dpkg-gencontrol $version. Copyright (C) 1996 Ian Jackson. Copyright (C) 2000 Wichert Akkerman. This is free software; see the GNU General Public Licence version 2 or later @@ -32,6 +32,7 @@ Options: -p print control file for package -v set version of binary package -f write files here instead of debian/files -P temporary build dir instead of debian/tmp + -n assume the package filename will be -O write to stdout, not .../DEBIAN/control -is include section field -ip include priority field @@ -84,6 +85,8 @@ while (@ARGV) { $substvar{$1}= $'; } elsif (m/^-T/) { $varlistfile= $'; + } elsif (m/^-n/) { + $forcefilename= $'; } elsif (m/^-h$/) { &usageversion; exit(0); } else { @@ -220,8 +223,9 @@ if (open(X,"< $fileslistfile")) { } $sversion=$f{'Version'}; $sversion =~ s/^\d+://; -print(Y &substvars(sprintf("%s_%s_%s.deb %s %s\n", - $oppackage,$sversion,$f{'Architecture'}, +$forcefilename=sprintf("%s_%s_%s.deb", $oppackage,$sversion,$f{'Architecture'}) + unless ($forcefilename); +print(Y &substvars(sprintf("%s %s %s\n", $forcefilename, &spfileslistvalue('Section'), &spfileslistvalue('Priority')))) || &syserr("write new entry to new files list file"); close(Y) || &syserr("close new files list file"); diff --git a/scripts/dpkg-name.1 b/scripts/dpkg-name.1 index 68449972..3d6bc8cd 100644 --- a/scripts/dpkg-name.1 +++ b/scripts/dpkg-name.1 @@ -4,7 +4,7 @@ .\" This is free software; see the GNU General Public Licence version 2 .\" or later for copying conditions. There is NO warranty. .\" Time-stamp: <96/05/03 14:00:06 root> -.TH dpkg-name 1 "May 1996" "Debian Project" "Debian GNU/Linux" +.TH dpkg-name 1 "May 1996" "Debian Project" "dpkg utilities" .SH NAME dpkg\-name \- rename Debian packages to full package names .SH SYNOPSIS @@ -81,10 +81,8 @@ Print version information and exit successfully. .B "\-l, \-\-license" Print copyright information and (a reference to GNU) license information and exit successfully. -.SH BUGS? -Successfully tested on -.B Debian GNU/Linux -systems only. Some packages don't follow the name structure +.SH BUGS +Some packages don't follow the name structure __.deb. Packages renamed by dpkg-name will follow this structure. Generally this will have no impact on how packages are installed by dselect/dpkg, but other installation tools diff --git a/scripts/dpkg-parsechangelog.pl b/scripts/dpkg-parsechangelog.pl index 209fe546..f2e2030f 100755 --- a/scripts/dpkg-parsechangelog.pl +++ b/scripts/dpkg-parsechangelog.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -$dpkglibdir= "."; +$dpkglibdir= "/usr/lib/dpkg"; $version= '1.3.0'; # This line modified by Makefile $format='debian'; @@ -16,8 +16,10 @@ require 'controllib.pl'; sub usageversion { print STDERR -"Debian GNU/Linux dpkg-source $version. Copyright (C) 1996 -Ian Jackson. This is free software; see the GNU General Public Licence +"Debian dpkg-source $version. +Copyright (C) 1996 Ian Jackson. +Copyright (C) 2001 Wichert Akkerman +This is free software; see the GNU General Public Licence version 2 or later for copying conditions. There is NO warranty. Usage: dpkg-parsechangelog [