Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Fixes Subroutines::ProhibitReturnSort.
Warned-by: perlcritic
|
|
Fixes TestingAndDebugging::RequireUseStrict and
TestingAndDebugging::RequireUseWarnings.
Warned-by: perlcritic
|
|
This makes sure the functions always return the appropriate value
independent of the context.
Fixes Subroutines::ProhibitExplicitReturnUndef.
Warned-by: perlcritic
|
|
Make sure that no fields are injected before a signed block.
Although the only possible attack is to add fields not present in the
signed block, as otherwise a syntax error due to duplicate field is
triggered.
|
|
Make sure the OpenGPG armor contains a signature block, even on EOF.
This should get detected and rejected by gpgv anyway, but it's better
to check the structure of the message before doing any further parsing
on it.
|
|
Change parsing code to honour RFC4880. Handle whitespaces at EOL, and
correctly expect five trailing dashes on the Armor Header Lines.
Closes: #695919
Reported-by: Ansgar Burchardt <ansgar@debian.org>
|
|
This allows to mark changelog entries as being for a binary-only upload,
which implies there cannot be any source produced, and the binary
version is going to be different to the source version.
As such the version substvars will get different values, w/o needing to
hardcode a specific syntax. Although we fallback to the old syntax just
in case, for example to handle possible multiple consecutive binary-only
entries w/o needing to complicate the code too much.
Closes: #440094, #672723
|
|
These were made not visible as fields in commit
825656afe3e9856dc846c225df8af73d2376fa3e.
|
|
The definition of the function appears later on, and perl 5.16 gives
warnings about usage before declaration.
Closes: #676262
|
|
dpkg currently supports
Build-Depends (arch all and any)
Build-Depends-Indep (arch all)
and the same Build-Conflicts.
This patch adds
Build-Depends-Arch (arch any)
and Build-Conflicts-Arch.
This makes the support for build dependencies for arch all and any
packages symmetrical and more logical. It also permits arch-any
dependencies to be omitted for arch-all-only builds.
This change will not break any existing packages: if the arch any
deps are in Build-Depends, they may be installed unnecessarily,
but they will still be installed. This change just allows an
additional optimisation, and tidies up a slight omission in the
original implementation of build dependencies, and would give the
buildds additional options when arch-all autobuilding is enabled
(especially now it's available as a separate independent arch).
Closes: #629480
Signed-off-by: Roger Leigh <rleigh@debian.org>
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
Use the new member instead of setting and then marking the substvars.
|
|
When runnung a Perl script that repeatedly creates unreferenced
Dpkg::Control objects, the perl process consumes memory without limit.
A one-line sample:
perl -MDpkg::Control -e 'Dpkg::Control->new while 1'
It would be expected from a script like this to have a constant memory
usage, as the Dpkg::Control objects are garbage-collected soon after
being created. What happens instead, is that after running for thirty
seconds, perl has consumed over 100 MiB of memory.
By contrast, the same test using Dpkg::Index consumes a constant 6 MiB.
This problem effectively means that a process can't operate on a large
number of Dpkg::Control objects sequentially.
The cause of the problem appears to be a circular reference between a
Dpkg::Control::Hash and its contained tied hash. This patch explicitly
breaks this loop when a Dpkg::Control::Hash is destroyed, following
the advice in perlobj(1).
Closes: #669012
Signed-off-by: Guillem Jover <guillem@debian.org>
|
|
|
|
|
|
This reverts commit 14d48ef9abc2ce2d394e9ae4d69d4ba68b551620. Given
that Guillem does not want this field and that the technical committee
has not yet decided on the proper approach to enable
build-arch/build-indep, it's safer to revert this change for now and allow
us to proceed with a release.
Conflicts:
man/deb-src-control.5
|
|
Instead of as being of exclusive use or owned by APT, which has never
been the case. Those files existed long before APT even existed.
|
|
We're now ensuring that debian/control contains a source entry
and at least one entry for a binary package. And we also ensure
that the Architecture field is present. This a new restriction
but it's really in-line with the change made in dpkg where we
complain of the lack of this field.
Reported-by: Niels Thykier <niels@thykier.net>
|
|
With this flag set in debian/control, dpkg-buildpackage will use
"debian/rules build-arch" or "debian/rules build-indep" when
appropriate.
Improved-by: Raphaël Hertzog <hertzog@debian.org>
Signed-off-by: Raphaël Hertzog <hertzog@debian.org>
|
|
This field has been requested by ftpmasters so that they can install
overrides for all binary packages as soon as they have approved
the source package. It contains a the list of packages that the source
can build along with their sections and priorities.
It looks like this:
Package-List:
src:foo admin optional
foo admin optional
foo-common admin optional
udeb:foo-udeb debian-installer extra
|
|
Commit a8cb927edb7dbd67c7a6084685998818b811caec forgot to add the
Built-Using field in %FIELD_ORDER.
|
|
And teach dpkg-deb to not complain about it.
Signed-off-by: Raphaël Hertzog <hertzog@debian.org>
|
|
Improved-by: Raphaël Hertzog <hertzog@debian.org>
|
|
=item
An empty line is required between the two or pod2man decides that the
second is the continuation of the former and includes "=item" in the
generated manual page.
|
|
Also fix many spelling errors spotted by lintian.
|
|
Many other modules and scripts are also updated to cope with the new API.
The API of the module should be stable from now on, hence increased
$VERSION to "1.00".
|
|
|
|
warnings
Enhance Dpkg::Substvarst to be able to display a prefix before its
warnings and errors and make use of that facility in dpkg-gencontrol to be
explicit about where the substitution is done.
|
|
Modules whose API should be stable have a version 1.00.
The modules with version 0.01 are expected to have further API
changes in the (near) future or are deemed to be useful mostly
for dpkg-dev's internal usage.
|
|
input/output
Simplify code in Dpkg::Control::Info thanks to this.
|
|
Add non-regression test for this interface.
|
|
This implies renaming parse_fh() into parse() and parse() into load().
Update all scripts and modules using those methods.
|
|
Conflicts:
man/po/de.po
man/po/sv.po
scripts/dpkg-scanpackages.pl
scripts/po/de.po
scripts/po/sv.po
|
|
|
|
The fields in a compliant control-style file are allowed to have values
starting with any number of spaces. But that only applies to the first
line on multi-line field values, so do not do the same on subsequent
lines as those are handled differently.
Regression introduced in commit 7d8d193332478de82e20ed5b49053378801d160f.
Closes: #557547
|
|
In this case use “<standard output>” and “<standard input>”, to make
it clear that it's not a file with such name, in the same way we do in
the reset of the code base.
|
|
Keep compatibility with perl 5.8 by avoiding the "_" prototype which
has been introduced in perl 5.10.
|
|
|
|
Indent license text to one space after the '#'. Add '#' to blank lines
between paragraphs and remove trailing '#' after the license text.
|
|
Use the <http://www.gnu.org/licenses/> URL, instead of in most cases
the outdated FSF address, which is way more stable, as the latter has
changed several times in the past.
|
|
Checking the validity of new field values at run-time was very expensive.
In order to avoid this check, the design of the object has been changed to
accept arbitrary values, they are simply escaped as necessary during
output. The only data lost in a save()/load() cycle are the
trailing whitespaces on every line of all values.
This API change implies fixes in all scripts/modules reading/creating
values for multiline fields.
The non-regression test also had to be adjusted.
|
|
Only use field_capitalize() when exporting keys names outside of the
object. lc() is way faster than field_capitalize() and that makes
a difference in performance when you're reading/setting values many
times.
|
|
Dpkg::Changelog::Entry is a somewhat generic representation of a
changelog entry. It offers an interface exporting the basic information
that we need to extract for dpkg-parsechangelog.
Dpkg::Changelog::Entry::Debian is the implementation of this
interface for the typical Debian changelog entry.
Dpkg::Control::Changelog is the object representing the
information exported by dpkg-parsechangelog. It starts empty
as a simple Dpkg::Control of type CTRL_CHANGELOG.
Those new modules are not yet used by the Dpkg::Changelog modules.
|
|
Custom fields can be copied when they do not target one of
the official file type who are explicitely managed by the
letter scheme (X[SBC]-).
|
|
The Packages and Sources files are not really specific to APT.
Those files are indexes that can be used by other programs.
|
|
Both fields are allowed in Sources files, they are generated by
dpkg-scansources or apt-ftparchive based on the override files.
|
|
|
|
|
|
|
|
This new module provides an official list of control fields as
well as many functions to query that list and the meta-information
associated to each list.
|