Request 246 was acted upon.
_________________________________________________________________________
URL: https://rt.openpkg.org/id/246
Ticket: [OpenPKG #246]
Subject: Rpm 4.2.1 tries to unpack source files with permissions intact
Requestors: [EMAIL PROTECTED]
Queue: openpkg
Owner: Nobody
Status: new
Transaction: Ticket creado por ms
Time: Mie. Sep. 03 11:57:44 2003
_________________________________________________________________________
The old rpm 4.0.2 unpacked source packages and copied their files (typically .spec,
*.tar.gz...) irrespective of user and group ownership. The new rpm 4.2.1 pays
particular attention to the user and group ownership, using their values to copy the
source files to %_sourcedir.
$ /sw/bin/rpm --rebuild pkg/src/bind8-8.4.1-20030814.src.rpm
Installing pkg/src/bind8-8.4.1-20030814.src.rpm
warning: user te does not exist - using root
warning: group te does not exist - using root
warning: user st does not exist - using root
warning: group st does not exist - using root
[...]
Paying attention to the user and group ownership is necessary when installing (rpm
-Uvh) the files packaged in a binary package. However, when building a source package
(rpm --rebuild), the file ownerships do not need to correspond to a target system's
existing users and groups, and should be ignored.
Unfortunately with rpm 4.2.1, the same block of logic is responsible for generic
unpacking of a [binary|source] rpm package, and will always check ownership before
copying the package contents out to target file paths. See rpm-4.2.1/lib/psm.c and
search for 'unameToUid':
(void) rpmfiInit(fi, 0);
while ((i = rpmfiNext(fi)) >= 0) {
uid_t uid;
gid_t gid;
uid = fi->uid;
gid = fi->gid;
if (fi->fuser && unameToUid(fi->fuser[i], &uid)) {
rpmMessage(RPMMESS_WARNING,
_("user %s does not exist - using root\n"),
fi->fuser[i]);
uid = 0;
/* XXX this diddles header memory. */
fi->fmodes[i] &= ~S_ISUID; /* turn off the suid bit */
}
--
Michael Schloh v. Bennewitz
OpenPKG Developer
[EMAIL PROTECTED]
______________________________________________________________________
The OpenPKG Project www.openpkg.org
Bug Database Interface www.openpkg.org/bugdb
Bug Database List [EMAIL PROTECTED]