--- - branch: MAIN date: Sat Sep 10 09:24:48 UTC 2022 files: - new: '1.5' old: '1.4' path: pkgsrc/graphics/gimp-devel/Makefile pathrev: pkgsrc/graphics/gimp-devel/Makefile@1.5 type: modified - new: '1.3' old: '1.2' path: pkgsrc/graphics/gimp-devel/PLIST pathrev: pkgsrc/graphics/gimp-devel/PLIST@1.3 type: modified - new: '1.2' old: '1.1' path: pkgsrc/graphics/gimp-devel/distinfo pathrev: pkgsrc/graphics/gimp-devel/distinfo@1.2 type: modified - new: '0' old: '1.1' path: pkgsrc/graphics/gimp-devel/patches/patch-aa pathrev: pkgsrc/graphics/gimp-devel/patches/patch-aa@0 type: deleted - new: '0' old: '1.1' path: pkgsrc/graphics/gimp-devel/patches/patch-ab pathrev: pkgsrc/graphics/gimp-devel/patches/patch-ab@0 type: deleted - new: '1.1' old: '0' path: pkgsrc/graphics/gimp-devel/patches/patch-meson.build pathrev: pkgsrc/graphics/gimp-devel/patches/patch-meson.build@1.1 type: added - new: '1.1' old: '0' path: pkgsrc/graphics/gimp-devel/patches/patch-plug-ins_common_file-heif.c pathrev: pkgsrc/graphics/gimp-devel/patches/patch-plug-ins_common_file-heif.c@1.1 type: added - new: '1.1' old: '0' path: pkgsrc/graphics/gimp-devel/patches/patch-tools_extract-vector-icon.sh pathrev: pkgsrc/graphics/gimp-devel/patches/patch-tools_extract-vector-icon.sh@1.1 type: added id: 20220910T092448Z.a2f899a641fa5923492603aded044d3c0356bd40 log: | gimp-devel: update to 2.99.12. Switch built to use meson. Overview of Changes from GIMP 2.99.10 to GIMP 2.99.12 ===================================================== Core: - Added concept of "hidden item" to a GimpImage. This would allow to process non attached items for internal processing more easily. - Do not show a crosshair anymore when "Show brush outline" is checked and "Show pointer for paint tools" is unchecked, if the brush outline cannot be drawn (in which case a fallback 4-arcs generic outline showing the size is displayed), for instance because using a dynamic changing the size. - When both "Show brush outline" and "Show pointer for paint tools" are unchecked, show a minimal visual feedback of a few pixels only, as inconspicuous as possible, instead of a crosshair. - Move and reorganize pointer-related settings in Preferences from "Image Windows" to "Input Devices" tabs. - On macOS, delay opening new images dropped on the application icon in the dock to after GIMP is fully initialized. - Some code reorganization and factorization of image colormap and palette handling. - Language changes will trigger plug-in query() call at next GIMP restart. This allows to have strings in query() and stored in GIMP config being re-localized. This implies both explicit language changes in Preferences or system language changes when GIMP is set to follow system language. - Keyboard grab removed from the canvas display, hence getting rid of annoying grab permission warnings on Wayland. - Preferences > Display > Transparency > Check style has now a new option "Custom checks" allowing to select any RGB colors. - Full migration from intltool to gettext only. - The soft-proof profile, soft-proofing rendering intent and whether black point compensation is used when soft-proofing are now image data. These have also been moved to the Image menu (out of View). These 3 simulation data are also stored in the XCF file now. - Hacks on canvas rulers and statusbar added in GIMP 2.99.10 for macOS triggering too big redraws were removed. This depends on patches added to upcoming GTK+ 3.24.35. - CMYK color picking and sample point now use babl and the space specified by the soft-proof profile set on the image, if any. - The "Create New Image" dialog now has settings for the simulation profile, intent and black point compensation. This is also shown in templates and the "Default Image" tab in Preferences, and has been removed from the "Color Management" tab, because these are now first and foremost image data. - GimpColorFrame is now current image's simulation profile/intent/bpc aware. In other words, CMYK shown by the color picker or in sample point shows values in the correct simulation space (not in some default CMYK space). - A new default action to change the current brush size was mapped to Alt + right button click. - Some Preferences settings have been moved to a new Preferences > Canvas Interaction tab. - All on-canvas interactions (panning, canvas rotation, etc.) are now customizable in Preferences > Canvas Interaction > Modifiers tab. It allows to switch/change the modifiers used for an action, or even just remove some modifiers mapping (when you never use an action, e.g. some people say the canvas rotation is not useful to them). - GtkAction-s can also be mapped to modifiers now through the same settings. - GIMP themes can now have a "gimp-dark.css" file which will be used if the "Use dark theme variant if available" option was checked. - The FG/BG editor area in the toolbox is now sized relatively to toolbox icon size, allowing for it to be much bigger when using big icons, or smaller when using small icons (which can e.g. be aligned on a very narrow single column for people who appreciate this organization). Tools: - The "Fill by line art detection" mode of the Bucket Fill tool got the following improvements: * New "Stroke borders" option where you can select a paint tool (except source tools) to stroke the fill mask before filling with the color. The settings will be the ones as set on the corresponding tool (except for the color). * The options got reorganized in 3 sections (Line Art Detection, Line Art Closure and Fill Borders) and some options were reworded. This should hopefully make the now many options more understandable. - Full text layer's text size will now be changed when changing font size in the text editor window, when no text is selected. - Raise tool options before blinking specific settings widgets when some tools fail to work because of various tool options settings (e.g. selection tool cannot remove from an empty selection; warp tool cannot stroke; move tool cannot move because of the types of object to move isn't selected; and so on). Graphical User Interface: - New "Drag to Zoom" mode and speed settings in Preferences. Existing drag-to-zoom behavior was linear depending only on pointer direction (which makes it more or less time-based if we consider that pointer events are regular). The new mode will take the actual distance moved into account allowing to go faster or slower by dragging further or not. The "speed" settings allows a finer zoom speed control for both the old and new modes. - Touchpad gesture rotation (2-finger pinch) on canvas now implemented. Note that rotation or scaling by pinch are exclusive so GIMP will detect the expected behavior through the initial movement and will therefore lock on either rotation or scaling for the whole duration of the pinch. - Slight tweak of the "You will have to restart GIMP" popup: the list now uses nicer "bullet point" characters and the nick (short description) is shown rather than the internal property name. - New soft-proof toggle in status bar to see the soft-proofing status and enable/disable it. It is only active when a soft-proof profile was set. - GimpContainerTreeView (e.g. Layers/Channels/Vectors dockables) now have zooming through ctrl+mouse wheel (for preview size). - GimpContainerTreeView (e.g. Layers/Channels/Vectors dockables) now have zooming with touchpad pinch (touchscreen pinch now kinda exists but is not so usable in our tests, at least on Linux through libinput) for preview size. - Gradient editor now has zooming with touchpad pinch (touchscreen pinch not so fancy either, at least on Linux through libinput, similar to GimpContainerTreeView case). - A new soft-proofing pop-over dialog appears when right-clicking the new soft-proof toggle in the status bar. It allows to view or change all soft-proofing related settings (whether they are associated to the image, such as the profile, intent or black-point compensation; or to the view, such as the out-of-gamut check) very easily. - New "Default" theme containing a dark and light variant. As the name implies, this theme is now made the default theme on new installations. - New "Compact" theme containing a dark and light variant. Command Line Interface: - Unless only one batch interpreter is available, there is no default interpreter anymore (it used to be script-fu). Therefore if you set `--batch` but not `--batch-interpreter`, GIMP will output an error message and will list the available interpreters. - GIMP will stop running the batch commands as soon as one command fails (it won't try the following ones). - A new `--quit` option allows you to quit GIMP immediately after running the batch commands. - If `--quit` is set and batch commands are run, the GIMP binary exit code will propagate errors from any batch failure. Exit codes are taken from command Linux error codes: 0 for success, 69 for service unavailable (e.g. setting a non-existing interpreter name), 64 for usage (e.g. not specifying any interpreter or calling errors), 70 for execution errors (bugs in the interpreter plug-in) and 130 for canceling the call. Plug-ins: - BigTIFF: our TIFF plug-in now officially supports BigTIFF import and export. * Import was actually already working transparently if you had a recent enough libtiff. Now the recent libtiff is enforced by dependency requirements. * Export support was added with a checkbox in the interactive dialog and a new "bigtiff" argument in the "file-tiff-save" PDB procedure. * When an interactive export of ClassicTIFF fails for the explicit reason of "Maximum TIFF file size exceeded", the export dialog is raised again with a message proposing to try again as BigTIFF or trying another compression algorithm. This allows because discoverability and understandibility of the issue, while not forcing BigTIFF export (since it might not be supported everywhere). - GIF: new option to specify a number of repeat for animated GIF (rather than single run vs. infinite loop only). - help-browser: rewritten to use GtkAction and GtkApplication, even though it's now a deprecated plug-in (though it's a good example for porting other plug-ins the same way). - PNG: * the format does not have any flag for linear RGB, but it can simply include a linear profile (or a 1.0 gAMA chunk). Therefore since we always attach the profile when importing (or transform the gAMA chunk into a profile), we now always load PNG images as non-linear backend. * Add toggle to choose PNG bit depth behavior. - python-fu-eval and plug-in-script-fu-eval ported to new GimpBatchProcedure class. - JPEG: * CMYK export is now possible. It uses the "Soft-proofing" profile set on the image. * CMYK import ported to GEGL/babl conversion. The CMYK profile in the JPEG image will be stored as soft-proof profile on the image. - WebP: * new option "Use Sharp YUV" available in non-lossless export. It renders sharper edges at the cost of a slower export. * On export, the "bad image dimensions" error message is now more accurate and tells the max dimension possible for WebP images (16383 as it's stored on 14 bits). - DDS: * 16-bit masks now supported. * DDS images with single 16-bit channel support added. * DDS images with 2 16-bit channels correctly converted to 16-bit RGB images. * More robust DDS loading. * New "Flip image" option: some game engine require a flipped image. Rather than flipping, exporting, unflipping process, let's have an option to flip the result at export time. - script-fu: * Various updates to get the API back in shape. * Porting doc updated. * "script-fu-server" was now extracted into its own separate plug-in so that it doesn't need to run permanently with the script-fu extension (could be seen as security hazard too) and it also makes each of these plug-ins more robust by being on their own process each. * A new `gimp-script-fu-interpreter-3.0` binary is installed globally to be used to create Scheme plug-ins, similarly to other plug-ins, in particular in the plug-ins/ directory, not the scripts/ directory anymore. Moreover it makes the whole script-fu infrastructure much more robust as script-fu individual scripts won't crash the whole script-fu extension any longer (they only crash themselves). Note: this is not a GObject Introspected Scheme binding, just our own binding based on script-fu interpreter. Script-fu plug-ins still don't have access to the whole of libgimp. * New function 'script-fu-register-filter' to declare a multi-layer capable script. * Many script-fu scripts were ported to newer API. - FLI: * Internal type usage improvements, mnemonics added, etc. * 1-frame animation now loaded correctly (it's not really an animation then, yet it should still open!). * Better error handling. * Layer names now include the delay in ms. * More robust FLI/FLC loading, double-checking data rather than assuming that the file writer properly followed the specs. - Several plug-ins now follow the user-set checkboard color preferences, when relevant. - RAW data: * Improved export dialog with better labels and ported to new dialog generation API. * Improved import dialog, ported to new dialog generation API, with factorized code to more easily handle more cases. * All the exportable formats can now be loaded back. * "file-raw-load" and "file-raw-save" procedures API are now much better with all relevant arguments. * "file-hgt-load" doesn't show a dialog anymore when sample spacing detection worked correctly since we already have all the necessary information. - WBMP: new plug-in to load WBPM image files. It is still limited support and doesn't support all types of WBMP images. - TIFF: * 8 and 16-bit CMYK(A) TIFF files can be exported, using the image soft-proof profile. * Imported CMYK TIFF profiles are now set as soft-proof profile on the image. - SVG: on import, when parsing fails, GIMP will propose to disable size parsing limitations, while explaining this has security implications and should only be done on SVG files from trusted sources. - PSD: * Import now uses babl conversion inconditionally, even for CMYK images, using the soft-proof profile set on the image. * Improved error logging during load. * CMYK profile on a CMYK PSD file is now stored as soft-proof profile in the image. * Added support for extra layer mask: According to the specs the extra mask (which they call real user supplied layer mask) is used "when both a user mask and a vector mask are present". We haven't seen an example that has the extra mask, so not sure which of the masks would appear first. For now assuming that the extra mask will be first. The advantage of adding this here now, is that we won't try to add a mask channel as a normal channel. * Minimal support of duotone data: on import, a duotone image will be imported as grayscale image with an alert and the color information will be stored in a parasite; on export, a dialog will propose you to re-include the duotone data if the image is still grayscale. This allows for a roundtrip in GIMP without losing the duotone information. - ANI: new import/export support. API: - Changes in libgimpbase: * gimp_checks_get_colors() added. * gimp_checks_get_shades() removed (replaced by gimp_checks_get_colors()) - Changes in libgimpcolor: * New functions: + gimp_color_managed_get_simulation_profile() + gimp_color_managed_simulation_profile_changed() + gimp_color_managed_get_simulation_bpc() + gimp_color_managed_get_simulation_intent() + gimp_color_managed_simulation_bpc_changed() + gimp_color_managed_simulation_intent_changed() - Changes in libgimp: * New functions: + gimp_image_metadata_save_filter() + gimp_check_custom_color1() + gimp_check_custom_color2() + gimp_procedure_dialog_get_int_radio() + gimp_procedure_dialog_get_file_chooser() + gimp_image_get_simulation_profile() + gimp_image_set_simulation_profile() + gimp_image_set_simulation_profile_from_file() + gimp_image_get_selected_drawables() + gimp_image_get_simulation_bpc() + gimp_image_get_simulation_intent() + gimp_image_set_simulation_bpc() + gimp_image_set_simulation_intent() * Removed functions: + gimp_plug_in_set_translation_domain() + image_get_active_drawable() + image_get_active_layer() + image_set_active_layer() + image_get_active_channel() + image_set_active_channel() + image_get_active_vectors() + image_set_active_vectors() * Updated functions: + gimp_procedure_dialog_get_widget() now supports %G_TYPE_PARAM_FILE and %G_TYPE_PARAM_ENUM properties. + gimp_prop_file_chooser_button_new() now works with G_PARAM_SPEC_OBJECT having a value_type == G_TYPE_FILE (additionally to GIMP_PARAM_SPEC_CONFIG_PATH properties). * Functions skipped by bindings: + gimp_get_images() (in favor of gimp_list_*() variant) + gimp_image_get_layers() (in favor of gimp_image_list_*() variant) + gimp_image_get_channels() (in favor of gimp_image_list_*() variant) + gimp_image_get_vectors() (in favor of gimp_image_list_*() variant) + gimp_image_get_selected_layers() (in favor of gimp_image_list_*() variant) + gimp_item_get_children() (in favor of gimp_item_list_*() variant) * New class: + GimpBatchProcedure: procedure usable as a batch interpreter on command line. * Protocol bumped to handle the check colors passed at call time on the wire. * Plug-ins are now expected to have their localization in a Gettext catalog folder locale/ under their main directory, named the same way as this directory (i.e. usually the plug-in name). If the catalog is absent, a message will be outputted on stderr. To override this behavior, a GimpPlugIn is encouraged to override the new set_i18n() method. If it returns FALSE, localization is disabled (or it may be implemented in a different way, for instance with another system than Gettext); if it returns TRUE, you can set a different subfolder and catalog name. * The core does not localize menu items from plug-ins anymore. All plug-ins are now expected to handle their localization within their code. In particular gimp_procedure_set_menu_label() and gimp_procedure_set_documentation() should now pass the localized text. With gettext, it usually means passing arguments through gettext() and not just marking them with N_(). - Changes in libgimpwidgets: * Freedesktop portal implementation of GimpPickButton now checks the version of the XDG portal since `PickColor()` API only got added in version 2. * New classes: + GimpIntRadioFrame * New functions: + gimp_color_notebook_set_simulation() + gimp_color_selection_set_simulation() + gimp_color_selector_set_simulation() * Removed functions: + gimp_prop_int_radio_box_new() * Updated functions: + GimpColorNotebook, GimpColorSelection and GimpColorSelector are now ported to babl code and are simulation space aware. + GimpPickButton will now use the X11 color picking API as a default when GIMP is running on X11 (instead of trying the portals first), because it has color space information of the display (so we can convert back the color from display space to image space); and also on some desktop, the portal looks available while it's actually not implemented (hence picking fails). This fixes or improves the color picking in the Colors dockable, in Change Foreground/Background Color dialogs, etc. - Changes in PDB: * gimp-plug-in-domain-register removed. Modules: - The CMYK color selector is now simulation space aware, i.e. that it shows CMYK values in the soft-proof profile space if a soft-proof profile has been set. Translations: - New Galician and Georgian translations for the installer. Build: - libtiff dependency's minimum required version bumped to 4.0.0. - gexiv2 dependency's minimum required version bumped to 0.14.0. - Our meson/Debian CI now runs `meson dist` too. - gvfs is marked as an expected dependency for GIMP (as a GIO module) on Linux, since it seems we wouldn't have HTTP support without. This is only written in the INSTALL file though, no tests are run on configure time. - The distribution stage now has a new `dev-docs` job containing both the C API reference (gi-docgen) and the Python and Javascript (gjs) ones (g-ir-doc). - The `pdbgen` (generation of PDB source files) build step is finally ported to meson too, which is a major step to one day consider this build system out of the "experimental" zone. - Windows installer's gettext files (.po) will now also contain extracted comments from the source to give more context to translators. - Flatpak manifest upgraded with new version constraints so that the flatpak-external-data-checker does not warn wrongly on major update when we don't want to or can't update immediately. - meson is now recommended for Windows and macOS builds and our official installer and DMG respectively are now built (still from CI) with meson. - Flatpak manifest improved with version constraints for dependencies where we should not update just yet (hence don't want new version notifications). - appstream-util replaced by appstreamcli for AppStream file testing (requires appstreamcli 0.15.3 or over). - gi-docgen API documentation will now properly link to other API namespaces thanks to a new urlmap file. - Separate libgimp-scriptfu-3.0 library for a future where it will be shared by several binaries. - GEGL dependency's minimum required version bumped to 0.4.38. - "flatpak" job now uses a gnome-runtime-images migrated to Quay. - "win*-nightly" jobs removed. - Improved meson infrastructure to support Windows installer languages which don't have base language files provided by upstream InnoSetup. We started using it for Kabyle (which was showing up as "English" otherwise!). - After various fixes and implementations of missing build features to the meson scripts, we are going to start advising packagers (for all platforms) to build GIMP 2.99.12 with meson as a trial by fire to make it the new default build system. - New "sources-meson" CI job to distribute a tarball built with the meson scripts. - INSTALL now targets meson build as a test recommendation. We'll see if any issue arises from packagers! - Improved support for homebrew build on macOS. Documentation: - Draft devel doc for scriptfu v3 script authors. module: pkgsrc subject: 'CVS commit: pkgsrc/graphics/gimp-devel' unixtime: '1662801888' user: wiz