On Thursday, 21 July 2022 at 11:52:42 UTC-7 Nils Bruin wrote:

> On Thursday, 21 July 2022 at 11:31:35 UTC-7 Matthias Koeppe wrote:
>
>>
>> You really just need to stop your distribution from automatically 
>> uninstalling the old shared library packages when you do upgrades. Both the 
>> old version (needed for your from-source installation of Sage) and the new 
>> version (needed as dependencies of upgraded system packages) can coexist in 
>> your system.
>>
>>
> Right .. but that would require telling the system which libraries need to 
> be preserved ... I guess one could collect the dependencies by a liberal 
> ldd application, but then one would need to query the package manager which 
> packages provide the requisite library files and then somehow register 
> those packages *are* dependencies ... I guess that could be done by 
> building a placeholder package (rpm or deb) that declares all the specific 
> dependencies. And to "declare" these, one could install that package. Upon 
> a reconfigure+rebuild, one could uninstall the old placeholder, recompute 
> the new dependencies, and install a new placeholder ...
>

Ouch ... and it looks like this wouldn't even work: if I try

dnf whatprovides /usr/lib64/libflint.so.17

I get:

flint-2.9.0-1.fc36.x86_64

and similarly

dnf whatprovides /usr.lib64/libflint.so.16
flint-2.8.4-2.fc36.x86_64

Hence, if a compiled-from-source sagemath were to declare its dependencies 
to the package manager it would have to do so by depending on a *specific 
version* of flint, and hence "updating" flint should lead to a dependency 
conflict. As long as fedora doesn't allow two different version of flint to 
be installed at the same time (and the fact that flint-2.9 "upgrades" 
flint-2.8 suggests that it won't), we'd need a version lock: just keeping 
an unmanaged so-file hang around in space that's supposed to be managed by 
a package manager would lead to a rather messy system state.

So, based on that, I think build-from-source using these kinds of system 
resources should actually *not* be a recommended install method: 
build-from-source should have its less stable prerequisites satisfied by 
some separate environment -- possibly/likely conda. Resources/libraries 
such as libflint are clearly *only* managed and provided by the OS in a way 
that is appropriate for other OS-managed/packaged software. Turns out 
there's still a niche for sage-the-distribution; possibly replaced by 
sage-in-conda-the-distribution. Can we get sage-on-conda modified so that 
it works nicely with git-trac, so that a sage-conda container can be used 
for development? I would be very interested in a guide to that.
 

-- 
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 on the web visit 
https://groups.google.com/d/msgid/sage-devel/6aea8da4-bd04-4eda-914a-c04a6fcbb4e6n%40googlegroups.com.

Reply via email to