summaryrefslogtreecommitdiff
path: root/x11/gtk2
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2020-12-20 12:17:12 +0000
committernia <nia@pkgsrc.org>2020-12-20 12:17:12 +0000
commit448d22babf799d5fd005db4b66f9011735ddf6b5 (patch)
treec49a614aadd222a41967f0fdc212aabe810fbe51 /x11/gtk2
parent625ce30103cd0d338615b676e64ac97a44089b30 (diff)
downloadpkgsrc-448d22babf799d5fd005db4b66f9011735ddf6b5.tar.gz
gtk2: Add support for Python 3
The only thing using Python in the main gtk2 package is the optional gtk-builder-convert script that is shipped with the distribution. This script can run in a Python 3 interpreter using some preexisting patches (in this case, taken from MacPorts)
Diffstat (limited to 'x11/gtk2')
-rw-r--r--x11/gtk2/Makefile5
-rw-r--r--x11/gtk2/distinfo3
-rw-r--r--x11/gtk2/patches/patch-gtk_gtk-builder-convert123
3 files changed, 127 insertions, 4 deletions
diff --git a/x11/gtk2/Makefile b/x11/gtk2/Makefile
index f2a005c5ad0..32f04101e7f 100644
--- a/x11/gtk2/Makefile
+++ b/x11/gtk2/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.318 2020/12/04 20:45:50 nia Exp $
+# $NetBSD: Makefile,v 1.319 2020/12/20 12:17:12 nia Exp $
DISTNAME= gtk+-2.24.32
PKGNAME= ${DISTNAME:S/gtk/gtk2/}
-PKGREVISION= 18
+PKGREVISION= 19
CATEGORIES= x11 gnome
MASTER_SITES= ${MASTER_SITE_GNOME:=sources/gtk+/2.24/}
EXTRACT_SUFX= .tar.xz
@@ -74,7 +74,6 @@ SUBST_MESSAGE.iconcache= Renaming gtk-icon-cache-update.
SUBST_SED.iconcache= -e 's,gtk-update-icon-cache,gtk2-update-icon-cache,g'
SUBST_FILES.iconcache= gtk/Makefile.in
-PYTHON_VERSIONS_ACCEPTED= 27 # not yet ported as of 2.24.22
REPLACE_PYTHON= gtk/gtk-builder-convert
# We remove the module databases during post-install since we create them
diff --git a/x11/gtk2/distinfo b/x11/gtk2/distinfo
index e6ff322c909..fbd55d52add 100644
--- a/x11/gtk2/distinfo
+++ b/x11/gtk2/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.164 2019/01/06 18:58:34 rillig Exp $
+$NetBSD: distinfo,v 1.165 2020/12/20 12:17:12 nia Exp $
SHA1 (gtk+-2.24.32.tar.xz) = c885ade62b06854590822c8eb906daf7dd15d90a
RMD160 (gtk+-2.24.32.tar.xz) = c0c83479fad040e25159bf7a8a9eb51322716a56
@@ -7,5 +7,6 @@ Size (gtk+-2.24.32.tar.xz) = 12620860 bytes
SHA1 (patch-ab) = 9c82cc60f3825d377a197c876fcc6faa379cbde3
SHA1 (patch-af) = d59414e24a7da7f8694dbefbd2f0c2c2b60ec5ad
SHA1 (patch-aj) = 9887573ac7ade9e8f8ee2ead68e279f67836a1a3
+SHA1 (patch-gtk_gtk-builder-convert) = b6fced6b25e671a13e917967ec95d5f040578d8c
SHA1 (patch-gtk_gtksearchenginesimple.c) = 3c44b84f2e0d3f7cdfb594bf56370f588d165b14
SHA1 (patch-gtk_gtktooltips.c) = 94f384b4becd74a9effcdbb72bbe3ee9a58d2bb8
diff --git a/x11/gtk2/patches/patch-gtk_gtk-builder-convert b/x11/gtk2/patches/patch-gtk_gtk-builder-convert
new file mode 100644
index 00000000000..6a806a5ab0e
--- /dev/null
+++ b/x11/gtk2/patches/patch-gtk_gtk-builder-convert
@@ -0,0 +1,123 @@
+$NetBSD: patch-gtk_gtk-builder-convert,v 1.1 2020/12/20 12:17:12 nia Exp $
+
+Compatibility with Python 3. From MacPorts.
+
+--- gtk/gtk-builder-convert.orig 2016-10-22 04:12:40.000000000 +0000
++++ gtk/gtk-builder-convert
+@@ -54,6 +54,24 @@ try:
+ except ImportError:
+ subprocess = None
+
++# Sorted
++try:
++ sorted = sorted
++except NameError:
++ def sorted(iterable, cmp=None, key=None, reverse=False):
++ if key is None:
++ lst = list(iterable)
++ else:
++ lst = [(key(val), idx, val) for idx, val in enumerate(iterable)]
++ lst.sort()
++ if key is None:
++ if reverse:
++ return lst[::-1]
++ return lst
++ if reverse:
++ lst = lst[::-1]
++ return [i[-1] for i in lst]
++
+ def get_child_nodes(node):
+ assert node.tagName == 'object'
+ nodes = []
+@@ -259,7 +277,7 @@ class GtkBuilderConverter(object):
+ for node in objects:
+ self._convert(node.getAttribute("class"), node)
+ if self._get_object(node.getAttribute('id')) is not None:
+- print "WARNING: duplicate id \"" + node.getAttribute('id') + "\""
++ print("WARNING: duplicate id \"" + node.getAttribute('id') + "\"")
+ self.objects[node.getAttribute('id')] = node
+
+ # Convert Gazpachos UI tag
+@@ -270,15 +288,7 @@ class GtkBuilderConverter(object):
+ for node in self._dom.getElementsByTagName("accessibility"):
+ self._convert_accessibility(node)
+
+- # Output the newly created root objects and sort them
+- # by attribute id
+- # FIXME: Use sorted(self.root_objects,
+- # key=lambda n: n.getAttribute('id'),
+- # reverse=True):
+- # when we can depend on python 2.4 or higher
+- root_objects = self.root_objects[:]
+- root_objects.sort(lambda a, b: cmp(b.getAttribute('id'),
+- a.getAttribute('id')))
++ root_objects = sorted(self.root_objects, key=lambda n: n.getAttribute('id'), reverse=True)
+ for obj in root_objects:
+ self._interface.childNodes.insert(0, obj)
+
+@@ -461,8 +471,8 @@ class GtkBuilderConverter(object):
+ if signal_name in ['activate', 'toggled']:
+ action.appendChild(signal)
+ else:
+- print 'Unhandled signal %s::%s' % (node.getAttribute('class'),
+- signal_name)
++ print('Unhandled signal %s::%s' % (node.getAttribute('class'),
++ signal_name))
+
+ if not uimgr.childNodes:
+ child = self._dom.createElement('child')
+@@ -481,8 +491,8 @@ class GtkBuilderConverter(object):
+ for accelerator in get_accelerator_nodes(node):
+ signal_name = accelerator.getAttribute('signal')
+ if signal_name != 'activate':
+- print 'Unhandled accelerator signal for %s::%s' % (
+- node.getAttribute('class'), signal_name)
++ print('Unhandled accelerator signal for %s::%s' % (
++ node.getAttribute('class'), signal_name))
+ continue
+ accelerator.removeAttribute('signal')
+ child.appendChild(accelerator)
+@@ -547,12 +557,12 @@ class GtkBuilderConverter(object):
+ if prop.childNodes:
+ data = prop.childNodes[0].data
+ value, lower, upper, step, page, page_size = data.split(' ')
+- properties.update(value=value,
+- lower=lower,
+- upper=upper,
+- step_increment=step,
+- page_increment=page,
+- page_size=page_size)
++ properties.update(dict(value=value,
++ lower=lower,
++ upper=upper,
++ step_increment=step,
++ page_increment=page,
++ page_size=page_size))
+ else:
+ prop.appendChild(self._dom.createTextNode(""))
+
+@@ -747,7 +757,7 @@ def _indent(output):
+ return s.stdout.read()
+
+ def usage():
+- print __doc__
++ print(__doc__)
+
+ def main(args):
+ try:
+@@ -786,12 +796,12 @@ def main(args):
+ root=root)
+ conv.parse_file(input_filename)
+
+- xml = _indent(conv.to_xml())
++ xml = _indent(conv.to_xml()).decode()
+ if output_filename == "-":
+- print xml
++ print(xml)
+ else:
+ open(output_filename, 'w').write(xml)
+- print "Wrote", output_filename
++ print("Wrote", output_filename)
+
+ return 0
+