Commit Graph

267 Commits

Author SHA1 Message Date
Ben Hutchings cbebd8c763 udeb: Merge configuration directories and files across architectures
Merge the configuration and default-configuration directories,
using per-architecture overrides in package-list.

This requires a newer version of kernel-wedge to support
Depends_<arch> properly.

The only immediate change to debian/control is to remove the
different description for nic-modules on sparc64.
2018-09-03 18:01:21 +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 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
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 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
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 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 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 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 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
Ben Hutchings 72f58e83ea linux-image: Add '-unsigned' suffix to packages with modules that will later be signed 2016-06-10 14:47:47 +01:00
Ben Hutchings 5a1dc12690 udeb: Drop packages for modules that will later be signed
These packages will be taken over by src:linux-signed.  Still do
everything but building the packages so we find configuration
errors before building linux-signed.
2016-06-10 02:54:44 +01:00
Ben Hutchings fb5d796272 Move merge_packages function from debian/bin/gencontrol.py to gencontrol module
linux-signed will use this function in future.
2016-06-08 23:24:07 +01:00
Ben Hutchings cab1f743c8 Disable MODULE_SIG for architectures not supported by linux-signed 2016-06-06 18:12:47 +01:00
Ben Hutchings 3df161c94f linux-image: Use linux-check-removal command in prerm; remove debconf templates
This removes most of the remaining complexity from the script.
2016-06-06 17:21:34 +01:00
Yves-Alexis Perez 0dd643da08 fix tools disabling in arch-specific rules
(cherry picked from commit 3aa2269f2b3162772d052154d8bed726ff18df1e)

[bwh: Note this in debian/changelog.  Neaten vertical spacing.]
2016-05-14 19:07:15 +01:00
Ben Hutchings 516d9dac1d debian/config: Add config variable to control module signing in linux-signed
- Enable it by default
- Disable it for armel/marvell since signature verification is not enabled.
- Disable it for mips and mipsel so linux-signed can be uploaded without
  waiting for them to build
- Disable it for all architectures not in the main archive, as linux-signed
  won't support them (at least, not initially).

We don't need a variable to control signing of the image, because
we should do that for all flavours that have CONFIG_EFI_STUB=y.
2016-04-04 10:41:48 +01:00
Ben Hutchings a5f7516c0c Merge linux-tools source package into linux (Closes: #550379, #573483, #816500)
* Drop redundant gitignore.patch from linux-tools
* Rename linux-tools' debian/templates/control.main.in to
  debian/templates/control.tools.in
* Combine changelogs, putting all entries for each upstream release
  cycle in chronological order
* Combine rules and gencontrol.py code
2016-03-21 01:32:16 +00:00
Ben Hutchings d7b31e0e23 debian/rules.real: Rename build-arch and setup-flavour rules for consistency 2016-03-20 21:51:13 +00:00
Ben Hutchings eaff86e9e2 gencontrol.py: Change substitute_file() from local function to method
We will need to use it in multiple methods of Gencontrol.
2016-03-20 21:39:38 +00:00
Ben Hutchings 466e99f397 linux-perf: Override lintian errors for perf-read-vdso{,x}32 in 64-bit packages 2016-03-20 19:08:47 +00:00
Ben Hutchings 65d6c09bbd Remove residual support for multiple image package types
We only really support the 'plain' type.  Remove all the conditions on
image type and remove 'plain' from all target and file names.
2016-01-27 19:52:52 +00:00
Ben Hutchings 87a5fb1450 Remove all support for monolithic kernel packages
The last such package (s390-tape variant) was removed in
3.6.8-1~experimental.1.
2016-01-27 19:52:48 +00:00
Ben Hutchings 9a6aa4816a linux-image-dbg: Include debugging symbols for VDSOs 2016-01-13 15:08:47 +00:00
Ben Hutchings 8571d54a8b Add config parameter to disable linux-headers-all packages
The linux-grsec source package needs a way to explicitly disable these
binary packages which are already built by the linux source package.
We already do that when there are no actual kernels for the target
architecture.  Rename the FOREIGN_KERNEL make variable and combine the
two conditions.

Based on work by Yves-Alexis Perez.
2015-12-19 16:57:10 +00:00
Ben Hutchings 02e867b636 Fix parallel builds of both arch and indep binaries
A parallel 'debian/rules build' will now invoke 'debian/rules.real
build' twice in parallel, which is disastrous.

- Add and use proper build-arch and build-indep targets in
  debian/rules.gen and debian/rules.real
- Assign a separate temporary directory to each target in
  debian/rules.real.  Add the directories to .gitignore and
  the clean rule.
- Pull installation of the lockdep wrapper (which is indep)
  up into debian/rules.real so that we don't end up building
  liblockdep twice in parallel.
2015-12-10 02:44:23 +00:00
Yves-Alexis Perez 6759b9a57e gencontrol.py: add support for disabling libc-dev package 2015-11-13 17:43:10 +01:00
Yves-Alexis Perez 1f9192267c gencontrol.py: add support for disabling installer packages 2015-11-12 21:55:45 +01:00
Yves-Alexis Perez 91d01a70ac gencontrol.py: rename docs section to packages
prelude to adding more options to disable some packages
2015-11-12 21:17:54 +01:00
Ben Hutchings 91416e456c gencontrol.py: Delete redundant arguments to ConfigCore.merge 2015-11-12 15:12:02 +00:00
Yves-Alexis Perez 8f6b13987a split-docs: update rules generation
pass a DO_DOCS variable to rules.gen and rules for the binary-indep
target
2015-11-12 08:12:12 +01:00
Yves-Alexis Perez e3d56724e4 split docs package to a different template
only include them in the control file if docs are enabled in the config
2015-11-11 12:31:56 +01:00
Ben Hutchings be6de683ed debian/control,debian/rules: Support a 'stage1' build profile (Closes: #695243)
This builds only linux-libc-dev, needed by native compilers.
2015-11-10 13:34:39 +00:00