Package Details: akku 1.1.0-6

Git Clone URL: https://aur.archlinux.org/akku.git (read-only, click to copy)
Package Base: akku
Description: Language package manager for Scheme
Upstream URL: https://akkuscm.org/
Keywords: Scheme
Licenses: GPL-3.0-only
Submitter: baioc
Maintainer: baioc
Last Packager: baioc
Votes: 2
Popularity: 0.000000
First Submitted: 2020-04-06 00:10 (UTC)
Last Updated: 2026-07-05 21:40 (UTC)

Latest Comments

baioc commented on 2026-07-05 21:46 (UTC)

Hi @rubin55, thanks for the patch. I've changed it slightly and added it to release 1.1.0-6

Looking at upstream bug reports I found https://codeberg.org/guile/guile/issues/120 which appears to be similar in that occurrences of variables inside a macro were being resolved in the top-level when set! Similarly, that regression showed up on Guile 3.0.11 and cannot be reproduced with earlier versions (just like this compilation error).

However I think your comment isn't quite right when pointing the bug to valueless defines, since the current patch works as well and uses just that instead of #f as in your patch.

rubin55 commented on 2026-07-04 11:16 (UTC) (edited on 2026-07-04 11:25 (UTC) by rubin55)

This was not compiling with Guile 3.0.11. I came up with a patch. PKGBUILD:

diff --git a/PKGBUILD b/PKGBUILD
index 8277c39..c3e5c81 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,17 +7,25 @@ arch=('any')

 # version-specific information
 pkgver=1.1.0
-pkgrel=5
+pkgrel=6

 # dependencies are stated in https://gitlab.com/akkuscm/akku/-/blob/master/README.md
 depends=('git' 'curl' 'guile>=2.2')
 makedepends=('pkg-config' 'make')

 # source URLs for latest versions can be found at https://gitlab.com/akkuscm/akku/-/releases
-source=('https://gitlab.com/akkuscm/akku/uploads/819fd1f988c6af5e7df0dfa70aa3d3fe/akku-1.1.0.tar.gz')
-sha256sums=('12decdc8a2caba0f67dfcd57b65e4643037757e86da576408d41a5c487552c08')
+source=('https://gitlab.com/akkuscm/akku/uploads/819fd1f988c6af5e7df0dfa70aa3d3fe/akku-1.1.0.tar.gz'
+        'guile-3-define-values.patch')
+sha256sums=('12decdc8a2caba0f67dfcd57b65e4643037757e86da576408d41a5c487552c08'
+            'b5c7ec014e8154762dee0c4d07bf390856ed647dbbe7a851af38108bb10bfcf8')
 options=(!strip)

