Thank you Michael,

My first guess is that 
SAGE_SPKG_DEPCHECK([bzip2 liblzma libffi zlib], ... 


I think that your guess is correct. 

IIRC you are building everything (except python, now) from SPKGs. If 
so and if you are sure that your newly-built python was linked against 
the sage copies of bzip2, zlib, etc., you can just ignore the DEPCHECK 
(edit it out). 


Except that it is impossible for the newly-built python to be linked 
against the
sage copies of those libs, because the hewly-built python needs to be built
*before* sage is built, and therefore before those libs have been built.

I assume that what you really mean is that a newly-built python is not 
sufficient.
That python must be accompanied by all of those other libraries  and then 
sage
must also use the same libraries.  One way to do that might be to modify 
the sage
build process so that it builds the spkgs for those libraries and  then is 
forced to
halt while a separate python compilation is done in such a way that the 
python
modules which use those libraries can be linked against the versions which 
were
built by the corresponding sage spkgs. The sage build process could perhaps 
then
be restarted to build the rest of sage.

Of course that kind of craziness is exactly what I am hoping to avoid and 
what I do
not have to worry about with the current setup.  All of that complicated 
sequencing
is currently handled automatically because python3 is built by an spkg 
which specifies
those libraries as dependencies.

So the only practical way forward seems to be to install python in some 
context which
also includes all of those other libraries.  And somehow sage must be 
informed to
search in that context for all of those libraries.  (Running configure 
--help shows
options for saying whether to use the "system versions" of those libraries, 
but there
seems to be no way of providing a path to those options, and there is no 
hint about
how sage will actually decide whether the "system version" of one of those 
libraries
is usable.)

I expect that decision process isn't something general, such as checking 
for the
libraries in the same directory where the python3.13 directory is located, 
or in the lib
directory adjacent to the bin directory containing the python3 executable, 
or a hardwired
test which causes sage to use the versions of those libraries provided by 
Apple,.  I would
guess that instead there are some hardwired checks for whether homebrew or 
conda
is being used, and maybe a check of /usr/local.  If those  checks fail I 
would guess
that it just returns an error.  Does anyone know how sage decides whether 
there
is a usable "system version" of bzip2 or liblzma?

Of course the other complication is that I need to be able to make the sage 
installation
self-contained and relocatable.  I have done a lot of experimentation with 
that over the
last few days, which seems to indicate that it is not possible to make a 
standard "prefix"
installation of python relocatable - one has to use a "framework" 
installation to do that.

- Marc

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/sage-devel/a88d22ca-b9a4-485a-9912-d140338d8f7cn%40googlegroups.com.

Reply via email to