Topic: Automated & Selective downloading patches for the linux kernel.
Name: AKUL (Automated Kernel Updation for Linux)
Language: Web ( HTML forms) / Perl scripting
Operating Systems: Initally only unix based (because it would be needing utilities
like bzip2 / patch etc..)
Description: There are two main reasons for this project's existence.
1. The Linux Kernel Patches need some way of automating the whole process of downloading patches
and applying them. (Only the exceptional / problematic patches need be handled by hand.)
2. More importantly, and where this project actually started was from the fact, that most
systems dont need to download the whole kernel / patch-set.
for e.g. only /arch/i386 is required for an intel based system. etc...
(further going into complex situations wherein, a system which doesnt need scsi
subsystem at all, need not get the /drivers/scsi part at all.)
Problems: At the moment, i am the only "team". anyways, i have the altered
version of wget already running which can download a patch in part. (i.e. from
100kb - 200kb) (but i think it wouldnt be needed now, read the wget update below).i had all the
perl scripts which separated the patch files into the new format i have defined from this
project. (cbz2) - choice bzip2. (i'd be explaining them in a moment..) anyways, there are
stages in the project's progress, all of which have the only problem of me "learning" the
languages/scripting languages... thats all, no substantial problem as such.
Progress stages:
1. preperation of a basic perl script. which is able to take a patch file and give a cbz2
file as output. (mostly done, but lost to stupid command typing!. i'd be putting one up soon... )
update: DONE.
2. altering wget to help download only the part of the patch file which is required
(from the cbz2 file, not the original bz2). (done, but needs more work.)
update: not being worked upon. idea dropped after the web-interface caught my fancy!
3. understanding the kernel Kconfig, and determine which all patches are relevant.
update: still to work upon.
4. develop mod_cbz2 which is able to request a config file from the client, and send
the patch file as a cbz2 containing only the relevant patches. this would greatly reduce
the number of connects/reconnects required to work the other/earlier option out (wget).
update: instead of mod_cbz2, i have a simple pl file in cgi-bin which accepts arguments,
and creates a custom download file for the user. This sounds much more practical, than the
wget option.
update2: Working! (http://vavilu.hypermart.net/index2.htm)
Format of cbz2:
1. size of the header (only numeric)
2. the header (containing sets of "patch-version parentdir-subdirdir size" on different lines.)
3. patches of corresponding directories (as mentioned in the header) bzip2 and simply appended
one after another. no end markers nothing. the size of each separate bzipped part is the size
field in the header.
i'd be writing a full doc on this procedure soon. but that needs some place to host the whole
process. and so i come to sf.net!
update: still to write the Doc!!
utilities probably to be used: bzip2, patch, wget(altered).
update: wget not required.
Existing: only wget is taken as is, and altered upon. wget.gnu.org i guess... everything
else is my own. from scratch.
update: wget too is not used. project completely from scratch.
vavilu
a.k.a. robins tharakan
robins@vsnl.com