Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
We support a new source package Description field in debian/control
that will be copied into the .dsc file. The field will also be used
to initialize the new source:Synopsis and source:Extended-Description
substvars that will be available when generating the DEBIAN/control
and .changes files.
Closes: #555743
|
|
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
|
|
Implement the rootless-builds specification, by honoring the
Rules-Requires-Root (R³) field.
|
|
|
|
|
|
Change field name handling to always work with them as lowercase, add a
new name key to store the capitalized form, and use that when we need
to return that form instead of computing it on every instance.
|
|
The CTRL_PKG_DEB and CTRL_FILE_STATUS types were missing some allowed
fields in their order list, which meant that the field information was
not coherent.
|
|
|
|
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
|
|
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>
|
|
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.
|
|
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.
|
|
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>
|
|
These are strongly discouraged by the man-pages project, because they
are redundant with the copyright notices, and tend to get out-of-sync.
In addition their format is inconsitent. Just remove them in the same
way we did for man pages in the past.
|
|
Sometimes autopkgtests regress due to change in a package which is only
a test dependency (Depends: in debian/tests/control), not a build or
binary one. It is useful to trigger a test if such a test dependency
changes.
Record the union of all test dependency packages in a new
Testsuite-Triggers field in the .dsc, so that they will be recorded in
the Sources package index. Ignore versions and flatten OR dependencies
as they are not interesting for determining reverse test dependencies
and should not be (ab)used for replacing debian/tests/control parsing.
Closes: #779559
LP: #1491145
Based-on-patch-by: Martin Pitt <martin.pitt@ubuntu.com>
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
Add new CTRL_TESTS control types, new Dpkg::Control::Tests and
Dpkg::Control::Tests::Entry modules, add support for the fields that
can appear on these control files, and update Dpkg::Index to handle
them as well.
[niels@thykier.net: Fix logic inversion. ]
|
|
This field contains the date of the entry in seconds since the epoch. To
make it easier to retrieve the date in a format that is easier to handle.
|
|
|
|
The types are CTRL_COPYRIGHT_HEADER, CTRL_COPYRIGHT_FILES and
CTRL_COPYRIGHT_LICENSE. These describe the different control blocks
of a machine readable debian/copyright file, as specified in
<https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/>.
|
|
|
|
Closes: #806315
|
|
This field is part of the status field.
|
|
|
|
This has two purposes, first it will make it easier to know if the
module version needs to be bumped for the current development release,
and second it will make it easier for users to know how "old" that
module version is, and to which dpkg series and specific version it
corresponds to.
|
|
Place 'use' strict and warnings first, then Exporter 'our' declarations,
then Test module imports, then system module imports, then Dpkg module
imports, then 'use' parent and overload pragmas, separated by a blank
line for each block.
Split each exported symbol declaration into its own line to ease
modifications.
|
|
|
|
The old function name was inconsistent with the other gettext family
of short aliases which has already caused some code typos, and functions
starting with underscore are considered by convention private in Perl.
|
|
This makes it clear what is the current version of the module, and that
it is a public interface.
|
|
Addresses Subroutines::RequireArgUnpacking.
Warned-by: perlcritic
|
|
Add two new optional values to the Packages-List field, with
architecture and build-profiles information. These values have the
form «name=value1,value2», and might appear in any order after the
mandatory values.
This allows to run bootstrapping analysis over the Sources package
indices.
Requested-by: Johannes Schauer <j.schauer@email.de>
Suggested-by: Raphaël Hertzog <hertzog@debian.org>
|
|
This field is used to specify what type of test suite is present
in the source package. The values within are comma separated.
|
|
|
|
This adds the basic infrastructure support for a new class of generic
build-time dependency restrictions, and in particular implements the
specific build profiles, which will allow to cull build dependencies
depending on the profile being used. There's several things this can
be used for, like new port bootstrapping, reduced package builds, and
similar. In the future other kinds of restrictions could be added as
the build profiles are namespaced with “profile.”. An example field
could be:
Build-Depends: exotic-compiler, libneeded-dev, tool-tiny,
tool-huge (>= 1.0) [linux-any] <!profile.embedded !profile.bootstrap>
or even stuff like:
Depends: net-tools <profile.network>, plugin-curl <!profile.no-plugins>
The generated binary packages and .changes files will get a new
Built-For-Profiles field containing the active profiles during the build.
In addition the build profile can be selected using the environment
variable DEB_BUILD_PROFILES, with space separated values, such as:
DEB_BUILD_PROFILES="embedded bootstrap"
The management and possible registration in the profile namespace is
currently out of scope in dpkg, this should probably be handled by a
distribution specific process.
See draft <http://www.hadrons.org/~guillem/debian/docs/embedded.proposal>.
Closes: #661538
Based-on-patch-by: Patrick "P. J." McDermott <pjm@nac.net>
Based-on-patch-by: Wookey <wookey@debian.org>
Based-on-patch-by: Johannes Schauer <j.schauer@email.de>
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
|
|
This information helps when needing to handle the field values
semantically.
|
|
Move the bulk of the code into two new vendor-neutral Core sub-modules
Dpkg::Control::FieldsCore and Dpkg::Control::HashCore, that get
imported by Dpkg::Control::Fields and Dpkg::Control::Hash respectively;
so that modules like Dpkg::Control::HashCore can make use of
Dpkg::Control::FieldsCore w/o getting into a circular import due
to Dpkg::Vendor previously using Dpkg::Control::Hash.
The old dependency graph would have been:
Control::Hash → Control::Fields
↑ ↓
Vendor
The new one would be:
Control::Hash → Control::Fields
↓ ↓ ↓
↓ Vendor ↓
↓ ↓ ↓
Control::HashCore → Control::FieldsCore
|