+prepare() {
+       cd "$pkgname-$pkgver"
+       # fix Guile >= 3.0.10 build failure in bundled (spells define-values)
+       patch -p1 < "$srcdir/guile-3-define-values.patch"
+}
+
 build() {
        cd "$pkgname-$pkgver"
        ./configure --prefix=/usr

And the spells define-values patch, guile-3-define-values.patch:

--- a/spells/define-values.scm
+++ b/spells/define-values.scm
@@ -28,28 +28,23 @@
   ;;@end defspec
   (define-syntax define-values
     (lambda (form)
-      ;; The temporaries generated for `dummy' are just a workaround
-      ;; for a psyntax bug in Guile.
       (syntax-case form ()
         ((_ () exp ...)
-         (with-syntax (((dummy) (generate-temporaries '(dummy))))
+         (syntax
+          (define dummy (begin exp ... 'dummy))))
+        ((_ (id ...) exp0 exp ...)
+         ;; The generated temporaries are only used as lambda
+         ;; parameters; the user ids are defined and then set! so that
+         ;; they can be exported.  Guile >= 3.0.10 leaks generated
+         ;; temporaries when they appear in valueless definitions, so
+         ;; we avoid that construct entirely.
+         (with-syntax (((tmp ...) (generate-temporaries (syntax (id ...)))))
            (syntax
-            (define dummy (begin exp ... 'dummy)))))
-   ((_ (id ...) exp0 exp ...)
-    ;; Mutable-ids are needed so that ids defined by
-    ;; define-values can be exported from a library (mutated
-    ;; variables cannot be exported).  This fix is due to Andre
-    ;; van Tonder.
-    (with-syntax (((mutable-id ...) (generate-temporaries (syntax (id ...))))
-              ((result ...)     (generate-temporaries (syntax (id ...))))
-                       ((dummy)          (generate-temporaries '(dummy))))
-      (syntax
-       (begin
-         (define mutable-id) ...
-         (define dummy
-       (call-with-values
+            (begin
+              (define id #f) ...
+              (define dummy
+                (call-with-values
                     (lambda () exp0 exp ...)
-         (lambda (result ...)
-           (set! mutable-id result) ...
-                    'dummy)))
-         (define id mutable-id) ...))))))))
+                  (lambda (tmp ...)
+                    (set! id tmp) ...
+                    'dummy)))))))))))

You mentioned a regression in Guile, do you have a link for that? It seems to me they actually fixed a long-standing issue.

baioc commented on 2026-07-03 19:02 (UTC)

Hey @shanoaice thanks for reporting.

Since there are no newer upstream release (and afaik Weinholt hasn't re-signed the v1.1.0 tarball), I've removed the expired GPG key.

I've reproduced the compilation error, and it seems to be caused by a regression in Guile. Once Guile is fixed, this pkgbuild recipe should work again.

shanoaice commented on 2026-06-06 03:37 (UTC)

Two problems: - GPG key in the PKGBUILD is revoked. - Doesn't compile:

    akku-1.1.0.tar.gz ... Passed
Backtrace:
In ice-9/r6rs-libraries.scm:
   311:14 19 (_ #<syntax spells> (#<syntax operations>) () (#<syntax object> #<syntax operation> #<syntax define-operation> #<syntax join>) (#<syntax:operations.scm:20:10 (rnrs base)> #<syntax:operations.scm:21:10 (rnrs lists)> #<syntax:operations.scm:22:10 (only #<syntax:operations.scm:22:16 (srfi :1 lists)> any)> #<syntax:operations.scm:23:10 (spells procedure-annotations)>) (#<syntax:operations.scm:26:0 (define-syntax %method-clauses->handler #<syntax:operations.scm:27:2 (syntax-rules …> …))
In ice-9/boot-9.scm:
   231:29 18 (map1 (#<syntax:operations.scm:20:10 (rnrs base)> #<syntax:operations.scm:21:10 (rnrs lists)> #<syntax:operations.scm:22:10 (only #<syntax:operations.scm:22:16 (srfi :1 lists)> any)> #<syntax:operations.scm:23:10 (spells procedure-annotations)>))
   231:29 17 (map1 (#<syntax:operations.scm:21:10 (rnrs lists)> #<syntax:operations.scm:22:10 (only #<syntax:operations.scm:22:16 (srfi :1 lists)> any)> #<syntax:operations.scm:23:10 (spells procedure-annotations)>))
   231:29 16 (map1 (#<syntax:operations.scm:22:10 (only #<syntax:operations.scm:22:16 (srfi :1 lists)> any)> #<syntax:operations.scm:23:10 (spells procedure-annotations)>))
   231:17 15 (map1 (#<syntax:operations.scm:23:10 (spells procedure-annotations)>))
  3381:17 14 (resolve-interface (spells procedure-annotations) #:select _ #:hide _ #:prefix _ #:renamer _ #:version _)
In ice-9/threads.scm:
    399:8 13 (_ _)
In ice-9/boot-9.scm:
  3307:13 12 (_)
In ice-9/threads.scm:
    399:8 11 (_ _)
In ice-9/boot-9.scm:
  3596:20 10 (_)
   2890:4  9 (save-module-excursion #<procedure 7f2c5f24be40 at ice-9/boot-9.scm:3597:21 ()>)
  3616:26  8 (_)
In unknown file:
           7 (primitive-load-path "spells/procedure-annotations" #<procedure 7f2c5faa4b80 at ice-9/boot-9.scm:3603:37 ()>)
In ice-9/eval.scm:
    619:8  6 (_ #f)
   626:19  5 (_ #<directory (spells procedure-annotations) 7f2c5f4380a0>)
    619:8  4 (_ #(#(#<directory (spells procedure-annotations) 7f2c5f4380a0>) #<procedure 7f2c5fba6ae0 at ice-9/eval.scm:336:13 (a b)> #<procedure 7f2c5fba6aa0 at ice-9/eval.scm:333:13 (a)>))
   627:25  3 (_ #(#(#<directory (spells procedure-annotations) 7f2c5f4380a0>) #<procedure 7f2c5fba6ae0 at ice-9/eval.scm:336:13 (a b)> #<procedure 7f2c5fba6aa0 at ice-9/eval.scm:333:13 (a)>))
   234:15  2 (proc #(#(#<directory (spells procedure-annotations) 7f2c5f4380a0>) #<procedure 7f2c5fba6ae0 at ice-9/eval.scm:336:13 (a b)> #<procedure 7f2c5fba6aa0 at ice-9/eval.scm:333:13 (a)>))
In unknown file:
           1 (%resolve-variable (8 . t-24e5d3f8e861790-9) #<directory (spells procedure-annotations) 7f2c5f4380a0>)
In ice-9/boot-9.scm:
  1705:22  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1705:22: In procedure raise-exception:
Unbound variable: t-24e5d3f8e861790-9
make: *** [Makefile:964:akku/lib/archive-maint.go] 错误 1
==> ERROR: A failure occurred in build().
    Aborting...

baioc commented on 2021-02-14 03:02 (UTC)

As of version 1.1.0, this should now work with Guile 3.0

erkin commented on 2020-10-10 23:11 (UTC)

The package refuses to build with Guile v3.0.4 even though the dependency clause says >= 2.2.