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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.