Hello community,

here is the log from the commit of package xcb-proto for openSUSE:Factory 
checked in at 2018-01-19 11:48:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xcb-proto (Old)
 and      /work/SRC/openSUSE:Factory/.xcb-proto.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xcb-proto"

Fri Jan 19 11:48:01 2018 rev:11 rq:566632 version:7.6_1.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/xcb-proto/xcb-proto.changes      2018-01-16 
09:26:07.691292532 +0100
+++ /work/SRC/openSUSE:Factory/.xcb-proto.new/xcb-proto.changes 2018-01-19 
11:48:43.484333126 +0100
@@ -1,0 +2,9 @@
+Wed Jan 17 13:05:11 UTC 2018 - [email protected]
+
+- Tweak the python conditions to pick between py2 and py3 only
+  do not bother with "both at once" scenario
+- Apply patches to make sure we really work with python3:
+  * U_python-whitespace.patch
+  * U_python3-compat.patch
+
+-------------------------------------------------------------------

New:
----
  U_python-whitespace.patch
  U_python3-compat.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xcb-proto.spec ++++++
--- /var/tmp/diff_new_pack.dZCPhM/_old  2018-01-19 11:48:43.992309176 +0100
+++ /var/tmp/diff_new_pack.dZCPhM/_new  2018-01-19 11:48:43.996308988 +0100
@@ -16,13 +16,12 @@
 #
 
 
-%if %suse_version >= 1500
-%define have_python2 0
+%define dirsuffix 1.12
+%if 0%{?suse_version} >= 1500
+%bcond_with python2
 %else
-%define have_python2 1
+%bcond_without python2
 %endif
-
-%define dirsuffix 1.12
 Name:           xcb-proto
 Version:        7.6_%{dirsuffix}
 Release:        0
@@ -30,21 +29,23 @@
 License:        X11
 Group:          Development/Libraries/X11
 Url:            http://xorg.freedesktop.org/
-#Git-Clone:    git://anongit.freedesktop.org/xorg/proto/xcb-proto
-#Git-Web:      http://cgit.freedesktop.org/xorg/proto/xcb-proto/
+#Git-Web:      https://cgit.freedesktop.org/xcb/proto
 Source:         
http://xorg.freedesktop.org/archive/individual/xcb/%{name}-%{dirsuffix}.tar.bz2
 Patch1:         U_xinput-typedef-for-event_type_base.patch
 Patch2:         U_add-support-for-eventstruct.patch
 Patch3:         U_SendExtensionEvent-uses-eventstruct.patch
+Patch4:         U_python-whitespace.patch
+Patch5:         U_python3-compat.patch
 BuildRequires:  autoconf >= 2.57
 BuildRequires:  automake
 BuildRequires:  fdupes
 BuildRequires:  pkgconfig
 BuildRequires:  python-rpm-macros
-%if %{have_python2}
+%if %{with python2}
 BuildRequires:  python2-base
-%endif
+%else
 BuildRequires:  python3-base
+%endif
 
 %description
 The XCB protocol headers for X11 development. xcb-proto provides the
@@ -54,16 +55,19 @@
 %package devel
 Summary:        The X11 Protocol: X Protocol C Bindings
 Group:          Development/Libraries/X11
-Requires:       python3-xcb-proto-devel = %{version}
 Provides:       xorg-x11-proto-devel = 7.6
 Obsoletes:      xorg-x11-proto-devel <= 7.6
+%if %{with python2}
+Requires:       python2-xcb-proto-devel = %{version}
+%else
+Requires:       python3-xcb-proto-devel = %{version}
+%endif
 
 %description devel
 The XCB protocol headers for X11 development. xcb-proto provides the
 XML-XCB protocol descriptions that libxcb uses to generate the majority of
 its code and API.
 
-%if %{have_python2}
 %package -n python2-xcb-proto-devel
 Summary:        Python libraries mandatory for XML-XCB Development
 Group:          Development/Libraries/X11
@@ -76,7 +80,6 @@
 Language-independent Python libraries that used to parse an XML description
 and create objects used by Python code generators in individual language
 bindings.
-%endif
 
 %package -n python3-xcb-proto-devel
 Summary:        Python libraries mandatory for XML-XCB Development
