Hallo, Hans-Christoph Steiner hat gesagt: // Hans-Christoph Steiner wrote:
The problem is versioning. One of the goals of Pd-extended is to be compatible with the same version of Pd-vanilla, i.e. Pd-extended 0.40.3 can run anything that Pd-vanilla 0.40.3 can. I imagine that desiredata has a similar goal, but maybe not. The objects in 'extra' are part of what Pd-vanilla 0.40.3 provides.
Okay, now here's an issue: I agree that the objects in "extra" are something, that "pd" should provide. But if the packages "pdextended" and "desiredata" provide "pd" they also have to provide, say, expr.pd_linux, even if "puredata" is not installed. This gets even hairier with things like helpfiles: a package that provides "pd" should include and provide route-help.pd, of which we have a different one in PDDP which maybe is part of "pdextended.deb" (or maybe isn't).
So if the objects in extra come with the 'puredata' package and are put into the common /usr/lib/pd directory, then the 'pdextended' and 'desiredata' packages would use the versions that come with 'puredata'. So that means they would need to be removed from the 'pdextended' and 'desiredata' packages.
If "pdx" and "dd" provide "pd" and if "providing pd" includes providing an [expr] object, then you can't do that, see above.
That's not a big deal, I am ok with that. But the problem is that if 'puredata' gets updated to 0.43 while 'pdextended' is still at 0.42, and 'puredata' puts the 'extra' externals into the shared directory. Then 'pdextended' can't be 0.42 compatible anymore.
You can do versioned dependencies with Debian ("Depends: pd >= 0.44"), but of course a package that provides "X" itself cannot depend on "X >= y.z" in a sensible way.
One idea is to package Pd vanilla's 'extra' separately, i.e. 'pd-extra'. Then 'puredata' can Recommend 'pd-extra' and 'pdextended' can Conflict with 'pd-extra' and I can make versioned packages for 'pdextended', ie 'pd-extra042'. Another is to have the extra folder from 'puredata' in /usr/lib/puredata.
"pdextended" could also a) depend on "puredata == 0.42", so that it gets deinstalled or updated, when a newer "puredata" is installed, or b) it could be completely independent of "puredata" (i.e. have its own "expr.pd_linux") or c) it could conflict, replace and provide "pd" so that you can only install one. Maybe there are some other possibilities.
Ciao