linux/debian
Ben Hutchings 1b743d674d Disable a large number of probably useless drivers
Disable most platform drivers, SPI and I2C drivers at the top level.
Platform drivers should be selected by architecture and flavour
configurations, and generally are.  SPI and I2C devices aren't easily
detectable and their drivers aren't auto-loaded, so again they should
usually be selected in specific configuration files and probed
according to board code or FDTs.

As exceptions, I2C hwmon devices may be probed by lm-sensors and many
media tuners include I2C devices which are probed with the help of the
higher-level device driver.  I've tried to be conservative and also
left I2C iio, input, leds and misc devices alone for now.

Disable the regulator subsystem at the top level as only some
architectures will need it.

Disable MTD_NAND_PLATFORM, PDA_POWER and FB_S1D13XXX on x86, as these
don't appear likely to be used on any x86 system that could run our
generic kernel images.

svn path=/dists/trunk/linux/; revision=20556
2013-09-01 23:26:06 +00:00
..
bin gencontrol.py: Create debian/po as necessary. 2013-08-26 16:09:41 +00:00
config Disable a large number of probably useless drivers 2013-09-01 23:26:06 +00:00
installer Merge changes from sid up to 3.10.7-1 2013-09-01 16:46:42 +00:00
lib/python/debian_linux Don't require '.in' suffix on templates 2013-08-17 11:18:34 +00:00
patches Merge changes from sid up to 3.10.7-1 2013-09-01 16:46:42 +00:00
source Use xz compression for upstream and Debian tarballs 2012-06-08 12:34:48 +00:00
templates Update Brazilian Portugese debconf template translations (Fernando Ike de Oliveira) (Closes: #719725) 2013-08-17 12:32:17 +00:00
.gitignore Setup gitignore suitable for using pkg-kernel via git svn 2013-01-17 10:04:32 +00:00
README.Debian README.Debian: Correct reference to Berkeley Database development package 2013-05-11 22:44:12 +00:00
README.source README.source: Correct name of main patch series file 2012-07-01 13:34:49 +00:00
changelog Disable a large number of probably useless drivers 2013-09-01 23:26:06 +00:00
compat * debian/changelog: Update. 2009-03-17 18:51:02 +00:00
copyright debian/copyright: Move explanation of indirect linking of perf to OpenSSL 2013-07-02 05:00:10 +00:00
rules Add debian/xen-linux-system-* to clean rules 2013-09-01 04:28:44 +00:00
rules.defs Revert r19546. 2012-11-27 18:22:10 +00:00
rules.real Use only one template syntax 2013-08-17 11:35:06 +00:00
watch debian/watch: Add watch file and update script 2013-06-24 02:04:54 +00:00

README.source

Updating the upstream source
============================

1) You can use either:
   a) a git repository of the kernel source
   b) a kernel tarball from kernel.org (e.g. linux-3.4.tar.bz2)
      and, optionally, a patch (e.g. patch-3.5-rc1.bz2).

2) Run ./debian/bin/genorig.py <repository>
   or  ./debian/bin/genorig.py <tarball> [patch]
   This will produce ../orig/linux_<version>.orig.tar.gz
   (e.g. linux_3.5~rc1.orig.tar.gz).

   (genorig.py requires the python and unifdef packages to be
    installed)

3) Unpack linux_<version>.orig.tar.gz, cd into the new directory,
   and do a 'svn export' to get the debian/ subdirectory.
   Alternatively unpack using "make -f debian/rules orig".

   (the orig target of the Makefiles requires rsync)

Applying patches to the Debian kernel tree
==========================================

The Debian kernel packaging uses the quilt patch system, but with
multiple series to allow for featuresets.

Patches are stored below debian/patches, loosely sorted in bugfix/,
features/ and debian/. Patches are in the standard kernel patch
format (unified diff to be applied with patch -p1) and generally have
DEP-3 headers.

The series file 'series' is used for all configurations and a series
file 'series-<featureset>' is used for each optional featureset.

If you want to generate a source tree with all patches applied, run
make -f debian/rules source

The resulting source can be found below debian/build.

Kernel config files
===================
Configuration files are constructed dynamically from a number of config
files, as listed in debian/config/<arch>/defines.

Control file
============
The master control file debian/control must be generated before
the package is uploaded. debian/rules contains the debian/control 
target, which generates the control file by invoking the 
debian/bin/gencontrol.py script, which combines the templates from
the templates directory and architecture-specific defines file to
produce the debian/control file. Note that this target is intentionally
made to fail with a non-zero exit code to make sure that it is never
run during an automatic build. The following variables are substituted
into the templates:

@version@      Upstream kernel version, for example 2.6.11.
@arch@         The Debian arch name, such as powerpc or i386.
@flavour@      The build flavour, such as 686 or k7-smp.
@class@        The CPU/architecture class; displayed in synopsis.  It should
               be fairly short, as the synopsis is supposed to be <80 chars.
               It should be in the form "foo class", and will show up in the
	       description as "foo class machines".
@longclass@    The CPU/architecture class; displayed in the extended
               description.  The same rules apply as in @class@.  If
	       this is unset, it will default to @class@.
@desc@         (Potentially) multi-line verbiage that's appended to
               -image descriptions.
@abiname@      Current abiname, a single digit.

Normally, the arch-specific contents should be controlled by
adjusting the corresponding defines file.

TODO:
- Patches applied to the upstream source
- How to define a flavour
- More detail on generation of debian/control and configs