From: Bernd Zeimetz Date: Sun, 19 Jul 2009 13:16:21 +0000 (+0200) Subject: Merge commit 'origin/buildsystems' into python-build X-Git-Tag: 7.3.5~5 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=20161f72998f986d8892fb309570762ef33c767a;p=debhelper.git Merge commit 'origin/buildsystems' into python-build Conflicts: Debian/Debhelper/Buildsystem/python_distutils.pm --- 20161f72998f986d8892fb309570762ef33c767a diff --cc Debian/Debhelper/Buildsystem/python_distutils.pm index 63bc871,2ee2cc1..c29a952 --- a/Debian/Debhelper/Buildsystem/python_distutils.pm +++ b/Debian/Debhelper/Buildsystem/python_distutils.pm @@@ -79,24 -79,6 +79,25 @@@ sub pre_building_step $this->SUPER::pre_building_step($step); } +sub dbg_build_needed { + my $this=shift; + my $act=shift; + + my @dbg; + open (CONTROL, $this->get_sourcepath('debian/control')) || + error("cannot read debian/control: $!\n"); - foreach my $builddeps (join('', ) =~ /^Build-Depends[^:]*:.*\n(?:^[^\w\n].*\n)*/gmi) { ++ foreach my $builddeps (join('', ) =~ ++ /^Build-Depends[^:]*:.*\n(?:^[^\w\n].*\n)*/gmi) { + foreach ($builddeps =~ /(python[^, ]*-dbg)/g) { + push @dbg, $1; + } + } + + close CONTROL; + return @dbg; + +} + sub setup_py { my $this=shift; my $act=shift; @@@ -104,27 -86,16 +105,30 @@@ # We need to to run setup.py with the default python first # as distutils/setuptools modifies the shebang lines of scripts. # This ensures that #!/usr/bin/python is used and not pythonX.Y - if (grep /^$python_default/, $python_requested) { - $this->doit_in_sourcedir("python", "setup.py", $act, @_); - } - if (grep /^(python-all-dbg|python-dbg)/, $dbg_build_needed) { - $this->doit_in_sourcedir("python-dbg", "setup.py", $act, @_); ++ # Take into account that the default Python must not be in ++ # the requested Python versions. + # Then, run setup.py with each available python, to build - # extensions for each. - my $python_default = `pyversions -d`; - $python_default =~ s/^\s+//; - $python_default =~ s/\s+$//; - foreach my $python ("python", grep(!/^$python_default/, - (split ' ', `pyversions -r 2>/dev/null`))) { ++ # extensions for each. ++ ++ my $python_default = `pyversions -d`; ++ $python_default =~ s/^\s+//; ++ $python_default =~ s/\s+$//; ++ my @python_requested = split ' ', `pyversions -r 2>/dev/null`; ++ if (grep /^$python_default/, @python_requested) { ++ @python_requested = ("python", grep(!/^$python_default/, ++ @python_requested); + } - for my $python (grep !/^$python_default/, $python_requested) { - if (-x "/usr/bin/" . $python) { ++ my @dbg_build_needed = $this->dbg_build_needed(); ++ ++ foreach my $python (@python_requested) { + if (-x "/usr/bin/".$python) { $this->doit_in_sourcedir($python, "setup.py", $act, @_); } + $python = $python . "-dbg"; + if (grep /^(python-all-dbg|$python)/, @dbg_build_needed) { + $this->doit_in_sourcedir($python, "setup.py", $act, @_); + } + } }