Joey Hess [Sun, 15 Jan 2012 18:22:28 +0000 (14:22 -0400)]
v9 done
* Finalized v9 mode, which is the new recommended default.
(But continuing to use v8 is also fine.)
* It is now deprecated for a package to not specify a compatability
level in debian/compat. Debhelper now warns if this is not done,
and packages without a debian/compat will eventually FTBFS.
Joey Hess [Wed, 7 Dec 2011 18:08:41 +0000 (14:08 -0400)]
executable config files. bleh, argh
Debhelper config files may be made executable programs that output the
desired configuration. No further changes are planned to the config file
format; those needing powerful syntaxes may now use a programming language
of their choice.
In many bugs I see a tendency of users wanting debhelper configuration
files to have their pet feature from some programming language. So I choose
to short-circuit this process by taking it to its logical conclusion, and
without the bother of developing a new language myself.
[ Is this consistent with my boycott/disinterest in integrating features
features first developed in Ubuntu? Yes. Instead of blocking the
issue of multiarch needing variable expansions, I have stepped
back and let anyone make whatever mess they desire while not forcing
that mess on the rest of us. ]
Joey Hess [Wed, 16 Nov 2011 15:54:53 +0000 (11:54 -0400)]
dh: Ensure -a and -i are passed when running override_dh_command-arch and override_dh_command-indep targets. This is needed when the binary target is run, rather than binary-arch/binary-indep. Closes: #648901
Joey Hess [Mon, 7 Nov 2011 17:52:00 +0000 (13:52 -0400)]
dh_strip: In v9, pass --compress-debug-sections to objcopy. Needs a new enough binutils and gdb; debhelper backport may need to disable this. Thanks, Aurelien Jarno and Bastien ROUCARIES. Closes: #631985
Steve Langasek [Wed, 28 Sep 2011 19:37:42 +0000 (12:37 -0700)]
pass dpkg-buildflags to makemaker build system
The standard way to pass build flags to makemaker perl build systems is to
set the OPTIMIZE variable on the commandline; CFLAGS in the environment gets
ignored entirely. So pass the CFLAGS from the environment to Makefile.PL so
makemaker packages can also benefit from dpkg-buildflags.
* dh: Now you can use override_dh_command-arch and override_dh_command-indep
to run different overrides when building arch and indep packages. This
allows for a much simplified form of rules file in this situation, where
build-arch/indep and binary-arch/indep targets do not need to be manually
specified. See man page for examples.
* dh: Note that if a rules file has say, override_dh_fixperms-arch,
but no corresponding override_dh_fixperms-indep, then the unoverridden
dh_fixperms will be run on the indep packages.
* dh: Note that the old override_dh_command takes precidence over the new
overrides, because mixing the two types of overrides would have been
too complicated. In particular, it's difficult to ensure an
old override target will work if it's sometimes constrained to only
acting on half the packages it would normally run on. This would be
a source of subtle bugs, so is avoided.
Gergely Nagy [Tue, 23 Aug 2011 18:36:57 +0000 (20:36 +0200)]
dh_installlogcheck: Add support for --name.
This patch makes dh_installlogcheck be similar to other helpers, like
dh_installlogrotate that already support a --name option: to install
the files as if they were installed by a different package.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Joey Hess [Sat, 6 Aug 2011 22:58:55 +0000 (18:58 -0400)]
dpkg-buildflags is only used to set environment in v9
To avoid re-breaking packages that were already broken a first time by
dpkg-buildpackage unconditionally setting the environment, and unbroke it
by unsetting variables in the rules file. (Example: numpy)
Add support for running tests in parallel to the cmake build system.
Pass appropriate -jN option to ctest (via ARGS variable in the Makefile) to
enable support for running tests in parallel. Similarly to makefile build
system, ctest -j1 mode is enforced even when parallel mode in debhelper is not
explicitly enabled.
Unlike make, CTest does not have "unlimited parallel" setting (-j implies -j1).
So in order to simulate unlimited parallel, allow to fork a huge number of
threads instead.
makefile.pm: remove build directory even if Makefile does not exist yet.
Assume that the package can be cleaned (i.e. the build directory can be
removed) as long as it is built out-of-source tree and can be configured. This
is useful for derivative buildsystems which generate Makefiles.
If a rules file has a custom install or binary target, those targets
still need to explicitly depend on the build target. Unless dh is used
in such a target (which it probably is of course).
It's not possible to avoid the need for those dependencies. A rules file
with a hand-written binary target simply does not run dh, so dh can
do nothing to help it run the build target.
Reword the docs to not give the wrong impression that dh somehow
magically makes that work.
dh: Remove obsolete optimisation hack that caused sequence breakage in v9 with a rules file with an explict build target. Closes: #634784
This hack was necessary back when dh ran each target, and so recursively
invoked itself. If debian/rules binary ran debian/rules binary-arch ran
debian/rules install-arch ran debian/rules build-arch, then debhelper
commands would be running with -a throughout, and so for debian/rules
binary-indep it would have to re-run all the commands with -i. The hack
avoided this extra work (and expecially dh_auto_configure running twice) by
first running the common commands without -i or -a and only then following
through with running the explicit per-arch targets, which didn't run many
(if any) additional commands.
But now dh does not run implicit targets, so (unless targets
are explicit), it will instead just construct a sequence of debhelper
commands to run directly, and so the -a flag is avoided.