help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Help-Guix Digest, Vol 88, Issue 36


From: Gottfried
Subject: Re: Help-Guix Digest, Vol 88, Issue 36
Date: Sun, 19 Mar 2023 16:57:38 +0000

Hi,

thanks for your help.

I tested, tried and used AFAIU you the old version of Musescore,
but it wanted to build Musescore 4, which I saw only at the end.

but it failed:

gfp@Tuxedo ~$ guix time-machine --commit=6a54715988aee884bbb5f81e1b718a27ff771ec4 -- shell musescore Kanal „guix“ wird vom Git-Repository auf https://git.savannah.gnu.org/git/guix.git“ aktualisiert … substitute: Liste der Substitute von „https://ci.guix.gnu.org“ wird aktualisiert … 100.0% substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ wird aktualisiert … substitute: Liste der Substitute von https://bordeaux.guix.gnu.org“ wird aktualisiert … 100.0% substitute: Liste der Substitute von „https://ci.guix.gnu.org“ wird aktualisiert … 100.0% substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ wird aktualisiert … substitute: Liste der Substitute von https://bordeaux.guix.gnu.org“ wird aktualisiert … 100.0% substitute: Liste der Substitute von „https://ci.guix.gnu.org“ wird aktualisiert … 100.0% substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ wird aktualisiert … substitute: Liste der Substitute von https://bordeaux.guix.gnu.org“ wird aktualisiert … 100.0% /gnu/store/0y3w5sly6rw9yc0shqvyzkl8vjgr9gdf-module-import.drv wird erstellt … /gnu/store/whpg974y1nj7j1gddhfg0b15k4xpvx9n-module-import.drv wird erstellt … /gnu/store/nq8vmvriv2h095apywf8k4bb4z0jjpih-module-import-compiled.drv wird erstellt … /gnu/store/6qd26vdgd11vjlv0lqp7h5z814qc82yi-module-import-compiled.drv wird erstellt … /gnu/store/mi4klx1g21qwa4i5kjah6gbavncjgpm0-compute-guix-derivation.drv wird erstellt …
Computing Guix derivation for 'x86_64-linux'... /
substitute: Liste der Substitute von „https://ci.guix.gnu.org“ wird aktualisiert … 0.0%Backtrace:
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 17 (with-exception-handler _ _ #:unwind? _ # _)
substitute: In unknown file:
substitute:           16 (apply-smob/0 #<thunk 7f711b7102a0>)
substitute: In ice-9/boot-9.scm:
substitute: 724:2 15 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
substitute: In ice-9/eval.scm:
substitute:     619:8 14 (_ #(#(#<directory (guile-user) 7f711b715c80>)))
substitute: In guix/ui.scm:
substitute:    2279:7 13 (run-guix . _)
substitute:   2242:10 12 (run-guix-command _ . _)
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 11 (with-exception-handler _ _ #:unwind? _ # _)
substitute:   1752:10 10 (with-exception-handler _ _ #:unwind? _ # _)
substitute: In guix/scripts/substitute.scm:
substitute:    844:18  9 (_)
substitute: 348:26 8 (process-query #<output: file 4> _ #:cache-urls _ #:acl _)
substitute: In guix/substitutes.scm:
substitute: 382:27 7 (lookup-narinfos/diverse _ _ #<procedure 7f711b7b1ea0 …> …)
substitute:    339:31  6 (lookup-narinfos _ _ #:open-connection _ # _)
substitute:    262:26  5 (fetch-narinfos _ _ #:open-connection _ # _)
substitute: In ice-9/boot-9.scm:
substitute:   1685:16  4 (raise-exception _ #:continuable? _)
substitute:   1685:16  3 (raise-exception _ #:continuable? _)
substitute: 1780:13 2 (_ #<&compound-exception components: (#<&error> #<&orig…>)
substitute:   1685:16  1 (raise-exception _ #:continuable? _)
substitute:   1685:16  0 (raise-exception _ #:continuable? _)
substitute:
substitute: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
substitute: In procedure write_wait_fd: unimplemented
guix time-machine: Fehler: `/gnu/store/nn61n9c91vvxf95fs5n3ldxqf3klnsgf-guix-1.4.0-4.01fd830/bin/guix substitute' died unexpectedly

Kind regards

Gottfried





Am 19.03.23 um 16:06 schrieb Martin Castillo:
Hi,

Am 19.03.23 um 13:15 schrieb Gottfried:
Hi,

thanks for trying...

I copied the
"Commit 6a54715988aee884bbb5f81e1b718a27ff771ec4"
into my musik.scm:
..................................................................
;; Manifest Musik Programme
(use-modules (gnu packages music)
              (guix packages))

(define musescore-3.6.2
   (package
     (inherit musescore)
     (version "3.6.2")
     (Commit 6a54715988aee884bbb5f81e1b718a27ff771ec4)))

;; combine both manifest lists:
(concatenate-manifests
   (list
     (packages->manifest (list musescore-3.6.2))
(specifications->manifest '("ardour" "audacious" "audacity" "obs" "vlc"))))

.........................................................................
and I had a go
I got this message:

gfp@Tuxedo ~$ guix package -p /home/gfp/Projekte/Musik/guix-profil -m /home/gfp/Projekte/Musik/musik.scm /home/gfp/Projekte/Musik/musik.scm:6:2: Fehler: (package (inherit musescore) (version "3.6.2") (Commit #{6a54715988aee884bbb5f81e1b718a27ff771ec4}#)): extraneous field initializers (Commit)

.....................................................................
So I have to add it somewhere else...

The commits I mentioned are from guix, not from the musescore project. You put it in the musescore definition, so guix downloaded musescore and tried to switch to that commit/version of musescore. But it is not a commit of musecore, so that is indeed the wrong place.

(And the (commit ) field belongs inside an (origin ) field...)

So my original suggestion was to copy the musescore package definition from one of those commits from the guix project
http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/music.scm?id=6a54715988aee884bbb5f81e1b718a27ff771ec4#n4860

and hope that all dependencies of that package definition are still valid and compatible in the current guix. You might need to copy some of the use-modules lines at the top of the linked file into your manifest.

But I just had another idea: We want to install software from an older guix version: That's what guix time-machine is for! guix time-machine --commit=6a54715988aee884bbb5f81e1b718a27ff771ec4 -- package -m manifest.scm -p /Pfad/zu/Musik/Musik
or to test it first:
guix time-machine --commit=6a54715988aee884bbb5f81e1b718a27ff771ec4 -- shell musescore

I tried it with the newer commit ced3be2b562866b82f97a530cd66610c84c381f7 to get musescore with newer dependencies. (That commit is the parent of 9f93bcd1862c76d7ff30da6f712c9bd2912b8346, which changed to musescore 4.0.): guix time-machine --commit=ced3be2b562866b82f97a530cd66610c84c381f7 -- shell musescore

The first time time-machine failed to build the older version of guix. It used up to much ram and was killed by the OOM-killer. (I'm using it inside a vm.) Otherwise it should work.

A downside of this approach is that you cannot mix the older musescore with the newer versions of vlc etc in the same profile.



Martin

kind regards

Gottfried


Date: Sat, 18 Mar 2023 13:44:08 +0100
From: Martin Castillo <castilma@uni-bremen.de>
To: help-guix@gnu.org
Subject: Re: creating a manifest
Message-ID: <a9fc4dc2-d1a1-4dc7-5da4-aa24837f2d21@uni-bremen.de>
Content-Type: text/plain; charset=UTF-8; format=flowed

I noticed an error.


For that you need to instead create a new package definition for
musescore version 3.6.2. The info page gives you an example, which you
just adjust. Using guix edit musescore you see how musescore is defined.
You can notice, there is a version field. So lets create a new package
with adjusted version:

(define musescore-3.6.2
    (package
      (inherit musescore)
      (version "3.6.2")))

;; We create this manifest from a _package_, and not from a
;; _specification_ (which is just something like a string "musescore")
(packages->manifest (list musescore-3.6.2))


While building guix says it's downloading musescore-4.0.1. Maybe it
switches to the respective branch before building.

I even tried explicitly writing the origin entry of
(define musescore-3.6.2
    (package

      (inherit musescore)

      (version "3.6.2")
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/musescore/MuseScore";)
               (commit (string-append "v" "3.6.2"))))
         (file-name (git-file-name "musescore" "3.6.2"))
         (sha256
          (base32 "0x2aahpbvss3sjydcq6xdh198fmslgypixmd2gckfwjqzady662y"))
         (modules '((guix build utils)))
         (snippet
          '(begin
             ;; Remove unused libraries...
             (for-each delete-file-recursively
                       '("thirdparty/freetype"))
             ;; ... and precompiled binaries.
             (delete-file-recursively "src/diagnostics/crashpad_handler")
             (substitute* "src/diagnostics/CMakeLists.txt"
               (("install") "#install"))))))))

guix shell -m manifest.scm still says 4.0.1 and executing mscore fails:
[env]$ mscore --version
QEventLoop: Cannot be used without QApplication
QEventLoop: Cannot be used without QApplication
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even
though it was found.
This application failed to start because no Qt platform plugin could be
initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl,
offscreen, vnc, xcb.

Abgebrochen

So seems like in this case it's not so easy. (Well the current guix
packaged version is 4.0.1 so a major version change happened.)

One could try using the older package definition, which is available in
the git history of guix. Commit 6a54715988aee884bbb5f81e1b718a27ff771ec4
is the newest change to musescore with 3.6.2.
9f93bcd1862c76d7ff30da6f712c9bd2912b8346 switched to 4.0. So it's parent
commit should have the newest dependencies which might work with current
guix.
I don't have time right now, but you might want to copy such an older
package definition into your manifest.scm

Martin


--



Attachment: OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]