diff options
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | INSTALL | 162 | ||||
-rw-r--r-- | Makefile.am | 7 | ||||
-rw-r--r-- | aclocal.m4 | 4 | ||||
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | groups | 59 | ||||
-rw-r--r-- | lib/falloc.c | 3 | ||||
-rw-r--r-- | macros.in | 7 | ||||
-rw-r--r-- | po/rpm.pot | 6 | ||||
-rw-r--r-- | rpm.spec | 2 | ||||
-rw-r--r-- | rpmrc.in | 1 | ||||
-rw-r--r-- | scripts/Makefile.am | 4 | ||||
-rw-r--r-- | scripts/Makefile.in | 13 | ||||
-rwxr-xr-x | scripts/getpo.sh | 40 | ||||
-rw-r--r-- | tests/macros.in | 7 |
15 files changed, 235 insertions, 85 deletions
@@ -1,4 +1,5 @@ 2.91 -> 2.92 + - change support@redhat.com to rpm-list@redhat.com. - fix: with --target=i686, pass macro %_arch=i386. - fix: rpm --target=arch ... resurrected. - fix: rpm -q --specfile --specedit now works even with BuildArch:. diff --git a/INSTALL b/INSTALL new file mode 100644 index 000000000..6a705172b --- /dev/null +++ b/INSTALL @@ -0,0 +1,162 @@ + + +To build RPM you will need several other packages: +-------------------------------------------------- + + +The zlib library for compression support available from + http://www.cdrom.com/pub/infozip/zlib/ + +The berkeley db library db.1.85, or db.2* (currently the latest is +db-2.6.4) with compatibility mode for db.1.85 defined. The developers +of RPM did not upgrade RPM to use the current version of libdb because +they are uncomfortable with changes in the softwares license. Now db2 +has a special exception license within glibc-2.1 so whatever license +discomfort there is/was is quickly becoming moot. The remaining issue +is that the db_185 compatibility does not work in glibc-2.1. This is +available from + http://www.sleepycat.com/download.html. + +The instructions for building db-2.6.4: + + cd build_unix + ../dist/configure --enable-compat185 + make + make install + + +It may be desired to install bzip2 and gzip so that RPM can use these +formats. Gzip, is necessary to build packages that contain compressed +tar balls, these are quite common on the Internet. +These are availible from + http://www.digistar.com/bzip2/index.html + http://www.gnu.org/ + +If National Language Support (NLS) is desired +you will need gnu gettext available from + http://www.gnu.org/ + +If you need support of RPM 1.x databases, which are in an old RPM +format. You will need the GNU db library gdbm to build the rpmconvert +binary. This is availible from : + http://www.gnu.org/ + +For best results you should compile with GCC and GNU Make. Users have +reported difficulty with other build tools. available from + http://www.gnu.org/ + + +To compile RPM: +-------------- + +If your libraries are in a standard place you will need to change +the configure environment. + +Here is an example: + LIBS='-L/opt/libz/ -L/opt/BerkeleyDB/lib/' \ + CPPFLAGS='-I/opt/libz/ -I/opt/BerkeleyDB/include' \ + ./configure + +now build the system with: + + make + +if you wish to make a tarfile of the binaries so that you may easily +install on other machines (ed note: what about putting gzip and bzip2 +in the tar, modifying the /etc/rpmrc?): + + make tar + +when installing do not forget to init the database (rpm --initdb) + + + +Non Linux Configuration Issues: +------------------------------ + + +OS dependencies: +---------------- + +Under Red Hat Linux all libraries (in fact all files distributed with +the OS) are under RPM control and this section is not an issue. + +RPM will need to be informed of all the dependencies which were +satisfied before RPM was installed. Typically this only refers to +libraries that are installed by the OS, but may include other +libraries and packages which are availible at the time RPM is +installed and will not under RPM control. Another common example of +libraries which may need dependency provisions are precompiled +libraries which are installed by the OS package manager during system +build time. The list of dependencies you will wish to load into RPM +will depend on exactly how you bootstrap RPM onto your system and what +parts of the sytem you put into packages as well as on the specific OS +you are using. + +You should satisfy dependencies for all shells and interpreters. A +reasonable list of OS installed shells can be generated with: + + cat /etc/shells + +You should satisfy dependencies for all system libraries. For each of +the system library directories you should run + + echo * | find-provides.sh + +(On Linux a list of system library directories can be found in +/etc/ld.so.conf, other OS require an experienced system administrator +to know where the libraries are.) + + +You may add as many "provides: " lines as you like to /etc/rpmrc/ but +they can not be continued. Each line is limited to 8K bytes. Here is +a example (truncated) of the provides lines used by one user of +Digital Unix. + +provides: /bin/sh /usr/bin/ksh /usr/bin/csh +provides: libc.so.osf.1 libm.so.osf.1 libcurses.so.xpg4 libdb.so.osf.1 +provides: libX11.so libXaw.so.6.0 libXext.so libXm.so.motif1.2 libXmu.so +provides: libdnet_stub.so.osf.1 libsecurity.so.osf.1 libpthread.so.osf.1 +provides: libexc.so.osf.1 libmach.so.osf.1 libdps.so libdpstk.so + + + +rpmfilename: +----------- + +If you plan on packaging for more then one OS you may want to edit +/etc/rpmrc and change the line which has rpmfilename to something +which include both the %{OS} and %{ARCH}. This will cause the name of +the generated rpm files to the operating system name as well as the +architecture which the rpm runs under. The line to change looks like: + +> rpmfilename: %{ARCH}/%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm + +you may wish to include both the %{OS} and %{ARCH} in the final base +name, so that it's easier to distinguish between what package is +appropriate for a particular arch-os-version combo. We suggest + +> rpmfilename: %{ARCH}/%{NAME}-%{VERSION}-%{RELEASE}.%{OS}-%{ARCH}.rpm + +There is no %{OS_VERSION} tag, so if you need to also distinguish between +RPMs for certain versions of the OS, you can hard-code the version in +the rpmrc on the build machine, so that .rpm files are generated with +the version as part of the filename. + +For example when one user builds RPMs for Digital Unix 4.0b and 4.0d, +optimization is important and he will build one set of RPMs for the +EV4 processor and another set for the EV56 processor. He specifies +both the OS version (if it's important, as it is for a few packages) +and the processor version by default by setting a special rpmfilename: +on the particular build machine. + +The "rpmfilename: "tag on one machine (Digital Unix 4.0d, EV56 PWS 433) +looks like: + +rpmfilename: %{OS}/4.0d/%{ARCH}/%{NAME}-%{VERSION}-%{RELEASE}.%{OS}-%{ARCH}-ev56.rpm + +For package `foo-1.1', at build time that would translate into: + + osf1/4.0d/alpha/foo-1.1-1.osf1-alphaev56.rpm + + diff --git a/Makefile.am b/Makefile.am index d92f2250a..3a0893bcd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,9 +2,9 @@ AUTOMAKE_OPTIONS = 1.4 foreign -EXTRA_DIST = CHANGES CREDITS README.amiga RPM-PGP-KEY \ +EXTRA_DIST = CHANGES CREDITS README.amiga INSTALL RPM-PGP-KEY \ autodeps/none autodeps/*.prov autodeps/*.req autogen.sh \ - docs/[a-z]* gendiff groups $(man_MANS) po/*.in po/*.po po/rpm.pot \ + docs/[a-z]* gendiff $(man_MANS) po/*.in po/*.po po/rpm.pot \ rpm.magic rpmpopt rpm.spec rpm.8ru rpm2cpio.8ru SUBDIRS = popt build lib po intl misc tools scripts tests . @@ -59,12 +59,13 @@ install-data-local: @rm -f $(DESTDIR)/$(libdir)/rpmpopt @ln -s rpm/rpmpopt $(DESTDIR)/$(libdir)/rpmpopt @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/BUILD - @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/noarch @case "@build_cpu@" in \ *86) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/i386 ;;\ alpha*) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/alpha ;;\ + sparc*) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/sparc ;;\ esac @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/@build_cpu@ + @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/noarch @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SOURCES @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SPECS @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SRPMS diff --git a/aclocal.m4 b/aclocal.m4 index 064de272c..704371a16 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,4 +1,4 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4a +dnl aclocal.m4 generated automatically by aclocal 1.4 dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation @@ -21,8 +21,6 @@ dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN(AM_INIT_AUTOMAKE, [AC_REQUIRE([AC_PROG_INSTALL]) -dnl We require 2.13 because we rely on SHELL being computed by configure. -AC_PREREQ([2.13]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] diff --git a/configure.in b/configure.in index 931891831..082c465f9 100644 --- a/configure.in +++ b/configure.in @@ -580,14 +580,14 @@ fi dnl Determine the canonical arch-vendor-os for the build machine case "${build_cpu}" in -i[x3456789]86) RPMCANONARCH=i386 ;; +i\[x3456789\]86) RPMCANONARCH=i386 ;; alpha*) RPMCANONARCH=alpha ;; sparc*) RPMCANONARCH=sparc ;; *) RPMCANONARCH=unknown ;; esac RPMCANONVENDOR="$build_vendor" case "${build_vendor}" in -unknown) test -f /etc/redhat-release && RPMCANONVENDOR=redhat ;; +unknown|pc) test -f /etc/redhat-release && RPMCANONVENDOR=redhat ;; esac RPMCANONOS="$build_os_noversion" AC_SUBST(RPMCANONARCH) diff --git a/groups b/groups deleted file mode 100644 index 48d4f68ee..000000000 --- a/groups +++ /dev/null @@ -1,59 +0,0 @@ -Applications - Communications - Editors - Emacs - Emulators - Engineering - Spreadsheets - Databases - Graphics - Networking - Mail - Math - News - Publishing - TeX - Sound -Base - Kernel -Utilities - Archiving - Console - File - Printing - System - Terminal - Text -Daemons -Documentation -X11 - XFree86 - Servers - Applications - Graphics - Networking - Games - Strategy - Video - Amusements - Utilities - Libraries - Window Managers -Libraries -Networking - Admin - Daemons - News - Utilities -Development - Debuggers - Libraries - Libc - Languages - Fortran - Tcl - Building - Version Control - Tools -Shells -Games diff --git a/lib/falloc.c b/lib/falloc.c index b41aa6f8d..0aef17d1f 100644 --- a/lib/falloc.c +++ b/lib/falloc.c @@ -144,9 +144,10 @@ unsigned int faAlloc(faFile fa, unsigned int size) { /* returns 0 on failure */ if (faLseek(fa, nextFreeBlock, SEEK_SET) < 0) return 0; if (faRead(fa, &header, sizeof(header)) != sizeof(header)) return 0; +/* XXX W2DO? exit(1) forces the user to discover rpm --rebuilddb */ if (!header.isFree) { fprintf(stderr, _("free list corrupt (%u)- contact " - "support@redhat.com\n"), nextFreeBlock); + "rpm-list@redhat.com\n"), nextFreeBlock); exit(1); } @@ -1,3 +1,4 @@ +# $Id: macros.in,v 1.15 1999/03/14 00:34:58 jbj Exp $ #============================================================================== # Macro naming conventions (preliminary): # @@ -52,8 +53,10 @@ %_topdir %{_usrsrc}/redhat #============================================================================== -# ---- rpm per-platform macros. -# Per-platform macros. +# ---- per-platform macros. +# Macros that are specific to an individual platform. The values here +# will be used if the per-platform macro file does not exist.. +# %_arch @RPMCANONARCH@ %_vendor @RPMCANONVENDOR@ %_os @RPMCANONOS@ diff --git a/po/rpm.pot b/po/rpm.pot index 309eb22a2..672158706 100644 --- a/po/rpm.pot +++ b/po/rpm.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-03-12 13:03-0500\n" +"POT-Creation-Date: 1999-03-13 18:59-0500\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" @@ -2273,9 +2273,9 @@ msgstr "" msgid "loop in prerequisite chain: %s" msgstr "" -#: ../lib/falloc.c:148 +#: ../lib/falloc.c:149 #, c-format -msgid "free list corrupt (%u)- contact support@redhat.com\n" +msgid "free list corrupt (%u)- contact rpm-list@redhat.com\n" msgstr "" #: ../lib/formats.c:97 ../lib/formats.c:114 ../lib/formats.c:134 @@ -2,7 +2,7 @@ Summary: The Red Hat package management system. Name: rpm %define version 2.92 Version: %{version} -Release: 7 +Release: 8 Group: System Environment/Base Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-2.5.x/rpm-%{version}.tar.gz Copyright: GPL @@ -1,3 +1,4 @@ +# $Id: rpmrc.in,v 2.3 1999/03/14 00:35:00 jbj Exp $ ############################################################# # Default values, often overridden in /etc/rpmrc # diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 9ed2512f4..4298b4c57 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -2,12 +2,12 @@ AUTOMAKE_OPTIONS = 1.4 foreign -EXTRA_DIST = find-lang.sh freshen.sh +EXTRA_DIST = find-lang.sh freshen.sh getpo.sh installprefix = $(DESTDIR) all: configdir = ${prefix}/lib/rpm -config_SCRIPTS = find-lang.sh freshen.sh +config_SCRIPTS = find-lang.sh freshen.sh getpo.sh diff --git a/scripts/Makefile.in b/scripts/Makefile.in index 7c3a3fa97..accef6703 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated automatically by automake 1.4a from Makefile.am +# Makefile.in generated automatically by automake 1.4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation @@ -48,10 +48,9 @@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_FLAG = transform = @program_transform_name@ NORMAL_INSTALL = : @@ -130,12 +129,12 @@ varprefix = @varprefix@ AUTOMAKE_OPTIONS = 1.4 foreign -EXTRA_DIST = find-lang.sh freshen.sh +EXTRA_DIST = find-lang.sh freshen.sh getpo.sh installprefix = $(DESTDIR) configdir = ${prefix}/lib/rpm -config_SCRIPTS = find-lang.sh freshen.sh +config_SCRIPTS = find-lang.sh freshen.sh getpo.sh mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = @@ -193,7 +192,7 @@ distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ @@ -222,7 +221,7 @@ uninstall: uninstall-am all-am: Makefile $(SCRIPTS) all-redirect: all-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(configdir) diff --git a/scripts/getpo.sh b/scripts/getpo.sh new file mode 100755 index 000000000..5e0b23b22 --- /dev/null +++ b/scripts/getpo.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# + +if [ -z "$1" ] ; then + echo "Usage:" + echo " $0 <rpm>..." + exit 0 +fi + +while [ -n "$1" ] ; do + + [ -f $1 ] || { + echo "$1 could not be found (or is not a file)" + shift + continue + } + + desc=$(rpm -qp $1 --qf "%{DESCRIPTION}" | \ + sed -e 's/\"/\\\"/g' -e 's/^/\"/g' -e 's/$/\\\\n\"/g') + + rpm -qp $1 --qf \ +"# ======================================================== +#: %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm:1005 %{SOURCERPM}:1005 +msgid \"%{NAME}(Description)\" +msgstr \"\" +$desc + +#: %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm:1016 %{SOURCERPM}:1016 +msgid \"%{NAME}(Group)\" +msgstr \"%{GROUP}\" + +#: %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm:1004 %{SOURCERPM}:1004 +msgid \"%{NAME}(Summary)\" +msgstr \"%{SUMMARY}\" + +" + # go to the next file + shift +done + diff --git a/tests/macros.in b/tests/macros.in index d57250bd5..d5f3685ff 100644 --- a/tests/macros.in +++ b/tests/macros.in @@ -1,3 +1,4 @@ +# $Id: macros.in,v 1.11 1999/03/14 00:35:06 jbj Exp $ #============================================================================== # Macro naming conventions (preliminary): # @@ -52,8 +53,10 @@ %_topdir %{_usrsrc}/redhat #============================================================================== -# ---- rpm per-platform macros. -# Per-platform macros. +# ---- per-platform macros. +# Macros that are specific to an individual platform. The values here +# will be used if the per-platform macro file does not exist.. +# %_arch @RPMCANONARCH@ %_vendor @RPMCANONVENDOR@ %_os @RPMCANONOS@ |