From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: [PATCH] Add powertabeditor. Date: Sat, 06 Jun 2015 12:08:54 +0200 Message-ID: <874mml87yh.fsf@elephly.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38640) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z1B2L-0005lL-JX for guix-devel@gnu.org; Sat, 06 Jun 2015 06:09:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z1B2G-0008Ui-2e for guix-devel@gnu.org; Sat, 06 Jun 2015 06:09:09 -0400 Received: from sender163-mail.zoho.com ([74.201.84.163]:25641) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z1B2F-0008UF-Jv for guix-devel@gnu.org; Sat, 06 Jun 2015 06:09:03 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Guix-devel --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-Add-withershins.patch Content-Transfer-Encoding: 8bit >From da77c25e8c32243ca2bd77bd76de41312aafaac1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 25 May 2015 22:13:27 +0200 Subject: [PATCH 1/6] gnu: Add withershins. * gnu/packages/code.scm (withershins): New variable. --- gnu/packages/code.scm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 9d2bde8..63a360e 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Ludovic Courtès ;;; Copyright © 2015 Andreas Enge +;;; Copyright © 2015 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,9 +23,12 @@ #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages emacs) + #:use-module (gnu packages gcc) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) @@ -225,3 +229,61 @@ COCOMO model or user-provided parameters.") files, but compared to grep is much faster and respects files like .gitignore, .hgignore, etc.") (license license:asl2.0))) + +(define-public withershins + (package + (name "withershins") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/cameronwhite/withershins/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "08z3lyvswx7sad10637vfpwglbcbgzzcpfihw0x8lzr74f3b70bh")))) + (build-system cmake-build-system) + (arguments + `(#:out-of-source? #f + #:modules ((guix build utils) + (guix build cmake-build-system) + (ice-9 popen) + (ice-9 rdelim)) + #:phases + (modify-phases %standard-phases + (add-after + 'unpack 'find-libiberty + (lambda _ + (let ((plugin (let* ((port (open-input-pipe + "gcc -print-file-name=plugin")) + (str (read-line port))) + (close-pipe port) + str))) + (substitute* "cmake/FindIberty.cmake" + (("/usr/include") (string-append plugin "/include")) + (("libiberty.a iberty") (string-append "NAMES libiberty.a iberty\nPATHS \"" + (assoc-ref %build-inputs "gcc") + "/lib" "\""))) + #t))) + (replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/lib")) + (mkdir (string-append out "/include")) + (copy-file "src/withershins.hpp" + (string-append out "/include/withershins.hpp")) + (copy-file "src/libwithershins.a" + (string-append out "/lib/libwithershins.a"))) + #t))))) + (home-page "https://github.com/cameronwhite/withershins") + (inputs + `(("gcc" ,gcc-4.8 "lib") ;for libiberty.a + ("binutils" ,binutils) ;for libbfd + ("zlib" ,zlib))) + (synopsis "C++11 library for generating stack traces") + (description + "Withershins is a simple cross-platform C++11 library for generating +stack traces.") + (license license:expat))) -- 2.2.1 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0002-gnu-Add-RapidJSON.patch >From d426c47462be1dcc5ff4bbe9d1b154bbbb0761b9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 25 May 2015 22:14:39 +0200 Subject: [PATCH 2/6] gnu: Add RapidJSON. * gnu/packages/web.scm (rapidjson): New variable. --- gnu/packages/web.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index e77bad7..6660c3f 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -259,6 +259,27 @@ easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects.") (license l:x11))) +(define-public rapidjson + (package + (name "rapidjson") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/miloyip/rapidjson/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0rl6s0vg5y1dhh9vfl1lqay3sxf69sxjh0czxrjmasn7ng91wwf3")))) + (build-system cmake-build-system) + (home-page "https://github.com/miloyip/rapidjson") + (synopsis "JSON parser/generator for C++ with both SAX/DOM style API") + (description + "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM +style API.") + (license l:expat))) + (define-public libwebsockets (package (name "libwebsockets") -- 2.2.1 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0003-gnu-Add-pugixml.patch Content-Transfer-Encoding: 8bit >From 337f0790e7917f7ae2b394310c8543256756f0fe Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 28 May 2015 09:43:53 +0200 Subject: [PATCH 3/6] gnu: Add pugixml. * gnu/packages/xml.scm (pugixml): New variable. --- gnu/packages/xml.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 8a4d2fb..a7925d9 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2015 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (gnu packages linux)) @@ -358,6 +360,41 @@ from XML::Parser. It parses XML strings or files and builds a data structure that conforms to the API of the Document Object Model.") (home-page "http://search.cpan.org/~tjmather/XML-DOM-1.44/lib/XML/DOM.pm"))) +(define-public pugixml + (package + (name "pugixml") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/zeux/pugixml/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0czbcv9aqf2rw3s9cljz2wb1f4zbhd07wnj7ykklklccl0ipfnwi")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f + #:out-of-source? #f + #:phases (modify-phases %standard-phases + (add-before + 'configure 'chdir + (lambda _ + (chdir "scripts") + #t))))) + (home-page "http://pugixml.org") + (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support") + (description + "pugixml is a C++ XML processing library, which consists of a DOM-like +interface with rich traversal/modification capabilities, a fast XML parser +which constructs the DOM tree from an XML file/buffer, and an XPath 1.0 +implementation for complex data-driven tree queries. Full Unicode support is +also available, with Unicode interface variants and conversions between +different Unicode encodings which happen automatically during +parsing/saving.") + (license license:expat))) + (define-public xmlto (package (name "xmlto") -- 2.2.1 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0004-gnu-Add-rtmidi.patch >From 67ec5348f611d58299ae2ab0b8575e817e0f1272 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 28 May 2015 09:44:30 +0200 Subject: [PATCH 4/6] gnu: Add rtmidi. * gnu/packages/audio.scm (rtmidi): New variable. --- gnu/packages/audio.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index fdc783a..3b2d4e1 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1031,6 +1031,57 @@ and ALSA.") tempo and pitch of an audio recording independently of one another.") (license license:gpl2+))) +(define-public rtmidi + (package + (name "rtmidi") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri + (string-append "https://github.com/powertab/rtmidi/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d49lapnmdgmjxh4vw57h6xk74nn5r0zwysv7jbd7m8kqhpq5rjj")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no "check" target + #:phases (modify-phases %standard-phases + (add-before + 'configure 'autoconf + (lambda _ (zero? (system* "autoreconf" "-vfi")))) + (add-before + 'build 'fix-makefile + (lambda _ + (substitute* "Makefile" + (("/bin/ln") "ln") + (("RtMidi.h RtError.h") "RtMidi.h")) + #t)) + (add-before + 'install 'make-target-dirs + (lambda _ + (let ((out (assoc-ref %outputs "out"))) + (mkdir-p (string-append out "/bin")) + (mkdir (string-append out "/lib")) + (mkdir (string-append out "/include"))) + #t))))) + (inputs + `(("jack" ,jack-1) + ("alsa-lib" ,alsa-lib))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/powertab/rtmidi") + (synopsis "Cross-platform MIDI library for C++") + (description + "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific +classes) that provide a common cross-platform API for realtime MIDI +input/output.") + (license license:expat))) + (define-public sratom (package (name "sratom") -- 2.2.1 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0005-gnu-catch-framework-Update-to-1.1.3.patch >From ab277b32cd5ace5ab257ec31abd719b2ee2470dd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 3 Jun 2015 22:53:56 +0200 Subject: [PATCH 5/6] gnu: catch-framework: Update to 1.1.3. * gnu/packages/check.scm (catch-framework): Update to 1.1.3. --- gnu/packages/check.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 5349ede..e0ee7c4 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -113,18 +113,17 @@ supervised tests.") (define-public catch-framework (package (name "catch") - (version "1.0.53") ;Sub-minor is the build number + (version "1.1.3") ;Sub-minor is the build number (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/philsquared/Catch") - ;; Semi-arbitrary. Contains mostly documentation fixes - ;; since build 53. - (commit "b9ec8a1"))) + ;; Semi-arbitrary. + (commit "c51e86819d"))) (file-name (string-append name "-" version)) (sha256 (base32 - "05iijiwjwcjbza7qamwd32d0jypi0lpywmilmmj2xh280mcl4dbd")))) + "0kgi7wxxysgjbpisqfj4dj0k19cyyai92f001zi8gzkybd4fkgv5")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) -- 2.2.1 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0006-gnu-Add-powertabeditor.patch Content-Transfer-Encoding: 8bit >From 98e2ab304ef345178ab1caad27d6e4412d19c476 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 4 Jun 2015 10:01:11 +0200 Subject: [PATCH 6/6] gnu: Add powertabeditor. * gnu/packages/music.scm (powertabeditor): New variable. --- gnu/packages/music.scm | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 5795ecb..a35a113 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -22,9 +22,15 @@ #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages audio) + #:use-module (gnu packages base) ;libbdf + #:use-module (gnu packages boost) #:use-module (gnu packages bison) + #:use-module (gnu packages code) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) #:use-module (gnu packages docbook) #:use-module (gnu packages flex) #:use-module (gnu packages fonts) @@ -45,9 +51,11 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages rsync) #:use-module (gnu packages texinfo) #:use-module (gnu packages texlive) + #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xiph) #:use-module (gnu packages zip)) @@ -224,6 +232,94 @@ sessions. Solfege is also designed to be extensible so you can easily write your own lessons.") (license license:gpl3+))) +(define-public powertabeditor + (package + (name "powertabeditor") + (version "2.0.0-alpha7") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/powertab/powertabeditor/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1yp6ck2r72c2pfq31z1kpw1j639rndrifj85l3cbj2kdf8rdzhkk")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; no "check" target + #:modules ((guix build cmake-build-system) + (guix build utils) + (ice-9 match)) + #:configure-flags + (list (string-append "-DCMAKE_INSTALL_RPATH='" + (string-join (map (match-lambda + ((name . directory) + (string-append directory "/lib"))) + %build-inputs) + ";") + "'")) + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'remove-third-party-libs + (lambda _ + (substitute* "CMakeLists.txt" + (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "") + ;; TODO: tests cannot be built: + ;; test/test_main.cpp:28:12: error: ‘Session’ is not a member of ‘Catch’ + (("add_subdirectory\\(test\\)") "") + (("add_subdirectory\\(external\\)") "")) + (substitute* "source/CMakeLists.txt" + (("target_link_libraries\\(powertabeditor") + (string-append "target_link_libraries(powertabeditor " + (assoc-ref %build-inputs "binutils") + "/lib/libbfd.a " + (assoc-ref %build-inputs "gcc") + "/lib/libiberty.a " + "dl"))) + (substitute* "test/CMakeLists.txt" + (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "") + (("target_link_libraries\\(pte_tests") + (string-append "target_link_libraries(pte_tests " + (assoc-ref %build-inputs "binutils") + "/lib/libbfd.a " + (assoc-ref %build-inputs "gcc") + "/lib/libiberty.a " + "dl"))) + (delete-file-recursively "external") + #t)) + (add-after + 'unpack 'add-install-target + (lambda _ + (substitute* "source/CMakeLists.txt" + (("qt5_use_modules") + "install(TARGETS powertabeditor RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) +install(FILES data/tunings.json DESTINATION ${CMAKE_INSTALL_PREFIX}/share/powertabeditor/) +qt5_use_modules")) + #t))))) + (inputs + `(("boost" ,boost) + ("alsa-lib" ,alsa-lib) + ("qt" ,qt) + ("withershins" ,withershins) + ("gcc" ,gcc-4.8 "lib") ;for libiberty.a (for withershins) + ("binutils" ,binutils) ;for -lbfd and -liberty (for withershins) + ("timidity" ,timidity++) + ("pugixml" ,pugixml) + ("rtmidi" ,rtmidi) + ("rapidjson" ,rapidjson) + ("zlib" ,zlib))) + (native-inputs + `(("catch" ,catch-framework) + ("pkg-config" ,pkg-config))) + (home-page "http://powertabs.net") + (synopsis "Guitar tablature editor") + (description + "PTE2.0 is the successor to the famous Power Tab Editor. It is +compatible with PTE1.7 and Guitar Pro.") + (license license:gpl3+))) + (define-public tuxguitar (package (name "tuxguitar") -- 2.2.1 --=-=-=--