Commit Graph

483 Commits

Author SHA1 Message Date
Ben Hutchings 1dce7a1eb1 gencontrol_signed.py: Fix silly errors in certificate fingerprint handling
I thought I had tested my previous changes, but evidently not.

- Fix syntax error in assertion
- Add digest algorithm argument to get_cert_fingerprint() call
2018-08-26 20:50:56 +01:00
Ben Hutchings 6033fc28e8 debian/bin: Change "#!/usr/bin/env python3" to "#!/usr/bin/python3" 2018-08-25 23:19:09 +01:00
Ben Hutchings 2ade725761 fix-shebang: Use the correct operation for comparing strings 2018-08-25 23:15:18 +01:00
Ben Hutchings fac6a14424 Remove our private patch system, which is no longer needed
I converted the main patch series to quilt format in 3.2.20-1, but
this patch system was still used by genorig.py.  One useful
feature that was not available elsewhere was using patch + unifdef
to exclude only part of a source file.  However no source files
have needed this since 3.16-rc4 and I don't expect this to ever
be needed again.

The preceding changes moved the file removal/exclusion list into
debian/copyright and the disabling of broken features into the
main patch series, so the private patch system isn't doing
anything.

So we can now remove it completely.
2018-08-11 13:27:04 +01:00
Ben Hutchings 4aa097dc5e debian/bin/genorig.py: Add support for debian/copyright Files-Excluded field
This isn't part of the machine-readable copyright format 1.0, but is
an extension supported by mk-origtargz.
2018-08-10 14:30:18 +01:00
Ben Hutchings 5254e35d9d debian/bin/gencontrol_signed.py: Add certificate fingerprints to template metadata
The signing service will check which certificates we trust, in order
to avoid mistakenly creating a chain of trust to a test signing key.
2018-08-03 15:44:35 +08:00
Ben Hutchings b5fe66a8db linux-kbuild: Change "#!/usr/bin/env perl" to "#!/usr/bin/perl" 2018-08-02 17:32:53 +08:00
Ben Hutchings a14e37b110 Move config files from linux-source to an arch-dependent linux-config package
In Linux 4.18, various compiler version and feature tests are invoked
via kconfig rather than via kbuild.  This means that we generally
cannot generate kconfig files for foreign architectures.

Move the config files to a new linux-config-<version> package which is
arch-dependent (and also M-A: same).

Make linux-config-<version> and linux-source-<version> recommend each
other.
2018-07-03 15:12:33 +01:00
Ben Hutchings ae6ef24f0d Fix linux-{doc,manual,source,support} package names in rules.real
I only fixed the control file before.

(cherry picked from commit 146c11a13da5643966cd6d07f437b183dc34a19e)
2018-07-02 00:08:22 +01:00
Ben Hutchings 3ff18afde5 debian/bin/gencontrol.py: Remove check for old [packages]tools config field
This was split into tools-versioned and tools-unversioned.
2018-06-26 22:27:55 +01:00
Bastian Blank 228a2446d1 genorig.py: Provide xz parameters to tar itself 2018-06-13 10:18:32 +02:00
Bastian Blank 4739547302 Write a complete changelog to signing template 2018-05-29 10:27:27 +02:00
Bastian Blank ea024852d4 debian/bin/genorig.py: Use --sort option for reproducible tar
Since Stretch, tar can sort the files by name itself.
2018-05-25 10:18:09 +02:00
Bastian Blank 91d3209f78 debian/bin/genorig.py: Allow xz to use all cpu cores 2018-05-25 10:08:33 +02:00
Luca Boccassi b3be450737 Add build profile and config/defines for disabling linux-source
Add a new "pkg.linux.nosource" to let users disable building the
linux-source-* package, and allow to set "source: false" to modify
the default behaviour when no rofile is used.
When doing development builds this can save up to 15 minutes of build
time, especially on IO-strapped build workers.
2018-05-08 19:17:15 +01:00
Ben Hutchings 29c80ea278 Fix building only versioned tools packages
Modifying makeflags in do_main_makefile() only affects the
build-indep/binary-indep rules!
2018-05-08 16:59:02 +01:00
Ben Hutchings 114088708f Fix linux-doc, linux-manual, linux-source, linux-support package names
We don't want to include "-4.9" in them twice.  Add a "source_basename"
template variable that excludes any version suffix in the source package
name.

(cherry picked from commit f3c51efdd6e9d0ce32ee5a0f998fdcda930a715c)

For master, nothing is immediately broken without this.  Also we have
no longer build a linux-manual package.  Change the changelog text
accordingly.
2018-04-29 21:19:11 +01:00
Ben Hutchings 7b34ddf467 Add support for building only versioned tools packages
We already had support for disabling the tools build, used by
src:linux-grsec.  However in this case, where we're using a different
based version to src:linux, we do still need to build the versioned
tools packages (linux-kbuild-4.9 and linux-perf-4.9).  Split the
control template, config setting and rules accordingly.

