Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Several of the build systems consists of a configure step that
generates a buildscript for another build tool. Notable examples
being "cmake" and "meson", which even supports multiple backend tools.
This change makes it natively possible for debhelper to support such
build systems with multiple backends.
Note that only build systems with multiple backends have been
rewritten.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Move Debian/ to lib subdirectory to support building on
non-case-sensitive filesystems.
|
|
This reverts commit 18a301de0e6baf81d110d1b07d71d005a6ba7ee7.
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
autopkgtest-pkg-perl's smoke test fails all over the place because
debhelper's testsuite has many assumptions that it is run from the source
tree, while autopkgtest-pkg-perl's smoke test copies (by default) the t/
directory to a new empty directory and runs the tests from there.
Add debian/tests/pkg-perl/smoke-files to copy more files from the source
tree which are used in tests.
Add debian/tests/pkg-perl/smoke-skip to skip t/size.t which fails when run
under autopkgtest-pkg-perl because it tests all /usr/bin/dh_* helpers, and
at least dh_autotools-dev_updateconfig is too large.
Change t/buildsystems/03-bs-auto-buildable.t,
t/buildsystems/buildsystem_tests.t, t/override_target.t, t/size.t, and
t/syntax/syntax-progs.t to look for scripts and modules not in the source
tree but in the installed directories when run under autopkgtest.
With these changes, the test suite passes both during build and during
autokpkgtest.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Fix a test that failed when "prove" was called without the "t" dir
explicitly. I.e.
prove -lr t # works
prove -lr # failed
Now both works.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Set the local variables for Emacs in the central placed intended for
it, rather than in (currently) 95 individual files.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Not all auto-selectable third-party build systems can handle being
loaded in the conditions of the debhelper test suite. Also, it seems
prudent for the tests to work independently of the build environment
having extra build systems installed.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
When the build system is autoconf, assume that one also uses automake,
and pass VERBOSE=1 to make check too. Without VERBOSE=1, newer
automake-generated makefiles will not display the actual test errors,
but store them in a file. This makes build logs considerably less useful
when it comes to discovering test failures.
With VERBOSE=1 set, test failures are displayed. It should have no ill
effects when used with a non-automake makefile + autoconf combination.
The test suite was updated to reflect the changes, and new tests were
added to verify the new functionality.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
If DH_QUIET is set, give configure a --enable-silent-rules.
If it is not set, always give --disable-silent-rules (Closing #551463
for good).
|
|
Can this test be written w/o using --after?
|
|
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.
|
|
|
|
Testing this is sensative to what FDs are inherited by the test script.
After the recent fix, it started breaking another way.
|
|
|
|
|
|
How perl didn't fail one this is beyond me.
|
|
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.
|
|
So use -f for ln. It is safe.
(cherry picked from commit d89a2c6d2c7148f6e890c0c11e64b92982d3f869)
|
|
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)
|
|
dpkg-buildpackage -jX detection is gone so these tests were redundant.
(cherry picked from commit fd6880eddac9bde6ecdec514a83a169f36316b6a)
|
|
|
|
|
|
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.
|
|
When sourcedir/builddir is empty, check if:
1) auto-selection does not select any build system;
2) check_auto_buildable() returns numeric 0 for all auto-selectable
build systems.
|
|
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...
Signed-off-by: Modestas Vainius <modestas@vainius.eu>
|
|
|
|
|
|
Now clean_jobserver_makeflags will only remove --jobserver settings
from MAKEFLAGS. This is simpler and easier to understand than
the old behavior, which, if there was no --jobserver, removed
all -j and --jobs, while leaving those when removing --jobserver.
This relies on -j options passed to make overriding
-j settings in MAKEFLAGS. So we don't need to clean those out,
we can just override them.
|
|
I disliked the complexity of the return values, and the boilerplate
code that followed the two calls to the function, to clean/unset
MAKEFLAGS. To solve both, I refactored it into two functions, one simply
tests to see if a jobserver is specified but unavailable, while the other
cleans/unsets MAKEFLAGS.
This loses the ability to pull the jobs-N count out of MAKEFLAGS,
but that was not currently used.
|
|
1) Add routine to Dh_Lib (used by dh and makefile.pm) which is capable of
detecting make jobserver and job control options from the MAKEFLAGS environment
variable. It also generates and returns a clean up MAKEFLAGS from these
options.
2) Add --parallel option to build system framework which allows source packages
to specify that they support parallel building. Optional value for this option is
the number of maximum parallel process to allow. However, the actual number of
parallel process (if any) for the specific build is determined from
DEB_BUILD_OPTIONS env variable as specified by Debian Policy.
By default (no --parallel option) parallel is neither enabled nor disabled
(depends on the external environment). However, dh may pass --parallel to
dh_auto_* implicitly in case 4) described below.
3) Add parallel support for makefile buildsystem. This implementation
forcefully starts a new make job server (or disables parallel) for the number
of process requested. If --parallel was not passed to the build system at all,
the build system will only clean up MAKEFLAGS from stale jobserver options to
avoid pointless make warnings.
4) If dh detects that it is being run by dpkg-buildpackage -jX and it is NOT
run with "+" prefix from debian/rules (i.e. jobserver is not reachable), it
enables --parallel implicitly. This closes: #532805.
Signed-off-by: Modestas Vainius <modestas@vainius.eu>
|
|
|
|
It was only used by the test suite, and while symetrical I don't
feel that justifies keeping dead code.
|
|
Signed-off-by: Modestas Vainius <modestas@vainius.eu>
|
|
If build directory is absolute or ../ path, _rel2rel falls back to
absolute paths. Try even harder to convert supplied builddir to
relative in _set_builddir().
Signed-off-by: Modestas Vainius <modestas@vainius.eu>
|