all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Roel Janssen <roel@gnu.org>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: 25928@debbugs.gnu.org
Subject: bug#25928: [PATCH] gnu: Add darktable.
Date: Wed, 10 May 2017 17:28:25 +0200	[thread overview]
Message-ID: <87shkck9ye.fsf@gnu.org> (raw)
In-Reply-To: <87k25ohj1j.fsf@elephly.net>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-gnu-Add-darktable.patch --]
[-- Type: text/x-patch, Size: 4098 bytes --]

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(+)

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


[-- Attachment #2: Type: text/plain, Size: 3480 bytes --]


Ricardo Wurmus writes:

> 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? :-)

>> +    (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.

>> +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

  reply	other threads:[~2017-05-10 15:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87zih4ee7i.fsf@gnu.org>
     [not found] ` <20170313232428.0530762b@alma-ubu>
     [not found]   ` <20170314231326.3ac43a08@alma-ubu>
2017-03-30 13:19     ` bug#25928: [PATCH] gnu: Add darktable Ricardo Wurmus
2017-03-30 13:00       ` Roel Janssen
2017-05-10 14:08       ` Roel Janssen
2017-05-10 14:40         ` Ricardo Wurmus
2017-05-10 15:28           ` Roel Janssen [this message]
2017-05-10 16:06             ` Ricardo Wurmus
2017-05-10 17:51               ` Roel Janssen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87shkck9ye.fsf@gnu.org \
    --to=roel@gnu.org \
    --cc=25928@debbugs.gnu.org \
    --cc=rekado@elephly.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.