Re: GNU Guix 1.4.0 released

2022-12-26 Thread Maxim Cournoyer
Hi Ludovic,

Ludovic Courtès  writes:

[...]

> • Changes in 1.4.0 (since 1.3.0)
>
>   ** Package management
>   *** New ‘guix home’ command, for home environment management
>   *** New ‘guix shell’ command, the successor to ‘guix environment’
>   *** New ‘guix system edit’ command, to edit services
>   *** New ‘deb’ format for the ‘guix pack’ command
>   *** New ‘guix import minetest’ command, to import Minetest extensions
>   *** New ‘guix import elm’ command, to import Elm packages
>   *** New ‘guix import egg’ command, to import CHICKEN egg packages
>   *** New ‘guix import hexpm’ command, to import Erlang and Elixir packages
>   *** New 'guix style' command, to auto-format package definitions
>   *** ‘guix import texlive’ rewritten to use the TLPDB as its source
>   *** ‘guix import elpa’ now supports the non-GNU ELPA repository
>   *** ‘guix import pypi’ can now import a specific version
>   *** ‘guix import cran’ can now import a specific version
>   *** New updater (see ‘guix refresh’): ‘generic-git’
>   *** ‘guix graph’ has a new ‘--max-depth’ option
>   *** ‘guix deploy’ has a new ‘--execute’ option
>   *** ‘guix shell’ has a new ‘--emulate-fhs’ option
>   *** ‘guix shell’ has a new ‘--symlink’ option
>   *** ‘--with-commit’ option now accepts strings returned by ‘git describe’
>   *** ‘--with-source’ option now applied recursively
>   *** Align tabular data output by commands like ‘guix package 
> --list-available’
>   *** Improved ‘guix import go’ importer via a new PEG parser
>   *** Improved Software Heritage downloader
>   *** New 'web.archive.org’ download fall-back
>   *** Various performance enhancements
>   *** New ‘--tune’ package transformation option
>   *** ‘guix refresh’ ‘-L’ option is repurposed to ‘load-path’ modification
>   *** ‘guix system image’ supersedes the ‘docker-image’ sub-command
>
>   ** Distribution
>   *** The installation script can now enable local substitute servers 
> discovery
>   *** The installation script can now customize the Bash prompt for Guix
>   *** More control over boot-time file system checks and repairs
>   *** XFS file systems can be created by the installer and mounted by 
> label/UUID
>   *** New interface for declaring swap space
>   *** GNOME is now at version 42
>   *** TeX Live is now at version 2021
>   *** Multiple TeX Live trees can now be used via GUIX_TEXMF
>   *** Python modules are searched in GUIX_PYTHONPATH instead of PYTHONPATH
>   *** Python is now faster thanks to being built with optimizations
>   *** The Rust bootstrap now starts from 1.54 instead of 1.19
>   *** Most Python 2 packages have been removed
>   *** Guix now makes use of parallel xz compression
>   *** Faster shared libraries discovery via a per-package dynamic linker cache
>   *** Package inputs can now be plain package lists
>   *** A package origin can now be a single file rather than an archive
>   *** New sanity-check phase to detect Python packaging problems at build time
>   *** Fetching sources can now fall-back to use Disarchive
>   *** Improved CI and infrastructure
>   *** Multiple cross-compilation tooling addition and fixes
>   *** Many Qt 6 modules are now packaged
>   *** Configuring setuid programs is now more flexible
>   *** Add support for the XFS file system
>   *** Add partial support for LUKS2 headers when using GRUB
>   *** GDM now supports Wayland
>   *** Guix System static networking support is improved
>   *** The installer final configuration is prettified
>   *** The installer external command handling is improved
>   *** The installer now has a crash dump upload mechanism
>   *** Emacs now supports native compilation
>   *** GRUB bootloader now supports chain-loading
>   *** The GNU Shepherd was upgraded to 0.9.3
>   *** The init RAM disk honors more arguments—e.g. ‘root’ and ‘rootflags’
>   *** ‘guix system image’ can now generate WSL images
>   *** The mcron task scheduler logs now contain the jobs exit statuses
>   *** Chromium extensions are now built in a deterministic fashion
>   *** The ‘rsync’ service lets you specify individual “modules”
>   *** New services
>
>   anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup,
>   nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
>
>   *** 5311 new packages
>
>   *** 6573 package updates

