From 10d72fd2967a0220a3ca3802e3a3593a1f33515c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 24 Apr 2008 21:05:28 -0400 Subject: dh_auto_*: Also support packages using Module::Build. * dh_auto_*: Also support packages using Module::Build. * dh_auto_*: Fix some calls to setup.py. --- debian/changelog | 2 ++ dh_auto_build | 7 +++++-- dh_auto_clean | 10 ++++++---- dh_auto_configure | 12 ++++++++---- dh_auto_install | 9 ++++++--- 5 files changed, 27 insertions(+), 13 deletions(-) diff --git a/debian/changelog b/debian/changelog index cf095ac8..dbc36f24 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ debhelper (7.0.2) UNRELEASED; urgency=low run and there are no packages of that type. * dh_auto_configure: Set PERL_MM_USE_DEFAULT when configuring MakeMaker packages to avoid interactive prompts. + * dh_auto_*: Also support packages using Module::Build. + * dh_auto_*: Fix some calls to setup.py. -- Joey Hess Thu, 24 Apr 2008 14:10:56 -0400 diff --git a/dh_auto_build b/dh_auto_build index 2d636ea3..d35dfc63 100755 --- a/dh_auto_build +++ b/dh_auto_build @@ -18,7 +18,7 @@ B [S>] [S I>] dh_auto_build is a debhelper program that tries to automatically build a package. If a Makefile is found, this is done by running make (or MAKE, if the environment variable is set). -If there's a setup.py, it is run to build the package. +If there's a setup.py, or Build.PL, it is run to build the package. This is intended to work for about 90% of packages. If it doesn't work, you're encoruaged to skip using dh_auto_build at all, and just run the @@ -43,7 +43,10 @@ if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") { doit(exists $ENV{MAKE} ? $ENV{MAKE} : "make", @{$dh{U_PARAMS}}); } elsif (-e "setup.py") { - doit("python setup.py", "build", @{$dh{U_PARAMS}}); + doit("python", "setup.py", "build", @{$dh{U_PARAMS}}); +} +elsif (-e "Build.PL" && -e "Build") { + doit("perl", "Build", @{$dh{U_PARAMS}}); } =head1 SEE ALSO diff --git a/dh_auto_clean b/dh_auto_clean index 9a81145a..8ccb8873 100755 --- a/dh_auto_clean +++ b/dh_auto_clean @@ -18,8 +18,8 @@ B [S>] [S I>] dh_auto_clean is a debhelper program that tries to automatically clean up after a package build. If there's a Makefile and it contains a "distclean", "realclean", or "clean" target, then this is done by running make (or MAKE, -if the environment variable is set). If there is a setup.py, it is run to -clean the package. +if the environment variable is set). If there is a setup.py or Build.PL, it +is run to clean the package. This is intended to work for about 90% of packages. If it doesn't work, or tries to use the wrong clean target, you're encoruaged to skip using @@ -54,9 +54,11 @@ if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") { } } elsif (-e "setup.py") { - doit("python setup.py", "clean", "-a", @{$dh{U_PARAMS}}); + doit("python", "setup.py", "clean", "-a", @{$dh{U_PARAMS}}); +} +elsif (-e "Build.PL" && -e "Build") { + doit("perl", "Build", "--allow_mb_mismatch", 1, "distclean", @{$dh{U_PARAMS}}); } - =head1 SEE ALSO diff --git a/dh_auto_configure b/dh_auto_configure index 6e56c953..4558403d 100755 --- a/dh_auto_configure +++ b/dh_auto_configure @@ -16,10 +16,10 @@ B [S>] [S I>] =head1 DESCRIPTION dh_auto_configure is a debhelper program that tries to automatically -configure a package prior to building. It looks for and runs -a ./configure script, or Makefile.PL. A standard set of parameters is -determined and passed to the program that is run. If no program to run -is found, dh_auto_configure will exit without doing anything. +configure a package prior to building. It looks for and runs a ./configure +script, Makefile.PL, or Build.PL. A standard set of parameters is +determined and passed to the program that is run. If no program to run is +found, dh_auto_configure will exit without doing anything. This is intended to work for about 90% of packages. If it doesn't work, you're encoruaged to skip using dh_auto_configure at all, and just run @@ -90,6 +90,10 @@ elsif (-e "Makefile.PL") { $ENV{PERL_MM_USE_DEFAULT}=1; doit("perl", "Makefile.PL", "INSTALLDIRS=vendor", @{$dh{U_PARAMS}}); } +elsif (-e "Build.PL") { + $ENV{PERL_MM_USE_DEFAULT}=1; # Module::Build can also use this. + doit("perl", "Build.PL", "installdirs=vendor", @{$dh{U_PARAMS}}); +} =head1 SEE ALSO diff --git a/dh_auto_install b/dh_auto_install index be052e21..8e6e8934 100755 --- a/dh_auto_install +++ b/dh_auto_install @@ -19,7 +19,7 @@ B [S>] [S I>] dh_auto_install is a debhelper program that tries to automatically install built files. If there's a Makefile and it contains a "install" target, then this is done by running make (or MAKE, if the environment variable is -set). If there is a setup.py, it is used. +set). If there is a setup.py or Build.PL, it is used. The files are installed into debian// if there is only one binary package to act on. In the multiple binary package case, the files are @@ -80,12 +80,15 @@ if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") { } } elsif (-e "setup.py") { - doit("python setup.py", "install", + doit("python", "setup.py", "install", "--root=$destdir", "--no-compile", "-O0", @{$dh{U_PARAMS}}); } - +elsif (-e "Build.PL" && -e "Build") { + doit("perl", "Build", "install", "destdir=$destdir", + "create_packlist=0", @{$dh{U_PARAMS}}); +} =head1 SEE ALSO -- cgit v1.2.3