[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
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 25928
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