[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

How to package SuperCollider (or, whats the deal with multiarch)



Hi.

SuperCollider is for some reason I am going to explain below a bit
strange when it comes to porting it to AMD64:

SC consists of two separate programs, the synthesis server (connects to JACK),
and the language client which executes SCLang code.  Both processes
communicate with each other via UDP (OSC).

For reasons of design and speed vs. space tradeoffs, the language
*has* to be compiled as a 32bit binary.  The 64bit build fails
at runtime due to pointer size overflows.  (if anyone wants to know
more about it, the main reason for this is that SCLang uses a kind
of slot-mechanism to hold direct and indirect values all in a 64bit
double, therefore a 64bit pointer + tag does not fit).

OTOH, the synthesis server builds in 64bit mode, and works nicely.  It
actually has to be built 64bit, since it links to JACK, which
is most probably a 64bit version on an debian amd64 box...

Now, I can build and install this stuff by hand, simply build the
server on the system as usual, and build the language client in a sid-ia32
chroot, do the ld.so.conf magic and symlink sclang.  That works
nicely.
However, I am kind of wondering how to solve this properly
when it comes to packaging supercollider?
I am not up-to-date with how multiarch is exactly ment to work
these days, would it fit this kind of application?
If so, whats the proper way to do it, and can this already be done
with the infrastructure currently in amd64 sid?

-- 
CYa,
  Mario



Reply to: