Port to Python3 and build it using Python3

This commit is contained in:
Mike FABIAN 2019-07-15 16:13:12 +02:00
parent 1de22c6742
commit 157722e2e3
3 changed files with 332 additions and 25 deletions

View File

@ -32,17 +32,18 @@ Source3: %{fontname}-color.metainfo.xml
Patch0: noto-emoji-use-system-pngquant.patch Patch0: noto-emoji-use-system-pngquant.patch
Patch1: noto-emoji-build-all-flags.patch Patch1: noto-emoji-build-all-flags.patch
Patch2: noto-emoji-use-gm.patch Patch2: noto-emoji-use-gm.patch
Patch3: noto-emoji-python2.patch Patch3: noto-emoji-python3.patch
Patch4: noto-emoji-port-to-python3.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: gcc BuildRequires: gcc
BuildRequires: fontpackages-devel BuildRequires: fontpackages-devel
%if %buildfont %if %buildfont
BuildRequires: fonttools BuildRequires: fonttools
BuildRequires: python2-fonttools BuildRequires: python3-fonttools
BuildRequires: nototools BuildRequires: nototools
BuildRequires: python2-nototools BuildRequires: python3-nototools
BuildRequires: python2-devel BuildRequires: python3-devel
BuildRequires: GraphicsMagick BuildRequires: GraphicsMagick
BuildRequires: pngquant BuildRequires: pngquant
BuildRequires: zopfli BuildRequires: zopfli
@ -67,7 +68,12 @@ Provides: google-noto-color-emoji-fonts = 20150617
This package provides the Google “Noto Color Emoji” colored emoji font. This package provides the Google “Noto Color Emoji” colored emoji font.
%prep %prep
%autosetup -n noto-emoji-%{commit0} %setup -n noto-emoji-%{commit0}
%patch0 -p1 -b .noto-emoji-use-system-pngquant
%patch1 -p1 -b .noto-emoji-build-all-flags
%patch2 -p1 -b .noto-emoji-use-gm.patch
%patch3 -p1 -b .noto-emoji-python3.patch
%patch4 -p1 -b .noto-emoji-port-to-python3.patch
rm -rf third_party/pngquant rm -rf third_party/pngquant
@ -112,6 +118,7 @@ install -m 0644 -p %{SOURCE3} %{buildroot}%{_datadir}/appdata
* Tue Jul 09 2019 Mike FABIAN <mfabian@redhat.com> - 20190709-1 * Tue Jul 09 2019 Mike FABIAN <mfabian@redhat.com> - 20190709-1
- Update to upstream snapshot tarball (Contains the new emoji added in Unicode 12.0.0, - Update to upstream snapshot tarball (Contains the new emoji added in Unicode 12.0.0,
also fixes the "people holding hands" sequence. also fixes the "people holding hands" sequence.
- Port to Python3 and build using Python3
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20180814-2 * Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20180814-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

View File

@ -0,0 +1,300 @@
diff --git a/add_glyphs.py b/add_glyphs.py
index 7ff47c9..c4883a3 100644
--- a/add_glyphs.py
+++ b/add_glyphs.py
@@ -66,7 +66,7 @@ def collect_seq_to_file(image_dirs, prefix, suffix):
def remap_values(seq_to_file, map_fn):
- return {k: map_fn(v) for k, v in seq_to_file.iteritems()}
+ return {k: map_fn(v) for k, v in seq_to_file.items()}
def get_png_file_to_advance_mapper(lineheight):
@@ -228,7 +228,7 @@ def get_rtl_seq(seq):
rev_seq = list(seq)
rev_seq.reverse()
- for i in xrange(1, len(rev_seq)):
+ for i in range(1, len(rev_seq)):
if is_fitzpatrick(rev_seq[i-1]):
tmp = rev_seq[i]
rev_seq[i] = rev_seq[i-1]
@@ -282,7 +282,7 @@ def add_ligature_sequences(font, seqs, aliases):
return
rtl_seq_to_target_name = {
- get_rtl_seq(seq): name for seq, name in seq_to_target_name.iteritems()}
+ get_rtl_seq(seq): name for seq, name in seq_to_target_name.items()}
seq_to_target_name.update(rtl_seq_to_target_name)
# sequences that don't have rtl variants get mapped to the empty sequence,
# delete it.
@@ -291,7 +291,7 @@ def add_ligature_sequences(font, seqs, aliases):
# organize by first codepoint in sequence
keyed_ligatures = collections.defaultdict(list)
- for t in seq_to_target_name.iteritems():
+ for t in seq_to_target_name.items():
first_cp = t[0][0]
keyed_ligatures[first_cp].append(t)
@@ -341,7 +341,7 @@ def apply_aliases(seq_dict, aliases):
source is a key in the dictionary, we can delete it. This updates the
dictionary and returns the usable aliases."""
usable_aliases = {}
- for k, v in aliases.iteritems():
+ for k, v in aliases.items():
if v in seq_dict:
usable_aliases[k] = v
if k in seq_dict:
diff --git a/map_pua_emoji.py b/map_pua_emoji.py
index f2b9be9..866670a 100644
--- a/map_pua_emoji.py
+++ b/map_pua_emoji.py
@@ -53,8 +53,8 @@ def add_pua_cmap(source_file, target_file):
"""Add PUA characters to the cmap of the first font and save as second."""
font = ttLib.TTFont(source_file)
cmap = font_data.get_cmap(font)
- for pua, (ch1, ch2) in (add_emoji_gsub.EMOJI_KEYCAPS.items()
- + add_emoji_gsub.EMOJI_FLAGS.items()):
+ for pua, (ch1, ch2) in (list(add_emoji_gsub.EMOJI_KEYCAPS.items())
+ + list(add_emoji_gsub.EMOJI_FLAGS.items())):
if pua not in cmap:
glyph_name = get_glyph_name_from_gsub([ch1, ch2], font)
if glyph_name is not None:
diff --git a/third_party/color_emoji/emoji_builder.py b/third_party/color_emoji/emoji_builder.py
index 4157807..7f17c62 100644
--- a/third_party/color_emoji/emoji_builder.py
+++ b/third_party/color_emoji/emoji_builder.py
@@ -19,7 +19,7 @@
from __future__ import print_function
-import sys, struct, StringIO
+import sys, struct
from png import PNG
import os
from os import path
@@ -112,9 +112,9 @@ class CBDT:
line_height = (ascent + descent) * y_ppem / float (upem)
line_ascent = ascent * y_ppem / float (upem)
y_bearing = int (round (line_ascent - .5 * (line_height - height)))
- # fudge y_bearing if calculations are a bit off
- if y_bearing == 128:
- y_bearing = 127
+ # fudge y_bearing if calculations are a bit off
+ if y_bearing == 128:
+ y_bearing = 127
advance = width
vert_x_bearing = - width / 2
@@ -133,22 +133,22 @@ class CBDT:
# CHAR vertBearingX
# CHAR vertBearingY
# BYTE vertAdvance
- try:
- if big_metrics:
- self.write (struct.pack ("BBbbBbbB",
+ try:
+ if big_metrics:
+ self.write (struct.pack ("BBbbBbbB",
height, width,
x_bearing, y_bearing,
advance,
vert_x_bearing, vert_y_bearing,
vert_advance))
- else:
- self.write (struct.pack ("BBbbB",
+ else:
+ self.write (struct.pack ("BBbbB",
height, width,
x_bearing, y_bearing,
advance))
- except Exception as e:
- raise ValueError("%s, h: %d w: %d x: %d y: %d %d a:" % (
- e, height, width, x_bearing, y_bearing, advance))
+ except Exception as e:
+ raise ValueError("%s, h: %d w: %d x: %d y: %d %d a:" % (
+ e, height, width, x_bearing, y_bearing, advance))
def write_format1 (self, png):
@@ -179,12 +179,15 @@ class CBDT:
self.write (pixel)
offset += stride
- png_allowed_chunks = ["IHDR", "PLTE", "tRNS", "sRGB", "IDAT", "IEND"]
+ png_allowed_chunks = [
+ "IHDR", "PLTE", "tRNS", "sRGB", "IDAT", "IEND", # Python2
+ b"IHDR", b"PLTE", b"tRNS", b"sRGB", b"IDAT", b"IEND", # Python3
+ ]
def write_format17 (self, png):
self.write_format17or18(png, False)
- def write_format18 (self, png):
+ def write_format18 (self, png):
self.write_format17or18(png, True)
def write_format17or18 (self, png, big_metrics):
@@ -202,7 +205,7 @@ class CBDT:
def image_write_func (self, image_format):
if image_format == 1: return self.write_format1
- if image_format == 17: return self.write_format17
+ if image_format == 17: return self.write_format17
if image_format == 18: return self.write_format18
return None
@@ -441,7 +444,10 @@ By default they are dropped.
def add_font_table (font, tag, data):
tab = ttLib.tables.DefaultTable.DefaultTable (tag)
- tab.data = str(data)
+ if sys.version_info >= (3, 0, 0):
+ tab.data = data
+ else:
+ tab.data = str(data)
font[tag] = tab
def drop_outline_tables (font):
@@ -478,7 +484,7 @@ By default they are dropped.
eblc.write_header ()
eblc.start_strikes (len (img_prefixes))
- def is_vs(cp):
+ def is_vs(cp):
return cp >= 0xfe00 and cp <= 0xfe0f
for img_prefix in img_prefixes:
@@ -491,14 +497,20 @@ By default they are dropped.
codes = img_file[len (img_prefix):-4]
if "_" in codes:
pieces = codes.split ("_")
- cps = [int(code, 16) for code in pieces]
- uchars = "".join ([unichr(cp) for cp in cps if not is_vs(cp)])
+ cps = [int(code, 16) for code in pieces]
+ if sys.version_info >= (3, 0, 0):
+ uchars = "".join ([chr(cp) for cp in cps if not is_vs(cp)])
+ else:
+ uchars = "".join ([unichr(cp) for cp in cps if not is_vs(cp)])
else:
- cp = int(codes, 16)
- if is_vs(cp):
- print("ignoring unexpected vs input %04x" % cp)
- continue
- uchars = unichr(cp)
+ cp = int(codes, 16)
+ if is_vs(cp):
+ print("ignoring unexpected vs input %04x" % cp)
+ continue
+ if sys.version_info >= (3, 0, 0):
+ uchars = chr(cp)
+ else:
+ uchars = unichr(cp)
img_files[uchars] = img_file
if not img_files:
raise Exception ("No image files found in '%s'." % glb)
@@ -561,8 +573,7 @@ By default they are dropped.
# hack removal of cmap pua entry for unknown flag glyph. If we try to
# remove it earlier, getGlyphID dies. Need to restructure all of this
# code.
- font_data.delete_from_cmap(font, [0xfe82b])
-
+ font_data.delete_from_cmap(font, [0xfe82b])
font.save (out_file)
print("Output font '%s' generated." % out_file)
diff --git a/third_party/color_emoji/png.py b/third_party/color_emoji/png.py
index 20f849a..f5d4c2d 100644
--- a/third_party/color_emoji/png.py
+++ b/third_party/color_emoji/png.py
@@ -17,7 +17,12 @@
# Google Author(s): Behdad Esfahbod
#
-import struct, StringIO
+import struct
+import sys
+if sys.version_info >= (3,0,0): # Python3
+ from io import StringIO
+else:
+ from StringIO import StringIO
class PNG:
@@ -26,7 +31,7 @@ class PNG:
def __init__ (self, f):
- if isinstance(f, basestring):
+ if (isinstance(f, str) or isinstance(f, type(u''))):
f = open (f, 'rb')
self.f = f
@@ -43,7 +48,10 @@ class PNG:
def data (self):
self.seek (0)
- return bytearray (self.f.read ())
+ if sys.version_info >= (3,0,0): # Python3
+ return bytearray (self.f.read (), 'iso-8859-1')
+ else:
+ return bytearray (self.f.read ())
class BadSignature (Exception): pass
class BadChunk (Exception): pass
@@ -55,7 +63,8 @@ class PNG:
return PNG.signature
def read_chunk (self):
- length = struct.unpack (">I", self.f.read (4))[0]
+ buf = self.f.read (4)
+ length = struct.unpack (">I", buf)[0]
chunk_type = self.f.read (4)
chunk_data = self.f.read (length)
if len (chunk_data) != length:
@@ -67,7 +76,7 @@ class PNG:
def read_IHDR (self):
(chunk_type, chunk_data, crc) = self.read_chunk ()
- if chunk_type != "IHDR":
+ if chunk_type not in ("IHDR", b"IHDR"):
raise PNG.BadChunk
# Width: 4 bytes
# Height: 4 bytes
@@ -93,15 +102,24 @@ class PNG:
def filter_chunks (self, chunks):
self.seek (0);
- out = StringIO.StringIO ()
- out.write (self.read_signature ())
+ out = StringIO ()
+ if sys.version_info >= (3,0,0): # Python3
+ out.write (self.read_signature ().decode('iso-8859-1'))
+ else:
+ out.write (self.read_signature ())
while True:
chunk_type, chunk_data, crc = self.read_chunk ()
if chunk_type in chunks:
- out.write (struct.pack (">I", len (chunk_data)))
- out.write (chunk_type)
- out.write (chunk_data)
- out.write (crc)
- if chunk_type == "IEND":
+ if sys.version_info >= (3,0,0): # Python3
+ out.write (struct.pack (">I", len (chunk_data)).decode('iso-8859-1'))
+ out.write (chunk_type.decode('iso-8859-1'))
+ out.write (chunk_data.decode('iso-8859-1'))
+ out.write (crc.decode('iso-8859-1'))
+ else:
+ out.write (struct.pack (">I", len (chunk_data)))
+ out.write (chunk_type)
+ out.write (chunk_data)
+ out.write (crc)
+ if chunk_type in ("IEND", b"IEND"):
break
return PNG (out)
--
2.21.0

View File

@ -6,7 +6,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/Makefile noto-
%.ttx: %.ttx.tmpl $(ADD_GLYPHS) $(ALL_COMPRESSED_FILES) %.ttx: %.ttx.tmpl $(ADD_GLYPHS) $(ALL_COMPRESSED_FILES)
- @python $(ADD_GLYPHS) -f "$<" -o "$@" -d "$(COMPRESSED_DIR)" $(ADD_GLYPHS_FLAGS) - @python $(ADD_GLYPHS) -f "$<" -o "$@" -d "$(COMPRESSED_DIR)" $(ADD_GLYPHS_FLAGS)
+ @python2 $(ADD_GLYPHS) -f "$<" -o "$@" -d "$(COMPRESSED_DIR)" $(ADD_GLYPHS_FLAGS) + @python3 $(ADD_GLYPHS) -f "$<" -o "$@" -d "$(COMPRESSED_DIR)" $(ADD_GLYPHS_FLAGS)
%.ttf: %.ttx %.ttf: %.ttx
@rm -f "$@" @rm -f "$@"
@ -16,8 +16,8 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/Makefile noto-
$(ALL_COMPRESSED_FILES) | check_vs_adder $(ALL_COMPRESSED_FILES) | check_vs_adder
- @python $(EMOJI_BUILDER) $(SMALL_METRICS) -V $< "$@" "$(COMPRESSED_DIR)/emoji_u" - @python $(EMOJI_BUILDER) $(SMALL_METRICS) -V $< "$@" "$(COMPRESSED_DIR)/emoji_u"
- @python $(PUA_ADDER) "$@" "$@-with-pua" - @python $(PUA_ADDER) "$@" "$@-with-pua"
+ @python2 $(EMOJI_BUILDER) $(SMALL_METRICS) -V $< "$@" "$(COMPRESSED_DIR)/emoji_u" + @python3 $(EMOJI_BUILDER) $(SMALL_METRICS) -V $< "$@" "$(COMPRESSED_DIR)/emoji_u"
+ @python2 $(PUA_ADDER) "$@" "$@-with-pua" + @python3 $(PUA_ADDER) "$@" "$@-with-pua"
@$(VS_ADDER) -vs 2640 2642 2695 --dstdir '.' -o "$@-with-pua-varsel" "$@-with-pua" @$(VS_ADDER) -vs 2640 2642 2695 --dstdir '.' -o "$@-with-pua-varsel" "$@-with-pua"
@mv "$@-with-pua-varsel" "$@" @mv "$@-with-pua-varsel" "$@"
@rm "$@-with-pua" @rm "$@-with-pua"
@ -26,7 +26,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/add_aliases.py
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/add_aliases.py 2018-08-14 14:15:28.586483050 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/add_aliases.py 2018-08-14 14:15:28.586483050 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2017 Google Inc. All rights reserved. # Copyright 2017 Google Inc. All rights reserved.
# #
@ -35,7 +35,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/add_emoji_gsub
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/add_emoji_gsub.py 2018-08-14 14:15:28.586483050 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/add_emoji_gsub.py 2018-08-14 14:15:28.586483050 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2014 Google Inc. All rights reserved. # Copyright 2014 Google Inc. All rights reserved.
# #
@ -44,7 +44,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/add_glyphs.py
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/add_glyphs.py 2018-08-14 14:15:28.587483040 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/add_glyphs.py 2018-08-14 14:15:28.587483040 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
"""Extend a ttx file with additional data. """Extend a ttx file with additional data.
@ -53,7 +53,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/add_svg_glyphs
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/add_svg_glyphs.py 2018-08-14 14:15:28.588483029 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/add_svg_glyphs.py 2018-08-14 14:15:28.588483029 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# Copyright 2015 Google, Inc. All Rights Reserved. # Copyright 2015 Google, Inc. All Rights Reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -62,7 +62,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/check_emoji_se
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/check_emoji_sequences.py 2018-08-14 14:15:28.588483029 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/check_emoji_sequences.py 2018-08-14 14:15:28.588483029 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2016 Google Inc. All rights reserved. # Copyright 2016 Google Inc. All rights reserved.
# #
@ -71,7 +71,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/collect_emoji_
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/collect_emoji_svg.py 2018-08-14 14:15:28.589483019 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/collect_emoji_svg.py 2018-08-14 14:15:28.589483019 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# Copyright 2015 Google, Inc. All Rights Reserved. # Copyright 2015 Google, Inc. All Rights Reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -80,7 +80,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/flag_glyph_nam
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/flag_glyph_name.py 2018-08-14 14:15:28.589483019 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/flag_glyph_name.py 2018-08-14 14:15:28.589483019 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2014 Google Inc. All rights reserved. # Copyright 2014 Google Inc. All rights reserved.
# #
@ -89,7 +89,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/flag_info.py n
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/flag_info.py 2018-08-14 14:15:28.590483009 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/flag_info.py 2018-08-14 14:15:28.590483009 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/python -#!/usr/bin/python
+#!/usr/bin/python2 +#!/usr/bin/python3
# #
# Copyright 2016 Google Inc. All rights reserved. # Copyright 2016 Google Inc. All rights reserved.
# #
@ -98,7 +98,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/gen_version.py
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/gen_version.py 2018-08-14 14:15:28.590483009 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/gen_version.py 2018-08-14 14:15:28.590483009 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2015 Google Inc. All rights reserved. # Copyright 2015 Google Inc. All rights reserved.
# #
@ -107,7 +107,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/generate_emoji
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/generate_emoji_html.py 2018-08-14 14:15:28.591482998 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/generate_emoji_html.py 2018-08-14 14:15:28.591482998 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2016 Google Inc. All rights reserved. # Copyright 2016 Google Inc. All rights reserved.
# #
@ -116,7 +116,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/generate_emoji
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/generate_emoji_name_data.py 2018-08-14 14:15:28.591482998 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/generate_emoji_name_data.py 2018-08-14 14:15:28.591482998 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# -*- coding: utf-8 -*-# # -*- coding: utf-8 -*-#
# #
# Copyright 2015 Google Inc. All rights reserved. # Copyright 2015 Google Inc. All rights reserved.
@ -125,7 +125,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/generate_emoji
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/generate_emoji_thumbnails.py 2018-08-14 14:15:28.592482988 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/generate_emoji_thumbnails.py 2018-08-14 14:15:28.592482988 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# Copyright 2017 Google Inc. All rights reserved. # Copyright 2017 Google Inc. All rights reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -134,7 +134,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/generate_test_
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/generate_test_html.py 2018-08-14 14:15:28.592482988 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/generate_test_html.py 2018-08-14 14:15:28.592482988 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# Copyright 2015 Google, Inc. All Rights Reserved. # Copyright 2015 Google, Inc. All Rights Reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -143,7 +143,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/map_pua_emoji.
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/map_pua_emoji.py 2018-08-14 14:15:28.593482978 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/map_pua_emoji.py 2018-08-14 14:15:28.593482978 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2014 Google Inc. All rights reserved. # Copyright 2014 Google Inc. All rights reserved.
# #
@ -152,7 +152,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/materialize_em
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/materialize_emoji_images.py 2018-08-14 14:15:28.593482978 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/materialize_emoji_images.py 2018-08-14 14:15:28.593482978 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2016 Google Inc. All rights reserved. # Copyright 2016 Google Inc. All rights reserved.
# #
@ -161,7 +161,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/strip_vs_from_
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/strip_vs_from_filenames.py 2018-08-14 14:15:28.594482968 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/strip_vs_from_filenames.py 2018-08-14 14:15:28.594482968 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# #
# Copyright 2017 Google Inc. All rights reserved. # Copyright 2017 Google Inc. All rights reserved.
# #
@ -170,7 +170,7 @@ diff -ru noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362.orig/svg_cleaner.py
+++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/svg_cleaner.py 2018-08-14 14:15:28.594482968 +0200 +++ noto-emoji-3ffd20ec7504657aa17c84f9aa475ad09b20c362/svg_cleaner.py 2018-08-14 14:15:28.594482968 +0200
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-#!/usr/bin/env python -#!/usr/bin/env python
+#!/usr/bin/env python2 +#!/usr/bin/env python3
# Copyright 2015 Google, Inc. All Rights Reserved. # Copyright 2015 Google, Inc. All Rights Reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");