[RFC] Repository layout change / Zmiana układu repo

Mariusz Mazur mmazur at kernel.pl
Mon May 14 18:07:32 CEST 2007


Dnia poniedziałek, 14 maja 2007, Jan Rekorajski napisał:
> That's what I did, just the other way, files copied to packages/* and
> symlinked to SPECS/ and SOURCES/. Easy to make the script do it the
> other way.

Do it the other way then. Until we figure out a permanent packages/* 
structure, the old specs/sources tree should be the main one.

Btw: not sure if hardlinks aren't a bad idea. How would cvsadmins handle 
renaming packages with the new stuff?

> > triggers for cvs rm/add operations (to generate/remove those links when
> > appropriate and bail out on conflicts).
>
> That will not work? How will you tell which package file X added to SOURCES
> belongs to? Some kind of lazy linking on spec commit?

Easy. Most of the content of sources is in the form %name-something. Let the 
script simply match the %name part (trying to match it from the longest 
possible string) with a package named like that. If it's there, that's the 
package, if not, we bail out and tell the commiter, that with non-standard 
naming, he needs to use the 'packages' module. (we frown upon non-standard 
naming anyways, so this shouldn't be much of an issue; maybe for some init 
scripts, nothing much)

There will be corner cases of course, but we can probably decide later what 
the preferred behavior should be (bail out if the script isn't sure, try the 
best guess or something).

> > It's a few hours worth of work tops. Don't know about locking, but that
> > should also be doable.
>
> The conversion takes approximately 7 hours on P4 2.8GHz and idle system.

I was talking about writing the necessary code, not the conversion itself. 
However 7 hours ain't bad. We run it over a night and have everything working 
in the morning.

Alternatively we can just start with a subset of all the packages. Maybe 
k*.spec? Considering that we'd have to test the scripts before making a full 
deployment, that sounds ok, right?

> That was my intent behind this RFC.
> Do a non invasive change now, switch to more ordered repo and then look
> for the best scm for it.

Yup. Best option.

> Converter is ready, what is missing is a script to handle cvs rm/add
> operation, I can do a parser/symlinker but someone more experienced in
> CVS internals will have to glue it into CVS. 

Last I've tried, it wasn't that bad. You just read the docs, write the script 
and add it to the 'commitinfo' file in CVSROOT.

Unless there are other takers? (python preferred, however, due to lack of 
manpower, will settle on perl if available :)

> BTW. such a script will 
> require rpm-build package on the server.

Only the converter, right?


-- 
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