regarding my original posting where i mused about adding a git-based
patch directory ...

On Sat, 2 Feb 2008, Felix Fietkau wrote:

> While I like the idea for being able to better stay up to date with
> latest kernels, I want to avoid having too many different patch
> versions around in our svn. So a change that would allow the build
> system to do what you described would be accepted in OpenWrt, but
> updates of kernel patches against random git versions is probably
> more something for private branches. Maybe we could keep patchsets
> like that as an overlay on git.openwrt.org, as soon as the our new
> server is operational.

i understand entirely, i wasn't actively pushing that idea, i was
just thinking out loud, but let me think out loud a little bit longer.

being able to keep up with the latest repo version of a SW component
(say, the kernel, gcc, glibc, binutils, etc.) would require only one
extra patches sub-directory per component.  so for gcc, for instance,
you have the existing patch directories 3.4.6, ..., 4.2.2.  to that
(and all other software components you'd like to support like this),
you'd just add a new sub-directory "repo", which would represent the
patches against the absolutely latest repo (be it a git repo, svn
repo, or whatever.)

now, is this worth the trouble?  first, the obvious benefits:  it
would be handy to be able to test against the bleeding edge software
if you were feeling ambitious.  and sometimes that's helpful if you
don't like surprises down the road.

also, it's fairly easy to implement something like this.  as i
mentioned before, when a new software version comes out and a new
patch directory is created for it (gcc 4.2.3?), you'd immediately
create an updated patches directory for gcc-4.2.3, then (re)create a
sibling "repo" directory that consists of nothing but symlinks back to
that new patch directory since, at that instant, those patches would
be identical.

once the repo starts to progress and some of those fixed version
patches fail to apply, it's easy to take each failing patch, make a
copy of it in the "repo" directory and fix it.  and keep doing this
little by little to keep up with the software repository.  and whose
job would that be?  simple -- not felix's, but whoever wants to build
against the repository.  anyone who's happy with a fixed version has
no obligation to care about the "repo" patches.  but if you're a
developer that does, then it's your job to stay on top of things and
keep testing those patches and submit fixes for them as necessary.
now here's the downside.

there's no point even thinking about this if a builder can't *select*
one of those repo versions to be used in the build, and that's not
currently supported in the "make menuconfig".  part of the reason, i'm
guessing, is that there are only certain combination of software that
work for certain architectures, and that's hard-coded into the
Config.in files, if i'm reading that correctly.

for instance, if i'm building for a WL500gP, the file
target/linux/brcm47xx/Makefile tells me right up front:

LINUX_VERSION:=2.6.23.1

so i have no freedom to override that, so that whole repo thing for
the kernel wouldn't help me at all.

what would have to be added is a config feature that lets you override
that hardcoding if you want to try combinations that aren't proven to
work.  perhaps a menuconfig option along the lines of:

  [ ] Choice of unknown and untested software versions?

and doing that would allow you to live dangerously and select
completely untried combinations of software, and if the build blows
up, well, too bad.  :-)

i'll admit i haven't looked closely enough at how much work that would
be but, as a start -- even without this whole repo concept -- would it
be hard to add that config option above so that builders could try
different combinations of software that aren't guaranteed to work just
to see what happens?  at a minimum, it would be nice to try to build
with the 2.6.24 kernel if i'm feeling ambitious.

rday
--


========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

Home page:                                         http://crashcourse.ca
Fedora Cookbook:    http://crashcourse.ca/wiki/index.php/Fedora_Cookbook
========================================================================
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to