Age | Commit message (Collapse) | Author | Files | Lines |
|
Update to 589t.
|
|
We check for a specific version of perl and store that in the PERL
variable. But the shebangs on several test scripts hardcode a specific
perl that might not be present or might not be recent enough. Always
invoke perl scripts explicitly with PERL, or implicitly by letting the
currently running interpreter use itself.
|
|
Delegate the setting to gcc builtin or an explicit request by a user.
This is needed to cope with the general PIE brokenness situation in
Debian, and the current specific brokenness of a Debian gcc patch
mangling the dpkg build flags.
This is wrong in so many levels, as we'll have discrepancies between
architectures, the interface towards maintainers is inconsistent, and
updating the PIE support needs touching and coordinating two places. But
it's certainly the current lesser evil.
Closes: #848129, #845550
|
|
Specifically kfreebsd-amd64, kfreebsd-i386, sparc and sparc64.
|
|
Closes: #855450
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
If the ELF class or endianness are unknown or bogus, ignore the file.
Reported-by: Niels Thykier <niels@thykier.net>
|
|
Emit an explicit warning whenever we cannot detect the format for
an executable object, instead of delegating this to the subsequent
objdump, and letting it die, which ca be canfusing and is not
future-proof.
Closes: #854536
|
|
The rest of the code handles non-binary files (ELF in this case)
gracefully and ignores them, even though not very explicitly, as
objdump will emit a warning that might be difficult to decrypt.
We will still fail for other read failures that are not just
short-reads, as those imply some actual problem with the passed files.
Closes: #854536
|
|
The affected code in NetBSD was bogus, and has been removed now. So
there is no point in trying to special case the EM_SPARC32PLUS ELF
machine ID depending on the ELF class, for something that should never
happen.
Ref: https//gnats.netbsd.org/51925
|
|
All the currently planned changes have been done, let's bump the format
version to denote a stable format, which will not change in incomatible
changes any more without bumping the major version component.
|
|
The dependency traversal code is currently broken, and this mostly
papers over the issue. Properly fixing this involves changes all over
the place, which would be too intrusive for this series.
We should handle this gracefully, instead of letting perl die.
Closes: #849944
|
|
Missed in commit 98b3341f5f46866208862ff40e4336ff1a7e1cd3.
|
|
|
|
|
|
These are too unreliable for exact matches. There are objects with
EABIv4 in the wild, even when the current is EABIv5. The soft and
hard float flags are not always set on armel and armhf respectively,
although the Tag_ABI_VFP_args attribute in the the ARM attribute
section should always be present on armhf. And there are cases were
both soft and hard float flags are set at the same time(!).
Mask all flags on ARM, so that we get back to the previous behavior
with objdump. We can try to revisit this for a better matching during
the dpkg 1.19.x cycle.
Closes: #853793
|
|
Update to 588t.
|
|
|
|
restrictions"
This reverts commit 9899bdcf9bde76d969b124abf0a898fcbb202c70.
This change is contentious and should have been discussed more widely.
Given that this has been live only for a couple of days, the impact
should be minimal, but still something to take into account once and
if this gets reintroduced, in the same or different form and shape.
Closes: #852820
|
|
Some ELF binaries contain alternative or old ELF machine types, which
should match with their canonical forms. Map those before encoding the
ABI.
We ignore some mappings for things that should certainly never appear
in current systems. Of note are EM_PPC_OLD (17) that conflicts with
EM_VPP550 (17), and EM_PJ_OLD (99) that conflicts with EM_SNP1K (99).
Warned-by: rebootstrap
|
|
|
|
On Linux systems the flock() locks get converted to file-range locks on
NFS mounts, which makes it safe.
The correct solution here will be to completely get rid of the need to
do any locking, which should also make parallel builds faster.
Addresses: #677865 (on Linux)
|
|
There was no option to disable signing globally, so many users and
tools rely on the two existing options to disable it. But with the
introduction of signed .buildinfo files, there is no way for old tools
to request the right thing.
Abuse --unsigned-changes to mean not signing .buildinfo either.
Closes: #852822
|
|
This option disables signing any file. This makes this option
a future-proof way to disable all signing, in case we add yet more
files to sign, so that programs do not have to keep learning what
options to pass.
|
|
This way when unpacking for output, the result gives meaningful results.
|
|
These do not define the ABI, and seem to be set depending on the ISA
used. Mask them for now, and postpone possibly making more fine-grained
matching in the future.
|
|
Update to 588t.
|
|
|
|
Add new options -ui and --unsigned-buildinfo.
Closes: #843925
|
|
The loop is per package stanza, so we need to parse both fields
separately.
Based-on-patch-by: Johannes Schauer <josch@debian.org>
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
Only count the binaries that we are going to include in the upload,
instead of guessing using implicit counts.
|
|
The .buildinfo file also makes sense on source-only uploads, because it is
still a build. And more so when we have done a full build, but filtered the
changes to only include the sources in the upload.
In any case, this was the intended behavior from the beginning.
Closes: #846164
|
|
Just generate the list correctly when doing the initial filtering
instead of having to do a useless two-pass.
|
|
We should not include architectures for artifacts we are not going to
distribute. And we should not recompute the checksums for artifacts we
have already computed.
|
|
This reverts commit cae957871dad79bbd48e264611ad3b4ca146dd7c.
This was done to handle the .buildinfo files, but the changes is bogus,
as it breaks the historical behavior of taking into account non-deb
files such as by-hand ones.
|
|
Move the if conditional from outside to inside the loop, this way
removing one nesting level.
|
|
Missed in commit dad593660d922abce634542b43e9d56b03228a8c.
|
|
This will make it possible to enable or disable specific features that
should be recorded in the .buildinfo file. For now only “all” and “path”
are supported.
Closes: #848705
|
|
This has been refactored from Dpkg::Vendor::Debian, to have a generic
option parser.
|
|
The previous ELF ABI mismatch detector was very naïve, as the string
returned by «objdump -a» is a very simplistic representation of the
ELF ABI used.
Switch to our own ELF header parser, so that we can distinguish based
on the fields that define the object ABI.
This is still not enough, and we will have collisions with things such
as linux-i386 and hurd-i386, but most of the previously colliding
objects are now filtered.
This also makes us independent of objdump not supporting any unknown
ELF object ABI.
Closes: #849913
|
|
Switch scripts to use the new function instead of using ad-hoc
implementations.
|
|
This information is currently only available in the Restrictions field in
the debian/tests/control file.
When dispatching tests, it might be inconvenient to have to download and
unpack the source package beforehand. Let's expose this via the .dsc in
a similar way we do for the Testsuite-Triggers field.
Closes: #847926
Based-on-patch-by: Iain Lane <laney@debian.org>
|
|
Call set_testsuite_triggers_field() from inside set_testsuite_fields(),
so that we do not have to perform the same checks more than once.
|
|
The code was returning all keys and values for %default_substvars,
when instead we should have been requesting all %default_substvars
and %options keys.
|
|
|
|
Update to 589t.
|
|
If we do not have a date from the changelog set it to the current time.
Closes: #849081
|
|
When there's at least one colon or one dash, we should expect epoch
and revision numbers.
|
|
This field is used to distinguish packages that have been automatically
injected by some build tool, and are not present in the debian/control
file.
|
|
And fix the documentation while at it, which was incorrect code.
|
|
Warned-by: codespell, spellintian
|