New comment by tornaria on void-packages repository https://github.com/void-linux/void-packages/pull/34273#issuecomment-984136989 Comment: > @tornaria I don't recall how xbps handles packages that require specific versions of another package. As long as maxima-ecl gets rebuilt whenever ecl gets updated, it should be fine to include in `/usr/lib/ecl-21.2.1/`. I spent a little time in the ECL manual and on web search looking for a formal description of ecl's `require` implementation, but didn't find much. > > I _did_ find that ecl fasls are basically shared objects, so they may need to be recompiled when ecl is updated anyway. I'm not sure and can't find any good info. I was hoping that it doesn't need to be recompiled for minor version changes to ecl. In fact the binary which gets compiled in `/usr/lib/maxima/5.45.1/binary-ecl/maxima` requires `libecl.so.21.2` so I guess maxima will need recompilling (and xbps will enforce it) when the soname for libecl.so changes. > It's a shame, based on the [sagemath changes](https://trac.sagemath.org/ticket/32867) it looks like maxima needs to be `require`able rather than using any other package solution (`asdf` or somesuch) This is where sagemath loads ecl and maxima.fas: [src/sage/interfaces/maxima_lib.py](https://github.com/sagemath/sage/blob/develop/src/sage/interfaces/maxima_lib.py#L99). As you can see, sagemath embeds ecl and runs lisp code to load maxima, etc. I don't know much about common lisp. What would be a better (standard, portable) way to load `maxima.fas` using `asdf` instead of `require`? We could presumably try to change the initialization in sagemath. What would be the portable location for `maxima.fas` making this possible?