summaryrefslogtreecommitdiff
path: root/scripts/Dpkg/Vendor
AgeCommit message (Collapse)AuthorFilesLines
2019-11-29Add scripts/Dpkg/Vendor/Dyson.pmIgor Pashev1-0/+30
2019-11-26Dpkg: Say class instead of object when appropriateGuillem Jover3-8/+8
These were referring to the type and not the instance, which makes using the incorrect nomenclature confusing.
2019-11-26Dpkg::Vendor: Remove obsolete 'keyrings' hookGuillem Jover2-6/+0
This hook has been obsoleted for a while and been emitting deprecation warnings, so it's safe to remove now.
2019-11-26Dpkg::Vendor::Debian: Do not set -Werror=implicit-function-declaration for C++Guillem Jover1-2/+15
Closes: #939969
2019-11-26Dpkg::Vendor::Debian: Only scan /usr/local/ directories that existGuillem Jover1-1/+1
Closes: #932967
2019-02-23Dpkg::Vendor::Debian: Add support for usr-local-has-* tainted tagsGuillem Jover1-0/+14
These will detect problematic files under /usr/local which can taint the current build.
2019-02-23Dpkg::Vendor::Debian: Add support for merged-usr-via-symlinks tainted tagGuillem Jover1-0/+10
This will detect whether the system we are building on contains the problematic /usr merged via symlinks deployment method. Suggested-by: Alexander E. Patrakov <patrakov@gmail.com>
2019-02-23dpkg-genbuildinfo: Add support for a new Build-Tainted-By fieldGuillem Jover2-0/+20
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>
2019-01-15Dpkg::Vendor::Ubuntu: Fix buildflags override after default setting moveGuillem Jover1-5/+7
The default buildflags got moved from the Dpkg::BuildFlags module to the Dpkg::Vendor::Debian, but this module was not adapted to match. Instead of running the Debian hooks after the Ubuntu buildflags are set up, run them first, and then modify/prepend the bits we need to change. This fixes compiler optimization on ppc64el, and makes setting it more future proof. Fixes: commit d5374bc618310917557daa9c9ac2f4930515a0b2 Closes: #915881 Co-Author: Iain Lane <laney@ubuntu.com> Co-Author: Adam Conrad <adconrad@ubuntu.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-09-18Dpkg::Vendor::Debian: Add fixfilepath support to reproducible featureGuillem Jover1-4/+17
This is a superset of the fixdebugpath feature supported by gcc-8, but covering in addition mappings for macros such as __FILE__ and similar.
2018-07-24Dpkg::BuildFlags: Move default flags setting into the Dpkg::Vendor modulesGuillem Jover1-1/+17
This should really be a vendor specific default. It's also documented that way in the man page.
2018-07-24Dpkg::Vendor::Debian: Inline _parse_feature_area() into _add_build_flags()Guillem Jover1-13/+7
This function was being called on each foreach iteration to parse the options within the DEB_BUILD_MAINT_OPTIONS and DEB_BUILD_OPTIONS environment variables, and needed to parse these at construction time every time. Inlining it should make it more performant and in addition reduce line count.
2018-03-25Dpkg::Vendor::Debian: Mark riscv64 as having gcc built-in PIE supportGuillem Jover1-0/+1
2018-03-25Dpkg::Vendor::Debian: Split pie builtin arches one per lineGuillem Jover1-2/+17
This makes changing them easier to see when diffing.
2018-01-16Dpkg::Vendor::Debian: Mark hurd-i386 as having built-in PIE supportGuillem Jover1-1/+1
Requested-by: Samuel Thibault <sthibault@debian.org>
2018-01-16Dpkg::Vendor::Debian: Use proper use_feature keyGuillem Jover1-1/+1
We need to access the features within the feature area hash now. Missed in a previous refactoring. Fixes: commit 2125e8dd7388e2adb9b6c837f4832fe8f0f63b25 Reported-by: Mattia Rizzolo <mattia@debian.org> (on IRC) Closes: #881051
2017-10-13dpkg-buildflags: Add support for new future feature areaGuillem Jover1-0/+15
This new area includes an lfs feature, to be used instead of the getconf(1) interfaces which cannot support cross-building.
2017-10-12Dpkg::Vendor::Debian: Merge build flag methods into a single private methodGuillem Jover1-119/+98
This reduces code redundancy, and makes it possible to reuse common code for various feature areas.
2017-10-12Dpkg::Vendor::Debian: Mark powerpc as having builtin PIEGuillem Jover1-1/+1
2017-09-24Dpkg::Vendor: Only load Dpkg::BuildOptions and Dpkg::Arch if neededGuillem Jover2-7/+14
The Dpkg::Vendor-specific modules are loaded as part of many other modules load-chains. But not all parts of these modules are used, as they are hook-specific. Switch these two modules to be required only when we are going over the specific code paths needing them.
2017-09-24Dpkg::Vendor::Ubuntu: Remove unused Dpkg::PathGuillem Jover1-1/+0
Missed in commit d62520090a7dafb123b6f1f4d4e9b61b75218057.
2017-08-26Dpkg::Vendor::Debian: Mark ppc64 as having builtin PIEGuillem Jover1-1/+1
2017-05-07Dpkg::Vendor::Ubuntu: Remove obsolete hardening-wrapper supportAdam Conrad1-37/+0
Signed-off-by: Guillem Jover <guillem@debian.org>
2017-02-26Dpkg::Vendor::Debian: Switch PIE handling to have no default (!)Guillem Jover1-3/+12
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
2017-02-26Dpkg::Vendor::Debian: Mark more architectures as having gcc builtin PIEGuillem Jover1-1/+2
Specifically kfreebsd-amd64, kfreebsd-i386, sparc and sparc64.
2017-01-26Dpkg::BuildOptions: Add new parse_features() methodGuillem Jover1-29/+6
This has been refactored from Dpkg::Vendor::Debian, to have a generic option parser.
2016-11-12Dpkg::Vendor::Debian: Use a hash instead of a long regexGuillem Jover1-1/+5
Addresses RegularExpressions::RequireExtendedFormatting. Warned-by: perlcritic
2016-11-07Dpkg::Vendor::Debian: Improve PIE flags supportGuillem Jover1-6/+6
Fix changelog for dpkg 1.18.11 to mention PIE got enabled by default for all architectures, not just the ones where gcc does that itself. When emitting PIE flags on architectures where gcc does not inject those itself, do it via a specs file too, so that maintainers can use them unconditionally regardless of the object being compiled or linked. When injecting -no-pie for linking via gcc specs also inject -fno-PIE. Update the documentation to make the current situation more clear.
2016-11-06Dpkg::Vendor::Debian: Handle PIE enabled by default in gccGuillem Jover1-2/+21
Add support for compiler built-in features, so that we do not set them when enabled and set negated flags when disabled. We use gcc spec files to set these flags so that we avoid any conflict with other incompatible flags that would make the build fail. Closes: #835149 Based-on-patch-by: Bálint Réczey <balint@balintreczey.hu>
2016-11-03scripts: Add support for .buildinfo filesGuillem Jover2-0/+14
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>
2016-10-31arch: Internally represent architectures as quadrupletsGuillem Jover1-3/+3
This allows to detangle the libc used from the calling conventions.
2016-10-30Dpkg: Add POD markupGuillem Jover1-2/+2
2016-10-30Dpkg::Vendor: Rework keyring hooksGuillem Jover3-8/+41
Add new archive-keyrings and archive-keyrings-historic for archive related keyrings. Rename keyrings to package-keyrings for the source package keyrings. And add a compatibility keyrings hook that aliases to package-keyrings and emits a deprecation warning. Prompted-by: Johannes Schauer <josch@debian.org>
2016-07-31Dpkg::Vendor::Debian: Enable fixdebugpath build flag feature by defaultMattia Rizzolo1-1/+1
Closes: #832179 Signed-off-by: Guillem Jover <guillem@debian.org>
2016-07-08Dpkg::Vendor::Debian: Disable fixdebugpath on unsafe characters in pathGuillem Jover1-2/+16
If the path has any unsafe characters we would need to escape them on output, but the escaping method depends on how the output is going to be used, which complicates things a bit. To make it safe to eventually enable this feature by default, we'll just check for safe characters and silently disable it otherwise.
2016-07-03Dpkg::Vendor::Debian: Support getting the build path from the environmentGuillem Jover1-1/+2
Having dpkg-buildflags change its output depending on its current working directory is not very friendly. We add a new environment variable to be able to specify it so that we can control the output. And use it from the test suite so make sure we always use the same path regardless of where we execute the makefile snippets from.
2016-07-03Dpkg::Vendor::Debian: Do not disable PIE buildflags on */kFreeBSD anymoreSteven Chamberlain1-2/+2
The flag should work on all current */kFreeBSD systems now. Closes: #823877 Signed-off-by: Guillem Jover <guillem@debian.org>
2016-07-03scripts: Fix typos in PODGuillem Jover3-7/+7
2016-05-02Dpkg::Vendor::Debian: Add fixdebugpath to reproducible featureDaniel Kahn Gillmor1-0/+14
This feature normalizes the path stored in debug symbols, so that these symbols can be built reproducibly regardless of the location of the build in the larger filesystem. It defaults to off, but should be enabled by systems trying to generate reproducible packages. [guillem@debian.org: - Add additional build flags. - Rename feature name. - Import Cwd module with require instead of use. ] Closes: #819194 Signed-off-by: Guillem Jover <guillem@debian.org>
2016-02-15Dpkg::Vendor::Debian: Do not enable stack-protector on nios2Guillem Jover1-2/+2
This gcc target does not support stack-protector. Acked-by: Marek Vasut <marex@denx.de> Signed-off-by: Guillem Jover <guillem@debian.org>
2015-12-25Dpkg::Vendor::Debian: Enable timeless build flag feature by defaultPaul Wise1-1/+1
Closes: #805872 Signed-off-by: Guillem Jover <guillem@debian.org>
2015-10-18Update Ian Jackson's email addressGuillem Jover1-1/+1
2015-07-30dpkg-checkbuilddeps: Move build-essential:native to a new vendor hookGuillem Jover2-0/+20
This package is distribution specific, and it does not belong in the generic build dependency checker.
2015-07-29Dpkg::Vendor::Debian: Disable thread sanitizer when address is enabledGuillem Jover1-0/+5
These are mutually incompatible, prefer the address sanitizer when both are enabled at the same time.
2015-05-18scripts: Say METHODS instead of FUNCTIONS or OBJECT FOO in POD section titlesGuillem Jover1-1/+1
2015-04-18debian: Update my copyright yearsGuillem Jover1-0/+1
2015-04-01Dpkg::Vendor::Debian: Add sanitize feature areaGuillem Jover1-0/+52
This feature area includes the features “address”, “thread”, “leak” and “undefined”, all disabled by default. Cloess: #760741
2015-03-30perl: Rework use and exporter declarationsGuillem Jover1-2/+2
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.
2015-01-28Dpkg: Use shift instead of @_ on single argument unpackingGuillem Jover2-2/+2