Subject: CVS commit: pkgsrc/graphics/darktable
From: Ryo ONODERA
Date: 2020-01-05 03:30:09
Message id: 20200105023009.30B70FA97@cvs.NetBSD.org

Log Message:
darktable: Update to 3.0.0

* Use clang and OpenMP because GCC Graphite is not universal
  (at least NetBSD 9.99.31 has no Graphite support).

Changelog:
## The Big Ones

- A full rework of the GUI. The whole GUI is now fully
  controlled by [GTK+ CSS \ 
rules](https://developer.gnome.org/gtk3/stable/chap-css-overview.html). There is
  no more size, color, position in Gtk C code, which makes the whole GUI \ 
themable. This version comes
  with several themes:

     - darktable                : the default theme
     - darktable-icons          : the default theme with icons

     - darktable-elegant-darker : more condensed fonts
                                  best experience with Roboto font installed

     - darktable-icons-darker   : as elegant, with module icons
                                  best experience with Roboto font installed

     - darktable-elegant-dark   : lighter version
     - darktable-elegant-grey   : even lighter version

     - darktable-icons-dark     : lighter version. with module icons
     - darktable-icons-grey     : even lighter version, with module icons

  New shortcuts have been introduced to quickly collapse borders, sidebars, \ 
histogram and
  navigation modules, allowing a new borderless editing experience.

  Note that the new GUI requires Gtk+ 3.22 or higher to work properly.

- It's now possible to associate dynamic key shortcuts to sliders, then
  use them with the mouse wheel or arrow keys to move the value up and down.
  For example, associating the <kbd>E</kbd> key to the exposure \ 
slider, you can press
  it and scroll to increase the exposure without having to open the module.
  You get fast heads-up access to all your favorite settings, as if you
  were using a dedicated multimedia console.

- The color picker on the 'tone curve', 'color zones' and 'fill light' modules,
  as well as the parametric mask controls, now allows you to select an
  area when enabled by using <kbd>Ctrl+click</kbd> on the button.

- Added undo/redo support in lighttable for tags, color labels, ratings,
  metadata, deleted history stack, pasted history stack and applied
  styles.

  IMPORTANT:
  The 'preview' and 'preview with focus detection' actions
  (previously <kbd>Z</kbd> and <kbd>Ctrl+Z</kbd> \ 
respectively) are now assigned to
  <kbd>W</kbd> and <kbd>Ctrl+W</kbd> in order to follow \ 
the convention of
  using <kbd>Ctrl+Z</kbd> for the "undo" function \ 
(<kbd>Ctrl+Y</kbd> for redo).

- A new timeline view has been introduced in the lighttable.

- A new 'culling' mode has been added to the lightable view. It
  displays a fixed number of consecutive images starting from the first
  selected, and allows you to pan & zoom them. The number of displayed images
  can be set by the user, and they can be navigated with the mouse wheel
  and keyboard.

- A quite extensive rewrite of the lighttable view (including the filmstrip in \ 
darkroom view)
  has been made to greatly improve the overall performance. The lighttable is now
  usable on 4K and 5K monitors.

- Added support for the new 'raster mask', a copy of a parametric mask
  which is stable during the whole pixel-pipe.

- The processing order of the pixel-pipe can now be changed by using
  <kbd>Ctrl+Shift+drag</kbd> on the module headers to arrange them \ 
relative
  to each other. It is VERY IMPORTANT to understand that this feature is NOT
  for creating a more convenient GUI layout, but for changing the actual
  processing of the image. DO NOT USE THIS FEATURE unless you understand the
  reason behind the default ordering, and have a specific reason for changing it.
  The default order is still the correct order for most purposes. Also note that
  styles will always apply the default ordering; creating a style based on modules
  which have had their order changed will NOT recreate this changed order when
  applied, and therefore may not give the expected result.

- The history stack will now always show mandatory modules which were previously
  hidden. They are always active as necessary for processing images, and are not
  removed by compressing history or by selecting one as a stating point for editing.
  These seven modules (some are RAW-only) have a specific icon to identify them \ 
easily:

          - raw black/white point
          - white balance
          - highlight reconstruction
          - demosaic
          - input color profile
          - output color profile
          - gamma

- The 'color zones' module now shows a histogram based on the chosen ‘select
  by’ channel, and if the color picker is in 'select area' mode, the range within
  the selected area will also be shown. By default, the spline adjustment is
  now similar to the curve controls, allowing you to add and delete nodes, but
  these nodes can still be moved with the old-style size control by selecting
  the 'edit by area' checkbox. There is also a new 'strong' processing option,
  and a new color picker which creates a curve based on selected image area.

- A new module 'filmic RGB' which, like the previous 'filmic', is designed
  to replace 'base curve', 'shadows and highlights' and other global \ 
tone-mapping modules.
  This new version replaces the one introduced in 2.6.2; it should be easier to use,
  and it will reduce color casts. The old 'filmic' module is now deprecated and
  is only available on images where it was already used for editing.

- A new module 'tone equalizer' is designed to merge the features of 'zone system',
  'shadows and highlights', and (local) 'tone mapping' modules in a scene-referred
  RGB space. It brings an easy and safe way to remap tones locally, performing a \ 
quick
  zone-based dodging and burning using Ansel Adam's zone system logic.
  The module provides an interface similar to audio graphic equalizers,
  with 9 bands (available as fixed sliders or nodes on a spline view),
  allowing you to selectively push or pull the exposure for each band in the
  range from blacks to specular highlights. It also features an interactive
  cursor that allows to push or pull the exposure gains directly from
  the image preview by simply hovering over an area and scrolling. It uses a \ 
guided filter
  internally to refine the dodging and burning mask, which preserves local contrast
  without producing halos along edges.

## New Features And Changes

- A new module for handling 3D RGB Lut transformations (PNG Hald-CLUT and
  Cube files are supported).

- Many improvements to the 'denoise (profiled)' module. The degree of shadow
  denoising can be controlled, including the correction of color casts
  (mainly improves high-ISO images). "Auto" modes which infer some \ 
parameters
  from the profile are available, allowing users to create presets
  which are adaptive to various ISO values. The default values of the sliders
  are also adapted dynamically on module activation, giving a good trade-off
  between noise smoothing and detail preservation.  The non-local means mode
  has 2 new options: one to coarse-grain denoising, and one to control the
  amount of fine detail to preserve. The controls now have soft boundaries,
  which means that users can use the keyboard to enter values outside the
  range of the sliders if they need to.

- Along with selecting the 'soft proof' color profile, users can now select an
  additional profile for the color space of the histogram, color picker and
  overexposed checker. When gamut or softproof checks are active the histogram
  and color picker use the softproof profile, otherwise they use the new
  histogram profile (which is always used for overexposure checking).

- A new setting for 'working profile' has been added to the input color profile
  module. This color space will be used by RGB modules between the input and
  output color profile modules.

- A new color picker has been added to the parametric masking controls which
  adjusts the range sliders based on the selected area from the image. Click the
  picker button to adjust the input image slider, \ 
<kbd>Ctrl+click</kbd> the
  button to adjust the output image slider.

- The 'picasa' target storage in the export module has been completely rewritten
  to support the new Google Photo API, and renamed 'google photos'. It is again
  possible to create albums directly from the export module.

- A new single-line image information display can be positioned at the top \ 
(left, right,
  or center) or bottom (center) of the darkroom view to replace the information \ 
previously
  overlaid on the histogram. The specific information shown can be configured in \ 
preferences.

- The 'tagging' module is faster, and can now display hierarchical tags in a
  tree view. Tags can now be designated as 'private' (not exported by default),
  'synonym' (to help search engines), and 'category' (not exported, for organizing
  the tag library). The metadata exported with images can now be configured in the
  'export selected' module, allowing you to choose which main types are exported,
  as well as define values for specific tags based on formulas.

- Many code optimizations for CPU and SSE paths. The tone equalizer module
  introduces a new optimization paradigm (GCC target clones), aimed toward users
  of pre-built Linux packages. The image-processing code will be cloned for several
  CPU generations (SSE2, SSE3, SSE4, AVX, AVX2) at compilation time, and the \ 
best-suited
  version of the code will be chosen by the system at run time. This experiment is
  to be generalized to other modules if proven successful, and will allow users \ 
of pre-built
  packages to get the same performance as if the program was specifically \ 
compiled for their
  computer. It needs GCC 9 compiler and does not yet work on Windows
  due to the lack of support of target clones on the OS side.

- A new preference to expand/collapse a darkroom module when it is
  activated/deactivated.

- The 'collect images' module has a new single-click option featuring range selection
  for date-time and numeric values.

- The orientation of drawn masks using the 'gradient' shape is now clearly displayed
  with an arrow.

- The 'graduated density' module has better accuracy when computing the
  rotation to avoid sporadic flipping of the gradient.

- Make sure the OpenCL kernel code is recompiled when the driver
  version is updated.

- Add color pickers for 'split toning', 'graduated density' and 'watermark' modules.

- The color picker positions are kept during editing within a module.

- The map view can zoom on the images of the selected collection.

- The slideshow will now start at the selected images if any, and supports
  changing the delay between images. It will also now be more responsive when
  manually moving backward and forward through the images.

- A new 'basic adjustments' module has been added. It allows to adjust
  the black level, exposure, highlight compression, contrast, middle grey,
  brightness and saturation. It also has an auto feature based on Rawtherapee's
  auto levels that can work on the entire image or a user selected area.

- A new 'rgb curve' module has been added. It has modes for linked and
  independent RGB channels. The curves and histogram can be displayed using
  the working profile or can be scaled to be 50% grey. A secondary color
  picker will add 4 nodes to the curve based on the area selected in the
  image: min, average, middle, and max.

- A new 'rgb levels' module has been added. It has linked and
  independent channels, preserve colors option and is native RGB.

- A new search box has been added to the module groups in the darkroom
  view, with configuration options to show only the module groups, only
  the search box, or both. Modules are searched for by (localized) name,
  and when displaying only the search box, the active modules are shown
  when the box is empty. A shortcut can be set for focusing the box.

- A preview window has been added to the darkroom that displays the edited image
  on a separate window.

- A new option 'skip' is added to the 'on conflict' setting on the export module
  which skips the exporting to existing destination files.

- Allow to switch between clone/heal and blur/color modes in 'retouch' module
  after creating a shape using <kbd>Ctrl+click</kbd> on \ 
corresponding mode icon.

- An accels window (<kbd>H</kbd>) has been added to summarize all
  available shortcuts and mouse actions available in the current
  context.

- A zoom & pan feature has been added to lighttable full preview.

- The base-curve module is now using luminance color preservation by
  default. This can give slightly less saturated pictures compared to
  the previous version where no color preservation was made. But it
  will generally avoid color shift.

## Bug fixes

- The color picker support has been fixed by a complete rewrite. It
  should now give correct values in all cases.

- Fix overexposed display.

- Do not disable SSL for storage modules.

- A long standing bug on mask distort in Liquify module has been
  fixed. This was visible when a liquify mask was used together with
  the perspective correction module activated.

- A bug on mask distort from crop & rotate when using flip and
  some angle has been fixed.

- Fix manual crop in perspective correction module when not in default
  orientation.

- The modification of date/time is now stored into the XMP. This
  ensures that removing the picture and reloading will keep the changes.

- Fix orientation to support all cases as exposed in these examples:
  https://github.com/recurser/exif-orientation-examples

- Store the panel states for each lighttable mode.

- Fix crop&rotate and orientation in the lightroom importer.

- Fix ProPhoto RGB profile.

- Fix exif lens metadata parsing containing comma.

## Lua

- The displayed image in darkroom view can now be changed.

- GUI panel visibility can now be queried and changed.

- Lighttable view toolbox (rating filter, rating comparator, sort
  field, and sort direction) can now be changed.

- Lighttable layout and zoom level can now be changed.

- All images containing a specific tag can be searched and returned.

## Changed Dependencies

- CMake 3.10 is now required.
- OpenMP 4.0 is now required (optional dependency).

## RawSpeed changes

### Changed Dependencies

- CMake 3.10 is now required.
- Pugixml 1.8 is now required.
- OpenMP 4.0 is now required (optional dependency).
- POSIX threads are no longer required.
- zlib 1.2.11 is now required (optional dependency).

### Changes

- Threading was migrated to OpenMP from POSIX threads.
- Phase One IIQ decompressor fixes (quadrant scaling, bad column).
- Large-scale code cleanup, hardening is ongoing still.
- A CMake infrastructure was added to allow integration of RawSpeed into LLVM \ 
LNT / Test-Suite.
- Widespread performance tuning, most affected decompressors:
  * Sony ARW2
  * Panasonic V5
  * Phase One
  * Nikon
  * Pentax
  * Canon
  * Samsung V1 (compression = '32772')
  * Samsung V2 (compression = '32773')
- Continuation of collaboration with LLVM Compiler Infrastructure Project.

## Camera support, compared to 2.6.0

### Base Support

- Epson R-D1s
- Epson R-D1x
- Fujifilm FinePix F770EXR
- Fujifilm FinePix S7000
- Fujifilm GFX 50R (compressed)
- Fujifilm X-A10
- Fujifilm X-T30 (compressed)
- Fujifilm XF10
- Kodak DCS Pro 14N
- Kodak EasyShare Z981
- Kodak EasyShare Z990
- Leica C (Typ 112) (4:3)
- Leica CL (dng)
- Leica Q (Typ 116) (dng)
- Leica Q2 (dng)
- Leica SL (Typ 601) (dng)
- Leica V-LUX (Typ 114) (3:2, 4:3, 16:9, 1:1)
- Nikon Z 6 (14bit-uncompressed, 12bit-uncompressed)
- Nikon Z 7 (14bit-uncompressed)
- Olympus E-M1X
- Olympus E-M5 Mark III
- Olympus TG-6
- Panasonic DC-G90 (4:3)
- Panasonic DC-G91 (4:3)
- Panasonic DC-G95 (4:3)
- Panasonic DC-G99 (4:3)
- Panasonic DC-ZS200 (3:2)
- Panasonic DMC-TX1 (3:2)
- Phase One P30
- Sony DSC-RX0M2
- Sony DSC-RX100M6
- Sony DSC-RX100M7
- Sony ILCE-6400
- Sony ILCE-6600
- Sony ILCE-7RM4

### White Balance Presets

- Leica Q2
- Nikon D500
- Nikon Z 7
- Olympus E-M5 Mark III
- Panasonic DC-LX100M2
- Sony ILCE-6400

### Noise Profiles

- Leica Q2
- Nikon D3
- Nikon D3500
- Nikon Z 6
- Nikon Z 7
- Olympus E-PL8
- Olympus E-PL9
- Panasonic DC-LX100M2
- Sony DSC-RX100M5A
- Sony ILCE-6400
- Sony SLT-A35

## Translations

- Catalan
- Czech
- Danish
- German
- European Spanish
- French
- Hebrew
- Hungarian
- Italian
- Japanese
- Norwegian Bokmål
- Dutch
- Polish
- Russian
- Slovenian

Files:
RevisionActionfile
1.105modifypkgsrc/graphics/darktable/Makefile
1.15modifypkgsrc/graphics/darktable/PLIST
1.32modifypkgsrc/graphics/darktable/distinfo