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: newclosed

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.

comment:4 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 in reply to:  4 ; Changed 20 months ago by easye

Resolution: worksforme
Status: closedreopened

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 variantsbcl should build more places (was does not respect build_arch or have a universal variant)

comment:7 in reply to:  5 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: reopenedclosed

In d1f240affd993dd3204f8b70c6d28195959df797/macports-ports (master):

sbcl: pin as 2.3.5 for i386 and powerpc

Closes: #29832
Closes: #47288

Note: See TracTickets for help on using tickets.