Opened 13 years ago
Closed 17 months ago
#29832 closed defect (fixed)
sbcl should build more places (was does not respect build_arch or have a universal variant)
Reported by: | daniel.hornung@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.9.2 |
Keywords: | Cc: | easye, gwright@…, waqar@… | |
Port: | sbcl |
Description
With universal_archs i386 x86_64
in macports.conf and +universal, maxima-5.24.0 fails to build on OS X 10.5.8. The error message says:
---> Computing dependencies for maxima Error: Cannot install maxima for the arch(s) 'i386 x86_64' because Error: its dependency sbcl does not build for the required arch(s) by default Error: and does not have a universal variant. Error: Unable to upgrade port: architecture mismatch
So actually, the problem seems to lie with sbcl, which does not support x86_64 on Leopard.
Change History (9)
comment:1 Changed 13 years ago by mf2k (Frank Schima)
Cc: | easieste@… gwright@… waqar@… added |
---|---|
Port: | maxima sbcl added |
comment:2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)
Port: | maxima removed |
---|---|
Summary: | maxima fails to build for x86_64 on OS X 10.5 (sbcl not available for this arch) → sbcl does not respect build_arch or have a universal variant |
comment:3 Changed 20 months ago by kencu (Ken)
Resolution: | → worksforme |
---|---|
Status: | new → closed |
comment:4 follow-up: 5 Changed 20 months ago by jmroot (Joshua Root)
% sudo port install maxima +universal ---> Computing dependencies for maxima Error: Cannot install maxima for the archs 'arm64 x86_64' because Error: its dependency sbcl does not build for the required archs by default Error: and does not have a universal variant.
comment:5 follow-up: 7 Changed 20 months ago by easye
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
Replying to jmroot:
% sudo port install maxima +universal
[…]
Error: Cannot install maxima for the archs 'arm64 x86_64' because Error: its dependency sbcl does not build for the required archs by default
[…]
}}}
maxima merely requires an ANSI Common Lisp, not necessarily sbcl.
If you can run an openjdk, one could use the +abcl variant to install maxima.
port install maxima +abcl
sbcl itself can be built via abcl on those platforms where no bootstrap sbcl image is available. Such machinery was once part of the sbcl Portfile but seems to have been removed. I will take a stab at improving the sbcl Portfile's use of universal architecture as this issue.
It would be nice to encode these possibilities in the maxima ports use of the universal architecture as well.
It would be good for SBCL to be able to state somehow that it doesn't run universally. What is the best way to do this?
I have some reading to do about what universal currently entails.
comment:6 Changed 20 months ago by easye
Summary: | sbcl does not respect build_arch or have a universal variant → sbcl should build more places (was does not respect build_arch or have a universal variant) |
---|
comment:7 Changed 20 months ago by jmroot (Joshua Root)
Replying to easye:
It would be good for SBCL to be able to state somehow that it doesn't run universally. What is the best way to do this?
The sbcl port already doesn't offer a universal variant (implicitly because it sets use_configure no
). If it can't be made to build universal, there's nothing to be done in sbcl. The fix for this issue would be to also disable universal in sbcl's dependents.
comment:8 Changed 20 months ago by kencu (Ken)
maxima should not be labelled as failing to build universal itself, unless it is known that can’t.
If it’s a subport that won’t build universal, like sbcl, the subport will say so, like it already does, and prevent the attempt.
Otherwise, if and when the subport is made to build universal, all the dependents are still needlessly still labelled as having no universal variant, and you have a mess to clean up. Nobody knows then what will or won’t build universal, or what’s been tested or not.
There’s no “error” to fix here. Thousands of ports don’t build universal.
However, as an enhancement someday, if possible, someone can try on a current system, not Leopard i386, to see if sbcl can be made to build universal. If it can be, all the dependent ports may then start build universal too (unless other universal isdues then show up).
If someone tries and fails to build sbcl universally on a current system, and wants some help in so doing, they could attach a log and new information, as I said. That could be attched to this ticket, although this ticket is 15 years old and a new ticket relevant to the current world would have been my preference.
But obviously, I took a slap there for cleaning up ancient stale tickets.
comment:9 Changed 17 months ago by catap (Kirill A. Korinsky)
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
this ancient ticket is no longer relevant to the current sbcl port.
If you have a similar error, please open a new ticket with new information.