Comments

Log in with itch.io to leave a comment.

Hi, I'm trying to build this "from source" by running `guix build -f guix.scm` on f022cdbd6cae6fa8c8d7596be5812fbf45ca6a9a, but I get the following error:

starting phase `unpack'
Backtrace:
           9 (primitive-load "/gnu/store/y9smaha1da8szrjd0y7dd0v0d59…")
In ice-9/eval.scm:
   191:35  8 (_ #f)
In guix/build/gnu-build-system.scm:
    838:2  7 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
  1736:10  6 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
   857:16  5 (every1 #<procedure 7ffff59b1b60 at guix/build/gnu-bui…> …)
In guix/build/gnu-build-system.scm:
   847:30  4 (_ _)
    151:6  3 (unpack #:source _)
In ice-9/boot-9.scm:
  1966:24  2 (_ _)
In unknown file:
           1 (stat #f #<undefined>)
In ice-9/boot-9.scm:
  1669:16  0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
In procedure stat: Wrong type argument in position 1 (expecting open file port): #f
builder for `/gnu/store/is4874z0z2i9fn2n6jsqlhjshf3vzz3m-spring-lisp-game-jam-2021-0.1.drv' failed with exit code 1

The following patch fixes it:

From d8321a5792811021f5e420ebf9cb6a3d35e8796e Mon Sep 17 00:00:00 2001
From: Leo Prikler <leo.prikler@student.tugraz.at>
Date: Mon, 26 Apr 2021 16:54:26 +0200
Subject: [PATCH] Allow building from source.
---
 guix.scm | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/guix.scm b/guix.scm
index 5338156..924e8f2 100644
--- a/guix.scm
+++ b/guix.scm
@@ -2,6 +2,7 @@
              (srfi srfi-1)
              (guix build-system gnu)
              (guix download)
+             (guix gexp)
              (guix git-download)
              ((guix licenses) #:prefix license:)
              (guix packages)
@@ -175,10 +176,16 @@ yet.")
      (home-page "https://git.dthompson.us/starling.git")
      (license license:gpl3+))))
