joeyh: debhelper has an undocumented variable with INTERNAL in its name.
People keep trying to use it. Why?
liw: debhelper is magic. magic is power derived from secrets. secrets are
desireable. solution: document it. :)
Joey Hess [Mon, 1 Mar 2010 21:05:49 +0000 (16:05 -0500)]
If neither -a or -i are specified, debhelper commands used to default to acting on all packages in the control file, which was a guaranteed failure if the control file listed packages that did not build for the target architecture. After recent optimisations, this default behavior can efficiently be changed to the more sane default of acting on only packages that can be built for the current architecture. This change is mostly useful when using minimal rules files with dh. Closes: #572077
Joey Hess [Sun, 21 Feb 2010 23:11:36 +0000 (18:11 -0500)]
dh_install: Now --list-missing and --fail-missing are useful even when not all packages are acted on (due to architecture limits or flags). Closes: #570373
Joey Hess [Fri, 19 Feb 2010 17:57:27 +0000 (12:57 -0500)]
makefile buildsystem: Chomp output during test for full compatability with debhelper 7.4.11. Closes: #570503
Previously the test used make -s -n | head -n 1 and then chomped the
output. In the case of this bug, root-system's Makefile *always* outputs
something to stdout, even for targets that don't exist, before configure is
run. It accidentially worked before, since the first line it outputs
happens to be empty.
So bring back the chomp to retain compatability with this package that used
to work before, but the test only does the right thing for this package due
to sheer luck, really.
Joey Hess [Thu, 18 Feb 2010 21:37:31 +0000 (16:37 -0500)]
The fix for #563557 caused some new trouble involving makefile that misbehave when stderr is closed. Reopen it to /dev/null when testing for the existance of a makefile target. Closes: #570443
Joey Hess [Thu, 28 Jan 2010 05:48:26 +0000 (00:48 -0500)]
update from Kel
Here is yet another revision which sets the PREFIX variable to '/usr' which
seems commonly used by Qt projects. Also removed the -e test discussed
previously.
Joey Hess [Wed, 6 Jan 2010 18:21:45 +0000 (13:21 -0500)]
fix bad interaction between -O and ignore_unknown_options
Actually, since ignore_unknown_options is only used with
DH_INTERNAL_OPTIONS, which always uses -O for such options, I was able to
remove that complication too.
Joey Hess [Mon, 4 Jan 2010 23:41:51 +0000 (18:41 -0500)]
solve the dh -Bbuild problem
* Add -O option, which can be used to pass options to commands, ignoring
options that they do not support.
* dh: Use -O to pass user-specified options to the commands it runs.
This solves the problem with passing "-Bbuild" to dh, where commands
that do not support -B would see a bogus -u option. Closes: #541773
(It also ensures that the commands dh prints out can really be run.)
Joey Hess [Mon, 4 Jan 2010 21:06:08 +0000 (16:06 -0500)]
Fix warning about unknown options passed to commands in override targets.
dh used DH_OVERRIDE_UNKNOWN_OPTIONS, which was too broad as it affected
commands run via override targets and caused there to be no warning about
unknown options.
Now unknown options are only ignored when parsing DH_INTERNAL_OPTIONS and
dh's own options.
Joey Hess [Tue, 29 Dec 2009 20:27:20 +0000 (15:27 -0500)]
stop trying to handle substvars idempotently
In the beginning, I tried to be careful to have commands that added a
substvar remove it when ran again with different options that caused it
to not be needed. However, now when I look over the code, I see 3 places
that got it right, 1 that was right but I just broke, and a dozen that
don't even try to handle this case.
Also, handling the case is hard; code that adds substvars may be complex
and calculate versioned dependencies. The removal code then has to somehow
also come up with those same exact dependency strings. It's a recipe for
nasty code and maintenance headache even if I went and fixed everything
right now.
Instead, I dropped the whole thing. Many debhelper commands make no
pretense of being idempotent anyway; it's easy and normal to call dh_prep
when starting a binary package build, with the exact purpose of not needing
to worry about idempotency.
I did leave in the delsubstvar function, as well as the option to
addsubstvar that, confusingly, causes an item to be removed. Just for
library compatability reasons.
Joey Hess [Tue, 29 Dec 2009 20:11:44 +0000 (15:11 -0500)]
dh_installxfonts: Use new update-fonts-alias --include and --exclude options to better handle removal in the case where xfonts-utils is removed before a font package is purged. (#543512; thanks, Theppitak Karoonboonyanan)
This patch adds --parallel option that enables parallel builds and does not
impose limits on maximum concurrent processes. --max-parallel (that implies
--parallel) can be used to specify that maximum limit.
Also make necessary adjustments to debhelper.pod and buildsystem_tests for
this option.
Remove legacy punctuation hacks tests which no longer work by design.
I assume backwards compatibility in this area was broken by design. Adding
--max-parallel to these in 6dd27753803ae2091a9fc3aedc8e70548ea87675 was wrong
and negated their whole point, i.e. testing of backwards compatibility when
parallel options were not supported.
(cherry picked from commit ca0ad4922ada7ae013b035cfe1550a257a330809)
Joey Hess [Mon, 23 Nov 2009 18:54:31 +0000 (13:54 -0500)]
Parallel building support is no longer enabled by default. It can still be enabled by using the --max-parallel option. This was necessary because some buildds build with -j2 by default.
Modestas Vainius [Thu, 19 Nov 2009 18:58:39 +0000 (20:58 +0200)]
cmake build+ steps need Makefile.
The condition is not what dh_auto_* 7.0.x would have done. The
patch makes auto-selection to pass through cmake.pm if Makefile
was not created. This problem is not very dangerous though.
Modestas Vainius [Thu, 19 Nov 2009 18:45:14 +0000 (20:45 +0200)]
Make buildsystems_list() use updated auto-selection code.
In order to avoid code duplication, auto-selection code has been refactored
into separate subroutine autoselect_buildsystem(). Both load_buildsystem() and
buildsystem_list() use it.
Cyril Brulebois [Thu, 19 Nov 2009 02:33:52 +0000 (03:33 +0100)]
Fix build system auto-selection breakage.
Probably due to an overlook in 758ce0bb1f, the '-e' test on build.xml
disappeared, leading check_auto_buildable() to always return '1' for
the ant build system.
Modestas Vainius [Wed, 18 Nov 2009 19:16:41 +0000 (14:16 -0500)]
Improve build system auto-selection process
This patch alters semantics of check_auto_buildable() a bit. Now it can
also indicate if the source has already been partitially built with the
build system and if so, such build system may be auto-selected over a less
specific its parent (in the inheritance tree) even if the latter is earlier
in the @BUILDSYSTEMS array.
However, this still leaves a requirement that a derivative build system
must not do anything that may break packages of the parent build system.
Otherwise, introduction of a new derivative build system might break
packages which already had that build system implemented via overrides...
Modestas Vainius [Tue, 17 Nov 2009 01:40:26 +0000 (20:40 -0500)]
Enable verbose ctest output on test failure
When test fails, enable verbose ctest output. This allows to
get more details on a test failure from the build logs.
Auto-select cmake in further steps only if cmake was run in configure step.
CMake writes CMakeCache.txt to build directory when it is run. Depend on the
presence of this file for auto-selection in build, test, install and clean
steps.