Hans-Christoph Steiner wrote:
Since you are also thinking about packaging, it would be good to open up a discussion about how to handle some things. If you plan on just packaging pd-vanilla, then its easy. If you want to support multiple versions of Pd then it gets a bit more complicated.
Yes, because they are incompatible.
Basically, libraries/externals can't be installed into 'pd/extra' because then the packages would conflict.
Huh? You can't have two packages installing the same file (but there are mechanisms to cope with this even then), but you can have different packages installing files into the same directory (/usr/bin/ for example).
I proposed /usr/lib/pd-externals/ as a place to install all packaged externals, so then you could have pd-vanilla, pd-extended, desiredata, etc. installed and they could all use the externals. Claude of pure-dyne had an objection to this, but he didn't follow up on the details.
It's broken by design.
Where is the guarantee that pd, pd-extended, desiredata, etc all have exactly equal binary API for externals? Some externals (that use GUI features, for example) won't work with desiredata while they work fine with pd. Also, some abstractions (that use [initbang], for example) won't work with pd while they work fine with pd-extended.
I suggest something like: /usr/lib/pd for pd, /usr/lib/pd-extended for pd-extended, /usr/lib/desiredata for desiredata. Otherwise you'll end up with a lot of broken-ness.
Claude