(cherry picked from commit cb62c945f27ddee476631fa85c6aa67e50ed3bee)
2018-04-29 21:16:01 +01:00
Ben Hutchings f78b896b8b debian/lib/python/debian_linux/gencontrol.py: Allow uploads to *-security with a simple revision 2018-04-28 21:42:12 +01:00
Ben Hutchings 083ddaa564 Add support for compilers installed outside the default PATH
The obvious way to do this is to edit the PATH in .kernelvariables.
But this obvious way doesn't work due to a bug in make (#895835).

(cherry picked from commit 4c6213fbbbff44710dda2091a7b26e0f0ea0a610)
2018-04-16 23:15:33 +01:00
Ben Hutchings e85bd66dc5 debian/bin/gencontrol_signed.py: Copy maintainer and date into template's changelog 2018-04-08 10:31:20 +02:00
Ben Hutchings 9f8aafcd1f debian/bin/gencontrol_signed.py: Make valid native version for signed source
dpkg-source strictly enforces that 3.0 (native) packages do not have
Debian revisions in their version strings, i.e. they cannot include
hyphens.

Replace the hyphen from the image binary version with a '+'.

Override this version back to what we want when building the signed
binary packages.
2018-04-08 10:31:20 +02:00
Ben Hutchings 3b3e6ad4cb Use a dummy build profile for udebs that we test-build before signing
debhelper no longer fully trusts the package list specified with -p,
but only processes packages that are listed in debian/control and
enabled in the current build profile.  This breaks the test build of
udebs that we build for real after code signing.

Work around this by adding the udebs to the control file, conditional
on a new build profile (pkg.linux.udeb-unsigned-test-build).  Override
the build profile during the test build.
2018-04-08 10:31:20 +02:00
Ben Hutchings be394a26da Add template source package to support code signing 2018-04-08 10:31:20 +02:00
Ben Hutchings a25eb38372 debian/config: Rename [build]signed-modules setting to signed-code
This setting controls code signing in general, not just modules.
2018-04-08 10:30:49 +02:00
Bastian Blank a143fb1a02 stable-update: Support bare repos 2018-02-08 14:17:32 +01:00
Ben Hutchings 30fe681bff abiupdate.py: Add support for security mirrors 2018-01-12 02:36:06 +00:00
Ben Hutchings 2629671100 debian/bin/gencontrol.py: Set encoding to UTF-8 globally
I just made this change for firmware-nonfree, for which I wrote:

    We open some, but not all, files with an explicit UTF-8 encoding.  One
    of the open calls that I missed has just caused gencontrol.py to fail
    instead a pbuilder environment.  Instead of continuing to set an
    explicit encoding for each open call, use locale.setlocale to set it
    globally.

I haven't hit such a problem here, but let's do it anyway.

Keep using explicit encodings in debian/lib for now, since we can't
assume all calling programs will set the locale.
2017-10-20 02:56:35 +01:00
Ben Hutchings 5872c32060 debian/bin/buildcheck.py: Interpret ABI patterns more conventionally
Currently '*' and '**' match at least one character.  Change them to
match zero or more characters, as in shell patterns.

'*' matches anything but '!', but that has no special meaning in
symbol names or module filenames.  Change it to match anything but
'/', as in shell patterns.
2017-10-13 01:39:24 +01:00
Ben Hutchings 9fe724d67d linux-image-dbg: Override lintian errors for vDSOs
It currently reports errors binary-from-other-architecture and
shlib-without-PT_GNU_STACK-section, which are false positives.
2017-10-01 15:23:01 +01:00
Ben Hutchings a1b309111a Rename lintian-overrides template files to be consistent 2017-10-01 01:36:27 +01:00
Ben Hutchings 06c36b3662 debian/control: Move many build dependencies to Build-Depends-Arch field 2017-09-30 14:09:54 +01:00
Roger Shimizu 8d9993070b buildcheck.py: Add check for uncompressed Image size
Currently only armel/marvell flavour need this check
2017-09-02 00:30:02 +09:00
Ben Hutchings b4b1be4c52 Move debug symbols back to the main archive
dak currently allows a binary upload to include debug symbol packages
that don't appear in the overrides file or the Binary field of the
changes file, so long as they have the appropriate
'Auto-Built-Package' field and their name matches another binary
package in the upload plus the '-dbgsym' suffix.

For architectures with code signing enabled, our binary uploads never
match this condition as the corresponding binary package has the
'-unsigned' suffix and the debug symbols package does not.  Since we
do list the debug symbol packages in the Binary field, they do get
added to the overrides file when accepted through the NEW queue, but
they are automatically pruned from there some time later.  Later
uploads then have to go through NEW even though they are not
introducing new binary packages.  This would be a big problem for
stable security updates.

