summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES1
-rw-r--r--INSTALL162
-rw-r--r--Makefile.am7
-rw-r--r--aclocal.m44
-rw-r--r--configure.in4
-rw-r--r--groups59
-rw-r--r--lib/falloc.c3
-rw-r--r--macros.in7
-rw-r--r--po/rpm.pot6
-rw-r--r--rpm.spec2
-rw-r--r--rpmrc.in1
-rw-r--r--scripts/Makefile.am4
-rw-r--r--scripts/Makefile.in13
-rwxr-xr-xscripts/getpo.sh40
-rw-r--r--tests/macros.in7
15 files changed, 235 insertions, 85 deletions
diff --git a/CHANGES b/CHANGES
index abffc7b83..6270b22f0 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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);
}
diff --git a/macros.in b/macros.in
index 3964fc402..f0cdfb2a7 100644
--- a/macros.in
+++ b/macros.in
@@ -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
diff --git a/rpm.spec b/rpm.spec
index 045b4c803..c82ea8794 100644
--- a/rpm.spec
+++ b/rpm.spec
@@ -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
diff --git a/rpmrc.in b/rpmrc.in
index 4c8294ac2..0238e0784 100644
--- a/rpmrc.in
+++ b/rpmrc.in
@@ -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@