bug#68626: colord-minimal fails to build for target aarch64-linux-gnu

2024-01-20 Thread Lars Rustand
I was trying to build gtk+ like this:

```
guix build gtk+ --target=aarch64-linux-gnu --no-grafts
```

and got the following error:

--8<---cut here---start->8---
Configuring cd-version.h using configuration
Run-time dependency gobject-introspection-1.0 found: YES 1.72.0
Did not find pkg-config by name 'pkg-config'
Found Pkg-config: NO
Did not find CMake 'cmake'
Found CMake: NO
Build-time dependency gobject-introspection-1.0 found: NO (tried pkgconfig and 
cmake)
Program g-ir-scanner found: NO

../colord-1.4.6/lib/colord/meson.build:150:28: ERROR: Program 'g-ir-scanner' 
not found or not executable

A full log can be found at 
/tmp/guix-build-colord-minimal-1.4.6.drv-0/build/meson-logs/meson-log.txt
error: in phase 'configure': uncaught exception:
%exception #< program: "meson" arguments: ("setup" 
"--prefix=/gnu/store/ad8yj1448jvibzr6b0x0gpnyn69vq5fc-colord-minimal-1.4.6" 
"--buildtype=debugoptimized" 
"-Dc_link_args=-Wl,-rpath=/gnu/store/ad8yj1448jvibzr6b0x0gpnyn69vq5fc-colord-minimal-1.4.6/lib"
 
"-Dcpp_link_args=-Wl,-rpath=/gnu/store/ad8yj1448jvibzr6b0x0gpnyn69vq5fc-colord-minimal-1.4.6/lib"
 "--cross-file" "/gnu/store/24v58cicnclnpwwv42pcpc9z53x1938k-cross-file" 
"-Dargyllcms_sensor=false" "-Dbash_completion=false" "-Ddaemon_user=colord" 
"-Ddocs=false" "-Dlocalstatedir=/var" "-Dman=false" "-Dsystemd=false" 
"/tmp/guix-build-colord-minimal-1.4.6.drv-0/colord-1.4.6") exit-status: 1 
term-signal: #f stop-signal: #f>
phase `configure' failed after 1.3 seconds
command "meson" "setup" 
"--prefix=/gnu/store/ad8yj1448jvibzr6b0x0gpnyn69vq5fc-colord-minimal-1.4.6" 
"--buildtype=debugoptimized" 
"-Dc_link_args=-Wl,-rpath=/gnu/store/ad8yj1448jvibzr6b0x0gpnyn69vq5fc-colord-minimal-1.4.6/lib"
 
"-Dcpp_link_args=-Wl,-rpath=/gnu/store/ad8yj1448jvibzr6b0x0gpnyn69vq5fc-colord-minimal-1.4.6/lib"
 "--cross-file" "/gnu/store/24v58cicnclnpwwv42pcpc9z53x1938k-cross-file" 
"-Dargyllcms_sensor=false" "-Dbash_completion=false" "-Ddaemon_user=colord" 
"-Ddocs=false" "-Dlocalstatedir=/var" "-Dman=false" "-Dsystemd=false" 
"/tmp/guix-build-colord-minimal-1.4.6.drv-0/colord-1.4.6" failed with status 1
builder for 
`/gnu/store/b5af25h1p5f12h3sbsp2jz4daajl6135-colord-minimal-1.4.6.drv' failed 
with exit code 1
--8<---cut here---end--->8---





bug#65926: package openjdk 20.0.2 and release-candidate 21+35 and add helpers for that

2024-01-20 Thread Maxim Cournoyer
Hello!

"Dr. Arne Babenhauserheide"  writes:

> Hi,
>
> attached are patches to add helpers and package openjdk 20.0.2 and
> 21+35.
>
> The 21+35 package skips the validation of the runpath, because that
> fails. I don’t know why.
>
> From e72a8ec42a4d4a199711c0abf7960f8caeab5c1e Mon Sep 17 00:00:00 2001
> Message-ID: 
> 
> From: Arne Babenhauserheide 
> Date: Wed, 13 Sep 2023 21:59:25 +0200
> Subject: [PATCH 1/4] Add version-prefix-+ for versions with + as separator of
>  the build
>
> * guix/utils.scm (version-prefix-+): new procedure

It seems all of your series got sent as a single diff, instead of
multiple messages.  Apply it with 'git am' only applies the first
commit.  Am I missing something?

