rpm/rpm-4.4.2.3-nodirtokens.patch
Panu Matilainen 8dd1aac03e Pile of patches to clear up accumulated bug queue...
- abort transaction on python callback crash
- package signing fixes (#442761, #463482)
- fix uncompress macro wrt bzip
- force cloexec all open descriptors on scriptlet execution
- make find-lang --with-man brp-compress friendly
- handle headerLoad() failure in rpmReadHeader() correctly
- fix --nodirtokens build option (#462391)
- drop no longer necessary jar.so.debug kludge (#442264)
- remove buggy, i386-specific RDTSC timing code (#435309)
- fix retrieval of multiple package through a proxy (#450205)
- ensure default SIGPIPE handler for --pipe (#444389)
2008-12-12 17:53:04 +00:00

47 lines
1.6 KiB
Diff

commit 7739cb6fffb2371266371ec58486a3cde4fca155
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Sep 16 12:03:26 2008 +0300
Resurrect --nodirtokens build option
- this gets somewhat hysterical: we create the filelist as uncompressed,
then compress it for rpmfi which only understands compressed filelist,
and if nodirtokens is used, expand the list again after initializing
rpmfi for cpio/fsm...
diff --git a/build/files.c b/build/files.c
index 83f67cd..d58c88b 100644
--- a/build/files.c
+++ b/build/files.c
@@ -1358,14 +1358,8 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
if (_addDotSlash)
(void) rpmlibNeedsFeature(h, "PayloadFilesHavePrefix", "4.0-1");
- /* Choose how filenames are represented. */
- if (_noDirTokens)
- expandFilelist(h);
- else {
- compressFilelist(h);
- /* Binary packages with dirNames cannot be installed by legacy rpm. */
- (void) rpmlibNeedsFeature(h, "CompressedFileNames", "3.0.4-1");
- }
+ /* rpmfi only groks compressed filelists */
+ compressFilelist(h);
{ int scareMem = 0;
rpmts ts = NULL; /* XXX FIXME drill rpmts ts all the way down here */
@@ -1467,6 +1461,14 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
fi = rpmfiFree(fi);
/*@=branchstate =compdef@*/
}
+
+ /* Convert back to expanded filelist if legacy format requested */
+ if (_noDirTokens)
+ expandFilelist(h);
+ else {
+ /* Binary packages with dirNames cannot be installed by legacy rpm. */
+ (void) rpmlibNeedsFeature(h, "CompressedFileNames", "3.0.4-1");
+ }
}
/*@=bounds@*/