[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