Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Then we can make dh_installinitramfs do the same in all compat levels
and people can simply opt-in with a "--with installinitramfs" in older
compat levels.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
|
|
Closes: nthykier/debhelper#3
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
As of commit d68d6751a86052246433bf4381a5f8daac45f90d, the
SequencerUtil function "unpack_sequence" should correctly transform
the "compat 9"-style sequences into "compat 8"-style sequences.
Exploit this to avoid the duplicated definitions.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
It is not a super name, but "optimize" implies that dh will work if
you skip the call. By renaming it to unpack we avoid that implication.
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>
|
|
This will make it easier to see that the code is dead once compat 9
is removed.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Thanks to James Cowgill for finding this bug.
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
This is part of 2 of the dh sequence rewrite. Part 1
is cb2caa7f67837294b0681d881f52dd23df487f33.
This change ensures that dh no longer attempts to run a target that is
already marked as complete (e.g. via the stamp file).
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Rewrite the way we compute the sequences to ensure that:
1) Rules target remain opaque (particularly "subtargets" are now
also opaque).
2) Opaque targets are run first, so they can run their subtargets
before dh runs a command that depends on it.
This is the first half of fixing Debian#880840.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
This is intended to be used by downstreams or specific local configurations
that require a debhelper addon to be run during multiple builds without
having to patch a large number of rules file. If at all possible, this should
be avoided in favor of a --with flag in the rules file.
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>
|
|
Anything relying on this would fail under -B or -A builds, so abuse
should have been weeded out by now.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Turns out that some debhelper sequences try to inject themselves
*before* dh_testdir. Concretely, dh-di (--with d-i) being an example.
While I find the use rather questionable at first glance, I am not
going to break their code.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
As it turned out in 333376abf9c4d6e8f286a7cbda7e8c13307745f3,
dh_testdir is called too late to provide its "helpful" error message.
Accordingly, dh itself has to print it directly now (via getpackages())
for the user to get the correct error message.
This literally makes dh_testdir useless under dh in its default
configuration. While it is possible to override dh_testdir and have
it check for other files, it is largely an unused feature - even more
under dh.
On the plus side, we seem to save 2x 0.040s by doing this per build.
Assuming 70% of the 25 000 source packages in Debian are using dh,
this translates into a 23 "core-minutes" saving on an single
architecture archive-wide rebuild (e.g. arch:amd64 plus arch:all).
Somehow, I hope I got the math wrong because it seems obscene...
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>
|
|
Use $main::VERSION to determine the version of the tool and embed that
into auto-generated snippets (e.g. via autoscript). This enables
lintian to extract the tool + version and display it on:
https://lintian.debian.org/tags/debhelper-autoscript-in-maintainer-scripts.html
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>
|
|
It made dh skip "-arch" and "-indep" targets.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
There is no point in loading a sequence that conditionally adds a tool
that no longer exists. Just give a deprecation warning for people
still explicitly loading it and drop the rest.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
With "enough" packages, pkgfile is still a very expensive part of dh.
Mostly due to the can_skip check which often need to call pkgfile to
determine if a helper can be skipped. By doing a "bulk check" we can
reduce that overhead by about roughly 50% (20-25% of dh's total
runtime).
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
It does not matter that much for actual performance, but it does seem
like it under Devel::NYTProf. By juggling these loops around, we
avoid some minor unnecessary work and Devel::NYTProf now produces more
accurate reports.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Save an inner loop over all packages for empty overrides. This makes
empty overrides a lot cheaper when there are many packages.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Each time pkgfile is called, it will glob the debian/ dir (with a
filter). Obviously this adds up, but unfortunately, glob is a lot
cheaper in some cases than calling buildarch()/buildos(), which
requires Dpkg::Arch.
To solve this, we implement a cache of the globbing so we at most glob
once per file name. Depending on that result, we will now
unconditionally check for architecture qualified files or not.
This should make both cases faster for 2+ packages. It should also
apply to dh when checking if it can skip a command. When testing
about 500 empty "transitional" packages, we save about 7-8% run time
for dh_install.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
This fixes a bug, where dh would replay a command added to the
"build", "build-arch" or "build-indep" sequences (via --with $ADD_ON)
in the binary sequences.
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Gpb-Dch: Ignore
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|
|
|
|
Signed-off-by: Niels Thykier <niels@thykier.net>
|