me
/
guix
Archived
1
0
Fork 0

gnu: solfege: Update to 3.23.5pre2.

* gnu/packages/music.scm (solfege): Update to 3.23.5pre2.
[source]: Use git.
[arguments]: Use gexps.  Remove trailing #t.
[phases]{patch-python-shebangs, wrap-program}: Use search-file-input.
{fix-version}: New phase.
[inputs]: Use new style.  Remove python-2 and python2-pygtk.  Add
python-wrapper and python-pygobject.
[native-inputs]: Add autoconf and automake.  Use latest texinfo.
Maxim Cournoyer 2022-04-30 00:52:53 -04:00
parent 984a04210a
commit 8ab2f519d4
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 70 additions and 57 deletions

View File

@ -2008,21 +2008,35 @@ Key features include:
(define-public solfege (define-public solfege
(package (package
(name "solfege") (name "solfege")
(version "3.22.2") (version "3.23.5pre2")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append (uri (git-reference
"mirror://gnu/solfege/solfege-" (url "https://git.savannah.gnu.org/git/solfege.git")
version ".tar.xz")) (commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1w25rxdbj907nsx285k9nm480pvy12w3yknfh4n1dfv17cwy072i")))) "1lmzp4kn0xh58yc8gzriz1i34g5qaa2xxrxzpmr7v9jyk19dqmcm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; xmllint attempts to download DTD (list
#:tests? #f ;xmllint attempts to download DTD
#:test-target "test" #:test-target "test"
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'set-version
(lambda _
(substitute* "autogen.sh"
(("python3 -c \"import tools.*create_versions_file.*")
(string-append "echo \"version_info = '"
#$version "' > solfege/_version.py\"\n")))
(substitute* "Makefile.in"
(("\\$\\(PYTHON) -c \"import tools.*create_versions_file.*")
"true\n"))
(substitute* "solfege/buildinfo.py.in"
(("from solfege._version import version_info")
"version_info = {'git_sha': 'N/A'}"))))
(add-after 'unpack 'fix-configuration (add-after 'unpack 'fix-configuration
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "default.config" (substitute* "default.config"
@ -2031,49 +2045,48 @@ Key features include:
(("/usr/bin/mpg123") "mpg123") (("/usr/bin/mpg123") "mpg123")
(("/usr/bin/ogg123") "ogg123")))) (("/usr/bin/ogg123") "ogg123"))))
(add-before 'build 'patch-python-shebangs (add-before 'build 'patch-python-shebangs
(lambda _ (lambda* (#:key inputs #:allow-other-keys)
;; Two python scripts begin with a Unicode BOM, so patch-shebang ;; Two python scripts begin with a Unicode BOM, so patch-shebang
;; has no effect. ;; has no effect.
(substitute* '("solfege/parsetree.py" (substitute* '("solfege/parsetree.py"
"solfege/presetup.py") "solfege/presetup.py")
(("#!/usr/bin/python") (string-append "#!" (which "python")))))) (("#!/usr/bin/python")
(string-append "#!" search-input-file inputs "bin/python")))))
(add-before 'build 'add-sitedirs (add-before 'build 'add-sitedirs
;; .pth files are not automatically interpreted unless the ;; .pth files are not automatically interpreted unless the
;; directories containing them are added as "sites". The directories ;; directories containing them are added as "sites". The
;; are then added to those in the PYTHONPATH. This is required for ;; directories are then added to those in the PYTHONPATH. This is
;; the operation of pygtk and pygobject. ;; required for the operation of pygtk and pygobject.
(lambda _ (lambda _
(substitute* "run-solfege.py" (substitute* "run-solfege.py"
(("import os") (("import os")
"import os, site "import os, site
for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)")) for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))))
#t))
(add-before 'build 'adjust-config-file-prefix (add-before 'build 'adjust-config-file-prefix
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(substitute* "run-solfege.py" (substitute* "run-solfege.py"
(("prefix = os.path.*$") (("prefix = os.path.*$")
(string-append "prefix = " (assoc-ref outputs "out")))) (string-append "prefix = " #$output)))))
#t))
(add-after 'install 'wrap-program (add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; Make sure 'solfege' runs with the correct PYTHONPATH. ;; Make sure 'solfege' runs with the correct PYTHONPATH.
(let* ((out (assoc-ref outputs "out")) (let ((path (getenv "GUIX_PYTHONPATH")))
(path (getenv "GUIX_PYTHONPATH"))) (wrap-program (search-input-file outputs "bin/solfege")
(wrap-program (string-append out "/bin/solfege") `("GUIX_PYTHONPATH" ":" prefix (,path)))))))))
`("GUIX_PYTHONPATH" ":" prefix (,path))))
#t)))))
(inputs (inputs
`(("python" ,python-2) (list python-wrapper
("pygtk" ,python2-pygtk) python-pygobject
("gettext" ,gettext-minimal) gettext-minimal
("gtk" ,gtk+) gtk+
("lilypond" ,lilypond))) lilypond))
(native-inputs (native-inputs
(list pkg-config (list autoconf
automake
pkg-config
txt2man txt2man
libxml2 ; for tests libxml2 ; for tests
ghostscript ghostscript
texinfo-5)) texinfo))
(home-page "https://www.gnu.org/software/solfege/") (home-page "https://www.gnu.org/software/solfege/")
(synopsis "Ear training") (synopsis "Ear training")
(description (description