Re: Guix build fails on phase install-license-files

2026-02-06 Thread Gary Johnson
Hi Rutherther,

Thanks for the issue link. I have also run into issues updating the store since 
switching to the unprivileged daemon on these Ubuntu VMs. I get an error 
stating that there are issues with read-only files in the store. I fixed this 
by restarting the guix-daemon on these VMs since that seems to unmount and 
remount the /gnu/store read-only after making it available to the guix-daemon 
process for writing. This behavior is quite mysterious and not good for my 
current CI/CD pipeline. I hope the bug is resolved on the master branch soon.

Cheers,
  Gary

Rutherther  writes:

> Hey,
>
> My wild guess would be you are running into similar issue as 
>  as you are likely using 
> unprivileged daemon on Ubuntu and privileged on Guix System. 
>
> You can try switching to unprivileged daemon on your Guix System and try 
> building like that. I suspect you will hit the issue on both systems 
> afterwards.
>
> Rutherther 
>
> On February 5, 2026 3:37:52 PM GMT+01:00, Gary Johnson 
>  wrote:
>>Thanks for the debugging help, Daniel. I'll take a look and see if I can spot 
>>why this function is crashing on my packages.
>>
>>~Gary
>>
>>Daniel Littlewood  writes:
>>
>>> Hi Gary,
>>>
>>> At first I was surprised to see gnu-build-system in the traceback, but
>>> it turns out copy-build-system is implemented in terms of
>>> gnu-build-system (I did not know this, maybe you did). Looking at the
>>> procedure install-license-files in gnu-build-system, there are a
>>> couple of calls to match which could be failing. If I'm reading the
>>> traceback correctly, it points to line 881, which is the call to match
>>> in find-source-directory, quoted below.
>>>
>>>   (define (find-source-directory package)
>>>     ;; For an out-of-source build, guess the source directory location
>>>     ;; relative to the current directory.  Return #f on failure.
>>>     (match (scandir ".."
>>>                     (lambda (file)
>>>                       (and (not (member file '("." ".." "build")))
>>>                            (file-is-directory?
>>>                             (string-append "../" file)
>>>       (()                                         ;hmm, no source
>>>        #f)
>>>       ((source)                                   ;only one other file
>>>        (string-append "../" source))
>>>       ((directories ...)                          ;pick the most likely one
>>>        ;; This happens for example with libstdc++, which lives within
>>> the GCC
>>>        ;; source tree.
>>>        (any (lambda (directory)
>>>               (and (string-prefix? package directory)
>>>                    (string-append "../" directory)))
>>>             directories
>>>
>>> This procedure is apparently only called when out-of-source? is true,
>>> and I am not sure what that means. Regardless, if (match (scandir
>>> ...)) does not match the given patterns, it must not be returning a
>>> list (and the traceback confirms this; it is in fact returning #f). I
>>> suppose this indicates that scandir failed for some reason, for
>>> instance that .. is not readable. Indeed my copy of the guile manual
>>> (page 743) confirms this (it cannot be the case that .. is some other
>>> type of file, so it must be an unreadable directory).
>>>
 Return #f when name is unreadable or is not a directory.
>>>
>>> This explains the error at least - the match call does not handle #f.
>>> This does however leave open some questions I do not have an answer
>>> for. I am not sure what .. is in this context. Perhaps /gnu/store? I
>>> think that can't be it, because searching the entire store for a
>>> license file in one package would be terribly wasteful. I guess ..
>>> must be the checked out source tree. But then how can it not be
>>> readable?
>>>
>>> I hope this debugging is helpful, although I am still confused.
>>>
>>> Best wishes,
>>>
>>> Dan
>>>
>>> On 28/01/2026 14:10, Gary Johnson wrote:
 Hi Guix,

 I recently installed Guix onto a new Ubuntu VM using the standard 
 guix-install.sh script. Now on this VM, I cannot successfully build 
 packages that do build correctly on my own machine.

 While one might expect that I am just running different versions of Guix 
 on each machine, this shouldn't be the case because I am using the same 
 channels.scm file on both computers via the `guix time-machine` command. 
 I've never seen different behavior between two machines running the same 
 Guix version and building the same packages before, so I am utterly 
 mystified.

 Here's the error I get on my new VM when building a package:

 ===

 starting phase `install-license-files'
 error: in phase 'install-license-files': uncaught exception:
 match-error "match" "no matching pattern" #f
 phase `install-license-files' failed after 0.0 seconds
 Backt

Re: Guix build fails on phase install-license-files

2026-02-06 Thread Steve George
Hi Gary,

So it's something specific to the Guix 1.5.0 install on Ubuntu then. What 
version of Ubuntu are you using, the latest LTS or a standard release?

Rurtherther's intuition that it's connected to the 'non-priveleged' install is 
probably a good one.

- Do you see anything in the system logs (e.g. journalctl -b)

- And/or anything from the guix service (e.g. journaltctl -u 
guix-daemon.service -b)

- Do you see anything in the logs from AppArmor complaining? (e.g. less 
/var/log/syslog search for 'apparmor')

- Can you see if guix-daemon shows up in apparmor status (e.g. sudo aa-status), 
I have:

  [... lots of stuff ...]
   /gnu/store/ccxagad0fnzyh0z5xflh3wjlxn4la79n-guile-wrapper/bin/guile (227843) 
guix
   /gnu/store/04j54wzbzfq7dlqnm6bky00vv17n4v6m-guile-3.0.11/bin/guile (227861) 
guix
   
/gnu/store/7y126vzlrkn8lljipsrj1jigq0vzcf65-goimapnotify-2.5.3/bin/goimapnotify 
(228019) guix
   
/gnu/store/kisvshd7dx07h33brcnpj7zmg7xnwk3v-guix-daemon-1.4.0-46.d671b75/bin/guix-daemon
 (252364) guix
  [... more stuff ...]

Steve / Futurile


On Thu, Feb 05, 2026 at 09:36:35PM +0700, Gary Johnson wrote:
> Hi Steve,
> 
> The package definition that I shared (and those like it that are exhibiting 
> the same error with the install-license-files phase) have not been changed in 
> quite some time.
> 
> They built correctly with `guix build` on my personal Guix System machine, on 
> my team members' Ubuntu machines, and on all of our Ubuntu VMs. These have 
> been building correctly and running deployed within Guix System containers on 
> top of Ubuntu for several months now.
> 
> Then I recently recreated some of my Ubuntu VMs with larger hard drives and 
> ran the same Guix installation code that I had used previously on them. 
> However, this time the install script that is downloaded from 
> https://guix.gnu.org/install.sh installed the new 1.5.0 version of Guix onto 
> my VMs. After this, I attempted to build and install these packages on the 
> VMs and they crashed in the install-license-files phase with the stacktrace 
> that I shared in my last email.
> 
> I should note that they build fine on my Guix System machine, and I have 
> tried `guix build --check ...` as per your recommendation to force rebuilds 
> without any errors. I am running the latest Guix master branch commit as of 
> yesterday.
> 
> I should note that even when I use `guix time-machine -C channels.scm -- 
> build --check ...` on my Guix System machine, I get no errors, despite the 
> channels.scm file using a Guix commit that is several months old.
> 
> The problem appears to only be happening on my new Ubuntu machines. When I 
> tried to use `guix time-machine -C channels.scm -- build --check ...` on 
> those machines (with the same channels.scm as I am using on my Guix System 
> machine), I get the install-license-files phase error. This makes it seem 
> like something may have changed in the match code in install-license-files 
> somehow, but I still don't understand how it could manifest itself on one 
> machine (Guix on Ubuntu) but not on another (Guix System), when they are both 
> using the same channels.scm file.
> 
> Any ideas are welcome.
> 
> Thanks,
>   Gary
> 
> Steve George  writes:
> 
> > Hi Gary,
> >
> > Have you tried building an existing package in the archive (e.g using 
> > --check), so that would remove the chance that it's something with the 
> > package definition?
> >
> > If it's a general problem with 'guix build' do you also have a problem with 
> > 'guix shell'. The main difference in the install now is that it's done 
> > without root permissions, I had some problems getting this right on an 
> > existing install.
> >
> > Steve / Futurile
> >
> > On Wed, Jan 28, 2026 at 09:10:02PM +0700, Gary Johnson wrote:
> >> Hi Guix,
> >> 
> >> I recently installed Guix onto a new Ubuntu VM using the standard 
> >> guix-install.sh script. Now on this VM, I cannot successfully build 
> >> packages that do build correctly on my own machine.
> >> 
> >> While one might expect that I am just running different versions of Guix 
> >> on each machine, this shouldn't be the case because I am using the same 
> >> channels.scm file on both computers via the `guix time-machine` command. 
> >> I've never seen different behavior between two machines running the same 
> >> Guix version and building the same packages before, so I am utterly 
> >> mystified.
> >> 
> >> Here's the error I get on my new VM when building a package:
> >> 
> >> ===
> >> 
> >> starting phase `install-license-files'
> >> error: in phase 'install-license-files': uncaught exception:
> >> match-error "match" "no matching pattern" #f 
> >> phase `install-license-files' failed after 0.0 seconds
> >> Backtrace:
> >>9 (primitive-load "/gnu/store/mbyp0pi1lbcqzw22mv0bjpabqis…")
> >> In guix/build/gnu-build-system.scm:
> >> 972:2  8 (gnu-build #:source _ #:outputs _ #:inputs _ #:phas

Re: Guix build fails on phase install-license-files

2026-02-05 Thread Rutherther
Hey,

My wild guess would be you are running into similar issue as 
 as you are likely using 
unprivileged daemon on Ubuntu and privileged on Guix System. 

You can try switching to unprivileged daemon on your Guix System and try 
building like that. I suspect you will hit the issue on both systems afterwards.

Rutherther 

On February 5, 2026 3:37:52 PM GMT+01:00, Gary Johnson 
 wrote:
>Thanks for the debugging help, Daniel. I'll take a look and see if I can spot 
>why this function is crashing on my packages.
>
>~Gary
>
>Daniel Littlewood  writes:
>
>> Hi Gary,
>>
>> At first I was surprised to see gnu-build-system in the traceback, but
>> it turns out copy-build-system is implemented in terms of
>> gnu-build-system (I did not know this, maybe you did). Looking at the
>> procedure install-license-files in gnu-build-system, there are a
>> couple of calls to match which could be failing. If I'm reading the
>> traceback correctly, it points to line 881, which is the call to match
>> in find-source-directory, quoted below.
>>
>>   (define (find-source-directory package)
>>     ;; For an out-of-source build, guess the source directory location
>>     ;; relative to the current directory.  Return #f on failure.
>>     (match (scandir ".."
>>                     (lambda (file)
>>                       (and (not (member file '("." ".." "build")))
>>                            (file-is-directory?
>>                             (string-append "../" file)
>>       (()                                         ;hmm, no source
>>        #f)
>>       ((source)                                   ;only one other file
>>        (string-append "../" source))
>>       ((directories ...)                          ;pick the most likely one
>>        ;; This happens for example with libstdc++, which lives within
>> the GCC
>>        ;; source tree.
>>        (any (lambda (directory)
>>               (and (string-prefix? package directory)
>>                    (string-append "../" directory)))
>>             directories
>>
>> This procedure is apparently only called when out-of-source? is true,
>> and I am not sure what that means. Regardless, if (match (scandir
>> ...)) does not match the given patterns, it must not be returning a
>> list (and the traceback confirms this; it is in fact returning #f). I
>> suppose this indicates that scandir failed for some reason, for
>> instance that .. is not readable. Indeed my copy of the guile manual
>> (page 743) confirms this (it cannot be the case that .. is some other
>> type of file, so it must be an unreadable directory).
>>
>>> Return #f when name is unreadable or is not a directory.
>>
>> This explains the error at least - the match call does not handle #f.
>> This does however leave open some questions I do not have an answer
>> for. I am not sure what .. is in this context. Perhaps /gnu/store? I
>> think that can't be it, because searching the entire store for a
>> license file in one package would be terribly wasteful. I guess ..
>> must be the checked out source tree. But then how can it not be
>> readable?
>>
>> I hope this debugging is helpful, although I am still confused.
>>
>> Best wishes,
>>
>> Dan
>>
>> On 28/01/2026 14:10, Gary Johnson wrote:
>>> Hi Guix,
>>>
>>> I recently installed Guix onto a new Ubuntu VM using the standard 
>>> guix-install.sh script. Now on this VM, I cannot successfully build 
>>> packages that do build correctly on my own machine.
>>>
>>> While one might expect that I am just running different versions of Guix on 
>>> each machine, this shouldn't be the case because I am using the same 
>>> channels.scm file on both computers via the `guix time-machine` command. 
>>> I've never seen different behavior between two machines running the same 
>>> Guix version and building the same packages before, so I am utterly 
>>> mystified.
>>>
>>> Here's the error I get on my new VM when building a package:
>>>
>>> ===
>>>
>>> starting phase `install-license-files'
>>> error: in phase 'install-license-files': uncaught exception:
>>> match-error "match" "no matching pattern" #f
>>> phase `install-license-files' failed after 0.0 seconds
>>> Backtrace:
>>> 9 (primitive-load "/gnu/store/mbyp0pi1lbcqzw22mv0bjpabqis…")
>>> In guix/build/gnu-build-system.scm:
>>>  972:2  8 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
>>> In ice-9/boot-9.scm:
>>>1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
>>> In srfi/srfi-1.scm:
>>>  634:9  6 (for-each # …)
>>> In ice-9/boot-9.scm:
>>>1752:10  5 (with-exception-handler _ _ #:unwind? _ # _)
>>> In guix/build/gnu-build-system.scm:
>>> 993:23  4 (_)
>>>  889:7  3 (install-license-files #:outputs _ #:license-file-regexp …)
>>>  881:4  2 (_)
>>> In ice-9/boot-9.scm:
>>>1685:16  1 (raise-exception _ #:continuable? _)
>>>1685:16  0 (raise-exceptio

Re: Guix build fails on phase install-license-files

2026-02-05 Thread Gary Johnson
Thanks for the debugging help, Daniel. I'll take a look and see if I can spot 
why this function is crashing on my packages.

~Gary

Daniel Littlewood  writes:

> Hi Gary,
>
> At first I was surprised to see gnu-build-system in the traceback, but
> it turns out copy-build-system is implemented in terms of
> gnu-build-system (I did not know this, maybe you did). Looking at the
> procedure install-license-files in gnu-build-system, there are a
> couple of calls to match which could be failing. If I'm reading the
> traceback correctly, it points to line 881, which is the call to match
> in find-source-directory, quoted below.
>
>   (define (find-source-directory package)
>     ;; For an out-of-source build, guess the source directory location
>     ;; relative to the current directory.  Return #f on failure.
>     (match (scandir ".."
>                     (lambda (file)
>                       (and (not (member file '("." ".." "build")))
>                            (file-is-directory?
>                             (string-append "../" file)
>       (()                                         ;hmm, no source
>        #f)
>       ((source)                                   ;only one other file
>        (string-append "../" source))
>       ((directories ...)                          ;pick the most likely one
>        ;; This happens for example with libstdc++, which lives within
> the GCC
>        ;; source tree.
>        (any (lambda (directory)
>               (and (string-prefix? package directory)
>                    (string-append "../" directory)))
>             directories
>
> This procedure is apparently only called when out-of-source? is true,
> and I am not sure what that means. Regardless, if (match (scandir
> ...)) does not match the given patterns, it must not be returning a
> list (and the traceback confirms this; it is in fact returning #f). I
> suppose this indicates that scandir failed for some reason, for
> instance that .. is not readable. Indeed my copy of the guile manual
> (page 743) confirms this (it cannot be the case that .. is some other
> type of file, so it must be an unreadable directory).
>
>> Return #f when name is unreadable or is not a directory.
>
> This explains the error at least - the match call does not handle #f.
> This does however leave open some questions I do not have an answer
> for. I am not sure what .. is in this context. Perhaps /gnu/store? I
> think that can't be it, because searching the entire store for a
> license file in one package would be terribly wasteful. I guess ..
> must be the checked out source tree. But then how can it not be
> readable?
>
> I hope this debugging is helpful, although I am still confused.
>
> Best wishes,
>
> Dan
>
> On 28/01/2026 14:10, Gary Johnson wrote:
>> Hi Guix,
>>
>> I recently installed Guix onto a new Ubuntu VM using the standard 
>> guix-install.sh script. Now on this VM, I cannot successfully build packages 
>> that do build correctly on my own machine.
>>
>> While one might expect that I am just running different versions of Guix on 
>> each machine, this shouldn't be the case because I am using the same 
>> channels.scm file on both computers via the `guix time-machine` command. 
>> I've never seen different behavior between two machines running the same 
>> Guix version and building the same packages before, so I am utterly 
>> mystified.
>>
>> Here's the error I get on my new VM when building a package:
>>
>> ===
>>
>> starting phase `install-license-files'
>> error: in phase 'install-license-files': uncaught exception:
>> match-error "match" "no matching pattern" #f
>> phase `install-license-files' failed after 0.0 seconds
>> Backtrace:
>> 9 (primitive-load "/gnu/store/mbyp0pi1lbcqzw22mv0bjpabqis…")
>> In guix/build/gnu-build-system.scm:
>>  972:2  8 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
>> In ice-9/boot-9.scm:
>>1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
>> In srfi/srfi-1.scm:
>>  634:9  6 (for-each # …)
>> In ice-9/boot-9.scm:
>>1752:10  5 (with-exception-handler _ _ #:unwind? _ # _)
>> In guix/build/gnu-build-system.scm:
>> 993:23  4 (_)
>>  889:7  3 (install-license-files #:outputs _ #:license-file-regexp …)
>>  881:4  2 (_)
>> In ice-9/boot-9.scm:
>>1685:16  1 (raise-exception _ #:continuable? _)
>>1685:16  0 (raise-exception _ #:continuable? _)
>>
>> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>> Throw to key `match-error' with args `("match" "no matching pattern" #f)'.
>> build process 11 exited with status 256
>>
>> ===
>>
>> Here is one of the many offending files that are all failing for me like 
>> this:
>>
>> (define geoserver-css-plugin
>>(package
>> (name "geoserver-css-plugin")
>> (version "2.19.6")
>> (source (origin
>>  (method 

Re: Guix build fails on phase install-license-files

2026-02-05 Thread Gary Johnson
Hi Steve,

The package definition that I shared (and those like it that are exhibiting the 
same error with the install-license-files phase) have not been changed in quite 
some time.

They built correctly with `guix build` on my personal Guix System machine, on 
my team members' Ubuntu machines, and on all of our Ubuntu VMs. These have been 
building correctly and running deployed within Guix System containers on top of 
Ubuntu for several months now.

Then I recently recreated some of my Ubuntu VMs with larger hard drives and ran 
the same Guix installation code that I had used previously on them. However, 
this time the install script that is downloaded from 
https://guix.gnu.org/install.sh installed the new 1.5.0 version of Guix onto my 
VMs. After this, I attempted to build and install these packages on the VMs and 
they crashed in the install-license-files phase with the stacktrace that I 
shared in my last email.

I should note that they build fine on my Guix System machine, and I have tried 
`guix build --check ...` as per your recommendation to force rebuilds without 
any errors. I am running the latest Guix master branch commit as of yesterday.

I should note that even when I use `guix time-machine -C channels.scm -- build 
--check ...` on my Guix System machine, I get no errors, despite the 
channels.scm file using a Guix commit that is several months old.

The problem appears to only be happening on my new Ubuntu machines. When I 
tried to use `guix time-machine -C channels.scm -- build --check ...` on those 
machines (with the same channels.scm as I am using on my Guix System machine), 
I get the install-license-files phase error. This makes it seem like something 
may have changed in the match code in install-license-files somehow, but I 
still don't understand how it could manifest itself on one machine (Guix on 
Ubuntu) but not on another (Guix System), when they are both using the same 
channels.scm file.

Any ideas are welcome.

Thanks,
  Gary

Steve George  writes:

> Hi Gary,
>
> Have you tried building an existing package in the archive (e.g using 
> --check), so that would remove the chance that it's something with the 
> package definition?
>
> If it's a general problem with 'guix build' do you also have a problem with 
> 'guix shell'. The main difference in the install now is that it's done 
> without root permissions, I had some problems getting this right on an 
> existing install.
>
> Steve / Futurile
>
> On Wed, Jan 28, 2026 at 09:10:02PM +0700, Gary Johnson wrote:
>> Hi Guix,
>> 
>> I recently installed Guix onto a new Ubuntu VM using the standard 
>> guix-install.sh script. Now on this VM, I cannot successfully build packages 
>> that do build correctly on my own machine.
>> 
>> While one might expect that I am just running different versions of Guix on 
>> each machine, this shouldn't be the case because I am using the same 
>> channels.scm file on both computers via the `guix time-machine` command. 
>> I've never seen different behavior between two machines running the same 
>> Guix version and building the same packages before, so I am utterly 
>> mystified.
>> 
>> Here's the error I get on my new VM when building a package:
>> 
>> ===
>> 
>> starting phase `install-license-files'
>> error: in phase 'install-license-files': uncaught exception:
>> match-error "match" "no matching pattern" #f 
>> phase `install-license-files' failed after 0.0 seconds
>> Backtrace:
>>9 (primitive-load "/gnu/store/mbyp0pi1lbcqzw22mv0bjpabqis…")
>> In guix/build/gnu-build-system.scm:
>> 972:2  8 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
>> In ice-9/boot-9.scm:
>>   1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
>> In srfi/srfi-1.scm:
>> 634:9  6 (for-each # …)
>> In ice-9/boot-9.scm:
>>   1752:10  5 (with-exception-handler _ _ #:unwind? _ # _)
>> In guix/build/gnu-build-system.scm:
>>993:23  4 (_)
>> 889:7  3 (install-license-files #:outputs _ #:license-file-regexp …)
>> 881:4  2 (_)
>> In ice-9/boot-9.scm:
>>   1685:16  1 (raise-exception _ #:continuable? _)
>>   1685:16  0 (raise-exception _ #:continuable? _)
>> 
>> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>> Throw to key `match-error' with args `("match" "no matching pattern" #f)'.
>> build process 11 exited with status 256
>> 
>> ===
>> 
>> Here is one of the many offending files that are all failing for me like 
>> this:
>> 
>> (define geoserver-css-plugin
>>   (package
>>(name "geoserver-css-plugin")
>>(version "2.19.6")
>>(source (origin
>> (method url-fetch)
>> (uri (string-append 
>> "https://sourceforge.net/projects/geoserver/files/GeoServer/"; version
>> "/extensions/geoserver-" version 
>> "-css-plugin.zip"))
>> (sha256 (base32 
>> "06h2avzqp

Re: Guix build fails on phase install-license-files

2026-01-29 Thread Daniel Littlewood

Hi Gary,

At first I was surprised to see gnu-build-system in the traceback, but 
it turns out copy-build-system is implemented in terms of 
gnu-build-system (I did not know this, maybe you did). Looking at the 
procedure install-license-files in gnu-build-system, there are a couple 
of calls to match which could be failing. If I'm reading the traceback 
correctly, it points to line 881, which is the call to match in 
find-source-directory, quoted below.


  (define (find-source-directory package)
    ;; For an out-of-source build, guess the source directory location
    ;; relative to the current directory.  Return #f on failure.
    (match (scandir ".."
                    (lambda (file)
                      (and (not (member file '("." ".." "build")))
                           (file-is-directory?
                            (string-append "../" file)
      (()                                         ;hmm, no source
       #f)
      ((source)                                   ;only one other file
       (string-append "../" source))
      ((directories ...)                          ;pick the most likely one
       ;; This happens for example with libstdc++, which lives within 
the GCC

       ;; source tree.
       (any (lambda (directory)
              (and (string-prefix? package directory)
                   (string-append "../" directory)))
            directories

This procedure is apparently only called when out-of-source? is true, 
and I am not sure what that means. Regardless, if (match (scandir ...)) 
does not match the given patterns, it must not be returning a list (and 
the traceback confirms this; it is in fact returning #f). I suppose this 
indicates that scandir failed for some reason, for instance that .. is 
not readable. Indeed my copy of the guile manual (page 743) confirms 
this (it cannot be the case that .. is some other type of file, so it 
must be an unreadable directory).



Return #f when name is unreadable or is not a directory.


This explains the error at least - the match call does not handle #f. 
This does however leave open some questions I do not have an answer for. 
I am not sure what .. is in this context. Perhaps /gnu/store? I think 
that can't be it, because searching the entire store for a license file 
in one package would be terribly wasteful. I guess .. must be the 
checked out source tree. But then how can it not be readable?


I hope this debugging is helpful, although I am still confused.

Best wishes,

Dan

On 28/01/2026 14:10, Gary Johnson wrote:

Hi Guix,

I recently installed Guix onto a new Ubuntu VM using the standard 
guix-install.sh script. Now on this VM, I cannot successfully build packages 
that do build correctly on my own machine.

While one might expect that I am just running different versions of Guix on 
each machine, this shouldn't be the case because I am using the same 
channels.scm file on both computers via the `guix time-machine` command. I've 
never seen different behavior between two machines running the same Guix 
version and building the same packages before, so I am utterly mystified.

Here's the error I get on my new VM when building a package:

===

starting phase `install-license-files'
error: in phase 'install-license-files': uncaught exception:
match-error "match" "no matching pattern" #f
phase `install-license-files' failed after 0.0 seconds
Backtrace:
9 (primitive-load "/gnu/store/mbyp0pi1lbcqzw22mv0bjpabqis…")
In guix/build/gnu-build-system.scm:
 972:2  8 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
   1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
 634:9  6 (for-each # …)
In ice-9/boot-9.scm:
   1752:10  5 (with-exception-handler _ _ #:unwind? _ # _)
In guix/build/gnu-build-system.scm:
993:23  4 (_)
 889:7  3 (install-license-files #:outputs _ #:license-file-regexp …)
 881:4  2 (_)
In ice-9/boot-9.scm:
   1685:16  1 (raise-exception _ #:continuable? _)
   1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Throw to key `match-error' with args `("match" "no matching pattern" #f)'.
build process 11 exited with status 256

===

Here is one of the many offending files that are all failing for me like this:

(define geoserver-css-plugin
   (package
(name "geoserver-css-plugin")
(version "2.19.6")
(source (origin
 (method url-fetch)
 (uri (string-append 
"https://sourceforge.net/projects/geoserver/files/GeoServer/"; version
 "/extensions/geoserver-" version 
"-css-plugin.zip"))
 (sha256 (base32 
"06h2avzqps4dv9lwpck14v4cpk511z1mh13d3w5ii1153rcqdihb"
(build-system copy-build-system)
(arguments '(#:install-plan '(("." "./" #:exclude 
("environme

Re: Guix build fails on phase install-license-files

2026-01-28 Thread Steve George
Hi Gary,

Have you tried building an existing package in the archive (e.g using --check), 
so that would remove the chance that it's something with the package definition?

If it's a general problem with 'guix build' do you also have a problem with 
'guix shell'. The main difference in the install now is that it's done without 
root permissions, I had some problems getting this right on an existing install.

Steve / Futurile

On Wed, Jan 28, 2026 at 09:10:02PM +0700, Gary Johnson wrote:
> Hi Guix,
> 
> I recently installed Guix onto a new Ubuntu VM using the standard 
> guix-install.sh script. Now on this VM, I cannot successfully build packages 
> that do build correctly on my own machine.
> 
> While one might expect that I am just running different versions of Guix on 
> each machine, this shouldn't be the case because I am using the same 
> channels.scm file on both computers via the `guix time-machine` command. I've 
> never seen different behavior between two machines running the same Guix 
> version and building the same packages before, so I am utterly mystified.
> 
> Here's the error I get on my new VM when building a package:
> 
> ===
> 
> starting phase `install-license-files'
> error: in phase 'install-license-files': uncaught exception:
> match-error "match" "no matching pattern" #f 
> phase `install-license-files' failed after 0.0 seconds
> Backtrace:
>9 (primitive-load "/gnu/store/mbyp0pi1lbcqzw22mv0bjpabqis…")
> In guix/build/gnu-build-system.scm:
> 972:2  8 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
> In ice-9/boot-9.scm:
>   1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
> In srfi/srfi-1.scm:
> 634:9  6 (for-each # …)
> In ice-9/boot-9.scm:
>   1752:10  5 (with-exception-handler _ _ #:unwind? _ # _)
> In guix/build/gnu-build-system.scm:
>993:23  4 (_)
> 889:7  3 (install-license-files #:outputs _ #:license-file-regexp …)
> 881:4  2 (_)
> In ice-9/boot-9.scm:
>   1685:16  1 (raise-exception _ #:continuable? _)
>   1685:16  0 (raise-exception _ #:continuable? _)
> 
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> Throw to key `match-error' with args `("match" "no matching pattern" #f)'.
> build process 11 exited with status 256
> 
> ===
> 
> Here is one of the many offending files that are all failing for me like this:
> 
> (define geoserver-css-plugin
>   (package
>(name "geoserver-css-plugin")
>(version "2.19.6")
>(source (origin
> (method url-fetch)
> (uri (string-append 
> "https://sourceforge.net/projects/geoserver/files/GeoServer/"; version
> "/extensions/geoserver-" version 
> "-css-plugin.zip"))
> (sha256 (base32 
> "06h2avzqps4dv9lwpck14v4cpk511z1mh13d3w5ii1153rcqdihb"
>(build-system copy-build-system)
>(arguments '(#:install-plan '(("." "./" #:exclude 
> ("environment-variables")
>(native-inputs (list unzip))
>(home-page 
> "https://docs.geoserver.org/latest/en/user/styling/css/install.html";)
>(synopsis "GeoServer CSS Plugin")
>(description "The GeoServer CSS Plugin enables you to write layer styles 
> using CSS instead of SLD.")
>(license gpl2)))
> 
> In order to get them to build I have to modify their build phases like so:
> 
> (define geoserver-css-plugin
>   (package
>(name "geoserver-css-plugin")
>(version "2.19.6")
>(source (origin
> (method url-fetch)
> (uri (string-append 
> "https://sourceforge.net/projects/geoserver/files/GeoServer/"; version
> "/extensions/geoserver-" version 
> "-css-plugin.zip"))
> (sha256 (base32 
> "06h2avzqps4dv9lwpck14v4cpk511z1mh13d3w5ii1153rcqdihb"
>(build-system copy-build-system)
>(arguments '(#:phases (modify-phases %standard-phases
> (delete 'install-license-files))
> #:install-plan '(("." "./" #:exclude 
> ("environment-variables")
>(native-inputs (list unzip))
>(home-page 
> "https://docs.geoserver.org/latest/en/user/styling/css/install.html";)
>(synopsis "GeoServer CSS Plugin")
>(description "The GeoServer CSS Plugin enables you to write layer styles 
> using CSS instead of SLD.")
>(license gpl2)))
> 
> Does anybody have any idea what could be going on here?
> 
> Thanks,
>   Gary
> 
> -- 
> GPG Key ID: C4FBEDBD
> Use `gpg --search-keys [email protected]' to find me
> Protect yourself from surveillance: https://emailselfdefense.fsf.org
> ===
> ()  ascii ribbon campaign - against html e-mail
> /\  www.asciiribbon.org   - against proprietary attachments
> 
> Why is HTML email a security nightmare? See https://useplaintext.email/
> 
> Please avoid sending me MS-Office attachments.
>

Guix build fails on phase install-license-files

2026-01-28 Thread Gary Johnson
Hi Guix,

I recently installed Guix onto a new Ubuntu VM using the standard 
guix-install.sh script. Now on this VM, I cannot successfully build packages 
that do build correctly on my own machine.

While one might expect that I am just running different versions of Guix on 
each machine, this shouldn't be the case because I am using the same 
channels.scm file on both computers via the `guix time-machine` command. I've 
never seen different behavior between two machines running the same Guix 
version and building the same packages before, so I am utterly mystified.

Here's the error I get on my new VM when building a package:

===

starting phase `install-license-files'
error: in phase 'install-license-files': uncaught exception:
match-error "match" "no matching pattern" #f 
phase `install-license-files' failed after 0.0 seconds
Backtrace:
   9 (primitive-load "/gnu/store/mbyp0pi1lbcqzw22mv0bjpabqis…")
In guix/build/gnu-build-system.scm:
972:2  8 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
  1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
634:9  6 (for-each # …)
In ice-9/boot-9.scm:
  1752:10  5 (with-exception-handler _ _ #:unwind? _ # _)
In guix/build/gnu-build-system.scm:
   993:23  4 (_)
889:7  3 (install-license-files #:outputs _ #:license-file-regexp …)
881:4  2 (_)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Throw to key `match-error' with args `("match" "no matching pattern" #f)'.
build process 11 exited with status 256

===

Here is one of the many offending files that are all failing for me like this:

(define geoserver-css-plugin
  (package
   (name "geoserver-css-plugin")
   (version "2.19.6")
   (source (origin
(method url-fetch)
(uri (string-append 
"https://sourceforge.net/projects/geoserver/files/GeoServer/"; version
"/extensions/geoserver-" version 
"-css-plugin.zip"))
(sha256 (base32 
"06h2avzqps4dv9lwpck14v4cpk511z1mh13d3w5ii1153rcqdihb"
   (build-system copy-build-system)
   (arguments '(#:install-plan '(("." "./" #:exclude 
("environment-variables")
   (native-inputs (list unzip))
   (home-page 
"https://docs.geoserver.org/latest/en/user/styling/css/install.html";)
   (synopsis "GeoServer CSS Plugin")
   (description "The GeoServer CSS Plugin enables you to write layer styles 
using CSS instead of SLD.")
   (license gpl2)))

In order to get them to build I have to modify their build phases like so:

(define geoserver-css-plugin
  (package
   (name "geoserver-css-plugin")
   (version "2.19.6")
   (source (origin
(method url-fetch)
(uri (string-append 
"https://sourceforge.net/projects/geoserver/files/GeoServer/"; version
"/extensions/geoserver-" version 
"-css-plugin.zip"))
(sha256 (base32 
"06h2avzqps4dv9lwpck14v4cpk511z1mh13d3w5ii1153rcqdihb"
   (build-system copy-build-system)
   (arguments '(#:phases (modify-phases %standard-phases
(delete 'install-license-files))
#:install-plan '(("." "./" #:exclude 
("environment-variables")
   (native-inputs (list unzip))
   (home-page 
"https://docs.geoserver.org/latest/en/user/styling/css/install.html";)
   (synopsis "GeoServer CSS Plugin")
   (description "The GeoServer CSS Plugin enables you to write layer styles 
using CSS instead of SLD.")
   (license gpl2)))

Does anybody have any idea what could be going on here?

Thanks,
  Gary

-- 
GPG Key ID: C4FBEDBD
Use `gpg --search-keys [email protected]' to find me
Protect yourself from surveillance: https://emailselfdefense.fsf.org
===
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

Why is HTML email a security nightmare? See https://useplaintext.email/

Please avoid sending me MS-Office attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html