guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: First impressions from delving into Guix


From: zimoun
Subject: Re: First impressions from delving into Guix
Date: Sun, 11 Oct 2020 13:46:26 +0200

Dear,

Thank you for the feedback.


On Sun, 11 Oct 2020 at 04:14, Lulu <me@erkin.party> wrote:

> I've been navigating Guix for the past couple days. Here's how it
> went:

Nice!


> At first, I added a skeleton for `guix git log' by copying from
> `guix git authenticate'. It might be useful to have a generic template for 
> Guix
> scripts, with conventions and all, by the way, because there isn't much in
> "(guix)Coding Style".

What do you mean?  What do you feel that is missing?


> I figured it would make things easier to use Guix System in a VM, so I booted
> the QCOW2 image using the given libvirt config in "(guix)Running Guix in a VM"
> (although there were some typos and grammar errors, maybe I should send a 
> patch
> for them).

Neat!  Please raise the hand on #guix or guix-devel if you need help.

You could be interested by:

   <https://guix.gnu.org/manual/devel/en/guix.html#Submitting-Patches>


>            It worked without a hitch, but I got stumped when it came to
> configuration. I scanned through the info page to no avail. It's not exactly
> clear from the documentation that there are no configuration in the Unix 
> sense,
> but rather single-use configuration scripts (which is admittedly really cool).
> I spent some time trying to find where the `operating-system' variable is
> defined, but people helpfully clarified in #guix that I need to make a script
> declaratively defining the setup I have in mind, then let Guix adapt itself to
> that automatically. Equipped with that knowledge, I decided I'm better off
> generating my own VM image once I have a better idea of what sort of Guix 
> setup
> I want. It might be a good idea to clarify this in the info page.

Do you have a wording suggestion?


> Next, I went back to installing Guix normally on Arch Linux (I tried
> it on

AFAIK, it is always cumbersome to install Guix using other distro
package managers.  From my experience, it is easier to use the Binary
Script that Guix provides.


> Fedora previously and ran into SELinux issues). The AUR script is a
> bit wonky

If you have time, I would be interested by these issues; if you remember.


> due to dependencies so I just used the official binary installer. When
> I tried

Cool!

Then I am not following what you did if you used the Binary Script that
Guix provides for foreign distro.


> to bootstrap Guile, I ran into the problem that Guile 3.0 is unavailable.
> Indeed, Arch developers have been neglecting to add Guile 3.0 to the official
> repos. (Scheme is a bit neglected in this respect. The MIT/GNU Scheme package
> has been broken for a while as well.) So I got a build script off AUR 
> (although
> I had to patch it because it tried to replace Guile 2.2, which breaks programs
> like `make' that are linked to libguile2.2) and built Guile.

What do you mean?  “guix show guile” lists all the available versions.

Which Guile have you patched?  The Guile that Arch provides, right?


> Now that I had a working Guix + Guile 3 setup, I ran into the seemingly common
> `setlocale' issue which was quickly solved by installing both `glibc-locales`
> /and/ `glibc-utf8-locales` (and updating them with each glibc update), then
> setting `$GUILE_LOCPATH' accordingly for both root and my user. I did a
> `guix pull' and everything was dandy.

The package ’glibc-utf8-locales’ is a subset of ’glibc-locales’.
Basically, ’glibc-utf8-locales’ provides these locales, only:

--8<---------------cut here---------------start------------->8---
                               ;; These are the locales commonly used for
                               ;; tests---e.g., in Guile's i18n tests.
                               '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR"))
--8<---------------cut here---------------end--------------->8---

So I am not convinced that the “and” is really required. ;-)  But “more
is less”. :-)


> With no more yaks to shave, I ran finished bootstrapping, ran the post install
> environment and my subcommand works! Now I can go back to add the functional
> parts of the script. I'll keep you updated!

Cool!

I suggest to read [1, 2, 3, 4, 5, 6, 7] and try to package something.
Easy and good candidates for first packages are CRAN or BioConductor
packages:

   guix import cran <pkg>
   guix import cran -a bioconductor <pkg>

You can pick unpackaged one from the list [8].  Do not hesitate to ask
me if you do not find an obvious one –– it should a good occasion to
show you “guix repl”. :-)


1: https://guix.gnu.org/manual/devel/en/guix.html#The-Perfect-Setup
2: https://guix.gnu.org/manual/devel/en/guix.html#Defining-Packages
3: 
https://guix.gnu.org/cookbook/en/html_node/Packaging-Tutorial.html#Packaging-Tutorial
4: https://guix.gnu.org/manual/devel/en/guix.html#Packaging-Guidelines
5: https://guix.gnu.org/manual/devel/en/guix.html#Invoking-guix-import
6: https://guix.gnu.org/manual/devel/en/guix.html#Invoking-guix-refresh
7: https://guix.gnu.org/manual/devel/en/guix.html#Building-from-Git
8: https://bioconductor.org/packages/release/bioc/


Again, thank you for your feedback.

Thanks,
simon



reply via email to

[Prev in Thread] Current Thread [Next in Thread]