From 1f56418d00a8f406f53b06f3f0b1566e56c1feca Mon Sep 17 00:00:00 2001 From: joey Date: Mon, 18 Aug 2003 01:21:26 +0000 Subject: [PATCH] r1590: * Converted several chown 0.0 to chown 0:0 for POSIX 200112. * dh_python: patch from Josselin to support packages only shipping binary (.so) modules, and removal of any already byte-compiled .py[co] found. --- debian/changelog | 9 +++++++++ dh_fixperms | 2 +- dh_gencontrol | 2 +- dh_installdeb | 4 ++-- dh_installdocs | 2 +- dh_makeshlibs | 2 +- dh_md5sums | 2 +- dh_python | 42 ++++++++++++++++++++++++++++++++++++++---- 8 files changed, 54 insertions(+), 11 deletions(-) diff --git a/debian/changelog b/debian/changelog index a51c88e..e5e06fe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +debhelper (4.1.65) unstable; urgency=low + + * Converted several chown 0.0 to chown 0:0 for POSIX 200112. + * dh_python: patch from Josselin to support packages only + shipping binary (.so) modules, and removal of any already byte-compiled + .py[co] found. + + -- Joey Hess Sun, 17 Aug 2003 21:11:35 -0400 + debhelper (4.1.64) unstable; urgency=low * dh_python: Add a -V flag to choose the python version modules in a package diff --git a/dh_fixperms b/dh_fixperms index 1a35c78..34a385b 100755 --- a/dh_fixperms +++ b/dh_fixperms @@ -53,7 +53,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { # General permissions fixing. complex_doit("find $tmp $find_options -print0", - "2>/dev/null | xargs -0r chown --no-dereference 0.0"); + "2>/dev/null | xargs -0r chown --no-dereference 0:0"); complex_doit("find $tmp ! -type l $find_options -print0", "2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s"); diff --git a/dh_gencontrol b/dh_gencontrol index 4e9ff3e..b9aaefb 100755 --- a/dh_gencontrol +++ b/dh_gencontrol @@ -64,7 +64,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { # something odd. doit("chmod","644","$tmp/DEBIAN/control"); - doit("chown","0.0","$tmp/DEBIAN/control"); + doit("chown","0:0","$tmp/DEBIAN/control"); } =head1 SEE ALSO diff --git a/dh_installdeb b/dh_installdeb index 9527ff2..e25e175 100755 --- a/dh_installdeb +++ b/dh_installdeb @@ -67,7 +67,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { # script. complex_doit("sed s/#DEBHELPER#// < $f > $tmp/DEBIAN/$file"); } - doit("chown","0.0","$tmp/DEBIAN/$file"); + doit("chown","0:0","$tmp/DEBIAN/$file"); doit("chmod",755,"$tmp/DEBIAN/$file"); } else { @@ -76,7 +76,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { if (-f "debian/$ext$file.debhelper") { complex_doit("printf '#!/bin/sh\nset -e\n' > $tmp/DEBIAN/$file"); complex_doit("cat debian/$ext$file.debhelper >> $tmp/DEBIAN/$file"); - doit("chown","0.0","$tmp/DEBIAN/$file"); + doit("chown","0:0","$tmp/DEBIAN/$file"); doit("chmod",755,"$tmp/DEBIAN/$file"); } } diff --git a/dh_installdocs b/dh_installdocs index b991162..3fe3d0c 100755 --- a/dh_installdocs +++ b/dh_installdocs @@ -125,7 +125,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { doit("cp","-a",$doc,"$tmp/usr/share/doc/$package"); } } - doit("chown","-R","0.0","$tmp/usr/share/doc"); + doit("chown","-R","0:0","$tmp/usr/share/doc"); doit("chmod","-R","go=rX","$tmp/usr/share/doc"); doit("chmod","-R","u+rw","$tmp/usr/share/doc"); } diff --git a/dh_makeshlibs b/dh_makeshlibs index ba5266b..a888aec 100755 --- a/dh_makeshlibs +++ b/dh_makeshlibs @@ -166,7 +166,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { if (-e "$tmp/DEBIAN/shlibs") { doit("chmod",644,"$tmp/DEBIAN/shlibs"); - doit("chown","0.0","$tmp/DEBIAN/shlibs"); + doit("chown","0:0","$tmp/DEBIAN/shlibs"); } } diff --git a/dh_md5sums b/dh_md5sums index 6f794e7..7d31322 100755 --- a/dh_md5sums +++ b/dh_md5sums @@ -78,7 +78,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { } else { doit("chmod",644,"$tmp/DEBIAN/md5sums"); - doit("chown","0.0","$tmp/DEBIAN/md5sums"); + doit("chown","0:0","$tmp/DEBIAN/md5sums"); } } diff --git a/dh_python b/dh_python index 8b248ff..952a77d 100755 --- a/dh_python +++ b/dh_python @@ -27,7 +27,8 @@ specific python version. The dependency will be substituted into your package's control file wherever you place the token "${python:Depends}". If some modules need to be byte-compiled at install time, appropriate -postinst and prerm scripts will be generated. +postinst and prerm scripts will be generated. If already byte-compiled +modules are found, they are removed. If you use this program, your package should build-depend on python. @@ -43,6 +44,9 @@ command line. By default, it will check /usr/lib/site-python, /usr/lib/$PACKAGE, /usr/share/$PACKAGE, /usr/lib/games/$PACKAGE, /usr/share/games/$PACKAGE and /usr/lib/python?.?/site-packages. +Note: only /usr/lib/site-python, /usr/lib/python?.?/site-packages and the +extra names on the command line are searched for binary (.so) modules. + =item B<-V> I If the .py files your package ships are meant to be used by a specific @@ -107,6 +111,8 @@ foreach (@ARGV) { use constant PROGRAM => 1; use constant PY_MODULE => 2; use constant PY_MODULE_NONSTANDARD => 4; +use constant SO_MODULE => 8; +use constant SO_MODULE_NONSTANDARD => 16; foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp = tmpdir($package); @@ -114,6 +120,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { delsubstvar($package, "python:Depends"); my @dirs = ("usr/lib/site-python", "usr/lib/$package", "usr/share/$package", "usr/lib/games/$package", "usr/share/games/$package", @ARGV ); + my @dirs_so = ("usr/lib/site-python", @ARGV ); my $dep_on_python = 0; my $strong_dep = 0; @@ -130,11 +137,13 @@ foreach my $package (@{$dh{DOPACKAGES}}) { } else { push @dirs, "usr/lib/python$python_version/site-packages" ; + push @dirs_so, "usr/lib/python$python_version/site-packages" ; $look_for_pythonXY = 0; } } @dirs = grep -d, map "$tmp/$_", @dirs; + @dirs_so = grep -d, map "$tmp/$_", @dirs_so; my $deps = 0; my %verdeps = (); @@ -165,7 +174,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) { $curdir =~ s%^$tmp/%%; find sub { return unless -f; - $has_module = 1 if /\.py$/; + if (/\.py$/) { + $has_module = 1; + doit(("rm","-f",$_."c",$_."o")); + } }, "$tmp/$curdir" ; if ($has_module) { if ($dh{V_FLAG_SET}) { @@ -177,10 +189,28 @@ foreach my $package (@{$dh{DOPACKAGES}}) { } } } + if (@dirs_so) { + foreach my $curdir (@dirs_so) { + my $has_module = 0; + $curdir =~ s%^$tmp/%%; + find sub { + return unless -f; + $has_module = 1 if /\.so$/; + }, "$tmp/$curdir" ; + if ($has_module) { + if ($dh{V_FLAG_SET}) { + $verdeps{$usepython} |= SO_MODULE_NONSTANDARD; + } + else { + $deps |= SO_MODULE; + } + } + } + } # Dependencies on current python $dep_on_python = 1 if $deps; - $strong_dep = 1 if($deps & PY_MODULE); + $strong_dep = 1 if($deps & (PY_MODULE|SO_MODULE)); if ($dep_on_python) { addsubstvar($package, "python:Depends", $python, ">= $python_version"); @@ -200,7 +230,11 @@ foreach my $package (@{$dh{DOPACKAGES}}) { if (grep -d,"$tmp$pydir") { find sub { return unless -f; - $verdeps{$pyver} |= PY_MODULE if /\.py$/; + if (/\.py$/) { + $verdeps{$pyver} |= PY_MODULE; + doit(("rm","-f",$_."c",$_."o")); + } + $verdeps{$pyver} |= SO_MODULE if /\.so$/; }, "$tmp$pydir"; } } -- 2.39.2