OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: rpm-src Date: 13-Sep-2006 21:51:20
Branch: HEAD Handle: 2006091320511801
Modified files:
rpm-src/OpenPKG do-assemble.cfg do-assemble.pl
rpm-src/lib psm.c
Log:
integrate latest RPM hack
Summary:
Revision Changes Path
1.11 +16 -8 rpm-src/OpenPKG/do-assemble.cfg
1.3 +3 -3 rpm-src/OpenPKG/do-assemble.pl
1.3 +20 -0 rpm-src/lib/psm.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm-src/OpenPKG/do-assemble.cfg
============================================================================
$ cvs diff -u -r1.10 -r1.11 do-assemble.cfg
--- rpm-src/OpenPKG/do-assemble.cfg 8 Jun 2005 13:16:19 -0000 1.10
+++ rpm-src/OpenPKG/do-assemble.cfg 13 Sep 2006 19:51:19 -0000 1.11
@@ -40,10 +40,11 @@
PATCHED popt/configure rpm.patch.regen
PATCHED db3/configure rpm.patch.porting
PATCHED lib/fs.c rpm.patch.porting
-PATCHED lib/psm.c:+1 rpm.patch.bugfix
-PATCHED lib/psm.c:+2-3 rpm.patch.bugfix
-PATCHED lib/psm.c:+4-5 rpm.patch.bugfix
-PATCHED lib/psm.c:+6 rpm.patch.bugfix
+PATCHED lib/psm.c:+1-3 rpm.patch.feature
+PATCHED lib/psm.c:+4 rpm.patch.bugfix
+PATCHED lib/psm.c:+5-6 rpm.patch.bugfix
+PATCHED lib/psm.c:+7-8 rpm.patch.bugfix
+PATCHED lib/psm.c:+9 rpm.patch.bugfix
PATCHED lib/rpmrc.c rpm.patch.feature
PATCHED lib/query.c rpm.patch.feature
PATCHED macros.in rpm.patch.feature
@@ -298,14 +299,21 @@
COMMENT lib/fs.c {
Add support for BSD getmntinfo(3).
}
-COMMENT lib/psm.c:+1 {
+COMMENT lib/psm.c:+1-3 {
+ If running as "susr", do not unpack source RPM packages with "susr"
+ file ownerships as the OpenPKG Set-UID wrapper switches from "musr"
+ to "susr" on "openpkg rpm -Uvh *.src.rpm". As a result the installed
+ files could be never removed again by "musr". It is more consistent
+ to always unpack as "musr" if possible.
+}
+COMMENT lib/psm.c:+4 {
Fix filedescriptor leakage.
}
-COMMENT lib/psm.c:+2-3 {
+COMMENT lib/psm.c:+5-6 {
Fix trigger argument passing. For more details see RPM BugDB under:
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100509
}
-COMMENT lib/psm.c:+4-5 {
+COMMENT lib/psm.c:+7-8 {
Make sure RPM does not try to set file owner/group on files during
installation of _source_ RPMs. Instead, let it use the current
run-time owner/group, because most of the time the owner/group in
@@ -313,7 +321,7 @@
the package author system) is not existing on the target system, of
course.
}
-COMMENT lib/psm.c:+6 {
+COMMENT lib/psm.c:+9 {
Fix --justdb operation by consistently use the same rootDir checks
RPM uses everywhere else, too.
}
@@ .
patch -p0 <<'@@ .'
Index: rpm-src/OpenPKG/do-assemble.pl
============================================================================
$ cvs diff -u -r1.2 -r1.3 do-assemble.pl
--- rpm-src/OpenPKG/do-assemble.pl 6 Jun 2005 15:53:04 -0000 1.2
+++ rpm-src/OpenPKG/do-assemble.pl 13 Sep 2006 19:51:19 -0000 1.3
@@ -1,6 +1,6 @@
##
## assemble.pl -- OpenPKG Source and Patch Assembling Tool
-## Copyright (c) 1998-2005 Ralf S. Engelschall <[EMAIL PROTECTED]>
+## Copyright (c) 1998-2006 Ralf S. Engelschall <[EMAIL PROTECTED]>
##
require 5;
@@ -66,8 +66,8 @@
print OUT <<"EOT";
##
## $file -- Annotated OpenPKG RPM Patch file
-## Copyright (c) 2000-2005 OpenPKG Foundation e.V. <http://openpkg.net/>
-## Copyright (c) 2000-2005 Ralf S. Engelschall <http://engelschall.com/>
+## Copyright (c) 2000-2006 OpenPKG Foundation e.V. <http://openpkg.net/>
+## Copyright (c) 2000-2006 Ralf S. Engelschall <http://engelschall.com/>
##
## This file assembles changes to existing RPM source files between
## the original RedHat RPM and the OpenPKG RPM variant. It can be
@@ .
patch -p0 <<'@@ .'
Index: rpm-src/lib/psm.c
============================================================================
$ cvs diff -u -r1.2 -r1.3 psm.c
--- rpm-src/lib/psm.c 22 Jan 2004 21:42:23 -0000 1.2
+++ rpm-src/lib/psm.c 13 Sep 2006 19:51:18 -0000 1.3
@@ -314,6 +314,20 @@
fi->uid = getuid();
fi->gid = getgid();
+#ifdef OPENPKG
+ if (fi->uid == 0) {
+ char *muid_str;
+ char *mgid_str;
+ uid_t *muid;
+ gid_t *mgid;
+ if ((muid_str = rpmExpand("%{l_muid}", NULL)) != NULL)
+ if ((muid = (uid_t)strtol(muid_str, (char **)NULL, 10)) > 0)
+ fi->uid = muid;
+ if ((mgid_str = rpmExpand("%{l_mgid}", NULL)) != NULL)
+ if ((mgid = (gid_t)strtol(mgid_str, (char **)NULL, 10)) > 0)
+ fi->gid = mgid;
+ }
+#endif
fi->astriplen = 0;
fi->striplen = 0;
@@ -352,6 +366,9 @@
rpmrc = RPMRC_FAIL;
goto exit;
}
+#ifdef OPENPKG
+ chown(_sourcedir, fi->uid, fi->gid);
+#endif
_specdir = rpmGenPath(rpmtsRootDir(ts), "%{_specdir}", "");
rpmrc = rpmMkdirPath(_specdir, "specdir");
@@ -359,6 +376,9 @@
rpmrc = RPMRC_FAIL;
goto exit;
}
+#ifdef OPENPKG
+ chown(_specdir, fi->uid, fi->gid);
+#endif
/* Build dnl/dil with {_sourcedir, _specdir} as values. */
if (i < fi->fc) {
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]