> ---
>  guix/utils.scm | 6 ++
>  1 file changed, 6 insertions(+)
>
> diff --git a/guix/utils.scm b/guix/utils.scm
> index e9af33bdeb..2993b31a5c 100644
> --- a/guix/utils.scm
> +++ b/guix/utils.scm
> @@ -116,6 +116,7 @@ (define-module (guix utils)
>  version>?
>  version>=?
>  version-prefix
> +version-prefix-+
>  version-major+minor+point
>  version-major+minor
>  version-major
> @@ -822,6 +823,11 @@ (define (version-major version-string)
>"Return the major version number as string from the version-string."
>(version-prefix version-string 1))
>  
> +(define (version-prefix-+ version-string)
> +  "Truncate version-string to leave out a suffix appended with +.
> +For example, (version-prefix-+ \"21+35\" returns \"21\""
> +  (string-join (take (string-split version-string #\+) 1) "+"))

This is probably odd enough to be better defined in java.scm, but see
below.

[...]

> Subject: [PATCH 2/4] Add syntax make-openjdk-release-candidate for versions
>  like 21+35
>
> * gnu/packages/java.scm (make-openjdk-release-candidate): new procedure

I'm not sure we want this in Guix proper; it'd be good for a bleeding
edge java channel, perhaps?
]
>  gnu/packages/java.scm | 39 +++
>  1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index f7464e2168..0c22f4def9 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1431,6 +1431,45 @@ (define-syntax make-openjdk
> field
> ...)))
>  
> +(define-syntax make-openjdk-release-candidate
> +  ;; Return an OpenJDK package at VERSION with checksum HASH, using 
> BOOTSTRAP,
> +  ;; the bootstrap package.  One or more FIELD can be provided to further
> +  ;; refine the package definition; for convenience, the BASE, NAME and
> +  ;; VERSION are defined in their scope.
> +  (lambda (x)
> +(syntax-case x ()
> +  ((_ bootstrap version* hash field ...)
> +   (with-syntax ((base (datum->syntax x 'base))
> + (name (datum->syntax x 'name))
> + (version (datum->syntax x 'version)))
> + #'(let ((base (package
> + (inherit bootstrap)
> + (name "openjdk")
> + (version version*)
> + (source
> +  (origin
> +(inherit (package-source bootstrap))
> +(method git-fetch)
> +(uri (git-reference
> +  (url (format
> +#f 
> "https://github.com/openjdk/jdk~au;
> +(version-prefix-+ version*)))
> +  (commit (string-append "jdk-" version*
> +(file-name (git-file-name name version))
> +(sha256 (base32 hash
> + (native-inputs
> +  (modify-inputs (package-native-inputs bootstrap)
> +(replace "openjdk" bootstrap)))
> + (home-page (string-append
> + "https://openjdk.java.net/projects/jdk/;
> + (version-major version)
> + (name "openjdk")
> + (version version*))
> + (package
> +   (inherit base)
> +   field
> +   ...)))
> +

Especially since this mostly duplicates the macro from make-openjdk.

> Subject: [PATCH 3/4] Add openjdk 20.0.2
>
> * gnu/packages/java.scm (openjdk20): new package

> ---
>  gnu/packages/java.scm | 16 
>  1 file changed, 16 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 0c22f4def9..d541242b73 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1590,6 +1590,22 @@ (define-public openjdk19
>  ;;; Convenience alias to point to the latest version of OpenJDK.
>  (define-public openjdk openjdk19)
>
> +(define-public openjdk20
> +  (make-openjdk openjdk19 "20.0.2"
> +

bug#59510: cuirass-remote-server: put-char encoding failed

2024-01-20 Thread Felix Lechner via Bug reports for GNU Guix
Hi,

> 2022-11-22 00:28:15 Throw to key `encoding-error' with args
> `("put-char" "conversion to port encoding failed" 84 #
> #\2)'.

Could the error be due to the 7-bit encoding in HTTP headers? [1] The
"84" is EILSEQ from errno.h. [2] Wingo added the functionality here. [3]

I also submitted a patch to resolve in the errno in Guile. [4]

Kind regards
Felix

[1] https://lists.gnu.org/archive/html/guile-user/2020-09/msg00015.html
[2] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/errno.h#n67
[3] 
https://git.savannah.gnu.org/cgit/guile.git/commit/?id=43b6feeb1adafe54170304e7cc3c29a15c1d3808
[4] https://debbugs.gnu.org/68624





bug#49122: gobject-introspection and not finding cairo

2024-01-20 Thread Maxim Cournoyer
Hi John,

John Kehayias  writes:

> I've managed to fix the initial problem I noted, but this would depend
> on having cairo as an input so that gobject-introspection can find the
> library to patch the typelib. Unfortunately, this would be a circular
> dependency. This is a long standing issue with how cairo is handled
> here (see, e.g.,
> https://gitlab.freedesktop.org/cairo/cairo/-/issues/141).
>
> I don't know how circular dependencies are solved in guix, so I'm not
> sure what to do to fix this. gobject-introspection doesn't need cairo
> to build or function, so the build depends is not really needed other
> than to fix this bug. So this could be done with a separate package or
> in two steps?

Upstream said:

--8<---cut here---start->8---
The Cairo API is not really introspectable, because its type system does
not use GObject.

We could generate the introspection data by using a filter script to
turn the snake case cairo_*_t types into the expected CamelCase Cairo*
types, but it's not entirely trivial, and it would still not by usable
by anything.
--8<---cut here---end--->8---

Introducing an extra dependency to the closure of gobject-introspection,
we'd have applications soft-linking to potentially different versions of
cairo (cairo and cairo-sans-poppler), which seems ugly.

Could we move the cairo.gir file to the cairo package, and this would be
picked up by gobject-introspection if at the right location?

It'd differ from upstream, but that'd be cleaner.  Perhaps we could
contribute such fix for inclusion upstream too.

-- 
Thanks,
Maxim





bug#64653: works now

2024-01-20 Thread Matt Wette
This bug no longer occurs on my system.   That change occurred over the 
last week.






bug#43420: icecat causes pulseaudio to crash

2024-01-20 Thread Maxim Cournoyer
tags 43420 + unreproducible
quit

Hi,

Nathan Dehnel  writes:

> Yeah probably, I just switched to pipewire

Alright, closing.

-- 
Thanks,
Maxim





bug#68611: easyeffects package not working

2024-01-20 Thread Apoorv via Bug reports for GNU Guix
When I launch easyeffects package I get a bunch of warnings and segmentation 
fault in the end, here is a part of the log,

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 
lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 
lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 
lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 
lilv_world_add_plugin(): warning: Reloading plugin 
lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 
lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

lilv_world_add_plugin(): warning: Reloading plugin 

bug#68610: URI path in git-http-nginx-location-configuration doesn't accept / properly

2024-01-20 Thread Richard Sent
Hi all,

In the documentation for Version Control Services, there is example code
for sharing Git repos through Nginx, posted below. The line
(git-http-configuration (uri-path "/")) implies that git repositories
can be reached at "git.my-host.org/repo.git". However, this doesn't work.

--8<---cut here---start->8---
(service nginx-service-type
 (nginx-configuration
  (server-blocks
   (list
(nginx-server-configuration
 (listen '("443 ssl"))
 (server-name "git.my-host.org")
 (ssl-certificate
  "/etc/letsencrypt/live/git.my-host.org/fullchain.pem")
 (ssl-certificate-key
  "/etc/letsencrypt/live/git.my-host.org/privkey.pem")
 (locations
  (list
   (git-http-nginx-location-configuration
(git-http-configuration (uri-path "/"))
--8<---cut here---end--->8---

Nginx's location information is generated by
git-http-nginx-location-configuration, which runs

--8<---cut here---start->8---
(uri (string-append "~ /" (string-trim-both uri-path #\/) "(/.*)"))
--8<---cut here---end--->8---

If uri-path is "/" (or "", or "\"), this entry will be created in nginx.conf:

--8<---cut here---start->8---
location ~ /(/.*) {
   
}
--8<---cut here---end--->8---

This location regex pattern will match git.my-host.org//, but not
git.my-host.org/. However, Nginx merges slashes by default, so you
cannot access the repo with 'http://git.my-host.org//repo.git' because
Nginx collapses that to http://git.my-host.org/repo.git before matching
the URI against the location pattern. Which, as mentioned, does not
match.

I did find that (uri-path "*") does work, but I've not tested it
extensively. I also found that I can add `(raw-content (list
"merge_slashes off;"))` to nginx-server-configuration, then use `$ git
clone http://git.my-host.org//repo.git`, but that's not ideal.

At minimum, the documentation should be updated to reflect this
(uri-path "/" vs "\" vs "" are identical). I don't know what the future
plans are for git-http-service, but I can think of two possible solutions:

1. git-http-nginx-location-configuration no longer modifies uri-path and
instead pastes it literally in nginx.conf. To my understanding "/git"
would work identically without the regex match currently used, exposing
repos at "host.domain/git/path/to/repo.git", but I've not tested this.

2. git-http-nginx-location-configuration takes an optional Nginx-style
URI pattern argument that, if passed, replaces the URI generated from
git-http-configuration.

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.





bug#57292: bug#59489: gdm: Accessibility icon missing in log in screen

2024-01-20 Thread Dariqq

Hi Maxim,


On 20.01.24 04:12, Maxim Cournoyer wrote:


Since this is, as the name implies, intended for artwork or other
non-functional "assets", perhaps these package should be propagated by
the gdm package itself?  Would that have achieve the same?




That's what I tried initially and confirmed again today that it doesn't 
work for both inputs or propagated inputs. (the icon from 
gnome-control-center is visible because the share directory will be 
included XDG_DATA_DIRS from the wrapper script from the glib-or-gtk-wrap 
phase but not he other packages).
After that the next most simple solution was the hacky workaround via 
gnome-shell-assets. Maybe someone has a better idea for how to include 
the extra packages?



Also as I use the gnome-desktop via gnome-desktop-service-type all these 
packages should already be in my system profile. So somehow the 
environment is weird when shepherd starts gdm such that gdm can't find 
the extra files but I don't know enough of both guix/shepherd and 
gdm/gnome to figure out what the exact problem is.



This issue appears to have been discussed previously, although I can't
find it anymore...



I found https://issues.guix.gnu.org/28088 which is a bit related but not 
exactly the same as there is no login manager involved.