diff options
author | nia <nia@pkgsrc.org> | 2020-12-20 12:17:12 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2020-12-20 12:17:12 +0000 |
commit | 448d22babf799d5fd005db4b66f9011735ddf6b5 (patch) | |
tree | c49a614aadd222a41967f0fdc212aabe810fbe51 /x11/gtk2 | |
parent | 625ce30103cd0d338615b676e64ac97a44089b30 (diff) | |
download | pkgsrc-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/Makefile | 5 | ||||
-rw-r--r-- | x11/gtk2/distinfo | 3 | ||||
-rw-r--r-- | x11/gtk2/patches/patch-gtk_gtk-builder-convert | 123 |
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 + |