@@ -89,43 +92,35 @@
 
 %prep
 %setup -q -n %{name}-%{dirsuffix}
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
+%autopatch -p1
 
 %build
 autoreconf -fiv
-# In order to build both python2 and python3 version we need to run
-# configure and install twice
-
-%if %{have_python2}
+%if %{with python2}
 export PYTHON="python2"
-%configure
-make %{?_smp_mflags}
-%make_install
-%endif
-
+%else
 export PYTHON="python3"
+%endif
 %configure
 make %{?_smp_mflags}
-%make_install
 
 %install
-%fdupes -s %{buildroot}/%{_prefix}
+%make_install
+%fdupes %{buildroot}/%{_prefix}
 
 %files devel
 %dir %{_datadir}/xcb
 %doc %{_datadir}/xcb/*
 %{_libdir}/pkgconfig/*.pc
 
-%if %{have_python2}
+%if %{with python2}
 %files -n python2-xcb-proto-devel
 %doc COPYING
 %{python_sitelib}/xcbgen/
-%endif
-
+%else
 %files -n python3-xcb-proto-devel
-%doc COPYING
+%license COPYING
 %{python3_sitelib}/xcbgen/
+%endif
 
 %changelog

++++++ U_python-whitespace.patch ++++++
>From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001
From: Thomas Klausner <[email protected]>
Date: Thu, 19 May 2016 17:30:04 +0200
Subject: Make whitespace use consistent.

At least python-3.5.x complains about this forcefully.

Signed-off-by: Thomas Klausner <[email protected]>
Signed-off-by: Uli Schlachter <[email protected]>
---
 xcbgen/align.py | 96 ++++++++++++++++++++++++++++-----------------------------
 1 file changed, 48 insertions(+), 48 deletions(-)

diff --git a/xcbgen/align.py b/xcbgen/align.py
index 5e31838..d4c12ee 100644
--- a/xcbgen/align.py
+++ b/xcbgen/align.py
@@ -16,12 +16,12 @@ class Alignment(object):
         return self.align == other.align and self.offset == other.offset
 
     def __str__(self):
-       return "(align=%d, offset=%d)" % (self.align, self.offset)
+        return "(align=%d, offset=%d)" % (self.align, self.offset)
 
     @staticmethod
     def for_primitive_type(size):
-       # compute the required start_alignment based on the size of the type
-       if size % 8 == 0:
+        # compute the required start_alignment based on the size of the type
+        if size % 8 == 0:
             # do 8-byte primitives require 8-byte alignment in X11?
             return Alignment(8,0)
         elif size % 4 == 0:
@@ -33,7 +33,7 @@ class Alignment(object):
 
 
     def align_after_fixed_size(self, size):
-       new_offset = (self.offset + size) % self.align
+        new_offset = (self.offset + size) % self.align
         return Alignment(self.align, new_offset)
 
 
@@ -41,7 +41,7 @@ class Alignment(object):
         '''
         Assuming the given external_align, checks whether
         self is fulfilled for all cases.
-       Returns True if yes, False otherwise.
+        Returns True if yes, False otherwise.
         '''
         if self.align == 1 and self.offset == 0:
             # alignment 1 with offset 0 is always fulfilled
@@ -55,9 +55,9 @@ class Alignment(object):
             # the external align guarantees less alignment -> not guaranteed
             return False
 
-       if external_align.align % self.align != 0:
+        if external_align.align % self.align != 0:
             # the external align cannot be divided by our align
-           # -> not guaranteed
+            # -> not guaranteed
             # (this can only happen if there are alignments that are not
             # a power of 2, which is highly discouraged. But better be
             # safe and check for it)
@@ -72,7 +72,7 @@ class Alignment(object):
 
     def combine_with(self, other):
         # returns the alignment that is guaranteed when
-       # both, self or other, can happen
+        # both, self or other, can happen
         new_align = gcd(self.align, other.align)
         new_offset_candidate1 = self.offset % new_align
         new_offset_candidate2 = other.offset % new_align
@@ -83,8 +83,8 @@ class Alignment(object):
             new_align = gcd(new_align, offset_diff)
             new_offset_candidate1 = self.offset % new_align
             new_offset_candidate2 = other.offset % new_align
-           assert new_offset_candidate1 == new_offset_candidate2
-           new_offset = new_offset_candidate1
+            assert new_offset_candidate1 == new_offset_candidate2
+            new_offset = new_offset_candidate1
         # return the result
         return Alignment(new_align, new_offset)
 
@@ -92,44 +92,44 @@ class Alignment(object):
 class AlignmentLog(object):
 
     def __init__(self):
-       self.ok_list = []
-       self.fail_list = []
-       self.verbosity = 1
+        self.ok_list = []
+        self.fail_list = []
+        self.verbosity = 1
 
     def __str__(self):
-       result = ""
+        result = ""
 
-       # output the OK-list
-       for (align_before, field_name, type_obj, callstack, align_after) in 
self.ok_list:
-           stacksize = len(callstack)
+        # output the OK-list
+        for (align_before, field_name, type_obj, callstack, align_after) in 
self.ok_list:
+            stacksize = len(callstack)
             indent = '  ' * stacksize
-           if self.ok_callstack_is_relevant(callstack):
+            if self.ok_callstack_is_relevant(callstack):
                 if field_name is None or field_name == "":
-                   result += ("    %sok: %s:\n\t%sbefore: %s, after: %s\n"
-                       % (indent, str(type_obj), indent, str(align_before), 
str(align_after)))
-               else:
-                   result += ("    %sok: field \"%s\" in %s:\n\t%sbefore: %s, 
after: %s\n"
-                       % (indent, str(field_name), str(type_obj),
-                          indent, str(align_before), str(align_after)))
+                    result += ("    %sok: %s:\n\t%sbefore: %s, after: %s\n"
+                        % (indent, str(type_obj), indent, str(align_before), 
str(align_after)))
+                else:
+                    result += ("    %sok: field \"%s\" in %s:\n\t%sbefore: %s, 
after: %s\n"
+                        % (indent, str(field_name), str(type_obj),
+                           indent, str(align_before), str(align_after)))
                 if self.verbosity >= 1:
-                   result += self.callstack_to_str(indent, callstack)
+                    result += self.callstack_to_str(indent, callstack)
 
-       # output the fail-list
-       for (align_before, field_name, type_obj, callstack, reason) in 
self.fail_list:
-           stacksize = len(callstack)
+        # output the fail-list
+        for (align_before, field_name, type_obj, callstack, reason) in 
self.fail_list:
+            stacksize = len(callstack)
             indent = '  ' * stacksize
-           if field_name is None or field_name == "":
-               result += ("    %sfail: align %s is incompatible 
with\n\t%s%s\n\t%sReason: %s\n"
-                   % (indent, str(align_before), indent, str(type_obj), 
indent, reason))
-           else:
-               result += ("    %sfail: align %s is incompatible 
with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
-                   % (indent, str(align_before), indent, str(field_name), 
str(type_obj), indent, reason))
+            if field_name is None or field_name == "":
+                result += ("    %sfail: align %s is incompatible 
with\n\t%s%s\n\t%sReason: %s\n"
+                    % (indent, str(align_before), indent, str(type_obj), 
indent, reason))
+            else:
+                result += ("    %sfail: align %s is incompatible 
with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
+                    % (indent, str(align_before), indent, str(field_name), 
str(type_obj), indent, reason))
 
             if self.verbosity >= 1:
-               result += self.callstack_to_str(indent, callstack)
+                result += self.callstack_to_str(indent, callstack)
 
 
-       return result
+        return result
 
 
     def callstack_to_str(self, indent, callstack):
@@ -137,41 +137,41 @@ class AlignmentLog(object):
         for stack_elem in callstack:
             result += "\t  %s%s\n" % (indent, str(stack_elem))
         result += "\t%s]\n" % indent
-       return result
+        return result
 
 
     def ok_callstack_is_relevant(self, ok_callstack):
         # determine whether an ok callstack is relevant for logging
-       if self.verbosity >= 2:
-           return True
+        if self.verbosity >= 2:
+            return True
 
         # empty callstacks are always relevant
-       if len(ok_callstack) == 0:
+        if len(ok_callstack) == 0:
             return True
 
-       # check whether the ok_callstack is a subset or equal to a 
fail_callstack
+        # check whether the ok_callstack is a subset or equal to a 
fail_callstack
         for (align_before, field_name, type_obj, fail_callstack, reason) in 
self.fail_list:
             if len(ok_callstack) <= len(fail_callstack):
                 zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)])
-               is_subset = all([i == j for i, j in zipped])
-               if is_subset:
+                is_subset = all([i == j for i, j in zipped])
+                if is_subset:
                     return True
 
         return False
 
 
     def ok(self, align_before, field_name, type_obj, callstack, align_after):
-       self.ok_list.append((align_before, field_name, type_obj, callstack, 
align_after))
+        self.ok_list.append((align_before, field_name, type_obj, callstack, 
align_after))
 
     def fail(self, align_before, field_name, type_obj, callstack, reason):
-       self.fail_list.append((align_before, field_name, type_obj, callstack, 
reason))
+        self.fail_list.append((align_before, field_name, type_obj, callstack, 
reason))
 
     def append(self, other):
-       self.ok_list.extend(other.ok_list)
-       self.fail_list.extend(other.fail_list)
+        self.ok_list.extend(other.ok_list)
+        self.fail_list.extend(other.fail_list)
 
     def ok_count(self):
-       return len(self.ok_list)
+        return len(self.ok_list)
 
 
 
-- 
cgit v1.1

++++++ U_python3-compat.patch ++++++
>From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001
From: Thomas Klausner <[email protected]>
Date: Thu, 19 May 2016 17:30:05 +0200
Subject: print() is a function and needs parentheses.

Fixes build with python-3.x.

Signed-off-by: Thomas Klausner <[email protected]>
Signed-off-by: Uli Schlachter <[email protected]>
---
 xcbgen/xtypes.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
index c3b5758..b83b119 100644
--- a/xcbgen/xtypes.py
+++ b/xcbgen/xtypes.py
@@ -501,7 +501,7 @@ class ComplexType(Type):
                 int(required_start_align_element.get('align', "4"), 0),
                 int(required_start_align_element.get('offset', "0"), 0))
             if verbose_align_log:
-                print "Explicit start-align for %s: %s\n" % (self, 
self.required_start_align)
+                print ("Explicit start-align for %s: %s\n" % (self, 
self.required_start_align))
 
     def resolve(self, module):
         if self.resolved:
@@ -592,7 +592,7 @@ class ComplexType(Type):
                 if verbose_align_log:
                     print ("calc_required_start_align: %s has start-align %s"
                         % (str(self), str(self.required_start_align)))
-                    print "Details:\n" + str(log)
+                    print ("Details:\n" + str(log))
                 if self.required_start_align.offset != 0:
                     print (("WARNING: %s\n\thas start-align with non-zero 
offset: %s"
                         + "\n\tsuggest to add explicit definition with:"
@@ -619,12 +619,12 @@ class ComplexType(Type):
             for offset in range(0,align):
                 align_candidate = Alignment(align, offset)
                 if verbose_align_log:
-                    print "trying %s for %s" % (str(align_candidate), 
str(self))
+                    print ("trying %s for %s" % (str(align_candidate), 
str(self)))
                 my_log = AlignmentLog()
                 if self.is_possible_start_align(align_candidate, callstack, 
my_log):
                     log.append(my_log)
                     if verbose_align_log:
-                        print "found start-align %s for %s" % 
(str(align_candidate), str(self))
+                        print ("found start-align %s for %s" % 
(str(align_candidate), str(self)))
                     return align_candidate
                 else:
                     my_ok_count = my_log.ok_count()
@@ -641,7 +641,7 @@ class ComplexType(Type):
         # none of the candidates applies
         # this type has illegal internal aligns for all possible start_aligns
         if verbose_align_log:
-            print "didn't find start-align for %s" % str(self)
+            print ("didn't find start-align for %s" % str(self))
         log.append(best_log)
         return None
 
@@ -900,7 +900,7 @@ class SwitchType(ComplexType):
     # aux function for unchecked_get_alignment_after
     def get_align_for_selected_case_field(self, case_field, start_align, 
callstack, log):
         if verbose_align_log:
-            print "get_align_for_selected_case_field: %s, case_field = %s" % 
(str(self), str(case_field))
+            print ("get_align_for_selected_case_field: %s, case_field = %s" % 
(str(self), str(case_field)))
         total_align = start_align
         for field in self.bitcases:
             my_callstack = callstack[:]
-- 
cgit v1.1


Reply via email to