On 2 Dec 2022, at 05:11, Andrey Grozin <grozin@woodpecker.gentoo.org> wrote:this works.
Hello *,
The sbcl upstream only supports glibc Linux systems. Building sbcl uses sbcl binary (which fails to run on musl) to compile sbcl sources.
In principle, one can try a workaround: use some other lisp (say, clisp or ecl) as the bootstrap lisp. This way is at best brittle: there is no guarantee that these external lisps will compile the sbcl sources successfully. People say that sometimes
No user of musl profiles could successfully emerge sbcl from time -infinity to the present moment. The natural solution is to pmask sbcl in musl profiles.packages depend on {perception,robot,viz}, I haven't checked.
So I've done. But this leads to unexpected consequences. dev-ros/roslisp hard depends on sbcl. ros-meta/ros_core hard depends on roslisp. ros-meta/ros_base hard depends on ros_core. ros-meta/{perception,robot,viz} hard depend on ros_core. Maybe, more
This means that no user of the musl profiles has ever been able to emerge all these packages (because they did not have sbcl). And all these packages should be pmasked in the musl profiles.roslisp can use some other lisp instead of sbcl?
Before doing this drastic change I decided to ask for your advice. Should I go forward and pmask them now? Or maybe for some of them the dependence on sbcl can be made optional, and it would be sufficient to use.mask such an option name? Or maybe
If the dependencies are optional (at least for some), we should indeed (package.)use.mask sbcl on musl to reduce the damage,But I cannot do these this myself. I use neither musl nor ros. I suppose
then package.mask the remaining unconditional reverse dependencies.
The sbcl ebuild from the Gentoo tree is useless on musl. And hence itshould be masked. Otherwise somebody would think that [s]he can simply
For the record I've had sbcl building and running on musl for monthsYes. Either cross-compiling, or (with some luck) using some other lisp for bootstrap.
without issue (at one point I even had static linking working). You
have to cross compile a musl version and then side load the binary
instead of using one of the distributed binaries. See https://github.com/tgbugs/dockerfiles/blob/master/source.org#sbcl-bootstrap for reference. See also https://hub.docker.com/r/tgbugs/musl/tags?page=1&name=sbcl.
Thus I'd very much appreciate if it sbcl were not masked on those profiles.The sbcl ebuild from the Gentoo tree is useless on musl. And hence it
This means that no user of the musl profiles has ever been able to emerge
all these packages (because they did not have sbcl). And all these
packages should be pmasked in the musl profiles.
On 2 Dec 2022, at 19:28, Peter Stuge <peter@stuge.se> wrote:
Andrey Grozin wrote:
This means that no user of the musl profiles has ever been able to emerge
all these packages (because they did not have sbcl). And all these
packages should be pmasked in the musl profiles.
Is the last sentence actually true?
Shouldn't only ebuilds with actual problems be masked?
Even if there's currently no possibility to emerge other packages
which depend on that it seems incorrect to mask those other packages
only because a dependency can't be emerged?
Andrey Grozin wrote:
This means that no user of the musl profiles has ever been able to emerge all these packages (because they did not have sbcl). And all these
packages should be pmasked in the musl profiles.
Is the last sentence actually true?
Shouldn't only ebuilds with actual problems be masked?
Even if there's currently no possibility to emerge other packages
which depend on that it seems incorrect to mask those other packages
only because a dependency can't be emerged?
I don't think portage cares; it will show sbcl masked if it is a
dependency, right?
Thanks
//Peter
In principle, one can try a workaround: use some other lisp (say, clisp or >ecl) as the bootstrap lisp. This way is at best brittle: there is no >guarantee that these external lisps will compile the sbcl sources >successfully. People say that sometimes this works.
[2022-12-02 05:11:15+0000] Andrey Grozin:
In principle, one can try a workaround: use some other lisp (say, clisp or ecl) as the bootstrap lisp. This way is at best brittle: there is no guarantee that these external lisps will compile the sbcl sources successfully. People say that sometimes this works.
Well Alpine is using the ecl route: https://git.alpinelinux.org/aports/tree/community/sbcl/APKBUILD
Well Alpine is using the ecl route: https://git.alpinelinux.org/aports/tree/community/sbcl/APKBUILDIn principle, we can do something similar:
And GNU GuixSD is using the clisp route but per the comments ecl would be better: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/lisp.scm#n424
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 475 |
Nodes: | 16 (2 / 14) |
Uptime: | 17:13:41 |
Calls: | 9,487 |
Calls today: | 6 |
Files: | 13,617 |
Messages: | 6,121,089 |