[PD-dev] Debian packaging: multi-object/single-file libraries or single-object/multiple-files libraries?

Roman Haefeli reduzent at gmail.com
Wed Nov 10 22:06:42 CET 2010


Hi all

As you might know, a lot of the Pd libraries are being packaged for
Debian. Some of them have already been uploaded and can be installed
from unstable.

I'd like to include also the iemmatrix library. In Pd-extended, it is
bundled as a one-file-per-object library, which allows to instantiate
objects by prepending the library name (for instance:
[iemmatrix/mtx_*~]). For this to work correctly, the (still to be
packaged) hexloader is required, which must be loaded manually by the
user. 

Fact is, that we must assume that Pd-extended users already have made
patches using [prefix/objectname], which would break, if the iemmatrix
library is packaged as a multi-object-single-file library. This means,
that iemmatrix should be packaged as a one-object-per-file library. This
again means, that it should be made dependent on the hexloader loader in
order to work correctly. The problem is then, that hexloader is _not_
automatically loaded by Pd, but needs to be loaded manually by the user.
This in return would break patches created by users used to the
multi-object-per-file format of the library and don't know that they are
suddenly supposed to load the hexloader to make their patches work,
since they hadn't to do that before. Anyway, it's unfortunate to be
forced to use a certain loader, when at the same time there'd be the
possibility to have a perfectly functional library without loader (BTW:
PureDyne has always used a multi-object/single-file library format, so
there also users used to that). 

In an ideal world, the loader would be loaded automatically when needed,
so that a one-file-per-object iemmatrix could be made 'just to work the
same'(tm) as the multi-object-per-file iemmatrix. However, this would
require a special mechanism in Pd to either load all available loaders
automatically or load them when needed. From a Debian perspective,
making pd-iemmatrix dependent on pd-hexloader would suffice to make it
work out-of-the-box.

Generally speaking, an extra handling for loaders is not a bad idea.
They are not libraries in that they don't provide any functionality by
themselves and having to do an extra step to manually load a certain
loader before loading the actual library is awkward, also because the
library actually 'knows' what it needs.
But I don't have the slightiest clue who/if this is going to be
implemented.

In the case of iemmatrix (and also zexy, which actually already is
packaged as a multi-object-single-file library in Debian, but as a
one-object-one-file library in Pd-extended) and assuming that there
won't be any intelligent loader loader soon, what is the best way to go?

I appreciate any opinions on this.

Roman




More information about the Pd-dev mailing list