[PATCH] gnu: Add darktable.

  • Done
  • quality assurance status badge
Details
7 participants
  • Björn Höfling
  • John Darrington
  • Leo Famulari
  • Ludovic Courtès
  • Ricardo Wurmus
  • Ricardo Wurmus
  • Roel Janssen
Owner
unassigned
Submitted by
Roel Janssen
Severity
normal
R
R
Roel Janssen wrote on 2 Mar 2017 01:04
(address . guix-patches@gnu.org)
87zih4ee7i.fsf@gnu.org
Dear Guix,

And finally, here is a patch for Darktable.
Even though the upstream project strongly recommends x86_64, I do not
know whether it actually does not work on other platforms. If the
builds fail on anything other than x86_64, we could limit it to this
platform only.

Kind regards,
Roel Janssen

Toggle quote (1 lines)
>From 0c7e3fb1343594bae6e2922b1866468e1903c59d Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Thu, 2 Mar 2017 00:56:22 +0100
Subject: [PATCH] gnu: Add darktable.

* gnu/packages/photo.scm (darktable): New variable.
---
gnu/packages/photo.scm | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)

Toggle diff (112 lines)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index ce71d2a44..42da06080 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -31,17 +31,23 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages graphics)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
+ #:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages tex)
#:use-module (gnu packages web)
@@ -67,6 +73,81 @@
cameras (CRW/CR2, NEF, RAF, DNG, and others).")
(license license:lgpl2.1+)))
+(define-public darktable
+ (package
+ (name "darktable")
+ (version "2.2.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/darktable-org/darktable/releases/"
+ "download/release-"
+ version "/darktable-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1828vbxx4r36m0brqfs5f51j2j2fxb0f6q8cd1vkaa5zhnaqacqv"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; There are no tests.
+ #:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-ldflags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "LDFLAGS"
+ (string-append
+ "-Wl,-rpath="
+ (assoc-ref outputs "out") "/lib/darktable"))
+ #t))
+ (add-after 'set-paths 'add-ilmbase-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; OpenEXR propagates ilmbase, but its include files do not appear
+ ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
+ ;; the CPATH to satisfy the dependency on "ImathInt64.h".
+ (setenv "CPATH"
+ (string-append
+ (assoc-ref inputs "ilmbase")
+ "/include/OpenEXR:" (or (getenv "CPATH") "")))
+ #t)))))
+ (native-inputs
+ `(("llvm" ,llvm-3.9.1)
+ ("clang" ,clang-3.9.1)))
+ (inputs
+ `(("libxslt" ,libxslt)
+ ("libxml2" ,libxml2)
+ ("pugixml" ,pugixml)
+ ("gtk+" ,gtk+)
+ ("sqlite" ,sqlite)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("cairo" ,cairo)
+ ("lcms" ,lcms)
+ ("exiv2" ,exiv2)
+ ("libtiff" ,libtiff)
+ ("curl" ,curl)
+ ("libgphoto2" ,libgphoto2)
+ ("dbus-glib" ,dbus-glib)
+ ("fop" ,fop)
+ ("openexr" ,openexr)
+ ("ilmbase" ,ilmbase)
+ ("libsoup" ,libsoup)
+ ("python-jsonschema" ,python-jsonschema)
+ ("intltool" ,intltool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("libwebp" ,libwebp)
+ ("lensfun" ,lensfun)
+ ("librsvg" ,librsvg)
+ ("json-glib" ,json-glib)
+ ("freeimage" ,freeimage)))
+ (home-page "https://www.darktable.org")
+ (synopsis "Virtual lighttable and darkroom for photographers")
+ (description "Darktable is an open source photography workflow application
+and RAW developer. It manages your digital negatives in a database, lets you
+view them through a zoomable lighttable and enables you to develop raw images
+and enhance them.")
+ (license license:gpl3+)))
+
(define-public libexif
(package
(name "libexif")
--
2.11.0
L
L
Ludovic Courtès wrote on 8 Mar 2017 14:50
(name . Roel Janssen)(address . roel@gnu.org)(address . 25928@debbugs.gnu.org)
8737enop1n.fsf@gnu.org
Hi,

Roel Janssen <roel@gnu.org> skribis:

Toggle quote (2 lines)
> And finally, here is a patch for Darktable.

Awesome! Now I have no excuse not to give it a try. :-)

Toggle quote (5 lines)
> Even though the upstream project strongly recommends x86_64, I do not
> know whether it actually does not work on other platforms. If the
> builds fail on anything other than x86_64, we could limit it to this
> platform only.

Do you have a link to their “recommendation”, out of curiosity?

If it turns out to indeed break on other platforms, then we can add a
‘supported-systems’ field.

Toggle quote (7 lines)
>>>From 0c7e3fb1343594bae6e2922b1866468e1903c59d Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Thu, 2 Mar 2017 00:56:22 +0100
> Subject: [PATCH] gnu: Add darktable.
>
> * gnu/packages/photo.scm (darktable): New variable.

LGTM, thank you!

Ludo’.
R
R
Roel Janssen wrote on 8 Mar 2017 15:29
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 25928@debbugs.gnu.org)
87d1dr7sg7.fsf@gnu.org
Ludovic Courtès writes:

Toggle quote (15 lines)
> Hi,
>
> Roel Janssen <roel@gnu.org> skribis:
>
>> And finally, here is a patch for Darktable.
>
> Awesome! Now I have no excuse not to give it a try. :-)
>
>> Even though the upstream project strongly recommends x86_64, I do not
>> know whether it actually does not work on other platforms. If the
>> builds fail on anything other than x86_64, we could limit it to this
>> platform only.
>
> Do you have a link to their “recommendation”, out of curiosity?

It's in the "Prerequisites" section.

Toggle quote (13 lines)
> If it turns out to indeed break on other platforms, then we can add a
> ‘supported-systems’ field.
>
>>>>From 0c7e3fb1343594bae6e2922b1866468e1903c59d Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Thu, 2 Mar 2017 00:56:22 +0100
>> Subject: [PATCH] gnu: Add darktable.
>>
>> * gnu/packages/photo.scm (darktable): New variable.
>
> LGTM, thank you!
>
> Ludo’.
L
L
Leo Famulari wrote on 8 Mar 2017 18:59
(name . Roel Janssen)(address . roel@gnu.org)(address . 25928@debbugs.gnu.org)
20170308175919.GA12152@jasmine
On Thu, Mar 02, 2017 at 01:04:33AM +0100, Roel Janssen wrote:
Toggle quote (4 lines)
> Subject: [PATCH] gnu: Add darktable.
>
> * gnu/packages/photo.scm (darktable): New variable.

Cool!

Toggle quote (17 lines)
> ---
> gnu/packages/photo.scm | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 81 insertions(+)
>
> diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
> index ce71d2a44..42da06080 100644
> --- a/gnu/packages/photo.scm
> +++ b/gnu/packages/photo.scm
> @@ -31,17 +31,23 @@
> #:use-module (gnu packages base)
> #:use-module (gnu packages boost)
> #:use-module (gnu packages compression)
> + #:use-module (gnu packages curl)
> + #:use-module (gnu packages databases)
> #:use-module (gnu packages ghostscript)
> #:use-module (gnu packages gl)

It's missing the (gnu packages glib) module, for dbus-glib.

Toggle quote (2 lines)
> + ("fop" ,fop)

And I can't test it further, because this package is missing.

Also, the patch as sent doesn't apply correctly with `git am`. I
recommend attaching the patch if you are using the debbugs guix-patches.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAljARnQACgkQJkb6MLrK
fwjdAA//dbLY2jnRiYOl9+P0eIuJbXyWwgylg5c7wAPgVsiH3DHI47t9KX7aAxqo
KdMThStWjgAeNBerZxCe6NsxDWA21fnFk49cLfjeoFGKqu/BYLHxr6sKHRADZQVd
SWKoaFFp4PW2Udx0YU2qdrpHcE/dzrCIxTI8mS9eBWKyrYTD9cAb5znVZWmbHmnS
x94/kxAg40DOgsDnwuiXE+js4OVe6hqXclGAKBrmJJtJJxaCgfkwlY/3Mkpia9B2
5mn5OQRBvUZ9sGIMxA5uZmvqaS82oBfUeXH/S1VmuxRZlr9n9V6GYygowD96wgqN
zH2ED/gwkQQKI7Y2L+e8UXcml/KK83980D5J7hVvyf27cFxJMde4ZWfmET7PL50L
MirCXManIwcxHXu7/souhyQZCq6EvA4BeHGgDPDZanP9uyYaz9xzqX8/n+EvIRXs
CPVhXrWlxmJ/zEdTUl3oZVPtA1XNCneyVbnuQA30Txw1Z8fHNtTCHy+VFNS3CRL8
aZWbcZBHZtzWMUS7GzkQy5Pearaza/REJJrzO9Gx3p2Pdu5pkr9X1/sY058aC/aO
EP02mgUKN0Mg/XJ+KGU96elP19DwGeOeX2JtNGT5TrOJyyAYk+SOtyE1fM8qNpTV
6pTGEFRoMQhBpLGvlb9rARWrRhbkHg4v6PvOSGjrdAkXJ6VhO+A=
=YuWp
-----END PGP SIGNATURE-----


R
R
Roel Janssen wrote on 8 Mar 2017 20:01
(name . Leo Famulari)(address . leo@famulari.name)(address . 25928@debbugs.gnu.org)
87pohry4ng.fsf@gnu.org
Leo Famulari writes:

Toggle quote (26 lines)
> On Thu, Mar 02, 2017 at 01:04:33AM +0100, Roel Janssen wrote:
>> Subject: [PATCH] gnu: Add darktable.
>>
>> * gnu/packages/photo.scm (darktable): New variable.
>
> Cool!
>
>> ---
>> gnu/packages/photo.scm | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 81 insertions(+)
>>
>> diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
>> index ce71d2a44..42da06080 100644
>> --- a/gnu/packages/photo.scm
>> +++ b/gnu/packages/photo.scm
>> @@ -31,17 +31,23 @@
>> #:use-module (gnu packages base)
>> #:use-module (gnu packages boost)
>> #:use-module (gnu packages compression)
>> + #:use-module (gnu packages curl)
>> + #:use-module (gnu packages databases)
>> #:use-module (gnu packages ghostscript)
>> #:use-module (gnu packages gl)
>
> It's missing the (gnu packages glib) module, for dbus-glib.

Yes, the glib module is in another patch I which is a prerequisite for
Darktable.

Toggle quote (4 lines)
>> + ("fop" ,fop)
>
> And I can't test it further, because this package is missing.

I sent a separate patch for fop.

Toggle quote (3 lines)
> Also, the patch as sent doesn't apply correctly with `git am`. I
> recommend attaching the patch if you are using the debbugs guix-patches.

Right. I messed up the patch creation I guess. I'll do better in the
future.

Kind regards,
Roel Janssen
B
B
Björn Höfling wrote on 13 Mar 2017 23:24
(name . Roel Janssen)(address . roel@gnu.org)(address . 25928@debbugs.gnu.org)
20170313232428.0530762b@alma-ubu
Hi Roel,

On Thu, 02 Mar 2017 01:04:33 +0100
Roel Janssen <roel@gnu.org> wrote:

Toggle quote (27 lines)
> Dear Guix,
>
> And finally, here is a patch for Darktable.
> Even though the upstream project strongly recommends x86_64, I do not
> know whether it actually does not work on other platforms. If the
> builds fail on anything other than x86_64, we could limit it to this
> platform only.
>
> Kind regards,
> Roel Janssen
>
> >From 0c7e3fb1343594bae6e2922b1866468e1903c59d Mon Sep 17 00:00:00
> >2001
> From: Roel Janssen <roel@gnu.org>
> Date: Thu, 2 Mar 2017 00:56:22 +0100
> Subject: [PATCH] gnu: Add darktable.
>
> * gnu/packages/photo.scm (darktable): New variable.
> ---
> gnu/packages/photo.scm | 81
> ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81
> insertions(+)
>
> diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
> index ce71d2a44..42da06080 100644
> --- a/gnu/packages/photo.scm
> +++ b/gnu/packages/photo.scm
[..]

Toggle quote (2 lines)
> + ("fop" ,fop)

I couldn't build it yet, because it requires the new llvm, but I think
fop is only needed for documentation:

Arch doesn't have it as a dependency:

Here it is mentioned only as dependency for the manual:

Hope that makes it easier,

Björn
B
B
Björn Höfling wrote on 14 Mar 2017 23:13
(name . Roel Janssen)(address . roel@gnu.org)(address . 25928@debbugs.gnu.org)
20170314231326.3ac43a08@alma-ubu
On Mon, 13 Mar 2017 23:24:28 +0100
Björn Höfling <bjoern.hoefling@bjoernhoefling.de> wrote:

Toggle quote (51 lines)
> Hi Roel,
>
> On Thu, 02 Mar 2017 01:04:33 +0100
> Roel Janssen <roel@gnu.org> wrote:
>
> > Dear Guix,
> >
> > And finally, here is a patch for Darktable.
> > Even though the upstream project strongly recommends x86_64, I do
> > not know whether it actually does not work on other platforms. If
> > the builds fail on anything other than x86_64, we could limit it to
> > this platform only.
> >
> > Kind regards,
> > Roel Janssen
> >
> > >From 0c7e3fb1343594bae6e2922b1866468e1903c59d Mon Sep 17 00:00:00
> > >2001
> > From: Roel Janssen <roel@gnu.org>
> > Date: Thu, 2 Mar 2017 00:56:22 +0100
> > Subject: [PATCH] gnu: Add darktable.
> >
> > * gnu/packages/photo.scm (darktable): New variable.
> > ---
> > gnu/packages/photo.scm | 81
> > ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed,
> > 81 insertions(+)
> >
> > diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
> > index ce71d2a44..42da06080 100644
> > --- a/gnu/packages/photo.scm
> > +++ b/gnu/packages/photo.scm
> [..]
>
> > + ("fop" ,fop)
>
> I couldn't build it yet, because it requires the new llvm, but I think
> fop is only needed for documentation:
>
> Arch doesn't have it as a dependency:
> https://www.archlinux.org/packages/community/x86_64/darktable/
>
> Here it is mentioned only as dependency for the manual:
> https://redmine.darktable.org/projects/darktable/wiki/Building_darktable_22
>
> Hope that makes it easier,
>
> Björn
>
>

I could build and run it and load two photos into it today, leaving out
the dependency of "fop".

Björn
J
J
John Darrington wrote on 17 Mar 2017 08:56
darktable
(address . 25928@debbugs.gnu.org)
20170317075633.GA25852@jocasta.intra
I suggest that you replace "lighttable" in the package description
either with "light table" or "light-table".

Other than that, it LGTM.

J'

--
Avoid eavesdropping. Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.netor any PGP keyserver for public key.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAljLlrEACgkQimdxnC3oJ7P48ACfR8SjtBi10tCdtdgl7PMP5jZ6
7mcAnRf5GV1qJbvgkjb0u6h3U4+hqw8O
=XWjM
-----END PGP SIGNATURE-----


R
R
Ricardo Wurmus wrote on 30 Mar 2017 15:19
Re: bug#25928: [PATCH] gnu: Add darktable.
(name . Björn Höfling)(address . bjoern.hoefling@bjoernhoefling.de)
87fuhu52c8.fsf@elephly.net
Hi Björn,

Toggle quote (3 lines)
> I could build and run it and load two photos into it today, leaving out
> the dependency of "fop".

thanks for testing!

Roel, could you push a version of this patch without the dependency on
“fop”? You could add a FIXME comment if this means that some features
will be missing without it.

Thanks!

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
R
R
Roel Janssen wrote on 30 Mar 2017 15:00
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87y3vmex6p.fsf@gnu.org
Ricardo Wurmus writes:

Toggle quote (13 lines)
> Hi Björn,
>
>> I could build and run it and load two photos into it today, leaving out
>> the dependency of "fop".
>
> thanks for testing!
>
> Roel, could you push a version of this patch without the dependency on
> “fop”? You could add a FIXME comment if this means that some features
> will be missing without it.
>
> Thanks!

No. First we need the LLVM and CLANG version upgrade. I haven't found
the time to test that (yet).

Kind regards,
Roel Janssen
R
R
Ricardo Wurmus wrote on 13 Apr 2017 12:50
control message for bug #25928
(address . control@debbugs.gnu.org)
747bb292-ea3e-4bf4-8844-51f188c95d32@HTCATWO.mdc-berlin.net
tags 25928 moreinfo
R
R
Roel Janssen wrote on 10 May 2017 16:08
Re: bug#25928: [PATCH] gnu: Add darktable.
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87tw4skdns.fsf@gnu.org
From 5053b44b621932d3c3aa0f1ddb8b01dd04cd4680 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Wed, 10 May 2017 16:06:38 +0200
Subject: [PATCH] gnu: Add darktable.

* gnu/packages/photo.scm (darktable): New variable.
---
gnu/packages/photo.scm | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)

Toggle diff (109 lines)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index fff19551a..cb2eaadb2 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -32,18 +32,24 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages glib)
#:use-module (gnu packages graphics)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
+ #:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages tex)
#:use-module (gnu packages web)
@@ -300,3 +306,77 @@ photographic equipment.")
;; licensed GPL3, and the database is license CC-BY-SA 3.0. See the
;; README.md file for this clarification.
(license (list license:lgpl3 license:gpl3 license:cc-by-sa3.0))))
+
+(define-public darktable
+ (package
+ (name "darktable")
+ (version "2.2.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/darktable-org/darktable/releases/"
+ "download/release-"
+ version "/darktable-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1n7rddkxwcifc3kcdlnar9w562xv4h78fqkkn27jihqzp3b4am5x"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; There are no tests.
+ #:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-ldflags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "LDFLAGS"
+ (string-append
+ "-Wl,-rpath="
+ (assoc-ref outputs "out") "/lib/darktable"))
+ #t))
+ (add-after 'set-paths 'add-ilmbase-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; OpenEXR propagates ilmbase, but its include files do not appear
+ ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
+ ;; the CPATH to satisfy the dependency on "ImathInt64.h".
+ (setenv "CPATH"
+ (string-append
+ (assoc-ref inputs "ilmbase")
+ "/include/OpenEXR:" (or (getenv "CPATH") "")))
+ #t)))))
+ (native-inputs
+ `(("llvm" ,llvm-3.9.1)
+ ("clang" ,clang-3.9.1)))
+ (inputs
+ `(("libxslt" ,libxslt)
+ ("libxml2" ,libxml2)
+ ("pugixml" ,pugixml)
+ ("gtk+" ,gtk+)
+ ("sqlite" ,sqlite)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("cairo" ,cairo)
+ ("lcms" ,lcms)
+ ("exiv2" ,exiv2)
+ ("libtiff" ,libtiff)
+ ("curl" ,curl)
+ ("libgphoto2" ,libgphoto2)
+ ("dbus-glib" ,dbus-glib)
+ ("openexr" ,openexr)
+ ("ilmbase" ,ilmbase)
+ ("libsoup" ,libsoup)
+ ("python-jsonschema" ,python-jsonschema)
+ ("intltool" ,intltool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("libwebp" ,libwebp)
+ ("lensfun" ,lensfun)
+ ("librsvg" ,librsvg)
+ ("json-glib" ,json-glib)
+ ("freeimage" ,freeimage)))
+ (home-page "https://www.darktable.org")
+ (synopsis "Virtual lighttable and darkroom for photographers")
+ (description "Darktable is an open source photography workflow application
+and RAW developer. It manages your digital negatives in a database, lets you
+view them through a zoomable lighttable and enables you to develop raw images
+and enhance them.")
+ (license license:gpl3+)))
--
2.12.2
Ricardo Wurmus writes:

Toggle quote (13 lines)
> Hi Björn,
>
>> I could build and run it and load two photos into it today, leaving out
>> the dependency of "fop".
>
> thanks for testing!
>
> Roel, could you push a version of this patch without the dependency on
> “fop”? You could add a FIXME comment if this means that some features
> will be missing without it.
>
> Thanks!

Now that LLVM and CLANG 3.9.1 are in master, darktable is good to go in
too.

Attached is a new patch without "fop" as dependency. I also upgraded
darktable to the latest release (2.2.4).

I built and tested this version, and I cannot find any feature we're
missing by not including "fop".

Is this OK to push?

Kind regards,
Roel Janssen
R
R
Ricardo Wurmus wrote on 10 May 2017 16:40
(name . Roel Janssen)(address . roel@gnu.org)
87k25ohj1j.fsf@elephly.net
Roel Janssen <roel@gnu.org> writes:

Toggle quote (7 lines)
> From 5053b44b621932d3c3aa0f1ddb8b01dd04cd4680 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Wed, 10 May 2017 16:06:38 +0200
> Subject: [PATCH] gnu: Add darktable.
>
> * gnu/packages/photo.scm (darktable): New variable.
> ---
[…]
Toggle quote (23 lines)
> + (arguments
> + `(#:tests? #f ; There are no tests.
> + #:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib")
> + #:phases
> + (modify-phases %standard-phases
> + (add-before 'configure 'set-ldflags
> + (lambda* (#:key outputs #:allow-other-keys)
> + (setenv "LDFLAGS"
> + (string-append
> + "-Wl,-rpath="
> + (assoc-ref outputs "out") "/lib/darktable"))
> + #t))
> + (add-after 'set-paths 'add-ilmbase-include-path
> + (lambda* (#:key inputs #:allow-other-keys)
> + ;; OpenEXR propagates ilmbase, but its include files do not appear
> + ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
> + ;; the CPATH to satisfy the dependency on "ImathInt64.h".
> + (setenv "CPATH"
> + (string-append
> + (assoc-ref inputs "ilmbase")
> + "/include/OpenEXR:" (or (getenv "CPATH") "")))
> + #t)))))

I wonder if it would be possible to augment LDFLAGS and CPATH in
#:configure-flags or #:make-flags instead of using build phases (which I
find a bit crude).

If that’s too hard I promise I won’t complain about doing it with build
phases :)

Toggle quote (35 lines)
> + (native-inputs
> + `(("llvm" ,llvm-3.9.1)
> + ("clang" ,clang-3.9.1)))
> + (inputs
> + `(("libxslt" ,libxslt)
> + ("libxml2" ,libxml2)
> + ("pugixml" ,pugixml)
> + ("gtk+" ,gtk+)
> + ("sqlite" ,sqlite)
> + ("libjpeg" ,libjpeg)
> + ("libpng" ,libpng)
> + ("cairo" ,cairo)
> + ("lcms" ,lcms)
> + ("exiv2" ,exiv2)
> + ("libtiff" ,libtiff)
> + ("curl" ,curl)
> + ("libgphoto2" ,libgphoto2)
> + ("dbus-glib" ,dbus-glib)
> + ("openexr" ,openexr)
> + ("ilmbase" ,ilmbase)
> + ("libsoup" ,libsoup)
> + ("python-jsonschema" ,python-jsonschema)
> + ("intltool" ,intltool)
> + ("perl" ,perl)
> + ("pkg-config" ,pkg-config)
> + ("libwebp" ,libwebp)
> + ("lensfun" ,lensfun)
> + ("librsvg" ,librsvg)
> + ("json-glib" ,json-glib)
> + ("freeimage" ,freeimage)))
> + (home-page "https://www.darktable.org")
> + (synopsis "Virtual lighttable and darkroom for photographers")
> + (description "Darktable is an open source photography workflow
> application

s/an open source/a/

Toggle quote (5 lines)
> +and RAW developer. It manages your digital negatives in a database, lets you
> +view them through a zoomable lighttable and enables you to develop raw images
> +and enhance them.")
> + (license license:gpl3+)))

Good to push with the change to the description.
Thanks!

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
R
R
Roel Janssen wrote on 10 May 2017 17:28
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87shkck9ye.fsf@gnu.org
From 6723796c48bc09846be6dee6a23d695ac248f63e Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Wed, 10 May 2017 17:23:30 +0200
Subject: [PATCH] gnu: Add darktable.

* gnu/packages/photo.scm (darktable): New variable.
---
gnu/packages/photo.scm | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)

Toggle diff (103 lines)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index fff19551a..b68aea9d7 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -32,18 +32,24 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages glib)
#:use-module (gnu packages graphics)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
+ #:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages tex)
#:use-module (gnu packages web)
@@ -300,3 +306,71 @@ photographic equipment.")
;; licensed GPL3, and the database is license CC-BY-SA 3.0. See the
;; README.md file for this clarification.
(license (list license:lgpl3 license:gpl3 license:cc-by-sa3.0))))
+
+(define-public darktable
+ (package
+ (name "darktable")
+ (version "2.2.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/darktable-org/darktable/releases/"
+ "download/release-"
+ version "/darktable-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1n7rddkxwcifc3kcdlnar9w562xv4h78fqkkn27jihqzp3b4am5x"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; There are no tests.
+ #:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib")
+ #:make-flags
+ (list
+ (string-append "CPATH=" (assoc-ref %build-inputs "ilmbase")
+ "/include/OpenEXR:" (or (getenv "CPATH") "")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-ldflags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "LDFLAGS"
+ (string-append
+ "-Wl,-rpath="
+ (assoc-ref outputs "out") "/lib/darktable"))
+ #t)))))
+ (native-inputs
+ `(("llvm" ,llvm-3.9.1)
+ ("clang" ,clang-3.9.1)))
+ (inputs
+ `(("libxslt" ,libxslt)
+ ("libxml2" ,libxml2)
+ ("pugixml" ,pugixml)
+ ("gtk+" ,gtk+)
+ ("sqlite" ,sqlite)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("cairo" ,cairo)
+ ("lcms" ,lcms)
+ ("exiv2" ,exiv2)
+ ("libtiff" ,libtiff)
+ ("curl" ,curl)
+ ("libgphoto2" ,libgphoto2)
+ ("dbus-glib" ,dbus-glib)
+ ("openexr" ,openexr)
+ ("ilmbase" ,ilmbase)
+ ("libsoup" ,libsoup)
+ ("python-jsonschema" ,python-jsonschema)
+ ("intltool" ,intltool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("libwebp" ,libwebp)
+ ("lensfun" ,lensfun)
+ ("librsvg" ,librsvg)
+ ("json-glib" ,json-glib)
+ ("freeimage" ,freeimage)))
+ (home-page "https://www.darktable.org")
+ (synopsis "Virtual lighttable and darkroom for photographers")
+ (description "Darktable is a photography workflow application and RAW
+developer. It manages your digital negatives in a database, lets you view
+them through a zoomable lighttable and enables you to develop raw images
+and enhance them.")
+ (license license:gpl3+)))
--
2.12.2
Ricardo Wurmus writes:

Toggle quote (40 lines)
> Roel Janssen <roel@gnu.org> writes:
>
>> From 5053b44b621932d3c3aa0f1ddb8b01dd04cd4680 Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Wed, 10 May 2017 16:06:38 +0200
>> Subject: [PATCH] gnu: Add darktable.
>>
>> * gnu/packages/photo.scm (darktable): New variable.
>> ---
> […]
>> + (arguments
>> + `(#:tests? #f ; There are no tests.
>> + #:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib")
>> + #:phases
>> + (modify-phases %standard-phases
>> + (add-before 'configure 'set-ldflags
>> + (lambda* (#:key outputs #:allow-other-keys)
>> + (setenv "LDFLAGS"
>> + (string-append
>> + "-Wl,-rpath="
>> + (assoc-ref outputs "out") "/lib/darktable"))
>> + #t))
>> + (add-after 'set-paths 'add-ilmbase-include-path
>> + (lambda* (#:key inputs #:allow-other-keys)
>> + ;; OpenEXR propagates ilmbase, but its include files do not appear
>> + ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
>> + ;; the CPATH to satisfy the dependency on "ImathInt64.h".
>> + (setenv "CPATH"
>> + (string-append
>> + (assoc-ref inputs "ilmbase")
>> + "/include/OpenEXR:" (or (getenv "CPATH") "")))
>> + #t)))))
>
> I wonder if it would be possible to augment LDFLAGS and CPATH in
> #:configure-flags or #:make-flags instead of using build phases (which I
> find a bit crude).
>
> If that’s too hard I promise I won’t complain about doing it with build
> phases :)

See attached patch. By adding the LDFLAGS part to either #:make-flags
or #:configure-flags, the run-path validation phase fails at the end of
the build process.

So, maybe we can settle half-way here? :-)

Toggle quote (37 lines)
>> + (native-inputs
>> + `(("llvm" ,llvm-3.9.1)
>> + ("clang" ,clang-3.9.1)))
>> + (inputs
>> + `(("libxslt" ,libxslt)
>> + ("libxml2" ,libxml2)
>> + ("pugixml" ,pugixml)
>> + ("gtk+" ,gtk+)
>> + ("sqlite" ,sqlite)
>> + ("libjpeg" ,libjpeg)
>> + ("libpng" ,libpng)
>> + ("cairo" ,cairo)
>> + ("lcms" ,lcms)
>> + ("exiv2" ,exiv2)
>> + ("libtiff" ,libtiff)
>> + ("curl" ,curl)
>> + ("libgphoto2" ,libgphoto2)
>> + ("dbus-glib" ,dbus-glib)
>> + ("openexr" ,openexr)
>> + ("ilmbase" ,ilmbase)
>> + ("libsoup" ,libsoup)
>> + ("python-jsonschema" ,python-jsonschema)
>> + ("intltool" ,intltool)
>> + ("perl" ,perl)
>> + ("pkg-config" ,pkg-config)
>> + ("libwebp" ,libwebp)
>> + ("lensfun" ,lensfun)
>> + ("librsvg" ,librsvg)
>> + ("json-glib" ,json-glib)
>> + ("freeimage" ,freeimage)))
>> + (home-page "https://www.darktable.org")
>> + (synopsis "Virtual lighttable and darkroom for photographers")
>> + (description "Darktable is an open source photography workflow
>> application
>
> s/an open source/a/

Oops. Adjusted in the new patch.

Toggle quote (8 lines)
>> +and RAW developer. It manages your digital negatives in a database, lets you
>> +view them through a zoomable lighttable and enables you to develop raw images
>> +and enhance them.")
>> + (license license:gpl3+)))
>
> Good to push with the change to the description.
> Thanks!

Is this then finally the moment we get to have darktable in Guix? :-)

Kind regards,
Roel Janssen
R
R
Ricardo Wurmus wrote on 10 May 2017 18:06
(name . Roel Janssen)(address . roel@gnu.org)
87d1bghf1z.fsf@elephly.net
Roel Janssen <roel@gnu.org> writes:

Toggle quote (13 lines)
> > I wonder if it would be possible to augment LDFLAGS and CPATH in
> > #:configure-flags or #:make-flags instead of using build phases (which I
> > find a bit crude).
> >
> > If that’s too hard I promise I won’t complain about doing it with build
> > phases :)

> See attached patch. By adding the LDFLAGS part to either #:make-flags
> or #:configure-flags, the run-path validation phase fails at the end of
> the build process.

> So, maybe we can settle half-way here? :-)

Sure, looks good to me!

Toggle quote (5 lines)
> > Good to push with the change to the description.
> > Thanks!

> Is this then finally the moment we get to have darktable in Guix? :-)

Yay! Thank you!

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
R
R
Roel Janssen wrote on 10 May 2017 19:51
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87k25obnxm.fsf@gnu.org
Ricardo Wurmus writes:

Toggle quote (24 lines)
> Roel Janssen <roel@gnu.org> writes:
>
>> > I wonder if it would be possible to augment LDFLAGS and CPATH in
>> > #:configure-flags or #:make-flags instead of using build phases (which I
>> > find a bit crude).
>> >
>> > If that’s too hard I promise I won’t complain about doing it with build
>> > phases :)
>
>> See attached patch. By adding the LDFLAGS part to either #:make-flags
>> or #:configure-flags, the run-path validation phase fails at the end of
>> the build process.
>
>> So, maybe we can settle half-way here? :-)
>
> Sure, looks good to me!
>
>> > Good to push with the change to the description.
>> > Thanks!
>
>> Is this then finally the moment we get to have darktable in Guix? :-)
>
> Yay! Thank you!

Pushed in 91a9c65c7bae73d999ccc2288833e909ce4a0871.

Thanks!

Kind regards,
Roel Janssen
Closed
?