Re: ZeroInstall & Package systems [Was: Re: Dock padding_pixels suggestion]
Thomas Leonard <[email protected]>
| Newsgroups | gmane.comp.window-managers.ion.general |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 11 Jul 2007 06:51:58 +0000, Tuomo Valkonen wrote: > On 2007-07-11, Thomas Leonard <[email protected]> wrote: >> Same thing then... you're using a tool to create the HTML/XML for you. > > And which tool would let me edit a package description in a decent format? I'd suggest you use 0publish-gui to create the feed. GUI's aren't very scriptable, but you're only doing it once. Then add to it by calling the command-line tool (0publish) in your release script. If you want to convert XML to a more friendly format, there are other tools for that: http://slip.sourceforge.net/ http://www.langdale.com.au/SOX/ My text editor (Vim) understands XML somewhat anyway, so I haven't felt the need to use them. >> <requires interface="http://0install.net/2007/3rd-party/libsvn1.xml"> >> <environment insert="usr/lib" name="LD_LIBRARY_PATH"/> >> </requires> > > Well, at least it has a package (although not capability) based > dependency system unlike autopackage. (Actually, that definition does > include a partial description of how the depended-upon library provides > a wanted capability: with 'insert="usr/lib" name="LD_LIBRARY_PATH"'. > It's just in the wrong place: it should be in the libsvn1 description, > with Subversion depending only on the capability.) It uses the 'dependency injection' model (AKA 'inversion of control'). Instead of each component finding its dependencies (e.g. by searching /usr/lib), each component is told where to find its dependencies. So, this is an input to the 'svn' component, telling it which 'libsvn' to use. But, it's not clear from that example because I'm using the unmodified Debian subversion binaries and the only way to tell svn "Use this libsvn" is to stick it in LD_LIBRARY_PATH and let it find it by searching. Ideally, it would be: <environment insert="usr/lib" name="LIB_SVN_DIR" mode="replace"/> And you'd link it (if ld supported this) with something like: $ gcc ... -l"$LIB_SVN_DIR/libsvn.so" Or, in a really ideal world you wouldn't have to specify the binding method at all, because there would be a standard way to tell a component where its libraries are. -- Dr Thomas Leonard http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1