x11/xcb-proto: fix build with pathon3
Add upstream patches to fix build/packaging with python3 as default after the recent update. python3 is not default, so no PORTREVISION bump is required. PR: 214279 Submitted by: John W. O'Brien <john@saltant.com> Approved by: portmgr (just-fix-it blanket)
This commit is contained in:
parent
3fbdf7b254
commit
1b1bcc5dec
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=425597
@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
USE_GNOME= libxml2:build
|
||||
XORG_CAT= proto
|
||||
USES= python
|
||||
USES= python:2.7+
|
||||
USE_PYTHON= py3kplist
|
||||
NO_ARCH= yes
|
||||
|
||||
|
197
x11/xcb-proto/files/patch-xcbgen_align.py
Normal file
197
x11/xcb-proto/files/patch-xcbgen_align.py
Normal file
@ -0,0 +1,197 @@
|
||||
Obtained from:
|
||||
|
||||
https://cgit.freedesktop.org/xcb/proto/commit/xcbgen/align.py?id=ea7a3ac6c658164690e0febb55f4467cb9e0bcac
|
||||
|
||||
--- xcbgen/align.py.orig 2016-05-01 07:44:48 UTC
|
||||
+++ 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)
|
||||
|
||||
|
||||
|
57
x11/xcb-proto/files/patch-xcbgen_xtypes.py
Normal file
57
x11/xcb-proto/files/patch-xcbgen_xtypes.py
Normal file
@ -0,0 +1,57 @@
|
||||
Obtained from:
|
||||
|
||||
https://cgit.freedesktop.org/xcb/proto/commit/xcbgen/xtypes.py?id=bea5e1c85bdc0950913790364e18228f20395a3d
|
||||
|
||||
--- xcbgen/xtypes.py.orig 2016-05-01 07:44:48 UTC
|
||||
+++ 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[:]
|
Loading…
Reference in New Issue
Block a user