On 4/18/07, Hans-Christoph Steiner hans@eds.org wrote:
also: in gentoo binary packages aren't much in use. gentoo *is* a build farm: the user compiles the softwares that wants to installs, choosing compile options via tag-like switches (USE flags). (you can actually use it to build binary packages working out-of-the-box) that information is handled in ebuilds, special shell scripts that have the "version&dependency check,fetch,unpack,compile,test,install,merge" recipe.
so a gentoo repository it's just a collection of ebuilds, metadata and changelogs, no bin packages.
The point of the auto-build farm is not only to provide binaries. Actually it performs more important duties: it builds every night from to make sure that recent checkins to CVS didn't break anything;
I see. That is good,
and, it gives developers an easy way to make sure that their code works on other platforms without having to run builds themselves. That is why there should be a gentoo machine in the auto-build farm.
ok, got it. My advice is to leave the overlay on SVN, also because (hopefully) one day those ebuilds will go in the official gentoo repository, or at least in gentoo-sunrise (one of the biggest addon repos), so the task of syncing ebuilds will be totally transparent (it est: managed by emerge --sync).
until that day, you can add two commands that sync pd-related ebuilds from our repository, just before the line that compiles everything (that will be: emerge media-sound/pd media-plugins/zexy media-plugins/maxlib ...) into your cron job:
-----------[gentoo nightly build script]--------- pushd /usr/local/overlays svn co https://svn.sourceforge.net/svnroot/pd-overlay/pd-overlay popd # emerging stuff, like: # emerge pd maxlib zexy 2>&1 | tee emerge-pd.log -----------------------[end]---------------------
so, whenever something breaks in the gentoo build farm, it could depend on two factors:
ebuild script. I will fix that (pls file bugs at https://sourceforge.net/tracker/?atid=892936&group_id=180376&func=br...)
gentoo install someway (this can be fixed by both, just a matter of deciding *what* to fix, if the Makefile or the ebuild) or breaking the gentoo compile (this often should be solved upstream)
I don't use gentoo at all, so I'll leave that up to you. Maybe a good way to manage this is that you guys make releases of pd-overlay, I check those releases into the pure-data CVS. Then the nightly auto- builds run using the stuff in pure-data CVS.
I don't think repo-releases are needed. We try to put into SVN only working ebuilds (tested on our computers); the simplest ebuild that compiles and installs with: ./configure && make && make install should be 100% fail-safe
But the point is: actually 99% of our ebuilds have version -9999 (a convention to mean that their sources are pulled from Pd CVS) so they are more subject to break on CVS changes, especially when Makefile stuff like PREFIX and DESTDIR gets touched (!)
Making releases/snapshots for *every* external would help a lot improving reliability; though this is not primary purpose of the project; would be better to rely that each commit on pd-cvs doesn't break anything :)
Also: like other package management, we could mark ebuilds unstable, testing or stable, with simple use of keywords (please see the gentoo manual for more detail on this)
The key to making this work is having pd-overlay use the same directory structure as the pure-data CVS.
can you explain better what do you mean? pd-overlay has the structure of a gentoo ebuild tree. I don't believe it can be altered in some way
I've never installed gentoo. Could you point me to a CD image to install? Also, once it's installed, will you install all of the dependencies? I'll give you shell access to do that. Please document this on a wiki page too.
if you are going to install gentoo on x86 arch:
the same applies for other archs, like ppc, ia64, amd64, ppc64, hppa, alpha, ...
dependencies are checked automatically, so emerge-ing pd would install also Xorg, alsa, tcl, tk, etc....
anyway I can check your box for consistance :) just do the initial part of the install so that it can be bootable, then mail me ssh access, or let us meet on irc