Hello, On antradienis 18 Rugpjūtis 2009 23:17:45 Joey Hess wrote: > أحمد المحمودي wrote: > > On Mon, Aug 17, 2009 at 03:13:18PM -0400, Joey Hess wrote: > > > So I don't think that making dh_auto_install behave as you request > > > is a good idea, because having it install directly into > > > debian/<package> would eliminate the ability to handle any of those > > > three cases via dh_install configuration. > > > > ---end quoted text--- > > > > The patch that I have submitted would not eliminate the ability to > > handle the three cases you mentioned. > > Using the -p flag would eliminate the ability to handle any of the cases > I mentioned, since it bypasses dh_install.
Rather than using -p option for this purpose (which would be wrong as -p has a global different meaning), dh_auto_install should have --destdir option which would allow to override dh_auto_install automatic destdir selection. Here it is a least one use case for this option. If there is only one binary package, dh_auto_install installs to debian/package by default. However, what if I need to exclude several files? I could override dh_(auto)_install and rm them manually but this is error prone and not a very elegant solution in my opinion. I would rather override dh_auto_install and do dh_auto_install --destdir=debian/tmp and later exclude those unwanted files via .install file. The patch is attached. Please note, there already is --destdir option in dh_builddeb with different meaning hence `dh --destdir` will not work. -- Modestas Vainius <modes...@vainius.eu>
From: Modestas Vainius <modes...@vainius.eu> Subject: [PATCH] Support --destdir option in dh_auto_install This patch adds --destdir option to dh_auto_install which allows to override destdir auto-selection. This basically closes #538201 since the same requested behaviour can be achieved but in a more clean way. Signed-off-by: Modestas Vainius <modes...@vainius.eu> --- dh_auto_install | 40 +++++++++++++++++++++++++++------------- 1 files changed, 27 insertions(+), 13 deletions(-) diff --git a/dh_auto_install b/dh_auto_install index b57db83..b4a355f 100755 --- a/dh_auto_install +++ b/dh_auto_install @@ -9,6 +9,7 @@ dh_auto_install - automatically runs make install or similar use strict; use Debian::Debhelper::Dh_Lib; use Debian::Debhelper::Dh_Buildsystems; +use File::Spec; use Cwd; =head1 SYNOPSIS @@ -25,10 +26,11 @@ if the environment variable is set). If there is a setup.py or Build.PL, it is used. Note that the Ant build system does not support installation, so dh_auto_install will not install files built using Ant. -The files are installed into debian/<package>/ if there is only one binary -package. In the multiple binary package case, the files are instead -installed into debian/tmp/, and should be moved from there to the -appropriate package build directory using L<dh_install(1)>. +Unless --destdir option is specified, the files are installed into +debian/<package>/ if there is only one binary package. In the multiple binary +package case, the files are instead installed into debian/tmp/, and should be +moved from there to the appropriate package build directory using +L<dh_install(1)>. DESTDIR is used to tell make where to install the files. If the Makefile was generated by MakeMaker from a Makefile.PL, it will @@ -45,6 +47,12 @@ system selection and control options. =over 4 +=item B<--destdir=>I<directory> + +Install files into the specified I<directory>. If this option is not specified, +destination directory is determined automatically as described in the +L</DESCRIPTION> section. + =item B<--> I<params> Pass "params" to the program that is run. These can be used to supplement @@ -54,17 +62,23 @@ or override the any standard parameters that dh_auto_install passes. =cut -buildsystems_init(); - my $destdir; -my @allpackages=getpackages(); -if (@allpackages > 1) { - $destdir="debian/tmp"; -} -else { - $destdir=tmpdir($dh{MAINPACKAGE}); + +buildsystems_init(options => { + "destdir=s" => \$destdir, +}); + +# If destdir is not specified, determine it automatically +if (!$destdir) { + my @allpackages=getpackages(); + if (@allpackages > 1) { + $destdir="debian/tmp"; + } + else { + $destdir=tmpdir($dh{MAINPACKAGE}); + } } -$destdir=cwd()."/".$destdir; +$destdir = File::Spec->rel2abs($destdir, Cwd::cwd()); buildsystems_do("install", $destdir); -- tg: (aaa7cd5..) patch/dh_auto_install_destdir (depends on: master)
signature.asc
Description: This is a digitally signed message part.