diff options
-rw-r--r-- | packdrake.pm | 11 | ||||
-rw-r--r-- | parsehdlist.c | 12 | ||||
-rw-r--r-- | rpmtools.spec | 11 |
3 files changed, 21 insertions, 13 deletions
diff --git a/packdrake.pm b/packdrake.pm index 5c720a1..9db7ee1 100644 --- a/packdrake.pm +++ b/packdrake.pm @@ -214,7 +214,8 @@ sub catsksz { sub cat_compress { my ($packer, $srcdir, @filenames) = @_; local *F; - open F, "| $packer->{compress} >$packer->{tmpz}" or die "packdrake: cannot start \"$packer->{compress}\"\n"; + open F, "| $ENV{LD_LOADER} $packer->{compress} >$packer->{tmpz}" + or die "packdrake: cannot start \"$packer->{compress}\"\n"; foreach (@filenames) { my $srcfile = $srcdir ? "$srcdir/$_" : $_; my ($buf, $siz, $sz); @@ -327,7 +328,7 @@ sub cat_archive { open STDIN, "<$_" or die "packdrake: unable to open archive $_\n"; open STDERR, ">/dev/null" or die "packdrake: unable to open /dev/null\n"; - exec split " ", $packer->{uncompress}; + exec (($ENV{LD_LOADER} ? ($ENV{LD_LOADER}) : ()), split " ", $packer->{uncompress}); die "packdrake: unable to cat the archive with $packer->{uncompress}\n"; } @@ -398,7 +399,7 @@ sub extract_archive { close FILE; } else { local *BUNZIP2; - open BUNZIP2, "| $packer->{uncompress}"; + open BUNZIP2, "| $ENV{LD_LOADER} $packer->{uncompress}"; local *ARCHIVE; open ARCHIVE, "<$packer->{archive}" or die "packdrake: cannot open archive $packer->{archive}\n"; catsksz(\*ARCHIVE, $_, $extract_table{$_}[0], \*BUNZIP2); @@ -448,7 +449,7 @@ sub build_archive { $packer->{data}{$_} = [ 'f', $off1, $siz1, $packer->{data}{$_}[3], $packer->{data}{$_}[4] ]; } - system "cat '$packer->{tmpz}' >>'$packer->{archive}'"; + system "$ENV{LD_LOADER} cat '$packer->{tmpz}' >>'$packer->{archive}'"; $off1 += $siz1; $off2 = 0; $siz2 = 0; @filelist = (); @@ -463,7 +464,7 @@ sub build_archive { $packer->{data}{$_} = [ 'f', $off1, $siz1, $packer->{data}{$_}[3], $packer->{data}{$_}[4] ]; } - system "cat '$packer->{tmpz}' >>'$packer->{archive}'"; + system "$ENV{LD_LOADER} cat '$packer->{tmpz}' >>'$packer->{archive}'"; $off1 += $siz1; } print STDERR "real archive size of $packer->{archive} is $off1\n"; diff --git a/parsehdlist.c b/parsehdlist.c index 46bfe6b..6514db2 100644 --- a/parsehdlist.c +++ b/parsehdlist.c @@ -245,7 +245,6 @@ int main(int argc, char **argv) close(fdno[0]); close(fdno[1]); } else { -#if 1 int fda, fdn; struct { char header[4]; @@ -256,9 +255,14 @@ int main(int argc, char **argv) char uncompress[40]; char trailer[4]; } buf; - char *unpacker[21]; /* enough for 40 bytes above to never overbuf */ + char *unpacker[22]; /* enough for 40 bytes above to never overbuf */ char *p = buf.uncompress; int ip = 0; + char *ld_loader = getenv("LD_LOADER"); + + if (ld_loader && *ld_loader) { + unpacker[ip++] = ld_loader; + } dup2(fdno[1], STDOUT_FILENO); fda = open(argv[i], O_RDONLY); @@ -285,10 +289,6 @@ int main(int argc, char **argv) fdn = open("/dev/null", O_WRONLY); dup2(fdn, STDERR_FILENO); execvp(unpacker[0], unpacker); -#else - dup2(fdno[1], STDOUT_FILENO); - execlp("packdrake", "packdrake", "-c", argv[i], NULL); -#endif exit(2); } } else { diff --git a/rpmtools.spec b/rpmtools.spec index 80932cc..65b8968 100644 --- a/rpmtools.spec +++ b/rpmtools.spec @@ -1,5 +1,5 @@ %define name rpmtools -%define release 10mdk +%define release 12mdk # do not modify here, see Makefile in the CVS %define version 2.3 @@ -16,7 +16,7 @@ Group: System/Configuration/Packaging BuildRoot: %{_tmppath}/%{name}-buildroot Prefix: %{_prefix} BuildRequires: rpm-devel >= 4.0 bzip2 popt-devel zlib-devel -Requires: /usr/bin/perl rpm >= 4.0 bzip2 >= 1.0 db2 db3 +Requires: /usr/bin/perl rpm >= 4.0 bzip2 >= 1.0 Obsoletes: rpmtools-compat <= 2.0 rpmtools-devel <= 2.0 %description @@ -51,6 +51,13 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/perl5/man/*/* %changelog +* Mon Mar 12 2001 François Pons <fpons@mandrakesoft.com> 2.3-12mdk +- added support for LD_LOADER in packdrake module. +- removed explicit requires of db2 and db3. + +* Mon Mar 12 2001 François Pons <fpons@mandrakesoft.com> 2.3-11mdk +- + * Thu Mar 8 2001 François Pons <fpons@mandrakesoft.com> 2.3-10mdk - fixed duplicate choices in depslist.ordered file. - fixed missing choices on some deps. |