we’re proud to finally announce the new feature release of darktable, 2.2.0!

the github release is here: https://github.com/darktable-org/darktable/releases/tag/release-2.2.0.

as always, please don’t use the autogenerated tarball provided by github, but only our tar.xz. the sha256 checksum is:

3eca193831faae58200bb1cb6ef29e658bce43a81706b54420953a7c33d79377 darktable-2.2.0.tar.xz 75d5f68fec755fefe6ccc82761d379b399f9fba9581c0f4c2173f6c147a0109f darktable-2.2.0.dmg

and the changelog as compared to 2.0.0 can be found below.

when updating from the currently stable 2.0.x series, please bear in mind that your edits will be preserved during this process, but it will not be possible to downgrade from 2.2 to 2.0.x any more.

Well over 2k commits since 2.0.0

298 pull requests handled

360+ issues closed

Gource visualization of git log from 2.0.0 to right before 2.2.0:

##The Big Ones:

Add new automatic perspective correction module (https://www.darktable.org/2016/03/a-new-module-for-automatic-perspective-correction/)

Liquify tool for all your fancy pixel moving (https://www.darktable.org/2016/04/liquify-liquify/)

A new image module to use a Color Look Up Table (CLUT) to change colors in the image (https://www.darktable.org/2016/05/colour-manipulation-with-the-colour-checker-lut-module/)

In Highlight reconstruction module, the mode LCh reconstruction was completely rewritten, and is no longer useless!

A new tool, darktable-chart, that goes along with the CLUT module, to create styles for the latter

Exposure fusion in the basecurve module to lower the dynamic range of images (https://www.darktable.org/2016/08/compressing-dynamic-range-with-exposure-fusion/)

Add new raw overexposure indication (https://www.darktable.org/2016/10/raw-overexposed/)

Darkroom: the preview (in top-left corner) is now no longer pre-demosaiced (but just downscaled without demosaicing it at the same time), thus the preview, color picker, histogram show the proper results, especially when there is highlight clipping.

##Quite Interesting Changes:

Split the database into a library containing images and a general one with styles, presets and tags. That allows having access to those when for example running with a :memory: library

Support running on platforms other than x86 (64bit little-endian, currently ARM64 only) (https://www.darktable.org/2016/04/running-on-non-x86-platforms/)

darktable is now happy to use smaller stack sizes (no less than 256Kb). That should allow using musl libc

Allow darktable-cli to work on directories

Allow to import/export tags from Lightroom keyword files

Allow using modifier keys to modify the step for sliders and curves. Defaults: Ctrl - x0.1; Shift - x10

Allow using the [keyboard] cursor keys to interact with sliders, comboboxes and curves; modifiers apply too

Support presets in “more modules” so you can quickly switch between your favorite sets of modules shown in the GUI

Add range operator and date compare to the collection module

Add basic undo/redo support for the darkroom (masks are not accounted !)

Support the Exif date and time when importing photos from camera

Input color profile module, when profile is just matrix (and linear curve), is 1/3 faster now.

Rudimentary CYGM and RGBE color filter array support

Nicer web gallery exporter – now touch friendly!

OpenCL implementation of VNG/VNG4 demosaicing methods

OpenCL implementation of Markesteijn demosaicing method for X-Trans sensors

Filter-out some useless EXIF tags when exporting, helps keep EXIF size under ~64Kb

OpenCL: properly discard CPU-based OpenCL devices. Fixes crashes on startup with some partially-working OpenCL implementations like pocl.

darktable-cli: do not even try to open display, we don’t need it.

Hotpixels module: make it actually work for X-Trans

Cmstest tool should now produce correct output in more cases, especially in multi-monitor setups.

Darkroom histogram now uses more bins: use all 8-bit of the output, not just 6.

##Some More Changes, Probably Not Complete:

Drop darktable-viewer tool in favor of slideshow view

Remove gnome keyring password backend, use libsecret instead

When using libsecret to store passwords then put them into the correct collection

Hint via window manager when import/export is done

Quick tagging searches anywhere, not just at the start of tags

The sidecar XMP schema for history entries is now more consistent and less error prone

Rawspeed: fixes for building with libjpeg (as opposed to libjpeg-turbo)

Give the choice of equidistant and proportional feathering when using elliptical masks (shift+click)

Add geolocation to watermark variables

Fix some crashes with missing configured ICC profiles

Support greyscale color profiles

Lens correction module: switched back to normal Lensfun search mode for lens lookups.

Make sure that proper signal handlers are still set after GM initialization…

OSX: add trash support (thanks to Michael Kefeder for initial patch)

Attach Xmp data to EXR files

Several fixes for HighDPI displays

Use Pango for text layout, thus supporting RTL languages

Feathering size in some mask shapes can be set with shift+scroll

Many bugs got fixed and some memory leaks plugged

The usermanual was updated to reflect the changes in the 2.2 series

Tone curve: mode “automatic in XYZ” mode for “scale chroma”

Some compilation fixes

##Lua specific changes:

All asynchronous calls have been rewritten the darktable-specific implementation of yield was removed darktable.control.execute allows to execute some shell commands without blocking Lua darktable.control.read allows to wait for a file to be readable without blocking Lua darktable.control.sleep allows to pause the Lua execution without blocking other Lua threads

darktable.gui.libs.metadata_view.register_info allows to add new field to the metadata widget in the darkroom view

The TextView widget can now be created in Lua, allowing input of large chunks of text

It is now possible to use a custom widget in the Lua preference window to configure a preference

It is now possible to set the precision and step on slider widgets

##Changed Dependencies:

CMake 3.0 is now required.

In order to compile darktable you now need at least gcc-4.7+/clang-3.3+, but better use gcc-5.0+

Drop support for OS X 10.6

Bump required libexiv2 version up to 0.24

Bump GTK+ requirement to gtk-3.14. (because even debian stable has it)

Bump GLib requirement to glib-2.40.

Port to OpenJPEG2

SDL is no longer needed.

Remove gnome keyring password backend

##Base Support:

Canon EOS-1D X Mark II

Canon EOS 5D Mark IV

Canon EOS 80D

Canon EOS 1300D

Canon EOS Kiss X80

Canon EOS Rebel T6

Canon EOS M10

Canon PowerShot A720 IS (dng)

Canon PowerShot G7 X Mark II

Canon PowerShot G9 X

Canon PowerShot SD450 (dng)

Canon PowerShot SX130 IS (dng)

Canon PowerShot SX260 HS (dng)

Canon PowerShot SX510 HS (dng)

Fujifilm FinePix S100FS

Fujifilm X-Pro2

Fujifilm X-T2

Fujifilm X70

Fujifilm XQ2

GITUP GIT2 (chdk-a, chdk-b)

(most nikon cameras here are just fixes, and they were supported before already)

Nikon 1 AW1 (12bit-compressed)

Nikon 1 J1 (12bit-compressed)

Nikon 1 J2 (12bit-compressed)

Nikon 1 J3 (12bit-compressed)

Nikon 1 J4 (12bit-compressed)

Nikon 1 J5 (12bit-compressed, 12bit-uncompressed)

Nikon 1 S1 (12bit-compressed)

Nikon 1 S2 (12bit-compressed)

Nikon 1 V1 (12bit-compressed)

Nikon 1 V2 (12bit-compressed)

Nikon 1 V3 (12bit-compressed, 12bit-uncompressed)

Nikon Coolpix A (14bit-compressed)

Nikon Coolpix P330 (12bit-compressed)

Nikon Coolpix P340 (12bit-compressed, 12bit-uncompressed)

Nikon Coolpix P6000 (12bit-uncompressed)

Nikon Coolpix P7000 (12bit-uncompressed)

Nikon Coolpix P7100 (12bit-uncompressed)

Nikon Coolpix P7700 (12bit-compressed)

Nikon Coolpix P7800 (12bit-compressed)

Nikon D1 (12bit-uncompressed)

Nikon D100 (12bit-compressed, 12bit-uncompressed)

Nikon D1H (12bit-compressed, 12bit-uncompressed)

Nikon D1X (12bit-compressed, 12bit-uncompressed)

Nikon D200 (12bit-compressed, 12bit-uncompressed)

Nikon D2H (12bit-compressed, 12bit-uncompressed)

Nikon D2Hs (12bit-compressed, 12bit-uncompressed)

Nikon D2X (12bit-compressed, 12bit-uncompressed)

Nikon D3 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)

Nikon D300 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)

Nikon D3000 (12bit-compressed)

Nikon D300S (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)

Nikon D3100 (12bit-compressed)

Nikon D3200 (12bit-compressed)

Nikon D3300 (12bit-compressed, 12bit-uncompressed)

Nikon D3400 (12bit-compressed)

Nikon D3S (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)

Nikon D3X (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)

Nikon D4 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)

Nikon D40 (12bit-compressed, 12bit-uncompressed)

Nikon D40X (12bit-compressed, 12bit-uncompressed)

Nikon D4S (14bit-compressed)

Nikon D5 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)

Nikon D50 (12bit-compressed)

Nikon D500 (14bit-compressed, 12bit-compressed)

Nikon D5000 (12bit-compressed, 12bit-uncompressed)

Nikon D5100 (14bit-compressed, 14bit-uncompressed)

Nikon D5200 (14bit-compressed)

Nikon D5300 (12bit-uncompressed, 14bit-compressed, 14bit-uncompressed)

Nikon D5500 (12bit-uncompressed, 14bit-compressed, 14bit-uncompressed)

Nikon D60 (12bit-compressed, 12bit-uncompressed)

Nikon D600 (14bit-compressed, 12bit-compressed)

Nikon D610 (14bit-compressed, 12bit-compressed)

Nikon D70 (12bit-compressed)

Nikon D700 (12bit-compressed, 12bit-uncompressed, 14bit-compressed)

Nikon D7000 (14bit-compressed, 12bit-compressed)

Nikon D70s (12bit-compressed)

Nikon D7100 (14bit-compressed, 12bit-compressed)

Nikon D80 (12bit-compressed, 12bit-uncompressed)

Nikon D800 (14bit-compressed, 12bit-compressed, 12bit-uncompressed)

Nikon D800E (14bit-compressed, 12bit-compressed, 12bit-uncompressed)

Nikon D90 (12bit-compressed, 12bit-uncompressed)

Nikon Df (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)

Nikon E5400 (12bit-uncompressed)

Nikon E5700 (12bit-uncompressed)

Olympus PEN-F

OnePlus One (dng)

Panasonic DMC-FZ150 (1:1, 16:9)

Panasonic DMC-FZ18 (16:9, 3:2)

Panasonic DMC-FZ300 (4:3)

Panasonic DMC-FZ50 (16:9, 3:2)

Panasonic DMC-G8 (4:3)

Panasonic DMC-G80 (4:3)

Panasonic DMC-G81 (4:3)

Panasonic DMC-G85 (4:3)

Panasonic DMC-GX80 (4:3)

Panasonic DMC-GX85 (4:3)

Panasonic DMC-LX3 (1:1)

Panasonic DMC-LX10 (3:2)

Panasonic DMC-LX15 (3:2)

Panasonic DMC-LX9 (3:2)

Panasonic DMC-TZ100 (3:2)

Panasonic DMC-TZ101 (3:2)

Panasonic DMC-TZ110 (3:2)

Panasonic DMC-ZS110 (3:2)

Pentax K-1

Pentax K-70

Samsung GX20 (dng)

Sony DSC-F828

Sony DSC-RX100M5

Sony DSC-RX10M3

Sony DSLR-A380

Sony ILCA-68

Sony ILCA-99M2

Sony ILCE-6300

We were unable to bring back these 2 cameras, because we have no samples.

If anyone reading this owns such a camera, please do consider providing samples.

Nikon E8400

Nikon E8800

##White Balance Presets:

Canon EOS 1200D

Canon EOS Kiss X70

Canon EOS Rebel T5

Canon EOS 1300D

Canon EOS Kiss X80

Canon EOS Rebel T6

Canon EOS 5D Mark IV

Canon EOS 5DS

Canon EOS 5DS R

Canon EOS 750D

Canon EOS Kiss X8i

Canon EOS Rebel T6i

Canon EOS 760D

Canon EOS 8000D

Canon EOS Rebel T6s

Canon EOS 80D

Canon EOS M10

Canon EOS-1D X Mark II

Canon PowerShot G7 X Mark II

Fujifilm X-Pro2

Fujifilm X-T2

Fujifilm X-T10

Fujifilm X100T

Fujifilm X20

Fujifilm X70

Nikon 1 V3

Nikon D5500

Olympus PEN-F

Pentax K-1

Pentax K-70

Pentax K-S1

Pentax K-S2

Sony ILCA-68

Sony ILCE-6300

##Noise Profiles:

Canon EOS 5DS R

Canon EOS 80D

Canon PowerShot G15

Canon PowerShot S100

Canon PowerShot SX100 IS

Canon PowerShot SX50 HS

Fujifilm X-T10

Fujifilm X-T2

Fujifilm X100T

Fujifilm X20

Fujifilm X70

Nikon 1 V3

Nikon D5

Nikon D5500

Olympus E-PL6

Olympus E-PM2

Olympus PEN-F

Panasonic DMC-FZ1000

Panasonic DMC-GF7

Pentax K-1

Pentax K-S2

Ricoh GR

Sony DSLR-A900

Sony DSC-RX10

Sony ILCE-6300

Sony NEX-5

Sony SLT-A37

##New Translations:

Hebrew

Slovenian

##Updated Translations:

Catalan

Czech

Danish

Dutch

French

German

Hungarian

Italian

Polish

Russian

Slovak

Spanish

Swedish

Ukrainian

We wish you a merry Christmas, happy Hanukkah or just a good time. Enjoy

taking photos and developing them with darktable.