Congrats, and yay!  It's a hell of a release! :-) Let's try to make more
punctual ones from now on, and also try to lower the amount of manual
labor producing one incurs (by streamlining the process), as speaking
for me, this was one of the reasons I kept putting it back.

Kudos to you and everyone involved and happy holidays!

-- 
Maxim



Re: u-boot-am335x-boneblack -> u-boot-am335x-evm-boneblack

2022-12-26 Thread Maxim Cournoyer
Hi Vagrant,

Vagrant Cascadian  writes:

> On 2022-12-22, Maxim Cournoyer wrote:
>> Vagrant Cascadian  writes:
>>
>>> Wondering what necessitated this change from the old variable name to a
>>> new name...
>>>
>>> commit c04528d2a2597d79278833f3607c806278253446
>>> Author: Maxim Cournoyer 
>>> Date:   Tue Dec 20 21:25:27 2022 -0500
>>>
>>> gnu: u-boot-am335x-evm-boneblack: Fix variable name.
>>>
>>> * gnu/packages/bootloaders.scm (u-boot-am335x-boneblack): Rename to...
>>> (u-boot-am335x-evm-boneblack), to match the package name.
>>> * gnu/bootloader/u-boot.scm (u-boot-beaglebone-black-bootloader): Adjust
>>> accordingly.
>>> ...
>>> diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
>>> index bd9f7bb577..c8b8adbc93 100644
>>> --- a/gnu/packages/bootloaders.scm
>>> +++ b/gnu/packages/bootloaders.scm
>>> @@ -889,7 +889,7 @@ (define*-public (make-u-boot-package board triplet
>>>  (define-public u-boot-malta
>>>(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
>>>
>>> -(define-public u-boot-am335x-boneblack
>>> +(define-public u-boot-am335x-evm-boneblack
>>>(make-u-boot-package
>>> "am335x_evm" "arm-linux-gnueabihf"
>>> ;; Patch out other device trees to build an image small enough to fit
>>>
>>> The u-boot-am335x-boneblack was named to match the original target that
>>> was removed from upstream, adapting the upstream am335x-evm to fit into
>>> a smaller gap in the partition tables... (e.g. 2MB partition offset
>>> instead of 4MB offset required by the default am335x-evm board
>>> configuration).
>>
>> The problem was that the *name* of the package was
>> "u-boot-am335x-evm-boneblack", as computed by the MAKE-U-BOOT-PACKAGE
>> procedure, which includes the board argument in its name (it's been like
>> this since its inception in 862e38d5518, 2017).
>>
>> If the previous variable name should have been its name, the name field
>> would have needed to be overridden to it (or perhaps we could introduce
>> a #:name argument that would take precedence over any cleverness).
>>
>> I noticed of the problem when trying to build the package; "guix build
>> u-boot-am335x-boneblack" would tell me it didn't exist.
>>
>> I considered making a deprecated alias but decided against, because in
>> the past we didn't when moving/renaming packages *variables*.
>
> Odd. I was certainy able to build u-boot-am335x-boneblack from commit
> 6b99afeef89233b71d113a63cf04a6b4b49a4679 when it was introduced in 2019,
> though it has been quite some time since I tested it...
>
> I will take a guess that it was commit
> c2c1dfdf5760873f1db86d14873f725a105f7feb which removed the "name" bit:

Oh, that explains it, thank you for digging a bit.

The following should return us to the previous name, fixing that
regression:

--8<---cut here---start->8---
modified   gnu/bootloader/u-boot.scm
@@ -144,7 +144,7 @@ (define u-boot-bootloader
 (define u-boot-beaglebone-black-bootloader
   (bootloader
(inherit u-boot-bootloader)
-   (package u-boot-am335x-evm-boneblack)
+   (package u-boot-am335x-boneblack)
(disk-image-installer install-beaglebone-black-u-boot)))
 
 (define u-boot-allwinner-bootloader
modified   gnu/packages/bootloaders.scm
@@ -890,17 +890,23 @@ (define*-public (make-u-boot-package board triplet
 (define-public u-boot-malta
   (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
 
-(define-public u-boot-am335x-evm-boneblack
-  (make-u-boot-package
-   "am335x_evm" "arm-linux-gnueabihf"
-   ;; Patch out other device trees to build an image small enough to fit
-   ;; within typical partitioning schemes where the first partition begins at
-   ;; sector 2048.
-   #:configs '("CONFIG_OF_LIST=\"am335x-evm am335x-boneblack\"")
-   #:name-suffix "-boneblack"
-   #:append-description "This U-Boot is built for the BeagleBone Black, which
-was removed upstream, adjusted from the am335x_evm build with several device
-trees removed so that it fits within common partitioning schemes."))
+(define-public u-boot-am335x-boneblack
+  (let ((base (make-u-boot-package
+   "am335x_evm" "arm-linux-gnueabihf"
+   ;; Patch out other device trees to build an image small enough
+   ;; to fit within typical partitioning schemes where the first
+   ;; partition begins at sector 2048.
+   #:configs '("CONFIG_OF_LIST=\"am335x-evm am335x-boneblack\"")
+   #:append-description
+   "This U-Boot is built for the BeagleBone Black, which was
+removed upstream, adjusted from the am335x_evm build with several device trees
+removed so that it fits within common partitioning schemes.")))
+(package
+  (inherit base)
+  ;; The name is not derived from the board name on purpose as the config
+  ;; is modified per the comment above, parting from the default
+  ;; am335x_evm configuration.
+  (name "u-boot-am335x-boneblack"
 
 (define-public u-boot-am335x-evm
   

Re: Packaging: Need some help replacing a check phase

2022-12-26 Thread Luis Felipe
Hi Maxime,

On Monday, December 26th, 2022 at 19:04, Maxime Devos  
wrote:

> 

> On 26-12-2022 17:15, Luis Felipe wrote:
> 

> > Hi,
> > 

> > I'm packaging a Guile software but the package fails to build when I try to 
> > replace the check phase, and I can't see what I'm doing wrong.
> 

> As mentioned by Kaelyn, guile-build-system doesn't have a check phase to
> replace. The patch series at https://issues.guix.gnu.org/58365 adds
> support for tests to guile-build-system; you could apply those patches
> and then replace a phase (and maybe replace 'guile-test-driver' by
> 'guile-proba' for autodiscovery).

Thanks for working on that, Maxime, I had no idea. 



publickey - luis.felipe.la@protonmail.com - 0x12DE1598.asc
Description: application/pgp-keys


signature.asc
Description: OpenPGP digital signature


Re: Packaging: Need some help replacing a check phase

2022-12-26 Thread Luis Felipe
Hi Kaelyn,

On Monday, December 26th, 2022 at 18:22, Kaelyn  
wrote:

> I believe the build fails because the guile-build-system deletes the 'check 
> phase. From guix/build/guile-build-system.scm:
> 

> (define %standard-phases
> (modify-phases gnu:%standard-phases
> (delete 'bootstrap)
> (delete 'configure)
> (add-before 'install-locale 'set-locale-path
> set-locale-path)
> (replace 'build build)
> (add-after 'build 'install-documentation
> install-documentation)
> (delete 'check)
> (delete 'strip)
> (delete 'validate-runpath)
> (delete 'install)))
> 

> Hope that helps!

Ooooh, thanks a lot, Kaelyn :)

publickey - luis.felipe.la@protonmail.com - 0x12DE1598.asc
Description: application/pgp-keys


signature.asc
Description: OpenPGP digital signature


Re: Packaging: Need some help replacing a check phase

2022-12-26 Thread Maxime Devos



On 26-12-2022 17:15, Luis Felipe wrote:

Hi,

I'm packaging a Guile software but the package fails to build when I try to 
replace the check phase, and I can't see what I'm doing wrong.



As mentioned by Kaelyn, guile-build-system doesn't have a check phase to 
replace. The patch series at  adds 
support for tests to guile-build-system; you could apply those patches 
and then replace a phase (and maybe replace 'guile-test-driver' by 
'guile-proba' for autodiscovery).


Greetings,
Maxime.


OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: Packaging: Need some help replacing a check phase

2022-12-26 Thread Kaelyn
Hi Luis,

--- Original Message ---
On Monday, December 26th, 2022 at 4:15 PM, Luis Felipe 
 wrote:


> 
> 
> Hi,
> 
> I'm packaging a Guile software but the package fails to build when I try to 
> replace the check phase, and I can't see what I'm doing wrong.
> 
> This is the package definition:
> 
> ٭٭
> (define-module (packages guile-proba)
> #:use-module (gnu packages guile)
> #:use-module (gnu packages guile-xyz)
> #:use-module (gnu packages texinfo)
> #:use-module (guix build-system guile)
> #:use-module (guix git-download)
> #:use-module ((guix licenses) #:prefix license:)
> #:use-module (guix packages))
> 
> 
> (define-public guile-proba
> (package
> (name "guile-proba")
> (version "0.1.0")
> (source
> (origin
> (method git-fetch)
> (uri (git-reference
> (url "https://codeberg.org/luis-felipe/guile-proba;)
> (commit version)))
> (file-name (git-file-name name version))
> (sha256
> (base32 "0bai3nhdmzpcxkp55a74afp92sq609hh9dy5a5w01aysvchp4715"
> (build-system guile-build-system)
> (native-inputs (list guile-3.0 texinfo))
> (propagated-inputs (list guile-config guile-lib texinfo))
> (arguments
> `(#:phases
> (modify-phases %standard-phases
> ;; FIXME: Replacing 'check phase makes build fail.
> (replace 'check
> (lambda* (#:key tests? #:allow-other-keys)
> (when tests?
> (invoke "guile" "proba.scm" "run" "tests"
> (add-after 'install 'install-script-and-manual
> (lambda* (#:key outputs #:allow-other-keys)
> (let* ((out (assoc-ref outputs "out"))
> (bin-dir (string-append out "/bin"))
> (info-dir (string-append out "/share/info"))
> (script (string-append bin-dir "/proba")))
> (mkdir-p bin-dir)
> (mkdir-p info-dir)
> (copy-file "proba.scm" script)
> (chmod script #o555)
> (invoke "makeinfo" "manual/main.texi")
> (install-file "guile-proba" info-dir)
> #:not-compiled-file-regexp
> "((packages|tests)\\/.*.scm|(proba|manifest).scm)$"))
> (home-page "https://luis-felipe.gitlab.io/guile-proba/;)
> (synopsis "Testing tools for GNU Guile projects with SRFI 64 test suites")
> (description
> "This software is a set of testing tools for GNU Guile projects
> with SRFI 64-based test suites. It comes with a command-line interface
> to run test collections, and a library that includes a test runner and
> helpers for writing tests.")
> (license license:public-domain)))
> ٭٭
> 
> 
> And this is the error after running "guix build -L . guile-proba" (using guix 
> 9cb42f7):
> 
> ٭٭
> Backtrace:
> 14 (primitive-load "/gnu/store/36iw346l6n6s9wrd4qr923zywj1?")
> In ice-9/eval.scm:
> 214:21 13 (_ #f)
> 217:50 12 (lp (# ?))
> 
> 217:50 11 (lp (# ?))
> 
> 217:50 10 (lp (# ?))
> 
> 217:50 9 (lp (# ?))
> 
> 217:50 8 (lp (# ?))
> 
> 217:50 7 (lp (# ?))
> 
> 217:50 6 (lp (# ?))
> 
> 217:50 5 (lp (# ?))
> 
> 217:50 4 (lp (# ?))
> 
> 217:50 3 (lp (# ?))
> 
> 217:33 2 (lp (# ?))
> 
> 293:34 1 (_ #(# ((# . #) ?)))
> 
> In guix/build/utils.scm:
> 713:4 0 (alist-replace check # ?)
> 
> 
> guix/build/utils.scm:713:4: In procedure alist-replace:
> Throw to key `match-error' with args` ("match" "no matching pattern" ())'.
> ٭٭

I believe the build fails because the guile-build-system deletes the 'check 
phase. From guix/build/guile-build-system.scm:

(define %standard-phases
  (modify-phases gnu:%standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-before 'install-locale 'set-locale-path
  set-locale-path)
(replace 'build build)
(add-after 'build 'install-documentation
  install-documentation)
(delete 'check)
(delete 'strip)
(delete 'validate-runpath)
(delete 'install)))

Hope that helps!

Cheers,
Kaelyn

> 
> 
> Thanks in advance.
> 
> 
> ---
> Luis Felipe López Acevedo
> https://luis-felipe.gitlab.io/



Re: Package update patch review

2022-12-26 Thread Joshua Branson
Andy Tai  writes:

> Hi, Merry Christmas!  A question, how to call attention to package definition 
> update patches that may have been waiting for
> review for some time in the issue tracker/debug database? Some may have 
> responses to prev review comments.  Basically
> some kind of "ping" for such patches hanging there.  Thanks
>

Oh, you can always just respond to the latest email with a "ping".  I
believe guix has fantastic reviewers, but lots of patches need
reviewing.  :)  I've got I think 2 or 3 patches that need reviewing.
Some of them are waiting on me!  I would say, just occasionally sending
a "ping".  Also reach out on irc.

Thanks,

Joshua



Packaging: Need some help replacing a check phase

2022-12-26 Thread Luis Felipe
Hi,

I'm packaging a Guile software but the package fails to build when I try to 
replace the check phase, and I can't see what I'm doing wrong.

This is the package definition:

٭٭
(define-module (packages guile-proba)
  #:use-module (gnu packages guile)
  #:use-module (gnu packages guile-xyz)
  #:use-module (gnu packages texinfo)
  #:use-module (guix build-system guile)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages))


(define-public guile-proba
  (package
(name "guile-proba")
(version "0.1.0")
(source
 (origin
   (method git-fetch)
   (uri (git-reference
 (url "https://codeberg.org/luis-felipe/guile-proba;)
 (commit version)))
   (file-name (git-file-name name version))
   (sha256
(base32 "0bai3nhdmzpcxkp55a74afp92sq609hh9dy5a5w01aysvchp4715"
(build-system guile-build-system)
(native-inputs (list guile-3.0 texinfo))
(propagated-inputs (list guile-config guile-lib texinfo))
(arguments
 `(#:phases
   (modify-phases %standard-phases
 ;; FIXME: Replacing 'check phase makes build fail.
 (replace 'check
   (lambda* (#:key tests? #:allow-other-keys)
 (when tests?
   (invoke "guile" "proba.scm" "run" "tests"
 (add-after 'install 'install-script-and-manual
   (lambda* (#:key outputs #:allow-other-keys)
 (let* ((out (assoc-ref outputs "out"))
(bin-dir (string-append out "/bin"))
(info-dir (string-append out "/share/info"))
(script (string-append bin-dir "/proba")))
   (mkdir-p bin-dir)
   (mkdir-p info-dir)
   (copy-file "proba.scm" script)
   (chmod script #o555)
   (invoke "makeinfo" "manual/main.texi")
   (install-file "guile-proba" info-dir)
   #:not-compiled-file-regexp
   "((packages|tests)\\/.*.scm|(proba|manifest).scm)$"))
(home-page "https://luis-felipe.gitlab.io/guile-proba/;)
(synopsis "Testing tools for GNU Guile projects with SRFI 64 test suites")
(description
 "This software is a set of testing tools for GNU Guile projects
with SRFI 64-based test suites.  It comes with a command-line interface
to run test collections, and a library that includes a test runner and
helpers for writing tests.")
(license license:public-domain)))
٭٭


And this is the error after running "guix build -L . guile-proba" (using guix 
9cb42f7):

٭٭
Backtrace:
  14 (primitive-load "/gnu/store/36iw346l6n6s9wrd4qr923zywj1?")
In ice-9/eval.scm:
   214:21 13 (_ #f)
   217:50 12 (lp (# ?))
   217:50 11 (lp (# ?))
   217:50 10 (lp (# ?))
   217:50  9 (lp (# ?))
   217:50  8 (lp (# ?))
   217:50  7 (lp (# ?))
   217:50  6 (lp (# ?))
   217:50  5 (lp (# ?))
   217:50  4 (lp (# ?))
   217:50  3 (lp (# ?))
   217:33  2 (lp (# ?))
   293:34  1 (_ #(# ((# . #) ?)))
In guix/build/utils.scm:
713:4  0 (alist-replace check # ?)

guix/build/utils.scm:713:4: In procedure alist-replace:
Throw to key `match-error' with args `("match" "no matching pattern" ())'.
٭٭


Thanks in advance.


---
Luis Felipe López Acevedo
https://luis-felipe.gitlab.io/

publickey - luis.felipe.la@protonmail.com - 0x12DE1598.asc
Description: application/pgp-keys


signature.asc
Description: OpenPGP digital signature