Re: Guix in a container

2025-03-16 Thread Denis 'GNUtoo' Carikli
On Tue, 11 Mar 2025 13:52:52 +0100
Stéfane Fermigier  wrote:

> Hi,
Hi,

> I'm totally new to Guix.
> 
> 1) Is there a recommended container image to get started?
There is no official Guix (OCI) container image but you might be able to
make your own with 'guix system image -t docker [...]', however I've no
idea if it's trivial or if it requires significant work as docker/OCI
containers are a bit special (even more so if they don't run as root).

> Since Systemd isn't supposed to be started in a container, is there a
> workaround (like the single-user mode for Nix) ?
The manual has a section on "2.3 Invoking guix-daemon"[1], however I
fear that this only works if the rest of the setup is done by the
system. For instance if you install Guix from guix-install.sh or a
distribution, this takes care of mounts and other things as well, which
enables to start the daemon easily.

I had a similar issue as I also need to run the guix-daemon inside a
(Trisquel) chroot, so I wrote a (fragile) script for that[2]. Though
I've no idea if this can work in a container that is not root on the
host so you'll have to try.

References:
---
[1]https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix_002ddaemon.html
[2]https://git.savannah.gnu.org/cgit/gnuboot.git/plain/contrib/start-guix-daemon.py

Denis.


pgpQ1CvqdS6rc.pgp
Description: OpenPGP digital signature


Re: Guix in a container

2025-03-16 Thread Denis 'GNUtoo' Carikli
On Sun, 16 Mar 2025 10:02:30 +0100
Denis 'GNUtoo' Carikli  wrote:
> There is no official Guix (OCI) container image but you might be able
> to make your own with 'guix system image -t docker [...]', however
> I've no idea if it's trivial or if it requires significant work as
> docker/OCI containers are a bit special (even more so if they don't
> run as root).

I managed to make the command you provided work, but I ran the
container as root. I attached the system scm file and a Makefile as well
to make things easier. Here's how to use them:
> $ make
> [...]
> c4582e6252404ae66e25392d1c08dbee72e859d1f9771b3027f77aef5465a6bd
> $ sudo docker start \
> c4582e6252404ae66e25392d1c08dbee72e859d1f9771b3027f77aef5465a6bd
> [...]
> $ docker exec -ti \
> c4582e6252404ae66e25392d1c08dbee72e859d1f9771b3027f77aef5465a6bd \
> /run/current-system/profile/bin/bash --login
> [...]
> root@guix /# guix shell python python-numpy -- python3
> Python 3.10.7 (main, Jan  1 1970, 00:00:01) [GCC 11.4.0] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> 
> >>> import numpy
> >>> 

However note that I didn't try any of that without running the
container as root.

Denis.
;;; This file is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; This file is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this file.  If not, see .

(define-module (guix-system)
  #:use-module (gnu)
  #:use-module (gnu bootloader)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages databases)
  #:use-module (gnu services databases))

(define guix-operating-system
  (operating-system
   (host-name "guix")
   (bootloader (bootloader-configuration
		(bootloader grub-bootloader)
		(targets '(file-system-label "Guix_image"))
		(terminal-outputs '(console
   (file-systems (append (list (file-system
(device (file-system-label "Guix_image"))
(mount-point "/")
(type "ext4")))
 %base-file-systems))
   (services
(list
 ;; Networking
 (service
  static-networking-service-type
  (list
   (static-networking
	(addresses (list))
	(requirement '())
	(provision '(loopback)
 ;; Guix
 (service guix-service-type)
 ;; Syslog
 (service syslog-service-type)

guix-operating-system
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# This file is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this file.  If not, see .
SENTINEL =

SYSTEM ?= --system=x86_64-linux

.PHONY: all
all: docker-image.cid

docker-image.tar.gz: guix-system.scm
	install -m 644 `guix system image $(SYSTEM) -t docker guix-system.scm` $@

docker-image.cid: docker-image.tar.gz
	docker load -i docker-image.tar.gz
	docker create \
		--privileged \
		--network=host \
		--cidfile=$@ \
		guix:latest


pgpxdmrArRR8_.pgp
Description: OpenPGP digital signature


Re: Guix in a container

2025-03-16 Thread Cayetano Santos

>mar. 11 mars 2025 at 13:52, Stéfane Fermigier  wrote:

> 1) Is there a recommended container image to get started? I've tried
> metacall/guix but it doesn't seem to support the architecture I'm using for
> most of my servers (ARMv7).
>
> 2) I have also tried a base Ubuntu 24.04 image with the `guix` package
> installed.
>
> However, trying to use guix afterwards fails:
>
> root@3aef7697a7a2:/tmp/build# guix shell python python-numpy -- python3
> guix shell: error: failed to connect to `/var/guix/daemon-socket/socket':
> No such file or directory
> root@3aef7697a7a2:/tmp/build# systemctl restart guix-daemon
> System has not been booted with systemd as init system (PID 1). Can't
> operate.
>
> Since Systemd isn't supposed to be started in a container, is there a
> workaround (like the single-user mode for Nix) ?

In case you are not yet aware of, here you have two links you might find
inspiring:

  - 
https://blog.josefsson.org/2024/12/18/guix-container-images-for-gitlab-ci-cd/
  - https://github.com/metacall/guix

C.


signature.asc
Description: PGP signature


Re: cannot build a kernel with my custom config

2025-03-16 Thread Adam
Hi, Hilton!
Thank you for the message, I tried using it in my package definition
```
(define-public my-linux-package
  (package
(inherit (customize-linux
  #:linux linux-libre
  #:defconfig
  (local-file "linux-libre-config")
```
But unfortunately it didn't work for me
```
error: in phase 'configure': uncaught exception:
misc-error #f "~A ~S" ("Mismatching configurations in .config and
arch/x86/configs/guix_defconfig" (("CONFIG_RTW89" (#f "n"))
("CONFIG_RTW89_CORE" (#f "n")) ("CONFIG_RTW89_PCI" (#f "n"))
("CONFIG_RTW89_8851B" (#f "n")) ("CONFIG_RTW89_8852A" (#f "n"))
("CONFIG_RTW89_8852B_COMMON" (#f "n")) ("CONFIG_RTW89_8852B" (#f "n"))
("CONFIG_RTW89_8852BT" (#f "n")) ("CONFIG_RTW89_8852C" (#f "n"))
("CONFIG_RTW89_8922A" (#f "n")) ("CONFIG_RTW89_8851BE" (#f "n"))
("CONFIG_RTW89_8852AE" (#f "n")) ("CONFIG_RTW89_8852BE" (#f "n"))
("CONFIG_RTW89_8852BTE" (#f "n")) ("CONFIG_RTW89_8852CE" (#f "n"))
("CONFIG_RTW89_8922AE" (#f "n" #f
phase `configure' failed after 18.4 seconds
```
Which is strange because if I download the source using "guix build
linux-libre --source", unpack it, put my config and run "make" within
"guix shell --development linux-libre" - it builds the source code
successfully.
I guess, #:defconfig in customize-linux does not use my kernel config
but tries to generate the config using it?
Anyway, it didn't work for me.
So, I guess my question remains - is there a way to use a custom
kernel config to build one?

On Sat, Mar 15, 2025 at 11:49 PM Hilton Chain  wrote:
>
> Hi Adam,
>
> On Sun, 16 Mar 2025 10:02:42 +0800,
> Adam wrote:
> >
> > Hello Guix!
> > Recently I've read about customizing the kernel on this page
> > https://guix.gnu.org/cookbook/en/html_node/Customizing-the-Kernel.html
> > After reading I decided to try one of described there ways of
> > providing my own kernel configuration.
> > Long story short, in my configuration I disabled everything related to
> > rtw89 driver
> > ```
> > ...
> > CONFIG_RTW89=n
> > CONFIG_RTW89_CORE=n
> > CONFIG_RTW89_PCI=n
> > CONFIG_RTW89_8851B=n
> > CONFIG_RTW89_8852A=n
> > CONFIG_RTW89_8852B=n
> > CONFIG_RTW89_8852C=n
> > CONFIG_RTW89_8851BE=n
> > CONFIG_RTW89_8852AE=n
> > CONFIG_RTW89_8852BE=n
> > CONFIG_RTW89_8852CE=n
> > ...
> > ```
> > And I used this code snippet to define my custom kernel package
> > ```
> > (define-public my-linux-package
> >   (package
> > (inherit linux-libre)
> > (native-inputs
> >  `(("kconfig" ,(local-file "config"))
> >   ,@(alist-delete "kconfig"
> >   (package-native-inputs linux-libre))
> > ```
> > After building my package I checked the config file which is stored in
> > the derivation. Unfortunately, that file had these options
> > ```
> > CONFIG_RTW89=m
> > CONFIG_RTW89_CORE=m
> > CONFIG_RTW89_PCI=m
> > CONFIG_RTW89_8851B=m
> > CONFIG_RTW89_8852A=m
> > CONFIG_RTW89_8852B_COMMON=m
> > CONFIG_RTW89_8852B=m
> > CONFIG_RTW89_8852BT=m
> > CONFIG_RTW89_8852C=m
> > ```
> > I assume that guix used default kernel configuration instead. So my
> > question is - is there any way to provide my own .config file to build
> > a kernel package?
>
> kconfig inputs is not a thing now, that Cookbook entry should be updated.
>
> Currently a ‘customize-linux’ procedure is defined in (gnu packages linux) and
> should be used to define a kernel variant, you can save a defconfig and pass 
> it
> to the procedure:
> --8<---cut here---start->8---
> (customize-linux
>  #:linux linux-libre
>  #:defconfig
>  (local-file "config"))
> --8<---cut here---end--->8---
>
> Please see its docstring for details.
>
> Thanks



Betterbird

2025-03-16 Thread gfp

Hi Guix,

"Betterbird" is a fork of Thunderbird/Icedove in Guix.

It can use the profile of Thunderbird.

https://www.betterbird.eu/support/index.html

How to switch between Thunderbird and Betterbird?

Betterbird is designed to be 100% compatible with Thunderbird of the 
same version. For example at time of writing you can switch between 
Betterbird 128.4.3-bb17 and Thunderbird 128.4.3 without problem. 
Betterbird uses Thunderbird's profile directory and contained profiles 
for easy switching:


Windows: C:\Users\\AppData\Roaming\Thunderbird\
Linux: ~/.thunderbird/
Mac: /Users//Library/Thunderbird/

If Betterbird doesn't already detect your Thunderbird profile, start 
Betterbird with the -p option which will launch the profile manager. You 
can select your regular profile there. Important: If you're switching 
between Thunderbird and Betterbird, also use the -purgecaches option to 
avoid incompatible remnants of the other program in the startup cache. 
Another option is to view all profiles via Help > More Troubleshooting 
Information. Click on the about:profiles link which will take you to a 
tab where you can select a different default profile.



Is there a change to install Betterbird in Guix?

If so, how can I do that?

Or do I have to wait if somebody adds it to the packages?


thanks

Gottfried


OpenPGP_0xD9E413C6C4BB32CE.asc
Description: OpenPGP public key


OpenPGP_signature.asc
Description: OpenPGP digital signature


Re: cannot build a kernel with my custom config

2025-03-16 Thread Adam
Oh, It started compiling! Thank you!
I will write about the results!
Btw, what do I need to do if I want to update the documentation? I
should create a patch for the document and send it to guix patches?

On Sun, Mar 16, 2025 at 4:19 AM Hilton Chain  wrote:
>
> On Sun, 16 Mar 2025 18:31:51 +0800,
> Adam wrote:
> >
> > Hi, Hilton!
> > Thank you for the message, I tried using it in my package definition
> > ```
> > (define-public my-linux-package
> >   (package
> > (inherit (customize-linux
> >   #:linux linux-libre
> >   #:defconfig
> >   (local-file "linux-libre-config")
> > ```
> > But unfortunately it didn't work for me
> > ```
> > error: in phase 'configure': uncaught exception:
> > misc-error #f "~A ~S" ("Mismatching configurations in .config and
> > arch/x86/configs/guix_defconfig" (("CONFIG_RTW89" (#f "n"))
> > ("CONFIG_RTW89_CORE" (#f "n")) ("CONFIG_RTW89_PCI" (#f "n"))
> > ("CONFIG_RTW89_8851B" (#f "n")) ("CONFIG_RTW89_8852A" (#f "n"))
> > ("CONFIG_RTW89_8852B_COMMON" (#f "n")) ("CONFIG_RTW89_8852B" (#f "n"))
> > ("CONFIG_RTW89_8852BT" (#f "n")) ("CONFIG_RTW89_8852C" (#f "n"))
> > ("CONFIG_RTW89_8922A" (#f "n")) ("CONFIG_RTW89_8851BE" (#f "n"))
> > ("CONFIG_RTW89_8852AE" (#f "n")) ("CONFIG_RTW89_8852BE" (#f "n"))
> > ("CONFIG_RTW89_8852BTE" (#f "n")) ("CONFIG_RTW89_8852CE" (#f "n"))
> > ("CONFIG_RTW89_8922AE" (#f "n" #f
> > phase `configure' failed after 18.4 seconds
> > ```
> > Which is strange because if I download the source using "guix build
> > linux-libre --source", unpack it, put my config and run "make" within
> > "guix shell --development linux-libre" - it builds the source code
> > successfully.
> > I guess, #:defconfig in customize-linux does not use my kernel config
> > but tries to generate the config using it?
> > Anyway, it didn't work for me.
> > So, I guess my question remains - is there a way to use a custom
> > kernel config to build one?
>
> Have you run ‘make savedefconfig’?  It will output a ‘defconfig’ file with
> default configs pruned.  ‘#:defconfig’ expects this file, not a full config.
>
> Thanks



Re: Betterbird

2025-03-16 Thread Cayetano Santos

>dim. 16 mars 2025 at 11:22, gfp  wrote:

> Is there a change to install Betterbird in Guix?
>
> If so, how can I do that?
>
> Or do I have to wait if somebody adds it to the packages?

Icedove is packaged in guix, here:

https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/gnuzilla.scm?h=master#n1832

Someone has to package Betterbird, based on and adapting what already
exists in previous module, indeed.

C.


signature.asc
Description: PGP signature


btrfs with legacy bios issue

2025-03-16 Thread crevyx via
Hello,

I am trying to create an image booting a btrfs partition with legacy BIOS, but 
no luck so far.

If I use UEFI, it works with:
(image
(format 'compressed-qcow2)
(operating-system os)
(partition-table-type 'gpt)
(partitions
(list
(partition
(size (* 40 Mio))
(offset (* 1024 1024))
(label "GNU-ESP")
(file-system "vfat")
(flags '(esp))
(initializer (gexp initialize-efi-partition)))
(partition
(size 'guess)
(label root-label)
(file-system "btrfs")
(flags '(boot))
(initializer (gexp initialize-root-partition))
and:
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(targets (list "/boot/efi"
in the os definition.

However, with:
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(targets '("(/dev/vda)"in the os definition and:
(image
(format 'compressed-qcow2)
(operating-system os)
(partitions
(list
(partition
(offset (* 1024 1024))
(size 'guess)
(label root-label)
(file-system "btrfs")
(flags '(boot))
(initializer (gexp initialize-root-partition))
it fails, with GRUB rescue showing unknown filesystem.

If I just replace from the last part:
(file-system "btrfs")
by:
(file-system "ext4")

the system boots fine.

Any idea why that may be?

Cheers.

Re: cannot build a kernel with my custom config

2025-03-16 Thread Hilton Chain
On Sun, 16 Mar 2025 19:32:19 +0800,
Adam wrote:
>
> Oh, It started compiling! Thank you!
> I will write about the results!
> Btw, what do I need to do if I want to update the documentation? I
> should create a patch for the document and send it to guix patches?

Yes, doc/guix-cookbook.texi is the source file of Guix Cookbook .



Re: cannot build a kernel with my custom config

2025-03-16 Thread Hilton Chain
On Sun, 16 Mar 2025 18:31:51 +0800,
Adam wrote:
>
> Hi, Hilton!
> Thank you for the message, I tried using it in my package definition
> ```
> (define-public my-linux-package
>   (package
> (inherit (customize-linux
>   #:linux linux-libre
>   #:defconfig
>   (local-file "linux-libre-config")
> ```
> But unfortunately it didn't work for me
> ```
> error: in phase 'configure': uncaught exception:
> misc-error #f "~A ~S" ("Mismatching configurations in .config and
> arch/x86/configs/guix_defconfig" (("CONFIG_RTW89" (#f "n"))
> ("CONFIG_RTW89_CORE" (#f "n")) ("CONFIG_RTW89_PCI" (#f "n"))
> ("CONFIG_RTW89_8851B" (#f "n")) ("CONFIG_RTW89_8852A" (#f "n"))
> ("CONFIG_RTW89_8852B_COMMON" (#f "n")) ("CONFIG_RTW89_8852B" (#f "n"))
> ("CONFIG_RTW89_8852BT" (#f "n")) ("CONFIG_RTW89_8852C" (#f "n"))
> ("CONFIG_RTW89_8922A" (#f "n")) ("CONFIG_RTW89_8851BE" (#f "n"))
> ("CONFIG_RTW89_8852AE" (#f "n")) ("CONFIG_RTW89_8852BE" (#f "n"))
> ("CONFIG_RTW89_8852BTE" (#f "n")) ("CONFIG_RTW89_8852CE" (#f "n"))
> ("CONFIG_RTW89_8922AE" (#f "n" #f
> phase `configure' failed after 18.4 seconds
> ```
> Which is strange because if I download the source using "guix build
> linux-libre --source", unpack it, put my config and run "make" within
> "guix shell --development linux-libre" - it builds the source code
> successfully.
> I guess, #:defconfig in customize-linux does not use my kernel config
> but tries to generate the config using it?
> Anyway, it didn't work for me.
> So, I guess my question remains - is there a way to use a custom
> kernel config to build one?

Have you run ‘make savedefconfig’?  It will output a ‘defconfig’ file with
default configs pruned.  ‘#:defconfig’ expects this file, not a full config.

Thanks



Re: cannot build a kernel with my custom config

2025-03-16 Thread Hilton Chain
Hi Adam,

On Sun, 16 Mar 2025 10:02:42 +0800,
Adam wrote:
>
> Hello Guix!
> Recently I've read about customizing the kernel on this page
> https://guix.gnu.org/cookbook/en/html_node/Customizing-the-Kernel.html
> After reading I decided to try one of described there ways of
> providing my own kernel configuration.
> Long story short, in my configuration I disabled everything related to
> rtw89 driver
> ```
> ...
> CONFIG_RTW89=n
> CONFIG_RTW89_CORE=n
> CONFIG_RTW89_PCI=n
> CONFIG_RTW89_8851B=n
> CONFIG_RTW89_8852A=n
> CONFIG_RTW89_8852B=n
> CONFIG_RTW89_8852C=n
> CONFIG_RTW89_8851BE=n
> CONFIG_RTW89_8852AE=n
> CONFIG_RTW89_8852BE=n
> CONFIG_RTW89_8852CE=n
> ...
> ```
> And I used this code snippet to define my custom kernel package
> ```
> (define-public my-linux-package
>   (package
> (inherit linux-libre)
> (native-inputs
>  `(("kconfig" ,(local-file "config"))
>   ,@(alist-delete "kconfig"
>   (package-native-inputs linux-libre))
> ```
> After building my package I checked the config file which is stored in
> the derivation. Unfortunately, that file had these options
> ```
> CONFIG_RTW89=m
> CONFIG_RTW89_CORE=m
> CONFIG_RTW89_PCI=m
> CONFIG_RTW89_8851B=m
> CONFIG_RTW89_8852A=m
> CONFIG_RTW89_8852B_COMMON=m
> CONFIG_RTW89_8852B=m
> CONFIG_RTW89_8852BT=m
> CONFIG_RTW89_8852C=m
> ```
> I assume that guix used default kernel configuration instead. So my
> question is - is there any way to provide my own .config file to build
> a kernel package?

kconfig inputs is not a thing now, that Cookbook entry should be updated.

Currently a ‘customize-linux’ procedure is defined in (gnu packages linux) and
should be used to define a kernel variant, you can save a defconfig and pass it
to the procedure:
--8<---cut here---start->8---
(customize-linux
 #:linux linux-libre
 #:defconfig
 (local-file "config"))
--8<---cut here---end--->8---

Please see its docstring for details.

Thanks



Re: Packaging ZLS 0.14

2025-03-16 Thread Hilton Chain
Hi Joshua,

On Mon, 10 Mar 2025 05:10:18 +0800,
Joshua Clark via wrote:
>
> Hello, I'm trying to package ZLS v0.14.0
> https://github.com/zigtools/zls/releases/tag/0.14.0, but I've run into an
> issue with its dependencies. Zig v0.14.0 changed the build.zig.zon file
> format, making it incompatible with previous versions of Zig. The result of
> this, packages that work with Zig v0.14.0 won't work with previous versions,
> and vice versa.
>
> For example, our packaged version of zig-known-folders
> https://hpc.guix.info/package/zig-known-folders, is for Zig v0.12.0, if I
> update it to be compatible with Zig v0.14.0, it will break all previous
> versions of ZLS.
>
> How should I deal with this?
>
>
> 0.12.0: 
> https://github.com/ziglibs/known-folders/blob/1cceeb70e77dec941a4178160ff6c8d05a74de6f/build.zig.zon
> 0.14.0: https://github.com/ziglibs/known-folders/blob/master/build.zig.zon

You can add a new variable ‘zig-known-folders-for-zig-0.14’.

Thanks



ntpd crash loop on boot, apparently due to failure to bind listening sockets

2025-03-16 Thread Zack Weinberg
I just updated my server that runs Guix and after rebooting I see ntpd
crash repeatedly.  Full log excerpt at the end of this message, but the
crucial bit is:

2025-03-16 22:15:23 localhost ntpd[135]: Listen and drop on 0 v6wildcard 
[::]:123
2025-03-16 22:15:23 localhost ntpd[135]: Listen and drop on 1 v4wildcard 
0.0.0.0:123
2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 2 lo 127.0.0.1:123
2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 3 eth0 w.x.y.z:123
2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 4 lo [::1]:123
2025-03-16 22:15:23 localhost ntpd[135]: bind(21) AF_INET6 
[2a00:nn:nn:nn::1]:123 flags 0x11 failed: Cannot assign requested address
2025-03-16 22:15:23 localhost ntpd[135]: unable to create socket on eth0 (5) 
for [2a00:nn:nn:nn::1]:123
2025-03-16 22:15:23 localhost linux: [6.003539] ntpd[135]: segfault at 24 
ip 628abeb0829b sp 7ffe175a9a90 error 4 in 
ntpd[7f29b,628abea9b000+86000] likely on CPU 0 (core 0, socket 0)

It's trying to bind a listening socket to a specific IPv6 address and
failing because that interface isn't all the way up yet (yet somehow it
is up enough to know what its assigned IPv6 address *is*? I didn't
realize that was possible).  That is then causing ntpd to crash.  I'm
confident that the crash is because of the failure to bind the socket,
because when I manually restarted the daemon, after the system had been
running for a while, it came up fine:

2025-03-16 22:21:39 localhost ntpd[360]: Listen and drop on 0 v6wildcard 
[::]:123
2025-03-16 22:21:39 localhost ntpd[360]: Listen and drop on 1 v4wildcard 
0.0.0.0:123
2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 2 lo 127.0.0.1:123
2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 3 eth0 w.x.y.z:123
2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 4 lo [::1]:123
2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 5 eth0 
[2a00:nn:nn:nn::1]:123
2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 6 eth0 
[fe80::xx:xx:xx:xx%2]:123
2025-03-16 22:21:39 localhost ntpd[360]: Listening on routing socket on fd #23 
for interface updates
2025-03-16 22:21:40 localhost ntpd[360]: Soliciting pool server 
2a00:da00:1800:837c::1
[etc]

This is at least three bugs:

* ntpd should not *crash* just because it failed to bind a
  listening socket.
* shepherd should know that ntpd needs to bind specific listening
  sockets and should not start it until that is actually possible
* in the default client-only configuration, ntpd should not need to bind
  specific listening sockets in the first place, it should just listen on
  the wildcard address(es)!

Are any of these bugs already known?  What is the preferred way to
report a set of interrelated bugs like these?

I have not modified the ntp service in my (operating-system) spec,
and the generated ntp.conf looks completely stock:

driftfile /var/run/ntpd/ntp.drift
pool 2.guix.pool.ntp.org iburst
# Disable status queries as a workaround for CVE-2013-5211:
# 
.
restrict default kod nomodify notrap nopeer noquery limited
restrict -6 default kod nomodify notrap nopeer noquery limited
# Yet, allow use of the local 'ntpq'.
restrict 127.0.0.1
restrict -6 ::1
# This is required to use servers from a pool directive when using the 'nopeer'
# option by default, as documented in the 'ntp.conf' manual.
restrict source notrap nomodify noquery

Full crash log:

2025-03-16 22:15:23 localhost shepherd[1]: Starting service ntpd...
2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd started.
2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd running with value 
#< id: 135 command: ("/gnu/store/hzs
ra0k8jcz4473c6clh5m5xfq29s0a0-ntp-4.2.8p18/bin/ntpd" "-n" "-c" 
"/gnu/store/7ac2i2c6dp2f9006llg3m5vkrna7pjbf-ntpd.conf" "
-u" "ntpd" "-g")>.
2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd has been started.
2025-03-16 22:15:23 localhost ntpd[135]: ntpd 4.2.8p18@1.4062-o Thu Jan  1 
00:00:01 UTC 1970 (1): Starting
2025-03-16 22:15:23 localhost ntpd[135]: Command line: 
/gnu/store/hzsra0k8jcz4473c6clh5m5xfq29s0a0-ntp-4.2.8p18/bin/ntpd
 -n -c /gnu/store/7ac2i2c6dp2f9006llg3m5vkrna7pjbf-ntpd.conf -u ntpd -g
2025-03-16 22:15:23 localhost ntpd[135]: 

2025-03-16 22:15:23 localhost ntpd[135]: ntp-4 is maintained by Network Time 
Foundation,
2025-03-16 22:15:23 localhost ntpd[135]: Inc. (NTF), a non-profit 501(c)(3) 
public-benefit
2025-03-16 22:15:23 localhost ntpd[135]: corporation.  Support and training for 
ntp-4 are
2025-03-16 22:15:23 localhost ntpd[135]: available at 
https://www.nwtime.org/support
2025-03-16 22:15:23 localhost ntpd[135]: 

2025-03-16 22:15:23 localhost ntpd[135]: DEBUG behavior is enabled - a 
violation of any diagnostic assertion will cause
ntpd to abort
2025-03-16 22:15:23 localhost shepherd[1]: Sta

Re: cannot build a kernel with my custom config

2025-03-16 Thread Adam
it was compiled! And the config in the result derivation contained this line
```
# CONFIG_RTW89 is not set
```
So, as I see, my problem was resolved. Also I found this page
https://guix.gnu.org/manual/devel/en/html_node/Writing-Documentation.html
.
I will look at the instructions and will try to contribute to the cookbook.

Again, thank you, Hilton!

On Sun, Mar 16, 2025 at 4:51 AM Hilton Chain  wrote:
>
> On Sun, 16 Mar 2025 19:32:19 +0800,
> Adam wrote:
> >
> > Oh, It started compiling! Thank you!
> > I will write about the results!
> > Btw, what do I need to do if I want to update the documentation? I
> > should create a patch for the document and send it to guix patches?
>
> Yes, doc/guix-cookbook.texi is the source file of Guix Cookbook .



Re: Betterbird

2025-03-16 Thread Luis Felipe

Hi Gottfried,

On 16/03/25 11:22, gfp wrote:

Is there a change to install Betterbird in Guix?

If so, how can I do that?


Since it doesn't seem to be packaged for Guix, you could use flatpak 
instead. I see Betterbird is packaged.




Or do I have to wait if somebody adds it to the packages?


That, or learn how to package software yourself. In my experience, the 
latter is a better way to get the software one needs.


Cheers,


OpenPGP_0x0AB0D067012F08C3.asc
Description: OpenPGP public key


OpenPGP_signature.asc
Description: OpenPGP digital signature


Re: ntpd crash loop on boot, apparently due to failure to bind listening sockets

2025-03-16 Thread Ian Eure
There's a patch for this: https://issues.guix.gnu.org/76892

On March 16, 2025 3:57:20 PM PDT, Zack Weinberg  wrote:
>I just updated my server that runs Guix and after rebooting I see ntpd
>crash repeatedly.  Full log excerpt at the end of this message, but the
>crucial bit is:
>
>2025-03-16 22:15:23 localhost ntpd[135]: Listen and drop on 0 v6wildcard 
>[::]:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen and drop on 1 v4wildcard 
>0.0.0.0:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 2 lo 127.0.0.1:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 3 eth0 w.x.y.z:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 4 lo [::1]:123
>2025-03-16 22:15:23 localhost ntpd[135]: bind(21) AF_INET6 
>[2a00:nn:nn:nn::1]:123 flags 0x11 failed: Cannot assign requested address
>2025-03-16 22:15:23 localhost ntpd[135]: unable to create socket on eth0 (5) 
>for [2a00:nn:nn:nn::1]:123
>2025-03-16 22:15:23 localhost linux: [6.003539] ntpd[135]: segfault at 24 
>ip 628abeb0829b sp 7ffe175a9a90 error 4 in 
>ntpd[7f29b,628abea9b000+86000] likely on CPU 0 (core 0, socket 0)
>
>It's trying to bind a listening socket to a specific IPv6 address and
>failing because that interface isn't all the way up yet (yet somehow it
>is up enough to know what its assigned IPv6 address *is*? I didn't
>realize that was possible).  That is then causing ntpd to crash.  I'm
>confident that the crash is because of the failure to bind the socket,
>because when I manually restarted the daemon, after the system had been
>running for a while, it came up fine:
>
>2025-03-16 22:21:39 localhost ntpd[360]: Listen and drop on 0 v6wildcard 
>[::]:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen and drop on 1 v4wildcard 
>0.0.0.0:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 2 lo 127.0.0.1:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 3 eth0 w.x.y.z:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 4 lo [::1]:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 5 eth0 
>[2a00:nn:nn:nn::1]:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 6 eth0 
>[fe80::xx:xx:xx:xx%2]:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listening on routing socket on fd #23 
>for interface updates
>2025-03-16 22:21:40 localhost ntpd[360]: Soliciting pool server 
>2a00:da00:1800:837c::1
>[etc]
>
>This is at least three bugs:
>
>* ntpd should not *crash* just because it failed to bind a
>  listening socket.
>* shepherd should know that ntpd needs to bind specific listening
>  sockets and should not start it until that is actually possible
>* in the default client-only configuration, ntpd should not need to bind
>  specific listening sockets in the first place, it should just listen on
>  the wildcard address(es)!
>
>Are any of these bugs already known?  What is the preferred way to
>report a set of interrelated bugs like these?
>
>I have not modified the ntp service in my (operating-system) spec,
>and the generated ntp.conf looks completely stock:
>
>driftfile /var/run/ntpd/ntp.drift
>pool 2.guix.pool.ntp.org iburst
># Disable status queries as a workaround for CVE-2013-5211:
># 
>.
>restrict default kod nomodify notrap nopeer noquery limited
>restrict -6 default kod nomodify notrap nopeer noquery limited
># Yet, allow use of the local 'ntpq'.
>restrict 127.0.0.1
>restrict -6 ::1
># This is required to use servers from a pool directive when using the 'nopeer'
># option by default, as documented in the 'ntp.conf' manual.
>restrict source notrap nomodify noquery
>
>Full crash log:
>
>2025-03-16 22:15:23 localhost shepherd[1]: Starting service ntpd...
>2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd started.
>2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd running with value 
>#< id: 135 command: ("/gnu/store/hzs
>ra0k8jcz4473c6clh5m5xfq29s0a0-ntp-4.2.8p18/bin/ntpd" "-n" "-c" 
>"/gnu/store/7ac2i2c6dp2f9006llg3m5vkrna7pjbf-ntpd.conf" "
>-u" "ntpd" "-g")>.
>2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd has been started.
>2025-03-16 22:15:23 localhost ntpd[135]: ntpd 4.2.8p18@1.4062-o Thu Jan  1 
>00:00:01 UTC 1970 (1): Starting
>2025-03-16 22:15:23 localhost ntpd[135]: Command line: 
>/gnu/store/hzsra0k8jcz4473c6clh5m5xfq29s0a0-ntp-4.2.8p18/bin/ntpd
> -n -c /gnu/store/7ac2i2c6dp2f9006llg3m5vkrna7pjbf-ntpd.conf -u ntpd -g
>2025-03-16 22:15:23 localhost ntpd[135]: 
>
>2025-03-16 22:15:23 localhost ntpd[135]: ntp-4 is maintained by Network Time 
>Foundation,
>2025-03-16 22:15:23 localhost ntpd[135]: Inc. (NTF), a non-profit 501(c)(3) 
>public-benefit
>2025-03-16 22:15:23 localhost ntpd[135]: corporation.  Support and training 
>for ntp-4 are
>2025-03-16 22:15:23 localhost ntpd[135]: available at 
>https://www.nwtime.org/support
>2025-03-16 22:15:23 localhost ntpd[135]: 
>