From c5114b33ed3f9624741bacde50a3a64e4739cb20 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 5 Aug 2024 02:12:58 +0000 Subject: automatic import of gimp --- .gitignore | 1 + ...10.0-cm-system-monitor-profile-by-default.patch | 25 + gimp-2.10.12-default-font.patch | 12 + gimp-2.10.18-no-phone-home-default.patch | 12 + gimp-2.10.24-external-help-browser.patch | 12 + gimp-CVE-2022-30067.patch | 60 + gimp-CVE-2022-32990.patch | 31 + gimp-remove-lua.patch | 371 +++ gimp.spec | 2649 ++++++++++++++++++++ sources | 1 + 10 files changed, 3174 insertions(+) create mode 100644 gimp-2.10.0-cm-system-monitor-profile-by-default.patch create mode 100644 gimp-2.10.12-default-font.patch create mode 100644 gimp-2.10.18-no-phone-home-default.patch create mode 100644 gimp-2.10.24-external-help-browser.patch create mode 100644 gimp-CVE-2022-30067.patch create mode 100644 gimp-CVE-2022-32990.patch create mode 100644 gimp-remove-lua.patch create mode 100644 gimp.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..fd7e4f2 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/gimp-2.99.8.tar.bz2 diff --git a/gimp-2.10.0-cm-system-monitor-profile-by-default.patch b/gimp-2.10.0-cm-system-monitor-profile-by-default.patch new file mode 100644 index 0000000..35493af --- /dev/null +++ b/gimp-2.10.0-cm-system-monitor-profile-by-default.patch @@ -0,0 +1,25 @@ +diff -up gimp-2.10.14/etc/gimprc.in.cm-system-monitor-profile-by-default gimp-2.10.14/etc/gimprc.in +--- gimp-2.10.14/etc/gimprc.in.cm-system-monitor-profile-by-default 2019-10-26 21:46:48.000000000 +0200 ++++ gimp-2.10.14/etc/gimprc.in 2019-11-04 13:17:23.322750636 +0100 +@@ -317,9 +317,9 @@ + + # Defines the color management behavior. This is a parameter list. + # +-# (color-management ++(color-management + # (mode display) +-# (display-profile-from-gdk no) ++ (display-profile-from-gdk no) + # (display-rendering-intent relative-colorimetric) + # (display-use-black-point-compensation yes) + # (display-optimize yes) +@@ -328,7 +328,8 @@ + # (simulation-optimize yes) + # (simulation-gamut-check no) + # (out-of-gamut-color (color-rgb 1 0 1)) +-# (display-module "CdisplayLcms")) ++# (display-module "CdisplayLcms") ++) + + # Keep a permanent record of all opened and saved files in the Recent + # Documents list. Possible values are yes and no. diff --git a/gimp-2.10.12-default-font.patch b/gimp-2.10.12-default-font.patch new file mode 100644 index 0000000..301e4a6 --- /dev/null +++ b/gimp-2.10.12-default-font.patch @@ -0,0 +1,12 @@ +diff -urNp a/etc/gimprc.in b/etc/gimprc.in +--- a/etc/gimprc.in 2019-08-20 13:03:43.195089141 +0200 ++++ b/etc/gimprc.in 2019-08-20 13:04:09.109353485 +0200 +@@ -153,7 +153,7 @@ + # Where to look for fonts in addition to the system-wide installed fonts. + # This is a colon-separated list of folders to search. + # +-# (font-path "${gimp_dir}/fonts:${gimp_data_dir}/fonts") ++(font-path "${gimp_dir}/fonts") + + # Specify a default brush. The brush is searched for in the specified brush + # path. This is a string value. diff --git a/gimp-2.10.18-no-phone-home-default.patch b/gimp-2.10.18-no-phone-home-default.patch new file mode 100644 index 0000000..2054b4a --- /dev/null +++ b/gimp-2.10.18-no-phone-home-default.patch @@ -0,0 +1,12 @@ +diff -up gimp-2.10.18/etc/gimprc.in.no-phone-home-default gimp-2.10.18/etc/gimprc.in +--- gimp-2.10.18/etc/gimprc.in.no-phone-home-default 2020-02-23 21:15:47.217777581 +0100 ++++ gimp-2.10.18/etc/gimprc.in 2020-02-23 21:22:42.416162110 +0100 +@@ -393,7 +393,7 @@ + # Check for availability of GIMP updates through background internet queries. + # Possible values are yes and no. + # +-# (check-updates yes) ++(check-updates no) + + # Timestamp of the last update check. (null) + # diff --git a/gimp-2.10.24-external-help-browser.patch b/gimp-2.10.24-external-help-browser.patch new file mode 100644 index 0000000..09f4118 --- /dev/null +++ b/gimp-2.10.24-external-help-browser.patch @@ -0,0 +1,12 @@ +diff -up gimp-2.10.24/etc/gimprc.in.external-help-browser gimp-2.10.24/etc/gimprc.in +--- gimp-2.10.24/etc/gimprc.in.external-help-browser 2021-04-03 00:02:39.312656132 +0200 ++++ gimp-2.10.24/etc/gimprc.in 2021-04-03 00:03:27.360453285 +0200 +@@ -836,7 +836,7 @@ + # Sets the browser used by the help system. Possible values are gimp and + # web-browser. + # +-# (help-browser web-browser) ++(help-browser web-browser) + + # When enabled, a search of actions will also return inactive actions. + # Possible values are yes and no. diff --git a/gimp-CVE-2022-30067.patch b/gimp-CVE-2022-30067.patch new file mode 100644 index 0000000..94e29d2 --- /dev/null +++ b/gimp-CVE-2022-30067.patch @@ -0,0 +1,60 @@ +From 4f99f1fcfd892ead19831b5adcd38a99d71214b6 Mon Sep 17 00:00:00 2001 +From: Jacob Boerema +Date: Fri, 29 Apr 2022 16:40:32 -0400 +Subject: [PATCH] app: fix #8120 GIMP 2.10.30 crashed when allocate large + memory + +GIMP could crash if the information regarding old path properties read +from XCF was incorrect. It did not check if xcf_old_path succeeded and +kept trying to load more paths even if the last one failed to load. + +Instead we now stop loading paths as soon as that function fails. +In case we have a failure here we also try to skip to the next property +based on the size of the path property, in hopes that the only problem +was this property. +--- + app/xcf/xcf-load.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/app/xcf/xcf-load.c b/app/xcf/xcf-load.c +index ac9c4ea248..67bc766390 100644 +--- a/app/xcf/xcf-load.c ++++ b/app/xcf/xcf-load.c +@@ -1168,7 +1168,12 @@ xcf_load_image_props (XcfInfo *info, + break; + + case PROP_PATHS: +- xcf_load_old_paths (info, image); ++ { ++ goffset base = info->cp; ++ ++ if (! xcf_load_old_paths (info, image)) ++ xcf_seek_pos (info, base + prop_size, NULL); ++ } + break; + + case PROP_USER_UNIT: +@@ -3035,8 +3040,11 @@ xcf_load_old_paths (XcfInfo *info, + xcf_read_int32 (info, &last_selected_row, 1); + xcf_read_int32 (info, &num_paths, 1); + ++ GIMP_LOG (XCF, "Number of old paths: %u", num_paths); ++ + while (num_paths-- > 0) +- xcf_load_old_path (info, image); ++ if (! xcf_load_old_path (info, image)) ++ return FALSE; + + active_vectors = + GIMP_VECTORS (gimp_container_get_child_by_index (gimp_image_get_vectors (image), +@@ -3087,7 +3095,7 @@ xcf_load_old_path (XcfInfo *info, + } + else if (version != 1) + { +- g_printerr ("Unknown path type. Possibly corrupt XCF file"); ++ g_printerr ("Unknown path type (version: %u). Possibly corrupt XCF file.\n", version); + + g_free (name); + return FALSE; +-- +GitLab diff --git a/gimp-CVE-2022-32990.patch b/gimp-CVE-2022-32990.patch new file mode 100644 index 0000000..24e1515 --- /dev/null +++ b/gimp-CVE-2022-32990.patch @@ -0,0 +1,31 @@ +From 22af0bcfe67c1c86381f33975ca7fdbde6b36b39 Mon Sep 17 00:00:00 2001 +From: Jacob Boerema +Date: Sun, 5 Jun 2022 15:38:24 -0400 +Subject: [PATCH] app: fix #8230 crash in gimp_layer_invalidate_boundary when + channel is NULL + +gimp_channel_is_empty returns FALSE if channel is NULL. This causes +gimp_layer_invalidate_boundary to crash if the mask channel is NULL. + +With a NULL channel gimp_channel_is_empty should return TRUE, just like +the similar gimp_image_is_empty does, because returning FALSE here +suggests we have a non empty channel. +--- + app/core/gimpchannel.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/app/core/gimpchannel.c b/app/core/gimpchannel.c +index 7b6a9851ae..502821ba58 100644 +--- a/app/core/gimpchannel.c ++++ b/app/core/gimpchannel.c +@@ -1827,7 +1827,7 @@ gimp_channel_boundary (GimpChannel *channel, + gboolean + gimp_channel_is_empty (GimpChannel *channel) + { +- g_return_val_if_fail (GIMP_IS_CHANNEL (channel), FALSE); ++ g_return_val_if_fail (GIMP_IS_CHANNEL (channel), TRUE); + + return GIMP_CHANNEL_GET_CLASS (channel)->is_empty (channel); + } +-- +GitLab diff --git a/gimp-remove-lua.patch b/gimp-remove-lua.patch new file mode 100644 index 0000000..9e8d712 --- /dev/null +++ b/gimp-remove-lua.patch @@ -0,0 +1,371 @@ +diff -urNp a/extensions/goat-exercises/goat-exercise-lua.lua b/extensions/goat-exercises/goat-exercise-lua.lua +--- a/extensions/goat-exercises/goat-exercise-lua.lua 2022-03-09 09:39:44.007314944 +0100 ++++ b/extensions/goat-exercises/goat-exercise-lua.lua 1970-01-01 01:00:00.000000000 +0100 +@@ -1,184 +0,0 @@ +-#!/usr/bin/env luajit +- +--- GIMP - The GNU Image Manipulation Program +--- Copyright (C) 1995 Spencer Kimball and Peter Mattis +--- +--- goat-exercise-lua.lua +--- Copyright (C) Jehan +--- +--- This program is free software: you can redistribute it and/or modify +--- it under the terms of the GNU General Public License as published by +--- the Free Software Foundation; either version 3 of the License, or +--- (at your option) any later version. +--- +--- This program is distributed in the hope that it will be useful, +--- but WITHOUT ANY WARRANTY; without even the implied warranty of +--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +--- GNU General Public License for more details. +--- +--- You should have received a copy of the GNU General Public License +--- along with this program. If not, see . +- +-local lgi = require 'lgi' +- +-local GLib = lgi.GLib +-local GObject = lgi.GObject +-local Gio = lgi.Gio +-local Gegl = lgi.Gegl +-local Gimp = lgi.Gimp +-local GimpUi = lgi.GimpUi +-local Gtk = lgi.Gtk +-local Gdk = lgi.Gdk +- +-local Goat = lgi.package 'Goat' +-local Goat = lgi.Goat +- +-function run(procedure, run_mode, image, drawables, args, run_data) +- -- procedure:new_return_values() crashes LGI so we construct the +- -- GimpValueArray manually. +- local retval = Gimp.ValueArray(1) +- +- if table.getn(drawables) ~= 1 then +- local calling_err = GObject.Value(Gimp.PDBStatusType, Gimp.PDBStatusType.CALLING_ERROR) +- local msg = "Procedure '%s' only works with one drawable." +- +- msg = string.format(msg, procedure:get_name()) +- +- retval:append(calling_err) +- retval:append(GObject.Value(GObject.Type.STRING, msg)) +- return retval +- end +- +- local drawable = drawables[1] +- +- -- Not sure why run_mode has become a string instead of testing +- -- against Gimp.RunMode.INTERACTIVE. +- if run_mode == "INTERACTIVE" then +- GimpUi.init("goat-exercise-lua"); +- local dialog = GimpUi.Dialog { +- title = "Exercise a goat (Lua)", +- role = "goat-exercise-Lua", +- use_header_bar = 1 +- } +- dialog:add_button("_Cancel", Gtk.ResponseType.CANCEL); +- dialog:add_button("_Source", Gtk.ResponseType.APPLY); +- dialog:add_button("_OK", Gtk.ResponseType.OK); +- +- local geometry = Gdk.Geometry() +- geometry.min_aspect = 0.5; +- geometry.max_aspect = 1.0; +- dialog:set_geometry_hints (nil, geometry, Gdk.WindowHints.ASPECT); +- +- local box = Gtk.Box { +- orientation = Gtk.Orientation.VERTICAL, +- spacing = 2 +- } +- dialog:get_content_area():add(box) +- box:show() +- +- local lang = "Lua" +- local head_text = "This plug-in is an exercise in '%s' to demo plug-in creation.\n" .. +- "Check out the last version of the source code online by clicking the \"Source\" button." +- +- local label = Gtk.Label { label = string.format(head_text, lang) } +- box:pack_start(label, false, false, 1) +- label:show() +- +- local contents = GLib.file_get_contents(arg[0]) +- if (contents) then +- local scrolled = Gtk.ScrolledWindow() +- scrolled:set_vexpand (true) +- box:pack_start(scrolled, true, true, 1) +- scrolled:show() +- +- local view = Gtk.TextView() +- view:set_wrap_mode(Gtk.WrapMode.WORD) +- view:set_editable(false) +- local buffer = view:get_buffer() +- buffer:set_text(contents, -1) +- scrolled:add(view) +- view:show() +- end +- +- while (true) do +- local response = dialog:run() +- local url = 'https://gitlab.gnome.org/GNOME/gimp/blob/master/extensions/goat-exercises/goat-exercise-lua.lua' +- +- if response == Gtk.ResponseType.OK then +- dialog:destroy() +- break +- elseif (response == Gtk.ResponseType.APPLY) then +- Gio.app_info_launch_default_for_uri(url, nil); +- else -- CANCEL, CLOSE, DELETE_EVENT +- dialog:destroy() +- local cancel = GObject.Value(Gimp.PDBStatusType, Gimp.PDBStatusType.CANCEL) +- retval:append(cancel) +- return retval +- end +- end +- end +- +- local x, y, width, height = drawable:mask_intersect() +- if width ~= nill and height ~= nil and width > 0 and height > 0 then +- Gegl.init(nil) +- +- local buffer = drawable:get_buffer() +- local shadow_buffer = drawable:get_shadow_buffer() +- +- local graph = Gegl.Node() +- local input = graph:create_child("gegl:buffer-source") +- input:set_property("buffer", GObject.Value(Gegl.Buffer, buffer)) +- local invert = graph:create_child("gegl:invert") +- local output = graph:create_child("gegl:write-buffer") +- output:set_property("buffer", GObject.Value(Gegl.Buffer, shadow_buffer)) +- input:link(invert) +- invert:link(output) +- output:process() +- +- shadow_buffer:flush() +- +- drawable:merge_shadow(true) +- drawable:update(x, y, width, height) +- Gimp.displays_flush() +- end +- +- local success = GObject.Value(Gimp.PDBStatusType, Gimp.PDBStatusType.SUCCESS) +- retval:append(success) +- return retval +-end +- +-Goat:class('Exercise', Gimp.PlugIn) +- +-function Goat.Exercise:do_query_procedures() +- return { 'plug-in-goat-exercise-lua' } +-end +- +-function Goat.Exercise:do_create_procedure(name) +- local procedure = Gimp.ImageProcedure.new(self, name, +- Gimp.PDBProcType.PLUGIN, +- run, nil) +- +- procedure:set_image_types("*"); +- procedure:set_sensitivity_mask(Gimp.ProcedureSensitivityMask.DRAWABLE); +- +- procedure:set_menu_label("Exercise a Lua goat"); +- procedure:set_icon_name(GimpUi.ICON_GEGL); +- procedure:add_menu_path('/Filters/Development/Goat exercises/'); +- +- procedure:set_documentation("Exercise a goat in the Lua language", +- "Takes a goat for a walk in Lua", +- name); +- procedure:set_attribution("Jehan", "Jehan", "2019"); +- +- return procedure +-end +- +--- 'arg' is a Lua table. When automatically converted to an array, the +--- value 0 is deleted (because Lua arrays start at 1!), which breaks +--- Gimp.main() call. So let's create our own array starting at 1. +-argv = {} +-for k, v in pairs(arg) do +- argv[k+1] = v +-end +- +-Gimp.main(GObject.Type.name(Goat.Exercise), argv) +diff -urNp a/extensions/goat-exercises/Makefile.am b/extensions/goat-exercises/Makefile.am +--- a/extensions/goat-exercises/Makefile.am 2022-03-09 09:39:44.007314944 +0100 ++++ b/extensions/goat-exercises/Makefile.am 2022-03-09 10:27:14.623108639 +0100 +@@ -72,10 +72,10 @@ endif + + # Lua (lua-jit + LGI) version. + +-if BUILD_LUA +-goat_exercise_luadir = $(goat_exercise_c_libexecdir) +-goat_exercise_lua_SCRIPTS = goat-exercise-lua.lua +-endif ++#if BUILD_LUA ++#goat_exercise_luadir = $(goat_exercise_c_libexecdir) ++#goat_exercise_lua_SCRIPTS = goat-exercise-lua.lua ++#endif + + # Python 3 (pygobject) version. + +@@ -135,7 +135,6 @@ org.gimp.extension.goat-exercises.metain + + EXTRA_DIST = \ + goat-exercise-gjs.js \ +- goat-exercise-lua.lua \ + goat-exercise-py3.py \ + $(appstream_in_files) + +diff -urNp a/extensions/goat-exercises/Makefile.in b/extensions/goat-exercises/Makefile.in +--- a/extensions/goat-exercises/Makefile.in 2022-03-09 09:39:44.006314936 +0100 ++++ b/extensions/goat-exercises/Makefile.in 2022-03-09 10:28:59.224986448 +0100 +@@ -118,7 +118,6 @@ CONFIG_CLEAN_VPATH_FILES = + am__installdirs = "$(DESTDIR)$(goat_exercise_c_libexecdir)" \ + "$(DESTDIR)$(goat_exercise_vala_libexecdir)" \ + "$(DESTDIR)$(goat_exercise_gjsdir)" \ +- "$(DESTDIR)$(goat_exercise_luadir)" \ + "$(DESTDIR)$(goat_exercise_py3dir)" "$(DESTDIR)$(appdatadir)" \ + "$(DESTDIR)$(goat_exercise_c_libexecdir)" \ + "$(DESTDIR)$(goat_exercise_vala_libexecdir)" +@@ -183,7 +182,7 @@ am__uninstall_files_from_dir = { \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +-SCRIPTS = $(goat_exercise_gjs_SCRIPTS) $(goat_exercise_lua_SCRIPTS) \ ++SCRIPTS = $(goat_exercise_gjs_SCRIPTS) \ + $(goat_exercise_py3_SCRIPTS) + AM_V_P = $(am__v_P_@AM_V@) + am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +@@ -753,8 +752,8 @@ goat_exercise_c_LDADD = \ + @BUILD_JAVASCRIPT_TRUE@goat_exercise_gjs_SCRIPTS = goat-exercise-gjs.js + + # Lua (lua-jit + LGI) version. +-@BUILD_LUA_TRUE@goat_exercise_luadir = $(goat_exercise_c_libexecdir) +-@BUILD_LUA_TRUE@goat_exercise_lua_SCRIPTS = goat-exercise-lua.lua ++#@BUILD_LUA_TRUE@goat_exercise_luadir = $(goat_exercise_c_libexecdir) ++#@BUILD_LUA_TRUE@goat_exercise_lua_SCRIPTS = goat-exercise-lua.lua + + # Python 3 (pygobject) version. + @BUILD_PYTHON_TRUE@goat_exercise_py3dir = $(goat_exercise_c_libexecdir) +@@ -795,7 +794,6 @@ appdatadir = $(goat_exercise_c_libexecdi + appdata_DATA = $(appstream_files) + EXTRA_DIST = \ + goat-exercise-gjs.js \ +- goat-exercise-lua.lua \ + goat-exercise-py3.py \ + $(appstream_in_files) + +@@ -977,41 +975,41 @@ uninstall-goat_exercise_gjsSCRIPTS: + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + dir='$(DESTDIR)$(goat_exercise_gjsdir)'; $(am__uninstall_files_from_dir) +-install-goat_exercise_luaSCRIPTS: $(goat_exercise_lua_SCRIPTS) +- @$(NORMAL_INSTALL) +- @list='$(goat_exercise_lua_SCRIPTS)'; test -n "$(goat_exercise_luadir)" || list=; \ +- if test -n "$$list"; then \ +- echo " $(MKDIR_P) '$(DESTDIR)$(goat_exercise_luadir)'"; \ +- $(MKDIR_P) "$(DESTDIR)$(goat_exercise_luadir)" || exit 1; \ +- fi; \ +- for p in $$list; do \ +- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ +- if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ +- done | \ +- sed -e 'p;s,.*/,,;n' \ +- -e 'h;s|.*|.|' \ +- -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ +- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ +- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ +- if ($$2 == $$4) { files[d] = files[d] " " $$1; \ +- if (++n[d] == $(am__install_max)) { \ +- print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ +- else { print "f", d "/" $$4, $$1 } } \ +- END { for (d in files) print "f", d, files[d] }' | \ +- while read type dir files; do \ +- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ +- test -z "$$files" || { \ +- echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(goat_exercise_luadir)$$dir'"; \ +- $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(goat_exercise_luadir)$$dir" || exit $$?; \ +- } \ +- ; done +- +-uninstall-goat_exercise_luaSCRIPTS: +- @$(NORMAL_UNINSTALL) +- @list='$(goat_exercise_lua_SCRIPTS)'; test -n "$(goat_exercise_luadir)" || exit 0; \ +- files=`for p in $$list; do echo "$$p"; done | \ +- sed -e 's,.*/,,;$(transform)'`; \ +- dir='$(DESTDIR)$(goat_exercise_luadir)'; $(am__uninstall_files_from_dir) ++#install-goat_exercise_luaSCRIPTS: $(goat_exercise_lua_SCRIPTS) ++# @$(NORMAL_INSTALL) ++# @list='$(goat_exercise_lua_SCRIPTS)'; test -n "$(goat_exercise_luadir)" || list=; \ ++# if test -n "$$list"; then \ ++# echo " $(MKDIR_P) '$(DESTDIR)$(goat_exercise_luadir)'"; \ ++# $(MKDIR_P) "$(DESTDIR)$(goat_exercise_luadir)" || exit 1; \ ++# fi; \ ++# for p in $$list; do \ ++# if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++# if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ ++# done | \ ++# sed -e 'p;s,.*/,,;n' \ ++# -e 'h;s|.*|.|' \ ++# -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ ++# $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ ++# { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ ++# if ($$2 == $$4) { files[d] = files[d] " " $$1; \ ++# if (++n[d] == $(am__install_max)) { \ ++# print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ ++# else { print "f", d "/" $$4, $$1 } } \ ++# END { for (d in files) print "f", d, files[d] }' | \ ++# while read type dir files; do \ ++# if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ ++# test -z "$$files" || { \ ++# echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(goat_exercise_luadir)$$dir'"; \ ++# $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(goat_exercise_luadir)$$dir" || exit $$?; \ ++# } \ ++# ; done ++ ++#uninstall-goat_exercise_luaSCRIPTS: ++# @$(NORMAL_UNINSTALL) ++# @list='$(goat_exercise_lua_SCRIPTS)'; test -n "$(goat_exercise_luadir)" || exit 0; \ ++# files=`for p in $$list; do echo "$$p"; done | \ ++# sed -e 's,.*/,,;$(transform)'`; \ ++# dir='$(DESTDIR)$(goat_exercise_luadir)'; $(am__uninstall_files_from_dir) + install-goat_exercise_py3SCRIPTS: $(goat_exercise_py3_SCRIPTS) + @$(NORMAL_INSTALL) + @list='$(goat_exercise_py3_SCRIPTS)'; test -n "$(goat_exercise_py3dir)" || list=; \ +@@ -1266,7 +1264,7 @@ check-am: all-am + check: check-am + all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) + installdirs: +- for dir in "$(DESTDIR)$(goat_exercise_c_libexecdir)" "$(DESTDIR)$(goat_exercise_vala_libexecdir)" "$(DESTDIR)$(goat_exercise_gjsdir)" "$(DESTDIR)$(goat_exercise_luadir)" "$(DESTDIR)$(goat_exercise_py3dir)" "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(goat_exercise_c_libexecdir)" "$(DESTDIR)$(goat_exercise_vala_libexecdir)"; do \ ++ for dir in "$(DESTDIR)$(goat_exercise_c_libexecdir)" "$(DESTDIR)$(goat_exercise_vala_libexecdir)" "$(DESTDIR)$(goat_exercise_gjsdir)" "$(DESTDIR)$(goat_exercise_py3dir)" "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(goat_exercise_c_libexecdir)" "$(DESTDIR)$(goat_exercise_vala_libexecdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done + install: install-am +@@ -1330,7 +1328,6 @@ info: info-am + info-am: + + install-data-am: install-appdataDATA install-goat_exercise_gjsSCRIPTS \ +- install-goat_exercise_luaSCRIPTS \ + install-goat_exercise_py3SCRIPTS + + install-dvi: install-dvi-am +@@ -1385,7 +1382,6 @@ uninstall-am: uninstall-appdataDATA \ + uninstall-goat_exercise_c_libexecDATA \ + uninstall-goat_exercise_c_libexecPROGRAMS \ + uninstall-goat_exercise_gjsSCRIPTS \ +- uninstall-goat_exercise_luaSCRIPTS \ + uninstall-goat_exercise_py3SCRIPTS \ + uninstall-goat_exercise_vala_libexecDATA \ + uninstall-goat_exercise_vala_libexecPROGRAMS +@@ -1403,7 +1399,6 @@ uninstall-am: uninstall-appdataDATA \ + install-goat_exercise_c_libexecDATA \ + install-goat_exercise_c_libexecPROGRAMS \ + install-goat_exercise_gjsSCRIPTS \ +- install-goat_exercise_luaSCRIPTS \ + install-goat_exercise_py3SCRIPTS \ + install-goat_exercise_vala_libexecDATA \ + install-goat_exercise_vala_libexecPROGRAMS install-html \ +@@ -1416,7 +1411,6 @@ uninstall-am: uninstall-appdataDATA \ + uninstall-appdataDATA uninstall-goat_exercise_c_libexecDATA \ + uninstall-goat_exercise_c_libexecPROGRAMS \ + uninstall-goat_exercise_gjsSCRIPTS \ +- uninstall-goat_exercise_luaSCRIPTS \ + uninstall-goat_exercise_py3SCRIPTS \ + uninstall-goat_exercise_vala_libexecDATA \ + uninstall-goat_exercise_vala_libexecPROGRAMS diff --git a/gimp.spec b/gimp.spec new file mode 100644 index 0000000..704872c --- /dev/null +++ b/gimp.spec @@ -0,0 +1,2649 @@ +# Set this to 0 in stable, 1 in (SONAME-wise) unstable releases +%global unstable 0 + +#### options: +# Use the following --with/--without