diff options
61 files changed, 8623 insertions, 2058 deletions
diff --git a/.cvsignore b/.cvsignore index 50a9f2736..d3c5e621f 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,3 +1,7 @@ +.deps +.depend +.depend-done +Makefile rpm rpm.shared rpm2cpio @@ -8,9 +12,6 @@ config.guess config.cache Makefile.inc config.status -Makefile -.depend -.depend-done *.tar.gz config.log configure @@ -1,4 +1,5 @@ 2.5.5 -> 2.90 + - configure using automake. - arch/os (and platform) should be case insensitive everywhere forever. - attempt to deal rationally with os as "Linux" or "linux". - add generalized expression handler (Tom Dyas<tdyas@remus.rutgers.edu>) diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 000000000..59ee1c58b --- /dev/null +++ b/Makefile.am @@ -0,0 +1,103 @@ +# Top level Makefile for rpm + +AUTOMAKE_OPTIONS = 1.3 foreign + +SUBDIRS = popt build lib po intl misc tools scripts + +INCLUDES = -I./build -I./lib -I./intl @INCPATH@ + +LDFLAGS = @LDFLAGS_STATIC@ -L./popt -L./build -L./lib -L./misc + +rpmbindir = $(subst usr/bin,bin,$(bindir)) +rpmbin_PROGRAMS = rpm + +bin_PROGRAMS = rpm2cpio +bin_SCRIPTS = gendiff +noinst_PROGRAMS = rpmconvert + +man_MANS = rpm.8 rpm2cpio.8 + +configdir = @RPMCONFIGDIR@ +config_DATA = rpmrc rpmpopt macros +config_SCRIPTS = find-provides find-requires mkinstalldirs + +noinst_HEADERS = \ + acconfig.h build.h checksig.h ftp.h \ + install.h query.h system.h url.h \ + verify.h + +rpm_SOURCES = build.c checksig.c ftp.c install.c query.c rpm.c url.c \ + verify.c +rpm_LDADD = -lrpmbuild -lpopt -lrpm @LIBMISC@ + +rpm.o: + $(COMPILE) \ + -DRPMNLSDIR=\"$(RPMNLSDIR)\" \ + -DRPMNLSPACKAGE=\"$(PACKAGE)\" \ + -DVERSION=\"$(VERSION)\" \ + -DLIBRPMALIAS_FILENAME=\"$(LIBRPMALIAS_FILENAME)\" \ + -DRPMCONFIGDIR="\"$(RPMCONFIGDIR)"\" \ + -c rpm.c + +include ./Makefile.inc + +rpm2cpio_SOURCES = rpm2cpio.c +rpm2cpio_LDADD = -lrpmbuild -lpopt -lrpm + +rpmconvert_SOURCES = convertdb.c oldrpmdb.c +rpmconvert_LDADD = -lrpmbuild -lpopt -lrpm -lgdbm + +install-data-local: + ln -s rpm/rpmrc $(libdir)/rpmrc + ln -s rpm/rpmpopt $(libdir)/rpmpopt + +# FIXME: these should be generated in configure.in +find-requires: find-requires.sh + cp $< $@ +find-provides: find-provides.sh + cp $< $@ +rpmrc: lib-rpmrc + cp $< $@ + +# FIXME: these should be checked +.PHONY: tar +tar: + rm -rf /tmp/rpm-$(VERSION) + make installprefix=/tmp/rpm-$(VERSION)$(ROOT) install + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SOURCES + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SPECS + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SRPMS + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/RPMS + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/BUILD + $(mkinstalldirs) /tmp/rpm-$(VERSION)/var/local/lib/rpm + $(mkinstalldirs) /tmp/rpm-$(VERSION)/var/tmp +# Couldn't figure de ARCH value +# $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/RPMS/i386 + cd /tmp/rpm-$(VERSION) ; tar cvf /tmp/rpm-$(VERSION).tar . + +.PHONY: noconfig +noconfig: + find . -name "Makefile" -exec rm {} \; + rm -f *gz *rpm config.* + +.PHONY: archive +archive: + @echo " " + @echo "I hope you checked everything out and made sure it builds" + @echo "maybe someday Erik will get around to making that automatic." + @echo + @echo "This is version $(VERSION)." + @sleep 5 + @cvs -Q tag -F $(CVSTAG) . + @rm -rf /tmp/rpm-$(VERSION) /tmp/rpm + @cd /tmp; cvs -Q -d $(CVSROOT) export -r$(CVSTAG) rpm || : + @mv /tmp/rpm /tmp/rpm-$(VERSION) + @rm /tmp/rpm-$(VERSION)/popt/popt.spec + @cd /tmp/rpm-$(VERSION); ./autogen.sh ; make depend; make distclean + @cd /tmp/rpm-$(VERSION); ./autogen.sh --noconfigure + @cd /tmp; tar czSpf rpm-$(VERSION).tar.gz rpm-$(VERSION) + @rm -rf /tmp/rpm-$(VERSION) + @cp /tmp/rpm-$(VERSION).tar.gz . + @rm -f /tmp/rpm-$(VERSION).tar.gz + @echo " " + @echo "The final archive is ./rpm-$(VERSION).tar.gz." diff --git a/Makefile.in b/Makefile.in index f699b8710..fdcb7cc16 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,195 +1,726 @@ -include Makefile.inc +# Makefile.in generated automatically by automake 1.3 from Makefile.am -srcdir= @srcdir@ -VPATH = @srcdir@ -top_srcdir= @top_srcdir@ -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Top level Makefile for rpm + + +SHELL = /bin/sh -INSTALL= @INSTALL@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ -#LIBEFENCE = -lefence +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AWK = @AWK@ +BZIP2BIN = @BZIP2BIN@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +FIXPERMS = @FIXPERMS@ +GENCAT = @GENCAT@ +GETTEXTSTUB = @GETTEXTSTUB@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +GZIPBIN = @GZIPBIN@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INCPATH = @INCPATH@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEF = @INTLDEF@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LDFLAGS_STATIC = @LDFLAGS_STATIC@ +LIBDL = @LIBDL@ +LIBINTL = @LIBINTL@ +LIBMISC = @LIBMISC@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MISCDIR = @MISCDIR@ +MISCPATH = @MISCPATH@ +MKDIR = @MKDIR@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PO = @PO@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +ROOT_GROUP = @ROOT_GROUP@ +RPM = @RPM@ +RPMCONFIGDIR = @RPMCONFIGDIR@ +TARGET = @TARGET@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +l = @l@ +tmpdir = @tmpdir@ +topdir = @topdir@ +topsrcdir = @topsrcdir@ +varprefix = @varprefix@ + +AUTOMAKE_OPTIONS = 1.3 foreign + +SUBDIRS = popt build lib po intl misc tools scripts + +INCLUDES = -I./build -I./lib -I./intl @INCPATH@ + +LDFLAGS = @LDFLAGS_STATIC@ -L./popt -L./build -L./lib -L./misc + +rpmbindir = $(subst usr/bin,bin,$(bindir)) +rpmbin_PROGRAMS = rpm + +bin_PROGRAMS = rpm2cpio +bin_SCRIPTS = gendiff +noinst_PROGRAMS = rpmconvert + +man_MANS = rpm.8 rpm2cpio.8 + +configdir = @RPMCONFIGDIR@ +config_DATA = rpmrc rpmpopt macros +config_SCRIPTS = find-provides find-requires mkinstalldirs + +noinst_HEADERS = \ + acconfig.h build.h checksig.h ftp.h \ + install.h query.h system.h url.h \ + verify.h + +rpm_SOURCES = build.c checksig.c ftp.c install.c query.c rpm.c url.c \ + verify.c +rpm_LDADD = -lrpmbuild -lpopt -lrpm @LIBMISC@ + +rpm2cpio_SOURCES = rpm2cpio.c +rpm2cpio_LDADD = -lrpmbuild -lpopt -lrpm + +rpmconvert_SOURCES = convertdb.c oldrpmdb.c +rpmconvert_LDADD = -lrpmbuild -lpopt -lrpm -lgdbm +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = Makefile.inc lib-rpmrc macros +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(rpmbin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I. +CPPFLAGS = @CPPFLAGS@ +rpm2cpio_OBJECTS = rpm2cpio.o +rpm2cpio_DEPENDENCIES = +rpm2cpio_LDFLAGS = +rpmconvert_OBJECTS = convertdb.o oldrpmdb.o +rpmconvert_DEPENDENCIES = +rpmconvert_LDFLAGS = +rpm_OBJECTS = build.o checksig.o ftp.o install.o query.o rpm.o url.o \ +verify.o +rpm_DEPENDENCIES = +rpm_LDFLAGS = +SCRIPTS = $(bin_SCRIPTS) $(config_SCRIPTS) + +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +man8dir = $(mandir)/man8 +MANS = $(man_MANS) + +NROFF = nroff +DATA = $(config_DATA) + +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = README ABOUT-NLS COPYING Makefile.am Makefile.in \ +Makefile.inc.in TODO acconfig.h aclocal.m4 config.guess config.h.in \ +config.sub configure configure.in install-sh lib-rpmrc.in macros.in \ +missing mkinstalldirs stamp-h.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +DEP_FILES = .deps/build.P .deps/checksig.P .deps/convertdb.P \ +.deps/ftp.P .deps/install.P .deps/oldrpmdb.P .deps/query.P .deps/rpm.P \ +.deps/rpm2cpio.P .deps/url.P .deps/verify.P +SOURCES = $(rpm2cpio_SOURCES) $(rpmconvert_SOURCES) $(rpm_SOURCES) +OBJECTS = $(rpm2cpio_OBJECTS) $(rpmconvert_OBJECTS) $(rpm_OBJECTS) + +all: all-recursive-am all-am + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): configure.in + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +config.h: stamp-h + @: +stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=config.h \ + $(SHELL) ./config.status + @echo timestamp > stamp-h +$(srcdir)/config.h.in: $(srcdir)/stamp-h.in +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + @echo timestamp > $(srcdir)/stamp-h.in + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + -rm -f config.h + +maintainer-clean-hdr: +Makefile.inc: $(top_builddir)/config.status Makefile.inc.in + cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status +lib-rpmrc: $(top_builddir)/config.status lib-rpmrc.in + cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status +macros: $(top_builddir)/config.status macros.in + cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ + done -#DEBUG = -g -installprefix=$(ROOT) +mostlyclean-noinstPROGRAMS: -#LIBEFENCE = -lefence +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) -CVSTAG = r$(subst .,-,$(VERSION)) +distclean-noinstPROGRAMS: -################################### Leave this stuff alone +maintainer-clean-noinstPROGRAMS: -### These are variables meant to be exported +mostlyclean-rpmbinPROGRAMS: -BINDIR=$(prefix)/bin -RPMBINDIR=$(subst usr/bin,bin,$(BINDIR)) -MANDIR=$(prefix)/man/man8 -LIBDIR=$(libdir) -INCDIR=$(prefix)/include/rpm -ETCDIR=$(ROOT)/etc +clean-rpmbinPROGRAMS: + -test -z "$(rpmbin_PROGRAMS)" || rm -f $(rpmbin_PROGRAMS) -# ----------------------------------------------------------------------- +distclean-rpmbinPROGRAMS: -SUBDIRS = popt @MISCDIR@ lib build tools @PO@ -ALLSUBDIRS = popt misc lib build tools po -INSTSUBDIRS = lib scripts @PO@ -OTHERSUBDIRS = docs autodeps -OBJS = rpm.o query.o install.o verify.o checksig.o ftp.o url.o build.o \ - @GETTEXTSTUB@ -PROGS = @RPM@ rpm2cpio -LIBS = @LIBS@ @LIBINTL@ @LIBDL@ $(LIBEFENCE) -LOADLIBES = -lrpmbuild -lpopt -lrpm @LIBMISC@ -LDFLAGS_STATIC = @LDFLAGS_STATIC@ +maintainer-clean-rpmbinPROGRAMS: + +install-rpmbinPROGRAMS: $(rpmbin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(rpmbindir) + @list='$(rpmbin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(rpmbindir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(rpmbindir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; \ + done -SOURCES = $(subst .o,.c,$(OBJS)) +uninstall-rpmbinPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(rpmbin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(rpmbindir)/`echo $$p|sed '$(transform)'`; \ + done -ifeq (.depend-done,$(wildcard .depend-done)) -TARGET=everything -else -TARGET=@TARGET@ -endif +.s.o: + $(COMPILE) -c $< -all: $(TARGET) +.S.o: + $(COMPILE) -c $< -rpm: lib/librpm.a build/librpmbuild.a @MISCPATH@ $(OBJS) - $(CC) -o rpm $(LDFLAGS_STATIC) $(OBJS) $(LDFLAGS) $(LOADLIBES) $(LIBS) +mostlyclean-compile: + -rm -f *.o core *.core -rpm.shared: lib/librpm.a build/librpmbuild.a $(OBJS) - $(CC) -o rpm.shared $(LDFLAGS) $(OBJS) $(LOADLIBES) $(LIBS) +clean-compile: -# we don't normally build this, so ./configure doesn't try very hard -# to make it work -rpmconvert: lib/librpm.a convertdb.o oldrpmdb.o - $(CC) -o rpmconvert $(LDFLAGS) convertdb.o oldrpmdb.o -lgdbm \ - $(LOADLIBES) $(LIBS) +distclean-compile: + -rm -f *.tab.c -rpm2cpio: lib/librpm.a rpm2cpio.o - $(CC) -o rpm2cpio $(LDFLAGS) rpm2cpio.o $(LOADLIBES) $(LIBS) +maintainer-clean-compile: -rpm.o: rpm.c query.h install.h lib/rpmlib.h Makefile - $(CC) $(CFLAGS) -DRPMNLSPACKAGE=\"$(RPMNLSPACKAGE)\" \ - -DRPMNLSDIR=\"$(RPMNLSDIR)\" \ - -DVERSION=\"$(VERSION)\" \ - -DLIBRPMALIAS_FILENAME="\"$(LIBRPMALIAS_FILENAME)"\" \ - -DRPMCONFIGDIR="\"$(RPMCONFIGDIR)"\" \ - -c $(srcdir)/rpm.c +rpm2cpio: $(rpm2cpio_OBJECTS) $(rpm2cpio_DEPENDENCIES) + @rm -f rpm2cpio + $(LINK) $(rpm2cpio_LDFLAGS) $(rpm2cpio_OBJECTS) $(rpm2cpio_LDADD) $(LIBS) + +rpmconvert: $(rpmconvert_OBJECTS) $(rpmconvert_DEPENDENCIES) + @rm -f rpmconvert + $(LINK) $(rpmconvert_LDFLAGS) $(rpmconvert_OBJECTS) $(rpmconvert_LDADD) $(LIBS) + +rpm: $(rpm_OBJECTS) $(rpm_DEPENDENCIES) + @rm -f rpm + $(LINK) $(rpm_LDFLAGS) $(rpm_OBJECTS) $(rpm_LDADD) $(LIBS) + +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_SCRIPTS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ + else if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; fi; \ + done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + list='$(bin_SCRIPTS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ + done -# these rules should be in here, but they drive me batty -#Makefile: Makefile.in misc/Makefile.in lib/Makefile.in build/Makefile.in \ - #tools/Makefile.in po/Makefile.in config.status - #sh ./config.status +install-configSCRIPTS: $(config_SCRIPTS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(configdir) + @list='$(config_SCRIPTS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $$p $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`; \ + else if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; fi; \ + done -#config.status: configure - #sh ./config.status --recheck +uninstall-configSCRIPTS: + @$(NORMAL_UNINSTALL) + list='$(config_SCRIPTS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`; \ + done -#configure: configure.in - #cd $(srcdir); autoconf +install-man8: + $(mkinstalldirs) $(DESTDIR)$(man8dir) + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \ + done -everything: make-subdirs $(PROGS) +uninstall-man8: + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \ + rm -f $(DESTDIR)$(man8dir)/$$inst; \ + done +install-man: $(MANS) + @$(NORMAL_INSTALL) + $(MAKE) install-man8 +uninstall-man: + @$(NORMAL_UNINSTALL) + $(MAKE) uninstall-man8 + +install-configDATA: $(config_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(configdir) + @list='$(config_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(configdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(configdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(configdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(configdir)/$$p; \ + fi; fi; \ + done -make-subdirs: - for d in $(SUBDIRS); do \ - (cd $$d; $(MAKE)) \ - || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac;\ +uninstall-configDATA: + @$(NORMAL_UNINSTALL) + list='$(config_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(configdir)/$$p; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + target=`echo $@ | sed s/-recursive//`; \ + echo "Making $$target in $$subdir"; \ + (cd $$subdir && $(MAKE) $$target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" -newtree: - rm -f RCS - ln -s /usr/rhs/RCS/rpm-2.0 RCS - for d in $(SUBDIRS) $(OTHERSUBDIRS); do \ - $(mkinstalldirs) $$d ;\ - (cd $$d; rm -f RCS; ln -s /usr/rhs/RCS/rpm-2.0/$$d RCS) \ - || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac;\ +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + done; \ + for subdir in $$rev; do \ + target=`echo $@ | sed s/-recursive//`; \ + echo "Making $$target in $$subdir"; \ + (cd $$subdir && $(MAKE) $$target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + (cd $$subdir && $(MAKE) tags); \ + done -$(PROGS): $(OBJS) - -install: all - [ -d $(installprefix)/$(RPMBINDIR) ] || \ - $(mkinstalldirs) $(installprefix)/$(RPMBINDIR) - [ -d $(installprefix)/$(RPMNLSDIR) ] || \ - $(mkinstalldirs) $(installprefix)/$(RPMNLSDIR) - [ -d $(installprefix)/$(BINDIR) ] || \ - $(mkinstalldirs) $(installprefix)/$(BINDIR) - [ -d $(installprefix)/$(MANDIR) ] || \ - $(mkinstalldirs) $(installprefix)/$(MANDIR) - [ -d $(installprefix)/$(ETCDIR) ] || \ - $(mkinstalldirs) $(installprefix)/$(ETCDIR) - [ -d $(installprefix)/$(LIBDIR) ] || \ - $(mkinstalldirs) $(installprefix)/$(LIBDIR) - [ -d $(installprefix)/$(INCDIR) ] || \ - $(mkinstalldirs) $(installprefix)/$(INCDIR) - [ -d $(installprefix)/$(RPMCONFIGDIR) ] || \ - $(mkinstalldirs) $(installprefix)/$(RPMCONFIGDIR) - if [ -x ./rpm ]; then \ - $(INSTALL_PROGRAM) -s -m 755 rpm $(installprefix)/$(RPMBINDIR); \ - else \ - $(INSTALL_PROGRAM) -s -m 755 rpm.shared $(installprefix)/$(RPMBINDIR)/rpm; \ - fi - $(INSTALL_PROGRAM) -m 755 $(srcdir)/gendiff $(installprefix)/$(BINDIR) - $(INSTALL_PROGRAM) -m 755 $(topdir)/mkinstalldirs $(installprefix)/$(RPMCONFIGDIR)/mkinstalldirs - $(INSTALL_PROGRAM) -m 755 $(topdir)/find-provides.sh $(installprefix)/$(RPMCONFIGDIR)/find-provides - $(INSTALL_PROGRAM) -m 755 $(topdir)/find-requires.sh $(installprefix)/$(RPMCONFIGDIR)/find-requires - $(INSTALL_PROGRAM) -s -m 755 rpm2cpio $(installprefix)/$(BINDIR) - $(INSTALL_DATA) -m 644 $(srcdir)/rpm.8 $(installprefix)/$(MANDIR) - $(INSTALL_DATA) -m 644 $(srcdir)/rpm2cpio.8 $(installprefix)/$(MANDIR) - $(INSTALL_DATA) -m 644 $(topdir)/macros $(installprefix)/$(RPMCONFIGDIR)/macros - $(INSTALL_DATA) -m 644 $(topdir)/lib-rpmrc $(installprefix)/$(RPMCONFIGDIR)/rpmrc - $(INSTALL_DATA) -m 644 $(srcdir)/rpmpopt $(installprefix)/$(RPMCONFIGDIR)/rpmpopt - (cd $(installprefix)/$(LIBDIR); rm -f rpmrc; ln -s $(RPMCONFIGDIR)/rpmrc) - (cd $(installprefix)/$(LIBDIR); rm -f rpmpopt; ln -s $(RPMCONFIGDIR)/rpmpopt) - (cd lib; $(MAKE) LIBDIR=$(installprefix)/$(LIBDIR) INCDIR=$(installprefix)/$(INCDIR) install) - (cd build; $(MAKE) LIBDIR=$(installprefix)/$(LIBDIR) INCDIR=$(installprefix)/$(INCDIR) install) - for d in $(INSTSUBDIRS); do \ - (cd $$d; $(MAKE) installprefix=$(installprefix) LIBDIR=$(installprefix)/$(LIBDIR) INCDIR=$(installprefix)/$(INCDIR) install) ;\ +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) \ + && $(MAKE) dvi \ + && $(MAKE) check \ + && $(MAKE) install \ + && $(MAKE) installcheck \ + && $(MAKE) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ done + for subdir in $(SUBDIRS); do \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + +maintainer-clean-depend: + -rm -rf .deps + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $< + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $< + @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ + < .deps/$(*F).p > .deps/$(*F).P + @-rm -f .deps/$(*F).p +info: info-recursive +dvi: dvi-recursive +check: all-am + $(MAKE) check-recursive +installcheck: installcheck-recursive +all-recursive-am: config.h + $(MAKE) all-recursive + +all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) $(HEADERS) config.h + +install-exec-am: install-binPROGRAMS install-binSCRIPTS + +install-data-am: install-rpmbinPROGRAMS install-configSCRIPTS install-man install-configDATA install-data-local + +uninstall-am: uninstall-binPROGRAMS uninstall-rpmbinPROGRAMS uninstall-binSCRIPTS uninstall-configSCRIPTS uninstall-man uninstall-configDATA + +install-exec: install-exec-recursive install-exec-am + @$(NORMAL_INSTALL) + +install-data: install-data-recursive install-data-am + @$(NORMAL_INSTALL) + +install: install-recursive install-exec-am install-data-am + @: + +uninstall: uninstall-recursive uninstall-am + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: installdirs-recursive + $(mkinstalldirs) $(DATADIR)$(bindir) $(DATADIR)$(rpmbindir) \ + $(DATADIR)$(bindir) $(DATADIR)$(configdir) \ + $(DESTDIR)$(mandir)/man8 $(DATADIR)$(configdir) + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \ + mostlyclean-noinstPROGRAMS mostlyclean-rpmbinPROGRAMS \ + mostlyclean-compile mostlyclean-tags mostlyclean-depend \ + mostlyclean-generic + +clean-am: clean-hdr clean-binPROGRAMS clean-noinstPROGRAMS \ + clean-rpmbinPROGRAMS clean-compile clean-tags \ + clean-depend clean-generic mostlyclean-am + +distclean-am: distclean-hdr distclean-binPROGRAMS \ + distclean-noinstPROGRAMS distclean-rpmbinPROGRAMS \ + distclean-compile distclean-tags distclean-depend \ + distclean-generic clean-am + +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-binPROGRAMS \ + maintainer-clean-noinstPROGRAMS \ + maintainer-clean-rpmbinPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + +mostlyclean: mostlyclean-recursive mostlyclean-am + +clean: clean-recursive clean-am + +distclean: distclean-recursive distclean-am + -rm -f config.status + +maintainer-clean: maintainer-clean-recursive maintainer-clean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ +mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ +maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ +mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \ +clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \ +mostlyclean-rpmbinPROGRAMS distclean-rpmbinPROGRAMS \ +clean-rpmbinPROGRAMS maintainer-clean-rpmbinPROGRAMS \ +uninstall-rpmbinPROGRAMS install-rpmbinPROGRAMS mostlyclean-compile \ +distclean-compile clean-compile maintainer-clean-compile \ +uninstall-binSCRIPTS install-binSCRIPTS uninstall-configSCRIPTS \ +install-configSCRIPTS install-man8 uninstall-man8 install-man \ +uninstall-man uninstall-configDATA install-configDATA \ +install-data-recursive uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info dvi installcheck all-recursive-am all-am \ +install-exec-am install-data-am uninstall-am install-exec install-data \ +install uninstall all installdirs mostlyclean-generic distclean-generic \ +clean-generic maintainer-clean-generic clean mostlyclean distclean \ +maintainer-clean + + +rpm.o: + $(COMPILE) \ + -DRPMNLSDIR=\"$(RPMNLSDIR)\" \ + -DRPMNLSPACKAGE=\"$(PACKAGE)\" \ + -DVERSION=\"$(VERSION)\" \ + -DLIBRPMALIAS_FILENAME=\"$(LIBRPMALIAS_FILENAME)\" \ + -DRPMCONFIGDIR="\"$(RPMCONFIGDIR)"\" \ + -c rpm.c + +include ./Makefile.inc + +install-data-local: + ln -s rpm/rpmrc $(libdir)/rpmrc + ln -s rpm/rpmpopt $(libdir)/rpmpopt + +# FIXME: these should be generated in configure.in +find-requires: find-requires.sh + cp $< $@ +find-provides: find-provides.sh + cp $< $@ +rpmrc: lib-rpmrc + cp $< $@ + +# FIXME: these should be checked .PHONY: tar tar: rm -rf /tmp/rpm-$(VERSION) make installprefix=/tmp/rpm-$(VERSION)$(ROOT) install - $(mkinstalldirs) /tmp/rpm-$(VERSION)@prefix@/src/redhat/SOURCES - $(mkinstalldirs) /tmp/rpm-$(VERSION)@prefix@/src/redhat/SPECS - $(mkinstalldirs) /tmp/rpm-$(VERSION)@prefix@/src/redhat/SRPMS - $(mkinstalldirs) /tmp/rpm-$(VERSION)@prefix@/src/redhat/RPMS - $(mkinstalldirs) /tmp/rpm-$(VERSION)@prefix@/src/redhat/BUILD - $(mkinstalldirs) /tmp/rpm-$(VERSION)@varprefix@/lib/rpm + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SOURCES + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SPECS + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SRPMS + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/RPMS + $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/BUILD + $(mkinstalldirs) /tmp/rpm-$(VERSION)/var/local/lib/rpm $(mkinstalldirs) /tmp/rpm-$(VERSION)/var/tmp # Couldn't figure de ARCH value # $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/RPMS/i386 cd /tmp/rpm-$(VERSION) ; tar cvf /tmp/rpm-$(VERSION).tar . -.PHONY: clean -clean: - for d in $(ALLSUBDIRS); do \ - (cd $$d; $(MAKE) $@) ;\ - done - rm -f *.a *.o core *~ $(PROGS) rpm.shared - find . -name "*.orig" -exec rm {} \; - find . -name core -exec rm {} \; - -.PHONY: distclean -distclean: - for d in $(ALLSUBDIRS); do \ - (cd $$d; $(MAKE) $@) ;\ - done - rm -f *.a *.o core *~ $(PROGS) rpm.shared librpmrc find-provides.sh find-requires.sh - rm -f .depend-done Makefile Makefile.inc config.h config.cache - rm -f config.status config.log lib-rpmrc - - -.PHONY: depend -depend: - topdir_path=`( cd $(top_srcdir) && pwd )` ; \ - /bin/rm -f .depend ; \ - $(CPP) -MM $(CFLAGS) $(srcdir)/$(SOURCES) | \ - sed s+$$topdir_path+$(top_srcdir)+g > .depend ; \ - for d in $(ALLSUBDIRS); do \ - (cd $$d; $(MAKE) $@) ;\ - done - /bin/rm -f .depend-done - echo > .depend-done - .PHONY: noconfig noconfig: find . -name "Makefile" -exec rm {} \; @@ -217,6 +748,6 @@ archive: @echo " " @echo "The final archive is ./rpm-$(VERSION).tar.gz." -ifeq (.depend,$(wildcard .depend)) -include .depend -endif +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/acconfig.h b/acconfig.h index 36f042cbb..adde4231d 100644 --- a/acconfig.h +++ b/acconfig.h @@ -1,3 +1,34 @@ +/* acconfig.h + This file is in the public domain. + + Descriptive text for the C preprocessor macros that + the distributed Autoconf macros can define. + No software package will use all of them; autoheader copies the ones + your configure.in uses into your configuration header file templates. + + The entries are in sort -df order: alphabetical, case insensitive, + ignoring punctuation (such as underscores). Although this order + can split up related entries, it makes it easier to check whether + a given entry is in the file. + + Leave the following blank line there!! Autoheader needs it. */ +^L + +/* Define to 1 if NLS is requested. */ +#undef ENABLE_NLS + +/* Define as 1 if you have catgets and don't want to use GNU gettext. */ +#undef HAVE_CATGETS + +/* Define as 1 if you have gettext and don't want to use GNU gettext. */ +#undef HAVE_GETTEXT + +/* Define if your locale.h file contains LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define to 1 if you have the stpcpy function. */ +#undef HAVE_STPCPY + /* Define as 1 if you have inet_aton() */ #undef HAVE_INET_ATON @@ -49,3 +80,10 @@ /* define this to be whatever root's primary group is, in double quotes */ #undef ROOT_GROUP + +^L +/* Leave that blank line there!! Autoheader needs it. + If you're adding to this file, keep in mind: + The entries are in sort -df order: alphabetical, case insensitive, + ignoring punctuation (such as underscores). */ + diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 000000000..3a6b95298 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,630 @@ +dnl aclocal.m4 generated automatically by aclocal 1.3 + +dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +dnl This Makefile.in is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +# Like AC_CONFIG_HEADER, but automatically create stamp file. + +AC_DEFUN(AM_CONFIG_HEADER, +[AC_PREREQ([2.12]) +AC_CONFIG_HEADER([$1]) +dnl When config.status generates a header, we must update the stamp-h file. +dnl This file resides in the same directory as the config header +dnl that is generated. We must strip everything past the first ":", +dnl and everything past the last "/". +AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl +ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, +<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, +<<am_indx=1 +for am_file in <<$1>>; do + case " <<$>>CONFIG_HEADERS " in + *" <<$>>am_file "*<<)>> + echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx + ;; + esac + am_indx=`expr "<<$>>am_indx" + 1` +done<<>>dnl>>) +changequote([,]))]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AM_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") +AC_DEFINE_UNQUOTED(VERSION, "$VERSION")) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + + +# serial 1 + +AC_DEFUN(AM_PROG_INSTALL, +[AC_REQUIRE([AC_PROG_INSTALL]) +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' +AC_SUBST(INSTALL_SCRIPT)dnl +]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + + +# serial 1 + +AC_DEFUN(AM_C_PROTOTYPES, +[AC_REQUIRE([AM_PROG_CC_STDC]) +AC_REQUIRE([AC_PROG_CPP]) +AC_MSG_CHECKING([for function prototypes]) +if test "$am_cv_prog_cc_stdc" != no; then + AC_MSG_RESULT(yes) + AC_DEFINE(PROTOTYPES) + U= ANSI2KNR= +else + AC_MSG_RESULT(no) + U=_ ANSI2KNR=./ansi2knr + # Ensure some checks needed by ansi2knr itself. + AC_HEADER_STDC + AC_CHECK_HEADERS(string.h) +fi +AC_SUBST(U)dnl +AC_SUBST(ANSI2KNR)dnl +]) + + +# serial 1 + +# @defmac AC_PROG_CC_STDC +# @maindex PROG_CC_STDC +# @ovindex CC +# If the C compiler in not in ANSI C mode by default, try to add an option +# to output variable @code{CC} to make it so. This macro tries various +# options that select ANSI C on some system or another. It considers the +# compiler to be in ANSI C mode if it handles function prototypes correctly. +# +# If you use this macro, you should check after calling it whether the C +# compiler has been set to accept ANSI C; if not, the shell variable +# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source +# code in ANSI C, you can make an un-ANSIfied copy of it by using the +# program @code{ansi2knr}, which comes with Ghostscript. +# @end defmac + +AC_DEFUN(AM_PROG_CC_STDC, +[AC_REQUIRE([AC_PROG_CC]) +AC_BEFORE([$0], [AC_C_INLINE]) +AC_BEFORE([$0], [AC_C_CONST]) +dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require +dnl a magic option to avoid problems with ANSI preprocessor commands +dnl like #elif. +dnl FIXME: can't do this because then AC_AIX won't work due to a +dnl circular dependency. +dnl AC_BEFORE([$0], [AC_PROG_CPP]) +AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) +AC_CACHE_VAL(am_cv_prog_cc_stdc, +[am_cv_prog_cc_stdc=no +ac_save_CC="$CC" +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + AC_TRY_COMPILE( +[#include <stdarg.h> +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +], [ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +], +[am_cv_prog_cc_stdc="$ac_arg"; break]) +done +CC="$ac_save_CC" +]) +if test -z "$am_cv_prog_cc_stdc"; then + AC_MSG_RESULT([none needed]) +else + AC_MSG_RESULT($am_cv_prog_cc_stdc) +fi +case "x$am_cv_prog_cc_stdc" in + x|xno) ;; + *) CC="$CC $am_cv_prog_cc_stdc" ;; +esac +]) + +# Macro to add for using GNU gettext. +# Ulrich Drepper <drepper@cygnus.com>, 1995. +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 5 + +AC_DEFUN(AM_WITH_NLS, + [AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) + + USE_INCLUDED_LIBINTL=no + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + AC_DEFINE(ENABLE_NLS) + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If gettext or catgets are available (in this order) we + dnl use this. Else we have to fall back to GNU NLS library. + dnl catgets is only used if permitted by option --with-catgets. + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + + AC_CHECK_HEADER(libintl.h, + [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, + [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")], + gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) + + if test "$gt_cv_func_gettext_libc" != "yes"; then + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CACHE_CHECK([for gettext in libintl], + gt_cv_func_gettext_libintl, + [AC_CHECK_LIB(intl, gettext, + gt_cv_func_gettext_libintl=yes, + gt_cv_func_gettext_libintl=no)], + gt_cv_func_gettext_libintl=no)]) + fi + + if test "$gt_cv_func_gettext_libc" = "yes" \ + || test "$gt_cv_func_gettext_libintl" = "yes"; then + AC_DEFINE(HAVE_GETTEXT) + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + AC_CHECK_FUNCS(dcgettext) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + INSTOBJEXT=.mo + fi + fi + ]) + + if test "$CATOBJEXT" = "NONE"; then + AC_MSG_CHECKING([whether catgets can be used]) + AC_ARG_WITH(catgets, + [ --with-catgets use catgets functions if available], + nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) + AC_MSG_RESULT($nls_cv_use_catgets) + + if test "$nls_cv_use_catgets" = "yes"; then + dnl No gettext in C library. Try catgets next. + AC_CHECK_LIB(i, main) + AC_CHECK_FUNC(catgets, + [AC_DEFINE(HAVE_CATGETS) + INTLOBJS="\$(CATOBJS)" + AC_PATH_PROG(GENCAT, gencat, no)dnl + if test "$GENCAT" != "no"; then + AC_PATH_PROG(GMSGFMT, gmsgfmt, no) + if test "$GMSGFMT" = "no"; then + AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) + fi + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.cat + INSTOBJEXT=.cat + DATADIRNAME=lib + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi]) + fi + fi + + if test "$CATOBJEXT" = "NONE"; then + dnl Neither gettext nor catgets in included in the C library. + dnl Fall back on GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + INTLOBJS="\$(GETTOBJS)" + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_SUBST(MSGFMT) + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.gmo + INSTOBJEXT=.mo + DATADIRNAME=share + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + else + DATADIRNAME=share + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + + # If this is used in GNU gettext we have to set USE_NLS to `yes' + # because some of the sources are only built for this goal. + if test "$PACKAGE" = gettext; then + USE_NLS=yes + USE_INCLUDED_LIBINTL=yes + fi + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.in. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLDEPS) + AC_SUBST(INTLLIBS) + AC_SUBST(INTLOBJS) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +AC_DEFUN(AM_GNU_GETTEXT, + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ +unistd.h sys/param.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ +strdup __argz_count __argz_stringify __argz_next]) + + if test "${ac_cv_func_stpcpy+set}" != "set"; then + AC_CHECK_FUNCS(stpcpy) + fi + if test "${ac_cv_func_stpcpy}" = "yes"; then + AC_DEFINE(HAVE_STPCPY) + fi + + AM_LC_MESSAGES + AM_WITH_NLS + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl The reference to <locale.h> in the installed <libintl.h> file + dnl must be resolved because we cannot expect the users of this + dnl to define HAVE_LOCALE_H. + if test $ac_cv_header_locale_h = yes; then + INCLUDE_LOCALE_H="#include <locale.h>" + else + INCLUDE_LOCALE_H="\ +/* The system does not provide the header <locale.h>. Take care yourself. */" + fi + AC_SUBST(INCLUDE_LOCALE_H) + + dnl Determine which catalog format we have (if any is needed) + dnl For now we know about two different formats: + dnl Linux libc-5 and the normal X/Open format + test -d intl || mkdir intl + if test "$CATOBJEXT" = ".cat"; then + AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) + + dnl Transform the SED scripts while copying because some dumb SEDs + dnl cannot handle comments. + sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed + fi + dnl po2tbl.sed is always needed. + sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ + $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed + + dnl In the intl/Makefile.in we have a special dependency which makes + dnl only sense for gettext. We comment this out for non-gettext + dnl packages. + if test "$PACKAGE" = "gettext"; then + GT_NO="#NO#" + GT_YES= + else + GT_NO= + GT_YES="#YES#" + fi + AC_SUBST(GT_NO) + AC_SUBST(GT_YES) + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl *** For now the libtool support in intl/Makefile is not for real. + l= + AC_SUBST(l) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + +# Search path for a program which passes the given test. +# Ulrich Drepper <drepper@cygnus.com>, 1996. +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN(AM_PATH_PROG_WITH_TEST, +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test -n "[$]$1"; then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# Check whether LC_MESSAGES is available in <locale.h>. +# Ulrich Drepper <drepper@cygnus.com>, 1995. +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +AC_DEFUN(AM_LC_MESSAGES, + [if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES) + fi + fi]) + diff --git a/build/.cvsignore b/build/.cvsignore index 5dae353d9..7401f9d96 100644 --- a/build/.cvsignore +++ b/build/.cvsignore @@ -1,2 +1,3 @@ +.deps .depend Makefile diff --git a/build/Makefile.am b/build/Makefile.am new file mode 100644 index 000000000..1f44c958b --- /dev/null +++ b/build/Makefile.am @@ -0,0 +1,23 @@ +# Makefile for rpmbuild library. + +AUTOMAKE_OPTIONS = 1.3 foreign + +INCLUDES = -I../lib @INCPATH@ + +include_HEADERS = rpmbuild.h rpmspec.h +noinst_HEADERS = buildio.h myftw.h + +lib_LIBRARIES = librpmbuild.a +librpmbuild_a_SOURCES = \ + build.c expression.c files.c misc.c myftw.c names.c pack.c \ + parseBuildInstallClean.c parseChangelog.c parseDescription.c \ + parseFiles.c parsePreamble.c parsePrep.c parseReqs.c parseScript.c \ + parseSpec.c reqprov.c spec.c + +include ../Makefile.inc + +pack.o: pack.c + $(COMPILE) -DVERSION=\"$(VERSION)\" -o $@ -c $< + +files.o: files.c + $(COMPILE) -DFINDPROVIDES=\"$(FINDPROVIDES)\" -DFINDREQUIRES=\"$(FINDREQUIRES)\" -o $@ -c $< diff --git a/build/Makefile.in b/build/Makefile.in index df50eda1f..8e35420cc 100644 --- a/build/Makefile.in +++ b/build/Makefile.in @@ -1,62 +1,388 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Makefile for rpmbuild library. + + +SHELL = /bin/sh + srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ -LIBOBJECTS = \ - build.o expression.o files.o misc.o myftw.o names.o pack.o \ - parseBuildInstallClean.o parseChangelog.o parseDescription.o \ - parseFiles.o parsePreamble.o parsePrep.o parseReqs.o \ - parseScript.o parseSpec.o reqprov.o spec.o +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -LIBBUILD = librpmbuild.a -LOADLIBES = -lrpm -lz ../popt/libpopt.a $(LIBEFENCE) -PROGS = -INSTALL= @INSTALL@ -INSTALL_PROGRAM= @INSTALL_PROGRAM@ -INSTALL_DATA= @INSTALL_DATA@ +DISTDIR = -# ----------------------------------------------------------------------- +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ -include ../Makefile.inc +top_builddir = .. -TARGET=everything +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ -all: $(TARGET) +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ -everything: $(LIBBUILD) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AWK = @AWK@ +BZIP2BIN = @BZIP2BIN@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +FIXPERMS = @FIXPERMS@ +GENCAT = @GENCAT@ +GETTEXTSTUB = @GETTEXTSTUB@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +GZIPBIN = @GZIPBIN@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INCPATH = @INCPATH@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEF = @INTLDEF@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LDFLAGS_STATIC = @LDFLAGS_STATIC@ +LIBDL = @LIBDL@ +LIBINTL = @LIBINTL@ +LIBMISC = @LIBMISC@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MISCDIR = @MISCDIR@ +MISCPATH = @MISCPATH@ +MKDIR = @MKDIR@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PO = @PO@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +ROOT_GROUP = @ROOT_GROUP@ +RPM = @RPM@ +RPMCONFIGDIR = @RPMCONFIGDIR@ +TARGET = @TARGET@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +l = @l@ +tmpdir = @tmpdir@ +topdir = @topdir@ +topsrcdir = @topsrcdir@ +varprefix = @varprefix@ -$(LIBBUILD): $(LIBOBJECTS) - $(AR) r $@ $(LIBOBJECTS) - $(RANLIB) $@ +AUTOMAKE_OPTIONS = 1.3 foreign -$(PROGS): $(LIBOBJECTS) +INCLUDES = -I../lib @INCPATH@ -# GNU make doesn't need the pack.c on here, but broken makes may -pack.o: pack.c - $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -o $@ -c $< +include_HEADERS = rpmbuild.h rpmspec.h +noinst_HEADERS = buildio.h myftw.h -files.o: files.c - $(CC) $(CFLAGS) -DFINDPROVIDES=\"$(FINDPROVIDES)\" -DFINDREQUIRES=\"$(FINDREQUIRES)\" -o $@ -c $< +lib_LIBRARIES = librpmbuild.a +librpmbuild_a_SOURCES = \ + build.c expression.c files.c misc.c myftw.c names.c pack.c \ + parseBuildInstallClean.c parseChangelog.c parseDescription.c \ + parseFiles.c parsePreamble.c parsePrep.c parseReqs.c parseScript.c \ + parseSpec.c reqprov.c spec.c +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +librpmbuild_a_LIBADD = +librpmbuild_a_OBJECTS = build.o expression.o files.o misc.o myftw.o \ +names.o pack.o parseBuildInstallClean.o parseChangelog.o \ +parseDescription.o parseFiles.o parsePreamble.o parsePrep.o parseReqs.o \ +parseScript.o parseSpec.o reqprov.o spec.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(include_HEADERS) $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in TODO + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +DEP_FILES = .deps/build.P .deps/expression.P .deps/files.P .deps/misc.P \ +.deps/myftw.P .deps/names.P .deps/pack.P .deps/parseBuildInstallClean.P \ +.deps/parseChangelog.P .deps/parseDescription.P .deps/parseFiles.P \ +.deps/parsePreamble.P .deps/parsePrep.P .deps/parseReqs.P \ +.deps/parseScript.P .deps/parseSpec.P .deps/reqprov.P .deps/spec.P +SOURCES = $(librpmbuild_a_SOURCES) +OBJECTS = $(librpmbuild_a_OBJECTS) + +all: Makefile $(LIBRARIES) $(HEADERS) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign build/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + +install-libLIBRARIES: $(lib_LIBRARIES) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(libdir) + list='$(lib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ + else :; fi; \ + done + @$(POST_INSTALL) + @list='$(lib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ + else :; fi; \ + done + +uninstall-libLIBRARIES: + @$(NORMAL_UNINSTALL) + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +librpmbuild.a: $(librpmbuild_a_OBJECTS) $(librpmbuild_a_DEPENDENCIES) + -rm -f librpmbuild.a + $(AR) cru librpmbuild.a $(librpmbuild_a_OBJECTS) $(librpmbuild_a_LIBADD) + $(RANLIB) librpmbuild.a + +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(includedir) + @list='$(include_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ + done -rpminject: rpminject.o ../build/librpmbuild.a ../popt/libpopt.a ../lib/librpm.a +tags: TAGS -install: - $(INSTALL_DATA) -m 644 $(srcdir)/rpmbuild.h $(INCDIR) - $(INSTALL_DATA) -m 644 $(srcdir)/rpmspec.h $(INCDIR) - $(INSTALL_DATA) -m 644 librpmbuild.a $(LIBDIR) +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) -distclean: clean - rm -f Makefile +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) -clean: - rm -f *.a *.o *~ $(PROGS) +mostlyclean-tags: -depend: - topdir_path=`( cd $(top_srcdir) && pwd )` ; \ - /bin/rm -f .depend ; \ - $(CPP) $(CFLAGS) -MM $(srcdir)/*.c | \ - sed s+$$topdir_path+$(top_srcdir)+g > .depend +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = build + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign build/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + +maintainer-clean-depend: + -rm -rf .deps + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $< + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $< + @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ + < .deps/$(*F).p > .deps/$(*F).P + @-rm -f .deps/$(*F).p +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: install-libLIBRARIES + @$(NORMAL_INSTALL) + +install-data: install-includeHEADERS + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: uninstall-libLIBRARIES uninstall-includeHEADERS + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + $(mkinstalldirs) $(DATADIR)$(libdir) $(DATADIR)$(includedir) + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +clean: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean + +distclean: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-includeHEADERS \ +install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \ +maintainer-clean-tags distdir mostlyclean-depend distclean-depend \ +clean-depend maintainer-clean-depend info dvi installcheck install-exec \ +install-data install uninstall all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +include ../Makefile.inc + +pack.o: pack.c + $(COMPILE) -DVERSION=\"$(VERSION)\" -o $@ -c $< + +files.o: files.c + $(COMPILE) -DFINDPROVIDES=\"$(FINDPROVIDES)\" -DFINDREQUIRES=\"$(FINDREQUIRES)\" -o $@ -c $< -ifeq (.depend,$(wildcard .depend)) -include .depend -endif +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/configure.in b/configure.in index 66a724429..c68565206 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,16 @@ dnl failing causes the script to bomb out with a message. If we can't fix dnl it, why check it? AC_INIT(rpm.c) -AC_CONFIG_HEADER(config.h) +AM_CONFIG_HEADER(config.h) +AC_PREREQ(2.12) dnl Minimum Autoconf version required. + +AM_INIT_AUTOMAKE(rpm, 2.90) + +AC_CANONICAL_HOST +dnl XXX AM_MAINTAINER_MODE + +dnl Set of available languages. +ALL_LINGUAS="cz de fi fr pt_BR ru sk sr sv tr" dnl default to not using NLS XGETTEXT="" @@ -13,14 +22,18 @@ LIBINTL="" PO="" GETTEXTSTUB="gettextstub.o" -MISCOBJS= +LIBOBJS= -AC_CANONICAL_SYSTEM +dnl YYY AC_CANONICAL_SYSTEM RPMCONFIGDIR='$(libdir)/rpm' dnl Checks for programs. AC_PROG_CC +if test "$ac_cv_prog_gcc" = yes; then + CFLAGS="$CFLAGS -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-subscripts" +fi + AC_PROG_CPP AC_PROG_GCC_TRADITIONAL AC_PROG_INSTALL @@ -149,6 +162,11 @@ AC_AIX AC_MINIX AC_ISC_POSIX +dnl This test must precede tests of compiler characteristics like +dnl that for the inline keyword, since it may change the degree to +dnl which the compiler supports such features. +AM_C_PROTOTYPES + AC_PROG_AWK AC_PROG_LN_S AC_PROG_MAKE_SET @@ -325,7 +343,7 @@ AC_CHECK_FUNC(dbopen, [], ) AC_CHECK_FUNC(fork, [], [echo "using vfork() instead of fork()"; - MISCOBJS=fakefork.o]) + LIBOBJS=fakefork.o]) dnl AmigaOS and IXEmul have a fork() dummy case "$target" in @@ -362,11 +380,11 @@ AC_CHECK_HEADERS(sys/mman.h sys/param.h sys/resource.h sys/utsname.h sys/wait.h) # solaris2.4 and sinix 5.42 have broken fnmatch. get glob also to be safe. case $target in *-*-solaris2.4|mips-sni-sysv4*) - MISCOBJS="$MISCOBJS glob.o fnmatch.o" + LIBOBJS="$LIBOBJS glob.o fnmatch.o" ;; *) - AC_CHECK_HEADERS(glob.h,,MISCOBJS="$MISCOBJS glob.o") - AC_CHECK_HEADERS(fnmatch.h,,MISCOBJS="$MISCOBJS fnmatch.o") + AC_CHECK_HEADERS(glob.h,,LIBOBJS="$LIBOBJS glob.o") + AC_CHECK_HEADERS(fnmatch.h,,LIBOBJS="$LIBOBJS fnmatch.o") ;; esac @@ -426,18 +444,38 @@ AC_TYPE_MODE_T AC_TYPE_PID_T dnl Checks for library functions. -AC_CHECK_FUNC(inet_aton, AC_DEFINE(HAVE_INET_ATON), MISCOBJS="$MISCOBJS inet_aton.o") -AC_CHECK_FUNC(realpath, AC_DEFINE(HAVE_REALPATH), MISCOBJS="$MISCOBJS realpath.o") +AC_FUNC_ALLOCA + +dnl XXX AC_FUNC_FNMATCH +dnl XXX if test $ac_cv_func_fnmatch_works = no; then +dnl XXX LIBOBJS="$LIBOBJS fnmatch.o" +dnl XXX AC_DEFINE_UNQUOTED(fnmatch, rpl_fnmatch) +dnl XXX fi + +dnl XXX AC_FUNC_MEMCMP +dnl XXX AC_FUNC_MMAP +dnl XXX AC_TYPE_SIGNAL +dnl XXX AC_FUNC_STRCOLL +dnl XXX AC_FUNC_STRFTIME +dnl XXX AC_FUNC_UTIME_NULL +dnl XXX AC_FUNC_VFORK +dnl XXX AC_FUNC_VPRINTF +dnl XXX AC_CHECK_FUNCS(gethostname lchown mkdir mkfifo rmdir select uname) + +dnl XXX AC_REPLACE_FUNCS(getcwd getwd glob inet_aton putenv realpath strdup strerror strtol strtoul strspn strstr) + +AC_CHECK_FUNC(inet_aton, AC_DEFINE(HAVE_INET_ATON), LIBOBJS="$LIBOBJS inet_aton.o") +AC_CHECK_FUNC(realpath, AC_DEFINE(HAVE_REALPATH), LIBOBJS="$LIBOBJS realpath.o") AC_CHECK_FUNC(getmntent, AC_DEFINE(HAVE_GETMNTENT), [ AC_CHECK_FUNC(mntctl, AC_DEFINE(HAVE_MNTCTL),[ AC_CHECK_FUNC(getmntinfo_r, AC_DEFINE(HAVE_GETMNTINFO_R), [ AC_CHECK_LIB(c_r, getmntinfo_r, [LIBS="$LIBS -lc_r"; AC_DEFINE(HAVE_GETMNTINFO_R)], - MISCOBJS="$MISCOBJS getmntent.o")])])]) -AC_CHECK_FUNC(strerror, [], MISCOBJS="$MISCOBJS strerror.o") -AC_CHECK_FUNC(strtol, [], MISCOBJS="$MISCOBJS strtol.o") -AC_CHECK_FUNC(strtoul, [], MISCOBJS="$MISCOBJS strtoul.o") -AC_CHECK_FUNC(strdup, [], MISCOBJS="$MISCOBJS strdup.o") + LIBOBJS="$LIBOBJS getmntent.o")])])]) +AC_CHECK_FUNC(strerror, [], LIBOBJS="$LIBOBJS strerror.o") +AC_CHECK_FUNC(strtol, [], LIBOBJS="$LIBOBJS strtol.o") +AC_CHECK_FUNC(strtoul, [], LIBOBJS="$LIBOBJS strtoul.o") +AC_CHECK_FUNC(strdup, [], LIBOBJS="$LIBOBJS strdup.o") LCHOWN=no AC_CHECK_FUNC(lchown, [LCHOWN=yes; AC_DEFINE(HAVE_LCHOWN)]) @@ -513,6 +551,7 @@ AC_DEFINE_UNQUOTED(ROOT_GROUP, "$ROOT_GROUP") AC_MSG_RESULT($ROOT_GROUP) AC_SUBST(ROOT_GROUP) +AM_GNU_GETTEXT if test "x$varprefix" = "x"; then varprefix=`echo $prefix | sed 's/usr/var/'` @@ -540,7 +579,7 @@ elif echo "$build_os" | grep sunos > /dev/null; then CFLAGS="$CFLAGS -D__USE_FIXED_PROTOTYPES__" AC_DEFINE(NEED_STRINGS_H) AC_DEFINE(NEED_MYREALLOC) - MISCOBJS="$MISCOBJS myrealloc.o" + LIBOBJS="$LIBOBJS myrealloc.o" elif echo "$build_os" | grep hpux > /dev/null; then LIBDL=-ldld echo "hacking things up for hpux" @@ -590,13 +629,13 @@ else fi -if test -n "$MISCOBJS" ; then +if test -n "$LIBOBJS" ; then MISCDIR=misc LIBMISC=-lmisc MISCPATH=misc/libmisc.a fi -AC_SUBST(MISCOBJS) +AC_SUBST(LIBOBJS) AC_SUBST(INCPATH) AC_SUBST(LIBINTL) AC_SUBST(varprefix) @@ -621,14 +660,8 @@ AC_SUBST(RPMCONFIGDIR) AC_SUBST(MKDIR_P) AC_SUBST(LDFLAGS_STATIC) -if test -d newbuild ; then - NBMAKEFILE=newbuild/Makefile -else - NBMAKEFILE= -fi - # XXX Propagate -lucb to popt ... export LIBS INCPATH AC_CONFIG_SUBDIRS(popt) -AC_OUTPUT(Makefile Makefile.inc lib-rpmrc macros lib/Makefile build/Makefile $NBMAKEFILE tools/Makefile po/Makefile misc/Makefile) +AC_OUTPUT(Makefile Makefile.inc lib-rpmrc macros lib/Makefile build/Makefile tools/Makefile scripts/Makefile misc/Makefile po/Makefile intl/Makefile) diff --git a/convertdb.c b/convertdb.c index f770cef11..63a9d5123 100644 --- a/convertdb.c +++ b/convertdb.c @@ -4,6 +4,8 @@ #include "build/rpmbuild.h" +#include "intl.h" + #include "falloc.h" #include "oldrpmdb.h" #include "oldheader.h" @@ -201,7 +203,7 @@ int main(int argc, char ** argv) { exit(1); } - rpmReadConfigFiles(NULL, NULL, NULL, 0); + rpmReadConfigFiles(NULL, NULL, NULL, 0, NULL); printf(_("rpmconvert 1.0 - converting database in /var/lib/rpm\n")); convertDB(); diff --git a/intl/.cvsignore b/intl/.cvsignore new file mode 100644 index 000000000..3b6496f88 --- /dev/null +++ b/intl/.cvsignore @@ -0,0 +1,2 @@ +Makefile +po2tbl.sed diff --git a/lib/.cvsignore b/lib/.cvsignore index 8bb729308..289842eb5 100644 --- a/lib/.cvsignore +++ b/lib/.cvsignore @@ -1,3 +1,4 @@ +.deps .depend Makefile tagtable.c diff --git a/lib/Makefile.am b/lib/Makefile.am new file mode 100644 index 000000000..d136e087b --- /dev/null +++ b/lib/Makefile.am @@ -0,0 +1,42 @@ +# Makefile for rpm library. + +AUTOMAKE_OPTIONS = 1.3 foreign + +INCLUDES = -I../build @INCPATH@ + +rpmincdir = $(includedir)/rpm +rpminc_HEADERS = dbindex.h header.h misc.h rpmlib.h rpmmacro.h stringbuf.h +noinst_HEADERS = \ + cpio.h depends.h falloc.h install.h \ + md5.h oldheader.h oldrpmdb.h rpm_malloc.h \ + rpmdb.h rpmlead.h signature.h tread.h + +lib_LIBRARIES = librpm.a +librpm_a_SOURCES = \ + cpio.c dbindex.c depends.c falloc.c \ + formats.c fs.c header.c install.c \ + lookup.c macro.c md5.c md5sum.c \ + messages.c misc.c oldheader.c package.c \ + rebuilddb.c rpmdb.c rpmerr.c rpmlead.c \ + rpmrc.c signature.c stringbuf.c tagtable.c \ + tread.c uninstall.c verify.c + +include ../Makefile.inc + +misc.o: misc.c + $(COMPILE) -DVERSION=\"$(VERSION)\" -o $@ -c $< + +rpmrc.o: rpmrc.c + $(COMPILE) -DLIBRPMRC_FILENAME="\"$(LIBRPMRC_FILENAME)"\" -DMACROFILES=\"$(MACROFILES)\" -o $@ -c $< + +tagtable.c: rpmlib.h + echo '#include "rpmlib.h"' > tagtable.c + echo '' >> tagtable.c + echo 'const struct headerTagTableEntry rpmTagTable[] = {' >> tagtable.c + awk '/(RPMTAG_[A-Z0-9]*)[ \t]+([0-9]*)/ && !/internal/ { printf("\t{ \"%s\", %s },\n", $$2, $$3); }' < $(srcdir)/rpmlib.h >> tagtable.c + echo ' { NULL, 0 }' >> tagtable.c + echo '};' >> tagtable.c + echo '' >> tagtable.c + echo 'const int rpmTagTableSize = sizeof(rpmTagTable) / sizeof(struct headerTagTableEntry) - 1;' >> tagtable.c + +BUILT_SOURCES = tagtable.c diff --git a/lib/Makefile.in b/lib/Makefile.in index fbcd8d13e..08dbe16cb 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -1,48 +1,398 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Makefile for rpm library. + + +SHELL = /bin/sh + srcdir = @srcdir@ -VPATH = @srcdir@ top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ -LIBOBJECTS = header.o misc.o messages.o \ - rpmerr.o falloc.o macro.o \ - md5.o md5sum.o dbindex.o \ - rpmrc.o depends.o rpmdb.o \ - stringbuf.o rpmlead.o package.o \ - uninstall.o oldheader.o install.o \ - signature.o verify.o rebuilddb.o \ - tread.o cpio.o formats.o \ - fs.o lookup.o - -SOURCES = $(addprefix $(srcdir)/,$(subst .o,.c,$(LIBOBJECTS))) -TAGTABLE = tagtable.o -LIBRPM = librpm.a -LOADLIBES = -lrpm -lgdbm -ldb $(LIBEFENCE) -PROGS = -INSTALL= @INSTALL@ -INSTALL_PROGRAM= @INSTALL_PROGRAM@ -INSTALL_DATA= @INSTALL_DATA@ - -# ----------------------------------------------------------------------- +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -include ../Makefile.inc +DISTDIR = -TARGET=allprogs +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ -all: $(TARGET) +top_builddir = .. -allprogs: $(LIBRPM) $(PROGS) +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ -# GNU make doesn't need this, but stupid ones may -misc.o: misc.c - $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -o $@ -c $< +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ -# ditto -rpmrc.o: rpmrc.c - $(CC) $(CFLAGS) -DLIBRPMRC_FILENAME="\"$(LIBRPMRC_FILENAME)"\" -DMACROFILES=\"$(MACROFILES)\" -o $@ -c $< +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AWK = @AWK@ +BZIP2BIN = @BZIP2BIN@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +FIXPERMS = @FIXPERMS@ +GENCAT = @GENCAT@ +GETTEXTSTUB = @GETTEXTSTUB@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +GZIPBIN = @GZIPBIN@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INCPATH = @INCPATH@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEF = @INTLDEF@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LDFLAGS_STATIC = @LDFLAGS_STATIC@ +LIBDL = @LIBDL@ +LIBINTL = @LIBINTL@ +LIBMISC = @LIBMISC@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MISCDIR = @MISCDIR@ +MISCPATH = @MISCPATH@ +MKDIR = @MKDIR@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PO = @PO@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +ROOT_GROUP = @ROOT_GROUP@ +RPM = @RPM@ +RPMCONFIGDIR = @RPMCONFIGDIR@ +TARGET = @TARGET@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +l = @l@ +tmpdir = @tmpdir@ +topdir = @topdir@ +topsrcdir = @topsrcdir@ +varprefix = @varprefix@ + +AUTOMAKE_OPTIONS = 1.3 foreign + +INCLUDES = -I../build @INCPATH@ + +rpmincdir = $(includedir)/rpm +rpminc_HEADERS = dbindex.h header.h misc.h rpmlib.h rpmmacro.h stringbuf.h +noinst_HEADERS = \ + cpio.h depends.h falloc.h install.h \ + md5.h oldheader.h oldrpmdb.h rpm_malloc.h \ + rpmdb.h rpmlead.h signature.h tread.h + +lib_LIBRARIES = librpm.a +librpm_a_SOURCES = \ + cpio.c dbindex.c depends.c falloc.c \ + formats.c fs.c header.c install.c \ + lookup.c macro.c md5.c md5sum.c \ + messages.c misc.c oldheader.c package.c \ + rebuilddb.c rpmdb.c rpmerr.c rpmlead.c \ + rpmrc.c signature.c stringbuf.c tagtable.c \ + tread.c uninstall.c verify.c + +BUILT_SOURCES = tagtable.c +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +librpm_a_LIBADD = +librpm_a_OBJECTS = cpio.o dbindex.o depends.o falloc.o formats.o fs.o \ +header.o install.o lookup.o macro.o md5.o md5sum.o messages.o misc.o \ +oldheader.o package.o rebuilddb.o rpmdb.o rpmerr.o rpmlead.o rpmrc.o \ +signature.o stringbuf.o tagtable.o tread.o uninstall.o verify.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) $(rpminc_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +DEP_FILES = .deps/cpio.P .deps/dbindex.P .deps/depends.P .deps/falloc.P \ +.deps/formats.P .deps/fs.P .deps/header.P .deps/install.P \ +.deps/lookup.P .deps/macro.P .deps/md5.P .deps/md5sum.P \ +.deps/messages.P .deps/misc.P .deps/oldheader.P .deps/package.P \ +.deps/rebuilddb.P .deps/rpmdb.P .deps/rpmerr.P .deps/rpmlead.P \ +.deps/rpmrc.P .deps/signature.P .deps/stringbuf.P .deps/tagtable \ +.deps/tagtable.P .deps/tread.P .deps/uninstall.P .deps/verify.P +SOURCES = $(librpm_a_SOURCES) +OBJECTS = $(librpm_a_OBJECTS) + +all: Makefile $(LIBRARIES) $(HEADERS) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + +install-libLIBRARIES: $(lib_LIBRARIES) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(libdir) + list='$(lib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ + else :; fi; \ + done + @$(POST_INSTALL) + @list='$(lib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ + else :; fi; \ + done + +uninstall-libLIBRARIES: + @$(NORMAL_UNINSTALL) + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +librpm.a: $(librpm_a_OBJECTS) $(librpm_a_DEPENDENCIES) + -rm -f librpm.a + $(AR) cru librpm.a $(librpm_a_OBJECTS) $(librpm_a_LIBADD) + $(RANLIB) librpm.a -$(PROGS): $(LIBRPM) +install-rpmincHEADERS: $(rpminc_HEADERS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(rpmincdir) + @list='$(rpminc_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(rpmincdir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(rpmincdir)/$$p; \ + done -$(LIBRPM): $(LIBRPM)($(LIBOBJECTS) $(TAGTABLE)) - $(RANLIB) $@ +uninstall-rpmincHEADERS: + @$(NORMAL_UNINSTALL) + list='$(rpminc_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(rpmincdir)/$$p; \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = lib + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign lib/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + +maintainer-clean-depend: + -rm -rf .deps + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $< + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $< + @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ + < .deps/$(*F).p > .deps/$(*F).P + @-rm -f .deps/$(*F).p +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: install-libLIBRARIES + @$(NORMAL_INSTALL) + +install-data: install-rpmincHEADERS + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: uninstall-libLIBRARIES uninstall-rpmincHEADERS + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + $(mkinstalldirs) $(DATADIR)$(libdir) $(DATADIR)$(rpmincdir) + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +clean: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean + +distclean: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile uninstall-rpmincHEADERS \ +install-rpmincHEADERS tags mostlyclean-tags distclean-tags clean-tags \ +maintainer-clean-tags distdir mostlyclean-depend distclean-depend \ +clean-depend maintainer-clean-depend info dvi installcheck install-exec \ +install-data install uninstall all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +include ../Makefile.inc + +misc.o: misc.c + $(COMPILE) -DVERSION=\"$(VERSION)\" -o $@ -c $< + +rpmrc.o: rpmrc.c + $(COMPILE) -DLIBRPMRC_FILENAME="\"$(LIBRPMRC_FILENAME)"\" -DMACROFILES=\"$(MACROFILES)\" -o $@ -c $< tagtable.c: rpmlib.h echo '#include "rpmlib.h"' > tagtable.c @@ -54,30 +404,6 @@ tagtable.c: rpmlib.h echo '' >> tagtable.c echo 'const int rpmTagTableSize = sizeof(rpmTagTable) / sizeof(struct headerTagTableEntry) - 1;' >> tagtable.c -install: - $(INSTALL_DATA) -m 644 $(srcdir)/rpmlib.h $(INCDIR) - $(INSTALL_DATA) -m 644 $(srcdir)/rpmmacro.h $(INCDIR) - $(INSTALL_DATA) -m 644 $(srcdir)/dbindex.h $(INCDIR) - $(INSTALL_DATA) -m 644 $(srcdir)/header.h $(INCDIR) - $(INSTALL_DATA) -m 644 $(srcdir)/misc.h $(INCDIR) - $(INSTALL_DATA) -m 644 $(srcdir)/stringbuf.h $(INCDIR) - $(INSTALL_DATA) -m 644 librpm.a $(LIBDIR) - -distclean: clean - rm -f Makefile - -clean: - rm -f *.a *.o *~ $(PROGS) test.out tagtable.c - -squeaky: clean - rm -f depend - -depend: - topdir_path=`( cd $(top_srcdir) && pwd )` ; \ - /bin/rm -f .depend ; \ - $(CPP) $(CFLAGS) -MM $(SOURCES) | \ - sed s+$$topdir_path+$(top_srcdir)+g > .depend - -ifeq (.depend,$(wildcard .depend)) -include .depend -endif +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/misc/.cvsignore b/misc/.cvsignore index 5a6d76bd2..7401f9d96 100644 --- a/misc/.cvsignore +++ b/misc/.cvsignore @@ -1,2 +1,3 @@ -Makefile +.deps .depend +Makefile diff --git a/misc/Makefile.am b/misc/Makefile.am new file mode 100644 index 000000000..2b7dec4f4 --- /dev/null +++ b/misc/Makefile.am @@ -0,0 +1,19 @@ +# Makefile for misc library. + +AUTOMAKE_OPTIONS = 1.3 foreign + +EXTRA_DIST = \ + alloca.c fakefork.c fnmatch.c getcwd.c \ + getmntent.c getwd.c glob.c inet_aton.c \ + memcmp.c mktime.c myrealloc.c putenv.c \ + realpath.c strdup.c strerror.c strftime.c \ + strspn.c strstr.c strtol.c strtoul.c + +noinst_HEADERS = \ + inet_aton.h fnmatch.h glob.h +noinst_LIBRARIES = libmisc.a + +libmisc_a_SOURCES = + +libmisc_a_LIBADD = @LIBOBJS@ @ALLOCA@ +libmisc_a_DEPENDENCIES = $(libmisc_a_LIBADD) diff --git a/misc/Makefile.in b/misc/Makefile.in index bac491ce4..704638410 100644 --- a/misc/Makefile.in +++ b/misc/Makefile.in @@ -1,38 +1,340 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Makefile for misc library. + + +SHELL = /bin/sh + srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AWK = @AWK@ +BZIP2BIN = @BZIP2BIN@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +FIXPERMS = @FIXPERMS@ +GENCAT = @GENCAT@ +GETTEXTSTUB = @GETTEXTSTUB@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +GZIPBIN = @GZIPBIN@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INCPATH = @INCPATH@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEF = @INTLDEF@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LDFLAGS_STATIC = @LDFLAGS_STATIC@ +LIBDL = @LIBDL@ +LIBINTL = @LIBINTL@ +LIBMISC = @LIBMISC@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MISCDIR = @MISCDIR@ +MISCPATH = @MISCPATH@ +MKDIR = @MKDIR@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PO = @PO@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +ROOT_GROUP = @ROOT_GROUP@ +RPM = @RPM@ +RPMCONFIGDIR = @RPMCONFIGDIR@ +TARGET = @TARGET@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +l = @l@ +tmpdir = @tmpdir@ +topdir = @topdir@ +topsrcdir = @topsrcdir@ +varprefix = @varprefix@ + +AUTOMAKE_OPTIONS = 1.3 foreign + +EXTRA_DIST = \ + alloca.c fakefork.c fnmatch.c getcwd.c \ + getmntent.c getwd.c glob.c inet_aton.c \ + memcmp.c mktime.c myrealloc.c putenv.c \ + realpath.c strdup.c strerror.c strftime.c \ + strspn.c strstr.c strtol.c strtoul.c + +noinst_HEADERS = \ + inet_aton.h fnmatch.h glob.h +noinst_LIBRARIES = libmisc.a + +libmisc_a_SOURCES = + +libmisc_a_LIBADD = @LIBOBJS@ @ALLOCA@ +libmisc_a_DEPENDENCIES = $(libmisc_a_LIBADD) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +libmisc_a_OBJECTS = +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in alloca.c fnmatch.c getmntent.c \ +glob.c inet_aton.c myrealloc.c realpath.c strdup.c strerror.c strtol.c \ +strtoul.c + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +DEP_FILES = .deps/alloca.P .deps/fnmatch.P .deps/getmntent.P \ +.deps/glob.P .deps/inet_aton.P .deps/myrealloc.P .deps/realpath.P \ +.deps/strdup.P .deps/strerror.P .deps/strtol.P .deps/strtoul.P +SOURCES = $(libmisc_a_SOURCES) +OBJECTS = $(libmisc_a_OBJECTS) + +all: Makefile $(LIBRARIES) $(HEADERS) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign misc/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libmisc.a: $(libmisc_a_OBJECTS) $(libmisc_a_DEPENDENCIES) + -rm -f libmisc.a + $(AR) cru libmisc.a $(libmisc_a_OBJECTS) $(libmisc_a_LIBADD) + $(RANLIB) libmisc.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = misc + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign misc/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + +maintainer-clean-depend: + -rm -rf .deps + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $< + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $< + @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ + < .deps/$(*F).p > .deps/$(*F).P + @-rm -f .deps/$(*F).p +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: -include ../Makefile.inc +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: -LIBOBJECTS = @MISCOBJS@ -LIBMISC = libmisc.a -# ----------------------------------------------------------------------- +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -TARGET=everything +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -all: $(TARGET) +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -everything: $(LIBMISC) +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic -$(LIBMISC): $(LIBOBJECTS) - $(AR) r $@ $(LIBOBJECTS) - $(RANLIB) $@ +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean -$(PROGS): $(LIBOBJECTS) +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean + -rm -f config.status -clean: - rm -f *.a *.o *~ $(PROGS) +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -distclean: clean - rm -f Makefile +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info dvi \ +installcheck install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean -depend: - topdir_path=`( cd $(top_srcdir) && pwd )` ; \ - /bin/rm -f .depend ; \ - $(CPP) $(CFLAGS) -MM $(srcdir)/*.c | \ - sed s+$$topdir_path+$(top_srcdir)+g > .depend -ifeq (.depend,$(wildcard .depend)) -include .depend -endif +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/misc/alloca.c b/misc/alloca.c new file mode 100644 index 000000000..c1699c42d --- /dev/null +++ b/misc/alloca.c @@ -0,0 +1,504 @@ +/* alloca.c -- allocate automatically reclaimed memory + (Mostly) portable public-domain implementation -- D A Gwyn + + This implementation of the PWB library alloca function, + which is used to allocate space off the run-time stack so + that it is automatically reclaimed upon procedure exit, + was inspired by discussions with J. Q. Johnson of Cornell. + J.Otto Tennant <jot@cray.com> contributed the Cray support. + + There are some preprocessor constants that can + be defined when compiling for your specific system, for + improved efficiency; however, the defaults should be okay. + + The general concept of this implementation is to keep + track of all alloca-allocated blocks, and reclaim any + that are found to be deeper in the stack than the current + invocation. This heuristic does not reclaim storage as + soon as it becomes invalid, but it will do so eventually. + + As a special case, alloca(0) reclaims storage without + allocating any. It is a good idea to use alloca(0) in + your main control loop, etc. to force garbage collection. */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#ifdef HAVE_STRING_H +#include <string.h> +#endif +#ifdef HAVE_STDLIB_H +#include <stdlib.h> +#endif + +#ifdef emacs +#include "blockinput.h" +#endif + +/* If compiling with GCC 2, this file's not needed. */ +#if !defined (__GNUC__) || __GNUC__ < 2 + +/* If someone has defined alloca as a macro, + there must be some other way alloca is supposed to work. */ +#ifndef alloca + +#ifdef emacs +#ifdef static +/* actually, only want this if static is defined as "" + -- this is for usg, in which emacs must undefine static + in order to make unexec workable + */ +#ifndef STACK_DIRECTION +you +lose +-- must know STACK_DIRECTION at compile-time +#endif /* STACK_DIRECTION undefined */ +#endif /* static */ +#endif /* emacs */ + +/* If your stack is a linked list of frames, you have to + provide an "address metric" ADDRESS_FUNCTION macro. */ + +#if defined (CRAY) && defined (CRAY_STACKSEG_END) +long i00afunc (); +#define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) +#else +#define ADDRESS_FUNCTION(arg) &(arg) +#endif + +#if __STDC__ +typedef void *pointer; +#else +typedef char *pointer; +#endif + +#ifndef NULL +#define NULL 0 +#endif + +/* Different portions of Emacs need to call different versions of + malloc. The Emacs executable needs alloca to call xmalloc, because + ordinary malloc isn't protected from input signals. On the other + hand, the utilities in lib-src need alloca to call malloc; some of + them are very simple, and don't have an xmalloc routine. + + Non-Emacs programs expect this to call xmalloc. + + Callers below should use malloc. */ + +#ifndef emacs +#define malloc xmalloc +#endif +extern pointer malloc (); + +/* Define STACK_DIRECTION if you know the direction of stack + growth for your system; otherwise it will be automatically + deduced at run-time. + + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ + +#ifndef STACK_DIRECTION +#define STACK_DIRECTION 0 /* Direction unknown. */ +#endif + +#if STACK_DIRECTION != 0 + +#define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ + +#else /* STACK_DIRECTION == 0; need run-time code. */ + +static int stack_dir; /* 1 or -1 once known. */ +#define STACK_DIR stack_dir + +static void +find_stack_direction () +{ + static char *addr = NULL; /* Address of first `dummy', once known. */ + auto char dummy; /* To get stack address. */ + + if (addr == NULL) + { /* Initial entry. */ + addr = ADDRESS_FUNCTION (dummy); + + find_stack_direction (); /* Recurse once. */ + } + else + { + /* Second entry. */ + if (ADDRESS_FUNCTION (dummy) > addr) + stack_dir = 1; /* Stack grew upward. */ + else + stack_dir = -1; /* Stack grew downward. */ + } +} + +#endif /* STACK_DIRECTION == 0 */ + +/* An "alloca header" is used to: + (a) chain together all alloca'ed blocks; + (b) keep track of stack depth. + + It is very important that sizeof(header) agree with malloc + alignment chunk size. The following default should work okay. */ + +#ifndef ALIGN_SIZE +#define ALIGN_SIZE sizeof(double) +#endif + +typedef union hdr +{ + char align[ALIGN_SIZE]; /* To force sizeof(header). */ + struct + { + union hdr *next; /* For chaining headers. */ + char *deep; /* For stack depth measure. */ + } h; +} header; + +static header *last_alloca_header = NULL; /* -> last alloca header. */ + +/* Return a pointer to at least SIZE bytes of storage, + which will be automatically reclaimed upon exit from + the procedure that called alloca. Originally, this space + was supposed to be taken from the current stack frame of the + caller, but that method cannot be made to work for some + implementations of C, for example under Gould's UTX/32. */ + +pointer +alloca (size) + unsigned size; +{ + auto char probe; /* Probes stack depth: */ + register char *depth = ADDRESS_FUNCTION (probe); + +#if STACK_DIRECTION == 0 + if (STACK_DIR == 0) /* Unknown growth direction. */ + find_stack_direction (); +#endif + + /* Reclaim garbage, defined as all alloca'd storage that + was allocated from deeper in the stack than currently. */ + + { + register header *hp; /* Traverses linked list. */ + +#ifdef emacs + BLOCK_INPUT; +#endif + + for (hp = last_alloca_header; hp != NULL;) + if ((STACK_DIR > 0 && hp->h.deep > depth) + || (STACK_DIR < 0 && hp->h.deep < depth)) + { + register header *np = hp->h.next; + + free ((pointer) hp); /* Collect garbage. */ + + hp = np; /* -> next header. */ + } + else + break; /* Rest are not deeper. */ + + last_alloca_header = hp; /* -> last valid storage. */ + +#ifdef emacs + UNBLOCK_INPUT; +#endif + } + + if (size == 0) + return NULL; /* No allocation required. */ + + /* Allocate combined header + user data storage. */ + + { + register pointer new = malloc (sizeof (header) + size); + /* Address of header. */ + + if (new == 0) + abort(); + + ((header *) new)->h.next = last_alloca_header; + ((header *) new)->h.deep = depth; + + last_alloca_header = (header *) new; + + /* User storage begins just after header. */ + + return (pointer) ((char *) new + sizeof (header)); + } +} + +#if defined (CRAY) && defined (CRAY_STACKSEG_END) + +#ifdef DEBUG_I00AFUNC +#include <stdio.h> +#endif + +#ifndef CRAY_STACK +#define CRAY_STACK +#ifndef CRAY2 +/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ +struct stack_control_header + { + long shgrow:32; /* Number of times stack has grown. */ + long shaseg:32; /* Size of increments to stack. */ + long shhwm:32; /* High water mark of stack. */ + long shsize:32; /* Current size of stack (all segments). */ + }; + +/* The stack segment linkage control information occurs at + the high-address end of a stack segment. (The stack + grows from low addresses to high addresses.) The initial + part of the stack segment linkage control information is + 0200 (octal) words. This provides for register storage + for the routine which overflows the stack. */ + +struct stack_segment_linkage + { + long ss[0200]; /* 0200 overflow words. */ + long sssize:32; /* Number of words in this segment. */ + long ssbase:32; /* Offset to stack base. */ + long:32; + long sspseg:32; /* Offset to linkage control of previous + segment of stack. */ + long:32; + long sstcpt:32; /* Pointer to task common address block. */ + long sscsnm; /* Private control structure number for + microtasking. */ + long ssusr1; /* Reserved for user. */ + long ssusr2; /* Reserved for user. */ + long sstpid; /* Process ID for pid based multi-tasking. */ + long ssgvup; /* Pointer to multitasking thread giveup. */ + long sscray[7]; /* Reserved for Cray Research. */ + long ssa0; + long ssa1; + long ssa2; + long ssa3; + long ssa4; + long ssa5; + long ssa6; + long ssa7; + long sss0; + long sss1; + long sss2; + long sss3; + long sss4; + long sss5; + long sss6; + long sss7; + }; + +#else /* CRAY2 */ +/* The following structure defines the vector of words + returned by the STKSTAT library routine. */ +struct stk_stat + { + long now; /* Current total stack size. */ + long maxc; /* Amount of contiguous space which would + be required to satisfy the maximum + stack demand to date. */ + long high_water; /* Stack high-water mark. */ + long overflows; /* Number of stack overflow ($STKOFEN) calls. */ + long hits; /* Number of internal buffer hits. */ + long extends; /* Number of block extensions. */ + long stko_mallocs; /* Block allocations by $STKOFEN. */ + long underflows; /* Number of stack underflow calls ($STKRETN). */ + long stko_free; /* Number of deallocations by $STKRETN. */ + long stkm_free; /* Number of deallocations by $STKMRET. */ + long segments; /* Current number of stack segments. */ + long maxs; /* Maximum number of stack segments so far. */ + long pad_size; /* Stack pad size. */ + long current_address; /* Current stack segment address. */ + long current_size; /* Current stack segment size. This + number is actually corrupted by STKSTAT to + include the fifteen word trailer area. */ + long initial_address; /* Address of initial segment. */ + long initial_size; /* Size of initial segment. */ + }; + +/* The following structure describes the data structure which trails + any stack segment. I think that the description in 'asdef' is + out of date. I only describe the parts that I am sure about. */ + +struct stk_trailer + { + long this_address; /* Address of this block. */ + long this_size; /* Size of this block (does not include + this trailer). */ + long unknown2; + long unknown3; + long link; /* Address of trailer block of previous + segment. */ + long unknown5; + long unknown6; + long unknown7; + long unknown8; + long unknown9; + long unknown10; + long unknown11; + long unknown12; + long unknown13; + long unknown14; + }; + +#endif /* CRAY2 */ +#endif /* not CRAY_STACK */ + +#ifdef CRAY2 +/* Determine a "stack measure" for an arbitrary ADDRESS. + I doubt that "lint" will like this much. */ + +static long +i00afunc (long *address) +{ + struct stk_stat status; + struct stk_trailer *trailer; + long *block, size; + long result = 0; + + /* We want to iterate through all of the segments. The first + step is to get the stack status structure. We could do this + more quickly and more directly, perhaps, by referencing the + $LM00 common block, but I know that this works. */ + + STKSTAT (&status); + + /* Set up the iteration. */ + + trailer = (struct stk_trailer *) (status.current_address + + status.current_size + - 15); + + /* There must be at least one stack segment. Therefore it is + a fatal error if "trailer" is null. */ + + if (trailer == 0) + abort (); + + /* Discard segments that do not contain our argument address. */ + + while (trailer != 0) + { + block = (long *) trailer->this_address; + size = trailer->this_size; + if (block == 0 || size == 0) + abort (); + trailer = (struct stk_trailer *) trailer->link; + if ((block <= address) && (address < (block + size))) + break; + } + + /* Set the result to the offset in this segment and add the sizes + of all predecessor segments. */ + + result = address - block; + + if (trailer == 0) + { + return result; + } + + do + { + if (trailer->this_size <= 0) + abort (); + result += trailer->this_size; + trailer = (struct stk_trailer *) trailer->link; + } + while (trailer != 0); + + /* We are done. Note that if you present a bogus address (one + not in any segment), you will get a different number back, formed + from subtracting the address of the first block. This is probably + not what you want. */ + + return (result); +} + +#else /* not CRAY2 */ +/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. + Determine the number of the cell within the stack, + given the address of the cell. The purpose of this + routine is to linearize, in some sense, stack addresses + for alloca. */ + +static long +i00afunc (long address) +{ + long stkl = 0; + + long size, pseg, this_segment, stack; + long result = 0; + + struct stack_segment_linkage *ssptr; + + /* Register B67 contains the address of the end of the + current stack segment. If you (as a subprogram) store + your registers on the stack and find that you are past + the contents of B67, you have overflowed the segment. + + B67 also points to the stack segment linkage control + area, which is what we are really interested in. */ + + stkl = CRAY_STACKSEG_END (); + ssptr = (struct stack_segment_linkage *) stkl; + + /* If one subtracts 'size' from the end of the segment, + one has the address of the first word of the segment. + + If this is not the first segment, 'pseg' will be + nonzero. */ + + pseg = ssptr->sspseg; + size = ssptr->sssize; + + this_segment = stkl - size; + + /* It is possible that calling this routine itself caused + a stack overflow. Discard stack segments which do not + contain the target address. */ + + while (!(this_segment <= address && address <= stkl)) + { +#ifdef DEBUG_I00AFUNC + fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); +#endif + if (pseg == 0) + break; + stkl = stkl - pseg; + ssptr = (struct stack_segment_linkage *) stkl; + size = ssptr->sssize; + pseg = ssptr->sspseg; + this_segment = stkl - size; + } + + result = address - this_segment; + + /* If you subtract pseg from the current end of the stack, + you get the address of the previous stack segment's end. + This seems a little convoluted to me, but I'll bet you save + a cycle somewhere. */ + + while (pseg != 0) + { +#ifdef DEBUG_I00AFUNC + fprintf (stderr, "%011o %011o\n", pseg, size); +#endif + stkl = stkl - pseg; + ssptr = (struct stack_segment_linkage *) stkl; + size = ssptr->sssize; + pseg = ssptr->sspseg; + result += size; + } + return (result); +} + +#endif /* not CRAY2 */ +#endif /* CRAY */ + +#endif /* no alloca */ +#endif /* not GCC version 2 */ diff --git a/misc/fnmatch.c b/misc/fnmatch.c index f802d4042..ca38e1daf 100644 --- a/misc/fnmatch.c +++ b/misc/fnmatch.c @@ -15,9 +15,7 @@ License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <errno.h> -#include <ctype.h> - +#include "system.h" /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C diff --git a/misc/fnmatch.h b/misc/fnmatch.h new file mode 100644 index 000000000..d9d73b3d8 --- /dev/null +++ b/misc/fnmatch.h @@ -0,0 +1,67 @@ +/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _FNMATCH_H + +#define _FNMATCH_H 1 + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) +#undef __P +#define __P(protos) protos +#else /* Not C++ or ANSI C. */ +#undef __P +#define __P(protos) () +/* We can get away without defining `const' here only because in this file + it is used only inside the prototype for `fnmatch', which is elided in + non-ANSI C where `const' is problematical. */ +#endif /* C++ or ANSI C. */ + + +/* We #undef these before defining them because some losing systems + (HP-UX A.08.07 for example) define these in <unistd.h>. */ +#undef FNM_PATHNAME +#undef FNM_NOESCAPE +#undef FNM_PERIOD + +/* Bits set in the FLAGS argument to `fnmatch'. */ +#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ +#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ +#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ + +#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) +#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ +#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ +#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ +#endif + +/* Value returned by `fnmatch' if STRING does not match PATTERN. */ +#define FNM_NOMATCH 1 + +/* Match STRING against the filename pattern PATTERN, + returning zero if it matches, FNM_NOMATCH if not. */ +extern int fnmatch __P ((const char *__pattern, const char *__string, + int __flags)); + +#ifdef __cplusplus +} +#endif + +#endif /* fnmatch.h */ diff --git a/misc/getcwd.c b/misc/getcwd.c new file mode 100644 index 000000000..60c1dd84e --- /dev/null +++ b/misc/getcwd.c @@ -0,0 +1,52 @@ +/* Emulate getcwd using getwd. + This function is in the public domain. */ + +/* +NAME + getcwd -- get absolute pathname for current working directory + +SYNOPSIS + char *getcwd (char pathname[len], len) + +DESCRIPTION + Copy the absolute pathname for the current working directory into + the supplied buffer and return a pointer to the buffer. If the + current directory's path doesn't fit in LEN characters, the result + is NULL and errno is set. + +BUGS + Emulated via the getwd() call, which is reasonable for most + systems that do not have getcwd(). + +*/ + +#ifndef NO_SYS_PARAM_H +#include <sys/param.h> +#endif +#include <errno.h> + +extern char *getwd (); +extern int errno; + +#ifndef MAXPATHLEN +#define MAXPATHLEN 1024 +#endif + +char * +getcwd (buf, len) + char *buf; + int len; +{ + char ourbuf[MAXPATHLEN]; + char *result; + + result = getwd (ourbuf); + if (result) { + if (strlen (ourbuf) >= len) { + errno = ERANGE; + return 0; + } + strcpy (buf, ourbuf); + } + return buf; +} diff --git a/misc/getwd.c b/misc/getwd.c new file mode 100644 index 000000000..a7a64b82d --- /dev/null +++ b/misc/getwd.c @@ -0,0 +1,29 @@ +/* getwd.c -- get current working directory pathname + Copyright (C) 1992 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ + +/* Some systems which include both getwd() and getcwd() have an implementation + of getwd() which is much faster than getcwd(). As a result, we use the + system's getwd() if it is available */ + +#include "system.h" + +/* Get the current working directory into PATHNAME */ + +char * +getwd (pathname) + char *pathname; +{ + char *getcwd(); + + return (getcwd(pathname, PATH_MAX)); +} diff --git a/misc/glob.c b/misc/glob.c index 886e837ef..8cfd3377a 100644 --- a/misc/glob.c +++ b/misc/glob.c @@ -32,7 +32,6 @@ Cambridge, MA 02139, USA. */ #if defined (_LIBC) || !defined (__GNU_LIBRARY__) - #ifdef STDC_HEADERS #include <stddef.h> #endif @@ -69,18 +68,12 @@ extern int errno; #else /* No standard headers. */ #ifdef HAVE_STRING_H -#include <string.h> #define ANSI_STRING -#else -#include <strings.h> #endif #ifdef HAVE_MEMORY_H #include <memory.h> #endif -extern char *malloc (), *realloc (); -extern void free (); - extern void qsort (); extern void abort (), exit (); @@ -152,21 +145,21 @@ extern char *alloca (); /* Some system header files erroneously define these. We want our own definitions from <fnmatch.h> to take precedence. */ -#undef FNM_PATHNAME -#undef FNM_NOESCAPE -#undef FNM_PERIOD +#undef FNM_PATHNAME +#undef FNM_NOESCAPE +#undef FNM_PERIOD /* Some system header files erroneously define these. We want our own definitions from <glob.h> to take precedence. */ -#undef GLOB_ERR -#undef GLOB_MARK -#undef GLOB_NOSORT -#undef GLOB_DOOFFS -#undef GLOB_NOCHECK -#undef GLOB_APPEND -#undef GLOB_NOESCAPE -#undef GLOB_PERIOD - +#undef GLOB_ERR +#undef GLOB_MARK +#undef GLOB_NOSORT +#undef GLOB_DOOFFS +#undef GLOB_NOCHECK +#undef GLOB_APPEND +#undef GLOB_NOESCAPE +#undef GLOB_PERIOD + __ptr_t (*__glob_opendir_hook) __P ((const char *directory)); const char *(*__glob_readdir_hook) __P ((__ptr_t stream)); void (*__glob_closedir_hook) __P ((__ptr_t stream)); diff --git a/misc/glob.h b/misc/glob.h new file mode 100644 index 000000000..05ad47f05 --- /dev/null +++ b/misc/glob.h @@ -0,0 +1,97 @@ +/* Copyright (C) 1991, 1992 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _GLOB_H + +#define _GLOB_H 1 + +#ifdef __cplusplus +extern "C" +{ +#endif + +#undef __ptr_t +#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) +#undef __P +#define __P(protos) protos +#define __ptr_t void * +#else /* Not C++ or ANSI C. */ +#undef __P +#define __P(protos) () +#undef const +#define const +#define __ptr_t char * +#endif /* C++ or ANSI C. */ + +/* Bits set in the FLAGS argument to `glob'. */ +#define GLOB_ERR (1 << 0)/* Return on read errors. */ +#define GLOB_MARK (1 << 1)/* Append a slash to each name. */ +#define GLOB_NOSORT (1 << 2)/* Don't sort the names. */ +#define GLOB_DOOFFS (1 << 3)/* Insert PGLOB->gl_offs NULLs. */ +#define GLOB_NOCHECK (1 << 4)/* If nothing matches, return the pattern. */ +#define GLOB_APPEND (1 << 5)/* Append to results of a previous call. */ +#define GLOB_NOESCAPE (1 << 6)/* Backslashes don't quote metacharacters. */ +#define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */ +#define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \ + GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND|GLOB_PERIOD) + +#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_BSD_SOURCE) +#define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */ +#endif + +/* Error returns from `glob'. */ +#define GLOB_NOSPACE 1 /* Ran out of memory. */ +#define GLOB_ABEND 2 /* Read error. */ +#define GLOB_NOMATCH 3 /* No matches found. */ + +/* Structure describing a globbing run. */ +typedef struct + { + int gl_pathc; /* Count of paths matched by the pattern. */ + char **gl_pathv; /* List of matched pathnames. */ + int gl_offs; /* Slots to reserve in `gl_pathv'. */ + int gl_flags; /* Set to FLAGS, maybe | GLOB_MAGCHAR. */ + } glob_t; + +/* Do glob searching for PATTERN, placing results in PGLOB. + The bits defined above may be set in FLAGS. + If a directory cannot be opened or read and ERRFUNC is not nil, + it is called with the pathname that caused the error, and the + `errno' value from the failing call; if it returns non-zero + `glob' returns GLOB_ABEND; if it returns zero, the error is ignored. + If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. + Otherwise, `glob' returns zero. */ +extern int glob __P ((const char *__pattern, int __flags, + int (*__errfunc) __P ((const char *, int)), + glob_t *__pglob)); + +/* Free storage allocated in PGLOB by a previous `glob' call. */ +extern void globfree __P ((glob_t *__pglob)); + + +#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) +/* If they are not NULL, `glob' uses these functions to read directories. */ +extern __ptr_t (*__glob_opendir_hook) __P ((const char *__directory)); +extern const char *(*__glob_readdir_hook) __P ((__ptr_t __stream)); +extern void (*__glob_closedir_hook) __P ((__ptr_t __stream)); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* glob.h */ diff --git a/misc/inet_aton.c b/misc/inet_aton.c index c49852036..bee41865d 100644 --- a/misc/inet_aton.c +++ b/misc/inet_aton.c @@ -10,7 +10,9 @@ #include "inet_aton.h" -int inet_aton(const char *cp, struct in_addr *inp) { +int +inet_aton(const char *cp, struct in_addr *inp) +{ long addr; addr = inet_addr(cp); diff --git a/misc/memcmp.c b/misc/memcmp.c new file mode 100644 index 000000000..6096651e5 --- /dev/null +++ b/misc/memcmp.c @@ -0,0 +1,373 @@ +/* Copyright (C) 1991, 1993, 1995 Free Software Foundation, Inc. + Contributed by Torbjorn Granlund (tege@sics.se). + +NOTE: The canonical source of this file is maintained with the GNU C Library. +Bugs can be reported to bug-glibc@prep.ai.mit.edu. + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#undef __ptr_t +#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) +#define __ptr_t void * +#else /* Not C++ or ANSI C. */ +#undef const +#define const +#define __ptr_t char * +#endif /* C++ or ANSI C. */ + +#if defined (HAVE_STRING_H) || defined (_LIBC) +#include <string.h> +#endif + +#ifdef _LIBC + +#include <memcopy.h> + +#else /* Not in the GNU C library. */ + +#include <sys/types.h> + +/* Type to use for aligned memory operations. + This should normally be the biggest type supported by a single load + and store. Must be an unsigned type. */ +#define op_t unsigned long int +#define OPSIZ (sizeof(op_t)) + +/* Threshold value for when to enter the unrolled loops. */ +#define OP_T_THRES 16 + +/* Type to use for unaligned operations. */ +typedef unsigned char byte; + +#ifndef WORDS_BIGENDIAN +#define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2))) +#else +#define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2))) +#endif + +#endif /* In the GNU C library. */ + +#ifdef WORDS_BIGENDIAN +#define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1) +#else +#define CMP_LT_OR_GT(a, b) memcmp_bytes ((a), (b)) +#endif + +/* BE VERY CAREFUL IF YOU CHANGE THIS CODE! */ + +/* The strategy of this memcmp is: + + 1. Compare bytes until one of the block pointers is aligned. + + 2. Compare using memcmp_common_alignment or + memcmp_not_common_alignment, regarding the alignment of the other + block after the initial byte operations. The maximum number of + full words (of type op_t) are compared in this way. + + 3. Compare the few remaining bytes. */ + +#ifndef WORDS_BIGENDIAN +/* memcmp_bytes -- Compare A and B bytewise in the byte order of the machine. + A and B are known to be different. + This is needed only on little-endian machines. */ +#ifdef __GNUC__ +__inline +#endif +static int +memcmp_bytes (a, b) + op_t a, b; +{ + long int srcp1 = (long int) &a; + long int srcp2 = (long int) &b; + op_t a0, b0; + + do + { + a0 = ((byte *) srcp1)[0]; + b0 = ((byte *) srcp2)[0]; + srcp1 += 1; + srcp2 += 1; + } + while (a0 == b0); + return a0 - b0; +} +#endif + +/* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t' + objects (not LEN bytes!). Both SRCP1 and SRCP2 should be aligned for + memory operations on `op_t's. */ +#ifdef __GNUC__ +__inline +#endif +static int +memcmp_common_alignment (srcp1, srcp2, len) + long int srcp1; + long int srcp2; + size_t len; +{ + op_t a0, a1; + op_t b0, b1; + + switch (len % 4) + { + case 2: + a0 = ((op_t *) srcp1)[0]; + b0 = ((op_t *) srcp2)[0]; + srcp1 -= 2 * OPSIZ; + srcp2 -= 2 * OPSIZ; + len += 2; + goto do1; + case 3: + a1 = ((op_t *) srcp1)[0]; + b1 = ((op_t *) srcp2)[0]; + srcp1 -= OPSIZ; + srcp2 -= OPSIZ; + len += 1; + goto do2; + case 0: + if (OP_T_THRES <= 3 * OPSIZ && len == 0) + return 0; + a0 = ((op_t *) srcp1)[0]; + b0 = ((op_t *) srcp2)[0]; + goto do3; + case 1: + a1 = ((op_t *) srcp1)[0]; + b1 = ((op_t *) srcp2)[0]; + srcp1 += OPSIZ; + srcp2 += OPSIZ; + len -= 1; + if (OP_T_THRES <= 3 * OPSIZ && len == 0) + goto do0; + /* Fall through. */ + } + + do + { + a0 = ((op_t *) srcp1)[0]; + b0 = ((op_t *) srcp2)[0]; + if (a1 != b1) + return CMP_LT_OR_GT (a1, b1); + + do3: + a1 = ((op_t *) srcp1)[1]; + b1 = ((op_t *) srcp2)[1]; + if (a0 != b0) + return CMP_LT_OR_GT (a0, b0); + + do2: + a0 = ((op_t *) srcp1)[2]; + b0 = ((op_t *) srcp2)[2]; + if (a1 != b1) + return CMP_LT_OR_GT (a1, b1); + + do1: + a1 = ((op_t *) srcp1)[3]; + b1 = ((op_t *) srcp2)[3]; + if (a0 != b0) + return CMP_LT_OR_GT (a0, b0); + + srcp1 += 4 * OPSIZ; + srcp2 += 4 * OPSIZ; + len -= 4; + } + while (len != 0); + + /* This is the right position for do0. Please don't move + it into the loop. */ + do0: + if (a1 != b1) + return CMP_LT_OR_GT (a1, b1); + return 0; +} + +/* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN + `op_t' objects (not LEN bytes!). SRCP2 should be aligned for memory + operations on `op_t', but SRCP1 *should be unaligned*. */ +#ifdef __GNUC__ +__inline +#endif +static int +memcmp_not_common_alignment (srcp1, srcp2, len) + long int srcp1; + long int srcp2; + size_t len; +{ + op_t a0, a1, a2, a3; + op_t b0, b1, b2, b3; + op_t x; + int shl, shr; + + /* Calculate how to shift a word read at the memory operation + aligned srcp1 to make it aligned for comparison. */ + + shl = 8 * (srcp1 % OPSIZ); + shr = 8 * OPSIZ - shl; + + /* Make SRCP1 aligned by rounding it down to the beginning of the `op_t' + it points in the middle of. */ + srcp1 &= -OPSIZ; + + switch (len % 4) + { + case 2: + a1 = ((op_t *) srcp1)[0]; + a2 = ((op_t *) srcp1)[1]; + b2 = ((op_t *) srcp2)[0]; + srcp1 -= 1 * OPSIZ; + srcp2 -= 2 * OPSIZ; + len += 2; + goto do1; + case 3: + a0 = ((op_t *) srcp1)[0]; + a1 = ((op_t *) srcp1)[1]; + b1 = ((op_t *) srcp2)[0]; + srcp2 -= 1 * OPSIZ; + len += 1; + goto do2; + case 0: + if (OP_T_THRES <= 3 * OPSIZ && len == 0) + return 0; + a3 = ((op_t *) srcp1)[0]; + a0 = ((op_t *) srcp1)[1]; + b0 = ((op_t *) srcp2)[0]; + srcp1 += 1 * OPSIZ; + goto do3; + case 1: + a2 = ((op_t *) srcp1)[0]; + a3 = ((op_t *) srcp1)[1]; + b3 = ((op_t *) srcp2)[0]; + srcp1 += 2 * OPSIZ; + srcp2 += 1 * OPSIZ; + len -= 1; + if (OP_T_THRES <= 3 * OPSIZ && len == 0) + goto do0; + /* Fall through. */ + } + + do + { + a0 = ((op_t *) srcp1)[0]; + b0 = ((op_t *) srcp2)[0]; + x = MERGE(a2, shl, a3, shr); + if (x != b3) + return CMP_LT_OR_GT (x, b3); + + do3: + a1 = ((op_t *) srcp1)[1]; + b1 = ((op_t *) srcp2)[1]; + x = MERGE(a3, shl, a0, shr); + if (x != b0) + return CMP_LT_OR_GT (x, b0); + + do2: + a2 = ((op_t *) srcp1)[2]; + b2 = ((op_t *) srcp2)[2]; + x = MERGE(a0, shl, a1, shr); + if (x != b1) + return CMP_LT_OR_GT (x, b1); + + do1: + a3 = ((op_t *) srcp1)[3]; + b3 = ((op_t *) srcp2)[3]; + x = MERGE(a1, shl, a2, shr); + if (x != b2) + return CMP_LT_OR_GT (x, b2); + + srcp1 += 4 * OPSIZ; + srcp2 += 4 * OPSIZ; + len -= 4; + } + while (len != 0); + + /* This is the right position for do0. Please don't move + it into the loop. */ + do0: + x = MERGE(a2, shl, a3, shr); + if (x != b3) + return CMP_LT_OR_GT (x, b3); + return 0; +} + +int +memcmp (s1, s2, len) + const __ptr_t s1; + const __ptr_t s2; + size_t len; +{ + op_t a0; + op_t b0; + long int srcp1 = (long int) s1; + long int srcp2 = (long int) s2; + op_t res; + + if (len >= OP_T_THRES) + { + /* There are at least some bytes to compare. No need to test + for LEN == 0 in this alignment loop. */ + while (srcp2 % OPSIZ != 0) + { + a0 = ((byte *) srcp1)[0]; + b0 = ((byte *) srcp2)[0]; + srcp1 += 1; + srcp2 += 1; + res = a0 - b0; + if (res != 0) + return res; + len -= 1; + } + + /* SRCP2 is now aligned for memory operations on `op_t'. + SRCP1 alignment determines if we can do a simple, + aligned compare or need to shuffle bits. */ + + if (srcp1 % OPSIZ == 0) + res = memcmp_common_alignment (srcp1, srcp2, len / OPSIZ); + else + res = memcmp_not_common_alignment (srcp1, srcp2, len / OPSIZ); + if (res != 0) + return res; + + /* Number of bytes remaining in the interval [0..OPSIZ-1]. */ + srcp1 += len & -OPSIZ; + srcp2 += len & -OPSIZ; + len %= OPSIZ; + } + + /* There are just a few bytes to compare. Use byte memory operations. */ + while (len != 0) + { + a0 = ((byte *) srcp1)[0]; + b0 = ((byte *) srcp2)[0]; + srcp1 += 1; + srcp2 += 1; + res = a0 - b0; + if (res != 0) + return res; + len -= 1; + } + + return 0; +} + +#ifdef weak_alias +#undef bcmp +weak_alias (memcmp, bcmp) +#endif + + diff --git a/misc/mktime.c b/misc/mktime.c new file mode 100644 index 000000000..6004bc055 --- /dev/null +++ b/misc/mktime.c @@ -0,0 +1,408 @@ +/* Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. + Contributed by Paul Eggert (eggert@twinsun.com). + + NOTE: The canonical source of this file is maintained with the GNU C + Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* Define this to have a standalone program to test this implementation of + mktime. */ +/* #define DEBUG 1 */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +/* Assume that leap seconds are possible, unless told otherwise. + If the host has a `zic' command with a `-L leapsecondfilename' option, + then it supports leap seconds; otherwise it probably doesn't. */ +#ifndef LEAP_SECONDS_POSSIBLE +#define LEAP_SECONDS_POSSIBLE 1 +#endif + +#include <sys/types.h> /* Some systems define `time_t' here. */ +#include <time.h> + +#if __STDC__ || __GNU_LIBRARY__ || STDC_HEADERS +#include <limits.h> +#endif + +#if DEBUG +#include <stdio.h> +#if __STDC__ || __GNU_LIBRARY__ || STDC_HEADERS +#include <stdlib.h> +#endif +/* Make it work even if the system's libc has its own mktime routine. */ +#define mktime my_mktime +#endif /* DEBUG */ + +#ifndef __P +#if defined (__GNUC__) || (defined (__STDC__) && __STDC__) +#define __P(args) args +#else +#define __P(args) () +#endif /* GCC. */ +#endif /* Not __P. */ + +#ifndef CHAR_BIT +#define CHAR_BIT 8 +#endif + +#ifndef INT_MIN +#define INT_MIN (~0 << (sizeof (int) * CHAR_BIT - 1)) +#endif +#ifndef INT_MAX +#define INT_MAX (~0 - INT_MIN) +#endif + +#ifndef TIME_T_MIN +#define TIME_T_MIN (0 < (time_t) -1 ? (time_t) 0 \ + : ~ (time_t) 0 << (sizeof (time_t) * CHAR_BIT - 1)) +#endif +#ifndef TIME_T_MAX +#define TIME_T_MAX (~ (time_t) 0 - TIME_T_MIN) +#endif + +#define TM_YEAR_BASE 1900 +#define EPOCH_YEAR 1970 + +#ifndef __isleap +/* Nonzero if YEAR is a leap year (every 4 years, + except every 100th isn't, and every 400th is). */ +#define __isleap(year) \ + ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) +#endif + +/* How many days come before each month (0-12). */ +static const unsigned short int __mon_yday[2][13] = + { + /* Normal years. */ + { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, + /* Leap years. */ + { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } + }; + +static time_t ydhms_tm_diff __P ((int, int, int, int, int, const struct tm *)); +static time_t __mktime_internal __P ((struct tm *, + struct tm *(*) (const time_t *, struct tm *), + time_t *)); + + +#if ! HAVE_LOCALTIME_R && ! defined (localtime_r) +#ifdef _LIBC +#define localtime_r __localtime_r +#else +/* Approximate localtime_r as best we can in its absence. */ +#define localtime_r my_localtime_r +static struct tm *localtime_r __P ((const time_t *, struct tm *)); +static struct tm * +localtime_r (t, tp) + const time_t *t; + struct tm *tp; +{ + struct tm *l = localtime (t); + if (! l) + return 0; + *tp = *l; + return tp; +} +#endif /* ! _LIBC */ +#endif /* ! HAVE_LOCALTIME_R && ! defined (localtime_r) */ + + +/* Yield the difference between (YEAR-YDAY HOUR:MIN:SEC) and (*TP), + measured in seconds, ignoring leap seconds. + YEAR uses the same numbering as TM->tm_year. + All values are in range, except possibly YEAR. + If overflow occurs, yield the low order bits of the correct answer. */ +static time_t +ydhms_tm_diff (year, yday, hour, min, sec, tp) + int year, yday, hour, min, sec; + const struct tm *tp; +{ + time_t ay = year + (time_t) (TM_YEAR_BASE - 1); + time_t by = tp->tm_year + (time_t) (TM_YEAR_BASE - 1); + time_t intervening_leap_days = + (ay/4 - by/4) - (ay/100 - by/100) + (ay/400 - by/400); + time_t years = ay - by; + time_t days = (365 * years + intervening_leap_days + + (yday - tp->tm_yday)); + return (60 * (60 * (24 * days + (hour - tp->tm_hour)) + + (min - tp->tm_min)) + + (sec - tp->tm_sec)); +} + + +/* Convert *TP to a time_t value. */ +time_t +mktime (tp) + struct tm *tp; +{ + static time_t localtime_offset; + return __mktime_internal (tp, localtime_r, &localtime_offset); +} + +/* Convert *TP to a time_t value, inverting + the monotonic and mostly-unit-linear conversion function CONVERT. + Use *OFFSET to keep track of a guess at the offset of the result, + compared to what the result would be for UTC without leap seconds. + If *OFFSET's guess is correct, only one CONVERT call is needed. */ +static time_t +__mktime_internal (tp, convert, offset) + struct tm *tp; + struct tm *(*convert) __P ((const time_t *, struct tm *)); + time_t *offset; +{ + time_t t, dt, t0; + struct tm tm; + + /* The maximum number of probes (calls to CONVERT) should be enough + to handle any combinations of time zone rule changes, solar time, + and leap seconds. Posix.1 prohibits leap seconds, but some hosts + have them anyway. */ + int remaining_probes = 4; + + /* Time requested. Copy it in case CONVERT modifies *TP; this can + occur if TP is localtime's returned value and CONVERT is localtime. */ + int sec = tp->tm_sec; + int min = tp->tm_min; + int hour = tp->tm_hour; + int mday = tp->tm_mday; + int mon = tp->tm_mon; + int year_requested = tp->tm_year; + int isdst = tp->tm_isdst; + + /* Ensure that mon is in range, and set year accordingly. */ + int mon_remainder = mon % 12; + int negative_mon_remainder = mon_remainder < 0; + int mon_years = mon / 12 - negative_mon_remainder; + int year = year_requested + mon_years; + + /* The other values need not be in range: + the remaining code handles minor overflows correctly, + assuming int and time_t arithmetic wraps around. + Major overflows are caught at the end. */ + + /* Calculate day of year from year, month, and day of month. + The result need not be in range. */ + int yday = ((__mon_yday[__isleap (year + TM_YEAR_BASE)] + [mon_remainder + 12 * negative_mon_remainder]) + + mday - 1); + +#if LEAP_SECONDS_POSSIBLE + /* Handle out-of-range seconds specially, + since ydhms_tm_diff assumes every minute has 60 seconds. */ + int sec_requested = sec; + if (sec < 0) + sec = 0; + if (59 < sec) + sec = 59; +#endif + + /* Invert CONVERT by probing. First assume the same offset as last time. + Then repeatedly use the error to improve the guess. */ + + tm.tm_year = EPOCH_YEAR - TM_YEAR_BASE; + tm.tm_yday = tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + t0 = ydhms_tm_diff (year, yday, hour, min, sec, &tm); + + for (t = t0 + *offset; + (dt = ydhms_tm_diff (year, yday, hour, min, sec, (*convert) (&t, &tm))); + t += dt) + if (--remaining_probes == 0) + return -1; + + /* Check whether tm.tm_isdst has the requested value, if any. */ + if (0 <= isdst && 0 <= tm.tm_isdst) + { + int dst_diff = (isdst != 0) - (tm.tm_isdst != 0); + if (dst_diff) + { + /* Move two hours in the direction indicated by the disagreement, + probe some more, and switch to a new time if found. + The largest known fallback due to daylight savings is two hours: + once, in Newfoundland, 1988-10-30 02:00 -> 00:00. */ + time_t ot = t - 2 * 60 * 60 * dst_diff; + while (--remaining_probes != 0) + { + struct tm otm; + if (! (dt = ydhms_tm_diff (year, yday, hour, min, sec, + (*convert) (&ot, &otm)))) + { + t = ot; + tm = otm; + break; + } + if ((ot += dt) == t) + break; /* Avoid a redundant probe. */ + } + } + } + + *offset = t - t0; + +#if LEAP_SECONDS_POSSIBLE + if (sec_requested != tm.tm_sec) + { + /* Adjust time to reflect the tm_sec requested, not the normalized value. + Also, repair any damage from a false match due to a leap second. */ + t += sec_requested - sec + (sec == 0 && tm.tm_sec == 60); + (*convert) (&t, &tm); + } +#endif + + if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3) + { + /* time_t isn't large enough to rule out overflows in ydhms_tm_diff, + so check for major overflows. A gross check suffices, + since if t has overflowed, it is off by a multiple of + TIME_T_MAX - TIME_T_MIN + 1. So ignore any component of + the difference that is bounded by a small value. */ + + double dyear = (double) year_requested + mon_years - tm.tm_year; + double dday = 366 * dyear + mday; + double dsec = 60 * (60 * (24 * dday + hour) + min) + sec_requested; + + if (TIME_T_MAX / 3 - TIME_T_MIN / 3 < (dsec < 0 ? - dsec : dsec)) + return -1; + } + + *tp = tm; + return t; +} + +#ifdef weak_alias +weak_alias (mktime, timelocal) +#endif + +#if DEBUG + +static int +not_equal_tm (a, b) + struct tm *a; + struct tm *b; +{ + return ((a->tm_sec ^ b->tm_sec) + | (a->tm_min ^ b->tm_min) + | (a->tm_hour ^ b->tm_hour) + | (a->tm_mday ^ b->tm_mday) + | (a->tm_mon ^ b->tm_mon) + | (a->tm_year ^ b->tm_year) + | (a->tm_mday ^ b->tm_mday) + | (a->tm_yday ^ b->tm_yday) + | (a->tm_isdst ^ b->tm_isdst)); +} + +static void +print_tm (tp) + struct tm *tp; +{ + printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d", + tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday, + tp->tm_hour, tp->tm_min, tp->tm_sec, + tp->tm_yday, tp->tm_wday, tp->tm_isdst); +} + +static int +check_result (tk, tmk, tl, tml) + time_t tk; + struct tm tmk; + time_t tl; + struct tm tml; +{ + if (tk != tl || not_equal_tm (&tmk, &tml)) + { + printf ("mktime ("); + print_tm (&tmk); + printf (")\nyields ("); + print_tm (&tml); + printf (") == %ld, should be %ld\n", (long) tl, (long) tk); + return 1; + } + + return 0; +} + +int +main (argc, argv) + int argc; + char **argv; +{ + int status = 0; + struct tm tm, tmk, tml; + time_t tk, tl; + char trailer; + + if ((argc == 3 || argc == 4) + && (sscanf (argv[1], "%d-%d-%d%c", + &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) + == 3) + && (sscanf (argv[2], "%d:%d:%d%c", + &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) + == 3)) + { + tm.tm_year -= TM_YEAR_BASE; + tm.tm_mon--; + tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]); + tmk = tm; + tl = mktime (&tmk); + tml = *localtime (&tl); + printf ("mktime returns %ld == ", (long) tl); + print_tm (&tmk); + printf ("\n"); + status = check_result (tl, tmk, tl, tml); + } + else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0)) + { + time_t from = atol (argv[1]); + time_t by = atol (argv[2]); + time_t to = atol (argv[3]); + + if (argc == 4) + for (tl = from; tl <= to; tl += by) + { + tml = *localtime (&tl); + tmk = tml; + tk = mktime (&tmk); + status |= check_result (tk, tmk, tl, tml); + } + else + for (tl = from; tl <= to; tl += by) + { + /* Null benchmark. */ + tml = *localtime (&tl); + tmk = tml; + tk = tl; + status |= check_result (tk, tmk, tl, tml); + } + } + else + printf ("Usage:\ +\t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\ +\t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\ +\t%s FROM BY TO - # Do not test those values (for benchmark).\n", + argv[0], argv[0], argv[0]); + + return status; +} + +#endif /* DEBUG */ + +/* +Local Variables: +compile-command: "gcc -DDEBUG=1 -Wall -O -g mktime.c -o mktime" +End: +*/ diff --git a/misc/myrealloc.c b/misc/myrealloc.c index bdb38a3e6..1b93c17bf 100644 --- a/misc/myrealloc.c +++ b/misc/myrealloc.c @@ -1,8 +1,4 @@ -#include <stdio.h> -#include <stdlib.h> -#define size_t unsigned - -void *myrealloc(void *ptr, size_t size); +#include "system.h" void *myrealloc(void *ptr, size_t size) { if (ptr == NULL) diff --git a/misc/putenv.c b/misc/putenv.c new file mode 100644 index 000000000..ee3ccc04a --- /dev/null +++ b/misc/putenv.c @@ -0,0 +1,110 @@ +/* Copyright (C) 1991, 1994 Free Software Foundation, Inc. + + +NOTE: The canonical source of this file is maintained with the GNU C Library. +Bugs can be reported to bug-glibc@prep.ai.mit.edu. + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include <errno.h> + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +/* Define-away any (possibly conflicting) prototype of putenv. + Many systems omit the `const' attribute on the argument. */ +#define putenv _sys_putenv + +#if defined (__GNU_LIBRARY__) || defined (HAVE_STDLIB_H) +# include <stdlib.h> +#endif +#if defined (__GNU_LIBRARY__) || defined (HAVE_STRING_H) +# include <string.h> +#endif +#if defined (__GNU_LIBRARY__) || defined (HAVE_UNISTD_H) +# include <unistd.h> +#endif + +#undef putenv + +#if !defined (__GNU_LIBRARY__) && !defined (HAVE_STRCHR) +# define strchr index +#endif +#if !defined (__GNU_LIBRARY__) && !defined (HAVE_MEMCPY) +# define memcpy(d,s,n) bcopy ((s), (d), (n)) +#endif + +#if HAVE_GNU_LD +# define environ __environ +#else +extern char **environ; +#endif + + +/* Put STRING, which is of the form "NAME=VALUE", in the environment. */ +int +putenv (string) + const char *string; +{ + const char *const name_end = strchr (string, '='); + register size_t size; + register char **ep; + + if (name_end == NULL) + { + /* Remove the variable from the environment. */ + size = strlen (string); + for (ep = environ; *ep != NULL; ++ep) + if (!strncmp (*ep, string, size) && (*ep)[size] == '=') + { + while (ep[1] != NULL) + { + ep[0] = ep[1]; + ++ep; + } + *ep = NULL; + return 0; + } + } + + size = 0; + for (ep = environ; *ep != NULL; ++ep) + if (!strncmp (*ep, string, name_end - string) && + (*ep)[name_end - string] == '=') + break; + else + ++size; + + if (*ep == NULL) + { + static char **last_environ = NULL; + char **new_environ = (char **) malloc ((size + 2) * sizeof (char *)); + if (new_environ == NULL) + return -1; + (void) memcpy ((void *) new_environ, (void *) environ, + size * sizeof (char *)); + new_environ[size] = (char *) string; + new_environ[size + 1] = NULL; + if (last_environ != NULL) + free ((void *) last_environ); + last_environ = new_environ; + environ = new_environ; + } + else + *ep = (char *) string; + + return 0; +} diff --git a/misc/realpath.c b/misc/realpath.c index 3fc610b9c..93cc8301d 100644 --- a/misc/realpath.c +++ b/misc/realpath.c @@ -13,24 +13,12 @@ * GNU Library Public License for more details. */ -#include <sys/types.h> -#if defined(HAVE_UNISTD_H) || defined(STDC_HEADERS) -#include <unistd.h> -#endif -#include <stdio.h> -#include <string.h> -#ifdef _POSIX_VERSION -#include <limits.h> /* for PATH_MAX */ -#else -#include <sys/param.h> /* for MAXPATHLEN */ -#endif -#include <errno.h> +#include "system.h" + #ifndef STDC_HEADERS extern int errno; #endif -#include <sys/stat.h> /* for S_IFLNK */ - #ifndef PATH_MAX #ifdef _POSIX_VERSION #define PATH_MAX _POSIX_PATH_MAX diff --git a/misc/strdup.c b/misc/strdup.c index 3e91af1b4..7b73a50c2 100644 --- a/misc/strdup.c +++ b/misc/strdup.c @@ -1,38 +1,43 @@ -/* - * Author: Tim Mooney <mooney@plains.nodak.edu> - * Copyright: This file is in the public domain. - * - * a replacement for strdup() for those platforms that don't have it, - * like Ultrix. - * - * Requires: malloc(), strlen(), strcpy(). - * - */ - -#include "system.h" - -#if defined(HAVE_STDLIB_H) || defined(STDC_HEADERS) -# include <stdlib.h> -#else -extern void *malloc(size_t); +/* strdup.c -- return a newly allocated copy of a string + Copyright (C) 1990 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifdef HAVE_CONFIG_H +#include <config.h> #endif -#if defined(HAVE_STRING_H) || defined(STDC_HEADERS) -# include <string.h> +#ifdef STDC_HEADERS +#include <string.h> +#include <stdlib.h> #else -extern size_t strlen(const char *); -extern char *strcpy(char *, const char *); +char *malloc (); +char *strcpy (); #endif -char * strdup(const char *s) { - void *p = NULL; +/* Return a newly allocated copy of STR, + or 0 if out of memory. */ - p = malloc(strlen(s)+1); - if (!p) { - return NULL; - } +char * +strdup (str) + const char *str; +{ + char *newstr; - strcpy( (char *) p, s); - return (char *) p; + newstr = (char *) malloc (strlen (str) + 1); + if (newstr) + strcpy (newstr, str); + return newstr; } - diff --git a/misc/strerror.c b/misc/strerror.c index acb81618c..39289231d 100644 --- a/misc/strerror.c +++ b/misc/strerror.c @@ -1,12 +1,11 @@ -#include<stdlib.h> -#include<errno.h> -#include<stdio.h> +#include "system.h" extern int sys_nerr; extern char *sys_errlist[]; static char buf[64]; -char * strerror(int errnum) +char * +strerror(int errnum) { if (errnum < 0 || errnum > sys_nerr) { diff --git a/misc/strftime.c b/misc/strftime.c new file mode 100644 index 000000000..8c838f783 --- /dev/null +++ b/misc/strftime.c @@ -0,0 +1,1054 @@ +/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc. + + NOTE: The canonical source of this file is maintained with the GNU C + Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#ifdef _LIBC +# define HAVE_LIMITS_H 1 +# define HAVE_MBLEN 1 +# define HAVE_MBRLEN 1 +# define HAVE_STRUCT_ERA_ENTRY 1 +# define HAVE_TM_GMTOFF 1 +# define HAVE_TM_ZONE 1 +# define HAVE_TZNAME 1 +# define HAVE_TZSET 1 +# define MULTIBYTE_IS_FORMAT_SAFE 1 +# define STDC_HEADERS 1 +# include <ansidecl.h> +# include "../locale/localeinfo.h" +#endif + +#include <ctype.h> +#include <sys/types.h> /* Some systems define `time_t' here. */ + +#ifdef TIME_WITH_SYS_TIME +# include <sys/time.h> +# include <time.h> +#else +# ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +# else +# include <time.h> +# endif +#endif +#if HAVE_TZNAME +extern char *tzname[]; +#endif + +/* Do multibyte processing if multibytes are supported, unless + multibyte sequences are safe in formats. Multibyte sequences are + safe if they cannot contain byte sequences that look like format + conversion specifications. The GNU C Library uses UTF8 multibyte + encoding, which is safe for formats, but strftime.c can be used + with other C libraries that use unsafe encodings. */ +#define DO_MULTIBYTE (HAVE_MBLEN && ! MULTIBYTE_IS_FORMAT_SAFE) + +#if DO_MULTIBYTE +# if HAVE_MBRLEN +# include <wchar.h> +# else + /* Simulate mbrlen with mblen as best we can. */ +# define mbstate_t int +# define mbrlen(s, n, ps) mblen (s, n) +# define mbsinit(ps) (*(ps) == 0) +# endif + static const mbstate_t mbstate_zero; +#endif + +#if HAVE_LIMITS_H +# include <limits.h> +#endif + +#if STDC_HEADERS +# include <stddef.h> +# include <stdlib.h> +# include <string.h> +#else +# define memcpy(d, s, n) bcopy ((s), (d), (n)) +#endif + +#ifndef __P +# if defined (__GNUC__) || (defined (__STDC__) && __STDC__) +# define __P(args) args +# else +# define __P(args) () +# endif /* GCC. */ +#endif /* Not __P. */ + +#ifndef PTR +# ifdef __STDC__ +# define PTR void * +# else +# define PTR char * +# endif +#endif + +#ifndef CHAR_BIT +# define CHAR_BIT 8 +#endif + +#ifndef NULL +# define NULL 0 +#endif + +#define TYPE_SIGNED(t) ((t) -1 < 0) + +/* Bound on length of the string representing an integer value of type t. + Subtract one for the sign bit if t is signed; + 302 / 1000 is log10 (2) rounded up; + add one for integer division truncation; + add one more for a minus sign if t is signed. */ +#define INT_STRLEN_BOUND(t) \ + ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 100 + 1 + TYPE_SIGNED (t)) + +#define TM_YEAR_BASE 1900 + +#ifndef __isleap +/* Nonzero if YEAR is a leap year (every 4 years, + except every 100th isn't, and every 400th is). */ +# define __isleap(year) \ + ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) +#endif + + +#ifdef _LIBC +# define gmtime_r __gmtime_r +# define localtime_r __localtime_r +extern int __tz_compute __P ((time_t timer, const struct tm *tm)); +# define tzname __tzname +# define tzset __tzset +#else +# if ! HAVE_LOCALTIME_R +# if ! HAVE_TM_GMTOFF +/* Approximate gmtime_r as best we can in its absence. */ +# define gmtime_r my_gmtime_r +static struct tm *gmtime_r __P ((const time_t *, struct tm *)); +static struct tm * +gmtime_r (t, tp) + const time_t *t; + struct tm *tp; +{ + struct tm *l = gmtime (t); + if (! l) + return 0; + *tp = *l; + return tp; +} +# endif /* ! HAVE_TM_GMTOFF */ + +/* Approximate localtime_r as best we can in its absence. */ +# define localtime_r my_localtime_r +static struct tm *localtime_r __P ((const time_t *, struct tm *)); +static struct tm * +localtime_r (t, tp) + const time_t *t; + struct tm *tp; +{ + struct tm *l = localtime (t); + if (! l) + return 0; + *tp = *l; + return tp; +} +# endif /* ! HAVE_LOCALTIME_R */ +#endif /* ! defined (_LIBC) */ + + +#if !defined (memset) && !defined (HAVE_MEMSET) && !defined (_LIBC) +/* Some systems lack the `memset' function and we don't want to + introduce additional dependencies. */ +static const char spaces[16] = " "; + +# define memset_space(P, Len) \ + do { \ + int _len = (Len); \ + \ + do \ + { \ + int _this = _len > 16 ? 16 : _len; \ + memcpy ((P), spaces, _this); \ + (P) += _this; \ + _len -= _this; \ + } \ + while (_len > 0); \ + } while (0) +#else +# define memset_space(P, Len) memset ((P), ' ', (Len)) +#endif + +#define add(n, f) \ + do \ + { \ + int _n = (n); \ + int _delta = width - _n; \ + int _incr = _n + (_delta > 0 ? _delta : 0); \ + if (i + _incr >= maxsize) \ + return 0; \ + if (p) \ + { \ + if (_delta > 0) \ + memset_space (p, _delta); \ + f; \ + p += _n; \ + } \ + i += _incr; \ + } while (0) + +#define cpy(n, s) \ + add ((n), \ + if (to_lowcase) \ + memcpy_lowcase (p, (s), _n); \ + else if (to_uppcase) \ + memcpy_uppcase (p, (s), _n); \ + else \ + memcpy ((PTR) p, (PTR) (s), _n)) + + + +#ifdef _LIBC +# define TOUPPER(Ch) toupper (Ch) +# define TOLOWER(Ch) tolower (Ch) +#else +# define TOUPPER(Ch) (islower (Ch) ? toupper (Ch) : (Ch)) +# define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) +#endif +/* We don't use `isdigit' here since the locale dependent + interpretation is not what we want here. We only need to accept + the arabic digits in the ASCII range. One day there is perhaps a + more reliable way to accept other sets of digits. */ +#define ISDIGIT(Ch) ((unsigned int) (Ch) - '0' <= 9) + +static char *memcpy_lowcase __P ((char *dest, const char *src, size_t len)); + +static char * +memcpy_lowcase (dest, src, len) + char *dest; + const char *src; + size_t len; +{ + while (len-- > 0) + dest[len] = TOLOWER (src[len]); + return dest; +} + +static char *memcpy_uppcase __P ((char *dest, const char *src, size_t len)); + +static char * +memcpy_uppcase (dest, src, len) + char *dest; + const char *src; + size_t len; +{ + while (len-- > 0) + dest[len] = TOUPPER (src[len]); + return dest; +} + +#if ! HAVE_TM_GMTOFF +/* Yield the difference between *A and *B, + measured in seconds, ignoring leap seconds. */ +static int tm_diff __P ((const struct tm *, const struct tm *)); +static int +tm_diff (a, b) + const struct tm *a; + const struct tm *b; +{ + /* Compute intervening leap days correctly even if year is negative. + Take care to avoid int overflow in leap day calculations, + but it's OK to assume that A and B are close to each other. */ + int a4 = (a->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (a->tm_year & 3); + int b4 = (b->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (b->tm_year & 3); + int a100 = a4 / 25 - (a4 % 25 < 0); + int b100 = b4 / 25 - (b4 % 25 < 0); + int a400 = a100 >> 2; + int b400 = b100 >> 2; + int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); + int years = a->tm_year - b->tm_year; + int days = (365 * years + intervening_leap_days + + (a->tm_yday - b->tm_yday)); + return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) + + (a->tm_min - b->tm_min)) + + (a->tm_sec - b->tm_sec)); +} +#endif /* ! HAVE_TM_GMTOFF */ + + + +/* The number of days from the first day of the first ISO week of this + year to the year day YDAY with week day WDAY. ISO weeks start on + Monday; the first ISO week has the year's first Thursday. YDAY may + be as small as YDAY_MINIMUM. */ +#define ISO_WEEK_START_WDAY 1 /* Monday */ +#define ISO_WEEK1_WDAY 4 /* Thursday */ +#define YDAY_MINIMUM (-366) +static int iso_week_days __P ((int, int)); +#ifdef __GNUC__ +inline +#endif +static int +iso_week_days (yday, wday) + int yday; + int wday; +{ + /* Add enough to the first operand of % to make it nonnegative. */ + int big_enough_multiple_of_7 = (-YDAY_MINIMUM / 7 + 2) * 7; + return (yday + - (yday - wday + ISO_WEEK1_WDAY + big_enough_multiple_of_7) % 7 + + ISO_WEEK1_WDAY - ISO_WEEK_START_WDAY); +} + + +#ifndef _NL_CURRENT +static char const weekday_name[][10] = + { + "Sunday", "Monday", "Tuesday", "Wednesday", + "Thursday", "Friday", "Saturday" + }; +static char const month_name[][10] = + { + "January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December" + }; +#endif + + +#if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET + /* Solaris 2.5 tzset sometimes modifies the storage returned by localtime. + Work around this bug by copying *tp before it might be munged. */ + size_t _strftime_copytm __P ((char *, size_t, const char *, + const struct tm *)); + size_t + strftime (s, maxsize, format, tp) + char *s; + size_t maxsize; + const char *format; + const struct tm *tp; + { + struct tm tmcopy; + tmcopy = *tp; + return _strftime_copytm (s, maxsize, format, &tmcopy); + } +# ifdef strftime +# undef strftime +# endif +# define strftime _strftime_copytm +#endif + + + +/* Write information from TP into S according to the format + string FORMAT, writing no more that MAXSIZE characters + (including the terminating '\0') and returning number of + characters written. If S is NULL, nothing will be written + anywhere, so to determine how many characters would be + written, use NULL for S and (size_t) UINT_MAX for MAXSIZE. */ +size_t +strftime (s, maxsize, format, tp) + char *s; + size_t maxsize; + const char *format; + const struct tm *tp; +{ + int hour12 = tp->tm_hour; +#ifdef _NL_CURRENT + const char *const a_wkday = _NL_CURRENT (LC_TIME, ABDAY_1 + tp->tm_wday); + const char *const f_wkday = _NL_CURRENT (LC_TIME, DAY_1 + tp->tm_wday); + const char *const a_month = _NL_CURRENT (LC_TIME, ABMON_1 + tp->tm_mon); + const char *const f_month = _NL_CURRENT (LC_TIME, MON_1 + tp->tm_mon); + const char *const ampm = _NL_CURRENT (LC_TIME, + hour12 > 11 ? PM_STR : AM_STR); + size_t aw_len = strlen (a_wkday); + size_t am_len = strlen (a_month); + size_t ap_len = strlen (ampm); +#else + const char *const f_wkday = weekday_name[tp->tm_wday]; + const char *const f_month = month_name[tp->tm_mon]; + const char *const a_wkday = f_wkday; + const char *const a_month = f_month; + const char *const ampm = "AMPM" + 2 * (hour12 > 11); + size_t aw_len = 3; + size_t am_len = 3; + size_t ap_len = 2; +#endif + size_t wkday_len = strlen (f_wkday); + size_t month_len = strlen (f_month); + const char *zone; + size_t zonelen; + size_t i = 0; + char *p = s; + const char *f; + + zone = NULL; +#if !defined _LIBC && HAVE_TM_ZONE + /* XXX We have some problems here. First, the string pointed to by + tm_zone is dynamically allocated while loading the zone data. But + when another zone is loaded since the information in TP were + computed this would be a stale pointer. + The second problem is the POSIX test suite which assumes setting + the environment variable TZ to a new value before calling strftime() + will influence the result (the %Z format) even if the information in + TP is computed with a totally different time zone. --drepper@gnu */ + zone = (const char *) tp->tm_zone; +#endif +#if HAVE_TZNAME + /* POSIX.1 8.1.1 requires that whenever strftime() is called, the + time zone names contained in the external variable `tzname' shall + be set as if the tzset() function had been called. */ +# if HAVE_TZSET + tzset (); +# endif + + if (!(zone && *zone) && tp->tm_isdst >= 0) + zone = tzname[tp->tm_isdst]; +#endif + if (! zone) + zone = ""; /* POSIX.2 requires the empty string here. */ + + zonelen = strlen (zone); + + if (hour12 > 12) + hour12 -= 12; + else + if (hour12 == 0) hour12 = 12; + + for (f = format; *f != '\0'; ++f) + { + int pad; /* Padding for number ('-', '_', or 0). */ + int modifier; /* Field modifier ('E', 'O', or 0). */ + int digits; /* Max digits for numeric format. */ + int number_value; /* Numeric value to be printed. */ + int negative_number; /* 1 if the number is negative. */ + const char *subfmt; + char *bufp; + char buf[1 + (sizeof (int) < sizeof (time_t) + ? INT_STRLEN_BOUND (time_t) + : INT_STRLEN_BOUND (int))]; + int width = -1; + int to_lowcase = 0; + int to_uppcase = 0; + +#if DO_MULTIBYTE + + switch (*f) + { + case '%': + break; + + case '\a': case '\b': case '\t': case '\n': + case '\v': case '\f': case '\r': + case ' ': case '!': case '"': case '#': case '&': case'\'': + case '(': case ')': case '*': case '+': case ',': case '-': + case '.': case '/': case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': case '8': case '9': + case ':': case ';': case '<': case '=': case '>': case '?': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': case '[': case'\\': case ']': case '^': + case '_': case 'a': case 'b': case 'c': case 'd': case 'e': + case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': + case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': + case 'r': case 's': case 't': case 'u': case 'v': case 'w': + case 'x': case 'y': case 'z': case '{': case '|': case '}': + case '~': + /* The C Standard requires these 98 characters (plus '%') to + be in the basic execution character set. None of these + characters can start a multibyte sequence, so they need + not be analyzed further. */ + add (1, *p = *f); + continue; + + default: + /* Copy this multibyte sequence until we reach its end, find + an error, or come back to the initial shift state. */ + { + mbstate_t mbstate = mbstate_zero; + size_t len = 0; + + do + { + size_t bytes = mbrlen (f + len, (size_t) -1, &mbstate); + + if (bytes == 0) + break; + + if (bytes == (size_t) -2 || bytes == (size_t) -1) + { + len++; + break; + } + + len += bytes; + } + while (! mbsinit (&mbstate)); + + cpy (len, f); + continue; + } + } + +#else /* ! DO_MULTIBYTE */ + + /* Either multibyte encodings are not supported, or they are + safe for formats, so any non-'%' byte can be copied through. */ + if (*f != '%') + { + add (1, *p = *f); + continue; + } + +#endif /* ! DO_MULTIBYTE */ + + /* Check for flags that can modify a format. */ + pad = 0; + while (1) + { + switch (*++f) + { + /* This influences the number formats. */ + case '_': + case '-': + case '0': + pad = *f; + continue; + + /* This changes textual output. */ + case '^': + to_uppcase = 1; + continue; + + default: + break; + } + break; + } + + /* As a GNU extension we allow to specify the field width. */ + if (ISDIGIT (*f)) + { + width = 0; + do + { + width *= 10; + width += *f - '0'; + ++f; + } + while (ISDIGIT (*f)); + } + + /* Check for modifiers. */ + switch (*f) + { + case 'E': + case 'O': + modifier = *f++; + break; + + default: + modifier = 0; + break; + } + + /* Now do the specified format. */ + switch (*f) + { +#define DO_NUMBER(d, v) \ + digits = d; number_value = v; goto do_number +#define DO_NUMBER_SPACEPAD(d, v) \ + digits = d; number_value = v; goto do_number_spacepad + + case '%': + if (modifier != 0) + goto bad_format; + add (1, *p = *f); + break; + + case 'a': + if (modifier != 0) + goto bad_format; + cpy (aw_len, a_wkday); + break; + + case 'A': + if (modifier != 0) + goto bad_format; + cpy (wkday_len, f_wkday); + break; + + case 'b': + case 'h': /* POSIX.2 extension. */ + if (modifier != 0) + goto bad_format; + cpy (am_len, a_month); + break; + + case 'B': + if (modifier != 0) + goto bad_format; + cpy (month_len, f_month); + break; + + case 'c': + if (modifier == 'O') + goto bad_format; +#ifdef _NL_CURRENT + if (! (modifier == 'E' + && *(subfmt = _NL_CURRENT (LC_TIME, ERA_D_T_FMT)) != '\0')) + subfmt = _NL_CURRENT (LC_TIME, D_T_FMT); +#else + subfmt = "%a %b %e %H:%M:%S %Y"; +#endif + + subformat: + { + char *old_start = p; + size_t len = strftime (NULL, maxsize - i, subfmt, tp); + if (len == 0 && *subfmt) + return 0; + add (len, strftime (p, maxsize - i, subfmt, tp)); + + if (to_uppcase) + while (old_start < p) + { + *old_start = TOUPPER (*old_start); + ++old_start; + } + } + break; + + case 'C': /* POSIX.2 extension. */ + if (modifier == 'O') + goto bad_format; +#if HAVE_STRUCT_ERA_ENTRY + if (modifier == 'E') + { + struct era_entry *era = _nl_get_era_entry (tp); + if (era) + { + size_t len = strlen (era->name_fmt); + cpy (len, era->name_fmt); + break; + } + } +#endif + { + int year = tp->tm_year + TM_YEAR_BASE; + DO_NUMBER (1, year / 100 - (year % 100 < 0)); + } + + case 'x': + if (modifier == 'O') + goto bad_format; +#ifdef _NL_CURRENT + if (! (modifier == 'E' + && *(subfmt = _NL_CURRENT (LC_TIME, ERA_D_FMT)) != '\0')) + subfmt = _NL_CURRENT (LC_TIME, D_FMT); + goto subformat; +#endif + /* Fall through. */ + case 'D': /* POSIX.2 extension. */ + if (modifier != 0) + goto bad_format; + subfmt = "%m/%d/%y"; + goto subformat; + + case 'd': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (2, tp->tm_mday); + + case 'e': /* POSIX.2 extension. */ + if (modifier == 'E') + goto bad_format; + + DO_NUMBER_SPACEPAD (2, tp->tm_mday); + + /* All numeric formats set DIGITS and NUMBER_VALUE and then + jump to one of these two labels. */ + + do_number_spacepad: + /* Force `_' flag unless overwritten by `0' flag. */ + if (pad != '0') + pad = '_'; + + do_number: + /* Format the number according to the MODIFIER flag. */ + +#ifdef _NL_CURRENT + if (modifier == 'O' && 0 <= number_value) + { + /* Get the locale specific alternate representation of + the number NUMBER_VALUE. If none exist NULL is returned. */ + const char *cp = _nl_get_alt_digit (number_value); + + if (cp != NULL) + { + size_t digitlen = strlen (cp); + if (digitlen != 0) + { + cpy (digitlen, cp); + break; + } + } + } +#endif + { + unsigned int u = number_value; + + bufp = buf + sizeof (buf); + negative_number = number_value < 0; + + if (negative_number) + u = -u; + + do + *--bufp = u % 10 + '0'; + while ((u /= 10) != 0); + } + + do_number_sign_and_padding: + if (negative_number) + *--bufp = '-'; + + if (pad != '-') + { + int padding = digits - (buf + sizeof (buf) - bufp); + + if (pad == '_') + { + while (0 < padding--) + *--bufp = ' '; + } + else + { + bufp += negative_number; + while (0 < padding--) + *--bufp = '0'; + if (negative_number) + *--bufp = '-'; + } + } + + cpy (buf + sizeof (buf) - bufp, bufp); + break; + + + case 'H': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (2, tp->tm_hour); + + case 'I': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (2, hour12); + + case 'k': /* GNU extension. */ + if (modifier == 'E') + goto bad_format; + + DO_NUMBER_SPACEPAD (2, tp->tm_hour); + + case 'l': /* GNU extension. */ + if (modifier == 'E') + goto bad_format; + + DO_NUMBER_SPACEPAD (2, hour12); + + case 'j': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (3, 1 + tp->tm_yday); + + case 'M': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (2, tp->tm_min); + + case 'm': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (2, tp->tm_mon + 1); + + case 'n': /* POSIX.2 extension. */ + add (1, *p = '\n'); + break; + + case 'P': + to_lowcase = 1; + /* FALLTHROUGH */ + + case 'p': + cpy (ap_len, ampm); + break; + + case 'R': /* GNU extension. */ + subfmt = "%H:%M"; + goto subformat; + + case 'r': /* POSIX.2 extension. */ +#ifdef _NL_CURRENT + if (*(subfmt = _NL_CURRENT (LC_TIME, T_FMT_AMPM)) == '\0') +#endif + subfmt = "%I:%M:%S %p"; + goto subformat; + + case 'S': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (2, tp->tm_sec); + + case 's': /* GNU extension. */ + { + struct tm ltm; + time_t t; + + ltm = *tp; + t = mktime (<m); + + /* Generate string value for T using time_t arithmetic; + this works even if sizeof (long) < sizeof (time_t). */ + + bufp = buf + sizeof (buf); + negative_number = t < 0; + + do + { + int d = t % 10; + t /= 10; + + if (negative_number) + { + d = -d; + + /* Adjust if division truncates to minus infinity. */ + if (0 < -1 % 10 && d < 0) + { + t++; + d += 10; + } + } + + *--bufp = d + '0'; + } + while (t != 0); + + digits = 1; + goto do_number_sign_and_padding; + } + + case 'X': + if (modifier == 'O') + goto bad_format; +#ifdef _NL_CURRENT + if (! (modifier == 'E' + && *(subfmt = _NL_CURRENT (LC_TIME, ERA_T_FMT)) != '\0')) + subfmt = _NL_CURRENT (LC_TIME, T_FMT); + goto subformat; +#endif + /* Fall through. */ + case 'T': /* POSIX.2 extension. */ + subfmt = "%H:%M:%S"; + goto subformat; + + case 't': /* POSIX.2 extension. */ + add (1, *p = '\t'); + break; + + case 'u': /* POSIX.2 extension. */ + DO_NUMBER (1, (tp->tm_wday - 1 + 7) % 7 + 1); + + case 'U': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (2, (tp->tm_yday - tp->tm_wday + 7) / 7); + + case 'V': + case 'g': /* GNU extension. */ + case 'G': /* GNU extension. */ + if (modifier == 'E') + goto bad_format; + { + int year = tp->tm_year + TM_YEAR_BASE; + int days = iso_week_days (tp->tm_yday, tp->tm_wday); + + if (days < 0) + { + /* This ISO week belongs to the previous year. */ + year--; + days = iso_week_days (tp->tm_yday + (365 + __isleap (year)), + tp->tm_wday); + } + else + { + int d = iso_week_days (tp->tm_yday - (365 + __isleap (year)), + tp->tm_wday); + if (0 <= d) + { + /* This ISO week belongs to the next year. */ + year++; + days = d; + } + } + + switch (*f) + { + case 'g': + DO_NUMBER (2, (year % 100 + 100) % 100); + + case 'G': + DO_NUMBER (1, year); + + default: + DO_NUMBER (2, days / 7 + 1); + } + } + + case 'W': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (2, (tp->tm_yday - (tp->tm_wday - 1 + 7) % 7 + 7) / 7); + + case 'w': + if (modifier == 'E') + goto bad_format; + + DO_NUMBER (1, tp->tm_wday); + + case 'Y': +#if HAVE_STRUCT_ERA_ENTRY + if (modifier == 'E') + { + struct era_entry *era = _nl_get_era_entry (tp); + if (era) + { + subfmt = strchr (era->name_fmt, '\0') + 1; + goto subformat; + } + } +#endif + if (modifier == 'O') + goto bad_format; + else + DO_NUMBER (1, tp->tm_year + TM_YEAR_BASE); + + case 'y': +#if HAVE_STRUCT_ERA_ENTRY + if (modifier == 'E') + { + struct era_entry *era = _nl_get_era_entry (tp); + if (era) + { + int delta = tp->tm_year - era->start_date[0]; + DO_NUMBER (1, (era->offset + + (era->direction == '-' ? -delta : delta))); + } + } +#endif + DO_NUMBER (2, (tp->tm_year % 100 + 100) % 100); + + case 'Z': + cpy (zonelen, zone); + break; + + case 'z': /* GNU extension. */ + if (tp->tm_isdst < 0) + break; + + { + int diff; +#if HAVE_TM_GMTOFF + diff = tp->tm_gmtoff; +#else + struct tm gtm; + struct tm ltm; + time_t lt; + + ltm = *tp; + lt = mktime (<m); + + if (lt == (time_t) -1) + { + /* mktime returns -1 for errors, but -1 is also a + valid time_t value. Check whether an error really + occurred. */ + struct tm tm; + localtime_r (<, &tm); + + if ((ltm.tm_sec ^ tm.tm_sec) + | (ltm.tm_min ^ tm.tm_min) + | (ltm.tm_hour ^ tm.tm_hour) + | (ltm.tm_mday ^ tm.tm_mday) + | (ltm.tm_mon ^ tm.tm_mon) + | (ltm.tm_year ^ tm.tm_year)) + break; + } + + if (! gmtime_r (<, >m)) + break; + + diff = tm_diff (<m, >m); +#endif + + if (diff < 0) + { + add (1, *p = '-'); + diff = -diff; + } + else + add (1, *p = '+'); + + diff /= 60; + DO_NUMBER (4, (diff / 60) * 100 + diff % 60); + } + + case '\0': /* GNU extension: % at end of format. */ + --f; + /* Fall through. */ + default: + /* Unknown format; output the format, including the '%', + since this is most likely the right thing to do if a + multibyte string has been misparsed. */ + bad_format: + { + int flen; + for (flen = 1; f[1 - flen] != '%'; flen++) + continue; + cpy (flen, &f[1 - flen]); + } + break; + } + } + + if (p) + *p = '\0'; + return i; +} diff --git a/misc/strspn.c b/misc/strspn.c new file mode 100644 index 000000000..01d8d0fc5 --- /dev/null +++ b/misc/strspn.c @@ -0,0 +1,40 @@ +/* strspn.c -- return numbers of chars at start of string in a class + Copyright (C) 1987, 1990 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#if defined(HAVE_STRING_H) +#include <string.h> +#else +#include <strings.h> +#ifndef strchr +#define strchr index +#endif +#endif + +int +strspn (str, class) + char *str, *class; +{ + register char *st = str; + + while (*st && strchr (class, *st)) + ++st; + return st - str; +} diff --git a/misc/strstr.c b/misc/strstr.c new file mode 100644 index 000000000..cdee62117 --- /dev/null +++ b/misc/strstr.c @@ -0,0 +1,116 @@ +/* Copyright (C) 1994 Free Software Foundation, Inc. +This file is part of the GNU C Library. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* + * My personal strstr() implementation that beats most other algorithms. + * Until someone tells me otherwise, I assume that this is the + * fastest implementation of strstr() in C. + * I deliberately chose not to comment it. You should have at least + * as much fun trying to understand it, as I had to write it :-). + * + * Stephen R. van den Berg, berg@pool.informatik.rwth-aachen.de */ + +#include <string.h> +#include <sys/types.h> + +typedef unsigned chartype; + +char * +strstr (phaystack, pneedle) + const char *phaystack; + const char *pneedle; +{ + register const unsigned char *haystack, *needle; + register chartype b, c; + + haystack = (const unsigned char *) phaystack; + needle = (const unsigned char *) pneedle; + + b = *needle; + if (b != '\0') + { + haystack--; /* possible ANSI violation */ + do + { + c = *++haystack; + if (c == '\0') + goto ret0; + } + while (c != b); + + c = *++needle; + if (c == '\0') + goto foundneedle; + ++needle; + goto jin; + + for (;;) + { + register chartype a; + register const unsigned char *rhaystack, *rneedle; + + do + { + a = *++haystack; + if (a == '\0') + goto ret0; + if (a == b) + break; + a = *++haystack; + if (a == '\0') + goto ret0; +shloop: } + while (a != b); + +jin: a = *++haystack; + if (a == '\0') + goto ret0; + + if (a != c) + goto shloop; + + rhaystack = haystack-- + 1; + rneedle = needle; + a = *rneedle; + + if (*rhaystack == a) + do + { + if (a == '\0') + goto foundneedle; + ++rhaystack; + a = *++needle; + if (*rhaystack != a) + break; + if (a == '\0') + goto foundneedle; + ++rhaystack; + a = *++needle; + } + while (*rhaystack == a); + + needle = rneedle; /* took the register-poor aproach */ + + if (a == '\0') + break; + } + } +foundneedle: + return (char*) haystack; +ret0: + return 0; +} diff --git a/misc/strtol.c b/misc/strtol.c index ea52e3e41..633ed467b 100644 --- a/misc/strtol.c +++ b/misc/strtol.c @@ -21,9 +21,13 @@ Cambridge, MA 02139, USA. */ # define USE_NUMBER_GROUPING # define STDC_HEADERS # define HAVE_LIMITS_H +#else +#include "system.h" #endif -#include "system.h" +#ifndef errno +extern int errno; +#endif #ifdef STDC_HEADERS # include <stddef.h> diff --git a/misc/strtoul.c b/misc/strtoul.c index 74126ab7c..87ab3dcd9 100644 --- a/misc/strtoul.c +++ b/misc/strtoul.c @@ -16,6 +16,8 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include "system.h" + #define UNSIGNED 1 -#include <limits.h> -#include <strtol.c> + +#include "strtol.c" diff --git a/missing b/missing new file mode 100755 index 000000000..cbe2b0ef0 --- /dev/null +++ b/missing @@ -0,0 +1,188 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. +# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +case "$1" in + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing - GNU libit 0.0" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acinclude.m4' or \`configure.in'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`configure.in'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acconfig.h' or \`configure.in'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in` + if test -z "$files"; then + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in` + test -z "$files" || files="$files.in" + else + files=`echo "$files" | sed -e 's/:/ /g'` + fi + test -z "$files" && files="config.h.in" + touch $files + ;; + + automake) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print \ + | sed 's/^\(.*\).am$/touch \1.in/' \ + | sh + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequirements for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 diff --git a/oldrpmdb.c b/oldrpmdb.c index a1fcffedd..93600d898 100644 --- a/oldrpmdb.c +++ b/oldrpmdb.c @@ -2,6 +2,8 @@ #include "build/rpmbuild.h" +#include "intl.h" + #include "rpm_malloc.h" #include "oldrpmdb.h" diff --git a/po/.cvsignore b/po/.cvsignore index 87f410a5b..1f8926b49 100644 --- a/po/.cvsignore +++ b/po/.cvsignore @@ -1,3 +1,3 @@ Makefile +POTFILES *.mo -*.pot diff --git a/po/Makefile.in b/po/Makefile.in index c80869c5f..db16f6b4d 100644 --- a/po/Makefile.in +++ b/po/Makefile.in @@ -8,6 +8,8 @@ INSTALL_PROGRAM= @INSTALL_PROGRAM@ INSTALL_DATA= @INSTALL_DATA@ CC = @CC@ +installprefix = $(DESTDIR) + MSGMERGE = msgmerge NLSPACKAGE = rpm diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 000000000..111b40fcb --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,248 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = $(prefix)/@DATADIRNAME@ +localedir = $(datadir)/locale +gnulocaledir = $(prefix)/share/locale +gettextsrcdir = $(prefix)/share/gettext/po +subdir = po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ + +CC = @CC@ +GENCAT = @GENCAT@ +GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ +MSGMERGE = PATH=../src:$$PATH msgmerge + +DEFS = @DEFS@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ + +INCLUDES = -I.. -I$(top_srcdir)/intl + +COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) + +SOURCES = cat-id-tbl.c +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ +stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) + +POTFILES = \ + +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +INSTOBJEXT = @INSTOBJEXT@ + +.SUFFIXES: +.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat + +.c.o: + $(COMPILE) $< + +.po.pox: + $(MAKE) $(PACKAGE).pot + $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox + +.po.mo: + $(MSGFMT) -o $@ $< + +.po.gmo: + file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ + && rm -f $$file && $(GMSGFMT) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && $(GENCAT) $@ $*.msg + + +all: all-@USE_NLS@ + +all-yes: cat-id-tbl.c $(CATALOGS) +all-no: + +$(srcdir)/$(PACKAGE).pot: $(POTFILES) + $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ + --add-comments --keyword=_ --keyword=N_ \ + --files-from=$(srcdir)/POTFILES.in \ + && test ! -f $(PACKAGE).po \ + || ( rm -f $(srcdir)/$(PACKAGE).pot \ + && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) + +$(srcdir)/cat-id-tbl.c: stamp-cat-id; @: +$(srcdir)/stamp-cat-id: $(PACKAGE).pot + rm -f cat-id-tbl.tmp + sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ + | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp + if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ + rm cat-id-tbl.tmp; \ + else \ + echo cat-id-tbl.c changed; \ + rm -f $(srcdir)/cat-id-tbl.c; \ + mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ + fi + cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $(datadir); \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \ + fi + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + case "$$cat" in \ + *.gmo) destdir=$(gnulocaledir);; \ + *) destdir=$(localedir);; \ + esac; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + dir=$$destdir/$$lang/LC_MESSAGES; \ + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $$dir; \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ + fi; \ + if test -r $$cat; then \ + $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ + echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ + fi; \ + if test -r $$cat.m; then \ + $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ + echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ + else \ + if test -r $(srcdir)/$$cat.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$cat.m \ + $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ + else \ + true; \ + fi; \ + fi; \ + done + if test "$(PACKAGE)" = "gettext"; then \ + if test -r "$(MKINSTALLDIRS)"; then \ + $(MKINSTALLDIRS) $(gettextsrcdir); \ + else \ + $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ + fi; \ + $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ + $(gettextsrcdir)/Makefile.in.in; \ + else \ + : ; \ + fi + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ + rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ + done + rm -f $(gettextsrcdir)/po-Makefile.in.in + +check: all + +cat-id-tbl.o: ../intl/libgettext.h + +dvi info tags TAGS ID: + +mostlyclean: + rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f $(GMOFILES) + +distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: update-po $(DISTFILES) + dists="$(DISTFILES)"; \ + for file in $$dists; do \ + ln $(srcdir)/$$file $(distdir) 2> /dev/null \ + || cp -p $(srcdir)/$$file $(distdir); \ + done + +update-po: Makefile + $(MAKE) $(PACKAGE).pot + PATH=`pwd`/../src:$$PATH; \ + cd $(srcdir); \ + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + mv $$lang.po $$lang.old.po; \ + echo "$$lang:"; \ + if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ + rm -f $$lang.old.po; \ + else \ + echo "msgmerge for $$cat failed!"; \ + rm -f $$lang.po; \ + mv $$lang.old.po $$lang.po; \ + fi; \ + done + +POTFILES: POTFILES.in + ( if test 'x$(srcdir)' != 'x.'; then \ + posrcprefix='$(top_srcdir)/'; \ + else \ + posrcprefix="../"; \ + fi; \ + rm -f $@-t $@ \ + && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ + -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ + | sed -e '$$s/\\$$//') > $@-t \ + && chmod a-w $@-t \ + && mv $@-t $@ ) + +Makefile: Makefile.in.in ../config.status POTFILES + cd .. \ + && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ + $(SHELL) ./config.status + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 000000000..489db205d --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,61 @@ +# List of files which contain translatable strings. + +# Package source files + +build.c +checksig.c +ftp.c +install.c +query.c +rpm.c +url.c +verify.c +rpm2cpio.c +convertdb.c +oldrpmdb.c +build/build.c +build/expression.c +build/files.c +build/misc.c +build/myftw.c +build/names.c +build/pack.c +build/parseBuildInstallClean.c +build/parseChangelog.c +build/parseDescription.c +build/parseFiles.c +build/parsePreamble.c +build/parsePrep.c +build/parseReqs.c +build/parseScript.c +build/parseSpec.c +build/reqprov.c +build/spec.c +lib/cpio.c +lib/dbindex.c +lib/depends.c +lib/falloc.c +lib/formats.c +lib/fs.c +lib/header.c +lib/install.c +lib/lookup.c +lib/macro.c +lib/md5.c +lib/md5sum.c +lib/messages.c +lib/misc.c +lib/oldheader.c +lib/package.c +lib/rebuilddb.c +lib/rpmdb.c +lib/rpmerr.c +lib/rpmlead.c +lib/rpmrc.c +lib/signature.c +lib/stringbuf.c +lib/tagtable.c +lib/tread.c +lib/uninstall.c +lib/verify.c + diff --git a/po/rpm.pot b/po/rpm.pot index e89631df5..6dd506e55 100644 --- a/po/rpm.pot +++ b/po/rpm.pot @@ -2,11 +2,12 @@ # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#: ../rpm.c:200 ../rpm.c:279 #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-12-20 10:35-0500\n" +"POT-Creation-Date: 1998-10-07 20:00-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -14,3432 +15,3136 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" -#: build.c:25 lib/rpminstall.c:250 lib/rpminstall.c:424 +#: ../build.c:40 ../build.c:51 #, c-format -msgid "cannot open %s/packages.rpm\n" +msgid "Failed to open tar pipe: %s\n" msgstr "" -#: build.c:35 -msgid "failed build dependencies:\n" +#. Give up +#: ../build.c:57 +#, c-format +msgid "Failed to read spec file from %s\n" msgstr "" -#: build.c:64 +#: ../build.c:80 #, c-format -msgid "Unable to open spec file %s: %s\n" +msgid "Failed to rename %s to %s: %s\n" msgstr "" -#: build.c:125 build.c:138 +#: ../build.c:112 #, c-format -msgid "Failed to open tar pipe: %s\n" +msgid "File is not a regular file: %s\n" msgstr "" -#. Give up -#: build.c:146 +#: ../build.c:117 #, c-format -msgid "Failed to read spec file from %s\n" +msgid "Unable to open spec file: %s\n" msgstr "" -#: build.c:174 +#: ../build.c:125 #, c-format -msgid "Failed to rename %s to %s: %s\n" +msgid "File contains non-printable characters(%c): %s\n" msgstr "" -#: build.c:212 +#: ../checksig.c:26 ../checksig.c:157 #, c-format -msgid "File is not a regular file: %s\n" +msgid "%s: Open failed\n" msgstr "" -#: build.c:219 +#: ../checksig.c:30 ../checksig.c:162 #, c-format -msgid "File %s does not appear to be a specfile.\n" +msgid "%s: readLead failed\n" msgstr "" -#. parse up the build operators -#: build.c:279 +#: ../checksig.c:34 #, c-format -msgid "Building target platforms: %s\n" +msgid "%s: Can't sign v1.0 RPM\n" msgstr "" -#: build.c:294 +#: ../checksig.c:38 #, c-format -msgid "Building for target %s\n" +msgid "%s: Can't re-sign v2.0 RPM\n" msgstr "" -#: build.c:344 -msgid "buildroot already specified" +#: ../checksig.c:42 ../checksig.c:172 +#, c-format +msgid "%s: rpmReadSignature failed\n" msgstr "" -#: build.c:351 -msgid "--buildarch has been obsoleted. Use the --target option instead.\n" +#: ../checksig.c:55 ../checksig.c:186 +msgid "Couldn't read the header/archive" msgstr "" -#: build.c:355 -msgid "--buildos has been obsoleted. Use the --target option instead.\n" +#: ../checksig.c:62 +msgid "Couldn't write header/archive to temp file" msgstr "" -#: build.c:376 -msgid "override build architecture" +#: ../build/pack.c:274 ../checksig.c:87 +#, c-format +msgid "Generating signature: %d\n" msgstr "" -#: build.c:378 -msgid "override build operating system" +#: ../checksig.c:110 +msgid "Couldn't read sigtarget" msgstr "" -#: build.c:380 -msgid "override build root" +#: ../checksig.c:119 +msgid "Couldn't write package" msgstr "" -#: build.c:382 rpm.c:495 -msgid "remove build tree when done" +#: ../checksig.c:167 +#, c-format +msgid "%s: No signature available (v1.0 RPM)\n" msgstr "" -#: build.c:384 -msgid "do not execute any stages of the build" +#: ../checksig.c:177 +#, c-format +msgid "%s: No signature available\n" msgstr "" -#: build.c:386 -msgid "do not accept I18N msgstr's from specfile" +#: ../checksig.c:193 +#, c-format +msgid "Unable to write %s" msgstr "" -#: build.c:388 -msgid "remove sources when done" +#: ../checksig.c:284 +msgid "NOT OK" msgstr "" -#: build.c:390 -msgid "remove specfile when done" +#: ../checksig.c:285 ../checksig.c:292 +msgid " (MISSING KEYS)" msgstr "" -#: build.c:392 rpm.c:493 -msgid "skip straight to specified stage (only for c,i)" +#: ../checksig.c:291 +msgid "OK" msgstr "" -#: build.c:394 -msgid "override target platform" +#: ../ftp.c:425 +msgid "Bad FTP server response" msgstr "" -#: build.c:396 -msgid "lookup I18N strings in specfile catalog" +#: ../ftp.c:428 +msgid "FTP IO error" msgstr "" -#: convertdb.c:39 -msgid "RPM database already exists" +#: ../ftp.c:431 +msgid "FTP server timeout" msgstr "" -#: convertdb.c:44 -msgid "Old db is missing" +#: ../ftp.c:434 +msgid "Unable to lookup FTP server host address" msgstr "" -#: convertdb.c:55 -msgid "failed to create RPM database /var/lib/rpm" +#: ../ftp.c:437 +msgid "Unable to lookup FTP server host name" msgstr "" -#: convertdb.c:61 -msgid "Old db is corrupt" +#: ../ftp.c:440 +msgid "Failed to connect to FTP server" +msgstr "" + +#: ../ftp.c:443 +msgid "Failed to establish data connection to FTP server" +msgstr "" + +#: ../ftp.c:446 +msgid "IO error to local file" msgstr "" -#: convertdb.c:70 +#: ../ftp.c:449 +msgid "Error setting remote server to passive mode" +msgstr "" + +#: ../ftp.c:452 +msgid "File not found on server" +msgstr "" + +#: ../ftp.c:456 +msgid "FTP Unknown or unexpected error" +msgstr "" + +#: ../install.c:68 ../install.c:184 #, c-format -msgid "oldrpmdbGetPackageInfo failed &olddb = %p olddb.packages = %p\n" +msgid "error: cannot open file %s\n" msgstr "" -#: convertdb.c:204 -msgid "rpmconvert: no arguments expected" +#: ../install.c:85 ../install.c:407 +#, c-format +msgid "Installing %s\n" msgstr "" -#: convertdb.c:210 -msgid "rpmconvert 1.0 - converting database in /var/lib/rpm\n" +#: ../install.c:92 +msgid "stopping source install as we're just testing\n" msgstr "" -#: oldrpmdb.c:454 +#: ../install.c:103 ../install.c:197 #, c-format -msgid "pulling %s from database\n" +msgid "error: %s does not appear to be a RPM package\n" msgstr "" -#: oldrpmdb.c:461 -msgid "package not found in database" +#: ../install.c:108 ../install.c:202 ../install.c:411 +#, c-format +msgid "error: %s cannot be installed\n" msgstr "" -#: oldrpmdb.c:522 -msgid "no copyright!\n" +#: ../install.c:141 +msgid "counting packages to install\n" msgstr "" -#: rpm.c:197 +#: ../install.c:145 +#, c-format +msgid "found %d packages\n" +msgstr "" + +#: ../install.c:151 +msgid "looking for packages to download\n" +msgstr "" + +#: ../install.c:155 +#, c-format +msgid "Retrieving %s\n" +msgstr "" + +#: ../install.c:162 +#, c-format +msgid "getting %s as %s\n" +msgstr "" + +#: ../install.c:166 +#, c-format +msgid "error: skipping %s - transfer failed - %s\n" +msgstr "" + +#: ../install.c:178 +#, c-format +msgid "retrieved %d packages\n" +msgstr "" + +#: ../install.c:180 +msgid "finding source and binary packages\n" +msgstr "" + +#: ../install.c:216 +#, c-format +msgid "found %d source and %d binary packages\n" +msgstr "" + +#: ../install.c:220 +#, c-format +msgid "opening database mode: 0%o\n" +msgstr "" + +#: ../install.c:222 ../install.c:311 +#, c-format +msgid "error: cannot open %s%s/packages.rpm\n" +msgstr "" + +#: ../install.c:243 +msgid "failed dependencies:\n" +msgstr "" + +#: ../install.c:264 +msgid "installing binary packages\n" +msgstr "" + +#: ../install.c:298 +msgid "counting packages to uninstall\n" +msgstr "" + +#: ../install.c:321 ../query.c:520 ../verify.c:249 +#, c-format +msgid "package %s is not installed\n" +msgstr "" + +#: ../install.c:324 +#, c-format +msgid "error searching for package %s\n" +msgstr "" + +#: ../install.c:332 +#, c-format +msgid "\"%s\" specifies multiple packages\n" +msgstr "" + +#: ../install.c:354 +#, c-format +msgid "found %d packages to uninstall\n" +msgstr "" + +#: ../install.c:369 +msgid "removing these packages would break dependencies:\n" +msgstr "" + +#: ../install.c:380 +#, c-format +msgid "uninstalling record number %d\n" +msgstr "" + +#: ../install.c:402 +#, c-format +msgid "error: cannot open %s\n" +msgstr "" + +#: ../install.c:450 +#, c-format +msgid " is needed by %s-%s-%s\n" +msgstr "" + +#: ../install.c:453 +#, c-format +msgid " conflicts with %s-%s-%s\n" +msgstr "" + +#: ../query.c:28 +#, c-format +msgid "error in format: %s\n" +msgstr "" + +#: ../query.c:65 +msgid "(contains no files)" +msgstr "" + +#: ../query.c:118 +msgid "normal " +msgstr "" + +#: ../query.c:120 +msgid "replaced " +msgstr "" + +#: ../query.c:122 +msgid "net shared " +msgstr "" + +#: ../query.c:124 +msgid "not installed " +msgstr "" + +#: ../query.c:126 +#, c-format +msgid "(unknown %3d) " +msgstr "" + +#: ../query.c:130 +msgid "(no state) " +msgstr "" + +#: ../query.c:146 ../query.c:176 +msgid "package has neither file owner or id lists" +msgstr "" + +#: ../query.c:318 +#, c-format +msgid "querying record number %d\n" +msgstr "" + +#: ../query.c:323 ../verify.c:138 +msgid "error: could not read database record\n" +msgstr "" + +#: ../query.c:359 ../query.c:366 ../verify.c:194 ../verify.c:201 +#, c-format +msgid "open of %s failed: %s\n" +msgstr "" + +#: ../query.c:382 +msgid "old format source packages cannot be queried\n" +msgstr "" + +#: ../query.c:391 +#, c-format +msgid "%s does not appear to be a RPM package\n" +msgstr "" + +#: ../query.c:395 +#, c-format +msgid "query of %s failed\n" +msgstr "" + +#: ../query.c:408 ../verify.c:178 +msgid "could not read database record!\n" +msgstr "" + +#: ../query.c:419 ../verify.c:224 +#, c-format +msgid "group %s does not contain any packages\n" +msgstr "" + +#: ../query.c:429 +#, c-format +msgid "no package provides %s\n" +msgstr "" + +#: ../query.c:439 +#, c-format +msgid "no package triggers %s\n" +msgstr "" + +#: ../query.c:449 +#, c-format +msgid "no package requires %s\n" +msgstr "" + +#: ../query.c:467 ../query.c:473 +msgid "maximum path length exceeded\n" +msgstr "" + +#: ../query.c:485 +#, c-format +msgid "file %s: %s\n" +msgstr "" + +#: ../query.c:488 ../verify.c:238 +#, c-format +msgid "file %s is not owned by any package\n" +msgstr "" + +#: ../query.c:501 +#, c-format +msgid "invalid package number: %s\n" +msgstr "" + +#: ../query.c:504 +#, c-format +msgid "showing package: %d\n" +msgstr "" + +#: ../query.c:508 +#, c-format +msgid "record %d could not be read\n" +msgstr "" + +#: ../query.c:523 ../verify.c:251 +#, c-format +msgid "error looking for package %s\n" +msgstr "" + +#: ../rpm.c:177 #, c-format msgid "rpm: %s\n" msgstr "" -#: rpm.c:208 +#: ../rpm.c:188 #, c-format msgid "RPM version %s\n" msgstr "" -#: rpm.c:212 +#: ../rpm.c:192 msgid "Copyright (C) 1998 - Red Hat Software" msgstr "" -#: rpm.c:213 -msgid "This may be freely redistributed under the terms of the GNU GPL" +#: ../rpm.c:193 +msgid "" +"This may be freely redistributed under the terms of the GNU Public License" msgstr "" -#: rpm.c:221 +#: ../rpm.c:202 msgid "usage: rpm {--help}" msgstr "" -#: rpm.c:222 +#: ../rpm.c:203 msgid " rpm {--version}" msgstr "" -#: rpm.c:223 +#: ../rpm.c:204 msgid " rpm {--initdb} [--dbpath <dir>]" msgstr "" -#: rpm.c:224 +#: ../rpm.c:205 msgid "" " rpm {--install -i} [-v] [--hash -h] [--percent] [--force] [--test]" msgstr "" -#: rpm.c:225 +#: ../rpm.c:206 msgid " [--replacepkgs] [--replacefiles] [--root <dir>]" msgstr "" -#: rpm.c:226 +#: ../rpm.c:207 msgid " [--excludedocs] [--includedocs] [--noscripts]" msgstr "" -#: rpm.c:227 +#: ../rpm.c:208 msgid "" " [--rcfile <file>] [--ignorearch] [--dbpath <dir>]" msgstr "" -#: rpm.c:228 +#: ../rpm.c:209 msgid "" " [--prefix <dir>] [--ignoreos] [--nodeps] [--allfiles]" msgstr "" -#: rpm.c:229 +#: ../rpm.c:210 msgid "" " [--ftpproxy <host>] [--ftpport <port>] [--justdb]" msgstr "" -#: rpm.c:230 rpm.c:239 rpm.c:248 -msgid " [--httpproxy <host>] [--httpport <port>] " -msgstr "" - -#: rpm.c:231 rpm.c:241 +#: ../rpm.c:211 ../rpm.c:219 msgid " [--noorder] [--relocate oldpath=newpath]" msgstr "" -#: rpm.c:232 +#: ../rpm.c:212 msgid "" -" [--badreloc] [--notriggers] [--excludepath <path>]" +" [--badreloc] [--notriggers] file1.rpm ... fileN.rpm" msgstr "" -#: rpm.c:233 -msgid " [--ignoresize] file1.rpm ... fileN.rpm" -msgstr "" - -#: rpm.c:234 +#: ../rpm.c:213 msgid "" " rpm {--upgrade -U} [-v] [--hash -h] [--percent] [--force] [--test]" msgstr "" -#: rpm.c:235 +#: ../rpm.c:214 msgid " [--oldpackage] [--root <dir>] [--noscripts]" msgstr "" -#: rpm.c:236 +#: ../rpm.c:215 msgid "" " [--excludedocs] [--includedocs] [--rcfile <file>]" msgstr "" -#: rpm.c:237 +#: ../rpm.c:216 msgid "" " [--ignorearch] [--dbpath <dir>] [--prefix <dir>] " msgstr "" -#: rpm.c:238 +#: ../rpm.c:217 msgid " [--ftpproxy <host>] [--ftpport <port>]" msgstr "" -#: rpm.c:240 +#: ../rpm.c:218 msgid " [--ignoreos] [--nodeps] [--allfiles] [--justdb]" msgstr "" -#: rpm.c:242 -msgid "" -" [--badreloc] [--excludepath <path>] [--ignoresize]" -msgstr "" - -#: rpm.c:243 -msgid " file1.rpm ... fileN.rpm" +#: ../rpm.c:220 +msgid " [--badreloc] file1.rpm ... fileN.rpm" msgstr "" -#: rpm.c:244 +#: ../rpm.c:221 msgid " rpm {--query -q} [-afpg] [-i] [-l] [-s] [-d] [-c] [-v] [-R]" msgstr "" -#: rpm.c:245 +#: ../rpm.c:222 msgid " [--scripts] [--root <dir>] [--rcfile <file>]" msgstr "" -#: rpm.c:246 +#: ../rpm.c:223 msgid " [--whatprovides] [--whatrequires] [--requires]" msgstr "" -#: rpm.c:247 +#: ../rpm.c:224 msgid "" " [--triggeredby] [--ftpuseport] [--ftpproxy <host>]" msgstr "" -#: rpm.c:249 +#: ../rpm.c:225 msgid "" " [--ftpport <port>] [--provides] [--triggers] [--dump]" msgstr "" -#: rpm.c:250 +#: ../rpm.c:226 msgid " [--changelog] [--dbpath <dir>] [targets]" msgstr "" -#: rpm.c:251 +#: ../rpm.c:227 msgid " rpm {--verify -V -y} [-afpg] [--root <dir>] [--rcfile <file>]" msgstr "" -#: rpm.c:252 +#: ../rpm.c:228 msgid "" " [--dbpath <dir>] [--nodeps] [--nofiles] [--noscripts]" msgstr "" -#: rpm.c:253 +#: ../rpm.c:229 msgid " [--nomd5] [targets]" msgstr "" -#: rpm.c:254 +#: ../rpm.c:230 msgid " rpm {--setperms} [-afpg] [target]" msgstr "" -#: rpm.c:255 +#: ../rpm.c:231 msgid " rpm {--setugids} [-afpg] [target]" msgstr "" -#: rpm.c:256 -msgid " rpm {--freshen -F} file1.rpm ... fileN.rpm" -msgstr "" - -#: rpm.c:257 +#: ../rpm.c:232 msgid " rpm {--erase -e} [--root <dir>] [--noscripts] [--rcfile <file>]" msgstr "" -#: rpm.c:258 +#: ../rpm.c:233 msgid " [--dbpath <dir>] [--nodeps] [--allmatches]" msgstr "" -#: rpm.c:259 +#: ../rpm.c:234 msgid "" " [--justdb] [--notriggers] rpackage1 ... packageN" msgstr "" -#: rpm.c:260 +#: ../rpm.c:235 msgid "" " rpm {-b|t}[plciba] [-v] [--short-circuit] [--clean] [--rcfile <file>]" msgstr "" -#: rpm.c:261 -msgid " [--sign] [--nobuild] [--timecheck <s>] ]" +#: ../rpm.c:236 +msgid " [--sign] [--test] [--timecheck <s>] ]" msgstr "" -#: rpm.c:262 -msgid " [--target=platform1[,platform2...]]" +#: ../rpm.c:237 +msgid " [--buildplatform=platform1[,platform2...]]" msgstr "" -#: rpm.c:263 -msgid " [--rmsource] [--rmspec] specfile" +#: ../rpm.c:238 +msgid " [--rmsource] specfile" msgstr "" -#: rpm.c:264 +#: ../rpm.c:239 msgid " rpm {--rmsource} [--rcfile <file>] [-v] specfile" msgstr "" -#: rpm.c:265 +#: ../rpm.c:240 msgid "" " rpm {--rebuild} [--rcfile <file>] [-v] source1.rpm ... sourceN.rpm" msgstr "" -#: rpm.c:266 +#: ../rpm.c:241 msgid "" " rpm {--recompile} [--rcfile <file>] [-v] source1.rpm ... sourceN.rpm" msgstr "" -#: rpm.c:267 +#: ../rpm.c:242 msgid " rpm {--resign} [--rcfile <file>] package1 package2 ... packageN" msgstr "" -#: rpm.c:268 +#: ../rpm.c:243 msgid " rpm {--addsign} [--rcfile <file>] package1 package2 ... packageN" msgstr "" -#: rpm.c:269 -msgid "" -" rpm {--checksig -K} [--nopgp] [--nogpg] [--nomd5] [--rcfile <file>]" +#: ../rpm.c:244 +msgid " rpm {--checksig -K} [--nopgp] [--nomd5] [--rcfile <file>]" msgstr "" -#: rpm.c:270 +#: ../rpm.c:245 msgid " package1 ... packageN" msgstr "" -#: rpm.c:271 +#: ../rpm.c:246 msgid " rpm {--rebuilddb} [--rcfile <file>] [--dbpath <dir>]" msgstr "" -#: rpm.c:272 +#: ../rpm.c:247 msgid " rpm {--querytags}" msgstr "" -#: rpm.c:306 +#: ../rpm.c:281 msgid "usage:" msgstr "" -#: rpm.c:308 +#: ../rpm.c:283 msgid "print this message" msgstr "" -#: rpm.c:310 +#: ../rpm.c:285 msgid "print the version of rpm being used" msgstr "" -#: rpm.c:311 +#: ../rpm.c:286 msgid " all modes support the following arguments:" msgstr "" -#: rpm.c:312 +#: ../rpm.c:287 msgid " --rcfile <file> " msgstr "" -#: rpm.c:313 +#: ../rpm.c:288 msgid "use <file> instead of /etc/rpmrc and $HOME/.rpmrc" msgstr "" -#: rpm.c:315 +#: ../rpm.c:290 msgid "be a little more verbose" msgstr "" -#: rpm.c:317 +#: ../rpm.c:292 msgid "be incredibly verbose (for debugging)" msgstr "" -#: rpm.c:319 +#: ../rpm.c:294 msgid "query mode" msgstr "" -#: rpm.c:320 rpm.c:382 rpm.c:446 rpm.c:474 +#: ../rpm.c:295 ../rpm.c:353 ../rpm.c:413 ../rpm.c:441 msgid " --root <dir> " msgstr "" -#: rpm.c:321 rpm.c:383 rpm.c:447 rpm.c:475 rpm.c:537 +#: ../rpm.c:296 ../rpm.c:354 ../rpm.c:414 ../rpm.c:442 ../rpm.c:502 msgid "use <dir> as the top level directory" msgstr "" -#: rpm.c:322 rpm.c:380 rpm.c:410 rpm.c:462 rpm.c:534 +#: ../rpm.c:297 ../rpm.c:351 ../rpm.c:379 ../rpm.c:429 ../rpm.c:499 msgid " --dbpath <dir> " msgstr "" -#: rpm.c:323 rpm.c:381 rpm.c:411 rpm.c:463 rpm.c:535 +#: ../rpm.c:298 ../rpm.c:352 ../rpm.c:380 ../rpm.c:430 ../rpm.c:500 msgid "use <dir> as the directory for the database" msgstr "" -#: rpm.c:324 +#: ../rpm.c:299 msgid " --queryformat <qfmt>" msgstr "" -#: rpm.c:325 +#: ../rpm.c:300 msgid "use <qfmt> as the header format (implies -i)" msgstr "" -#: rpm.c:326 +#: ../rpm.c:301 msgid "" " install, upgrade and query (with -p) allow ftp URL's to be used in place" msgstr "" -#: rpm.c:327 +#: ../rpm.c:302 msgid " of file names as well as the following options:" msgstr "" -#: rpm.c:328 +#: ../rpm.c:303 msgid " --ftpproxy <host> " msgstr "" -#: rpm.c:329 +#: ../rpm.c:304 msgid "hostname or IP of ftp proxy" msgstr "" -#: rpm.c:330 +#: ../rpm.c:305 msgid " --ftpport <port> " msgstr "" -#: rpm.c:331 +#: ../rpm.c:306 msgid "port number of ftp server (or proxy)" msgstr "" -#: rpm.c:332 -msgid " --httpproxy <host> " -msgstr "" - -#: rpm.c:333 -msgid "hostname or IP of http proxy" -msgstr "" - -#: rpm.c:334 -msgid " --httpport <port> " -msgstr "" - -#: rpm.c:335 -msgid "port number of http server (or proxy)" -msgstr "" - -#: rpm.c:336 +#: ../rpm.c:307 msgid " Package specification options:" msgstr "" -#: rpm.c:338 +#: ../rpm.c:309 msgid "query all packages" msgstr "" -#: rpm.c:339 +#: ../rpm.c:310 msgid " -f <file>+ " msgstr "" -#: rpm.c:340 +#: ../rpm.c:311 msgid "query package owning <file>" msgstr "" -#: rpm.c:341 +#: ../rpm.c:312 msgid " -p <packagefile>+ " msgstr "" -#: rpm.c:342 +#: ../rpm.c:313 msgid "query (uninstalled) package <packagefile>" msgstr "" -#: rpm.c:343 +#: ../rpm.c:314 msgid " --triggeredby <pkg>" msgstr "" -#: rpm.c:344 +#: ../rpm.c:315 msgid "query packages triggered by <pkg>" msgstr "" -#: rpm.c:345 +#: ../rpm.c:316 msgid " --whatprovides <cap>" msgstr "" -#: rpm.c:346 +#: ../rpm.c:317 msgid "query packages which provide <cap> capability" msgstr "" -#: rpm.c:347 +#: ../rpm.c:318 msgid " --whatrequires <cap>" msgstr "" -#: rpm.c:348 +#: ../rpm.c:319 msgid "query packages which require <cap> capability" msgstr "" -#: rpm.c:349 +#: ../rpm.c:320 msgid " Information selection options:" msgstr "" -#: rpm.c:351 +#: ../rpm.c:322 msgid "display package information" msgstr "" -#: rpm.c:353 +#: ../rpm.c:324 msgid "display the package's change log" msgstr "" -#: rpm.c:355 +#: ../rpm.c:326 msgid "display package file list" msgstr "" -#: rpm.c:357 +#: ../rpm.c:328 msgid "show file states (implies -l)" msgstr "" -#: rpm.c:359 +#: ../rpm.c:330 msgid "list only documentation files (implies -l)" msgstr "" -#: rpm.c:361 +#: ../rpm.c:332 msgid "list only configuration files (implies -l)" msgstr "" -#: rpm.c:363 +#: ../rpm.c:334 msgid "" "show all verifiable information for each file (must be used with -l, -c, or " "-d)" msgstr "" -#: rpm.c:365 +#: ../rpm.c:336 msgid "list capabilities package provides" msgstr "" -#: rpm.c:366 +#: ../rpm.c:337 msgid " --requires" msgstr "" -#: rpm.c:368 +#: ../rpm.c:339 msgid "list package dependencies" msgstr "" -#: rpm.c:370 +#: ../rpm.c:341 msgid "print the various [un]install scripts" msgstr "" -#: rpm.c:372 +#: ../rpm.c:343 msgid "show the trigger scripts contained in the package" msgstr "" -#: rpm.c:376 +#: ../rpm.c:347 msgid " --pipe <cmd> " msgstr "" -#: rpm.c:377 +#: ../rpm.c:348 msgid "send stdout to <cmd>" msgstr "" -#: rpm.c:379 +#: ../rpm.c:350 msgid "" "verify a package installation using the same same package specification " "options as -q" msgstr "" -#: rpm.c:385 rpm.c:433 rpm.c:467 +#: ../rpm.c:356 ../rpm.c:400 ../rpm.c:434 msgid "do not verify package dependencies" msgstr "" -#: rpm.c:387 +#: ../rpm.c:358 msgid "do not verify file md5 checksums" msgstr "" -#: rpm.c:389 +#: ../rpm.c:360 msgid "do not verify file attributes" msgstr "" -#: rpm.c:392 +#: ../rpm.c:363 msgid "" "set the file permissions to those in the package database using the same " "package specification options as -q" msgstr "" -#: rpm.c:395 +#: ../rpm.c:366 msgid "" "set the file owner and group to those in the package database using the same " "package specification options as -q" msgstr "" -#: rpm.c:399 +#: ../rpm.c:370 msgid " --install <packagefile>" msgstr "" -#: rpm.c:400 +#: ../rpm.c:371 msgid " -i <packagefile> " msgstr "" -#: rpm.c:401 +#: ../rpm.c:372 msgid "install package" msgstr "" -#: rpm.c:402 -msgid " --excludepath <path>" -msgstr "" - -#: rpm.c:403 -msgid "skip files in path <path>" -msgstr "" - -#: rpm.c:404 +#: ../rpm.c:373 msgid " --relocate <oldpath>=<newpath>" msgstr "" -#: rpm.c:405 +#: ../rpm.c:374 msgid "relocate files from <oldpath> to <newpath>" msgstr "" -#: rpm.c:407 +#: ../rpm.c:376 msgid "relocate files even though the package doesn't allow it" msgstr "" -#: rpm.c:408 +#: ../rpm.c:377 msgid " --prefix <dir> " msgstr "" -#: rpm.c:409 +#: ../rpm.c:378 msgid "relocate the package to <dir>, if relocatable" msgstr "" -#: rpm.c:413 +#: ../rpm.c:382 msgid "do not install documentation" msgstr "" -#: rpm.c:415 +#: ../rpm.c:384 msgid "short hand for --replacepkgs --replacefiles" msgstr "" -#: rpm.c:418 +#: ../rpm.c:387 msgid "print hash marks as package installs (good with -v)" msgstr "" -#: rpm.c:420 +#: ../rpm.c:389 msgid "install all files, even configurations which might otherwise be skipped" msgstr "" -#: rpm.c:423 +#: ../rpm.c:392 msgid "don't verify package architecture" msgstr "" -#: rpm.c:425 -msgid "don't check disk space before installing" -msgstr "" - -#: rpm.c:427 +#: ../rpm.c:394 msgid "don't verify package operating system" msgstr "" -#: rpm.c:429 +#: ../rpm.c:396 msgid "install documentation" msgstr "" -#: rpm.c:431 rpm.c:465 +#: ../rpm.c:398 ../rpm.c:432 msgid "update the database, but do not modify the filesystem" msgstr "" -#: rpm.c:435 rpm.c:469 +#: ../rpm.c:402 ../rpm.c:436 msgid "do not reorder package installation to satisfy dependencies" msgstr "" -#: rpm.c:437 +#: ../rpm.c:404 msgid "don't execute any installation scripts" msgstr "" -#: rpm.c:439 rpm.c:473 +#: ../rpm.c:406 ../rpm.c:440 msgid "don't execute any scripts triggered by this package" msgstr "" -#: rpm.c:441 +#: ../rpm.c:408 msgid "print percentages as package installs" msgstr "" -#: rpm.c:443 +#: ../rpm.c:410 msgid "install even if the package replaces installed files" msgstr "" -#: rpm.c:445 +#: ../rpm.c:412 msgid "reinstall if the package is already present" msgstr "" -#: rpm.c:449 +#: ../rpm.c:416 msgid "don't install, but tell if it would work or not" msgstr "" -#: rpm.c:451 +#: ../rpm.c:418 msgid " --upgrade <packagefile>" msgstr "" -#: rpm.c:452 +#: ../rpm.c:419 msgid " -U <packagefile> " msgstr "" -#: rpm.c:453 +#: ../rpm.c:420 msgid "upgrade package (same options as --install, plus)" msgstr "" -#: rpm.c:455 +#: ../rpm.c:422 msgid "" "upgrade to an old version of the package (--force on upgrades does this " "automatically)" msgstr "" -#: rpm.c:457 +#: ../rpm.c:424 msgid " --erase <package>" msgstr "" -#: rpm.c:459 +#: ../rpm.c:426 msgid "erase (uninstall) package" msgstr "" -#: rpm.c:461 +#: ../rpm.c:428 msgid "" "remove all packages which match <package> (normally an error is generated if " "<package> specified multiple packages)" msgstr "" -#: rpm.c:471 +#: ../rpm.c:438 msgid "do not execute any package specific scripts" msgstr "" -#: rpm.c:477 +#: ../rpm.c:444 msgid " -b<stage> <spec> " msgstr "" -#: rpm.c:478 +#: ../rpm.c:445 msgid " -t<stage> <tarball> " msgstr "" -#: rpm.c:479 +#: ../rpm.c:446 msgid "build package, where <stage> is one of:" msgstr "" -#: rpm.c:481 +#: ../rpm.c:448 msgid "prep (unpack sources and apply patches)" msgstr "" -#: rpm.c:483 +#: ../rpm.c:450 #, c-format msgid "list check (do some cursory checks on %files)" msgstr "" -#: rpm.c:485 +#: ../rpm.c:452 msgid "compile (prep and compile)" msgstr "" -#: rpm.c:487 +#: ../rpm.c:454 msgid "install (prep, compile, install)" msgstr "" -#: rpm.c:489 +#: ../rpm.c:456 msgid "binary package (prep, compile, install, package)" msgstr "" -#: rpm.c:491 +#: ../rpm.c:458 msgid "bin/src package (prep, compile, install, package)" msgstr "" -#: rpm.c:497 +#: ../rpm.c:460 +msgid "skip straight to specified stage (only for c,i)" +msgstr "" + +#: ../rpm.c:462 +msgid "remove build tree when done" +msgstr "" + +#: ../rpm.c:464 msgid "remove sources and spec file when done" msgstr "" -#: rpm.c:499 -msgid "generate PGP/GPG signature" +#: ../rpm.c:466 +msgid "generate PGP signature" msgstr "" -#: rpm.c:500 +#: ../rpm.c:467 msgid " --buildroot <dir> " msgstr "" -#: rpm.c:501 +#: ../rpm.c:468 msgid "use <dir> as the build root" msgstr "" -#: rpm.c:502 -msgid " --target=<platform>+" +#: ../rpm.c:469 +msgid " --platform=<platform>+" msgstr "" -#: rpm.c:503 -msgid "build the packages for the build targets platform1...platformN." +#: ../rpm.c:470 +msgid "build the packages for the platform1...platformN build targets." msgstr "" -#: rpm.c:505 +#: ../rpm.c:472 msgid "do not execute any stages" msgstr "" -#: rpm.c:506 +#: ../rpm.c:473 msgid " --timecheck <secs> " msgstr "" -#: rpm.c:507 +#: ../rpm.c:474 msgid "set the time check to <secs> seconds (0 disables)" msgstr "" -#: rpm.c:509 +#: ../rpm.c:476 msgid " --rebuild <src_pkg> " msgstr "" -#: rpm.c:510 +#: ../rpm.c:477 msgid "" "install source package, build binary package and remove spec file, sources, " "patches, and icons." msgstr "" -#: rpm.c:511 +#: ../rpm.c:478 msgid " --rmsource <spec> " msgstr "" -#: rpm.c:512 +#: ../rpm.c:479 msgid "remove sources and spec file" msgstr "" -#: rpm.c:513 +#: ../rpm.c:480 msgid " --recompile <src_pkg> " msgstr "" -#: rpm.c:514 +#: ../rpm.c:481 msgid "like --rebuild, but don't build any package" msgstr "" -#: rpm.c:515 +#: ../rpm.c:482 msgid " --resign <pkg>+ " msgstr "" -#: rpm.c:516 +#: ../rpm.c:483 msgid "sign a package (discard current signature)" msgstr "" -#: rpm.c:517 +#: ../rpm.c:484 msgid " --addsign <pkg>+ " msgstr "" -#: rpm.c:518 +#: ../rpm.c:485 msgid "add a signature to a package" msgstr "" -#: rpm.c:520 +#: ../rpm.c:487 msgid " --checksig <pkg>+ " msgstr "" -#: rpm.c:521 +#: ../rpm.c:488 msgid "verify package signature" msgstr "" -#: rpm.c:523 +#: ../rpm.c:490 msgid "skip any PGP signatures" msgstr "" -#: rpm.c:525 -msgid "skip any GPG signatures" -msgstr "" - -#: rpm.c:527 +#: ../rpm.c:492 msgid "skip any MD5 signatures" msgstr "" -#: rpm.c:529 +#: ../rpm.c:494 msgid "list the tags that can be used in a query format" msgstr "" -#: rpm.c:531 +#: ../rpm.c:496 msgid "make sure a valid database exists" msgstr "" -#: rpm.c:533 +#: ../rpm.c:498 msgid "rebuild database from existing database" msgstr "" -#: rpm.c:682 rpm.c:688 rpm.c:695 rpm.c:701 rpm.c:710 rpm.c:717 rpm.c:764 -#: rpm.c:770 rpm.c:804 rpm.c:810 rpm.c:816 rpm.c:824 rpm.c:868 rpm.c:923 -#: rpm.c:930 +#: ../rpm.c:637 ../rpm.c:643 ../rpm.c:650 ../rpm.c:656 ../rpm.c:665 +#: ../rpm.c:672 ../rpm.c:718 ../rpm.c:724 ../rpm.c:813 ../rpm.c:820 +#: ../rpm.c:826 ../rpm.c:834 ../rpm.c:840 ../rpm.c:848 ../rpm.c:881 +#: ../rpm.c:927 ../rpm.c:933 msgid "only one major mode may be specified" msgstr "" -#: rpm.c:703 +#: ../rpm.c:658 msgid "-u and --uninstall are deprecated and no longer work.\n" msgstr "" -#: rpm.c:705 +#: ../rpm.c:660 msgid "Use -e or --erase instead.\n" msgstr "" -#: rpm.c:721 +#: ../rpm.c:676 msgid "--build (-b) requires one of a,b,i,c,p,l as its sole argument" msgstr "" -#: rpm.c:725 +#: ../rpm.c:680 msgid "--tarbuild (-t) requires one of a,b,i,c,p,l as its sole argument" msgstr "" -#: rpm.c:777 rpm.c:783 rpm.c:790 rpm.c:797 rpm.c:937 +#: ../rpm.c:747 ../rpm.c:754 ../rpm.c:762 ../rpm.c:770 ../rpm.c:790 +#: ../rpm.c:798 ../rpm.c:806 msgid "one type of query/verify may be performed at a time" msgstr "" -#: rpm.c:834 +#: ../rpm.c:856 msgid "arguments to --dbpath must begin with a /" msgstr "" -#: rpm.c:874 +#: ../rpm.c:863 +msgid "one type of query may be performed at a time" +msgstr "" + +#: ../rpm.c:887 msgid "relocations must begin with a /" msgstr "" -#: rpm.c:876 +#: ../rpm.c:889 msgid "relocations must contain a =" msgstr "" -#: rpm.c:879 +#: ../rpm.c:892 msgid "relocations must have a / following the =" msgstr "" -#: rpm.c:888 -msgid "exclude paths must begin with a /" +#: ../rpm.c:904 +msgid "Internal error in argument processing :-(\n" msgstr "" -#: rpm.c:897 -#, c-format -msgid "Internal error in argument processing (%d) :-(\n" -msgstr "" - -#: rpm.c:948 +#: ../rpm.c:945 msgid "--dbpath given for operation that does not use a database" msgstr "" -#: rpm.c:952 +#: ../rpm.c:950 msgid "--timecheck may only be used during package builds" msgstr "" -#: rpm.c:955 -msgid "unexpected query flags" +#: ../rpm.c:953 ../rpm.c:956 +msgid "unexpected query specifiers" msgstr "" -#: rpm.c:958 -msgid "unexpected query format" -msgstr "" - -#: rpm.c:961 +#: ../rpm.c:960 msgid "unexpected query source" msgstr "" -#: rpm.c:967 -msgid "only installation, upgrading, rmsource and rmspec may be forced" +#: ../rpm.c:963 +msgid "only installation and upgrading may be forced" msgstr "" -#: rpm.c:970 +#: ../rpm.c:966 msgid "files may only be relocated during package installation" msgstr "" -#: rpm.c:973 +#: ../rpm.c:969 msgid "only one of --prefix or --relocate may be used" msgstr "" -#: rpm.c:976 -msgid "" -"--relocate and --excludepath may only be used when installing new packages" +#: ../rpm.c:972 +msgid "--relocate may only be used when installing new packages" msgstr "" -#: rpm.c:979 +#: ../rpm.c:975 msgid "--prefix may only be used when installing new packages" msgstr "" -#: rpm.c:982 +#: ../rpm.c:978 msgid "arguments to --prefix must begin with a /" msgstr "" -#: rpm.c:985 +#: ../rpm.c:981 msgid "--hash (-h) may only be specified during package installation" msgstr "" -#: rpm.c:989 +#: ../rpm.c:985 msgid "--percent may only be specified during package installation" msgstr "" -#: rpm.c:993 +#: ../rpm.c:989 msgid "--replacefiles may only be specified during package installation" msgstr "" -#: rpm.c:997 +#: ../rpm.c:993 msgid "--replacepkgs may only be specified during package installation" msgstr "" -#: rpm.c:1001 +#: ../rpm.c:997 msgid "--excludedocs may only be specified during package installation" msgstr "" -#: rpm.c:1005 +#: ../rpm.c:1001 msgid "--includedocs may only be specified during package installation" msgstr "" -#: rpm.c:1009 +#: ../rpm.c:1005 msgid "only one of --excludedocs and --includedocs may be specified" msgstr "" -#: rpm.c:1013 +#: ../rpm.c:1009 msgid "--ignorearch may only be specified during package installation" msgstr "" -#: rpm.c:1017 +#: ../rpm.c:1013 msgid "--ignoreos may only be specified during package installation" msgstr "" -#: rpm.c:1021 -msgid "--ignoresize may only be specified during package installation" -msgstr "" - -#: rpm.c:1025 +#: ../rpm.c:1017 msgid "--allmatches may only be specified during package erasure" msgstr "" -#: rpm.c:1029 +#: ../rpm.c:1021 msgid "--allfiles may only be specified during package installation" msgstr "" -#: rpm.c:1033 +#: ../rpm.c:1025 msgid "--justdb may only be specified during package installation and erasure" msgstr "" -#: rpm.c:1038 +#: ../rpm.c:1030 msgid "" "--noscripts may only be specified during package installation, erasure, and " "verification" msgstr "" -#: rpm.c:1042 +#: ../rpm.c:1034 msgid "" "--notriggers may only be specified during package installation, erasure, and " "verification" msgstr "" -#: rpm.c:1046 +#: ../rpm.c:1039 msgid "" -"--nodeps may only be specified during package building, installation, " -"erasure, and verification" +"--nodeps may only be specified during package installation, erasure, and " +"verification" +msgstr "" + +#: ../rpm.c:1043 +msgid "--nofiles may only be specified during package verification" msgstr "" -#: rpm.c:1050 +#: ../rpm.c:1048 msgid "" "--test may only be specified during package installation, erasure, and " "building" msgstr "" -#: rpm.c:1054 +#: ../rpm.c:1053 msgid "" "--root (-r) may only be specified during installation, erasure, querying, " "and database rebuilds" msgstr "" -#: rpm.c:1066 +#: ../rpm.c:1058 msgid "arguments to --root (-r) must begin with a /" msgstr "" -#: rpm.c:1072 -msgid "--oldpackage may only be used during upgrades" +#: ../rpm.c:1061 +msgid "--clean may only be used with -b and -t" msgstr "" -#: rpm.c:1077 -msgid "" -"ftp options can only be used during package queries, installs, and upgrades" +#: ../rpm.c:1064 +msgid "--rmsource may only be used with -b and -t" msgstr "" -#: rpm.c:1083 -msgid "" -"http options can only be used during package queries, installs, and upgrades" +#: ../rpm.c:1067 +msgid "--short-circuit may only be used during package building" msgstr "" -#: rpm.c:1087 -msgid "--nopgp may only be used during signature checking" +#: ../rpm.c:1071 +msgid "--short-circuit may only be used with -bc, -bi, -bs, -tc -ti, or -ts" msgstr "" -#: rpm.c:1090 -msgid "--nogpg may only be used during signature checking" +#: ../rpm.c:1076 +msgid "--oldpackage may only be used during upgrades" msgstr "" -#: rpm.c:1093 -msgid "" -"--nomd5 may only be used during signature checking and package verification" +#: ../rpm.c:1079 +msgid "--dump may only be used during queries" msgstr "" -#: rpm.c:1121 -msgid "no files to sign\n" +#: ../rpm.c:1082 +msgid "--dump of queries must be used with -l, -c, or -d" msgstr "" -#: rpm.c:1126 -#, c-format -msgid "cannot access file %s\n" +#: ../rpm.c:1087 +msgid "" +"ftp options can only be used during package queries, installs, and upgrades" msgstr "" -#: rpm.c:1141 -msgid "pgp not found: " +#: ../rpm.c:1094 +msgid "--nopgp may only be used during signature checking" msgstr "" -#: rpm.c:1145 -msgid "Enter pass phrase: " +#: ../rpm.c:1097 +msgid "" +"--nopgp may only be used during signature checking and package verification" msgstr "" -#: rpm.c:1147 +#: ../rpm.c:1110 msgid "Pass phrase check failed\n" msgstr "" -#: rpm.c:1150 +#: ../rpm.c:1113 msgid "Pass phrase is good.\n" msgstr "" -#: rpm.c:1155 -msgid "Invalid %%_signature spec in macro file.\n" -msgstr "" - -#: rpm.c:1161 +#: ../rpm.c:1125 msgid "--sign may only be used during package building" msgstr "" -#: rpm.c:1176 +#: ../rpm.c:1140 msgid "exec failed\n" msgstr "" -#: rpm.c:1195 +#: ../rpm.c:1159 msgid "unexpected arguments to --querytags " msgstr "" -#: rpm.c:1206 +#: ../rpm.c:1170 msgid "no packages given for signature check" msgstr "" -#: rpm.c:1217 +#: ../rpm.c:1177 msgid "no packages given for signing" msgstr "" -#: rpm.c:1229 +#: ../rpm.c:1186 msgid "no packages files given for rebuild" msgstr "" -#: rpm.c:1292 +#: ../rpm.c:1249 msgid "no spec files given for build" msgstr "" -#: rpm.c:1294 +#: ../rpm.c:1251 msgid "no tar files given for build" msgstr "" -#: rpm.c:1310 +#: ../rpm.c:1264 msgid "no packages given for uninstall" msgstr "" -#: rpm.c:1360 +#: ../rpm.c:1304 msgid "no packages given for install" msgstr "" -#: rpm.c:1383 +#: ../rpm.c:1328 msgid "extra arguments given for query of all packages" msgstr "" -#: rpm.c:1388 +#: ../rpm.c:1333 msgid "no arguments given for query" msgstr "" -#: rpm.c:1405 -msgid "extra arguments given for verify of all packages" +#: ../rpm.c:1350 +msgid "no arguments given for verify" msgstr "" -#: rpm.c:1409 -msgid "no arguments given for verify" +#: ../url.c:47 +#, c-format +msgid "Password for %s@%s: " +msgstr "" + +#: ../url.c:113 ../url.c:156 ../url.c:182 +#, c-format +msgid "getting %s via anonymous ftp\n" +msgstr "" + +#: ../url.c:120 +#, c-format +msgid "logging into %s as %s, pw %s\n" msgstr "" -#: rpm2cpio.c:22 +#: ../url.c:131 +msgid "error: ftpport must be a number\n" +msgstr "" + +#: ../url.c:189 +#, c-format +msgid "failed to create %s\n" +msgstr "" + +#: ../verify.c:35 #, c-format -msgid "cannot open package: %s\n" +msgid "missing %s\n" msgstr "" -#: rpm2cpio.c:32 +#: ../verify.c:91 +#, c-format +msgid "Unsatisfied dependencies for %s-%s-%s: " +msgstr "" + +#: ../verify.c:133 +#, c-format +msgid "verifying record number %d\n" +msgstr "" + +#: ../verify.c:215 +#, c-format +msgid "%s is not an RPM\n" +msgstr "" + +#: ../rpm2cpio.c:39 msgid "argument is not an RPM package\n" msgstr "" -#: rpm2cpio.c:36 +#: ../rpm2cpio.c:42 msgid "error reading header from package\n" msgstr "" -#: rpm2cpio.c:43 -#, c-format -msgid "cannot re-open payload: %s\n" +#: ../convertdb.c:39 +msgid "RPM database already exists" msgstr "" -#: build/build.c:105 build/pack.c:269 -msgid "Unable to open temp file" +#: ../convertdb.c:44 +msgid "Old db is missing" +msgstr "" + +#: ../convertdb.c:55 +msgid "failed to create RPM database /var/lib/rpm" +msgstr "" + +#: ../convertdb.c:61 +msgid "Old db is corrupt" msgstr "" -#: build/build.c:184 +#: ../convertdb.c:70 #, c-format -msgid "Executing(%s): %s\n" +msgid "oldrpmdbGetPackageInfo failed &olddb = %p olddb.packages = %p\n" +msgstr "" + +#: ../convertdb.c:202 +msgid "rpmconvert: no arguments expected" +msgstr "" + +#: ../convertdb.c:208 +msgid "rpmconvert 1.0 - converting database in /var/lib/rpm\n" msgstr "" -#: build/build.c:190 +#: ../oldrpmdb.c:456 #, c-format -msgid "Exec of %s failed (%s): %s" +msgid "pulling %s from database\n" +msgstr "" + +#: ../oldrpmdb.c:463 +msgid "package not found in database" msgstr "" -#: build/build.c:198 +#: ../oldrpmdb.c:524 +msgid "no copyright!\n" +msgstr "" + +#: ../build/build.c:96 ../build/pack.c:192 +msgid "Unable to open temp file" +msgstr "" + +#: ../build/build.c:133 #, c-format -msgid "Bad exit status from %s (%s)" +msgid "Executing: %s\n" msgstr "" -#: build/expression.c:207 -msgid "syntax error while parsing ==" +#: ../build/build.c:137 +#, c-format +msgid "Exec of %s failed (%s)" msgstr "" -#: build/expression.c:237 -msgid "syntax error while parsing &&" +#: ../build/build.c:145 +#, c-format +msgid "Bad exit status from %s (%s)" msgstr "" -#: build/expression.c:246 -msgid "syntax error while parsing ||" +#: ../build/expression.c:188 ../build/expression.c:197 +msgid "parse error in tokenizer" msgstr "" -#: build/expression.c:288 +#: ../build/expression.c:239 msgid "parse error in expression" msgstr "" -#: build/expression.c:318 +#: ../build/expression.c:269 msgid "unmatched (" msgstr "" -#: build/expression.c:336 +#: ../build/expression.c:287 msgid "undefined identifier" msgstr "" -#: build/expression.c:355 +#: ../build/expression.c:306 msgid "- only on numbers" msgstr "" -#: build/expression.c:371 +#: ../build/expression.c:322 msgid "! only on numbers" msgstr "" -#: build/expression.c:410 build/expression.c:455 build/expression.c:512 -#: build/expression.c:599 +#: ../build/expression.c:358 ../build/expression.c:403 +#: ../build/expression.c:460 ../build/expression.c:543 msgid "types must match" msgstr "" -#: build/expression.c:423 +#: ../build/expression.c:371 msgid "* / not suported for strings" msgstr "" -#: build/expression.c:471 +#: ../build/expression.c:419 msgid "- not suported for strings" msgstr "" -#: build/expression.c:612 +#: ../build/expression.c:556 msgid "&& and || not suported for strings" msgstr "" -#: build/expression.c:645 build/expression.c:692 +#: ../build/expression.c:587 ../build/expression.c:630 msgid "syntax error in expression" msgstr "" -#: build/files.c:199 +#: ../build/files.c:204 #, c-format msgid "TIMECHECK failure: %s\n" msgstr "" -#: build/files.c:243 build/files.c:325 build/files.c:488 +#: ../build/files.c:233 ../build/files.c:245 ../build/files.c:317 +#: ../build/files.c:329 ../build/files.c:356 #, c-format -msgid "Missing '(' in %s %s" +msgid "Bad %s() syntax: %s" msgstr "" -#: build/files.c:254 build/files.c:442 build/files.c:499 +#: ../build/files.c:279 #, c-format -msgid "Missing ')' in %s(%s" +msgid "Invalid %s token: %s" msgstr "" -#: build/files.c:292 build/files.c:467 -#, c-format -msgid "Invalid %s token: %s" +#: ../build/files.c:340 +msgid "No files after %%defattr(): %s" msgstr "" -#: build/files.c:341 +#: ../build/files.c:368 #, c-format -msgid "Non-white space follows %s(): %s" +msgid "Bad %s() mode spec: %s" msgstr "" -#: build/files.c:379 +#: ../build/files.c:386 #, c-format -msgid "Bad syntax: %s(%s)" +msgid "Bad %s() dirmode spec: %s" msgstr "" -#: build/files.c:389 -#, c-format -msgid "Bad mode spec: %s(%s)" +#: ../build/files.c:441 +msgid "Bad %%config() syntax: %s" msgstr "" -#: build/files.c:401 -#, c-format -msgid "Bad dirmode spec: %s(%s)" +#: ../build/files.c:459 +msgid "Invalid %%config token: %s" +msgstr "" + +#: ../build/files.c:482 ../build/files.c:494 ../build/files.c:507 +msgid "Bad %%lang() syntax: %s" msgstr "" -#: build/files.c:525 -msgid "Unusual locale length: \"%.*s\" in %%lang(%s)" +#: ../build/files.c:513 +msgid "%%lang() entries are 2 characters: %s" msgstr "" -#: build/files.c:535 -msgid "Duplicate locale %.*s in %%lang(%s)" +#: ../build/files.c:519 +msgid "Only one entry in %%lang(): %s" msgstr "" -#: build/files.c:630 +#: ../build/files.c:610 msgid "Hit limit for %%docdir" msgstr "" -#: build/files.c:636 +#: ../build/files.c:616 msgid "Only one arg for %%docdir" msgstr "" -#. We already got a file -- error -#: build/files.c:661 +#: ../build/files.c:642 #, c-format msgid "Two files on one line: %s" msgstr "" -#: build/files.c:674 +#: ../build/files.c:655 #, c-format msgid "File must begin with \"/\": %s" msgstr "" -#: build/files.c:686 +#: ../build/files.c:667 msgid "Can't mix special %%doc with other forms: %s" msgstr "" -#: build/files.c:772 +#: ../build/files.c:749 #, c-format msgid "File listed twice: %s" msgstr "" -#: build/files.c:865 -#, c-format -msgid "Symlink points to BuildRoot: %s -> %s" -msgstr "" - -#: build/files.c:945 +#: ../build/files.c:908 #, c-format msgid "File doesn't match prefix (%s): %s" msgstr "" -#: build/files.c:955 +#: ../build/files.c:918 ../build/files.c:1035 #, c-format msgid "File not found: %s" msgstr "" -#: build/files.c:998 +#: ../build/files.c:963 #, c-format msgid "Bad owner/group: %s\n" msgstr "" -#: build/files.c:1012 +#: ../build/files.c:968 #, c-format -msgid "File %4d: %07o %s.%s\t %s\n" +msgid "File %d: %s\n" msgstr "" -#: build/files.c:1086 +#: ../build/files.c:1019 #, c-format msgid "File needs leading \"/\": %s" msgstr "" -#: build/files.c:1154 -msgid "Could not open %%files file %s: %s" +#: ../build/files.c:1079 +msgid "Could not open %%files file: %s" msgstr "" -#: build/files.c:1161 build/pack.c:481 +#: ../build/files.c:1085 ../build/pack.c:381 #, c-format msgid "line: %s" msgstr "" -#: build/files.c:1504 build/parsePrep.c:30 +#: ../build/files.c:1412 ../build/parsePrep.c:41 #, c-format msgid "Bad owner/group: %s" msgstr "" -#. XXX this error message is probably not seen. -#: build/files.c:1559 +#: ../build/files.c:1467 #, c-format -msgid "Couldn't exec %s: %s" +msgid "Couldn't exec %s" msgstr "" -#: build/files.c:1564 +#: ../build/files.c:1471 #, c-format -msgid "Couldn't fork %s: %s" +msgid "Couldn't fork %s" msgstr "" -#: build/files.c:1646 +#: ../build/files.c:1521 #, c-format msgid "%s failed" msgstr "" -#: build/files.c:1650 +#: ../build/files.c:1525 #, c-format msgid "failed to write all data to %s" msgstr "" -#: build/files.c:1739 -#, c-format -msgid "Finding %s: (using %s)...\n" +#: ../build/files.c:1559 +msgid "Finding provides...\n" msgstr "" -#: build/files.c:1767 build/files.c:1776 -#, c-format -msgid "Failed to find %s:" +#: ../build/files.c:1566 +msgid "Failed to find provides" msgstr "" -#: build/files.c:1882 -#, c-format -msgid "Processing files: %s-%s-%s\n" +#: ../build/files.c:1586 +msgid "Finding requires...\n" msgstr "" -#: build/names.c:41 build/names.c:73 -msgid "RPMERR_INTERNAL: Hit limit in getUname()\n" +#: ../build/files.c:1593 +msgid "Failed to find requires" msgstr "" -#: build/names.c:106 build/names.c:138 -msgid "RPMERR_INTERNAL: Hit limit in getGname()\n" +#: ../build/files.c:1628 +msgid "Provides:" msgstr "" -#: build/names.c:176 -#, c-format -msgid "Could not canonicalize hostname: %s\n" +#: ../build/files.c:1646 +msgid "Prereqs:" msgstr "" -#: build/pack.c:132 -#, c-format -msgid "Could not generate output filename for package %s: %s\n" +#: ../build/files.c:1660 +msgid "Requires:" msgstr "" -#: build/pack.c:149 +#: ../build/files.c:1685 #, c-format -msgid "cannot create %s: %s\n" +msgid "Processing files: %s\n" msgstr "" -#: build/pack.c:186 -#, c-format -msgid "readRPM: open %s: %s\n" +#: ../build/names.c:35 ../build/names.c:69 +msgid "RPMERR_INTERNAL: Hit limit in getUname()\n" msgstr "" -#: build/pack.c:196 -#, c-format -msgid "readRPM: read %s: %s\n" +#: ../build/names.c:104 ../build/names.c:138 +msgid "RPMERR_INTERNAL: Hit limit in getGname()\n" msgstr "" -#: build/pack.c:217 +#: ../build/names.c:176 #, c-format -msgid "readRPM: %s is not an RPM package\n" +msgid "Could not canonicalize hostname: %s\n" msgstr "" -#: build/pack.c:223 +#: ../build/pack.c:141 #, c-format -msgid "readRPM: reading header from %s\n" +msgid "Could not generate output filename for package %s: %s\n" msgstr "" -#: build/pack.c:281 +#: ../build/pack.c:203 msgid "Bad CSA data" msgstr "" -#: build/pack.c:316 +#: ../build/pack.c:226 #, c-format -msgid "Could not open %s: %s\n" +msgid "Could not open %s\n" msgstr "" -#: build/pack.c:348 +#: ../build/pack.c:258 ../build/pack.c:301 #, c-format msgid "Unable to write package: %s" msgstr "" -#: build/pack.c:363 +#: ../build/pack.c:291 #, c-format -msgid "Generating signature: %d\n" +msgid "Unable to read sigtarget: %s" msgstr "" -#: build/pack.c:379 +#: ../build/pack.c:316 #, c-format -msgid "Unable to open sigtarget %s: %s" -msgstr "" - -#: build/pack.c:389 -#, c-format -msgid "Unable to read sigtarget %s: %s" -msgstr "" - -#: build/pack.c:399 -#, c-format -msgid "Unable to write package %s: %s" +msgid "Wrote: %s\n" msgstr "" -#: build/pack.c:414 +#: ../build/pack.c:334 #, c-format -msgid "Wrote: %s\n" +msgid "cpio failed on file %s: %s" msgstr "" -#: build/pack.c:430 +#: ../build/pack.c:337 #, c-format -msgid "create archive failed on file %s: %s" +msgid "cpio failed on file %s: %d" msgstr "" -#: build/pack.c:449 +#: ../build/pack.c:351 #, c-format msgid "cpio_copy write failed: %s" msgstr "" -#: build/pack.c:456 +#: ../build/pack.c:358 #, c-format msgid "cpio_copy read failed: %s" msgstr "" -#: build/pack.c:536 +#: ../build/pack.c:437 #, c-format msgid "Could not open PreIn file: %s" msgstr "" -#: build/pack.c:543 +#: ../build/pack.c:444 #, c-format msgid "Could not open PreUn file: %s" msgstr "" -#: build/pack.c:550 +#: ../build/pack.c:451 #, c-format msgid "Could not open PostIn file: %s" msgstr "" -#: build/pack.c:557 +#: ../build/pack.c:458 #, c-format msgid "Could not open PostUn file: %s" msgstr "" -#: build/pack.c:565 +#: ../build/pack.c:466 #, c-format msgid "Could not open VerifyScript file: %s" msgstr "" -#: build/pack.c:580 +#: ../build/pack.c:482 #, c-format msgid "Could not open Trigger script file: %s" msgstr "" -#: build/parseBuildInstallClean.c:27 +#: ../build/parseBuildInstallClean.c:28 #, c-format msgid "line %d: second %s" msgstr "" -#: build/parseChangelog.c:103 +#: ../build/parseChangelog.c:102 msgid "%%changelog entries must start with *" msgstr "" -#: build/parseChangelog.c:111 +#: ../build/parseChangelog.c:110 msgid "incomplete %%changelog entry" msgstr "" -#: build/parseChangelog.c:126 +#: ../build/parseChangelog.c:125 msgid "bad date in %%changelog: %s" msgstr "" -#: build/parseChangelog.c:131 +#: ../build/parseChangelog.c:130 msgid "%%changelog not in decending chronological order" msgstr "" -#: build/parseChangelog.c:139 build/parseChangelog.c:150 +#: ../build/parseChangelog.c:138 ../build/parseChangelog.c:149 msgid "missing name in %%changelog" msgstr "" -#: build/parseChangelog.c:157 +#: ../build/parseChangelog.c:156 msgid "no description in %%changelog" msgstr "" -#: build/parseDescription.c:33 +#: ../build/parseDescription.c:35 msgid "line %d: Error parsing %%description: %s" msgstr "" -#: build/parseDescription.c:46 build/parseFiles.c:40 build/parseScript.c:168 +#: ../build/parseDescription.c:48 ../build/parseFiles.c:43 +#: ../build/parseScript.c:140 #, c-format msgid "line %d: Bad option %s: %s" msgstr "" -#: build/parseDescription.c:59 build/parseFiles.c:53 build/parseScript.c:181 +#: ../build/parseDescription.c:62 ../build/parseFiles.c:57 +#: ../build/parseScript.c:154 #, c-format msgid "line %d: Too many names: %s" msgstr "" -#: build/parseDescription.c:69 build/parseFiles.c:63 build/parseScript.c:191 +#: ../build/parseDescription.c:72 ../build/parseFiles.c:67 +#: ../build/parseScript.c:164 #, c-format msgid "line %d: Package does not exist: %s" msgstr "" -#: build/parseDescription.c:81 +#: ../build/parseDescription.c:84 #, c-format msgid "line %d: Second description" msgstr "" -#: build/parseFiles.c:27 +#: ../build/parseFiles.c:30 msgid "line %d: Error parsing %%files: %s" msgstr "" -#: build/parseFiles.c:71 +#: ../build/parseFiles.c:75 msgid "line %d: Second %%files list" msgstr "" -#: build/parsePreamble.c:145 +#: ../build/parsePreamble.c:155 #, c-format msgid "Architecture is excluded: %s" msgstr "" -#: build/parsePreamble.c:150 +#: ../build/parsePreamble.c:160 #, c-format msgid "Architecture is not included: %s" msgstr "" -#: build/parsePreamble.c:155 +#: ../build/parsePreamble.c:165 #, c-format msgid "OS is excluded: %s" msgstr "" -#: build/parsePreamble.c:160 +#: ../build/parsePreamble.c:170 #, c-format msgid "OS is not included: %s" msgstr "" -#: build/parsePreamble.c:174 +#: ../build/parsePreamble.c:206 #, c-format msgid "%s field must be present in package: %s" msgstr "" -#: build/parsePreamble.c:199 +#: ../build/parsePreamble.c:248 #, c-format msgid "Duplicate %s entries in package: %s" msgstr "" -#: build/parsePreamble.c:246 -#, c-format -msgid "Unable to open icon %s: %s" -msgstr "" - -#: build/parsePreamble.c:264 +#: ../build/parsePreamble.c:292 ../build/parsePreamble.c:299 #, c-format -msgid "Unable to read icon %s: %s" +msgid "Unable to read icon: %s" msgstr "" -#: build/parsePreamble.c:277 +#: ../build/parsePreamble.c:309 #, c-format msgid "Unknown icon type: %s" msgstr "" -#: build/parsePreamble.c:339 +#: ../build/parsePreamble.c:340 #, c-format msgid "line %d: Malformed tag: %s" msgstr "" #. Empty field -#: build/parsePreamble.c:347 +#: ../build/parsePreamble.c:348 #, c-format msgid "line %d: Empty tag: %s" msgstr "" -#: build/parsePreamble.c:370 build/parsePreamble.c:377 -#, c-format -msgid "line %d: Illegal char '-' in %s: %s" -msgstr "" - -#: build/parsePreamble.c:441 build/parseSpec.c:366 +#: ../build/parsePreamble.c:399 #, c-format -msgid "BuildRoot can not be \"/\": %s" +msgid "line %d: BuildRoot can not be \"/\": %s" msgstr "" -#: build/parsePreamble.c:454 +#: ../build/parsePreamble.c:412 #, c-format msgid "line %d: Prefixes must not end with \"/\": %s" msgstr "" -#: build/parsePreamble.c:466 +#: ../build/parsePreamble.c:424 #, c-format msgid "line %d: Docdir must begin with '/': %s" msgstr "" -#: build/parsePreamble.c:478 +#: ../build/parsePreamble.c:435 #, c-format -msgid "line %d: Epoch/Serial field must be a number: %s" +msgid "line %d: Serial field must be a number: %s" msgstr "" -#: build/parsePreamble.c:541 +#: ../build/parsePreamble.c:499 #, c-format msgid "line %d: Bad BuildArchitecture format: %s" msgstr "" -#: build/parsePreamble.c:551 +#: ../build/parsePreamble.c:509 #, c-format msgid "Internal error: Bogus tag %d" msgstr "" -#: build/parsePreamble.c:689 +#: ../build/parsePreamble.c:652 #, c-format msgid "Bad package specification: %s" msgstr "" -#: build/parsePreamble.c:695 +#: ../build/parsePreamble.c:658 #, c-format msgid "Package already exists: %s" msgstr "" -#: build/parsePreamble.c:722 +#: ../build/parsePreamble.c:685 #, c-format msgid "line %d: Unknown tag: %s" msgstr "" -#: build/parsePreamble.c:747 +#: ../build/parsePreamble.c:710 msgid "Spec file can't use BuildRoot" msgstr "" -#: build/parsePrep.c:26 +#: ../build/parsePrep.c:37 #, c-format msgid "Bad source: %s: %s" msgstr "" -#: build/parsePrep.c:53 +#: ../build/parsePrep.c:63 #, c-format msgid "No patch number %d" msgstr "" -#: build/parsePrep.c:134 +#: ../build/parsePrep.c:127 #, c-format msgid "No source number %d" msgstr "" -#: build/parsePrep.c:153 -#, c-format -msgid "Couldn't download nosource %s: %s" -msgstr "" - -#: build/parsePrep.c:219 +#: ../build/parsePrep.c:180 msgid "Error parsing %%setup: %s" msgstr "" -#: build/parsePrep.c:234 +#: ../build/parsePrep.c:195 msgid "line %d: Bad arg to %%setup %c: %s" msgstr "" -#: build/parsePrep.c:252 +#: ../build/parsePrep.c:216 msgid "line %d: Bad %%setup option %s: %s" msgstr "" -#: build/parsePrep.c:379 +#: ../build/parsePrep.c:334 msgid "line %d: Need arg to %%patch -b: %s" msgstr "" -#: build/parsePrep.c:387 +#: ../build/parsePrep.c:342 msgid "line %d: Need arg to %%patch -z: %s" msgstr "" -#: build/parsePrep.c:399 +#: ../build/parsePrep.c:354 msgid "line %d: Need arg to %%patch -p: %s" msgstr "" -#: build/parsePrep.c:405 +#: ../build/parsePrep.c:360 msgid "line %d: Bad arg to %%patch -p: %s" msgstr "" -#: build/parsePrep.c:412 +#: ../build/parsePrep.c:367 msgid "Too many patches!" msgstr "" -#: build/parsePrep.c:416 +#: ../build/parsePrep.c:371 msgid "line %d: Bad arg to %%patch: %s" msgstr "" -#: build/parsePrep.c:452 +#: ../build/parsePrep.c:409 msgid "line %d: second %%prep" msgstr "" -#: build/parseReqs.c:91 +#: ../build/parseReqs.c:46 #, c-format -msgid "" -"line %d: Dependency tokens must begin with alpha-numeric, '_' or '/': %s" +msgid "line %d: No file names in Conflicts: %s" msgstr "" -#: build/parseReqs.c:102 +#: ../build/parseReqs.c:77 #, c-format -msgid "line %d: File name not permitted: %s" +msgid "line %d: No versions on file names in %s: %s" msgstr "" -#: build/parseReqs.c:134 +#: ../build/parseReqs.c:83 #, c-format -msgid "line %d: Versioned file name not permitted: %s" +msgid "line %d: No versions in PreReq: %s" msgstr "" -#: build/parseReqs.c:146 +#: ../build/parseReqs.c:95 #, c-format -msgid "line %d: Version not permitted: %s" +msgid "line %d: Version required in %s: %s" msgstr "" -#: build/parseReqs.c:172 +#: ../build/parseReqs.c:123 #, c-format -msgid "line %d: Version required: %s" +msgid "line %d: No file names in %s: %s" msgstr "" -#: build/parseScript.c:136 +#: ../build/parseReqs.c:131 +#, c-format +msgid "line %d: %s: tokens must begin with alpha-numeric: %s" +msgstr "" + +#: ../build/parseScript.c:108 #, c-format msgid "line %d: triggers must have --: %s" msgstr "" -#: build/parseScript.c:146 build/parseScript.c:209 +#: ../build/parseScript.c:118 ../build/parseScript.c:182 #, c-format msgid "line %d: Error parsing %s: %s" msgstr "" -#: build/parseScript.c:156 +#: ../build/parseScript.c:128 #, c-format msgid "line %d: script program must begin with '/': %s" msgstr "" -#: build/parseScript.c:200 +#: ../build/parseScript.c:173 #, c-format msgid "line %d: Second %s" msgstr "" -#: build/parseSpec.c:129 +#: ../build/parseSpec.c:125 #, c-format -msgid "line %d: %s" +msgid "Unable to open: %s\n" msgstr "" -#. XXX Fstrerror -#: build/parseSpec.c:179 -#, c-format -msgid "Unable to open %s: %s\n" -msgstr "" - -#: build/parseSpec.c:191 +#: ../build/parseSpec.c:137 msgid "Unclosed %%if" msgstr "" -#: build/parseSpec.c:252 +#: ../build/parseSpec.c:184 #, c-format -msgid "%s:%d: parseExpressionBoolean returns %d" +msgid "line %d: %s" msgstr "" #. Got an else with no %if ! -#: build/parseSpec.c:260 +#: ../build/parseSpec.c:209 msgid "%s:%d: Got a %%else with no if" msgstr "" #. Got an end with no %if ! -#: build/parseSpec.c:271 +#: ../build/parseSpec.c:219 msgid "%s:%d: Got a %%endif with no if" msgstr "" -#: build/parseSpec.c:285 build/parseSpec.c:294 +#: ../build/parseSpec.c:231 ../build/parseSpec.c:240 msgid "malformed %%include statement" msgstr "" -#: build/parseSpec.c:461 +#: ../build/parseSpec.c:314 +#, c-format +msgid "Timecheck value must be an integer: %s" +msgstr "" + +#: ../build/parseSpec.c:397 msgid "No buildable architectures" msgstr "" -#: build/parseSpec.c:509 +#: ../build/parseSpec.c:425 msgid "Package has no %%description: %s" msgstr "" -#: build/spec.c:31 +#: ../build/spec.c:30 #, c-format msgid "archive = %s, fs = %s\n" msgstr "" -#: build/spec.c:237 +#: ../build/spec.c:218 #, c-format msgid "line %d: Bad number: %s" msgstr "" -#: build/spec.c:243 +#: ../build/spec.c:224 #, c-format msgid "line %d: Bad no%s number: %d" msgstr "" -#: build/spec.c:301 +#: ../build/spec.c:282 #, c-format msgid "line %d: Bad %s number: %s\n" msgstr "" -#: lib/cpio.c:330 +#: ../lib/cpio.c:525 #, c-format -msgid "can't rename %s to %s: %s\n" -msgstr "" - -#: lib/cpio.c:336 -#, c-format -msgid "can't unlink %s: %s\n" -msgstr "" - -#: lib/cpio.c:527 -#, c-format -msgid "getNextHeader: %s\n" -msgstr "" - -#: lib/cpio.c:992 -#, c-format -msgid "(error 0x%x)" -msgstr "" - -#: lib/cpio.c:995 -msgid "Bad magic" -msgstr "" - -#: lib/cpio.c:996 -msgid "Bad/unreadable header" -msgstr "" - -#: lib/cpio.c:1014 -msgid "Header size too big" -msgstr "" - -#: lib/cpio.c:1015 -msgid "Unknown file type" -msgstr "" - -#: lib/cpio.c:1016 -msgid "Missing hard link" -msgstr "" - -#: lib/cpio.c:1017 -msgid "Internal error" +msgid "error %d reading header: %s\n" msgstr "" -#: lib/cpio.c:1026 -msgid " failed - " -msgstr "" - -#: lib/dbindex.c:35 +#: ../lib/dbindex.c:16 #, c-format -msgid "cannot open file %s: %s" +msgid "cannot open file %s: " msgstr "" -#: lib/dbindex.c:87 +#: ../lib/dbindex.c:43 #, c-format msgid "error getting record %s from %s" msgstr "" -#: lib/dbindex.c:114 +#: ../lib/dbindex.c:71 #, c-format msgid "error storing record %s into %s" msgstr "" -#: lib/dbindex.c:121 +#: ../lib/dbindex.c:78 #, c-format msgid "error removing record %s into %s" msgstr "" -#. XXX legacy epoch-less requires/conflicts compatibility -#: lib/depends.c:417 +#: ../lib/depends.c:374 ../lib/depends.c:529 #, c-format -msgid "" -"the \"B\" dependency needs an epoch (assuming same as \"A\")\n" -"\tA %s\tB %s\n" -msgstr "" - -#: lib/depends.c:446 -#, c-format -msgid " %s A %s\tB %s\n" -msgstr "" - -#: lib/depends.c:538 -msgid "dbrecMatchesDepFlags() failed to read header" -msgstr "" - -#: lib/depends.c:784 -#, c-format -msgid "%s: %s satisfied by added file list.\n" -msgstr "" - -#: lib/depends.c:823 -#, c-format -msgid "%s: %s satisfied by added package.\n" +msgid "cannot read header at %d for dependency check" msgstr "" -#: lib/depends.c:840 +#: ../lib/depends.c:439 #, c-format -msgid "%s: %s satisfied by added provide.\n" +msgid "dependencies: looking for %s\n" msgstr "" -#: lib/depends.c:871 +#: ../lib/depends.c:622 #, c-format -msgid "%s: %s satisfied by rpmrc provides.\n" +msgid "package %s require not satisfied: %s\n" msgstr "" -#: lib/depends.c:899 +#: ../lib/depends.c:665 #, c-format -msgid "%s: %s satisfied by db file lists.\n" +msgid "package %s conflicts: %s\n" msgstr "" -#: lib/depends.c:921 -#, c-format -msgid "%s: %s satisfied by db provides.\n" +#: ../lib/depends.c:764 +msgid "dbrecMatchesDepFlags() failed to read header" msgstr "" -#: lib/depends.c:943 +#: ../lib/depends.c:816 #, c-format -msgid "%s: %s satisfied by db packages.\n" +msgid "loop in prerequisite chain: %s" msgstr "" -#: lib/depends.c:956 +#: ../lib/falloc.c:128 #, c-format -msgid "%s: %s satisfied by rpmlib version.\n" +msgid "free list corrupt (%d)- contact support@redhat.com\n" msgstr "" -#: lib/depends.c:966 -#, c-format -msgid "%s: %s unsatisfied.\n" +#: ../lib/formats.c:99 ../lib/formats.c:116 ../lib/formats.c:136 +#: ../lib/formats.c:168 ../lib/header.c:1925 ../lib/header.c:1941 +#: ../lib/header.c:1961 +msgid "(not a number)" msgstr "" -#. requirements are not satisfied. -#: lib/depends.c:1014 +#: ../lib/fs.c:42 #, c-format -msgid "package %s require not satisfied: %s\n" +msgid "mntctl() failed to return fugger size: %s" msgstr "" -#. conflicts exist. -#: lib/depends.c:1076 +#: ../lib/fs.c:76 ../lib/fs.c:238 #, c-format -msgid "package %s conflicts: %s\n" +msgid "failed to stat %s: %s" msgstr "" -#: lib/depends.c:1131 lib/depends.c:1430 +#: ../lib/fs.c:117 #, c-format -msgid "cannot read header at %d for dependency check" +msgid "failed to open %s: %s" msgstr "" -#: lib/depends.c:1226 +#: ../lib/fs.c:259 #, c-format -msgid "loop in prerequisite chain: %s" +msgid "file %s is on an unknown device" msgstr "" -#: lib/falloc.c:124 +#: ../lib/header.c:666 #, c-format -msgid "" -"free list corrupt (%u)- please run\n" -"\t\"rpm --rebuilddb\"\n" -"More information is available from http://www.rpm.org or the " -"rpm-list@redhat.com mailing list\n" -"if \"rpm --rebuilddb\" fails to correct the problem.\n" +msgid "Data type %d not supprted\n" msgstr "" -#: lib/formats.c:69 lib/formats.c:87 lib/formats.c:108 lib/formats.c:141 -#: lib/header.c:2189 lib/header.c:2206 lib/header.c:2226 -msgid "(not a number)" +#. This should not be allowed +#: ../lib/header.c:878 +msgid "grabData() RPM_STRING_TYPE count must be 1.\n" msgstr "" -#: lib/fs.c:56 +#: ../lib/header.c:908 #, c-format -msgid "mntctl() failed to return fugger size: %s" +msgid "Data type %d not supported\n" msgstr "" -#: lib/fs.c:91 lib/fs.c:261 +#: ../lib/header.c:967 #, c-format -msgid "failed to stat %s: %s" +msgid "Bad count for headerAddEntry(): %d\n" msgstr "" -#: lib/fs.c:127 -msgid "getting list of mounted filesystems\n" +#: ../lib/header.c:1281 +msgid "? expected in expression" msgstr "" -#: lib/fs.c:132 -#, c-format -msgid "failed to open %s: %s" +#: ../lib/header.c:1288 +msgid "{ expected after ? in expression" msgstr "" -#: lib/fs.c:283 -#, c-format -msgid "file %s is on an unknown device" +#: ../lib/header.c:1298 ../lib/header.c:1330 +msgid "} expected in expression" msgstr "" -#. This should not be allowed -#: lib/header.c:218 -msgid "grabData() RPM_STRING_TYPE count must be 1.\n" +#: ../lib/header.c:1305 +msgid ": expected following ? subexpression" msgstr "" -#: lib/header.c:249 lib/header.c:812 -#, c-format -msgid "Data type %d not supported\n" +#: ../lib/header.c:1318 +msgid "{ expected after : in expression" msgstr "" -#: lib/header.c:1171 -#, c-format -msgid "Bad count for headerAddEntry(): %d\n" +#: ../lib/header.c:1337 +msgid "| expected at end of expression" msgstr "" -#: lib/header.c:1580 +#: ../lib/header.c:1431 #, c-format msgid "missing { after %" msgstr "" -#: lib/header.c:1608 +#: ../lib/header.c:1459 msgid "missing } after %{" msgstr "" -#: lib/header.c:1620 +#: ../lib/header.c:1471 msgid "empty tag format" msgstr "" -#: lib/header.c:1630 +#: ../lib/header.c:1481 msgid "empty tag name" msgstr "" -#: lib/header.c:1645 +#: ../lib/header.c:1496 msgid "unknown tag" msgstr "" -#: lib/header.c:1671 +#: ../lib/header.c:1522 msgid "] expected at end of array" msgstr "" -#: lib/header.c:1687 +#: ../lib/header.c:1538 msgid "unexpected ]" msgstr "" -#: lib/header.c:1689 +#: ../lib/header.c:1540 msgid "unexpected }" msgstr "" -#: lib/header.c:1743 -msgid "? expected in expression" +#: ../lib/header.c:1615 ../lib/header.c:1621 ../lib/header.c:1804 +msgid "(none)" msgstr "" -#: lib/header.c:1750 -msgid "{ expected after ? in expression" +#: ../lib/header.c:1715 +msgid "(unknown type)" msgstr "" -#: lib/header.c:1760 lib/header.c:1795 -msgid "} expected in expression" +#: ../lib/install.c:96 +msgid "source package expected, binary found" msgstr "" -#: lib/header.c:1768 -msgid ": expected following ? subexpression" +#: ../lib/install.c:168 +msgid "package is not relocatable" msgstr "" -#: lib/header.c:1782 -msgid "{ expected after : in expression" +#: ../lib/install.c:172 +msgid "package has multiple relocatable components" msgstr "" -#: lib/header.c:1803 -msgid "| expected at end of expression" +#: ../lib/install.c:195 +#, c-format +msgid "path %s is not relocatable" msgstr "" -#: lib/header.c:1972 -msgid "(unknown type)" +#: ../lib/install.c:277 +#, c-format +msgid "relocating %s to %s\n" msgstr "" -#: lib/install.c:142 lib/uninstall.c:194 +#: ../lib/install.c:325 #, c-format -msgid " file: %s action: %s\n" +msgid "not installing %s -- linguas\n" msgstr "" -#: lib/install.c:160 +#: ../lib/install.c:347 #, c-format msgid "user %s does not exist - using root" msgstr "" -#: lib/install.c:168 +#: ../lib/install.c:355 #, c-format msgid "group %s does not exist - using root" msgstr "" -#: lib/install.c:196 -msgid "%%instchangelog value in macro file should be a number, but isn't" -msgstr "" - -#. this would probably be a good place to check if disk space -#. was used up - if so, we should return a different error -#: lib/install.c:362 -#, c-format -msgid "unpacking of archive failed%s%s: %s" -msgstr "" - -#: lib/install.c:363 -msgid " on file " +#: ../lib/install.c:379 +msgid "instchangelog value in rpmrc should be a number, but isn't" msgstr "" -#: lib/install.c:406 -msgid "installing a source package\n" -msgstr "" - -#: lib/install.c:426 -#, c-format -msgid "cannot create sourcedir %s" +#: ../lib/install.c:455 ../lib/install.c:735 +msgid "stopping install as we're running --test\n" msgstr "" -#: lib/install.c:432 lib/install.c:462 +#: ../lib/install.c:486 #, c-format -msgid "cannot write to %s" +msgid "package %s-%s-%s is for a different architecture" msgstr "" -#: lib/install.c:436 +#: ../lib/install.c:493 #, c-format -msgid "sources in: %s\n" +msgid "package %s-%s-%s is for a different operating system" msgstr "" -#: lib/install.c:456 +#: ../lib/install.c:505 #, c-format -msgid "cannot create specdir %s" +msgid "package: %s-%s-%s files test = %d\n" msgstr "" -#: lib/install.c:466 +#. no matches +#: ../lib/install.c:569 #, c-format -msgid "spec file in: %s\n" +msgid "package %s is now obsolete and will be removed\n" msgstr "" -#: lib/install.c:500 lib/install.c:528 -msgid "source package contains no .spec file" -msgstr "" - -#: lib/install.c:550 +#: ../lib/install.c:680 #, c-format -msgid "renaming %s to %s\n" +msgid "file %s in netshared path\n" msgstr "" -#: lib/install.c:552 lib/install.c:831 lib/uninstall.c:27 +#: ../lib/install.c:697 #, c-format -msgid "rename of %s to %s failed: %s" -msgstr "" - -#: lib/install.c:643 -msgid "source package expected, binary found" +msgid "%s exists - creating with alternate name\n" msgstr "" -#: lib/install.c:700 +#: ../lib/install.c:702 #, c-format -msgid "package: %s-%s-%s files test = %d\n" +msgid "%s exists - backing up\n" msgstr "" -#: lib/install.c:761 -msgid "stopping install as we're running --test\n" -msgstr "" - -#: lib/install.c:766 +#: ../lib/install.c:741 msgid "running preinstall script (if any)\n" msgstr "" -#: lib/install.c:791 +#: ../lib/install.c:772 #, c-format msgid "warning: %s created as %s" msgstr "" -#: lib/install.c:827 +#: ../lib/install.c:806 #, c-format msgid "warning: %s saved as %s" msgstr "" -#: lib/install.c:901 -msgid "running postinstall scripts (if any)\n" -msgstr "" - -#: lib/lookup.c:35 -#, c-format -msgid "cannot read header at %d for lookup" -msgstr "" - -#: lib/macro.c:161 +#: ../lib/install.c:810 ../lib/install.c:1520 ../lib/uninstall.c:590 #, c-format -msgid "======================== active %d empty %d\n" -msgstr "" - -#. XXX just in case -#: lib/macro.c:256 -#, c-format -msgid "%3d>%*s(empty)" -msgstr "" - -#: lib/macro.c:291 -#, c-format -msgid "%3d<%*s(empty)\n" -msgstr "" - -#: lib/macro.c:470 -msgid "Macro %%%s has unterminated body" -msgstr "" - -#: lib/macro.c:496 -msgid "Macro %%%s has illegal name (%%define)" -msgstr "" - -#: lib/macro.c:502 -msgid "Macro %%%s has unterminated opts" -msgstr "" - -#: lib/macro.c:507 -msgid "Macro %%%s has empty body" +msgid "rename of %s to %s failed: %s" msgstr "" -#: lib/macro.c:512 -msgid "Macro %%%s failed to expand" +#: ../lib/install.c:911 +msgid "running postinstall script (if any)\n" msgstr "" -#: lib/macro.c:537 -msgid "Macro %%%s has illegal name (%%undefine)" +#: ../lib/install.c:932 +msgid "removing old versions of package\n" msgstr "" -#: lib/macro.c:614 -msgid "Macro %%%s (%s) was not used below level %d" -msgstr "" - -#: lib/macro.c:711 +#. this would probably be a good place to check if disk space +#. was used up - if so, we should return a different error +#: ../lib/install.c:1023 #, c-format -msgid "Unknown option %c in %s(%s)" +msgid "unpacking of archive failed on file %s: %d: %s" msgstr "" -#: lib/macro.c:891 +#: ../lib/install.c:1061 #, c-format -msgid "Recursion depth(%d) greater than max(%d)" +msgid "package %s-%s-%s is already installed" msgstr "" -#: lib/macro.c:957 lib/macro.c:973 +#: ../lib/install.c:1109 #, c-format -msgid "Unterminated %c: %s" -msgstr "" - -#: lib/macro.c:1013 -msgid "A %% is followed by an unparseable macro" +msgid "%s skipped due to missingok flag\n" msgstr "" -#: lib/macro.c:1139 -msgid "Macro %%%.*s not found, skipping" +#: ../lib/install.c:1127 +msgid "\tfile type on disk is different then package - saving\n" msgstr "" -#: lib/macro.c:1220 -msgid "Target buffer overflow" +#: ../lib/install.c:1130 +msgid "" +"\tfile type in database is different then disk and package file - saving\n" msgstr "" -#. XXX Fstrerror -#: lib/macro.c:1400 lib/macro.c:1406 -#, c-format -msgid "File %s: %s" +#: ../lib/install.c:1134 +msgid "\tfile type changed - replacing\n" msgstr "" -#: lib/macro.c:1409 -#, c-format -msgid "File %s is smaller than %d bytes" +#: ../lib/install.c:1138 +msgid "\tcan't check file for changes - replacing\n" msgstr "" -#: lib/messages.c:55 -msgid "warning: " +#. assume the file has been removed, don't freak +#: ../lib/install.c:1150 ../lib/install.c:1160 +msgid "\tfile not present - creating" msgstr "" -#: lib/messages.c:64 -msgid "error: " +#. this config file has never been modified, so +#. just replace it +#: ../lib/install.c:1173 +msgid "\told == current, replacing with new version\n" msgstr "" -#: lib/messages.c:73 -msgid "fatal error: " +#. this file is the same in all versions of this package +#: ../lib/install.c:1180 +msgid "\told == new, keeping\n" msgstr "" -#: lib/messages.c:82 -msgid "internal error (rpm bug?): " +#. the config file on the disk has been modified, but +#. the ones in the two packages are different. It would +#. be nice if RPM was smart enough to at least try and +#. merge the difference ala CVS, but... +#: ../lib/install.c:1188 +msgid "\tfiles changed too much - backing up\n" msgstr "" -#: lib/misc.c:423 lib/misc.c:428 lib/misc.c:434 +#: ../lib/install.c:1250 ../lib/rpmdb.c:310 ../lib/uninstall.c:118 +#: ../lib/uninstall.c:218 #, c-format -msgid "error creating temporary file %s" +msgid "cannot read header at %d for uninstall" msgstr "" -#: lib/oldheader.c:301 +#: ../lib/install.c:1263 ../lib/uninstall.c:131 #, c-format -msgid "bad file state: %s" +msgid "package %s-%s-%s contain shared files\n" msgstr "" -#: lib/package.c:237 -msgid "package is a version one package!\n" -msgstr "" - -#: lib/package.c:242 -msgid "old style source package -- I'll do my best\n" +#: ../lib/install.c:1268 ../lib/uninstall.c:136 +#, c-format +msgid "package %s contains no files" msgstr "" -#: lib/package.c:245 +#: ../lib/install.c:1290 ../lib/uninstall.c:159 #, c-format -msgid "archive offset is %d\n" +msgid "file %s is shared\n" msgstr "" -#: lib/package.c:256 -msgid "old style binary package\n" +#: ../lib/install.c:1306 +msgid "\told version already replaced\n" msgstr "" -#: lib/package.c:316 -msgid "" -"only packages with major numbers <= 3 are supported by this version of RPM" +#: ../lib/install.c:1309 +msgid "\tother version never installed\n" msgstr "" -#: lib/problems.c:43 +#: ../lib/install.c:1317 #, c-format -msgid " is needed by %s-%s-%s\n" +msgid "%s conflicts with file from %s-%s-%s" msgstr "" -#: lib/problems.c:46 +#: ../lib/install.c:1336 #, c-format -msgid " conflicts with %s-%s-%s\n" +msgid "%s from %s-%s-%s will be replaced\n" msgstr "" -#: lib/problems.c:66 -#, c-format -msgid "package %s-%s-%s is for a different architecture" +#: ../lib/install.c:1400 +msgid "installing a source package\n" msgstr "" -#: lib/problems.c:71 +#: ../lib/install.c:1416 ../lib/install.c:1421 #, c-format -msgid "package %s-%s-%s is for a different operating system" +msgid "cannot write to %s" msgstr "" -#: lib/problems.c:76 +#: ../lib/install.c:1425 #, c-format -msgid "package %s-%s-%s is already installed" +msgid "sources in: %s\n" msgstr "" -#: lib/problems.c:81 +#: ../lib/install.c:1426 #, c-format -msgid "path %s is not relocateable for package %s-%s-%s" +msgid "spec file in: %s\n" msgstr "" -#: lib/problems.c:86 -#, c-format -msgid "file %s conflicts between attemped installs of %s-%s-%s and %s-%s-%s" +#: ../lib/install.c:1459 ../lib/install.c:1498 +msgid "source package contains no .spec file" msgstr "" -#: lib/problems.c:92 +#: ../lib/install.c:1518 #, c-format -msgid "" -"file %s from install of %s-%s-%s conflicts with file from package %s-%s-%s" +msgid "renaming %s to %s\n" msgstr "" -#: lib/problems.c:98 +#: ../lib/install.c:1634 #, c-format -msgid "package %s-%s-%s (which is newer than %s-%s-%s) is already installed" +msgid "package %s-%s-%s (which is newer) is already installed" msgstr "" -#: lib/problems.c:104 +#: ../lib/lookup.c:86 #, c-format -msgid "installing package %s-%s-%s needs %ld%cb on the %s filesystem" +msgid "cannot read header at %d for lookup" msgstr "" -#: lib/problems.c:116 +#: ../lib/macro.c:114 #, c-format -msgid "unknown error %d encountered while manipulating package %s-%s-%s" +msgid "======================== active %d empty %d\n" msgstr "" -#: lib/query.c:138 +#. XXX just in case +#: ../lib/macro.c:201 #, c-format -msgid "error in format: %s\n" -msgstr "" - -#: lib/query.c:181 -msgid "(contains no files)" -msgstr "" - -#: lib/query.c:238 -msgid "normal " -msgstr "" - -#: lib/query.c:240 -msgid "replaced " -msgstr "" - -#: lib/query.c:242 -msgid "not installed " -msgstr "" - -#: lib/query.c:244 -msgid "net shared " +msgid "%3d>%*s(empty)" msgstr "" -#: lib/query.c:246 +#: ../lib/macro.c:236 #, c-format -msgid "(unknown %3d) " +msgid "%3d<%*s(empty)\n" msgstr "" -#: lib/query.c:250 -msgid "(no state) " +#: ../lib/macro.c:409 +msgid "Macro %%%s has unterminated body" msgstr "" -#: lib/query.c:267 lib/query.c:308 -msgid "package has neither file owner or id lists" +#: ../lib/macro.c:435 +msgid "Macro %%%s has illegal name (%%define)" msgstr "" -#: lib/query.c:421 -#, c-format -msgid "record number %u\n" +#: ../lib/macro.c:441 +msgid "Macro %%%s has unterminated opts" msgstr "" -#: lib/query.c:425 -msgid "error: could not read database record\n" +#: ../lib/macro.c:446 +msgid "Macro %%%s has empty body" msgstr "" -#. XXX Fstrerror -#: lib/query.c:471 -#, c-format -msgid "open of %s failed: %s\n" +#: ../lib/macro.c:451 +msgid "Macro %%%s failed to expand" msgstr "" -#: lib/query.c:489 -msgid "old format source packages cannot be queried\n" +#: ../lib/macro.c:476 +msgid "Macro %%%s has illegal name (%%undefine)" msgstr "" -#: lib/query.c:498 lib/rpminstall.c:231 -#, c-format -msgid "%s does not appear to be a RPM package\n" +#: ../lib/macro.c:547 +msgid "Macro %%%s (%s) was not used below level %d" msgstr "" -#: lib/query.c:502 +#: ../lib/macro.c:630 #, c-format -msgid "query of %s failed\n" +msgid "Unknown option %c in %s(%s)" msgstr "" -#: lib/query.c:535 +#: ../lib/macro.c:792 #, c-format -msgid "query of specfile %s failed, can't parse\n" -msgstr "" - -#: lib/query.c:560 -msgid "could not read database record!\n" +msgid "Recursion depth(%d) greater than max(%d)" msgstr "" -#: lib/query.c:571 +#: ../lib/macro.c:848 ../lib/macro.c:864 #, c-format -msgid "group %s does not contain any packages\n" +msgid "Unterminated %c: %s" msgstr "" -#: lib/query.c:581 -#, c-format -msgid "no package triggers %s\n" +#: ../lib/macro.c:893 +msgid "Empty token" msgstr "" -#: lib/query.c:591 -#, c-format -msgid "no package requires %s\n" +#: ../lib/macro.c:1015 +msgid "Macro %%%.*s not found, skipping" msgstr "" -#: lib/query.c:602 -#, c-format -msgid "no package provides %s\n" +#: ../lib/macro.c:1087 +msgid "Target buffer overflow" msgstr "" -#: lib/query.c:618 +#: ../lib/macro.c:1201 ../lib/macro.c:1209 #, c-format -msgid "file %s: %s\n" +msgid "File %s: %s" msgstr "" -#: lib/query.c:621 +#: ../lib/macro.c:1212 #, c-format -msgid "file %s is not owned by any package\n" +msgid "File %s is smaller than %d bytes" msgstr "" -#: lib/query.c:634 -#, c-format -msgid "invalid package number: %s\n" +#: ../lib/messages.c:53 +msgid "warning: " msgstr "" -#: lib/query.c:637 -#, c-format -msgid "package record number: %d\n" +#: ../lib/messages.c:59 +msgid "error: " msgstr "" -#: lib/query.c:640 -#, c-format -msgid "record %d could not be read\n" +#: ../lib/messages.c:65 +msgid "fatal error: " msgstr "" -#: lib/query.c:652 lib/rpminstall.c:435 -#, c-format -msgid "package %s is not installed\n" +#: ../lib/messages.c:72 +msgid "internal error (rpm bug?): " msgstr "" -#: lib/query.c:655 +#: ../lib/misc.c:338 ../lib/misc.c:343 ../lib/misc.c:349 #, c-format -msgid "error looking for package %s\n" -msgstr "" - -#: lib/query.c:677 -msgid "rpmQuery: rpmdbOpen() failed\n" -msgstr "" - -#: lib/query.c:736 -msgid "query package owning file" -msgstr "" - -#: lib/query.c:738 -msgid "query packages in group" -msgstr "" - -#: lib/query.c:740 -msgid "query a package file" -msgstr "" - -#: lib/query.c:744 -msgid "query a spec file" -msgstr "" - -#: lib/query.c:746 -msgid "query the pacakges triggered by the package" -msgstr "" - -#: lib/query.c:748 -msgid "query the packages which require a capability" -msgstr "" - -#: lib/query.c:750 -msgid "query the packages which provide a capability" -msgstr "" - -#: lib/query.c:789 -msgid "list all configuration files" -msgstr "" - -#: lib/query.c:791 -msgid "list all documentation files" +msgid "error creating temporary file %s" msgstr "" -#: lib/query.c:793 -msgid "dump basic file information" +#: ../lib/oldheader.c:294 +msgid "bad file state: " msgstr "" -#: lib/query.c:795 -msgid "list files in package" +#: ../lib/package.c:51 +msgid "package is a version one package!\n" msgstr "" -#: lib/query.c:799 -msgid "use the following query format" +#: ../lib/package.c:54 +msgid "old style source package -- I'll do my best\n" msgstr "" -#: lib/query.c:801 -msgid "substitute i18n sections from the following catalogue" +#: ../lib/package.c:57 +#, c-format +msgid "archive offset is %d\n" msgstr "" -#: lib/query.c:804 -msgid "display the states of the listed files" +#: ../lib/package.c:67 +msgid "old style binary package\n" msgstr "" -#: lib/query.c:806 -msgid "display a verbose file listing" +#: ../lib/package.c:98 +msgid "" +"only packages with major numbers <= 3 are supported by this version of RPM" msgstr "" -#: lib/rebuilddb.c:20 +#: ../lib/rebuilddb.c:15 #, c-format msgid "rebuilding database in rootdir %s\n" msgstr "" -#: lib/rebuilddb.c:24 lib/rpmdb.c:249 +#: ../lib/rebuilddb.c:19 ../lib/rpmdb.c:45 ../lib/rpmdb.c:58 msgid "no dbpath has been set" msgstr "" -#: lib/rebuilddb.c:34 +#: ../lib/rebuilddb.c:27 #, c-format msgid "temporary database %s already exists" msgstr "" -#: lib/rebuilddb.c:38 +#: ../lib/rebuilddb.c:31 #, c-format msgid "creating directory: %s\n" msgstr "" -#: lib/rebuilddb.c:40 +#: ../lib/rebuilddb.c:33 #, c-format msgid "error creating directory %s: %s" msgstr "" -#: lib/rebuilddb.c:44 +#: ../lib/rebuilddb.c:39 msgid "opening old database\n" msgstr "" -#: lib/rebuilddb.c:51 +#: ../lib/rebuilddb.c:44 msgid "opening new database\n" msgstr "" -#: lib/rebuilddb.c:61 lib/rebuilddb.c:79 +#: ../lib/rebuilddb.c:53 ../lib/rebuilddb.c:71 #, c-format msgid "record number %d in database is bad -- skipping it" msgstr "" -#: lib/rebuilddb.c:73 +#: ../lib/rebuilddb.c:65 #, c-format msgid "cannot add record originally at %d" msgstr "" -#: lib/rebuilddb.c:92 +#: ../lib/rebuilddb.c:82 msgid "failed to rebuild database; original database remains in place\n" msgstr "" -#: lib/rebuilddb.c:100 +#: ../lib/rebuilddb.c:89 msgid "failed to replace old database with new database!\n" msgstr "" -#: lib/rebuilddb.c:102 +#: ../lib/rebuilddb.c:91 #, c-format msgid "replaces files in %s with files from %s to recover" msgstr "" -#: lib/rebuilddb.c:108 -#, c-format -msgid "failed to remove directory %s: %s\n" -msgstr "" - -#: lib/rpmchecksig.c:31 +#: ../lib/rebuilddb.c:96 #, c-format -msgid "%s: open failed: %s\n" +msgid "failed to remove %s: %s\n" msgstr "" -#: lib/rpmchecksig.c:42 -msgid "makeTempFile failed\n" -msgstr "" - -#: lib/rpmchecksig.c:74 +#: ../lib/rpmdb.c:113 #, c-format -msgid "%s: Fwrite failed: %s\n" +msgid "opening database in %s\n" msgstr "" -#: lib/rpmchecksig.c:80 +#: ../lib/rpmdb.c:122 #, c-format -msgid "%s: Fread failed: %s\n" +msgid "failed to open %s\n" msgstr "" -#: lib/rpmchecksig.c:113 lib/rpmchecksig.c:243 -#, c-format -msgid "%s: readLead failed\n" -msgstr "" - -#: lib/rpmchecksig.c:118 -#, c-format -msgid "%s: Can't sign v1.0 RPM\n" -msgstr "" - -#: lib/rpmchecksig.c:122 -#, c-format -msgid "%s: Can't re-sign v2.0 RPM\n" -msgstr "" - -#: lib/rpmchecksig.c:130 lib/rpmchecksig.c:257 -#, c-format -msgid "%s: rpmReadSignature failed\n" -msgstr "" - -#: lib/rpmchecksig.c:134 lib/rpmchecksig.c:262 -#, c-format -msgid "%s: No signature available\n" -msgstr "" - -#: lib/rpmchecksig.c:167 -#, c-format -msgid "%s: writeLead failed: %s\n" -msgstr "" - -#: lib/rpmchecksig.c:173 -#, c-format -msgid "%s: rpmWriteSignature failed: %s\n" -msgstr "" - -#: lib/rpmchecksig.c:249 -#, c-format -msgid "%s: No signature available (v1.0 RPM)\n" -msgstr "" - -#: lib/rpmchecksig.c:412 -msgid "NOT OK" -msgstr "" - -#: lib/rpmchecksig.c:413 lib/rpmchecksig.c:427 -msgid " (MISSING KEYS:" -msgstr "" - -#: lib/rpmchecksig.c:415 lib/rpmchecksig.c:429 -msgid ") " -msgstr "" - -#: lib/rpmchecksig.c:416 lib/rpmchecksig.c:430 -msgid " (UNTRUSTED KEYS:" -msgstr "" - -#: lib/rpmchecksig.c:418 lib/rpmchecksig.c:432 -msgid ")" -msgstr "" - -#: lib/rpmchecksig.c:426 -msgid "OK" -msgstr "" - -#: lib/rpmdb.c:147 -#, c-format -msgid "opening database mode 0x%x in %s\n" -msgstr "" - -#: lib/rpmdb.c:157 lib/url.c:442 -#, c-format -msgid "failed to open %s: %s\n" -msgstr "" - -#: lib/rpmdb.c:171 lib/rpmdb.c:179 +#: ../lib/rpmdb.c:135 ../lib/rpmdb.c:142 #, c-format msgid "cannot get %s lock on database" msgstr "" -#: lib/rpmdb.c:172 +#: ../lib/rpmdb.c:136 msgid "exclusive" msgstr "" -#: lib/rpmdb.c:180 +#: ../lib/rpmdb.c:143 msgid "shared" msgstr "" -#: lib/rpmdb.c:211 -msgid "" -"old format database is present; use --rebuilddb to generate a new format " -"database" -msgstr "" - -#: lib/rpmdb.c:469 +#: ../lib/rpmdb.c:276 #, c-format msgid "package %s not listed in %s" msgstr "" -#: lib/rpmdb.c:480 +#: ../lib/rpmdb.c:287 #, c-format msgid "package %s not found in %s" msgstr "" -#: lib/rpmdb.c:504 lib/uninstall.c:86 -#, c-format -msgid "cannot read header at %d for uninstall" -msgstr "" - -#: lib/rpmdb.c:512 +#: ../lib/rpmdb.c:318 msgid "package has no name" msgstr "" -#: lib/rpmdb.c:514 +#: ../lib/rpmdb.c:320 msgid "removing name index\n" msgstr "" -#: lib/rpmdb.c:519 +#: ../lib/rpmdb.c:325 msgid "package has no group\n" msgstr "" -#: lib/rpmdb.c:521 +#: ../lib/rpmdb.c:327 msgid "removing group index\n" msgstr "" -#: lib/rpmdb.c:528 +#: ../lib/rpmdb.c:334 #, c-format msgid "removing provides index for %s\n" msgstr "" -#: lib/rpmdb.c:543 +#: ../lib/rpmdb.c:349 #, c-format msgid "removing requiredby index for %s\n" msgstr "" -#: lib/rpmdb.c:555 +#: ../lib/rpmdb.c:361 #, c-format msgid "removing trigger index for %s\n" msgstr "" -#: lib/rpmdb.c:566 +#: ../lib/rpmdb.c:372 #, c-format msgid "removing conflict index for %s\n" msgstr "" -#: lib/rpmdb.c:577 +#: ../lib/rpmdb.c:383 #, c-format msgid "removing file index for %s\n" msgstr "" -#: lib/rpmdb.c:586 +#: ../lib/rpmdb.c:390 msgid "package has no files\n" msgstr "" -#: lib/rpmdb.c:692 +#: ../lib/rpmdb.c:463 msgid "cannot allocate space for database" msgstr "" -#: lib/rpmdb.c:751 +#: ../lib/rpmdb.c:527 #, c-format msgid "cannot read header at %d for update" msgstr "" -#: lib/rpmdb.c:764 +#: ../lib/rpmdb.c:536 msgid "header changed size!" msgstr "" -#: lib/rpminstall.c:126 -msgid "counting packages to install\n" -msgstr "" - -#: lib/rpminstall.c:130 -#, c-format -msgid "found %d packages\n" -msgstr "" - -#: lib/rpminstall.c:135 -msgid "looking for packages to download\n" -msgstr "" - -#: lib/rpminstall.c:150 -#, c-format -msgid "skipping %s - rpmGlob failed(%d)\n" -msgstr "" - -#: lib/rpminstall.c:165 -#, c-format -msgid "Retrieving %s\n" -msgstr "" - -#. XXX undefined %{name}/%{version}/%{release} here -#. XXX %{_tmpdir} does not exist -#: lib/rpminstall.c:175 -#, c-format -msgid " ... as %s\n" -msgstr "" - -#: lib/rpminstall.c:179 -#, c-format -msgid "skipping %s - transfer failed - %s\n" -msgstr "" - -#: lib/rpminstall.c:206 -#, c-format -msgid "retrieved %d packages\n" -msgstr "" - -#: lib/rpminstall.c:217 lib/rpminstall.c:360 -#, c-format -msgid "cannot open file %s: %s\n" -msgstr "" - -#: lib/rpminstall.c:235 lib/rpminstall.c:512 -#, c-format -msgid "%s cannot be installed\n" -msgstr "" - -#: lib/rpminstall.c:270 -#, c-format -msgid "package %s is not relocateable\n" -msgstr "" - -#: lib/rpminstall.c:289 -#, c-format -msgid "error reading from file %s\n" -msgstr "" - -#: lib/rpminstall.c:294 -#, c-format -msgid "file %s requires a newer version of RPM\n" -msgstr "" - -#: lib/rpminstall.c:311 -#, c-format -msgid "found %d source and %d binary packages\n" -msgstr "" - -#: lib/rpminstall.c:322 -msgid "failed dependencies:\n" -msgstr "" - -#: lib/rpminstall.c:340 -msgid "installing binary packages\n" -msgstr "" - -#: lib/rpminstall.c:439 -#, c-format -msgid "searching for package %s\n" -msgstr "" - -#: lib/rpminstall.c:448 -#, c-format -msgid "\"%s\" specifies multiple packages\n" -msgstr "" - -#: lib/rpminstall.c:474 -msgid "removing these packages would break dependencies:\n" -msgstr "" - -#: lib/rpminstall.c:501 -#, c-format -msgid "cannot open %s: %s\n" -msgstr "" - -#: lib/rpminstall.c:507 -#, c-format -msgid "Installing %s\n" -msgstr "" - -#: lib/rpmio.c:769 -msgid "Success" -msgstr "" - -#: lib/rpmio.c:772 -msgid "Bad server response" -msgstr "" - -#: lib/rpmio.c:775 -msgid "Server IO error" -msgstr "" - -#: lib/rpmio.c:778 -msgid "Server timeout" -msgstr "" - -#: lib/rpmio.c:781 -msgid "Unable to lookup server host address" -msgstr "" - -#: lib/rpmio.c:784 -msgid "Unable to lookup server host name" -msgstr "" - -#: lib/rpmio.c:787 -msgid "Failed to connect to server" -msgstr "" - -#: lib/rpmio.c:790 -msgid "Failed to establish data connection to server" -msgstr "" - -#: lib/rpmio.c:793 -msgid "IO error to local file" -msgstr "" - -#: lib/rpmio.c:796 -msgid "Error setting remote server to passive mode" -msgstr "" - -#: lib/rpmio.c:799 -msgid "File not found on server" -msgstr "" - -#: lib/rpmio.c:802 -msgid "Abort in progress" -msgstr "" - -#: lib/rpmio.c:806 -msgid "Unknown or unexpected error" -msgstr "" - -#: lib/rpmio.c:1339 -#, c-format -msgid "logging into %s as %s, pw %s\n" -msgstr "" - -#: lib/rpmlead.c:48 +#: ../lib/rpmlead.c:43 #, c-format msgid "read failed: %s (%d)" msgstr "" -#: lib/rpmrc.c:144 +#: ../lib/rpmrc.c:212 #, c-format msgid "missing second ':' at %s:%d" msgstr "" -#: lib/rpmrc.c:147 +#: ../lib/rpmrc.c:215 #, c-format msgid "missing architecture name at %s:%d" msgstr "" -#: lib/rpmrc.c:307 +#: ../lib/rpmrc.c:360 #, c-format msgid "Incomplete data line at %s:%d" msgstr "" -#: lib/rpmrc.c:311 +#: ../lib/rpmrc.c:364 #, c-format msgid "Too many args in data line at %s:%d" msgstr "" -#: lib/rpmrc.c:318 +#: ../lib/rpmrc.c:371 #, c-format msgid "Bad arch/os number: %s (%s:%d)" msgstr "" -#: lib/rpmrc.c:353 +#: ../lib/rpmrc.c:404 #, c-format msgid "Incomplete default line at %s:%d" msgstr "" -#: lib/rpmrc.c:358 +#: ../lib/rpmrc.c:409 #, c-format msgid "Too many args in default line at %s:%d" msgstr "" -#: lib/rpmrc.c:547 -#, c-format -msgid "Cannot expand %s" -msgstr "" - -#: lib/rpmrc.c:562 +#: ../lib/rpmrc.c:544 ../lib/rpmrc.c:560 #, c-format msgid "Unable to open %s for reading: %s." msgstr "" -#. XXX Feof(fd) -#: lib/rpmrc.c:607 +#: ../lib/rpmrc.c:604 #, c-format msgid "Failed to read %s: %s." msgstr "" -#: lib/rpmrc.c:644 +#: ../lib/rpmrc.c:635 #, c-format -msgid "missing ':' (found 0x%02x) at %s:%d" +msgid "missing ':' at %s:%d" msgstr "" -#: lib/rpmrc.c:661 lib/rpmrc.c:735 +#: ../lib/rpmrc.c:651 ../lib/rpmrc.c:746 #, c-format msgid "missing argument for %s at %s:%d" msgstr "" -#: lib/rpmrc.c:678 lib/rpmrc.c:700 +#: ../lib/rpmrc.c:681 +#, c-format +msgid "no macroname for setenv %s:%d" +msgstr "" + +#: ../lib/rpmrc.c:712 #, c-format -msgid "%s expansion failed at %s:%d \"%s\"" +msgid "expansion failed at %s:d \"%s\"" msgstr "" -#: lib/rpmrc.c:687 +#: ../lib/rpmrc.c:718 #, c-format -msgid "cannot open %s at %s:%d: %s" +msgid "cannot open %s at %s:%d" msgstr "" -#: lib/rpmrc.c:727 +#: ../lib/rpmrc.c:736 #, c-format msgid "missing architecture for %s at %s:%d" msgstr "" -#: lib/rpmrc.c:794 +#: ../lib/rpmrc.c:803 #, c-format msgid "bad option '%s' at %s:%d" msgstr "" -#: lib/rpmrc.c:1162 +#: ../lib/rpmrc.c:1168 #, c-format msgid "Unknown system: %s\n" msgstr "" -#: lib/rpmrc.c:1163 +#: ../lib/rpmrc.c:1169 msgid "Please contact rpm-list@redhat.com\n" msgstr "" -#: lib/signature.c:107 -#, c-format -msgid "sigsize : %d\n" -msgstr "" - -#: lib/signature.c:108 -#, c-format -msgid "Header + Archive: %d\n" -msgstr "" - -#: lib/signature.c:109 -#, c-format -msgid "expected size : %d\n" -msgstr "" - -#: lib/signature.c:113 -msgid "file is not regular -- skipping size check\n" -msgstr "" - -#: lib/signature.c:135 +#: ../lib/signature.c:72 msgid "No signature\n" msgstr "" -#: lib/signature.c:138 +#: ../lib/signature.c:75 msgid "Old PGP signature\n" msgstr "" -#: lib/signature.c:150 +#: ../lib/signature.c:88 msgid "Old (internal-only) signature! How did you get that!?" msgstr "" -#: lib/signature.c:154 +#: ../lib/signature.c:92 msgid "New Header signature\n" msgstr "" #. 8-byte pad -#: lib/signature.c:161 lib/signature.c:203 +#: ../lib/signature.c:100 ../lib/signature.c:138 #, c-format msgid "Signature size: %d\n" msgstr "" -#: lib/signature.c:162 lib/signature.c:204 +#: ../lib/signature.c:101 ../lib/signature.c:139 #, c-format msgid "Signature pad : %d\n" msgstr "" -#: lib/signature.c:267 -#, c-format -msgid "Couldn't exec pgp (%s)" +#: ../lib/signature.c:211 ../lib/signature.c:468 +msgid "Couldn't exec pgp" msgstr "" -#: lib/signature.c:278 +#: ../lib/signature.c:222 msgid "pgp failed" msgstr "" #. PGP failed to write signature #. Just in case -#: lib/signature.c:285 +#: ../lib/signature.c:229 msgid "pgp failed to write signature" msgstr "" -#: lib/signature.c:290 +#: ../lib/signature.c:234 #, c-format msgid "PGP sig size: %d\n" msgstr "" -#: lib/signature.c:301 lib/signature.c:378 +#: ../lib/signature.c:242 msgid "unable to read the signature" msgstr "" -#: lib/signature.c:306 +#: ../lib/signature.c:248 #, c-format msgid "Got %d bytes of PGP sig\n" msgstr "" -#: lib/signature.c:344 lib/signature.c:687 -msgid "Couldn't exec gpg" -msgstr "" - -#: lib/signature.c:355 -msgid "gpg failed" -msgstr "" - -#. GPG failed to write signature -#. Just in case -#: lib/signature.c:362 -msgid "gpg failed to write signature" -msgstr "" - -#: lib/signature.c:367 +#: ../lib/signature.c:263 #, c-format -msgid "GPG sig size: %d\n" +msgid "sigsize : %d\n" msgstr "" -#: lib/signature.c:383 +#: ../lib/signature.c:264 #, c-format -msgid "Got %d bytes of GPG sig\n" -msgstr "" - -#: lib/signature.c:410 -msgid "Generating signature using PGP.\n" +msgid "Header + Archive: %d\n" msgstr "" -#: lib/signature.c:416 -msgid "Generating signature using GPG.\n" +#: ../lib/signature.c:265 +#, c-format +msgid "expected size : %d\n" msgstr "" -#: lib/signature.c:493 lib/signature.c:555 -msgid "Could not run pgp. Use --nopgp to skip PGP checks." +#: ../lib/signature.c:269 +msgid "file is not regular -- skipping size check\n" msgstr "" -#: lib/signature.c:553 lib/signature.c:626 +#: ../lib/signature.c:383 msgid "exec failed!\n" msgstr "" -#: lib/signature.c:628 -msgid "Could not run gpg. Use --nogpg to skip GPG checks." +#: ../lib/signature.c:385 +msgid "Could not run pgp. Use --nopgp to skip PGP checks." msgstr "" -#: lib/signature.c:716 -msgid "Couldn't exec pgp" +#: ../lib/signature.c:419 +msgid "You must set \"pgp_name:\" in your rpmrc file" msgstr "" -#. @notreached@ -#. This case should have been screened out long ago. -#: lib/signature.c:720 lib/signature.c:773 -msgid "Invalid %%_signature spec in macro file" +#. This shouldn't happen, but some versions of RPM didn't +#. implement --justdb properly, and chose to leave this stuff +#. out. +#: ../lib/uninstall.c:149 ../lib/uninstall.c:279 +msgid "package is missing FILESTATES\n" msgstr "" -#: lib/signature.c:753 -msgid "You must set \"%%_gpg_name\" in your macro file" +#: ../lib/uninstall.c:164 +msgid " file has already been replaced\n" msgstr "" -#: lib/signature.c:765 -msgid "You must set \"%%_pgp_name\" in your macro file" +#: ../lib/uninstall.c:168 +msgid " file was never installed\n" msgstr "" -#: lib/transaction.c:389 -#, c-format -msgid "excluding file %s%s\n" +#: ../lib/uninstall.c:172 +msgid " file is netshared (so don't touch it)\n" msgstr "" -#: lib/transaction.c:415 lib/transaction.c:499 -#, c-format -msgid "excluding directory %s\n" +#: ../lib/uninstall.c:179 +msgid " file is truely shared - saving\n" msgstr "" -#: lib/transaction.c:420 +#: ../lib/uninstall.c:229 #, c-format -msgid "relocating %s to %s\n" +msgid "cannot read packages named %s for uninstall" msgstr "" -#: lib/transaction.c:492 +#: ../lib/uninstall.c:257 #, c-format -msgid "relocating directory %s to %s\n" +msgid "will remove files test = %d\n" msgstr "" -#: lib/transaction.c:643 +#: ../lib/uninstall.c:305 #, c-format -msgid "%s skipped due to missingok flag\n" +msgid "%s has a netshared override\n" msgstr "" -#: lib/uninstall.c:38 -#, c-format -msgid "cannot remove %s - directory not empty" +#: ../lib/uninstall.c:343 +msgid "running postuninstall script (if any)\n" msgstr "" -#: lib/uninstall.c:41 -#, c-format -msgid "rmdir of %s failed: %s" +#: ../lib/uninstall.c:357 +msgid "removing database entry\n" msgstr "" -#: lib/uninstall.c:49 -#, c-format -msgid "removal of %s failed: %s" +#: ../lib/uninstall.c:506 +msgid "execution of script failed" msgstr "" -#: lib/uninstall.c:98 +#: ../lib/uninstall.c:551 #, c-format -msgid "cannot read packages named %s for uninstall" +msgid "%s has already been replaced\n" msgstr "" -#: lib/uninstall.c:131 +#. if it's a config file, we may not want to remove it +#: ../lib/uninstall.c:557 #, c-format -msgid "will remove files test = %d\n" +msgid "finding md5sum of %s\n" msgstr "" -#: lib/uninstall.c:208 -msgid "running postuninstall script (if any)\n" +#: ../lib/uninstall.c:565 +msgid " failed - assuming file removed\n" msgstr "" -#: lib/uninstall.c:222 -msgid "removing database entry\n" +#: ../lib/uninstall.c:568 +msgid " file changed - will save\n" msgstr "" -#: lib/uninstall.c:400 -msgid "execution of script failed" +#: ../lib/uninstall.c:572 +msgid " file unchanged - will remove\n" msgstr "" -#: lib/url.c:85 +#: ../lib/uninstall.c:580 #, c-format -msgid "warning: u %p ctrl %p nrefs != 0 (%s %s)\n" +msgid "keeping %s\n" msgstr "" -#: lib/url.c:102 +#: ../lib/uninstall.c:584 #, c-format -msgid "warning: u %p data %p nrefs != 0 (%s %s)\n" +msgid "saving %s as %s.rpmsave\n" msgstr "" -#: lib/url.c:129 +#: ../lib/uninstall.c:598 #, c-format -msgid "warning: uCache[%d] %p nrefs(%d) != 1 (%s %s)\n" +msgid "%s - removing\n" msgstr "" -#: lib/url.c:215 +#: ../lib/uninstall.c:604 #, c-format -msgid "Password for %s@%s: " +msgid "cannot remove %s - directory not empty" msgstr "" -#: lib/url.c:240 lib/url.c:266 +#: ../lib/uninstall.c:607 #, c-format -msgid "error: %sport must be a number\n" -msgstr "" - -#: lib/url.c:402 -msgid "url port must be a number\n" +msgid "rmdir of %s failed: %s" msgstr "" -#. XXX Fstrerror -#: lib/url.c:459 +#: ../lib/uninstall.c:617 #, c-format -msgid "failed to create %s: %s\n" -msgstr "" - -#: lib/verify.c:38 -msgid "don't verify files in package" +msgid "removal of %s failed: %s" msgstr "" -#: lib/verify.c:213 +#: ../lib/verify.c:171 msgid "package lacks both user name and id lists (this should never happen)" msgstr "" -#: lib/verify.c:231 +#: ../lib/verify.c:189 msgid "package lacks both group name and id lists (this should never happen)" msgstr "" - -#: lib/verify.c:266 -#, c-format -msgid "missing %s\n" -msgstr "" - -#: lib/verify.c:328 -#, c-format -msgid "Unsatisfied dependencies for %s-%s-%s: " -msgstr "" - -#: lib/verify.c:376 -msgid "rpmVerify: rpmdbOpen() failed\n" -msgstr "" diff --git a/popt/.cvsignore b/popt/.cvsignore index ca86025b9..3f3598053 100644 --- a/popt/.cvsignore +++ b/popt/.cvsignore @@ -1,11 +1,13 @@ +.deps +.depend Makefile mappcinames pci-ids-temp.h Makefile configure +config.h config.log config.cache config.satus config.status -.depend test1 diff --git a/popt/Makefile.am b/popt/Makefile.am new file mode 100644 index 000000000..4a93db4a5 --- /dev/null +++ b/popt/Makefile.am @@ -0,0 +1,9 @@ +# Makefile for popt library. + +AUTOMAKE_OPTIONS = 1.3 foreign + +INCLUDES = -I.. + +noinst_HEADERS = popt.h +noinst_LIBRARIES = libpopt.a +libpopt_a_SOURCES = popt.c findme.c poptparse.c poptconfig.c popthelp.c diff --git a/popt/Makefile.in b/popt/Makefile.in index 2a8814ed5..acf90fc73 100644 --- a/popt/Makefile.in +++ b/popt/Makefile.in @@ -1,83 +1,344 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Makefile for popt library. + + +SHELL = /bin/sh + srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ -LIBOBJECTS = popt.o findme.o poptparse.o poptconfig.o popthelp.o +top_builddir = . -SOURCES = $(addprefix $(srcdir)/,$(subst .o,.c,$(LIBOBJECTS))) -LIBPOPT = libpopt.a +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : CC = @CC@ +CPP = @CPP@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +TARGET = @TARGET@ +U = @U@ +VERSION = @VERSION@ + +AUTOMAKE_OPTIONS = 1.3 foreign + +INCLUDES = -I.. + +noinst_HEADERS = popt.h +noinst_LIBRARIES = libpopt.a +libpopt_a_SOURCES = popt.c findme.c poptparse.c poptconfig.c popthelp.c +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libpopt_a_LIBADD = +libpopt_a_OBJECTS = popt.o findme.o poptparse.o poptconfig.o popthelp.o +AR = ar +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = README Makefile.am Makefile.in aclocal.m4 config.h.in \ +configure configure.in install-sh stamp-h.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +DEP_FILES = .deps/findme.P .deps/popt.P .deps/poptconfig.P \ +.deps/popthelp.P .deps/poptparse.P +SOURCES = $(libpopt_a_SOURCES) +OBJECTS = $(libpopt_a_OBJECTS) + +all: Makefile $(LIBRARIES) $(HEADERS) config.h + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): configure.in + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +config.h: stamp-h + @: +stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=config.h \ + $(SHELL) ./config.status + @echo timestamp > stamp-h +$(srcdir)/config.h.in: $(srcdir)/stamp-h.in +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOHEADER) + @echo timestamp > $(srcdir)/stamp-h.in + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + -rm -f config.h + +maintainer-clean-hdr: + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libpopt.a: $(libpopt_a_OBJECTS) $(libpopt_a_DEPENDENCIES) + -rm -f libpopt.a + $(AR) cru libpopt.a $(libpopt_a_OBJECTS) $(libpopt_a_LIBADD) + $(RANLIB) libpopt.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) \ + && $(MAKE) dvi \ + && $(MAKE) check \ + && $(MAKE) install \ + && $(MAKE) installcheck \ + && $(MAKE) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + +maintainer-clean-depend: + -rm -rf .deps + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $< + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $< + @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ + < .deps/$(*F).p > .deps/$(*F).P + @-rm -f .deps/$(*F).p +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-hdr mostlyclean-noinstLIBRARIES \ + mostlyclean-compile mostlyclean-tags mostlyclean-depend \ + mostlyclean-generic + +clean: clean-hdr clean-noinstLIBRARIES clean-compile clean-tags \ + clean-depend clean-generic mostlyclean + +distclean: distclean-hdr distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-depend distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-hdr maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ +mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info dvi \ +installcheck install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + -RANLIB=@RANLIB@ -INSTALL=@INSTALL@ -INSTALL_PREOGRAM=@INSTALL_PREOGRAM@ -INSTALL_DATA=@INSTALL_DATA@ -prefix=@prefix@ -LIBS=$(prefix)/lib -INCLUDE=$(prefix)/include -CPP=@CPP@ -LDFLAGS=@LIBS@ -TESTCASES=test1 - -VERSION=$(shell awk '/define version/ { print $$3 }' popt.spec) -CVSTAG = r$(subst .,-,$(VERSION)) - -# ----------------------------------------------------------------------- - -CFLAGS = @CFLAGS@ @DEFS@ $(OPTS) - -ifeq ($(RANLIB),) -RANLIB=ranlib -endif - -ifeq (.depend-done,$(wildcard .depend-done)) -TARGET=allprogs -else -TARGET=@TARGET@ -endif - -allprogs: $(LIBPOPT) testcases - -testcases: $(TESTCASES) - -# XXX SINIX ld is stupid: needs explicit rule with libs at end -$(TESTCASES): $(LIBPOPT) - $(CC) $(TESTCASES).c $< -o $@ $(LDFLAGS) $(LIBPOPT) - -$(LIBPOPT): $(LIBPOPT)($(LIBOBJECTS)) - $(RANLIB) $@ - -distclean: clean - rm -f Makefile .depend-done config.log config.status - -clean: - rm -f *.a *.o *~ $(PROGS) test.out tagtable.c - -squeaky: distclean - rm -f .depend - -depend: - topdir_path=`( cd $(top_srcdir) && pwd )` ; \ - /bin/rm -f .depend ; \ - $(CPP) $(CFLAGS) -MM $(SOURCES) | \ - sed s+$$topdir_path+$(top_srcdir)+g > .depend - -install: - mkdir -p $(PREFIX)/$(INCLUDE) - mkdir -p $(PREFIX)/$(LIBS) - $(INSTALL_DATA) -m 644 popt.h $(PREFIX)/$(INCLUDE)/popt.h - $(INSTALL_DATA) -m 644 $(LIBPOPT) $(PREFIX)/$(LIBS)/$(LIBPOPT) - -archive: - cvs tag -F $(CVSTAG) . - @rm -rf /tmp/popt-$(VERSION) /tmp/popt - @cd /tmp; cvs export -r$(CVSTAG) popt - @cd /tmp/popt; autoconf - @mv /tmp/popt /tmp/popt-$(VERSION) - @dir=$$PWD; cd /tmp; tar cvzf $$dir/popt-$(VERSION).tar.gz popt-$(VERSION) - @rm -rf /tmp/popt-$(VERSION) - @echo "The archive is in popt-$(VERSION).tar.gz" - -ifeq (.depend,$(wildcard .depend)) -include .depend -endif +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/popt/aclocal.m4 b/popt/aclocal.m4 new file mode 100644 index 000000000..d234055df --- /dev/null +++ b/popt/aclocal.m4 @@ -0,0 +1,246 @@ +dnl aclocal.m4 generated automatically by aclocal 1.3 + +dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +dnl This Makefile.in is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AM_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") +AC_DEFINE_UNQUOTED(VERSION, "$VERSION")) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + + +# serial 1 + +AC_DEFUN(AM_PROG_INSTALL, +[AC_REQUIRE([AC_PROG_INSTALL]) +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' +AC_SUBST(INSTALL_SCRIPT)dnl +]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Like AC_CONFIG_HEADER, but automatically create stamp file. + +AC_DEFUN(AM_CONFIG_HEADER, +[AC_PREREQ([2.12]) +AC_CONFIG_HEADER([$1]) +dnl When config.status generates a header, we must update the stamp-h file. +dnl This file resides in the same directory as the config header +dnl that is generated. We must strip everything past the first ":", +dnl and everything past the last "/". +AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl +ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, +<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, +<<am_indx=1 +for am_file in <<$1>>; do + case " <<$>>CONFIG_HEADERS " in + *" <<$>>am_file "*<<)>> + echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx + ;; + esac + am_indx=`expr "<<$>>am_indx" + 1` +done<<>>dnl>>) +changequote([,]))]) + + +# serial 1 + +AC_DEFUN(AM_C_PROTOTYPES, +[AC_REQUIRE([AM_PROG_CC_STDC]) +AC_REQUIRE([AC_PROG_CPP]) +AC_MSG_CHECKING([for function prototypes]) +if test "$am_cv_prog_cc_stdc" != no; then + AC_MSG_RESULT(yes) + AC_DEFINE(PROTOTYPES) + U= ANSI2KNR= +else + AC_MSG_RESULT(no) + U=_ ANSI2KNR=./ansi2knr + # Ensure some checks needed by ansi2knr itself. + AC_HEADER_STDC + AC_CHECK_HEADERS(string.h) +fi +AC_SUBST(U)dnl +AC_SUBST(ANSI2KNR)dnl +]) + + +# serial 1 + +# @defmac AC_PROG_CC_STDC +# @maindex PROG_CC_STDC +# @ovindex CC +# If the C compiler in not in ANSI C mode by default, try to add an option +# to output variable @code{CC} to make it so. This macro tries various +# options that select ANSI C on some system or another. It considers the +# compiler to be in ANSI C mode if it handles function prototypes correctly. +# +# If you use this macro, you should check after calling it whether the C +# compiler has been set to accept ANSI C; if not, the shell variable +# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source +# code in ANSI C, you can make an un-ANSIfied copy of it by using the +# program @code{ansi2knr}, which comes with Ghostscript. +# @end defmac + +AC_DEFUN(AM_PROG_CC_STDC, +[AC_REQUIRE([AC_PROG_CC]) +AC_BEFORE([$0], [AC_C_INLINE]) +AC_BEFORE([$0], [AC_C_CONST]) +dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require +dnl a magic option to avoid problems with ANSI preprocessor commands +dnl like #elif. +dnl FIXME: can't do this because then AC_AIX won't work due to a +dnl circular dependency. +dnl AC_BEFORE([$0], [AC_PROG_CPP]) +AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) +AC_CACHE_VAL(am_cv_prog_cc_stdc, +[am_cv_prog_cc_stdc=no +ac_save_CC="$CC" +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + AC_TRY_COMPILE( +[#include <stdarg.h> +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +], [ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +], +[am_cv_prog_cc_stdc="$ac_arg"; break]) +done +CC="$ac_save_CC" +]) +if test -z "$am_cv_prog_cc_stdc"; then + AC_MSG_RESULT([none needed]) +else + AC_MSG_RESULT($am_cv_prog_cc_stdc) +fi +case "x$am_cv_prog_cc_stdc" in + x|xno) ;; + *) CC="$CC $am_cv_prog_cc_stdc" ;; +esac +]) + diff --git a/popt/config.h.in b/popt/config.h.in new file mode 100644 index 000000000..2641ff242 --- /dev/null +++ b/popt/config.h.in @@ -0,0 +1,10 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define if you have the strerror function. */ +#undef HAVE_STRERROR + +/* Define if you have the <alloca.h> header file. */ +#undef HAVE_ALLOCA_H + +/* Define if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H diff --git a/popt/configure.in b/popt/configure.in index d5394155b..d0d6ad8bf 100755 --- a/popt/configure.in +++ b/popt/configure.in @@ -1,7 +1,11 @@ AC_INIT(popt.h) +AM_INIT_AUTOMAKE(popt, 1.1.1) +AM_CONFIG_HEADER(config.h) AC_PROG_CC AC_GCC_TRADITIONAL +AM_C_PROTOTYPES + AC_PROG_RANLIB AC_PROG_INSTALL @@ -47,6 +51,7 @@ if test -d /usr/ucblib ; then else AC_MSG_RESULT(no) fi + AC_CHECK_FUNCS(strerror) AC_CHECK_FUNC(setreuid, [], [ AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi]) diff --git a/popt/stamp-h b/popt/stamp-h new file mode 100644 index 000000000..9788f7023 --- /dev/null +++ b/popt/stamp-h @@ -0,0 +1 @@ +timestamp diff --git a/popt/stamp-h.in b/popt/stamp-h.in new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/popt/stamp-h.in diff --git a/scripts/Makefile.am b/scripts/Makefile.am new file mode 100644 index 000000000..212ec8cca --- /dev/null +++ b/scripts/Makefile.am @@ -0,0 +1,11 @@ +# Makefile for rpm scripts. + +AUTOMAKE_OPTIONS = 1.2 foreign + +installprefix = $(DESTDIR) + +all: + +configdir = ${prefix}/lib/rpm +config_SCRIPTS = find-lang.sh freshen.sh + diff --git a/scripts/Makefile.in b/scripts/Makefile.in index 2bebf30b6..8f3e3b4cf 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -1,16 +1,245 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Makefile for rpm scripts. + + +SHELL = /bin/sh + srcdir = @srcdir@ -VPATH = @srcdir@ top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. -INSTALL= @INSTALL@ -INSTALL_PROGRAM= @INSTALL_PROGRAM@ -INSTALL_DATA= @INSTALL_DATA@ +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ -SCRIPTS= freshen.sh find-lang.sh +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ -include ../Makefile.inc +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AWK = @AWK@ +BZIP2BIN = @BZIP2BIN@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +FIXPERMS = @FIXPERMS@ +GENCAT = @GENCAT@ +GETTEXTSTUB = @GETTEXTSTUB@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +GZIPBIN = @GZIPBIN@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INCPATH = @INCPATH@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEF = @INTLDEF@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LDFLAGS_STATIC = @LDFLAGS_STATIC@ +LIBDL = @LIBDL@ +LIBINTL = @LIBINTL@ +LIBMISC = @LIBMISC@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MISCDIR = @MISCDIR@ +MISCPATH = @MISCPATH@ +MKDIR = @MKDIR@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PO = @PO@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +ROOT_GROUP = @ROOT_GROUP@ +RPM = @RPM@ +RPMCONFIGDIR = @RPMCONFIGDIR@ +TARGET = @TARGET@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +l = @l@ +tmpdir = @tmpdir@ +topdir = @topdir@ +topsrcdir = @topsrcdir@ +varprefix = @varprefix@ -install: - for n in $(SCRIPTS); do \ - $(INSTALL_DATA) -m 755 $$n $(installprefix)/$(RPMCONFIGDIR); \ +AUTOMAKE_OPTIONS = 1.2 foreign + +installprefix = $(DESTDIR) + +configdir = ${prefix}/lib/rpm +config_SCRIPTS = find-lang.sh freshen.sh +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +SCRIPTS = $(config_SCRIPTS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +all: Makefile $(SCRIPTS) + +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign scripts/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +install-configSCRIPTS: $(config_SCRIPTS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(configdir) + @list='$(config_SCRIPTS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $$p $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`; \ + else if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; fi; \ done + +uninstall-configSCRIPTS: + @$(NORMAL_UNINSTALL) + list='$(config_SCRIPTS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(configdir)/`echo $$p|sed '$(transform)'`; \ + done +tags: TAGS +TAGS: + + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = scripts + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign scripts/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: + @$(NORMAL_INSTALL) + +install-data: install-configSCRIPTS + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: uninstall-configSCRIPTS + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + $(mkinstalldirs) $(DATADIR)$(configdir) + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-generic + +clean: clean-generic mostlyclean + +distclean: distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: uninstall-configSCRIPTS install-configSCRIPTS tags distdir info \ +dvi installcheck install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/stamp-h b/stamp-h new file mode 100644 index 000000000..9788f7023 --- /dev/null +++ b/stamp-h @@ -0,0 +1 @@ +timestamp diff --git a/stamp-h.in b/stamp-h.in new file mode 100644 index 000000000..9788f7023 --- /dev/null +++ b/stamp-h.in @@ -0,0 +1 @@ +timestamp diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 000000000..aed05fff5 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,5 @@ +## Process this file with automake to produce Makefile.in. + +EXTRA_DIST = +SUBDIRS = if-test + diff --git a/tools/.cvsignore b/tools/.cvsignore index 3dc277e04..ba1f40dae 100644 --- a/tools/.cvsignore +++ b/tools/.cvsignore @@ -1,5 +1,6 @@ -Makefile +.deps .depend +Makefile rpmlead dump rpmheader diff --git a/tools/Makefile.am b/tools/Makefile.am new file mode 100644 index 000000000..a19da866f --- /dev/null +++ b/tools/Makefile.am @@ -0,0 +1,15 @@ +# Makefile for rpm tools. + +AUTOMAKE_OPTIONS = 1.3 foreign + +INCLUDES = -I../build -I../lib -I../intl -I../misc @INCPATH@ + +LDFLAGS = -L../popt -L../build -L../lib -L../misc +LDADD = -lrpm + +noinst_PROGRAMS = rpmlead rpmheader rpmarchive rpmsignature dump dumpdb + +$(PROGRAMS): ../lib/librpm.a + +rpmgettext: rpmgettext.o ../build/librpmbuild.a ../popt/libpopt.a ../lib/librpm.a + diff --git a/tools/Makefile.in b/tools/Makefile.in index 9982a2c82..778c3cf2d 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -1,34 +1,377 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Makefile for rpm tools. + + +SHELL = /bin/sh + srcdir = @srcdir@ -VPATH = @srcdir@ top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AWK = @AWK@ +BZIP2BIN = @BZIP2BIN@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +FIXPERMS = @FIXPERMS@ +GENCAT = @GENCAT@ +GETTEXTSTUB = @GETTEXTSTUB@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +GZIPBIN = @GZIPBIN@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INCPATH = @INCPATH@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEF = @INTLDEF@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +LDFLAGS_STATIC = @LDFLAGS_STATIC@ +LIBDL = @LIBDL@ +LIBINTL = @LIBINTL@ +LIBMISC = @LIBMISC@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MISCDIR = @MISCDIR@ +MISCPATH = @MISCPATH@ +MKDIR = @MKDIR@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PO = @PO@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +ROOT_GROUP = @ROOT_GROUP@ +RPM = @RPM@ +RPMCONFIGDIR = @RPMCONFIGDIR@ +TARGET = @TARGET@ +U = @U@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +l = @l@ +tmpdir = @tmpdir@ +topdir = @topdir@ +topsrcdir = @topsrcdir@ +varprefix = @varprefix@ + +AUTOMAKE_OPTIONS = 1.3 foreign + +INCLUDES = -I../build -I../lib -I../intl -I../misc @INCPATH@ + +LDFLAGS = -L../popt -L../build -L../lib -L../misc +LDADD = -lrpm + +noinst_PROGRAMS = rpmlead rpmheader rpmarchive rpmsignature dump dumpdb +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +rpmlead_SOURCES = rpmlead.c +rpmlead_OBJECTS = rpmlead.o +rpmlead_LDADD = $(LDADD) +rpmlead_DEPENDENCIES = +rpmlead_LDFLAGS = +rpmheader_SOURCES = rpmheader.c +rpmheader_OBJECTS = rpmheader.o +rpmheader_LDADD = $(LDADD) +rpmheader_DEPENDENCIES = +rpmheader_LDFLAGS = +rpmarchive_SOURCES = rpmarchive.c +rpmarchive_OBJECTS = rpmarchive.o +rpmarchive_LDADD = $(LDADD) +rpmarchive_DEPENDENCIES = +rpmarchive_LDFLAGS = +rpmsignature_SOURCES = rpmsignature.c +rpmsignature_OBJECTS = rpmsignature.o +rpmsignature_LDADD = $(LDADD) +rpmsignature_DEPENDENCIES = +rpmsignature_LDFLAGS = +dump_SOURCES = dump.c +dump_OBJECTS = dump.o +dump_LDADD = $(LDADD) +dump_DEPENDENCIES = +dump_LDFLAGS = +dumpdb_SOURCES = dumpdb.c +dumpdb_OBJECTS = dumpdb.o +dumpdb_LDADD = $(LDADD) +dumpdb_DEPENDENCIES = +dumpdb_LDFLAGS = +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +DEP_FILES = .deps/dump.P .deps/dumpdb.P .deps/rpmarchive.P \ +.deps/rpmheader.P .deps/rpmlead.P .deps/rpmsignature.P +SOURCES = rpmlead.c rpmheader.c rpmarchive.c rpmsignature.c dump.c dumpdb.c +OBJECTS = rpmlead.o rpmheader.o rpmarchive.o rpmsignature.o dump.o dumpdb.o + +all: Makefile $(PROGRAMS) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstPROGRAMS: + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) + +distclean-noinstPROGRAMS: + +maintainer-clean-noinstPROGRAMS: + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +rpmlead: $(rpmlead_OBJECTS) $(rpmlead_DEPENDENCIES) + @rm -f rpmlead + $(LINK) $(rpmlead_LDFLAGS) $(rpmlead_OBJECTS) $(rpmlead_LDADD) $(LIBS) + +rpmheader: $(rpmheader_OBJECTS) $(rpmheader_DEPENDENCIES) + @rm -f rpmheader + $(LINK) $(rpmheader_LDFLAGS) $(rpmheader_OBJECTS) $(rpmheader_LDADD) $(LIBS) + +rpmarchive: $(rpmarchive_OBJECTS) $(rpmarchive_DEPENDENCIES) + @rm -f rpmarchive + $(LINK) $(rpmarchive_LDFLAGS) $(rpmarchive_OBJECTS) $(rpmarchive_LDADD) $(LIBS) + +rpmsignature: $(rpmsignature_OBJECTS) $(rpmsignature_DEPENDENCIES) + @rm -f rpmsignature + $(LINK) $(rpmsignature_LDFLAGS) $(rpmsignature_OBJECTS) $(rpmsignature_LDADD) $(LIBS) + +dump: $(dump_OBJECTS) $(dump_DEPENDENCIES) + @rm -f dump + $(LINK) $(dump_LDFLAGS) $(dump_OBJECTS) $(dump_LDADD) $(LIBS) + +dumpdb: $(dumpdb_OBJECTS) $(dumpdb_DEPENDENCIES) + @rm -f dumpdb + $(LINK) $(dumpdb_LDFLAGS) $(dumpdb_OBJECTS) $(dumpdb_LDADD) $(LIBS) + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = tools + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign tools/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + +maintainer-clean-depend: + -rm -rf .deps + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $< + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $< + @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \ + < .deps/$(*F).p > .deps/$(*F).P + @-rm -f .deps/$(*F).p +info: +dvi: +check: all + $(MAKE) +installcheck: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -include ../Makefile.inc +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -PROGS = rpmlead rpmheader rpmarchive rpmsignature dump dumpdb -LOADLIBES = @LIBS@ @LIBMISC@ @LIBINTL@ +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -TARGET=everything +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstPROGRAMS mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic -all: $(TARGET) +clean: clean-noinstPROGRAMS clean-compile clean-tags clean-depend \ + clean-generic mostlyclean -everything: $(PROGS) +distclean: distclean-noinstPROGRAMS distclean-compile distclean-tags \ + distclean-depend distclean-generic clean + -rm -f config.status -clean: - rm -f *.a *.o core *~ $(PROGS) +maintainer-clean: maintainer-clean-noinstPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -distclean: clean - rm -f Makefile +.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \ +clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info dvi \ +installcheck install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean -depend: - topdir_path=`( cd $(top_srcdir) && pwd )` ; \ - /bin/rm -f .depend ; \ - $(CPP) $(CFLAGS) -MM $(srcdir)/*.c | \ - sed s+$$topdir_path+$(top_srcdir)+g > .depend -$(PROGS): ../lib/librpm.a +$(PROGRAMS): ../lib/librpm.a rpmgettext: rpmgettext.o ../build/librpmbuild.a ../popt/libpopt.a ../lib/librpm.a -ifeq (.depend,$(wildcard .depend)) -include .depend -endif +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: |