unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] Add Frescobaldi.
@ 2015-08-26 21:38 Ricardo Wurmus
  2015-08-31 12:06 ` Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Ricardo Wurmus @ 2015-08-26 21:38 UTC (permalink / raw)
  To: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 754 bytes --]

Hi Guix,

here are four patches to add Frescobaldi, a score editor for Lilypond,
and some as yet unpackaged dependencies.

First off: as this depends on Lilypond, and Lilypond uses Ghostscript to
convert Postscript files to PDF, and this feature is broken until we
update fontconfig to 2.11.94, one of the core features of Frescobaldi
(rendering a score with Lilypond) isn’t actually working right now.

AFAIK a patch to update fontconfig was submitted for the core-updates
branch already.

Frescobaldi needs poppler-qt4, a library that is built by poppler when
Qt4 is found at build time.  I created a variant of the poppler package
because I don’t want to add an unnecessary indirect dependency on Qt4
for every package using poppler.

~~ Ricardo


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-poppler-qt4.patch --]
[-- Type: text/x-patch, Size: 1132 bytes --]

From 98b7a6b8b5ccbc2b4648838830612e148c96d995 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 26 Aug 2015 23:22:29 +0200
Subject: [PATCH 1/4] gnu: Add poppler-qt4.

* gnu/packages/pdf.scm (poppler-qt4): New variable.
---
 gnu/packages/pdf.scm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index bbd1f66..f8f05cd 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -36,6 +36,7 @@
   #:use-module (gnu packages lesstif)
   #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages glib)
@@ -103,6 +104,13 @@
    (license license:gpl2+)
    (home-page "http://poppler.freedesktop.org/")))
 
+(define-public poppler-qt4
+  (package (inherit poppler)
+   (name "poppler-qt4")
+   (inputs `(("qt-4" ,qt-4)
+             ,@(package-inputs poppler)))
+   (synopsis "Qt4 frontend for the Poppler PDF rendering library")))
+
 (define-public xpdf
   (package
    (name "xpdf")
-- 
2.4.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-python-poppler-qt4.patch --]
[-- Type: text/x-patch, Size: 2307 bytes --]

From 37adcb501ef4a706b881f30530dfa23e8bd8d785 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 26 Aug 2015 23:23:31 +0200
Subject: [PATCH 2/4] gnu: Add python-poppler-qt4.

* gnu/packages/pdf.scm (python-poppler-qt4): New variable.
---
 gnu/packages/pdf.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index f8f05cd..fe93a97 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -25,6 +25,7 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
@@ -111,6 +112,44 @@
              ,@(package-inputs poppler)))
    (synopsis "Qt4 frontend for the Poppler PDF rendering library")))
 
