[RFC] Repository layout change -- status update

Mariusz Mazur mmazur at kernel.pl
Tue May 15 01:30:38 CEST 2007


Ok, after some talks on irc, this is how (the first version of) this solution 
is going to look like:

'packages' module in our current CVS repo with a flat structure underneath 
consisting of package '%{name}'s. Like this: 'packages/glibc' 
or 'packages/kernel'.

The idea is also to force having spec file names equal to %{name}. Afaik there 
are a few instances where such is not the case.

Afterwards we can have the glob 'packages/%{name}/%{name}.spec' being true 
100% of the time (might come in handy some day).

The question is how should the dir structure look like for each package. Now 
the most obvious solution is to copy the standard rpm structure and have both 
SOURCES and SPECS in there, however that's a waste of inodes simply because 
the SPECS dir would always contain only one file and only force 
unneeded 'cd's on developers' part. And since either way, in order to use 
this new structure one needs to redefine some rpm macros in ~/.rpmmacros, 
we're free to choose any layout we like.

Now baggins wants to have a flat structure, meaning no subdirs -- all files 
just land under 'packages/somename'. This does make sense for a package with 
like two sources and one patch file, but I'd argue, that with the packages 
that have more of those (and we do have a fair share of them), it makes a lot 
more sense to have the traditional content of SOURCES (patches, tarballs, 
etc) under some subdir.

My proposal goes like this:

have 'packages/%{name}' containt (a) the spec file, (b) a 'files' subdir, that 
contains the traditional 'SOURCES' content and (c) any other files containing 
metadata. Off the top of my head -- the 'tag->revision' file we've discussed 
wrt to svn migration. And in the future -- any other metadata that might 
prove usefull (with the ability to just add a file with some interesting info 
regarding a package, the possibilities are quite big; sooner or later 
someone's bound to use it for builder/ftp/bugzilla/somethingelse 
integration).


(Yes, for those who noticed, that is exactly how gentoo has this organized. 
First, I think it makes sense, and secondly -- I'd like to try out some kind 
of gentoo 'integration' (like, dunno, maybe automatic fetching of their 
metadata, so we don't have to maintain it ourselves, or sth) some time in the 
future.)


So the basic question goes like this: are there any proponents of the flat 
structure (the way darth baggins, dark lord of sith likes it), or maybe a 
more organized structure (the way m. 'skywalker' mazur, great jedi master 
suggests) is preferred?


-- 
Judge others by their intentions and yourself by your results.
                                                                 Guy Kawasaki
Education is an admirable thing, but it is well to remember from
time to time that nothing that is worth knowing can be taught.
                                                                  Oscar Wilde


More information about the pld-devel-en mailing list