unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Christian Miller <christian.miller@dadoes.de>
To: guix-devel@gnu.org
Subject: Feedback of the GNU Guix cookbook manual
Date: Sun, 14 Jan 2024 16:15:57 +0100	[thread overview]
Message-ID: <878r4symhe.fsf@dadoes.de> (raw)

Hello,

I read the cookbook on revision
ee7c9d254117fa470686210ad2ef5e7f1ba4fefc using Emacs in TTY mode.

It seems kinda messy.  Some descriptions are read like a temporarily
note that should have been rewritten for the cookbook manual.  There
are even lines that exceed the 80 column limit.

Though, it was still very useful for me as a beginner.  It made the
entrance way easier than Emacs since I had actually code I could use
(this is also true for the normal manual).

Here are some things I noticed:

*** 2.1.3.2 Snippets
"the code in only" should probably be "the code is only"

Snippets are quoted (i.e.  non-evaluated) Scheme code that are a means
of patching the source.  They are a Guix-y alternative to the
traditional ‘.patch’ files.  Because of the quote, the code in only
evaluated when passed to the Guix daemon for building.  There can be as
many snippets as needed.

*** 2.1.3.3 Inputs
Seems like a copy paste error.  It says "using the style above
instead" but there is none since it is missing.  In the guix manual
both code snippets are present.

     This is the “old style”, where each input in the list is explicitly
     given a label (a string).  It is still supported but we recommend
     using the style above instead.  *Note (guix)package Reference::,
     for more info.
     
*** 2.1.3.5 Build system arguments
Use the new style with gexpr.

L216
     #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))
                        "CC=gcc")


L315
     (lambda* (#:key inputs outputs #:allow-other-keys)
       (let ((bash-directory (assoc-ref inputs "bash"))
             (output-directory (assoc-ref outputs "out"))
             (doc-directory (assoc-ref outputs "doc")))
         ;; ...
         #true))
         
*** 3.1 Auto-Login to a Specific TTY
Whitespace ( see

While the Guix manual explains auto-login one user to _all_ TTYs ( *note
(guix)auto-login to TTY::), some might prefer a situation, in which one

*** 3.2 Customizing the kernel
6 is current.  Maybe just say current as of the time of writing

   The current ‘linux-libre’ package is for the 5.15.x series, and is
declared like this:

Also it does use the old style syntax for code.

*** 3.7.1 StumpWM
Guix system instead of Guix System and uses old style syntax for code.

*** Running Guix on a Kimsufi server
Maybe use local file to be consistent with Linode guide.

     	      (authorized-keys
     	       `(("guix" ,(plain-file "SSH-KEY-NAME.PUB"
                                           "SSH-PUBLIC-KEY-CONTENT"))))))

Just give the actual commands and don't assume user knows it.

   Transfer your operating system declaration ‘os.scm’ file on the
server via the ‘scp’ or ‘sftp’ commands.

   Now all that is left is to install Guix with a ‘guix system init’ and
restart.

*** Guix Containers
What?

             ;; Common command line tools lest the container is too empty.
             
*** The benefits of manifest
guix environment on the first step and on the third step it is guix
shell.  guix environment is superseded by guix shell and should
therefore not be mentioned.

  1. We have an environment for hacking on a project for which there
     isn’t a Guix package yet.  We build the environment using a
     manifest, and then run ‘guix environment -m manifest.scm’.  So far
     so good.

  2. Many weeks pass and we have run a couple of ‘guix pull’ in the mean
     time.  Maybe a dependency from our manifest has been updated; or we
     may have run ‘guix gc’ and some packages needed by our manifest
     have been garbage-collected.

  3. Eventually, we set to work on that project again, so we run ‘guix
     shell -m manifest.scm’.  But now we have to wait for Guix to build
     and install stuff!
     
*** Guix environment via direnv
guix environment should be replaced with guix shell.  Also exceeding 80 columns

         eval "$(guix environment --search-paths --root="$gcroot" --pure guix --ad-hoc ${PACKAGES[@]} ${PACKAGES_MAINTENANCE[@]} "$@")"
*** 7.3 Network Access
Replace white list with allow list?

-- 
Christian Miller


             reply	other threads:[~2024-01-14 15:17 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-14 15:15 Christian Miller [this message]
2024-01-15 17:55 ` Feedback of the GNU Guix cookbook manual Matt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878r4symhe.fsf@dadoes.de \
    --to=christian.miller@dadoes.de \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).