Re: Thoughtful updates to TexLive

2025-03-26 Thread Development of GNU Guix and the GNU System distribution.
Hello,

Andreas Enge  writes:

> Actually I am wrong, it is CTAN, not Texlive. And CTAN contains rather
> obscure packages, such as the thesis format for this or that university,
> which I suppose are not shipped as part of Texlive.

I believe TeX Live includes all free parts of CTAN. In particular,
texlive-collection-publishers is full of these thesis formats.

Regards,
-- 
Nicolas Goaziou





Re: chez scheme can't load system shared library

2025-03-26 Thread Sebastian Dümcke

Dear André,

yours and Pan message suggest you are using guix on a foreign distro. 
That would also mean, that the libraries you find in /usr/lib are the 
ones from the foreign system. As such, these libraries will have been 
compiled+linked with different tools/versions than the ones in guix. I 
believe this makes them incompatible and leads to the dreaded 
"Segmentation fault" error.


I know no solution to mix+match libraries from guix with those of your 
distro. It seems really all or nothing.


Hope this clears things up,
Sebastian

On 3/26/25 10:51, guix-devel-requ...@gnu.org wrote:

Date: Wed, 26 Mar 2025 10:23:19 +0200
From: André A. Gomes
To: Pan Xie
Cc: Felix Lechner,help-g...@gnu.org,
guix-devel@gnu.org
Subject: Re: chez scheme can't load system shared library
Message-ID:<871pukurns@gmail.com>
Content-Type: text/plain; charset=utf-8

Pan Xie  writes:


Thanks for your response. Unfortunately, it does not work:


`LD_LIBRARY_PATH' is empty in my shell:

$ echo $LD_LIBRARY_PATH


scheme can't start up with LD_LIBRARY_PATH set:

$ LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH  scheme
Segmentation fault (core dumped)

$ LD_LIBRARY_PATH='/usr/lib' scheme
Segmentation fault (core dumped)

The question by Pan has been answered but I have questions on this topic:

What's the cause of this segmentation fault on Guix?

Is there a way to use chez scheme installed via Guix to see the shared
library at /usr/lib (instead of installing the package that provides it
it via Guix)?

Thanks.


-- André A. Gomes "You cannot even find the ruins..."


Re: New procedure to modify operating-system records

2025-03-26 Thread Rutherther


Hi Sergio,

Sergio Pastor Pérez  writes:

> Rutherther  writes:
>> what I am asking is how this will be achieved - coverage of same use
>> case. Possibly I am just missing something, so let's take guix system
>> reconfigure as an example. Could you point where I am wrong in my
>> reasoning?
>>
>> 1. Guix system reconfigure expects a file as argument, that will return
>> operating-system record.
>> 2. with-transformation uses map-derivation, it will work on
>> operating-system-derivation, not on operating-system, and
>> return a derivation, not an operating-system.
>> 3. Therefore, without changes to guix system reconfigure, it cannot be used
>> as the returned object from file is not operating-system.
>
> Yes, you are correct. I'm not sure if `guix system reconfigure' accepts
> a derivation. If it does not, we will have to adapt it.
>
> It would make sense that reconfigure accepted a derivation since
> `guix build' does. For example the following file it's valid for
> `guix build -f `:

It doesn't. And I don't think it will be easy to make the whole
guix system stuff work with raw derivations.

The thing is, the derivation being built changes according to the
action, the vm and container have a different derivation than
the one used with reconfigure.

On top of that, and probably more importantly, the operating system
fields are utilized for various checks or even for installation, ie. the
bootloader is taken out of operating-sytem-bootloader, not from the
operating system derivation (I think the operating-system-derivation
doesn't even depend on the bootloader at all), and maybe even
more stuff I am missing.

If we were to talk about the easiest approach, I think that the easiest
would be to make an operating system field like `transformation`
that would get applied when the derivation is being lowered[1]
in the system script. Additionally, guix system doesn't currently
handle regular guix transformations, the same could be done about
those to start supporting it with guix system. The only questionable
thing is, then, what all derivations should be transformed,
if only the operating system itself or also the bootloader, vm (qemu...)
etc.

[1] See guix/scripts/system.scm (system-derivation-for-action)

Regards,
Rutherther



Re: Guix on the MNT/Reform Status Update

2025-03-26 Thread Andreas Enge
Hello Vagrant,

Am Sun, Mar 23, 2025 at 04:54:15PM -0700 schrieb Vagrant Cascadian:
> Tested on MNT Reform2 with rk3588 module (other variants *might* work too!)

I own an original Reform with the imx8mq module (I think), and the other
day came upon a special offer for an SD card in my local supermarket, so
I could go ahead and give it a try; but I would need a detailed
description for dummies on how to create a boot image, as I have only
very vague ideas how booting works in general and outside of grub in
particular.

Right now I boot from an SD card and have "everything else" on the
encrypted  NVME SSD (/boot is SD, / is SSD), so I suppose it would be
easily possible to boot from a Guix SD as / without using the SSD.

Would you mind sending me a configuration file and line-by-line
instructions on what to do? I suppose it is a "guix system image"
followed by a "dd" to the SD card? Hm, but where would the uboot
come from then?

Thanks for your help!

Andreas




Re: chez scheme can't load system shared library

2025-03-26 Thread Sebastian Dümcke
Not sure how to answer to a particular meesage from the digest emals I 
am receiving. Hope this finds the right person and thus not upset anyone.


Hi Pan,

you need to set LD_LIBRARY_PATH to your profile library path (and then 
load without absolute path in chez). The following works for me:


> guix shell -CP coreutils-minimal chez-scheme openssl
> ls ~/.guix-profile/lib
csv10.1.0 engines-3 libcrypto.so libcrypto.so.3 libssl.so libssl.so.3 
ossl-modules pkgconfig

> LD_LIBRARY_PATH=~/.guix-profile/lib scheme
(load-shared-object "libssl.so")

Best
Sebastian



Re: chez scheme can't load system shared library

2025-03-26 Thread André A . Gomes
Pan Xie  writes:

> Thanks for your response. Unfortunately, it does not work:
>
>
> `LD_LIBRARY_PATH' is empty in my shell:
>
> $ echo $LD_LIBRARY_PATH
>
>
> scheme can't start up with LD_LIBRARY_PATH set:
>
> $ LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH scheme
> Segmentation fault (core dumped)
>
> $ LD_LIBRARY_PATH='/usr/lib' scheme
> Segmentation fault (core dumped)