For now, move debug symbols back to the main archive with the old
'-dbg' suffix.  Keep them enabled for all architectures.
2017-04-16 18:53:35 +01:00
Ben Hutchings fc4d14f63f test-patches: Set default number of jobs to number of available processors
With the current default of 1, most users are going to be kept waiting
unncessarily.
2017-02-08 02:05:30 +00:00
Ben Hutchings bd4315df9c test-patches: Use the pkg.linux.notools build profile
test-patches never builds tools, and this greatly reduces the
build-dependencies.
2017-02-07 23:47:20 +00:00
Ben Hutchings b5cdf98158 [rt] genpatch.py: Verify tag and tarball signatures 2017-01-25 04:30:46 +00:00
Ben Hutchings 97dc926bb7 Revert "Remove debug symbol packages from debian/control to work around dak bug"
This reverts commit 99d37f9b16, which
caused most binary uploads to be rejected.  dak's allows upload of
debug symbol packages not listed in the Binary field only if there is
a corresponding binary package without the -dbgsym suffix, which is
not the case on architectures where we use a -unsigned suffix.
2017-01-12 15:44:11 +00:00
Ben Hutchings 99d37f9b16 Remove debug symbol packages from debian/control to work around dak bug
Any packages listed in debian/control that are not installed in the
main archive will always be seen as NEW.  This might be fixable by
archive configuration changes, but for now we'll generate them in a
similar way to debhelper.
2017-01-07 21:48:47 +00:00
Ben Hutchings 2c8163e1f1 abiupdate.py: Add support for incoming.ports.debian.org 2017-01-07 18:00:21 +00:00
Ben Hutchings 2ee6bc5ea0 abiupdate.py: Update base URLs
- incoming.debian.org now uses pool layout
- deb.debian.org is a better default than ftp.de.debian.org
- ftp.debian-ports.org redirects to ftp.ports.debian.org, so use the
  latter directly
2017-01-07 17:57:38 +00:00
Ben Hutchings f3ddd1118d abiupdate.py: Use current config instead of downloading previous config
Until we authenticate downloads we should not do this as pickle.load
allows running arbitrary code.
2017-01-07 17:43:24 +00:00
Ben Hutchings 6ad80b7201 abiupdate.py: Drop import fallback for Python 2 compatibility 2017-01-07 17:41:44 +00:00
Ben Hutchings f5af248fc0 genorig.py: Verify tag signatures (based on work by Yves-Alexis Perez)
I changed the wrapper to call gpgv instead of gpg.  It is much easier
and cleaner to use local configuration this way, and it won't produce
a warning that the key isn't trusted.

I also removed used of an environment variable, as we (currently) only
pass one keyring filename here.
2017-01-07 02:57:59 +00:00
Ben Hutchings aa27137298 [amd64] Remove xen-linux-system-<version> package
Since there are no amd64 kernel configurations without Xen dom0
support, these meta-packages don't provide much value any more.
2016-12-04 16:21:18 +00:00
Ben Hutchings 2661eeaf78 debian/bin/buildcheck.py: Add check for symbols with version CRC of 0 2016-12-02 02:49:08 +00:00
Ben Hutchings eeb496a241 linux-headers-common: Make these packages architecture-independent
Include headers for all architectures that we build a kernel for.
This allows co-installation of per-flavour header packages for
multiple Debian architectures, and fixes the problem of arm64 headers
depending on arm headers that we did not include.
2016-12-01 20:08:30 +00:00
Ben Hutchings be7e4761f8 debian/bin/gencontrol.py: Fix cross-build-dependencies if invoked under dpkg-buildpackage
By default dpkg-architecture lets the current environment override the
architecture specified by the -a option.  We mustn't let that happen
here as we are considering all architectures.  Use the -f option to
force use of our specified architecture.
2016-09-26 22:31:21 +01:00
Ben Hutchings 6d39ffde84 Change names and descriptions of debug symbol packages to match debhelper 2016-07-14 11:42:15 +01:00
Ben Hutchings 0aceb8739a debian/control: Fix build-dependencies for cross-building
The current cross-compiler packages don't set the Multi-Arch field, so
specify that the cross-compiler package must be native, rather than any
architecture.

flex doesn't support multi-arch, and this would require splitting it
(#611230, #761449).  Force use of the native package for now.

openssl doesn't support multi-arch but probably easily could (#827028).
Force use of the native package for now.

We need the native libssl-dev while building the kernel itself and the
host libssl-dev while building tools for linux-kbuild.

Document the state of cross-building in README.source.
2016-06-13 02:02:54 +01:00