- update to 4.11 post-alpha snapshot
- drop/adjust patches as necessary
This commit is contained in:
parent
25a06f20fe
commit
93c12c40a9
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
|||||||
/rpm-4.10.0-beta1.tar.bz2
|
/rpm-4.10.0-beta1.tar.bz2
|
||||||
/rpm-4.10.0.tar.bz2
|
/rpm-4.10.0.tar.bz2
|
||||||
/rpm-4.10.1.tar.bz2
|
/rpm-4.10.1.tar.bz2
|
||||||
|
/rpm-4.10.90.git11989.tar.bz2
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
commit 90dd51743200055f30d9e0e0337173118b4ae756
|
|
||||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
|
||||||
Date: Thu Oct 11 17:57:10 2012 +0300
|
|
||||||
|
|
||||||
Fix noarch __isa_* macro filter in installplatform (RhBug:865436)
|
|
||||||
|
|
||||||
- The filter wasn't doing what it was supposed to due to extra single
|
|
||||||
quotes getting inserted, causing "rpmbuild --target noarch foo.spec"
|
|
||||||
to whine about empty macro bodies. This is a regression introduced
|
|
||||||
in rpm 4.10, commit 07ec480c180e4005a629242b8f9f8ab640e3e950 to be
|
|
||||||
precise.
|
|
||||||
|
|
||||||
diff --git a/installplatform b/installplatform
|
|
||||||
index f7ae241..a68b3c0 100755
|
|
||||||
--- a/installplatform
|
|
||||||
+++ b/installplatform
|
|
||||||
@@ -104,7 +104,7 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
|
|
||||||
noarch)
|
|
||||||
CANONARCH=noarch
|
|
||||||
CANONCOLOR=0
|
|
||||||
- FILTER="grep -v -E '^(%optflag|%__isa)'"
|
|
||||||
+ FILTER="grep -v -E ^(%optflag|%__isa)"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
commit df4eed5debcdc9209e1f5e66d17230861a55a7fc
|
|
||||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
|
||||||
Date: Wed Oct 10 10:37:34 2012 +0300
|
|
||||||
|
|
||||||
Filter out skipped files on hardlink checking (RhBug:864622)
|
|
||||||
|
|
||||||
- Legitimately skipped files (links) must not cause install-errors.
|
|
||||||
This has always been broken, but the errors were completely ignored
|
|
||||||
on install prior to rpm 4.10.
|
|
||||||
- Backported from commit eeea54c76b130da3769ae10f7db2c2fcfb5c57be
|
|
||||||
|
|
||||||
diff --git a/lib/fsm.c b/lib/fsm.c
|
|
||||||
index e4ffcaf..4840708 100644
|
|
||||||
--- a/lib/fsm.c
|
|
||||||
+++ b/lib/fsm.c
|
|
||||||
@@ -1964,12 +1964,14 @@ static int fsmStage(FSM_t fsm, fileStage stage)
|
|
||||||
fsm->links = fsm->li->next;
|
|
||||||
fsm->li->next = NULL;
|
|
||||||
if (fsm->goal == FSM_PKGINSTALL && fsm->li->linksLeft) {
|
|
||||||
+ rpmfs fs = rpmteGetFileStates(fsmGetTe(fsm));
|
|
||||||
for (nlink_t i = 0 ; i < fsm->li->linksLeft; i++) {
|
|
||||||
- if (fsm->li->filex[i] < 0)
|
|
||||||
+ int ix = fsm->li->filex[i];
|
|
||||||
+ if (ix < 0 || XFA_SKIPPING(rpmfsGetAction(fs, ix)))
|
|
||||||
continue;
|
|
||||||
rc = CPIOERR_MISSING_HARDLINK;
|
|
||||||
if (fsm->failedFile && *fsm->failedFile == NULL) {
|
|
||||||
- fsm->ix = fsm->li->filex[i];
|
|
||||||
+ fsm->ix = ix;
|
|
||||||
if (!fsmMapPath(fsm)) {
|
|
||||||
/* Out-of-sync hardlinks handled as sub-state */
|
|
||||||
*fsm->failedFile = fsm->path;
|
|
125
rpm-4.10.90-rpmlib-filesystem-check.patch
Normal file
125
rpm-4.10.90-rpmlib-filesystem-check.patch
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
diff -up rpm-4.10.90.git11978/lib/depends.c.rpmlib-filesystem-check rpm-4.10.90.git11978/lib/depends.c
|
||||||
|
--- rpm-4.10.90.git11978/lib/depends.c.rpmlib-filesystem-check 2012-11-01 09:40:26.000000000 +0200
|
||||||
|
+++ rpm-4.10.90.git11978/lib/depends.c 2012-11-05 10:53:42.294733695 +0200
|
||||||
|
@@ -537,6 +537,109 @@ static int rpmdbProvides(rpmts ts, depCa
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * Temporary support for live-conversion of the filesystem hierarchy
|
||||||
|
+ * mailto: kay@redhat.com, harald@redhat.com
|
||||||
|
+ * https://fedoraproject.org/wiki/Features/UsrMove
|
||||||
|
+ *
|
||||||
|
+ * X-CheckUnifiedSystemdir:
|
||||||
|
+ * /bin, /sbin, /lib, /lib64 --> /usr
|
||||||
|
+ *
|
||||||
|
+ * X-CheckUnifiedBindir:
|
||||||
|
+ * /usr/sbin -> /usr/bin
|
||||||
|
+ *
|
||||||
|
+ * X-CheckMultiArchLibdir:
|
||||||
|
+ * /usr/lib64 /usr/lib/<platform tuple> (e.g. x86_64-linux-gnu)
|
||||||
|
+ *
|
||||||
|
+ * This code is not needed for new installations, it can be removed after
|
||||||
|
+ * updates from older systems are no longer supported: Fedora 19 / RHEL 8.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+static int CheckLink(const char *dir, const char *root)
|
||||||
|
+{
|
||||||
|
+ char *d = NULL;
|
||||||
|
+ struct stat sbuf;
|
||||||
|
+ int rc = 0;
|
||||||
|
+
|
||||||
|
+ if (!root)
|
||||||
|
+ root = "/";
|
||||||
|
+
|
||||||
|
+ rasprintf(&d, "%s%s", root, dir);
|
||||||
|
+ if (!d) {
|
||||||
|
+ rc = -1;
|
||||||
|
+ goto exit;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* directory or symlink does not exist, all is fine */
|
||||||
|
+ if (lstat(d, &sbuf) < 0) {
|
||||||
|
+ rc = 1;
|
||||||
|
+ goto exit;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* if it is a symlink, all is fine */
|
||||||
|
+ if (S_ISLNK(sbuf.st_mode))
|
||||||
|
+ rc = 1;
|
||||||
|
+
|
||||||
|
+exit:
|
||||||
|
+ free(d);
|
||||||
|
+ return rc;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int CheckFilesystemHierarchy(rpmds * dsp, const char *root)
|
||||||
|
+{
|
||||||
|
+ static const char *dirs[] = { "bin", "sbin", "lib", "lib64" };
|
||||||
|
+ int check;
|
||||||
|
+ int i;
|
||||||
|
+ rpmds ds;
|
||||||
|
+ rpmstrPool pool = rpmdsPool(*dsp);
|
||||||
|
+ int rc = 0;
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < sizeof(dirs) / sizeof(dirs[0]); i++) {
|
||||||
|
+ check = CheckLink(dirs[i], root);
|
||||||
|
+ if (check < 0) {
|
||||||
|
+ rc = -1;
|
||||||
|
+ goto exit;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (check == 0)
|
||||||
|
+ goto exit;
|
||||||
|
+ }
|
||||||
|
+ ds = rpmdsSinglePool(pool, RPMTAG_PROVIDENAME,
|
||||||
|
+ "rpmlib(X-CheckUnifiedSystemdir)", "1",
|
||||||
|
+ RPMSENSE_EQUAL);
|
||||||
|
+ rpmdsMerge(dsp, ds);
|
||||||
|
+ rpmdsFree(ds);
|
||||||
|
+
|
||||||
|
+ check = CheckLink("usr/lib64", root);
|
||||||
|
+ if (check < 0) {
|
||||||
|
+ rc = -1;
|
||||||
|
+ goto exit;
|
||||||
|
+ }
|
||||||
|
+ if (check > 0) {
|
||||||
|
+ ds = rpmdsSinglePool(pool, RPMTAG_PROVIDENAME,
|
||||||
|
+ "rpmlib(X-CheckMultiArchLibdir)", "1",
|
||||||
|
+ RPMSENSE_EQUAL);
|
||||||
|
+ rpmdsMerge(dsp, ds);
|
||||||
|
+ rpmdsFree(ds);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ check = CheckLink("usr/sbin", root);
|
||||||
|
+ if (check < 0) {
|
||||||
|
+ rc = -1;
|
||||||
|
+ goto exit;
|
||||||
|
+ }
|
||||||
|
+ if (check > 0) {
|
||||||
|
+ ds = rpmdsSinglePool(pool, RPMTAG_PROVIDENAME,
|
||||||
|
+ "rpmlib(X-CheckUnifiedBindir)", "1",
|
||||||
|
+ RPMSENSE_EQUAL);
|
||||||
|
+ rpmdsMerge(dsp, ds);
|
||||||
|
+ rpmdsFree(ds);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+exit:
|
||||||
|
+ return rc;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* Check dep for an unsatisfied dependency.
|
||||||
|
* @param ts transaction set
|
||||||
|
@@ -560,8 +663,10 @@ retry:
|
||||||
|
* Check those dependencies now.
|
||||||
|
*/
|
||||||
|
if (dsflags & RPMSENSE_RPMLIB) {
|
||||||
|
- if (tsmem->rpmlib == NULL)
|
||||||
|
+ if (tsmem->rpmlib == NULL) {
|
||||||
|
rpmdsRpmlibPool(tsmem->pool, &(tsmem->rpmlib), NULL);
|
||||||
|
+ CheckFilesystemHierarchy(&(tsmem->rpmlib), rpmtsRootDir(ts));
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (tsmem->rpmlib != NULL && rpmdsSearch(tsmem->rpmlib, dep) >= 0) {
|
||||||
|
rpmdsNotify(dep, "(rpmlib provides)", rc);
|
20
rpm.spec
20
rpm.spec
@ -11,8 +11,9 @@
|
|||||||
|
|
||||||
%define rpmhome /usr/lib/rpm
|
%define rpmhome /usr/lib/rpm
|
||||||
|
|
||||||
%define rpmver 4.10.1
|
%define rpmver 4.10.90
|
||||||
%define srcver %{rpmver}%{?snapver:-%{snapver}}
|
%define snapver git11989
|
||||||
|
%define srcver %{rpmver}%{?snapver:.%{snapver}}
|
||||||
|
|
||||||
%define bdbname libdb
|
%define bdbname libdb
|
||||||
%define bdbver 5.3.15
|
%define bdbver 5.3.15
|
||||||
@ -21,10 +22,10 @@
|
|||||||
Summary: The RPM package management system
|
Summary: The RPM package management system
|
||||||
Name: rpm
|
Name: rpm
|
||||||
Version: %{rpmver}
|
Version: %{rpmver}
|
||||||
Release: %{?snapver:0.%{snapver}.}3%{?dist}
|
Release: %{?snapver:0.%{snapver}.}1%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.rpm.org/
|
Url: http://www.rpm.org/
|
||||||
Source0: http://rpm.org/releases/rpm-4.10.x/%{name}-%{srcver}.tar.bz2
|
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
|
||||||
%if %{with int_bdb}
|
%if %{with int_bdb}
|
||||||
Source1: db-%{bdbver}.tar.gz
|
Source1: db-%{bdbver}.tar.gz
|
||||||
%else
|
%else
|
||||||
@ -45,8 +46,6 @@ Patch5: rpm-4.9.90-armhfp.patch
|
|||||||
Patch6: rpm-4.9.0-armhfp-logic.patch
|
Patch6: rpm-4.9.0-armhfp-logic.patch
|
||||||
|
|
||||||
# Patches already in upstream
|
# Patches already in upstream
|
||||||
Patch100: rpm-4.10.1-skipped-hardlinks.patch
|
|
||||||
Patch101: rpm-4.10.1-noarch-isa.patch
|
|
||||||
|
|
||||||
# These are not yet upstream
|
# These are not yet upstream
|
||||||
Patch301: rpm-4.6.0-niagara.patch
|
Patch301: rpm-4.6.0-niagara.patch
|
||||||
@ -58,7 +57,7 @@ Patch305: rpm-4.10.0-dwz-debuginfo.patch
|
|||||||
# Minidebuginfo support (#834073)
|
# Minidebuginfo support (#834073)
|
||||||
Patch306: rpm-4.10.0-minidebuginfo.patch
|
Patch306: rpm-4.10.0-minidebuginfo.patch
|
||||||
# Temporary Patch to provide support for updates
|
# Temporary Patch to provide support for updates
|
||||||
Patch400: rpm-4.9.1.2-rpmlib-filesystem-check.patch
|
Patch400: rpm-4.10.90-rpmlib-filesystem-check.patch
|
||||||
|
|
||||||
# Partially GPL/LGPL dual-licensed and some bits with BSD
|
# Partially GPL/LGPL dual-licensed and some bits with BSD
|
||||||
# SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD
|
# SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD
|
||||||
@ -220,9 +219,6 @@ packages on a system.
|
|||||||
%patch3 -p1 -b .no-man-dirs
|
%patch3 -p1 -b .no-man-dirs
|
||||||
%patch4 -p1 -b .use-gpg2
|
%patch4 -p1 -b .use-gpg2
|
||||||
|
|
||||||
%patch100 -p1 -b .skipped-hardlinks
|
|
||||||
%patch101 -p1 -b .noarch-isa
|
|
||||||
|
|
||||||
%patch301 -p1 -b .niagara
|
%patch301 -p1 -b .niagara
|
||||||
%patch302 -p1 -b .geode
|
%patch302 -p1 -b .geode
|
||||||
%patch304 -p1 -b .ldflags
|
%patch304 -p1 -b .ldflags
|
||||||
@ -453,6 +449,10 @@ exit 0
|
|||||||
%doc COPYING doc/librpm/html/*
|
%doc COPYING doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Nov 15 2012 Panu Matilainen <pmatilai@redhat.com> - 4.10.90-0.git11989.1
|
||||||
|
- update to 4.11 (http://rpm.org/wiki/Releases/4.11.0) post-alpha snapshot
|
||||||
|
- drop/adjust patches as necessary
|
||||||
|
|
||||||
* Thu Oct 11 2012 Panu Matilainen <pmatilai@redhat.com> - 4.10.1-3
|
* Thu Oct 11 2012 Panu Matilainen <pmatilai@redhat.com> - 4.10.1-3
|
||||||
- fix noarch __isa_* macro filter in installplatform (#865436)
|
- fix noarch __isa_* macro filter in installplatform (#865436)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user