- Make noarch sub-packages actually work

- Fix defaultdocdir logic in installplatform to avoid hardwiring mandir
This commit is contained in:
Panu Matilainen 2008-10-25 05:09:57 +00:00
parent e0e4c4eb23
commit b94c245215
3 changed files with 78 additions and 2 deletions

View File

@ -0,0 +1,45 @@
commit 927f384a9bc058eb6f954e93cc515cc1293fd2a3
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Fri Oct 17 08:11:10 2008 +0300
Kick out the dumb defaultdocdir logic from installplatform
- defaultdocdir is simply %{_datadir}/doc
diff --git a/installplatform b/installplatform
index 8861df0..266d877 100755
--- a/installplatform
+++ b/installplatform
@@ -8,12 +8,6 @@ RPMRC="${1:-rpmrc}"
MACROS="${2:-macros}"
PLATFORM="${3:-platform}"
-if grep /share/ $PLATFORM > /dev/null 2>&1 ; then
- DEFAULTDOCDIR='%{_usr}/share/doc'
-else
- DEFAULTDOCDIR='%{_usr}/doc'
-fi
-
TEMPRC="/tmp/rpmrc.$$"
cat << E_O_F > $TEMPRC
include: $RPMRC
@@ -155,7 +149,6 @@ for SUBST in $SUBSTS ; do
-e "s,@RPMRC_GNU@,$RPMRC_GNU," \
-e "s,@LIB@,$LIB," \
-e "s,@ARCH_INSTALL_POST@,$ARCH_INSTALL_POST," \
- -e "s,@DEFAULTDOCDIR@,$DEFAULTDOCDIR," \
-e '/\${\w*:-/!s,\${,%{_,' \
-e "s,@ISANAME@,$ISANAME," \
-e "s,@ISABITS@,$ISABITS," \
diff --git a/platform.in b/platform.in
index 4b496a0..9768a8a 100644
--- a/platform.in
+++ b/platform.in
@@ -37,7 +37,7 @@
# Deprecated misspelling, present for backwards compatibility.
%_initrddir %{_initddir}
-%_defaultdocdir @DEFAULTDOCDIR@
+%_defaultdocdir %{_datadir}/doc
%_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\
&& RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\

View File

@ -0,0 +1,24 @@
commit a4825e488d44e01803c377ebc4fc054adcf42b3a
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Thu Oct 23 07:47:25 2008 +0300
Make noarch subpackages actually work
- noarch subpackages get their arch tag from parsePreamble() already,
don't stomp over it later in parseSpec()
diff --git a/build/parseSpec.c b/build/parseSpec.c
index 098bd2b..11e0622 100644
--- a/build/parseSpec.c
+++ b/build/parseSpec.c
@@ -592,7 +592,10 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootDir,
}
headerPutString(pkg->header, RPMTAG_OS, os);
- headerPutString(pkg->header, RPMTAG_ARCH, arch);
+ /* noarch subpackages already have arch set here, leave it alone */
+ if (!headerIsEntry(pkg->header, RPMTAG_ARCH)) {
+ headerPutString(pkg->header, RPMTAG_ARCH, arch);
+ }
headerPutString(pkg->header, RPMTAG_PLATFORM, platform);
pkg->ds = rpmdsThis(pkg->header, RPMTAG_REQUIRENAME, RPMSENSE_EQUAL);

View File

@ -18,7 +18,7 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
Release: 0.%{snapver}.4
Release: 0.%{snapver}.5
Group: System Environment/Base
Url: http://www.rpm.org/
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
@ -35,6 +35,8 @@ Patch100: rpm-4.6.x-no-pkgconfig-reqs.patch
# Patches already in upstream
Patch200: rpm-4.6.0-rc1-permit-tab.patch
Patch201: rpm-4.6.0-rc1-skip-equal-nevr.patch
Patch202: rpm-4.6.0-rc1-noarch-subpkg.patch
Patch203: rpm-4.6.0-rc1-defaultdocdir.patch
# These are not yet upstream
Patch300: rpm-4.5.90-posttrans.patch
@ -170,6 +172,8 @@ that will manipulate RPM packages and databases.
%patch200 -p1 -b .permit-tab
%patch201 -p1 -b .skip-equal-nevr
%patch202 -p1 -b .noarch-subpkg
%patch203 -p1 -b .defaultdocdir
# needs a bit of upstream love first...
#%patch300 -p1 -b .posttrans
@ -193,7 +197,6 @@ export CPPFLAGS CFLAGS LDFLAGS
--prefix=%{_usr} \
--sysconfdir=%{_sysconfdir} \
--localstatedir=%{_var} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
%{!?with_int_bdb: --with-external-db} \
%{?with_sqlite: --enable-sqlite3} \
@ -361,6 +364,10 @@ exit 0
%doc doc/librpm/html/*
%changelog
* Sat Oct 25 2008 Panu Matilainen <pmatilai@redhat.com>
- Make noarch sub-packages actually work
- Fix defaultdocdir logic in installplatform to avoid hardwiring mandir
* Fri Oct 24 2008 Jindrich Novy <jnovy@redhat.com>
- update compat-db dependencies (#459710)