
On Fri, Jun 04, 2004 at 12:26:28PM +0300, Artemio wrote:
- Get the latest inkscape from cvs.
- Compile it for linux, win32 and mac.
- If the compilation is successful, prepare the source snapshot, and builds
snapshots in .tar.bz2 and .tar.gz.
The source snaps are already pushed nightly so only the buids need to be packaged. In the "inkscape_project" CVS module, under the "tarball" directory, you can see "update.sh":
http://cvs.sourceforge.net/viewcvs.py/*checkout*/inkscape/inkscape_project/t...
The binary compiles would most likely be:
- win32: just continue to do what Bob is doing and make a ZIP of the entire build. - linux: build RPMs for a variety of distros (suse, fedora, mandrake), build debs for debian unstable.
- Move these archives to $somewhere.
$somewhere would be on the sourceforge server, similar to the nightly source trees.
- Generate a web page with links to these snapshots.
Like the source snaps, this can just be a directory people look into. The nightly sources go into ${WEBDIRECTORY}/cvs-snap so maybe the builds would go into ${WEBDIRECTORY}/build-snap with "debian", "RPM" dirs?
- Where would the script run? At the sourceforge server?
I don't think this part can be run on the sf servers. There aren't compilers (or libraries) on the shell server, and the compile farm machines usually don't have all the libraries needed for more complex packages. (And I'm not sure that the compile farms can be easily "automated".)
I would recommend having individuals build the snapshot locally and then push the results to sourceforge. Setting up an SSH key to the sf server is well documented:
http://sourceforge.net/docman/display_doc.php?docid=761&group_id=1
- I don't know (yet) how to prepare a binary build in an archive. I mean that
make install puts everything in --prefix, but should the script "manually" get the data? Or there is a list of files to install and I can read it and use to prepare an archive?
There is a predefined way to build both a .rpm and a .deb file, so those packages can just be built "normally". I'm not 100% clear on the win32 process, though. (More details below.)
- Is the target snaphots dir and the target web page with links on the same
server that the script runs?
That would be the best, but I don't think we can do it with sourceforge (which is where the current source snaps are held).
Sorry, if you feel I am lame here (question #2) you may discard my help. But if I get any hints/suggestions, I think I'll make it ;-)
I should probably give more details to my answer to #2. Have you done any RPM or deb packaging before? With RPM the best way is to probably build the source .tar.gz first (via "make dist"), then:
rpmbuild -ta inkscape-....tar.gz
to build debian, it needs to be first unpacked:
fakeroot dpkg-buildpackage -us -uc
All *nix builds should do a "make distcheck" before attempting to compile. If "diskcheck" fails, the binaries shouldn't be distributed, IMHO.
so my pseudo code would be:
- cvs checkout - ./autogen.sh - ./configure - make distcheck - make dist - rpmbuild -ta ....tar.gz - fakeroot dpkg-buildpackage -us -uc - scp to sf
(although I don't think 1 person can do the builds for all the RPM flavors...)