Compare commits
No commits in common. "c8s-stream-2.8" and "c9s" have entirely different histories.
c8s-stream
...
c9s
@ -1 +0,0 @@
|
|||||||
c894a0d9a864d418bdbd30a22d698c731583e5c4 SOURCES/gimp-2.8.22.tar.bz2
|
|
39
.gitignore
vendored
39
.gitignore
vendored
@ -1 +1,38 @@
|
|||||||
SOURCES/gimp-2.8.22.tar.bz2
|
gimp-2.6.10.tar.bz2
|
||||||
|
gimp-2.6.10-1-autoreconf.patch.bz2
|
||||||
|
/gimp-2.6.11.tar.bz2
|
||||||
|
/gimp-2.6.11-1-autoreconf.patch.bz2
|
||||||
|
/gimp-2.6.11-10-autoreconf.patch.bz2
|
||||||
|
/gimp-2.6.11-11-autoreconf.patch.bz2
|
||||||
|
/gimp-2.7.3.tar.bz2
|
||||||
|
/gimp-2.7.4.tar.bz2
|
||||||
|
/gimp-2.7.5.tar.bz2
|
||||||
|
/gimp-2.8.0-RC1.tar.bz2
|
||||||
|
/gimp-2.8.0-RC1-gitff6c280.patch.bz2
|
||||||
|
/gimp-2.8.0.tar.bz2
|
||||||
|
/gimp-2.8.2.tar.bz2
|
||||||
|
/gimp-2.8.4.tar.bz2
|
||||||
|
/gimp-2.8.4-5-autofoo.patch.bz2
|
||||||
|
/gimp-2.8.6.tar.bz2
|
||||||
|
/gimp-2.8.6-4-autoconf.patch.bz2
|
||||||
|
/gimp-2.8.8.tar.bz2
|
||||||
|
/gimp-2.8.10.tar.bz2
|
||||||
|
/gimp-2.8.12.tar.bz2
|
||||||
|
/gimp-2.8.14.tar.bz2
|
||||||
|
/gimp-2.8.16.tar.bz2
|
||||||
|
/gimp-2.8.18.tar.bz2
|
||||||
|
/gimp-2.8.20.tar.bz2
|
||||||
|
/gimp-2.8.22.tar.bz2
|
||||||
|
/gimp-2.10.0.tar.bz2
|
||||||
|
/gimp-2.10.2.tar.bz2
|
||||||
|
/gimp-2.10.4.tar.bz2
|
||||||
|
/gimp-2.10.6.tar.bz2
|
||||||
|
/gimp-2.10.8.tar.bz2
|
||||||
|
/gimp-2.10.10.tar.bz2
|
||||||
|
/gimp-2.10.12.tar.bz2
|
||||||
|
/gimp-2.10.14.tar.bz2
|
||||||
|
/gimp-2.10.16.tar.bz2
|
||||||
|
/gimp-2.10.18.tar.bz2
|
||||||
|
/gimp-2.10.20.tar.bz2
|
||||||
|
/gimp-2.10.22.tar.bz2
|
||||||
|
/gimp-2.99.8.tar.bz2
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
From 9a3f047f90a79e96af54a73090313a670b2685d3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nils Philippsen <nils@redhat.com>
|
|
||||||
Date: Mon, 19 Nov 2012 18:26:16 +0100
|
|
||||||
Subject: [PATCH] patch: cm-system-monitor-profile-by-default
|
|
||||||
|
|
||||||
Squashed commit of the following:
|
|
||||||
|
|
||||||
commit 1430096d27ba12566739fadf96302c9a4ce8f98b
|
|
||||||
Author: Nils Philippsen <nils@redhat.com>
|
|
||||||
Date: Mon Nov 19 18:25:28 2012 +0100
|
|
||||||
|
|
||||||
color mgmt: fix syntax error
|
|
||||||
|
|
||||||
commit eb78c3a0cfd7ff796110fcd3cd161ca11005fca5
|
|
||||||
Author: Richard Hughes <hughsient@gmail.com>
|
|
||||||
Date: Thu Nov 15 12:12:12 2012 +0100
|
|
||||||
|
|
||||||
color mgmt: try to use the system monitor profile by default
|
|
||||||
---
|
|
||||||
etc/gimprc | 7 ++++---
|
|
||||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/etc/gimprc b/etc/gimprc
|
|
||||||
index 8306571..1511cd6 100644
|
|
||||||
--- a/etc/gimprc
|
|
||||||
+++ b/etc/gimprc
|
|
||||||
@@ -285,14 +285,15 @@
|
|
||||||
|
|
||||||
# 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 yes)
|
|
||||||
# (display-rendering-intent perceptual)
|
|
||||||
# (simulation-rendering-intent perceptual)
|
|
||||||
# (simulation-gamut-check no)
|
|
||||||
# (out-of-gamut-color (color-rgb 0.501961 0.501961 0.501961))
|
|
||||||
-# (display-module "CdisplayLcms"))
|
|
||||||
+# (display-module "CdisplayLcms")
|
|
||||||
+)
|
|
||||||
|
|
||||||
# How to handle embedded color profiles when opening a file. Possible values
|
|
||||||
# are ask, keep and convert.
|
|
||||||
--
|
|
||||||
1.7.11.7
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
diff -urNp old/plug-ins/common/file-gbr.c new/plug-ins/common/file-gbr.c
|
|
||||||
--- old/plug-ins/common/file-gbr.c 2018-01-04 12:13:17.553757864 +0100
|
|
||||||
+++ new/plug-ins/common/file-gbr.c 2018-01-04 12:18:01.723635742 +0100
|
|
||||||
@@ -443,7 +443,8 @@ load_image (const gchar *filename,
|
|
||||||
{
|
|
||||||
gchar *temp = g_new (gchar, bn_size);
|
|
||||||
|
|
||||||
- if ((read (fd, temp, bn_size)) < bn_size)
|
|
||||||
+ if ((read (fd, temp, bn_size)) < bn_size ||
|
|
||||||
+ temp[bn_size - 1] != '\0')
|
|
||||||
{
|
|
||||||
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
||||||
_("Error in GIMP brush file '%s'"),
|
|
@ -1,130 +0,0 @@
|
|||||||
diff -urNp old/plug-ins/file-fli/fli.c new/plug-ins/file-fli/fli.c
|
|
||||||
--- old/plug-ins/file-fli/fli.c 2018-01-04 12:19:54.714139464 +0100
|
|
||||||
+++ new/plug-ins/file-fli/fli.c 2018-01-04 12:34:18.568323629 +0100
|
|
||||||
@@ -25,6 +25,8 @@
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
+#include <glib/gstdio.h>
|
|
||||||
+
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
@@ -461,23 +463,27 @@ void fli_read_brun(FILE *f, s_fli_header
|
|
||||||
unsigned short yc;
|
|
||||||
unsigned char *pos;
|
|
||||||
for (yc=0; yc < fli_header->height; yc++) {
|
|
||||||
- unsigned short xc, pc, pcnt;
|
|
||||||
+ unsigned short pc, pcnt;
|
|
||||||
+ size_t n, xc;
|
|
||||||
pc=fli_read_char(f);
|
|
||||||
xc=0;
|
|
||||||
pos=framebuf+(fli_header->width * yc);
|
|
||||||
+ n=(size_t)fli_header->width * (fli_header->height-yc);
|
|
||||||
for (pcnt=pc; pcnt>0; pcnt--) {
|
|
||||||
unsigned short ps;
|
|
||||||
ps=fli_read_char(f);
|
|
||||||
if (ps & 0x80) {
|
|
||||||
unsigned short len;
|
|
||||||
- for (len=-(signed char)ps; len>0; len--) {
|
|
||||||
+ for (len=-(signed char)ps; len>0 && xc<n; len--) {
|
|
||||||
pos[xc++]=fli_read_char(f);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
unsigned char val;
|
|
||||||
+ size_t len;
|
|
||||||
+ len=MIN(n-xc,ps);
|
|
||||||
val=fli_read_char(f);
|
|
||||||
- memset(&(pos[xc]), val, ps);
|
|
||||||
- xc+=ps;
|
|
||||||
+ memset(&(pos[xc]), val, len);
|
|
||||||
+ xc+=len;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -564,25 +570,34 @@ void fli_read_lc(FILE *f, s_fli_header *
|
|
||||||
memcpy(framebuf, old_framebuf, fli_header->width * fli_header->height);
|
|
||||||
firstline = fli_read_short(f);
|
|
||||||
numline = fli_read_short(f);
|
|
||||||
+ if (numline > fli_header->height || fli_header->height-numline < firstline)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
for (yc=0; yc < numline; yc++) {
|
|
||||||
- unsigned short xc, pc, pcnt;
|
|
||||||
+ unsigned short pc, pcnt;
|
|
||||||
+ size_t n, xc;
|
|
||||||
pc=fli_read_char(f);
|
|
||||||
xc=0;
|
|
||||||
pos=framebuf+(fli_header->width * (firstline+yc));
|
|
||||||
+ n=(size_t)fli_header->width * (fli_header->height-firstline-yc);
|
|
||||||
for (pcnt=pc; pcnt>0; pcnt--) {
|
|
||||||
unsigned short ps,skip;
|
|
||||||
skip=fli_read_char(f);
|
|
||||||
ps=fli_read_char(f);
|
|
||||||
- xc+=skip;
|
|
||||||
+ xc+=MIN(n-xc,skip);
|
|
||||||
if (ps & 0x80) {
|
|
||||||
unsigned char val;
|
|
||||||
+ size_t len;
|
|
||||||
ps=-(signed char)ps;
|
|
||||||
val=fli_read_char(f);
|
|
||||||
- memset(&(pos[xc]), val, ps);
|
|
||||||
- xc+=ps;
|
|
||||||
+ len=MIN(n-xc,ps);
|
|
||||||
+ memset(&(pos[xc]), val, len);
|
|
||||||
+ xc+=len;
|
|
||||||
} else {
|
|
||||||
- fread(&(pos[xc]), ps, 1, f);
|
|
||||||
- xc+=ps;
|
|
||||||
+ size_t len;
|
|
||||||
+ len=MIN(n-xc,ps);
|
|
||||||
+ fread(&(pos[xc]), len, 1, f);
|
|
||||||
+ xc+=len;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -689,7 +704,8 @@ void fli_read_lc_2(FILE *f, s_fli_header
|
|
||||||
yc=0;
|
|
||||||
numline = fli_read_short(f);
|
|
||||||
for (lc=0; lc < numline; lc++) {
|
|
||||||
- unsigned short xc, pc, pcnt, lpf, lpn;
|
|
||||||
+ unsigned short pc, pcnt, lpf, lpn;
|
|
||||||
+ size_t n, xc;
|
|
||||||
pc=fli_read_short(f);
|
|
||||||
lpf=0; lpn=0;
|
|
||||||
while (pc & 0x8000) {
|
|
||||||
@@ -700,26 +716,30 @@ void fli_read_lc_2(FILE *f, s_fli_header
|
|
||||||
}
|
|
||||||
pc=fli_read_short(f);
|
|
||||||
}
|
|
||||||
+ yc=MIN(yc, fli_header->height);
|
|
||||||
xc=0;
|
|
||||||
pos=framebuf+(fli_header->width * yc);
|
|
||||||
+ n=(size_t)fli_header->width * (fli_header->height-yc);
|
|
||||||
for (pcnt=pc; pcnt>0; pcnt--) {
|
|
||||||
unsigned short ps,skip;
|
|
||||||
skip=fli_read_char(f);
|
|
||||||
ps=fli_read_char(f);
|
|
||||||
- xc+=skip;
|
|
||||||
+ xc+=MIN(n-xc,skip);
|
|
||||||
if (ps & 0x80) {
|
|
||||||
unsigned char v1,v2;
|
|
||||||
ps=-(signed char)ps;
|
|
||||||
v1=fli_read_char(f);
|
|
||||||
v2=fli_read_char(f);
|
|
||||||
- while (ps>0) {
|
|
||||||
+ while (ps>0 && xc+1<n) {
|
|
||||||
pos[xc++]=v1;
|
|
||||||
pos[xc++]=v2;
|
|
||||||
ps--;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
- fread(&(pos[xc]), ps, 2, f);
|
|
||||||
- xc+=ps << 1;
|
|
||||||
+ size_t len;
|
|
||||||
+ len=MIN((n-xc)/2,ps);
|
|
||||||
+ fread(&(pos[xc]), len, 2, f);
|
|
||||||
+ xc+=len << 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (lpf) pos[xc]=lpn;
|
|
@ -1,25 +0,0 @@
|
|||||||
diff -urNp old/plug-ins/common/file-tga.c new/plug-ins/common/file-tga.c
|
|
||||||
--- old/plug-ins/common/file-tga.c 2018-01-04 12:36:22.333754882 +0100
|
|
||||||
+++ new/plug-ins/common/file-tga.c 2018-01-04 12:40:46.943070295 +0100
|
|
||||||
@@ -564,12 +564,17 @@ load_image (const gchar *filename,
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TGA_TYPE_COLOR:
|
|
||||||
- if (info.bpp != 15 && info.bpp != 16 &&
|
|
||||||
- info.bpp != 24 && info.bpp != 32)
|
|
||||||
+ if ((info.bpp != 15 && info.bpp != 16 &&
|
|
||||||
+ info.bpp != 24 && info.bpp != 32) ||
|
|
||||||
+ ((info.bpp == 15 || info.bpp == 24) &&
|
|
||||||
+ info.alphaBits != 0) ||
|
|
||||||
+ (info.bpp == 16 && info.alphaBits != 1 &&
|
|
||||||
+ info.alphaBits != 0) ||
|
|
||||||
+ (info.bpp == 32 && info.alphaBits != 8))
|
|
||||||
{
|
|
||||||
- g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u)",
|
|
||||||
+ g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)",
|
|
||||||
gimp_filename_to_utf8 (filename),
|
|
||||||
- info.imageType, info.bpp);
|
|
||||||
+ info.imageType, info.bpp, info.alphaBits);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
break;
|
|
@ -1,16 +0,0 @@
|
|||||||
diff -urNp old/plug-ins/common/file-psp.c new/plug-ins/common/file-psp.c
|
|
||||||
--- old/plug-ins/common/file-psp.c 2018-01-04 11:58:46.928253797 +0100
|
|
||||||
+++ new/plug-ins/common/file-psp.c 2018-01-04 12:03:42.141874067 +0100
|
|
||||||
@@ -913,6 +913,12 @@ read_creator_block (FILE *f,
|
|
||||||
g_message ("Error reading creator keyword data");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
+ if (string[length - 1] != '\0')
|
|
||||||
+ {
|
|
||||||
+ g_message ("Creator keyword data not nul-terminated");
|
|
||||||
+ g_free (string);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
switch (keyword)
|
|
||||||
{
|
|
||||||
case PSP_CRTR_FLD_CRT_DATE:
|
|
@ -1,13 +0,0 @@
|
|||||||
diff -urNp old/app/xcf/xcf.c new/app/xcf/xcf.c
|
|
||||||
--- old/app/xcf/xcf.c 2017-04-30 23:47:39.000000000 +0200
|
|
||||||
+++ new/app/xcf/xcf.c 2018-01-04 11:56:31.399888783 +0100
|
|
||||||
@@ -318,7 +318,8 @@ xcf_load_invoker (GimpProcedure *pr
|
|
||||||
{
|
|
||||||
info.file_version = 0;
|
|
||||||
}
|
|
||||||
- else if (id[9] == 'v')
|
|
||||||
+ else if (id[9] == 'v' &&
|
|
||||||
+ id[13] == '\0')
|
|
||||||
{
|
|
||||||
info.file_version = atoi (id + 10);
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
diff -urNp old/plug-ins/common/file-psp.c new/plug-ins/common/file-psp.c
|
|
||||||
--- old/plug-ins/common/file-psp.c 2018-01-04 12:04:14.636811394 +0100
|
|
||||||
+++ new/plug-ins/common/file-psp.c 2018-01-04 12:12:41.717877789 +0100
|
|
||||||
@@ -1777,6 +1777,15 @@ load_image (const gchar *filename,
|
|
||||||
{
|
|
||||||
block_start = ftell (f);
|
|
||||||
|
|
||||||
+ if (block_start + block_total_len > st.st_size)
|
|
||||||
+ {
|
|
||||||
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
|
||||||
+ _("Could not open '%s' for reading: %s"),
|
|
||||||
+ gimp_filename_to_utf8 (filename),
|
|
||||||
+ _("invalid block size"));
|
|
||||||
+ goto error;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (id == PSP_IMAGE_BLOCK)
|
|
||||||
{
|
|
||||||
if (block_number != 0)
|
|
File diff suppressed because it is too large
Load Diff
@ -1,163 +0,0 @@
|
|||||||
diff -urNp old/plug-ins/pygimp/plug-ins/benchmark-foreground-extract.py new/plug-ins/pygimp/plug-ins/benchmark-foreground-extract.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/benchmark-foreground-extract.py 2018-05-22 13:09:58.522351307 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/benchmark-foreground-extract.py 2018-05-22 13:13:20.132412856 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Foreground Extraction Benchmark
|
|
||||||
# Copyright 2005 Sven Neumann <sven@gimp.org>
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/clothify.py new/plug-ins/pygimp/plug-ins/clothify.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/clothify.py 2018-05-22 13:09:58.522351307 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/clothify.py 2018-05-22 13:13:30.123366531 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Gimp-Python - allows the writing of Gimp plugins in Python.
|
|
||||||
# Copyright (C) 1997 James Henstridge <james@daa.com.au>
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/colorxhtml.py new/plug-ins/pygimp/plug-ins/colorxhtml.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/colorxhtml.py 2018-05-22 13:09:58.521351312 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/colorxhtml.py 2018-05-22 13:11:58.188793396 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Gimp-Python - allows the writing of Gimp plugins in Python.
|
|
||||||
# Copyright (C) 2003, 2005 Manish Singh <yosh@gimp.org>
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/file-openraster.py new/plug-ins/pygimp/plug-ins/file-openraster.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/file-openraster.py 2018-05-22 13:09:58.521351312 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/file-openraster.py 2018-05-22 13:10:57.468076133 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# GIMP Plug-in for the OpenRaster file format
|
|
||||||
# http://create.freedesktop.org/wiki/OpenRaster
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/foggify.py new/plug-ins/pygimp/plug-ins/foggify.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/foggify.py 2018-05-22 13:09:58.522351307 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/foggify.py 2018-05-22 13:11:44.843855476 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Gimp-Python - allows the writing of Gimp plugins in Python.
|
|
||||||
# Copyright (C) 1997 James Henstridge <james@daa.com.au>
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/gradients-save-as-css.py new/plug-ins/pygimp/plug-ins/gradients-save-as-css.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/gradients-save-as-css.py 2018-05-22 13:09:58.521351312 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/gradients-save-as-css.py 2018-05-22 13:11:34.716902608 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#! /usr/bin/env python
|
|
||||||
+#! /usr/bin/env python2
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
# Allows saving (TODO: and loading) CSS gradient files
|
|
||||||
@@ -101,4 +101,4 @@ register(
|
|
||||||
menu="<Gradients>",
|
|
||||||
domain=("gimp20-python", gimp.locale_directory)
|
|
||||||
)
|
|
||||||
-main()
|
|
||||||
\ Chybí znak konce řádku na konci souboru
|
|
||||||
+main()
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/palette-offset.py new/plug-ins/pygimp/plug-ins/palette-offset.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/palette-offset.py 2018-05-22 13:09:58.521351312 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/palette-offset.py 2018-05-22 13:12:38.003608362 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# 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
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/palette-sort.py new/plug-ins/pygimp/plug-ins/palette-sort.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/palette-sort.py 2018-05-22 13:09:58.522351307 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/palette-sort.py 2018-05-22 13:11:10.469015537 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/palette-to-gradient.py new/plug-ins/pygimp/plug-ins/palette-to-gradient.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/palette-to-gradient.py 2018-05-22 13:09:58.522351307 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/palette-to-gradient.py 2018-05-22 13:10:27.932213923 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/py-slice.py new/plug-ins/pygimp/plug-ins/py-slice.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/py-slice.py 2018-05-22 13:09:58.521351312 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/py-slice.py 2018-05-22 13:10:47.796121235 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
#Copyright (c) Manish Singh
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/python-console.py new/plug-ins/pygimp/plug-ins/python-console.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/python-console.py 2018-05-22 13:09:58.522351307 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/python-console.py 2018-05-22 13:12:08.532745298 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Gimp-Python - allows the writing of Gimp plugins in Python.
|
|
||||||
# Copyright (C) 1997 James Henstridge <james@daa.com.au>
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/python-eval.py new/plug-ins/pygimp/plug-ins/python-eval.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/python-eval.py 2018-05-22 13:09:58.522351307 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/python-eval.py 2018-05-22 13:13:44.059301940 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Gimp-Python - allows the writing of Gimp plugins in Python.
|
|
||||||
# Copyright (C) 2006 Manish Singh <yosh@gimp.org>
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/shadow_bevel.py new/plug-ins/pygimp/plug-ins/shadow_bevel.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/shadow_bevel.py 2018-05-22 13:09:58.521351312 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/shadow_bevel.py 2018-05-22 13:13:56.019246529 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Gimp-Python - allows the writing of Gimp plugins in Python.
|
|
||||||
# Copyright (C) 1997 James Henstridge <james@daa.com.au>
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/sphere.py new/plug-ins/pygimp/plug-ins/sphere.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/sphere.py 2018-05-22 13:09:58.522351307 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/sphere.py 2018-05-22 13:14:14.564160649 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Gimp-Python - allows the writing of Gimp plugins in Python.
|
|
||||||
# Copyright (C) 1997 James Henstridge <james@daa.com.au>
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/text-brush.py new/plug-ins/pygimp/plug-ins/text-brush.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/text-brush.py 2018-05-22 13:09:58.521351312 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/text-brush.py 2018-05-22 13:12:49.291555951 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
# coding: utf-8
|
|
||||||
|
|
||||||
# Author: João Sebastião de Oliveira Bueno
|
|
||||||
diff -urNp old/plug-ins/pygimp/plug-ins/whirlpinch.py new/plug-ins/pygimp/plug-ins/whirlpinch.py
|
|
||||||
--- old/plug-ins/pygimp/plug-ins/whirlpinch.py 2018-05-22 13:09:58.521351312 +0200
|
|
||||||
+++ new/plug-ins/pygimp/plug-ins/whirlpinch.py 2018-05-22 13:14:24.092116544 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/usr/bin/env python2
|
|
||||||
|
|
||||||
# Gimp-Python - allows the writing of Gimp plugins in Python.
|
|
||||||
# Copyright (C) 1997 James Henstridge <james@daa.com.au>
|
|
||||||
diff -urNp old/configure new/configure
|
|
||||||
--- old/configure 2018-06-28 08:44:29.162846929 +0200
|
|
||||||
+++ new/configure 2018-06-28 08:47:06.790148573 +0200
|
|
||||||
@@ -23051,7 +23051,7 @@ if ${am_cv_pathless_PYTHON+:} false; the
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
|
|
||||||
- for am_cv_pathless_PYTHON in python python2 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
|
|
||||||
+ for am_cv_pathless_PYTHON in python2 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
|
|
||||||
test "$am_cv_pathless_PYTHON" = none && break
|
|
||||||
prog="import sys
|
|
||||||
# split strings by '.' and convert to numeric. Append some zeros
|
|
@ -1,12 +0,0 @@
|
|||||||
diff -up gimp-2.8.6/etc/gimprc.external-help-browser gimp-2.8.6/etc/gimprc
|
|
||||||
--- gimp-2.8.6/etc/gimprc.external-help-browser 2013-07-02 12:04:11.011774506 +0200
|
|
||||||
+++ gimp-2.8.6/etc/gimprc 2013-07-02 12:04:25.408824028 +0200
|
|
||||||
@@ -671,7 +671,7 @@
|
|
||||||
# Sets the browser used by the help system. Possible values are gimp and
|
|
||||||
# web-browser.
|
|
||||||
#
|
|
||||||
-# (help-browser gimp)
|
|
||||||
+(help-browser web-browser)
|
|
||||||
|
|
||||||
# When enabled, the online user manual will be used by the help system.
|
|
||||||
# Otherwise the locally installed copy is used. Possible values are yes and
|
|
6
gating.yaml
Normal file
6
gating.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-9
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}
|
25
gimp-2.10.0-cm-system-monitor-profile-by-default.patch
Normal file
25
gimp-2.10.0-cm-system-monitor-profile-by-default.patch
Normal file
@ -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.
|
12
gimp-2.10.12-default-font.patch
Normal file
12
gimp-2.10.12-default-font.patch
Normal file
@ -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.
|
12
gimp-2.10.18-no-phone-home-default.patch
Normal file
12
gimp-2.10.18-no-phone-home-default.patch
Normal file
@ -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)
|
||||||
|
#
|
12
gimp-2.10.24-external-help-browser.patch
Normal file
12
gimp-2.10.24-external-help-browser.patch
Normal file
@ -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.
|
60
gimp-CVE-2022-30067.patch
Normal file
60
gimp-CVE-2022-30067.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From 4f99f1fcfd892ead19831b5adcd38a99d71214b6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jacob Boerema <jgboerema@gmail.com>
|
||||||
|
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
|
31
gimp-CVE-2022-32990.patch
Normal file
31
gimp-CVE-2022-32990.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From 22af0bcfe67c1c86381f33975ca7fdbde6b36b39 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jacob Boerema <jgboerema@gmail.com>
|
||||||
|
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
|
371
gimp-remove-lua.patch
Normal file
371
gimp-remove-lua.patch
Normal file
@ -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 <https://www.gnu.org/licenses/>.
|
||||||
|
-
|
||||||
|
-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('<Image>/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
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user