diff --git a/0001-app-make-gegl-introspect-an-optional-operation-depen.patch b/0001-app-make-gegl-introspect-an-optional-operation-depen.patch deleted file mode 100644 index 5e0847d..0000000 --- a/0001-app-make-gegl-introspect-an-optional-operation-depen.patch +++ /dev/null @@ -1,46 +0,0 @@ -From aa135ac1f814bf6197b2951ec0796547907a08ed Mon Sep 17 00:00:00 2001 -From: Jehan -Date: Mon, 14 Dec 2020 19:53:38 +0100 -Subject: [PATCH] app: make "gegl:introspect" an optional operation dependency. - -Check at runtime for the operation availability and set the "Show Image -Graph" action active depending on this check. - -This goes with discussions to make this operation optional with a -runtime check for the tool `dot`. -See: https://gitlab.gnome.org/GNOME/gegl/-/merge_requests/84 ---- - app/actions/debug-actions.c | 6 ++++++ - app/sanity.c | 1 - - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/app/actions/debug-actions.c b/app/actions/debug-actions.c -index 98a2f07..70ceb0d 100644 ---- a/app/actions/debug-actions.c -+++ b/app/actions/debug-actions.c -@@ -98,4 +98,10 @@ void - debug_actions_update (GimpActionGroup *group, - gpointer data) - { -+#define SET_SENSITIVE(action,condition) \ -+ gimp_action_group_set_action_sensitive (group, action, (condition) != 0) -+ -+ SET_SENSITIVE ("debug-show-image-graph", gegl_has_operation ("gegl:introspect")); -+ -+#undef SET_SENSITIVE - } -diff --git a/app/sanity.c b/app/sanity.c -index 0ad044a..81120bb 100644 ---- a/app/sanity.c -+++ b/app/sanity.c -@@ -650,7 +650,6 @@ sanity_check_gegl_ops (void) - "gegl:hue-chroma", - "gegl:illusion", - "gegl:image-gradient", -- "gegl:introspect", - "gegl:invert-gamma", - "gegl:invert-linear", - "gegl:lens-blur", --- -2.30.0 - diff --git a/gimp-2.10.22.tar.bz2 b/gimp-2.10.22.tar.bz2 deleted file mode 100644 index 8a44763..0000000 --- a/gimp-2.10.22.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2db84b57f3778d80b3466d7c21a21d22e315c7b062de2883cbaaeda9a0f618bb -size 33152226 diff --git a/gimp-2.10.24.tar.bz2 b/gimp-2.10.24.tar.bz2 new file mode 100644 index 0000000..1e9052e --- /dev/null +++ b/gimp-2.10.24.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd1bb762368c0dd3175cf05006812dd676949c3707e21f4e6857435cb435989e +size 31546295 diff --git a/gimp.changes b/gimp.changes index 2505727..055f995 100644 --- a/gimp.changes +++ b/gimp.changes @@ -1,3 +1,123 @@ +------------------------------------------------------------------- +Mon Mar 29 13:17:56 UTC 2021 - Paolo Stivanin + +- Update to 2.10.24 + - Core: + - Ignore Pentax and PentaxDng metadata at export because they are + unsupported. + - DBus calls (remote file open, typically with double click on file + browser; and remote command run) are now processed after all command + line files (in case of calls during startup) and in the call order + (FIFO) for consistency. Some timeout has also been added to not spam + the core process with non-processable DBus calls during startup. + - Display profile name in "Color space" field of Image Properties and + improve ellipsis & wrap on dialog fields whose contents' size is not + controllable together with better dialog size management. + - Fix stack overflow when loading very large XCF files on Windows. + - Point snapping now works outside the canvas. This is used for snap + to guides, grid and vectors. Snap to grid only works off-canvas when + "Show All" is enabled because off-canvas grid is not visible + otherwise, though snap to guide and vectors will always work + off-canvas. + - Libgimp: + - Various metadata improvements: + * Improve reading of iptc tags that appear more than once. + - Plug-ins: + - JPEG export will better advertize when metadata export fails, + possibly with relevant error message. Image export would not fail, + but at least we make the person aware metadata is not properly + exported. + - More robust TIFF import and export: + * Better handling of Exif.Thumbnail.* tags on export. + * Import now ignores TIFF pages with invalid directory (rather than + freezing and output an error to warn of possible data loss). + * Import attempts to count the directories by reading them when the + headers does not announce any directory, which allows to salvage + images with improper header. Also if reading of a directory fail, + we now output a message to warn of possible data loss. + * Fixed loading 2 and 4-bit TIFF images in grayscale and indexed. + * Improve support of ExtraSamples fields with non-conformant TIFF + files. + * Improve loading of multi page tiffs with linear TRC. + * More safety checks as a result of fuzz-testing. + * Improve loading of MinIsWhite and MinIsBlack images. + - GeoTIFF tag support added (recognized and stored into image + parasites at import, then exported back when TIFF format is used) + with appropriate "Save GeoTIFF data" checkbox (checked by default) + to disable GeoTIFF metadata export when not desired. + - The metadata viewer and editor got a big cleaning and refactoring + pass, as well as various fixes and several improvements: + * Fix handling of IPTC tags which can appear more than once (such as + "Keywords") in both the viewer and editor. + * Always read both the IPTC and XMP equivalent tags in the editor, + instead of assuming they are necessarily the same. + * More IPTC equivalents of XMP tags added: + + Iptc.Application2.LocationName <=> Xmp.iptc.Location + + Iptc.Application2.BylineTitle <=> Xmp.photoshop.AuthorsPosition + + Iptc.Application2.CountryCode <=> Xmp.iptc.CountryCode + + Iptc.Application2.Writer <=> Xmp.photoshop.CaptionWriter + * The editor now properly saves IPTC tags. + * Improve UTF-8 conversion to avoid double string conversion (hence + actually breaking encoding). + * Use proper unit abbreviations and proper label casing. + * GPS data is now properly formatted with better precision and with + translatable string parts and tooltips are added to explain how to + correctly edit GPS data (latitude, longitude, altitude). + Also seconds part of latitude/longitude is now saved with more + precision and altitude details now switch from .1m to .10m. + * Better error reporting when the editor fails to write a tag, with + proper GUI error, so that such error do not go unseen. + * Better error handling when closing the editor or viewer too, and + improve error handling when the calendar dialog fails. + * Use a logging domain for debugging-only messages which pollutes + the output. + * Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:* override the shorter + forms Xmp.iptc.Ci* if both are present, since the longer form is + more common. + * Improve saving of XMP metadata. + * And more bug fixes and refactoring steps to get rid of duplicate + code. + - PNG will now prompt only for layer offset different from zero. Some + software were always setting an offset of 0 (e.g.: POV-Ray v3.7) so + GIMP would unecessarily prompt the user until now for PNG created by + such software. + - BMP: + * allow loading of BMP images with incorrect BI_BITFIELDS + compression. + * support loading more bit depth such as 24bpp images. + - file-darktable: + * support updated Lua API of darktable 3.6 and beyond; + * Adding environment contents to debugging output when + DARKTABLE_DEBUG env variable is set. + - PDF import: + * New option to reverse order of layer. + * Support fractional DPI (allowing accurate page dimensions). + - DDS: + * Set blue channel of BC5 dds images to 0 instead of 255. + * Fix DDS BC5 compression/decompression with Red and Blue swapped. + We detect images created by an older GIMP on loading and swap the + channels back. + - HEIF: + * Removes the "HDR" mention on HEIF 10/12-bit export because high + bit depth does not necessarily means HDR. + * Runtime detection of HEIC and AVIF file formats (depending on + available encoders and decoders), which allows afterwards update + of the dependency, but also allows usage for a single format (e.g. + for distributions which want to support only AVIF). + * With libheif 1.10, visually lossless export is possible for + 10/12 bit depths too + - PSD: + * More flexible reading of layer mask record size, skipping invalid + or unsupported mask info size, hence allowing us to load more PSD + files (at least the part of a PSD we support instead of failing + the whole import altogether). + - G3 fax images: + * Improve error handling when loading. + * Be more forgiving on bad lines which were quite frequent on older + fax images, allowing to salvage some old images. +- Drop 0001-app-make-gegl-introspect-an-optional-operation-depen.patch +- Drop libheif-avif-only.patch + ------------------------------------------------------------------- Fri Feb 12 20:13:47 UTC 2021 - Michael Gorse diff --git a/gimp.spec b/gimp.spec index 52a0c9d..b895a23 100644 --- a/gimp.spec +++ b/gimp.spec @@ -31,7 +31,7 @@ %bcond_without python_plugin %endif Name: gimp -Version: 2.10.22 +Version: 2.10.24 Release: 0 Summary: The GNU Image Manipulation Program License: GPL-3.0-or-later @@ -42,10 +42,6 @@ Source1: macros.gimp # openSUSE palette file Source2: openSUSE.gpl Source99: baselibs.conf -# PATCH-FIX-UPSTREAM git diff GIMP_2_10_22..gimp-2-10 -- plug-ins/common/file-heif.c > libheif-avif-only.patch mrueckert@suse.de -- only offer the fileformats that our current libheif actually supports -Patch: libheif-avif-only.patch -# PATCH-FIX-UPSTREAM Make graphviz/dot dependency optional -- https://github.com/GNOME/gimp/commit/2cae9b9acf9da98c4c9990819ffbd5aabe23017e.patch -Patch1: 0001-app-make-gegl-introspect-an-optional-operation-depen.patch BuildRequires: aalib-devel BuildRequires: alsa-devel >= 1.0.0 @@ -77,7 +73,7 @@ BuildRequires: pkgconfig(cairo) >= 1.12.2 BuildRequires: pkgconfig(cairo-pdf) >= 1.12.2 BuildRequires: pkgconfig(dbus-glib-1) >= 0.70 BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.8 -BuildRequires: pkgconfig(gegl-0.4) >= 0.4.24 +BuildRequires: pkgconfig(gegl-0.4) >= 0.4.30 BuildRequires: pkgconfig(gexiv2) >= 0.10.6 BuildRequires: pkgconfig(glib-2.0) >= 2.54.2 BuildRequires: pkgconfig(gtk+-2.0) >= 2.24.32 @@ -114,7 +110,7 @@ BuildRequires: xdg-utils # obs does not automaticaly add this Requires: libglib-2_0-0 >= 2.54.2 Requires: libgexiv2-2 >= 0.10.6 -Requires: libbabl-0_1-0 >= 0.1.46 +Requires: libbabl-0_1-0 >= 0.1.78 # Explicitly declare the libgimp versions for upgrade purposes Requires: libgimp-2_0-0 = %{version} Requires: libgimpui-2_0-0 = %{version} @@ -217,8 +213,6 @@ applications that want to make use of the GIMP libraries. %prep %setup -q -%patch -p1 -%patch1 -p1 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 diff --git a/libheif-avif-only.patch b/libheif-avif-only.patch deleted file mode 100644 index 9180866..0000000 --- a/libheif-avif-only.patch +++ /dev/null @@ -1,274 +0,0 @@ -diff --git a/plug-ins/common/file-heif.c b/plug-ins/common/file-heif.c -index 945951e5f4..e79419d5f0 100644 ---- a/plug-ins/common/file-heif.c -+++ b/plug-ins/common/file-heif.c -@@ -47,7 +47,7 @@ struct _SaveParams - - /* local function prototypes */ - --static void query (void); -+static void init (void); - static void run (const gchar *name, - gint nparams, - const GimpParam *param, -@@ -73,9 +73,9 @@ static gboolean save_dialog (SaveParams *params, - - GimpPlugInInfo PLUG_IN_INFO = - { -- NULL, /* init_proc */ -+ init, /* init_proc */ - NULL, /* quit_proc */ -- query, /* query_proc */ -+ NULL, /* query_proc */ - run, /* run_proc */ - }; - -@@ -84,7 +84,7 @@ MAIN () - - - static void --query (void) -+init (void) - { - static const GimpParamDef load_args[] = - { -@@ -110,87 +110,102 @@ query (void) - { GIMP_PDB_INT32, "lossless", "Use lossless compression (0 = lossy, 1 = lossless)" } - }; - -- gimp_install_procedure (LOAD_PROC, -- _("Loads HEIF images"), -- _("Load image stored in HEIF format (High " -- "Efficiency Image File Format). Typical " -- "suffices for HEIF files are .heif, .heic."), -- "Dirk Farin ", -- "Dirk Farin ", -- "2018", -- _("HEIF/HEIC"), -- NULL, -- GIMP_PLUGIN, -- G_N_ELEMENTS (load_args), -- G_N_ELEMENTS (load_return_vals), -- load_args, load_return_vals); -- -- gimp_register_load_handler (LOAD_PROC, -- "heic,heif" -+ if (heif_have_decoder_for_format (heif_compression_HEVC) - #if LIBHEIF_HAVE_VERSION(1,8,0) -- ",avif" -+ || heif_have_decoder_for_format (heif_compression_AV1) - #endif -- , ""); -- gimp_register_file_handler_mime (LOAD_PROC, -- "image/heif" --#if LIBHEIF_HAVE_VERSION(1,8,0) -- ",image/avif" --#endif -- ); -- gimp_register_file_handler_uri (LOAD_PROC); -- /* HEIF is an ISOBMFF format whose "brand" (the value after "ftyp") -- * can be of various values. -- * See also: https://gitlab.gnome.org/GNOME/gimp/issues/2209 -- */ -- gimp_register_magic_load_handler (LOAD_PROC, -- "heif,heic" --#if LIBHEIF_HAVE_VERSION(1,8,0) -- ",avif" --#endif -- , "", -- "4,string,ftypheic,4,string,ftypheix," -- "4,string,ftyphevc,4,string,ftypheim," -- "4,string,ftypheis,4,string,ftyphevm," -- "4,string,ftyphevs,4,string,ftypmif1," -- "4,string,ftypmsf1" -+ ) -+ { -+ GString *extensions = g_string_new (NULL); -+ GString *mimetypes = g_string_new (NULL); -+ GString *magic = g_string_new ("4,string,ftypmif1"); -+ -+ if (heif_have_decoder_for_format (heif_compression_HEVC)) -+ { -+ g_string_append (extensions, "heic,heif"); -+ g_string_append (mimetypes, "image/heif"); -+ g_string_append (magic, ",4,string,ftypheic,4,string,ftypheix," -+ "4,string,ftyphevc,4,string,ftypheim," -+ "4,string,ftypheis,4,string,ftyphevm," -+ "4,string,ftyphevs,4,string,ftypmsf1"); -+ } -+ - #if LIBHEIF_HAVE_VERSION(1,8,0) -- ",4,string,ftypavif" -+ if (heif_have_decoder_for_format (heif_compression_AV1)) -+ { -+ g_string_append_printf (extensions, "%savif", extensions->len ? "," : ""); -+ g_string_append_printf (mimetypes, "%simage/avif", mimetypes->len ? "," : ""); -+ g_string_append (magic, ",4,string,ftypavif"); -+ } - #endif -- ); -- -- gimp_install_procedure (SAVE_PROC, -- _("Exports HEIF images"), -- _("Save image in HEIF format (High Efficiency " -- "Image File Format)."), -- "Dirk Farin ", -- "Dirk Farin ", -- "2018", -- _("HEIF/HEIC"), -- "RGB*", -- GIMP_PLUGIN, -- G_N_ELEMENTS (save_args), 0, -- save_args, NULL); -- -- gimp_register_save_handler (SAVE_PROC, "heic,heif", ""); -- gimp_register_file_handler_mime (SAVE_PROC, "image/heif"); -- gimp_register_file_handler_uri (SAVE_PROC); -+ -+ gimp_install_procedure (LOAD_PROC, -+ _("Loads HEIF images"), -+ _("Load image stored in HEIF format (High " -+ "Efficiency Image File Format). Typical " -+ "suffices for HEIF files are .heif, .heic."), -+ "Dirk Farin ", -+ "Dirk Farin ", -+ "2018", -+ _("HEIF/HEIC"), -+ NULL, -+ GIMP_PLUGIN, -+ G_N_ELEMENTS (load_args), -+ G_N_ELEMENTS (load_return_vals), -+ load_args, load_return_vals); -+ -+ gimp_register_load_handler (LOAD_PROC, extensions->str, ""); -+ gimp_register_file_handler_mime (LOAD_PROC, mimetypes->str); -+ gimp_register_file_handler_uri (LOAD_PROC); -+ -+ gimp_register_magic_load_handler (LOAD_PROC, -+ extensions->str, "", -+ magic->str); -+ -+ g_string_free (magic, TRUE); -+ g_string_free (mimetypes, TRUE); -+ g_string_free (extensions, TRUE); -+ } -+ -+ if (heif_have_encoder_for_format (heif_compression_HEVC)) -+ { -+ gimp_install_procedure (SAVE_PROC, -+ _("Exports HEIF images"), -+ _("Save image in HEIF format (High Efficiency " -+ "Image File Format)."), -+ "Dirk Farin ", -+ "Dirk Farin ", -+ "2018", -+ _("HEIF/HEIC"), -+ "RGB*", -+ GIMP_PLUGIN, -+ G_N_ELEMENTS (save_args), 0, -+ save_args, NULL); -+ -+ gimp_register_save_handler (SAVE_PROC, "heic,heif", ""); -+ gimp_register_file_handler_mime (SAVE_PROC, "image/heif"); -+ gimp_register_file_handler_uri (SAVE_PROC); -+ } - - #if LIBHEIF_HAVE_VERSION(1,8,0) -- gimp_install_procedure (SAVE_PROC_AV1, -- "Exports AVIF images", -- "Save image in AV1 Image File Format (AVIF)", -- "Daniel Novomesky ", -- "Daniel Novomesky ", -- "2020", -- "HEIF/AVIF", -- "RGB*", -- GIMP_PLUGIN, -- G_N_ELEMENTS (save_args), 0, -- save_args, NULL); -- -- gimp_register_save_handler (SAVE_PROC_AV1, "avif", ""); -- gimp_register_file_handler_mime (SAVE_PROC_AV1, "image/avif"); -- gimp_register_file_handler_uri (SAVE_PROC_AV1); -+ if (heif_have_encoder_for_format (heif_compression_AV1)) -+ { -+ gimp_install_procedure (SAVE_PROC_AV1, -+ _("Exports AVIF images"), -+ _("Save image in AV1 Image File Format (AVIF)"), -+ "Daniel Novomesky ", -+ "Daniel Novomesky ", -+ "2020", -+ "HEIF/AVIF", -+ "RGB*", -+ GIMP_PLUGIN, -+ G_N_ELEMENTS (save_args), 0, -+ save_args, NULL); -+ -+ gimp_register_save_handler (SAVE_PROC_AV1, "avif", ""); -+ gimp_register_file_handler_mime (SAVE_PROC_AV1, "image/avif"); -+ gimp_register_file_handler_uri (SAVE_PROC_AV1); -+ } - #endif - } - -@@ -1139,12 +1154,12 @@ load_image (GFile *file, - while (new_exif_size >= 4) /*Searching for TIFF Header*/ - { - if (tiffheader[0] == tiffHeaderBE[0] && tiffheader[1] == tiffHeaderBE[1] && -- tiffheader[2] == tiffHeaderBE[2] && tiffheader[2] == tiffHeaderBE[2]) -+ tiffheader[2] == tiffHeaderBE[2] && tiffheader[3] == tiffHeaderBE[3]) - { - break; - } - if (tiffheader[0] == tiffHeaderLE[0] && tiffheader[1] == tiffHeaderLE[1] && -- tiffheader[2] == tiffHeaderLE[2] && tiffheader[2] == tiffHeaderLE[2]) -+ tiffheader[2] == tiffHeaderLE[2] && tiffheader[3] == tiffHeaderLE[3]) - { - break; - } -@@ -1525,6 +1540,17 @@ save_image (GFile *file, - heif_encoder_set_lossless (encoder, params->lossless); - /* heif_encoder_set_logging_level (encoder, logging_level); */ - -+#if LIBHEIF_HAVE_VERSION(1,9,0) -+ if (params->lossless && params->save_bit_depth == 8) -+ { -+ err = heif_encoder_set_parameter_string (encoder, "chroma", "444"); -+ if (err.code != 0) -+ { -+ g_printerr ("Failed to set chroma=444 for %s encoder: %s", heif_encoder_get_name (encoder), err.message); -+ } -+ } -+#endif -+ - err = heif_context_encode_image (context, - image, - encoder, -@@ -1984,7 +2010,7 @@ save_dialog (SaveParams *params, - frame = gimp_frame_new (NULL); - gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, FALSE, 0); - -- lossless_button = gtk_check_button_new_with_mnemonic (_("Nearly _lossless (YUV420 format)")); -+ lossless_button = gtk_check_button_new_with_mnemonic (_("Nearly _lossless")); - gtk_frame_set_label_widget (GTK_FRAME (frame), lossless_button); - - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); -@@ -1998,7 +2024,7 @@ save_dialog (SaveParams *params, - gtk_range_set_value (GTK_RANGE (quality_slider), params->quality); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lossless_button), - params->lossless); -- gtk_widget_set_sensitive (quality_slider, !params->lossless); -+ gtk_widget_set_sensitive (hbox, !params->lossless); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), quality_slider); - - g_signal_connect (lossless_button, "toggled", -@@ -2038,8 +2064,8 @@ save_dialog (SaveParams *params, - gtk_widget_show (label2); - - combo = gimp_int_combo_box_new (_("8 bit/channel"), 8, -- _("10 bit/channel (HDR)"), 10, -- _("12 bit/channel (HDR)"), 12, -+ _("10 bit/channel"), 10, -+ _("12 bit/channel"), 12, - NULL); - gtk_table_attach (GTK_TABLE (table), combo, 1, 2, 0, 1, - GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);