* Mon Sep 09 2019 email@example.com
- bsc#1144344: Remove JPEG2000 support due to planned removal of
jasper, drop pkgconfig(jasper) BuildRequires.
* Sun Aug 04 2019 Stefan Brüns <firstname.lastname@example.org>
- Port sdl-display operation to SDL2: glgo#GNOME/gegl!184.
- Add autoconf BuildRequires and pass autogen.sh call.
- Replace SDL-devel with libSDL2-devel BuildRequires: Build SDL2
* Sat Aug 03 2019 Stefan Brüns <email@example.com>
- Remove unused build dependencies:
- graphviz-gd is checked for, but unused: glgo#GNOME/gegl!182.
- gtk-doc generation is disabled, i.e. unused.
- enscript just regenerates bundled files, add
fix_doc_installation.patch to avoid the need for this.
* Thu May 09 2019 Bjørn Lie <firstname.lastname@example.org>
- Update to version 0.4.16:
- Swapped behavior of cubic interpolation from cubic to
mithcell coefficients, leading to crisper results in all uses
of the cubic sampler.
- Use a custom allocator for tile data which aligns data and
groups allocations in blocks - improving performance on
windows by keeping more slack allocation memory in-process.
On linux the opposite was needed and is achieved by using the
GNU extension malloc_trim which permits forcing invokation of
the glibc malloc/free allocators garbage collection function.
- Permit tiles to be unreffed after GEGL shut-down without
crash, which is likely when using bindings to dynamic
- Improved deadlock prevention in gegl_buffer_copy() when using
copy on write.
- Platform specific build fixes for both win32 and OSX.
- Avoid in-place processing for cached nodes.
- Indentation consitency improvements.
- Permit more detailed specifying/overriding of OpenCL device
through the GEGL_USE_OPENCL environment variable.
- New call gegl_update_anim_time for applying the animation
curves of properties.
+ Build: Added gitlab continuous integration.
- Use indirect buffer inputs on main thread during
multi-processed processing for point-filters/composers and
tranform base classes.
- Smaller required/invalided ROI for map-absolute/relative when
using nearest neighbor.
- tiff-save and jpg-save fixed dimensions when buffer saved has
- Added missing descriptions of properties for cubism, mosaic,
tile-paper, color, mantiuk06 and vignette operations.
- ff-load fix some of the deprecation warnings.
- ff-save avoid crashing if audio or video codec fails to
- cache, parent class changed - it is no longer a point
operations, also speed up processing and permit copy on write
handling of tiles.
- opacity and invert - crash for 8bpc buffers, reimplemented
logic for (non-)associated alpha OpenCL kernel selection.
+ Tools: Drop direct dependency on exiv2 - we now only
transiently depend on it through the gexiv2 abstraction.
+ commandline tool/gui:
- Store per image editing chains in .gegl folder instead of
- Set window title, permit interaction with opened .lui
documents, fixed playback of audio for opened videos - it now
works; if the video is decoding, scaling and display is fast
enough to leave spare cycles.
- Support for nearest neighbor scaling of imagry; aiding video
playback without dropping audio frames.
- Custom collection order and per-file key-value metadata.
- Drop explicit pkgconfig(exiv2) BuildRequires following upstream
* Wed Mar 20 2019 Bjørn Lie <email@example.com>
- Update to version 0.4.14:
- New Scratch allocator for short lived buffers.
- Removed unneeded buffer copies in some processing code paths
in GeglNode and GeglProcessor.
- Add gegl_babl_variant API for getting variations on an
- Expose gegl_node_is_graph().
- Compression of tile data.
- Handle dynamically changing swap dir.
- Improvements to mipmap damage propagation.
- Fixes to threading race conditions.
- Low-level tile handling more adapted to buffers creating from
existing linear data.
- New iterator API is now the default,
GEGL_BUFFER_ITERATOR2_API is no longer needed.
- CMYK/grayscale handling for scaled blits, code paths in
- New default tile-cache size, 50% of RAM.
- Initialize the first OpenCL device with IMAGE support.
- Added gegl_parallell_ from gimp_parallell_ API to distribute
processing for multiple cores.
- crop, added aux-pad - if connected the incoming bounding box
determines the crop size.
- Input-format specific processing for performance in
watershed-transform and invert ops. CMYK handling in
jpg-load/save, tiff-load/save, gaussian-blur, opacity, most
composing and blending operations, text, vector-stroke, path,
and transform operations.
- Improved or fixed mipmap preview rendering of emboss,
linear-gradient and radial-gradient.
- Better ui strings/range/defaults for: distort/waves and
- gaussian-blur: fix mistake in implementation of IIR Young
blur 1d, which caused non circular halos.
- New operation: pdf-load with build dependency on
- Added offset properties to pixelize filter.
- New ops in workshop: voroni diagram, Grey Color Removal,
- Handle mipmap rendering for linear-gradient and
- The existing microraptor-gui (immediate mode touch UI+CSS
with cairo) image viewer that can be built as part of the
gegl binary has been revisted, a graph/property editor has
been added, and migration/extension to lua has begun for
parts of the code.
- WARNING: many parts of the UI is of exploratory proof of
concept/alpha quality but are released since the code is part
of the GEGL repository and important development tools both
for creating and testing new GEGL operations as well as GEGL
- Some screenshots showing some the process towards the state
and capabilties of the UI in this release can be seen at
- To build with this UI the following dependencies also need to
be satisifed, for now this is not intended to be packaged by
. lua-lgi (debian package name) upstream:
. mmm https://github.com/hodefoting/mmm
. mrg https://github.com/hodefoting/mrg
- folder view.
- resolution independent UI.
- touch oriented navigation.
- GIF / video playback.
- PDF pagination.
- goats that expose performance and capabilty issues in GEGL.
- efficient (though not sandboxed) thumbnailing.
- embedded simple commandline.
- graph editor.
- automatic, consistent graph layout.
- autogenerated property-inspector ui.
- visualization of color model/bitdepth through styling of
- live-extendable with lua code for per-operation canvas UI.
- Add pkgconfig(poppler-glib) BuildRequires: New dependency.
* Fri Nov 02 2018 firstname.lastname@example.org
- Update to version 0.4.12:
+ GeglBuffer: Fix fix of scaled blitting, the fix from last
release introduced scaling artifacts for all formats that are
- Changes from version 0.4.10:
- Fix integer overflow issues for u32 blit scaling code paths.
- Reduced memory clearing overhead for temporary buffers during
- Round alpha component during u8 bilinear/box filtering.
- gegl_buffer_dup now matches source buffer abyss, shift and
tile-size more closely.
- Added GEGL_TILE_COPY command for backends, for more efficient
- New GeglBufferIterator API.
- Move type-generic scaling algorithms to GeglBuffer folder,
move opencl integration bits out of buffer.
- gif-load: new operation for decoding GIF images/animations,
with frame delay exposed as an out-property.
- exr-save: do not hard-code a version name space.
- long-shadow: add 'Fading (fixed length)' style with a new
user-defined 'Midpoint' parameter.
- maniuk06: use double precision, permitting to work on larger
- watershed-transform: improved description.
- unsharp-mask: permit std-dev radius of up to 1500px (from
- Updated all operations to use new iterator API.
* Thu Aug 23 2018 email@example.com
- Update to version 0.4.8:
+ Core/GeglBuffer: Fixes to races during buffer/tile storage
destruction, improve swap usage for stored empty tiles.
- motion-blur-circular - improve/clarify property ui
- median-blur - added abyss-policy property
- long-shadow - new operation
- little-planet - adapt reference composition
- Changes from version 0.4.6:
+ Up until now GEGL has been using a color space corresponding to
scRGB as an unbounded device independent/possibly
scene-referred HDR color space - with a similar approach to to
how ACEScg works but with a worse set of RGB primaries. babl
formats, represented by a pointer and a corresponding
encoding/format string have been used to specify the specific
encoding of pixel values. The encoding including component
order, data type and TRC encoding. Where "RGBA float" means
32bit float data and "R'G'B' u8" the ' indicates non-linear,
and thus this is sRGB. "RaGaBaA half" gives premultiplied
linear half data. Other encodings and conversions are also
provided through these formats including "CIE Lab float" and
+ As a color management workflow for scene-referred imaging the
above could be sufficient, but GIMP needs data in the 0.0-1.0
range for some display referred blending modes to work
properly. As a consequence of this recognized short-coming GIMP
has been passing the pixels of for instance ProPhoto "R'G'B'A
float" off as "R'G'B'A float" and linear ProPhoto "RGBA float"
as "RGBA float" this works for single operations, but falls
apart when the colors are converted to CIE Lab. This is the
good enough state where the other benefits of having a stable
release powered by GEGL outweighed not being entirely correct.
+ Since babl 0.1.32 of october 2017, all babl formats have an
associated unchangable space associated with them, and since
then GeglBuffer has worked correctly with it - since
GeglBuffers use of babl API did not change. GIMP is already
using these parts of babl for ICC matrix based conversions
since using babl for ICC profile transforms is an order of
magnitude faster than using the lcms2 library. It took time to
come up with the above scheme of integrating arbitrary
primaries and curves for spaces with babl in a maintainable
manner, and it has taken until the last month to come up with a
full plan for the rest of GEGL to be aware of and handling
arbirary parametric ICC v2/v4 based color spaces for
operations; without limiting the ability to extend and use the
code for a wide range of scenarios.
+ A space can be constructed from a preferenced
name/specification, loaded/saved from ICC matrix profiles or
constructed and serialized to whitepoint + rgb chromaticities /
xyz matrix. More recently an additional trc mark has been added
'~', giving this vocabulary for RGB formats, in addition to
variants with alpha and pre-multiplied alpha variants of the
- "RGB" linear primaries from space, linear data
- "R'G'B'" non-linear primaries from space, TRCs from space
- "R~G~B~" perceptual primaries from space, sRGB TRC
+ When creating device independent CIE based spaces they also get
passed a space, this means that we can convert CIE Lab to RGB
float, keeping track of which space / ICC profile the data
+ GEGL operations now construct their desired encodings of
formats by taking the space of buffers on input pads into
account. By default, for composers "input" wins over "aux" to
determine ops space. If an operation is not ported, data will
be converted to sRGB on input and sRGB will come out of the
+ Buffer loaders PNG, JPG, TIFF and EXR generate custom spaces
based on ICC profiles/primaries. The corresponding savers saves
color space information. A new save handler for the .icc
extension, acts like an image storer but only saves the ICC
profile of the buffer it gets on input.
+ With no additional operations inserted, this now means that
GEGL graphs operate on linear / non-linear variants of the
color space used in the input images without conversion. The
new operations gegl:cast-space and gegl:convert-space provide
means of overriding this behavior, see the new section about
color management in the gegl-chain syntax documentation at
+ Initial work has started on making GIMP also use of and
propagate color space information along with encoding in babl
formats, changes which also will be integrated in the 2.10
+ Other changes to operations: vignette: fixes to gamma property
+ New operations:
- cast-space: assign/override color space
- convert-space: convert to a different color space
- litte-planet: stereographic-mapping split out of the
+ New operation in workshop: acrs-rrt: ACES RRT based HDR to SDR
proof/preview point-filter tonemapping op.
* Thu Jul 05 2018 firstname.lastname@example.org
- Update to version 0.4.4:
- Point filters with need for format conversion of input are
- Added swap-reading, swap-writing, swap-read-total and
swap-write-total properties to GeglStats.
- Trim tile-cache when shrinking.
- Added reading locks to tiles further improving concurrent
access tolerance of GeglBuffer.
- threshold: operating format changed from linear to
- unsharp-mask: add rename standard-deviation and scale
properties to 'Radius' and 'Amount', add 'Threshold'
- recursive-transform now supports applying multiple
- Fixed integer overflow due to logic error in pixelize.
- New operation: gegl:abs which negates negative values.
- New operation in workshop: selective-hue-saturation.
* Wed May 16 2018 email@example.com
- Update to version 0.4.2:
+ Build: Abort early if autoreconf fails, remove unused bits,
default to -Ofast as CFLAGS.
- Improve concurrency for trimming and destruction of tile
caches. Improve cache invalidation during partial mipmap
- Do new cheap clones of buffers with new internal gegl-buffer
- Do not keep cached sampler in buffer it makes cache
invalidation hard, and for performance/threading it is better
to create ones own samplers anyways. The old API still
exists, though parts of it is now deprecated. The single
special case where gegl_buffer_sample remains somewhat
performant is with the NEAREST sampler, for all other
samplers creating a caching sampler is better.
- operation: add GeglOperationAreaFilter::get_abyss_policy()
vfunc Copyright notice improvements to spherize,
color-overlay. ff-save: implement defines handling
compilation with ffmpeg 2.3-2.7, 4.0 compat.
- Improved multi-threaded performance of panorama-projection
and other transformation operations through optimizations in
buffer and base-classes.
- Drop gegl-port-ffmpeg4.patch: Fixed upstream.
* Wed May 09 2018 firstname.lastname@example.org
- Add gegl-port-ffmpeg4.patch: Fix build with ffmpeg4 (bgo#795625).
* Tue May 08 2018 email@example.com
- Add baselibs.conf, build 32-bit support.
* Fri Apr 27 2018 firstname.lastname@example.org
- Update to version 0.4.0:
+ GEGL 0.4.x is a stable release series of GEGL to have a stable
API and ABI to go with GIMP-2.10. When the need arises to break
API or ABI compatibility the 0.4.x series will get its own
branch and unstable API experiments and development, 0.5.x will
happen in master. For now though master will track the 0.4.x
+ Core: Change GeglParamSpecSeed from int to uint to match the
value range of GeglRandom's seed.
- Ripple fixed remaining issues needed to remove legacy GIMP
plug-in in GIMP.
- Spherize, requrise transform and color-overlay moved out of
- Ppm-load ported to GIO.
- Rename subpackages following upstreams soname bump.
* Thu Apr 26 2018 email@example.com
- Do not buildrequires lensfun-devel, it would be only used when
building workshop, if Makefile was really compiling relevant
* Sun Apr 22 2018 firstname.lastname@example.org
- Explicitly version pkgconfig(libavcodec), pkgconfig(libavformat)
and pkgconfig(libswscale) BuildRequires to less than the symbol
versions provided by ffmpeg4 branch until upstream catches up.
Currently provided by new ffmpeg3 compatability package.
* Wed Apr 18 2018 email@example.com
- Update to version 0.3.34 (CVE-2018-10114):
+ Core: Change GeglParamSpecSeed from int to uint to match the
value range of GeglRandom's seed.
+ Operations: Limit allocations in ppm-load to 2GB
- Changes from version 0.3.32:
- panorama-projection: added reverse transform, which permits
using GIMP for retouching zenith, nadir or other arbitrary
gaze directions in equirectangular, also known as 360x180
- Added abyss-policy to base class for scale ops, making it
possible to achieve hard edges on rescaled buffers.
- Improved performance and correctness, avoid incorrectly
gamma/ungamma correcting alpha in u8 formats, for a tiny 2-3%
- Keep track of valid/invalid areas on smaller granularity than
tiles in mipmap.
- Various micro-optimizations in display paths, with minuscle
* Sun Apr 01 2018 firstname.lastname@example.org
- Add cairo and glib-2.0 BuildRequires to avoid implicit
* Thu Mar 29 2018 email@example.com
- Update to version 0.3.30:
- gegl_buffer_get now treats the final argument;
- All scaling is now done on linear data, making future results
of mipmap computations more valid as well as providing
correct results for scaled down thumbnails in user
- The scaling code paths has also been instrumented and
optimized for performance;
- Improvements to logic switching to boxfiltering behavior and
improve cubic samplers box filtering by using a linear
sampler and a nearest sampler for the boxfiltering for the
- gegl_buffer_copy gegl_buffer_clear and gegl_buffer_set color
now only emit a single changed signal on the buffer.
- c2g and stress have gained the ability to toggle the
influence of the shadow neighborhood or not, the new default
is to not improve shadow detail; yielding a bit more natural
- color-to-alpha now contains improvements from experiment
in workshop which is gone;
- Fixed crashes in median-blur.
+ Transform ops: Only rasterize inside the transformed polygon,
+ New ops: Mean-curvature blur.
+ News ops in workshop: color-overlay, enlarge, inpaint, domain-\
- Now minimum build requirement for GIMP 2.10.0
* Tue Mar 13 2018 firstname.lastname@example.org
- Update to version 0.3.28:
+ New stable branch, long packaged as gegl-unstable in openSUSE,
changes far to many to list, please see NEWS packaged in
- Lots of BuildRequires, Requires and sub-package changes.
- Drop upstream fixed patches:
* Wed Mar 07 2018 email@example.com
- Fix SRPM group. Update descriptions. Remove idempotent
%if..%endif around %package.
* Wed Feb 28 2018 firstname.lastname@example.org
- Modernize spec-file by calling spec-cleaner