Inkscape¶
The Inkscape project makes available a binary RPM which works on various platforms. However, using this RPM directly has a few limitations for users:
- They must be root to install it.
- It doesn't work on all distributions (e.g., Debian).
- The system won't periodically check for updates.
These limitations can be avoided by creating a Zero Install interface file for it. This guide goes over the steps quite quickly. For more details see the packaging main guide.
Note
The original Inkscape binary RPM was compiled with binreloc support disabled, which prevented it from finding its icons (it used hard-coded paths). Jean-François Lemaire, the creator of the RPM, has kindly recompiled it for us with relocation support turned on.
Creating the interface¶
We'll be using the 0publish
command to create the interface file. If you don't have it already, create an alias for 0publish
in the usual way:
$ 0install add 0publish http://0install.net/2006/interfaces/0publish
To create the interface file:
-
Download the static binary RPM:
$ wget http://users.skynet.be/jflemaire/files/inkscape-0.43-0.i386.rpm
-
Create the interface:
$ 0publish Inkscape.xml
Fill in the
name
,summary
,description
,icon
andhomepage
fields. Setmain='usr/bin/inkscape'
on thegroup
element. Save and quit (using the default filename). -
Add version 0.43 with the location of the static RPM:
$ 0publish Inkscape.xml \ --set-version=0.43 \ --archive-url=http://users.skynet.be/jflemaire/files/inkscape-0.43-0.i386.rpm \ --set-released=today \ --set-arch=Linux-i486
Testing it¶
You can run the new XML file with 0install
to download and run Inkscape:
$ 0install run ./Inkscape.xml
Signing and publishing¶
Now we need to sign the XML file using our GPG key. If you don't already have a GPG key, create one now:
$ gpg --gen-key
We also need to decide where the Inkscape XML file will be made available. This URL should not change, since other programs will link to it. We'll assume http://inkscape.org/2006/ZeroInstall/Inkscape.xml
here.
To set the URI and sign the interface:
$ 0publish Inkscape.xml \
--set-interface-uri=http://inkscape.org/2006/ZeroInstall/Inkscape.xml \
--xmlsign
Exported public key as 'AE07828059A53CC1.gpg'
Upload the resulting Inkscape.xml
and GPG files to the same directory on the web-server. The XML file should look something like the Inkscape.xml test interface.
Using the published interface¶
You can now run Inkscape like this:
$ 0install run http://inkscape.org/2006/ZeroInstall/Inkscape.xml
Users can now install Inkscape using this URL, either using some graphical installer (like ROX's AddApp or Xfce 4.4's panel). Command-line users can get it like this:
$ 0install add inkscape http://inkscape.org/2006/ZeroInstall/Inkscape.xml
They can then run it by typing inkscape
. To choose a different version:
$ 0install update --gui inkscape
Marking as stable¶
After the release has been out for a while, mark it as stable:
$ 0publish Inkscape.xml --stable
Users can configure the injector either to prefer stable versions or to select testing versions by default. This gives your more advanced users the chance to provide feedback before you roll a new release out to all users.
Making a new release¶
When a new static binary RPM is released, add the new version to the XML as follows:
- Download the new RPM (if you're not the person who made it).
- Add it to the XML (note use of
add-version
rather thanset-version
here):
$ 0publish Inkscape.xml \
--add-version=0.44 \
--archive-url=http://users.skynet.be/jflemaire/files/inkscape-0.44-0.i386.rpm \
--set-released=today \
--set-arch=Linux-i486