Hi Sam,
Since you’ve already got a release process, the easiest way is probably a
script to add the binary packages to the XML. There’s a script to do this
automatically, called deb2zero. Alternatively, there’s also a script for
RPMs (currently unreleased, but I can release it easily enough).
SDL seems to have good binary compatibility, so it shouldn’t matter too
much which you use (I ran the binary of ClanBomber, compiled using
Debian/unstable, on Ubuntu 9.04, using RPMs of SDL, and it worked fine).
I slightly prefer debs, because they have a more consistent layout
(always lib/*.so). RPMs sometimes use ‘lib’ and sometimes ‘lib64’,
though it can be worked-around easily enough. It’s best to do the same
each time though (always use the deb or always use the RPM) because
other programs will depend on the layout to find the .so files.
For example, to create the feeds (tested on Ubuntu 9.04, but similar
instructions will work for other systems)…
Get the scripts:
$ sudo apt-get install zeroinstall-injector
$ 0alias deb2zero http://0install.net/2008/interfaces/deb2zero.xml
$ 0alias 0publish http://0install.net/2006/interfaces/0publish
Create a feed for SDL. The URL for the .deb should be a stable location
(otherwise, it will need to be updated from time-to-time). Enter the
URL where the XML feed will appear on the web-site, when prompted:
$ deb2zero http://ftp.uk.debian.org/debian/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.13-2_i386.deb libsdl1.2.xml
Enter the URI for this feed: http://www.libsdl.org/lib/libsdl1.2.xml
Wrote name mapping to ~/.config/0install.net/deb2zero/deb-mappings
Added version 1.2.13-2 to libsdl1.2.xml
This results in an XML file with the download link for this version. If
you run it again with the URL for a different version (e.g. a newer version
or a different architecture) it will add that to the same file. It also
records the mapping from the Debian package name to the URI you entered,
so dependencies can be handled automatically later.
Finally, sign the file and upload it:
$ 0publish --xmlsign --key=Sam libsdl1.2.xml
Changing key from ‘None’ to 'Sam’
Exported public key as ‘A863218B2F77EB73.gpg’
$ scp libsdl1.2.xml A863218B2F77EB73.gpg server:/var/www/lib/
You only have to tell it to sign the file once; when adding new versions
later it will resign it with the same key. If you want to test without
uploading, use “0launch --import libsdl1.2.xml”.
To add other SDL libraries, make sure their dependencies have already been
done. Then, e.g.
$ deb2zero http://ftp.uk.debian.org/debian/pool/main/s/sdl-image1.2/libsdl-image1.2_1.2.6-3_i386.deb
Wrote name mapping to ~/.config/0install.net/deb2zero/deb-mappings
Added version 1.2.6-3 to libsdl-image1.2.xml
I’ve edited the old Barrage XML to point at your new version, so you
should be able to test it with:
$ 0launch http://0install.net/tests/Barrage.xml
For the -devel packages, I think it might be easiest if I modify our
compile system to rewrite the pkg-config file itself. That should help
with other programs, too.
Thanks,On Sat, 23 May 2009 08:42:24 -0700, Sam Lantinga wrote:
If you want to create a Zero Install feed, I’ll be happy to make changes
to the SDL archives to make it easy for you to do so! Or if you want to
write a script to automate it, I can certainly put it together as part
of the SDL release process.See ya!
–SamOn Sat, May 23, 2009 at 6:27 AM, Thomas Leonard <@Thomas_Leonard> wrote:
Hi all,
Sorry if this has been asked before, but I notice that there are quite
a few Zero Install feeds for programs depending on SDL (Zero Install is
an open source decentralised software distribution system: see
http://0install.net for details). A quick look turned up this list:opencity
gnome-inform7
python-pygame
grquiz
FooBillard
Barrage
LBreakout
LGeneral
LMarbles
LPairs
Penguin Command
Epeli
OpenTTD
ClanBomberHowever, there’s no official feed for SDL itself, so they depend on
various different feeds which have been made by different people, and
are out-of-date to varying degrees.e.g.
$ 0launch --list sdl
http://0install.net/2008/3rd-party/libsdl-image1.2.xml
http://0install.net/2008/3rd-party/libsdl-mixer1.2.xml
http://akfoerster.de/zero/sdl-1.2.xml
http://freenet-homepage.de/LinuxCNC/0install/SDL-mixer/sdl-mixer.xml
http://freenet-homepage.de/LinuxCNC/0install/SDL/sdl.xml
http://people.freenet.de/LinuxCNC/0install/sdl
http://people.freenet.de/LinuxCNC/0install/sdl-mixer
http://people.freenet.de/LinuxCNC/0install/sdl-mixer-libmikmodSome games don’t explicitly depend on SDL at all, and require the user
to install it manually (e.g. ClanBomber, which doesn’t work on Ubuntu
9.04 because it depends on SDL from Debian/unstable, since there’s no
feed of a recent enough version of SDL).Would you be interested in publishing official feeds for SDL (for the
runtime and devel packages)? I was going to publish a feed for the RPMs
directly, but I see that the -devel packages have a hard-coded
pkgconfig path. e.g. they use:prefix=/usr
rather than:
prefix=${pcfiledir}/…/…
Zero Install packages are never installed to system-owned locations
like /usr, so I’d have to patch them, and I thought it might be easier
to get them published that way in the first place. Let me know if
you’re interested in this (or if you want any help).–
Dr Thomas Leonard http://rox.sourceforge.net GPG: 9242
9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1_______________________________________________ SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
–
Dr Thomas Leonard http://rox.sourceforge.net
GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1