homebrew-core/Formula/dpkg.rb

122 lines
4.5 KiB
Ruby

require 'formula'
class Dpkg < Formula
homepage 'https://wiki.debian.org/Teams/Dpkg'
url 'http://ftp.debian.org/debian/pool/main/d/dpkg/dpkg_1.17.10.tar.xz'
sha1 '2d88ef04db662d046fadb005bb31667fc0ba64de'
depends_on 'pkg-config' => :build
depends_on 'gnu-tar'
# Fixes the PERL_LIBDIR.
patch :DATA
def install
# We need to specify a recent gnutar, otherwise various dpkg C programs will
# use the system 'tar', which will fail because it lacks certain switches.
ENV["TAR"] = Formula["gnu-tar"].opt_bin/"gtar"
system "./configure", "--disable-dependency-tracking",
"--prefix=#{prefix}",
"--disable-dselect",
"--disable-linker-optimisations",
"--disable-start-stop-daemon",
"--disable-update-alternatives"
system "make"
system "make install"
end
def caveats; <<-EOS.undent
This installation of dpkg is not configured to install software, so
commands such as `dpkg -i`, `dpkg --configure` will fail.
EOS
end
end
__END__
diff --git a/configure b/configure
index 668eefd..2f54912 100755
--- a/configure
+++ b/configure
@@ -8875,9 +8875,7 @@ if test "$PERL" = "no" || test ! -x "$PERL"; then
fi
# Let the user override the variable.
if test -z "$PERL_LIBDIR"; then
-PERL_LIBDIR=$($PERL -MConfig -e 'my $r = $Config{vendorlibexp};
- $r =~ s/$Config{vendorprefixexp}/\$(prefix)/;
- print $r')
+PERL_LIBDIR="$prefix/perl"
fi
diff --git a/scripts/Dpkg/Checksums.pm b/scripts/Dpkg/Checksums.pm
index 07a917c..86d267a 100644
--- a/scripts/Dpkg/Checksums.pm
+++ b/scripts/Dpkg/Checksums.pm
@@ -51,15 +51,15 @@ about supported checksums.
my $CHECKSUMS = {
md5 => {
- program => [ 'md5sum' ],
+ program => [ 'md5', '-q' ],
regex => qr/[0-9a-f]{32}/,
},
sha1 => {
- program => [ 'sha1sum' ],
+ program => [ 'shasum', '-a', '1' ],
regex => qr/[0-9a-f]{40}/,
},
sha256 => {
- program => [ 'sha256sum' ],
+ program => [ 'shasum', '-a', '256' ],
regex => qr/[0-9a-f]{64}/,
},
};
diff --git a/scripts/Dpkg/Source/Archive.pm b/scripts/Dpkg/Source/Archive.pm
index 6257702..af6101d 100644
--- a/scripts/Dpkg/Source/Archive.pm
+++ b/scripts/Dpkg/Source/Archive.pm
@@ -48,7 +48,7 @@ sub create {
$spawn_opts{from_pipe} = \*$self->{tar_input};
# Call tar creation process
$spawn_opts{delete_env} = [ 'TAR_OPTIONS' ];
- $spawn_opts{exec} = [ 'tar', '--null', '-T', '-', '--numeric-owner',
+ $spawn_opts{exec} = [ 'gtar', '--null', '-T', '-', '--numeric-owner',
'--owner', '0', '--group', '0',
@{$opts{options}}, '-cf', '-' ];
*$self->{pid} = spawn(%spawn_opts);
@@ -125,7 +125,7 @@ sub extract {
# Call tar extraction process
$spawn_opts{delete_env} = [ 'TAR_OPTIONS' ];
- $spawn_opts{exec} = [ 'tar', '--no-same-owner', '--no-same-permissions',
+ $spawn_opts{exec} = [ 'gtar', '--no-same-owner', '--no-same-permissions',
@{$opts{options}}, '-xf', '-' ];
spawn(%spawn_opts);
$self->close();
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 45cb3d4..bd55234 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -119,7 +119,7 @@ nobase_dist_perllib_DATA = \
man3_MANS =
do_perl_subst = $(AM_V_GEN) \
- sed -e "s:^\#![[:space:]]*/usr/bin/perl:\#!$(PERL):" \
+ sed -e "s:^\#![[:space:]]*/usr/bin/perl:\#!$(PERL) -I$(PERL_LIBDIR):" \
-e "s:\$$CONFDIR[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$CONFDIR='$(pkgconfdir)':" \
-e "s:\$$ADMINDIR[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$ADMINDIR='$(admindir)':" \
-e "s:\$$LIBDIR[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$LIBDIR='$(pkglibdir)':" \
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
index 098c202..4b089d7 100644
--- a/scripts/Makefile.in
+++ b/scripts/Makefile.in
@@ -490,7 +490,7 @@ nobase_dist_perllib_DATA = \
# Keep it even if empty to have man3dir correctly set
man3_MANS =
do_perl_subst = $(AM_V_GEN) \
- sed -e "s:^\#![[:space:]]*/usr/bin/perl:\#!$(PERL):" \
+ sed -e "s:^\#![[:space:]]*/usr/bin/perl:\#!$(PERL) -I$(PERL_LIBDIR):" \
-e "s:\$$CONFDIR[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$CONFDIR='$(pkgconfdir)':" \
-e "s:\$$ADMINDIR[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$ADMINDIR='$(admindir)':" \
-e "s:\$$LIBDIR[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$LIBDIR='$(pkglibdir)':" \