[PATCH] gnu: supercollider: Enable SCClassLibrary library lookup.

  • Done
  • quality assurance status badge
Details
2 participants
  • goodoldpaul
  • Mathieu Othacehe
Owner
unassigned
Submitted by
goodoldpaul
Severity
normal

Debbugs page

goodoldpaul wrote 5 years ago
(address . guix-patches@gnu.org)
5985840382a5ec1211b1882c9f07f16f@autistici.org
Hi,
This patch fixes the error that prevents SuperCollider from starting. On
Guix 229f4fa9522fb56b014ee9c0d8111e8fb6da764d and after having followed
instructions from [0], the behavior is the following:

orang3@frastanato ~/code/guix$ guix environment --ad-hoc jack
supercollider qjackctl
substitute: updating substitutes from 'https://ci.guix.gnu.org'...
100.0%
The following derivation will be built:
/gnu/store/zzrq8li1plk9ll7yx48lhf27ffk5fvy0-profile.drv
The following profile hooks will be built:
/gnu/store/jr02fwv31b0a07fcfkalgjjv1bq7ayx8-manual-database.drv
/gnu/store/m4zril057cr1m55g7d56q9wp2mrbhhxg-fonts-dir.drv
/gnu/store/mrfrb81vzcjxnj321fzi8nqkpvx6s5zw-info-dir.drv
/gnu/store/spp41dzc0bmpbr9wvif8r4r2fs02zgfv-ca-certificate-bundle.drv
building CA certificate bundle...
building fonts directory...
building directory of Info manuals...
building database for manual pages...
building profile with 3 packages...

orang3@frastanato ~/code/guix [env]$ sclang
SC FFT global init: cosTable initialised.
compiling class library...
Found 718 primitives.
Compiling directory
'/gnu/store/rrmvq9gzlvijliwlm35xml65jjqq8s29-supercollider-3.10.4/share/SuperCollider/Extensions'
Compiling directory
'/home/orang3/.local/share/SuperCollider/Extensions'
ERROR: There is a discrepancy.
numClassDeps 0 gNumClasses 82
sc3> s.boot
Library has not been compiled successfully.

The implemented solution is to hardcode SCClassLibrary's path into
SuperCollider.

[0]:
From f825d1872628eea6f29ee7a92b8bbc339935dbcf Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Fri, 1 May 2020 00:24:52 +0200
Subject: [PATCH] gnu: supercollider: Enable SCClassLibrary library lookup.

This hardcodes the path of SCClassLibrary to fix a lookup error that was
preventing SCServer's boot.

* gnu/packages/audio.scm (supercollider): [source]: Fetch via git.
[configure-flags]: Build Release target.
[phases]: ...hardcode path using substitute* in a new phase.
---
gnu/packages/audio.scm | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)

Toggle diff (60 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index e2e276723b..badcf3d5f6 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2294,18 +2295,19 @@ background file post-processing.")
(name "supercollider")
(version "3.10.4")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/supercollider/supercollider"
- "/releases/download/Version-" version
- "/SuperCollider-" version "-Source-linux.tar.bz2"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/supercollider/supercollider.git")
+ (commit (string-append "Version-" version))
+ (recursive? #t))) ;; for nova-simd, nova-tt, hidapi, TLSF, oscpack
+ (file-name (git-file-name name version))
(sha256
(base32
- "0x11g3pfw11m6v18qfpfl5w99dbmf73g4z7wvwhrj1a4qv2dn084"))))
+ "0xdg1dx0y0agircnkn4bg3jpw184xc5pn28k7rrzgjh1rdnyzz24"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
- "-DSC_QT=off"
+ "-DSC_QT=off" "-DCMAKE_BUILD_TYPE=Release"
"-DSC_EL=off") ;scel is packaged individually as
;emacs-scel
#:modules ((guix build utils)
@@ -2343,7 +2345,17 @@ background file post-processing.")
(("add_subdirectory\\(sclang\\)")
""))
(delete-file "testsuite/sclang/CMakeLists.txt")
- #t)))))
+ #t))
+ (add-after 'disable-broken-tests 'patch-scclass-dir
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (scclass-dir
+ (string-append out "/share/SuperCollider/SCClassLibrary")))
+ (substitute* "lang/LangSource/SC_LanguageConfig.cpp"
+ (((string-append "SC_Filesystem::instance\\(\\)\\.getDirectory"
+ "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
+ (string-append "Path(\"" scclass-dir "\")")))
+ #t))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
--
2.26.2
Mathieu Othacehe wrote 5 years ago
Re: [bug#40989] [PATCH] gnu: supercollider: Enable SCClassLibrary library lookup.
(address . goodoldpaul@autistici.org)(address . 40989-done@debbugs.gnu.org)
87a72pzabj.fsf@gmail.com
Hello,

Toggle quote (5 lines)
> Library has not been compiled successfully.
>
> The implemented solution is to hardcode SCClassLibrary's path into
> SuperCollider.

Thanks for this patch! I wrapped a few lines, edited a bit the commit
message and pushed.

Mathieu
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 40989@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 40989
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help