summaryrefslogtreecommitdiff
path: root/scripts/dpkg-genbuildinfo.pl
AgeCommit message (Collapse)AuthorFilesLines
2019-10-12dpkg-genbuildinfo: Do not include irrelevant packages in the Binary fieldGuillem Jover1-1/+11
This change is the companion to the one in dpkg-genchanges that lists only relevant packages, instead of all the ones listed in debian/control, but for the .buildinfo file instead of the .changes file.
2019-02-23dpkg-genbuildinfo: Add support for a new Build-Tainted-By fieldGuillem Jover1-0/+2
This field will contain a list of tainting reason tags, which can denote that the current build has potentially been broken. Suggested-by: Alexander E. Patrakov <patrakov@gmail.com>
2018-09-18perl: Replace all calls to Cwd::cwd with Cwd::getcwdJosh Triplett1-1/+1
The former calls /bin/pwd, while the latter uses the getcwd() syscall directly. Signed-off-by: Guillem Jover <guillem@debian.org>
2018-05-03Revert "Dpkg::Deps: Accept $archqual for add_provided_package() method"Guillem Jover1-2/+1
This reverts commit 83272497c5be8c4e703ab179906cf904465fe775. This commit introduced a regression in the author test suite. And there's a patch by Johannes 'josch' Schauer <josch@mister-muffin.de> which should be fixing this and other problems. If this is needed after all, we will need to refactor the functions first to take a hash instead of a long list of arguments.
2018-03-25Dpkg::Deps: Accept $archqual for add_provided_package() methodGuillem Jover1-1/+2
2018-03-25Dpkg::Deps: Turn virtualpkg tracking from an arrayyref into a hashrefGuillem Jover1-2/+1
This is more extensible and more clear.
2017-10-12dpkg-genbuildinfo: Add support for new Build-Kernel-Version fieldGuillem Jover1-0/+9
Packages intended to be built in a generic way must never rely on the currently running kernel on the build system (an exception could be an optimization rebuild using the current system as the reference baseline). But to be able to detect when a package might not be reproducible due to varying kernel information it is still useful to be able to record this information. Although that information can be very sensitive. When the builder has explicitly enabled the Build-Kernel-Version field with the new dpkg-genbuildinfo --always-include-kernel option, it will get included in the generated .buildinfo file. Closes: #873937
2017-09-24Dpkg::File: Move file_lock() into a new Dpkg::Lock moduleGuillem Jover1-1/+1
This reduces the load chain for several Dpkg modules.
2017-07-11dpkg-genbuildinfo: Always use the binary version for the .buildinfo filenameGuillem Jover1-2/+3
We should use the binary (instead of the source) version for the .buildinfo filename, otherwise on binNMUs the filename will be wrong. Reported-by: Raphaël Hertzog <hertzog@debian.org>
2017-05-20Dpkg::Util: Remove and replace with core module List::UtilGuillem Jover1-1/+1
Our current minimal Perl version contains a new enough List::Util module implementing none and any, and several other functions.
2017-05-17dpkg-genbuildinfo: Add duplicate prevention code for debian/filesGuillem Jover1-1/+13
We should do something similar to what dpkg-gencontrol is doing, by preventing duplicated entries for the same file with different versions. In this case, because the assumption is that there can ever only be one buildinfo file for a «source» or «all» build, but possibly multiple for arch-specific builds (from another build driver than dpkg-buildpackage), we filter based on this.
2017-02-26dpkg-genbuildinfo: Declare .buildinfo format as stable with version 1.0Guillem Jover1-1/+1
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.
2017-02-26dpkg-genbuildinfo: Handle unmatched virtual arch-qualified packagesGuillem Jover1-0/+1
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
2017-01-27dpkg-genbuildinfo: Fix parsing of Pre-Depends and DependsGuillem Jover1-1/+3
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>
2017-01-26dpkg-genbuildinfo: Add initial support for DEB_BUILD_OPTIONSGuillem Jover1-3/+9
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
2016-11-16dpkg-genbuildinfo: Bump Format to version 0.2Guillem Jover1-1/+1
2016-11-16dpkg-genbuildinfo: Use deterministic .buildinfo filenamesGuillem Jover1-13/+12
Using undeterministic filenames based on the buildinfo-id produces ugly looking filenames, which get left behind when rebuilding the same source multiple times as they vary by date. There's really no great point in using unique filenames as they will end up with different contents depending on the builder.
2016-11-16dpkg-genbuildinfo: Add Build-Date fieldGuillem Jover1-2/+12
This records the time the build happened. This might be useful when there is a need to track down problems caused by external time-based events not visible from inside the build system. Things like hardware, software deployment or other such failures.
2016-11-16dpkg-genbuildinfo: On source builds add source to the Architecture fieldGuillem Jover1-0/+2
2016-11-11Dpkg::Build::Info: New module refactored from dpkg-genbuildinfoGuillem Jover1-23/+6
This will allow other projects to use the same whitelist as dpkg does. Requested-by: Johannes Schauer <josch@debian.org>
2016-11-05dpkg-genbuildinfo: Use an intermediate variable to placate perlcriticGuillem Jover1-1/+2
The code is fine, but perlcritic seems to have issues properly parsing it. Let's help it by using an intermediate variable. Addresses RegularExpressions::ProhibitUnusedCapture. Warned-by: perlcritic
2016-11-03dpkg-genbuildinfo: Filter .buildinfo files from checksums inclusionGuillem Jover1-0/+3
This makes the script slightly more idempotent by filtering the only file it generates and registers itself.
2016-11-03dpkg-genbuildinfo: For binary builds expect at least one binary artifactGuillem Jover1-8/+10
If we are doing a binary build, we should expect at least one binary artifact, and fail otherwise, instead of just always emitting a warning due to missing binary artifacts. Reported-by: Sven Joachim <svenjoac@gmx.de>
2016-11-03dpkg-genbuildinfo: For source builds always assume the .dsc is presentGuillem Jover1-8/+1
If we are doing a source build, we should just expect the source to be available, and fail otherwise, instead of just emitting a warning.
2016-11-03scripts: Add support for .buildinfo filesGuillem Jover1-0/+491
The .buildinfo files are a new type of control files, similar to the .changes files, meant to describe the environment of a build and its artifacts. They are meant to be added to the Debian archive to allow independent parties to reproduce a build and verify the result. Specifications for .buildinfo are available at: <https://wiki.debian.org/ReproducibleBuilds/BuildinfoSpecification> This patch adds support for .buildinfo files in Dpkg::Control, adds new .buildinfo fields to Dpkg::Control::Fields, a new builtin-system-build-paths Dpkg::Vendor hook, and adds a new script named dpkg-genbuildinfo, that will now be called by dpkg-buildpackage before generating the .changes file. [ntyni@debian.org: small changes. ] Closes: #138409 Based-on-patch-by: Jérémy Bobbio <lunar@debian.org> Signed-off-by: Guillem Jover <guillem@debian.org>