+(define-public python-poppler-qt4
+  (package
+    (name "python-poppler-qt4")
+    (version "0.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://pypi.python.org/packages/source/p"
+                            "/python-poppler-qt4/python-poppler-qt4-"
+                            version ".tar.gz"))
+        (sha256
+         (base32
+          "0x63niylkk4q3h3ay8zrk3m1xiik0x3hlr4gvj7kswx48qi1vb99"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after
+          'unpack 'patch-poppler-include-paths
+          (lambda _
+            (substitute* (find-files "." "poppler-.*\\.sip")
+              (("qt4/poppler-.*\\.h" header)
+               (string-append "poppler/" header)))
+            #t)))))
+    (native-inputs
+     `(("qt-4" ,qt-4)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("python-sip" ,python-sip)
+       ("python-pyqt-4" ,python-pyqt-4)
+       ("poppler-qt4" ,poppler-qt4)))
+    (home-page "https://pypi.python.org/pypi/python-poppler-qt4")
+    (synopsis "Python bindings for libpoppler-qt4")
+    (description
+     "This package provides Python bindings for the Poppler Qt4 interface
+library.")
+    (license license:lgpl2.1+)))
+
 (define-public xpdf
   (package
    (name "xpdf")
-- 
2.4.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-Add-python-ly.patch --]
[-- Type: text/x-patch, Size: 1633 bytes --]

From 9cd29d58de90bee0d1b7fc929af84687bbfd4556 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 26 Aug 2015 23:24:16 +0200
Subject: [PATCH 3/4] gnu: Add python-ly.

* gnu/packages/python.scm (python-ly): New variable.
---
 gnu/packages/python.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 940efec..75f285f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4629,3 +4629,26 @@ term.js Javascript terminal emulator library.")
                  ,python2-backport-ssl-match-hostname)
                 ,@(alist-delete "python-tornado"
                                 (package-propagated-inputs terminado)))))))
+
+(define-public python-ly
+  (package
+    (name "python-ly")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://pypi.python.org/packages/source/p/python-ly/python-ly-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "1bsjg4q9ihr8bfdclrcmb8yjcg8xm9dznh58f3zsyrkrjzwbhcd2"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (synopsis "Tool and library for manipulating LilyPond files")
+    (description "This package provides a Python library to parse, manipulate
+or create documents in LilyPond format.  A command line program ly is also
+provided that can be used to do various manipulations with LilyPond files.")
+    (home-page "https://pypi.python.org/pypi/python-ly")
+    (license gpl2+)))
-- 
2.4.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: 0004-gnu-Add-frescobaldi.patch --]
[-- Type: text/x-patch, Size: 2310 bytes --]

From 34817062b868ea60d087788fd6040daf799165fd Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 26 Aug 2015 23:25:31 +0200
Subject: [PATCH 4/4] gnu: Add frescobaldi.

* gnu/packages/music.scm (frescobaldi): New variable.
---
 gnu/packages/music.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index b89be43..809cf87 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -24,6 +24,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system waf)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
@@ -57,6 +58,7 @@
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages netpbm)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio) ;libsndfile
@@ -751,3 +753,30 @@ equipment.  Pd is suitable for learning basic multimedia processing and visual
 programming methods as well as for realizing complex systems for large-scale
 projects.")
     (license license:bsd-3)))
+
+(define-public frescobaldi
+  (package
+    (name "frescobaldi")
+    (version "2.18.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/wbsoft/frescobaldi/releases/download/v"
+                    version "/frescobaldi-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1hflc6gck6dn17czc2ldai5j0ynfg3df8lqcggdry06qxsdbnns7"))))
+    (build-system python-build-system)
+    (inputs
+     `(("lilypond" ,lilypond)
+       ("python-pyqt-4" ,python-pyqt-4)
+       ("python-ly" ,python-ly)
+       ("poppler" ,poppler)
+       ("python-poppler-qt4" ,python-poppler-qt4)
+       ("python-sip" ,python-sip)))
+    (home-page "http://www.frescobaldi.org/")
+    (synopsis "LilyPond sheet music text editor")
+    (description
+     "Frescobaldi is a LilyPond sheet music text editor with syntax
+highlighting and automatic completion.")
+    (license license:gpl2+)))
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] Add Frescobaldi.
  2015-08-26 21:38 [PATCH] Add Frescobaldi Ricardo Wurmus
@ 2015-08-31 12:06 ` Ludovic Courtès
  2015-08-31 20:32   ` Ricardo Wurmus
  0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2015-08-31 12:06 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Guix-devel

Ricardo Wurmus <rekado@elephly.net> skribis:

> First off: as this depends on Lilypond, and Lilypond uses Ghostscript to
> convert Postscript files to PDF, and this feature is broken until we
> update fontconfig to 2.11.94, one of the core features of Frescobaldi
> (rendering a score with Lilypond) isn’t actually working right now.

OK.

> AFAIK a patch to update fontconfig was submitted for the core-updates
> branch already.

There’s no such thing in ‘core-updates’.  However, one could set a
‘fontconfig-update’ branch and update Fontconfig and possibly related
libraries.  We could merge it in ‘master’ more quickly than
‘core-updates’.

> Frescobaldi needs poppler-qt4, a library that is built by poppler when
> Qt4 is found at build time.  I created a variant of the poppler package
> because I don’t want to add an unnecessary indirect dependency on Qt4
> for every package using poppler.

Yes, sounds good.

> From 98b7a6b8b5ccbc2b4648838830612e148c96d995 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Wed, 26 Aug 2015 23:22:29 +0200
> Subject: [PATCH 1/4] gnu: Add poppler-qt4.
>
> * gnu/packages/pdf.scm (poppler-qt4): New variable.

LGTM.

> From 37adcb501ef4a706b881f30530dfa23e8bd8d785 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Wed, 26 Aug 2015 23:23:31 +0200
> Subject: [PATCH 2/4] gnu: Add python-poppler-qt4.
>
> * gnu/packages/pdf.scm (python-poppler-qt4): New variable.

[...]

> +    (native-inputs
> +     `(("qt-4" ,qt-4)

Native?  If it’s for one of the binaries, such as ‘qmake’, please
mention it in a margin comment.

> +    (synopsis "Python bindings for libpoppler-qt4")

“Poppler-Qt4” maybe?

> +    (description
> +     "This package provides Python bindings for the Poppler Qt4 interface
> +library.")

“... for the Qt4 interface of the Poppler PDF rendering library.”
So that at least “PDF” shows up in the description.

OK with these changes.

> From 9cd29d58de90bee0d1b7fc929af84687bbfd4556 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Wed, 26 Aug 2015 23:24:16 +0200
> Subject: [PATCH 3/4] gnu: Add python-ly.
>
> * gnu/packages/python.scm (python-ly): New variable.

LGTM.

> From 34817062b868ea60d087788fd6040daf799165fd Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Wed, 26 Aug 2015 23:25:31 +0200
> Subject: [PATCH 4/4] gnu: Add frescobaldi.
>
> * gnu/packages/music.scm (frescobaldi): New variable.

[...]

> +    (home-page "http://www.frescobaldi.org/")
> +    (synopsis "LilyPond sheet music text editor")
> +    (description
> +     "Frescobaldi is a LilyPond sheet music text editor with syntax
> +highlighting and automatic completion.")

Would be nice to mention a couple of features, like: “Among other
things, it can render scores next to the source, can capture input from
MIDI or read MusicXML and ABC files, has a MIDI player for
proof-listening, and includes a documentation browser.”

OK with this change.

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Add Frescobaldi.
  2015-08-31 12:06 ` Ludovic Courtès
@ 2015-08-31 20:32   ` Ricardo Wurmus
  0 siblings, 0 replies; 3+ messages in thread
From: Ricardo Wurmus @ 2015-08-31 20:32 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel


Ludovic Courtès <ludo@gnu.org> writes:
>> AFAIK a patch to update fontconfig was submitted for the core-updates
>> branch already.
>
> There’s no such thing in ‘core-updates’.  However, one could set a
> ‘fontconfig-update’ branch and update Fontconfig and possibly related
> libraries.  We could merge it in ‘master’ more quickly than
> ‘core-updates’.

The patch I was referring to has been submitted here, but apparently it
hasn’t been committed yet:

    http://lists.gnu.org/archive/html/guix-devel/2015-08/msg00225.html

>> * gnu/packages/pdf.scm (python-poppler-qt4): New variable.
>
> [...]
>
>> +    (native-inputs
>> +     `(("qt-4" ,qt-4)
>
> Native?  If it’s for one of the binaries, such as ‘qmake’, please
> mention it in a margin comment.

Oh, that was a mistake and isn’t actually needed.  I removed it.
(That’s an embarrassingly big input to forget about.)

>> +    (synopsis "Python bindings for libpoppler-qt4")
>
> “Poppler-Qt4” maybe?

Okay.

>> +    (description
>> +     "This package provides Python bindings for the Poppler Qt4 interface
>> +library.")
>
> “... for the Qt4 interface of the Poppler PDF rendering library.”
> So that at least “PDF” shows up in the description.
>
> OK with these changes.

Okay.

>> * gnu/packages/music.scm (frescobaldi): New variable.
>
> [...]
>
>> +    (home-page "http://www.frescobaldi.org/")
>> +    (synopsis "LilyPond sheet music text editor")
>> +    (description
>> +     "Frescobaldi is a LilyPond sheet music text editor with syntax
>> +highlighting and automatic completion.")
>
> Would be nice to mention a couple of features, like: “Among other
> things, it can render scores next to the source, can capture input from
> MIDI or read MusicXML and ABC files, has a MIDI player for
> proof-listening, and includes a documentation browser.”
>
> OK with this change.

I worked in the suggested changes and pushed.  Thanks a lot for the
review!

~~ Ricardo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-08-31 20:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-26 21:38 [PATCH] Add Frescobaldi Ricardo Wurmus
2015-08-31 12:06 ` Ludovic Courtès
2015-08-31 20:32   ` Ricardo Wurmus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).