unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* First impressions from delving into Guix
@ 2020-10-11  1:14 Lulu
  2020-10-11 10:37 ` Pierre Neidhardt
  2020-10-11 11:46 ` zimoun
  0 siblings, 2 replies; 7+ messages in thread
From: Lulu @ 2020-10-11  1:14 UTC (permalink / raw)
  To: guix-devel@gnu.org

Hello everyone!

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

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".

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). 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.

Next, I went back to installing Guix normally on Arch Linux (I tried it on
Fedora previously and ran into SELinux issues). The AUR script is a bit wonky
due to dependencies so I just used the official binary installer. When I tried
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.

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.

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!

--
Lulu


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: First impressions from delving into Guix
  2020-10-11  1:14 First impressions from delving into Guix Lulu
@ 2020-10-11 10:37 ` Pierre Neidhardt
  2020-10-11 13:19   ` Lulu
  2020-10-11 11:46 ` zimoun
  1 sibling, 1 reply; 7+ messages in thread
From: Pierre Neidhardt @ 2020-10-11 10:37 UTC (permalink / raw)
  To: Lulu, guix-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 234 bytes --]

Great feedback, thanks for sharing!

In particular, I didn't know that Guile was out of date on Arch Linux.
Now I understand why many Arch Linux users struggle installing Guix... :p

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 511 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: First impressions from delving into Guix
  2020-10-11  1:14 First impressions from delving into Guix Lulu
  2020-10-11 10:37 ` Pierre Neidhardt
@ 2020-10-11 11:46 ` zimoun
  2020-10-11 13:18   ` Lulu
  1 sibling, 1 reply; 7+ messages in thread
From: zimoun @ 2020-10-11 11:46 UTC (permalink / raw)
  To: Lulu, guix-devel@gnu.org

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


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: First impressions from delving into Guix
  2020-10-11 11:46 ` zimoun
@ 2020-10-11 13:18   ` Lulu
  2020-10-11 15:36     ` Julien Lepiller
  0 siblings, 1 reply; 7+ messages in thread
From: Lulu @ 2020-10-11 13:18 UTC (permalink / raw)
  To: zimoun, guix-devel@gnu.org

> On 2020-10-11 14:46 zimoun <zimon.toutoune@gmail.com> wrote:
> 
> What do you mean?  What do you feel that is missing?

This one was a mistake on my part; I thought the module layout was much more
rigid than it actually is, due to informal conventions, and the Emacs-style
Commentary and Code sections threw me off. :-P

> Do you have a wording suggestion?

Hmm, you could say outright in the beginning of "(guix)System Configuration"
that configuration isn't kept in specific magic files, unlike most other
operating systems, and that configuration happens atomically and endures until
the next reconfiguration. (So that's what instantiation means here!)

Other operating systems I've used that had a unified high-level CLI over
existing system configuration still had configuration files to be parsed at
startup, so I was a bit lost. :-)

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

Someone in #guix said the SELinux policy module dated to Fedora 23 times, so
that's probably why. (I was on Fedora 31.)
 
> What do you mean?  “guix show guile” lists all the available versions.
> 
> Which Guile have you patched?  The Guile that Arch provides, right?
 
Arch doesn't provide a Guile 3.0 package and the user-provided script on AUR is
broken, so I had to patch that to get it to play nice with the native package
manager. I'm not quite sure why but my attempts at introducing Guile into the
environment through Guix failed. I'll try again later to investigate.

> So I am not convinced that the “and” is really required. ;-)  But “more
> is less”. :-)
 
Ah, that makes sense. I tried the -utf8- one at first, then installed the other
one. Now I see!

> 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:
>
> 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”. :-)

Sure thing! But shouldn't I finish the Git log subcommand first? Or should I
leave it to last?

--
Lulu


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: First impressions from delving into Guix
  2020-10-11 10:37 ` Pierre Neidhardt
@ 2020-10-11 13:19   ` Lulu
  0 siblings, 0 replies; 7+ messages in thread
From: Lulu @ 2020-10-11 13:19 UTC (permalink / raw)
  To: Pierre Neidhardt, guix-devel@gnu.org

> On 2020-10-11 13:37 Pierre Neidhardt <mail@ambrevar.xyz> wrote:
> 
> In particular, I didn't know that Guile was out of date on Arch Linux.
> Now I understand why many Arch Linux users struggle installing Guix... :p

Yeah, the `guile' package has been marked out-of-date in /January/. Fortunately
it's very easy to build it from scratch, with a `./configure --program-suffix=3.0'
to make it play nice with the existing Guile 2.2.

