!2 Port gtk2-devel's gtk-builder-convert to Python 3
Merge pull request !2 from algorithmofdish/master
This commit is contained in:
commit
002e3fabdd
48
gtk2.spec
48
gtk2.spec
@ -5,13 +5,16 @@
|
|||||||
#Basic Information
|
#Basic Information
|
||||||
Name: gtk2
|
Name: gtk2
|
||||||
Version: 2.24.32
|
Version: 2.24.32
|
||||||
Release: 5
|
Release: 6
|
||||||
Summary: GTK+ graphical user interface library
|
Summary: GTK+ graphical user interface library
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
URL: http://www.gtk.org
|
URL: http://www.gtk.org
|
||||||
Source: http://download.gnome.org/sources/gtk+/2.24/gtk+-%{version}.tar.xz
|
Source: http://download.gnome.org/sources/gtk+/2.24/gtk+-%{version}.tar.xz
|
||||||
Source2: im-cedilla.conf
|
Source2: im-cedilla.conf
|
||||||
|
|
||||||
|
# Use Python 3 in gtk-builder-convert
|
||||||
|
# Accepted upstream: https://gitlab.gnome.org/GNOME/gtk/merge_requests/1080
|
||||||
|
Patch1: python3.patch
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=583273
|
# https://bugzilla.gnome.org/show_bug.cgi?id=583273
|
||||||
Patch2: icon-padding.patch
|
Patch2: icon-padding.patch
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=599618
|
# https://bugzilla.gnome.org/show_bug.cgi?id=599618
|
||||||
@ -25,7 +28,7 @@ BuildRequires: pkgconfig(pango) >= 1.20 pkgconfig(gdk-pixbuf-2.0) >= 2.21.0
|
|||||||
BuildRequires: pkgconfig(cairo) >= 1.6 pkgconfig(gobject-introspection-1.0) >= 0.9.3
|
BuildRequires: pkgconfig(cairo) >= 1.6 pkgconfig(gobject-introspection-1.0) >= 0.9.3
|
||||||
BuildRequires: pkgconfig(xi) pkgconfig(xrandr) pkgconfig(xrender) pkgconfig(xcursor)
|
BuildRequires: pkgconfig(xi) pkgconfig(xrandr) pkgconfig(xrender) pkgconfig(xcursor)
|
||||||
BuildRequires: pkgconfig(xinerama) pkgconfig(xcomposite) pkgconfig(xdamage)
|
BuildRequires: pkgconfig(xinerama) pkgconfig(xcomposite) pkgconfig(xdamage)
|
||||||
BuildRequires: gettext cups-devel libxslt
|
BuildRequires: gettext cups-devel libxslt python3-devel
|
||||||
BuildRequires: gtk-doc automake autoconf libtool pkgconfig git
|
BuildRequires: gtk-doc automake autoconf libtool pkgconfig git
|
||||||
Requires: hicolor-icon-theme gtk-update-icon-cache
|
Requires: hicolor-icon-theme gtk-update-icon-cache
|
||||||
Requires: gdk-pixbuf2-modules glib2 >= 2.28.0 atk >= 1.29.2 pango >= 1.20
|
Requires: gdk-pixbuf2-modules glib2 >= 2.28.0 atk >= 1.29.2 pango >= 1.20
|
||||||
@ -107,10 +110,10 @@ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
|
|||||||
make
|
make
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make install DESTDIR=$RPM_BUILD_ROOT \
|
make install DESTDIR=%{buildroot} \
|
||||||
RUN_QUERY_IMMODULES_TEST=false
|
RUN_QUERY_IMMODULES_TEST=false
|
||||||
|
|
||||||
echo ".so man1/gtk-query-immodules-2.0.1" > $RPM_BUILD_ROOT%{_mandir}/man1/gtk-query-immodules-2.0-%{__isa_bits}.1
|
echo ".so man1/gtk-query-immodules-2.0.1" > %{buildroot}%{_mandir}/man1/gtk-query-immodules-2.0-%{__isa_bits}.1
|
||||||
|
|
||||||
%find_lang gtk20
|
%find_lang gtk20
|
||||||
%find_lang gtk20-properties
|
%find_lang gtk20-properties
|
||||||
@ -123,24 +126,27 @@ for dir in $(find examples/* -type d); do
|
|||||||
cp -aR $dir tmpdocs/examples
|
cp -aR $dir tmpdocs/examples
|
||||||
done
|
done
|
||||||
|
|
||||||
mv $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-2.0 $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-2.0-64
|
mv %{buildroot}%{_bindir}/gtk-query-immodules-2.0 %{buildroot}%{_bindir}/gtk-query-immodules-2.0-64
|
||||||
|
|
||||||
# Install input method frameworks conf
|
# Install input method frameworks conf
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/X11/xinit/xinput.d
|
mkdir -p %{buildroot}%{_sysconfdir}/X11/xinit/xinput.d
|
||||||
cp %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/X11/xinit/xinput.d
|
cp %{SOURCE2} %{buildroot}%{_sysconfdir}/X11/xinit/xinput.d
|
||||||
|
|
||||||
|
# Use python3 shebang instead of ambiguous python
|
||||||
|
pathfix.py -pn -i %{__python3} %{buildroot}%{_bindir}/gtk-builder-convert
|
||||||
|
|
||||||
# rm unpackaged files
|
# rm unpackaged files
|
||||||
rm $RPM_BUILD_ROOT%{_libdir}/*.la
|
rm %{buildroot}%{_libdir}/*.la
|
||||||
rm $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/*/*.la
|
rm %{buildroot}%{_libdir}/gtk-2.0/*/*.la
|
||||||
rm $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk_bin_version}/*/*.la
|
rm %{buildroot}%{_libdir}/gtk-2.0/%{gtk_bin_version}/*/*.la
|
||||||
rm $RPM_BUILD_ROOT%{_bindir}/gtk-update-icon-cache
|
rm %{buildroot}%{_bindir}/gtk-update-icon-cache
|
||||||
rm $RPM_BUILD_ROOT%{_mandir}/man1/gtk-update-icon-cache.1*
|
rm %{buildroot}%{_mandir}/man1/gtk-update-icon-cache.1*
|
||||||
|
|
||||||
touch $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk_bin_version}/immodules.cache
|
touch %{buildroot}%{_libdir}/gtk-2.0/%{gtk_bin_version}/immodules.cache
|
||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/modules
|
mkdir -p %{buildroot}%{_libdir}/gtk-2.0/modules
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/immodules
|
mkdir -p %{buildroot}%{_libdir}/gtk-2.0/immodules
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk_bin_version}/filesystems
|
mkdir -p %{buildroot}%{_libdir}/gtk-2.0/%{gtk_bin_version}/filesystems
|
||||||
|
|
||||||
%transfiletriggerin -- %{_libdir}/gtk-2.0/immodules/ %{_libdir}/gtk-2.0/%{gtk_bin_version}/immodules/
|
%transfiletriggerin -- %{_libdir}/gtk-2.0/immodules/ %{_libdir}/gtk-2.0/%{gtk_bin_version}/immodules/
|
||||||
gtk-query-immodules-2.0-64 --update-cache
|
gtk-query-immodules-2.0-64 --update-cache
|
||||||
@ -153,9 +159,7 @@ gtk-query-immodules-2.0-64 --update-cache
|
|||||||
|
|
||||||
%preun
|
%preun
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
%postun -p /sbin/ldconfig
|
|
||||||
|
|
||||||
#Files list
|
#Files list
|
||||||
%files -f gtk20.lang
|
%files -f gtk20.lang
|
||||||
@ -218,6 +222,12 @@ gtk-query-immodules-2.0-64 --update-cache
|
|||||||
%{_mandir}/man1/gtk-builder-convert.1.gz
|
%{_mandir}/man1/gtk-builder-convert.1.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 24 2020 hexiujun <hexiujun1@huawei.com> - 2.24.32-6
|
||||||
|
- Type:enhancement
|
||||||
|
- ID:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC:Port gtk2-devel's gtk-builder-convert to Python 3
|
||||||
|
|
||||||
* Thu Jan 9 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.24.32-5
|
* Thu Jan 9 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.24.32-5
|
||||||
- Type:enhancement
|
- Type:enhancement
|
||||||
- ID:NA
|
- ID:NA
|
||||||
|
|||||||
169
python3.patch
Normal file
169
python3.patch
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
Uupstream pull request: https://gitlab.gnome.org/GNOME/gtk/merge_requests/1080
|
||||||
|
|
||||||
|
From 3ff8f70b9686205f0618d7a479fd42a457b90165 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Viktorin <encukou@gmail.com>
|
||||||
|
Date: Tue, 3 Sep 2019 13:54:49 +0200
|
||||||
|
Subject: [PATCH 1/3] Make gtk-builder-convert compatible with Python 3
|
||||||
|
|
||||||
|
- Convert tabs to spaces
|
||||||
|
- Use print as a function, even on Python 2
|
||||||
|
- Output a binary file, or decode for stdout
|
||||||
|
---
|
||||||
|
gtk/gtk-builder-convert | 25 ++++++++++++++-----------
|
||||||
|
1 file changed, 14 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert
|
||||||
|
index ea737de195..41f7a8c941 100755
|
||||||
|
--- a/gtk/gtk-builder-convert
|
||||||
|
+++ b/gtk/gtk-builder-convert
|
||||||
|
@@ -36,6 +36,7 @@ Examples:
|
||||||
|
|
||||||
|
Report bugs to http://bugzilla.gnome.org/."""
|
||||||
|
|
||||||
|
+from __future__ import print_function
|
||||||
|
import getopt
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
@@ -259,7 +260,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
|
||||||
|
@@ -277,8 +278,7 @@ class GtkBuilderConverter(object):
|
||||||
|
# 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.sort(key=lambda a: a.getAttribute('id'), reverse=True)
|
||||||
|
for obj in root_objects:
|
||||||
|
self._interface.childNodes.insert(0, obj)
|
||||||
|
|
||||||
|
@@ -461,8 +461,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 +481,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)
|
||||||
|
@@ -747,7 +747,7 @@ def _indent(output):
|
||||||
|
return s.stdout.read()
|
||||||
|
|
||||||
|
def usage():
|
||||||
|
- print __doc__
|
||||||
|
+ print(__doc__)
|
||||||
|
|
||||||
|
def main(args):
|
||||||
|
try:
|
||||||
|
@@ -788,10 +788,13 @@ def main(args):
|
||||||
|
|
||||||
|
xml = _indent(conv.to_xml())
|
||||||
|
if output_filename == "-":
|
||||||
|
- print xml
|
||||||
|
+ if isinstance(xml, str):
|
||||||
|
+ print(xml)
|
||||||
|
+ else:
|
||||||
|
+ print(xml.decode(sys.stdout.encoding))
|
||||||
|
else:
|
||||||
|
- open(output_filename, 'w').write(xml)
|
||||||
|
- print "Wrote", output_filename
|
||||||
|
+ open(output_filename, 'wb').write(xml)
|
||||||
|
+ print("Wrote", output_filename)
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
||||||
|
|
||||||
|
From 4f8efe3ae09ee69657b83399a118b5252f25d830 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Viktorin <encukou@gmail.com>
|
||||||
|
Date: Tue, 3 Sep 2019 14:53:05 +0200
|
||||||
|
Subject: [PATCH 2/3] gtk-builder-convert: Remove compat code for Python 2.3
|
||||||
|
and below
|
||||||
|
|
||||||
|
---
|
||||||
|
gtk/gtk-builder-convert | 13 +------------
|
||||||
|
1 file changed, 1 insertion(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert
|
||||||
|
index 41f7a8c941..a16f83b217 100755
|
||||||
|
--- a/gtk/gtk-builder-convert
|
||||||
|
+++ b/gtk/gtk-builder-convert
|
||||||
|
@@ -48,12 +48,7 @@ DIALOGS = ['GtkDialog',
|
||||||
|
'GtkMessageDialog']
|
||||||
|
WINDOWS = ['GtkWindow'] + DIALOGS
|
||||||
|
|
||||||
|
-# The subprocess is only available in Python 2.4+
|
||||||
|
-try:
|
||||||
|
- import subprocess
|
||||||
|
- subprocess # pyflakes
|
||||||
|
-except ImportError:
|
||||||
|
- subprocess = None
|
||||||
|
+import subprocess
|
||||||
|
|
||||||
|
def get_child_nodes(node):
|
||||||
|
assert node.tagName == 'object'
|
||||||
|
@@ -271,12 +266,6 @@ 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(key=lambda a: a.getAttribute('id'), reverse=True)
|
||||||
|
for obj in root_objects:
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
||||||
|
|
||||||
|
From b5ea5a0cf1f12be5072b9f06d1127a8977414916 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Viktorin <encukou@gmail.com>
|
||||||
|
Date: Tue, 3 Sep 2019 14:56:14 +0200
|
||||||
|
Subject: [PATCH 3/3] gtk-builder-convert: Update bug report URL
|
||||||
|
|
||||||
|
Also, use a newline instead of period at the end to make the
|
||||||
|
URL easy to copy
|
||||||
|
---
|
||||||
|
gtk/gtk-builder-convert | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert
|
||||||
|
index a16f83b217..b1faba822e 100755
|
||||||
|
--- a/gtk/gtk-builder-convert
|
||||||
|
+++ b/gtk/gtk-builder-convert
|
||||||
|
@@ -34,7 +34,8 @@ When OUTPUT is -, write to standard output.
|
||||||
|
Examples:
|
||||||
|
gtk-builder-convert preference.glade preferences.ui
|
||||||
|
|
||||||
|
-Report bugs to http://bugzilla.gnome.org/."""
|
||||||
|
+Report bugs to https://gitlab.gnome.org/GNOME/gtk/issues/new
|
||||||
|
+"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
import getopt
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
Loading…
x
Reference in New Issue
Block a user