The question by Pan has been answered but I have questions on this topic:

What's the cause of this segmentation fault on Guix?

Is there a way to use chez scheme installed via Guix to see the shared
library at /usr/lib (instead of installing the package that provides it
it via Guix)?

Thanks.


-- 
André A. Gomes
"You cannot even find the ruins..."



Re: chez scheme can't load system shared library

2025-03-26 Thread Ricardo Wurmus

André A. Gomes  writes:


Pan Xie  writes:


scheme can't start up with LD_LIBRARY_PATH set:

$ LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH scheme
Segmentation fault (core dumped)

$ LD_LIBRARY_PATH='/usr/lib' scheme
Segmentation fault (core dumped)


The question by Pan has been answered but I have questions on 
this topic:


What's the cause of this segmentation fault on Guix?

Is there a way to use chez scheme installed via Guix to see the 
shared
library at /usr/lib (instead of installing the package that 
provides it

it via Guix)?


Generally, this is not possible.  It's not a problem that's 
limited to Guix.


You cannot generally assume that libraries from different sources 
are ABI compatible.  Segfaults like this are often the result of 
forcibly joining binaries with incompatible ABIs.  The ABI is a 
contract between different binaries that allows one binary to jump 
straight into some offset of a library to execute instructions. 
When that contract is broken or ignored (because the binaries 
disagree on the offsets of the implementation of a named feature) 
then an executable may jump into the void where it expected a 
library to provide an implementation.  This jump into the void is 
punished by the kernel with termination of the executable.


LD_LIBRARY_PATH is a very blunt tool and it is meant for people 
who know for a fact that the libraries contained in the given 
directories implement a compatible ABI as the given executable. 
On traditional systems with a single global store of compatible 
libraries built with the same toolchain and linked with the same 
set of "system" libraries throughout this assumption generally 
holds.  When more than one toolchain is used, however, all bets 
are off.


--
Ricardo