--
Lulu


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: First impressions from delving into Guix
  2020-10-11 13:18   ` Lulu
@ 2020-10-11 15:36     ` Julien Lepiller
  2020-10-12 10:30       ` Lulu
  0 siblings, 1 reply; 7+ messages in thread
From: Julien Lepiller @ 2020-10-11 15:36 UTC (permalink / raw)
  To: guix-devel, Lulu, zimoun, guix-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 2818 bytes --]

From what I understand, outreachy has a contribution period during which you need to register at least one successful contribution with the project. Out of the potential interns who submitted a contribution, we then have to select one to work on the project. Well if you can finish the project before it even starts it's great, but you'll be left with nothing to do ^^"

Le 11 octobre 2020 09:18:41 GMT-04:00, Lulu <me@erkin.party> a écrit :
>> On 2020-10-11 14:46 zimoun <zimon.toutoune@gmail.com> wrote:
>> 
>> What do you mean?  What do you feel that is missing?
>
>This one was a mistake on my part; I thought the module layout was much
>more
>rigid than it actually is, due to informal conventions, and the
>Emacs-style
>Commentary and Code sections threw me off. :-P
>
>> Do you have a wording suggestion?
>
>Hmm, you could say outright in the beginning of "(guix)System
>Configuration"
>that configuration isn't kept in specific magic files, unlike most
>other
>operating systems, and that configuration happens atomically and
>endures until
>the next reconfiguration. (So that's what instantiation means here!)
>
>Other operating systems I've used that had a unified high-level CLI
>over
>existing system configuration still had configuration files to be
>parsed at
>startup, so I was a bit lost. :-)
>
>> If you have time, I would be interested by these issues; if you
>remember.
>
>Someone in #guix said the SELinux policy module dated to Fedora 23
>times, so
>that's probably why. (I was on Fedora 31.)
> 
>> What do you mean?  “guix show guile” lists all the available
>versions.
>> 
>> Which Guile have you patched?  The Guile that Arch provides, right?
> 
>Arch doesn't provide a Guile 3.0 package and the user-provided script
>on AUR is
>broken, so I had to patch that to get it to play nice with the native
>package
>manager. I'm not quite sure why but my attempts at introducing Guile
>into the
>environment through Guix failed. I'll try again later to investigate.
>
>> So I am not convinced that the “and” is really required. ;-)  But
>“more
>> is less”. :-)
> 
>Ah, that makes sense. I tried the -utf8- one at first, then installed
>the other
>one. Now I see!
>
>> 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:
>>
>> 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”. :-)
>
>Sure thing! But shouldn't I finish the Git log subcommand first? Or
>should I
>leave it to last?
>
>--
>Lulu

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.

[-- Attachment #2: Type: text/html, Size: 3857 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: First impressions from delving into Guix
  2020-10-11 15:36     ` Julien Lepiller
@ 2020-10-12 10:30       ` Lulu
  0 siblings, 0 replies; 7+ messages in thread
From: Lulu @ 2020-10-12 10:30 UTC (permalink / raw)
  To: guix-devel

> On 2020-10-11 18:36 Julien Lepiller <julien@lepiller.eu> wrote:
> 
> From what I understand, outreachy has a contribution period during which you
> need to register at least one successful contribution with the project. Out of
> the potential interns who submitted a contribution, we then have to select one
> to work on the project. Well if you can finish the project before it even starts
> it's great, but you'll be left with nothing to do ^^"

Oh, I see! It seems I misunderstood the process then; I thought I was supposed
to do one of the given tasks during this term. ^^;

With this in mind, I'll work on packaging for the time being. Thanks for the
clarification! :-)

--
Lulu


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-10-12 10:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-11  1:14 First impressions from delving into Guix Lulu
2020-10-11 10:37 ` Pierre Neidhardt
2020-10-11 13:19   ` Lulu
2020-10-11 11:46 ` zimoun
2020-10-11 13:18   ` Lulu
2020-10-11 15:36     ` Julien Lepiller
2020-10-12 10:30       ` Lulu

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).