backports: add full kernel integration support
authorLuis R. Rodriguez <mcgrof@suse.com>
Wed, 29 Oct 2014 08:08:24 +0000 (01:08 -0700)
committerLuis R. Rodriguez <mcgrof@do-not-panic.com>
Fri, 14 Nov 2014 21:47:17 +0000 (13:47 -0800)
commit4158928a84e746cc2ded08b01820ee5800541ecf
tree4d27220e8a2ce93ae225118f613d6c0502673725
parent1ce22a0938ac10c576431fc1d3150763f15aa4d8
backports: add full kernel integration support

This enables support for using the backports project
to integrate device drivers from a future version of Linux
into an older version of Linux. What you end up seeing is
a backports submenu when configuring your kernel and the
ability to select specific device drivers from subsystems
supported through the Linux backports project.

At this time enabling one device driver from a future version
of Linux will require using only the latest version of the
subsystem modules and other subsystem drivers. For example
enabling cfg80211 and mac80211 from a future version of Linux
will require you to only use future version of the respective
device drivers. In order to enable the backported version of
802.11 drivers for example, you will have to enable first:

Networking support -->
  Wireless -->

But under that menu disable all options, then jump to the backports
submenu to now enable:

Backports -->
  cfg80211
  mac80211
  Wireless LAN  --->
    etc

You build these device drivers modular or built-in to the kernel.
Integration support requires only slight modifications to the original
kernel sources, one to the top level Kconfig to add our entry, and also
the top level Makefile to enable backports code to be part of the
built-in vmlinux.

Support for integration takes advantage over the existing infrastructure
added by Johannes to keep track of each indvidual change done by the
backports infrastructure if --gitdebug is used.

mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean \
/home/mcgrof/linux-next /home/mcgrof/build/backports-20141023
Copy original source files ...
Applying patches from patches to /home/mcgrof/build/backports-20141023
...
Modify Kconfig tree ...
Rewrite Makefiles and Kconfig files ...
Done!

real    1m27.942s
user    13m23.752s
sys     0m47.608s

1   3.0.101             [  OK  ]
2   3.1.10              [  OK  ]
3   3.2.62              [  OK  ]
4   3.3.8               [  OK  ]
5   3.4.104             [  OK  ]
6   3.5.7               [  OK  ]
7   3.6.11              [  OK  ]
8   3.7.10              [  OK  ]
9   3.8.13              [  OK  ]
10  3.9.11              [  OK  ]
11  3.10.58             [  OK  ]
12  3.11.10             [  OK  ]
13  3.12.31             [  OK  ]
14  3.13.11             [  OK  ]
15  3.14.22             [  OK  ]
16  3.15.10             [  OK  ]
17  3.16.6              [  OK  ]
18  3.17.1              [  OK  ]
19  3.18-rc1            [  OK  ]

real    42m44.838s
user    1190m5.092s
sys     140m37.208s

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
backport/Kconfig.integrate [new file with mode: 0644]
backport/Makefile.kernel
backport/backport-include/backport/backport.h
backport/compat/Makefile
backport/compat/main.c
devel/doc/kconfig-operation
gentree.py
integration-patches/0001-enable-backports/0001-enable-backports-built-in.patch [new file with mode: 0644]
lib/bpversion.py [new file with mode: 0644]
lib/kconfig.py