+(define %source-dir (dirname (current-filename)))
+
 (package
   (name "spring-lisp-game-jam-2021")
   (version "0.1")
-  (source #f)
+  (source
+   (local-file %source-dir #:recursive? #t
+               #:select? (if (file-exists? (string-append %source-dir "/.git"))
+                             (git-predicate %source-dir)
+                             (const #t))))
   (build-system gnu-build-system)
   (native-inputs
    `(("autoconf" ,autoconf)
-- 
2.31.1

`guix build -f` currently isn't supported. For now run `guix environment -l guix.scm` and build from source that way. Instructions are in the README. I can try to make guix.scm a true buildable package soon.

Hacking guix.scm for an ad-hoc environment felt like a better idea at the time, so I did that. On a somewhat related note, do you really need to patch Guile itself? My gut instinct tells me you should be able to ship a patched GOOPS with starling similarly to how I used a "magic" module to introduce pre-release Guile-SDL2 functionality to Tsukundere.

I suppose I could include a modified copy of goops.scm and take advantage of load order to have my version loaded.  Might try that later. At the time I wanted to test a full Guile build since I submitted the patch upstream and wanted a true integration test, but the patch got merged awhile ago so it's no longer necessary. Thanks for the suggestion.

Hi! I tried to run the game but I faced issues.
First I tried to run ./launch-game and had following error:

/home/torkut/Game/the-test-subject/bin/guile: error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory

Then I tried to build the game from source code, I used instructions from README. The built run without issues, but then I launched ./run-game I got an error:

./run-game
Backtrace:
In ice-9/boot-9.scm:
  1736:10 17 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
          16 (apply-smob/0 #<thunk 7f17bb912ea0>)
In ice-9/boot-9.scm:
    718:2 15 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
    619:8 14 (_ #(#(#<directory (guile-user) 7f17bb90cc80>)))
In ice-9/command-line.scm:
   185:18 13 (_ #<input: string 7f17bb907850>)
In unknown file:
          12 (eval (launch-game) #<directory (guile-user) 7f17bb90cc…>)
In starling/kernel.scm:
   369:10 11 (_ #<kernel name: #f id: 0> #<procedure 7f17bb3e5148 at…>)
In starling/node.scm:
    336:2 10 (_ #<kernel name: #f id: 0> #<game name: #f id: 8>)
In ice-9/boot-9.scm:
   260:13  9 (for-each #<procedure 7f17b9c5bc60 at starling/node.sc…> …)
In starling/node.scm:
   344:16  8 (_ #<game name: #f id: 8>)
In test-subject/game.scm:
   1104:2  7 (_ #<game name: #f id: 8>)
In chickadee/scripting/script.scm:
     93:4  6 (spawn-script _)
    85:13  5 (_)
In test-subject/game.scm:
    155:2  4 (_ #<game name: #f id: 8>)
In starling/node.scm:
    336:2  3 (_ #<game name: #f id: 8> #<sprite name: intro-lightne…> …)
In ice-9/boot-9.scm:
   260:13  2 (for-each #<procedure 7f17b9c69d80 at starling/node.sc…> …)
In starling/node.scm:
   344:16  1 (_ #<sprite name: intro-lightness id: 13>)
In starling/node-2d.scm:
   597:25  0 (_ #<sprite name: intro-lightness id: 13>)
starling/node-2d.scm:597:25: In procedure texture-width: Wrong type argument: #<<asset> 7f17b7e1a600>


Maybe I'm missing something, do you have a clue what happened?
I run this on Debian using Guix package manager.

Cheers! (and happy debugging :) )

(1 edit)

Ugh! Sorry! Could you try renaming lib/libffi.so.6 to lib/libffi.so.7 and see if the binary bundle works?  If so I can upload a fixed build (if that's permitted, not sure.)

The Guix error is confusing because you should be reproducing my exact dev environment. I pushed a commit that disables developer mode in the run-game script. Maybe it will work now? Shot in the dark.

Thanks for trying.

1. After renaming lib/libffi.so.6 to lib/libffi.so.7 the following errors happend:

./launch-game
/home/torkut/Game/the-test-subject/bin/guile: /lib/x86_64-linux-gnu/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /home/torkut/Game/the-test-subject/lib/libguile-3.0.so.1)

/home/torkut/Game/the-test-subject/bin/guile: /home/torkut/Game/the-test-subject/lib/libffi.so.7: no version information available (required by /home/torkut/Game/the-test-subject/lib/libguile-3.0.so.1)

/home/torkut/Game/the-test-subject/bin/guile: /home/torkut/Game/the-test-subject/lib/libffi.so.7: no version information available (required by /home/torkut/Game/the-test-subject/lib/libguile-3.0.so.1)

/home/torkut/Game/the-test-subject/bin/guile: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/torkut/Game/the-test-subject/lib/libguile-3.0.so.1)

2. Pulled the update in the repo and tried again. The traceback

Backtrace:
In ice-9/eval.scm:
   721:20 19 (primitive-eval _)
In ice-9/psyntax.scm:
  1241:36 18 (expand-top-sequence _ _ _ #f _ _ _)
  1233:19 17 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   285:10 16 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
In ice-9/boot-9.scm:
  3898:20 15 (process-use-modules _)
   222:17 14 (map1 (((test-subject game))))
  3899:31 13 (_ ((test-subject game)))
  3297:17 12 (resolve-interface (test-subject game) #:select _ #:hide …)
In ice-9/threads.scm:
    390:8 11 (_ _)
In ice-9/boot-9.scm:
  3223:13 10 (_)
In ice-9/threads.scm:
    390:8  9 (_ _)
In ice-9/boot-9.scm:
  3507:20  8 (_)
   2806:4  7 (save-module-excursion _)
  3527:26  6 (_)
In unknown file:
           5 (primitive-load-path "test-subject/game" #<procedure 7f…>)
In test-subject/game.scm:
     31:0  4 (_)
In oop/goops.scm:
   2852:4  3 (_ _ . _)
In srfi/srfi-1.scm:
    634:9  2 (for-each #<procedure 7f49b648f620 at starling/gui.scm…> …)
    634:9  1 (for-each #<procedure 7f49b648f560 at starling/gui.scm…> …)
In starling/gui.scm:
   246:34  0 (_ _)
starling/gui.scm:246:34: non-themeable slot for class #<<meta-widget> <widget> 7f49b646c900> font

Something changed, this is a different error from what I can understand.


(1 edit)

Thanks for the information. Unfortunately I don't think these are easily fixable for this jam, but it's valuable information to have for the future.


What distro and version are you running? I think your system's glibc is too old to work with the binaries provided.