23245478 Move liblouis 2.1.1 to Userland
authorAlan Coopersmith <Alan.Coopersmith@Oracle.COM>
Fri, 11 Nov 2016 23:31:58 -0800
changeset 7324 4ff618cb5888
parent 7323 177ebdb56301
child 7325 0b231164d7ff
23245478 Move liblouis 2.1.1 to Userland
components/desktop/liblouis/Makefile
components/desktop/liblouis/liblouis.p5m
components/desktop/liblouis/patches/01-python3.patch
components/desktop/liblouis/patches/02-test.patch
components/desktop/liblouis/test/results-64.master
components/meta-packages/incorporation-cache
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/desktop/liblouis/Makefile	Fri Nov 11 23:31:58 2016 -0800
@@ -0,0 +1,88 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+BUILD_BITS= 		64
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		liblouis
+COMPONENT_VERSION=	2.1.1
+COMPONENT_PROJECT_URL=	http://liblouis.org/
+COMPONENT_ARCHIVE_HASH= \
+	sha256:e7b4f1aee9b1cd595b49a2fab1c545d1c7aad70dc427aa5c6d413a3dba17722c
+# liblouis upstream didn't migrate the 2.1.1 download from google code to
+# github, so we use a mirror site for now, until we upgrade to a current version
+# COMPONENT_ARCHIVE_URL=	https://github.com/liblouis/liblouis/releases/download/v$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
+COMPONENT_ARCHIVE_URL=	https://distfiles.macports.org/liblouis/$(COMPONENT_ARCHIVE)
+COMPONENT_BUGDB=	gnome/accessibility
+
+TPNO=			4317
+
+# Orca uses python 3.5, so we need to match
+PYTHON_VERSION=		3.5
+
+include $(WS_MAKE_RULES)/common.mk
+
+CONFIGURE_OPTIONS +=    --enable-shared
+CONFIGURE_OPTIONS +=    --disable-static
+
+# While the main library is built with configure, the python module is
+# built & installed with separate invocations of setup.py
+PYTHON_ENV +=	CC="$(CC)"
+PYTHON_ENV +=	CFLAGS="$(CFLAGS)"
+PYTHON_ENV +=	PYTHONPATH='$(@D)/python'
+
+COMPONENT_PRE_CONFIGURE_ACTION += ($(CLONEY) $(SOURCE_DIR) $(@D)) ;
+COMPONENT_POST_BUILD_ACTION += \
+	(cd $(@D)/python ; \
+	    $(ENV) $(COMPONENT_BUILD_ENV) $(PYTHON_ENV) \
+		LD_LIBRARY_PATH_$(BITS)=$(@D)/liblouis/.libs/ \
+	        $(PYTHON) ./setup.py build );
+COMPONENT_POST_INSTALL_ACTION += \
+	(cd $(@D)/python ; \
+	    $(ENV) $(COMPONENT_INSTALL_ENV) $(PYTHON_ENV) \
+		LD_LIBRARY_PATH_$(BITS)=$(PROTO_DIR)$(USRLIB.$(BITS)) \
+	        $(PYTHON) ./setup.py install --root $(PROTO_DIR) \
+		--install-lib $(PYTHON_LIB) );
+
+# Needed for "gmake test" to work successfully.
+unexport SHELLOPTS
+
+# Standard automake test framework results transform
+COMPONENT_TEST_TRANSFORMS += \
+        '-n ' \
+        '-e "/TOTAL/p" ' \
+        '-e "/SKIP/p" ' \
+        '-e "/PASS/p" ' \
+        '-e "/FAIL/p" ' \
+        '-e "/ERROR/p" '
+
+# additional transforms for brltty
+COMPONENT_TEST_TRANSFORMS += \
+        '-e "/^==*$$/p" ' \
+        '-e "/expected/p" '
+
+REQUIRED_PACKAGES += developer/documentation-tool/help2man
+REQUIRED_PACKAGES += library/python/setuptools-35
+REQUIRED_PACKAGES += runtime/python-35
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/desktop/liblouis/liblouis.p5m	Fri Nov 11 23:31:58 2016 -0800
@@ -0,0 +1,203 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability Volatile>
+set name=pkg.fmri \
+    value=pkg:/library/liblouis@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="liblouis braille translator and formatter"
+set name=com.oracle.info.description \
+    value="liblouis braille library and programs"
+set name=com.oracle.info.tpno value=$(TPNO)
+set name=info.classification \
+    value="org.opensolaris.category.2008:Applications/Universal Access"
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2010/402
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/bin/lou_allround
+file path=usr/bin/lou_checkhyphens
+file path=usr/bin/lou_checktable
+file path=usr/bin/lou_debug
+file path=usr/bin/lou_translate
+file path=usr/include/liblouis/liblouis.h
+file path=usr/include/liblouis/louis.h
+link path=usr/lib/$(MACH64)/liblouis.so target=liblouis.so.2.2.2
+link path=usr/lib/$(MACH64)/liblouis.so.2 target=liblouis.so.2.2.2
+file path=usr/lib/$(MACH64)/liblouis.so.2.2.2
+file path=usr/lib/$(MACH64)/pkgconfig/liblouis.pc
+file path=usr/lib/python3.5/vendor-packages/louis-$(COMPONENT_VERSION)-py3.5.egg-info
+file path=usr/lib/python3.5/vendor-packages/louis/__init__.py
+file path=usr/share/doc/liblouis/liblouis.html
+file path=usr/share/doc/liblouis/liblouis.txt
+file path=usr/share/info/liblouis.info
+file path=usr/share/liblouis/tables/Cz-Cz-g1.utb
+file path=usr/share/liblouis/tables/Es-Es-g1.utb
+file path=usr/share/liblouis/tables/Fr-Ca-g2.ctb
+file path=usr/share/liblouis/tables/Fr-Fr-g2.ctb
+file path=usr/share/liblouis/tables/Lv-Lv-g1.utb
+file path=usr/share/liblouis/tables/Nl-Nl-g1.utb
+file path=usr/share/liblouis/tables/Pl-Pl-g1.utb
+file path=usr/share/liblouis/tables/Se-Se-g1.utb
+file path=usr/share/liblouis/tables/UEBC-g1.utb
+file path=usr/share/liblouis/tables/UEBC-g2.ctb
+file path=usr/share/liblouis/tables/ar-ar-g1.utb
+file path=usr/share/liblouis/tables/bg.ctb
+file path=usr/share/liblouis/tables/bo.ctb
+file path=usr/share/liblouis/tables/boxes.ctb
+file path=usr/share/liblouis/tables/chardefs.cti
+file path=usr/share/liblouis/tables/compress.ctb
+file path=usr/share/liblouis/tables/corrections.ctb
+file path=usr/share/liblouis/tables/countries.cti
+file path=usr/share/liblouis/tables/cy-cy-g1.utb
+file path=usr/share/liblouis/tables/cy-cy-g2.ctb
+file path=usr/share/liblouis/tables/da-1252.ctb
+file path=usr/share/liblouis/tables/da-dk-g1.utb
+file path=usr/share/liblouis/tables/da-dk-g2.ctb
+file path=usr/share/liblouis/tables/da-dk.dis
+file path=usr/share/liblouis/tables/da-lt.ctb
+file path=usr/share/liblouis/tables/da.ctb
+file path=usr/share/liblouis/tables/de-ch-accents.cti
+file path=usr/share/liblouis/tables/de-ch-g0.utb
+file path=usr/share/liblouis/tables/de-ch-g1.ctb
+file path=usr/share/liblouis/tables/de-ch-g2.ctb
+file path=usr/share/liblouis/tables/de-chardefs6.cti
+file path=usr/share/liblouis/tables/de-chardefs8.cti
+file path=usr/share/liblouis/tables/de-chess.ctb
+file path=usr/share/liblouis/tables/de-de-accents.cti
+file path=usr/share/liblouis/tables/de-de-comp8.ctb
+file path=usr/share/liblouis/tables/de-de-g0.utb
+file path=usr/share/liblouis/tables/de-de-g1.ctb
+file path=usr/share/liblouis/tables/de-de-g2.ctb
+file path=usr/share/liblouis/tables/de-de.dis
+file path=usr/share/liblouis/tables/de-eurobrl6.dis
+file path=usr/share/liblouis/tables/de-eurobrl6u.dis
+file path=usr/share/liblouis/tables/de-g0-core.utb
+file path=usr/share/liblouis/tables/de-g1-core.ctb
+file path=usr/share/liblouis/tables/de-g2-core.ctb
+file path=usr/share/liblouis/tables/en-GB-g2.ctb
+file path=usr/share/liblouis/tables/en-chess.ctb
+file path=usr/share/liblouis/tables/en-gb-g1.utb
+file path=usr/share/liblouis/tables/en-us-brf.dis
+file path=usr/share/liblouis/tables/en-us-comp6.ctb
+file path=usr/share/liblouis/tables/en-us-comp8.ctb
+file path=usr/share/liblouis/tables/en-us-compbrl.ctb
+file path=usr/share/liblouis/tables/en-us-g1.ctb
+file path=usr/share/liblouis/tables/en-us-g1.utb
+file path=usr/share/liblouis/tables/en-us-g2.ctb
+file path=usr/share/liblouis/tables/en-us-interline.ctb
+file path=usr/share/liblouis/tables/en-us-mathtext.ctb
+file path=usr/share/liblouis/tables/en_CA.ctb
+file path=usr/share/liblouis/tables/eo.ctb
+file path=usr/share/liblouis/tables/et.ctb
+file path=usr/share/liblouis/tables/eurodefs.cti
+file path=usr/share/liblouis/tables/fi-fi-8dot.ctb
+file path=usr/share/liblouis/tables/fi-fi.ctb
+file path=usr/share/liblouis/tables/fi1.ctb
+file path=usr/share/liblouis/tables/fi2.ctb
+file path=usr/share/liblouis/tables/fr-2007.ctb
+file path=usr/share/liblouis/tables/fr-bfu-comp6.utb
+file path=usr/share/liblouis/tables/fr-bfu-comp8.utb
+file path=usr/share/liblouis/tables/fr-bfu-g2.ctb
+file path=usr/share/liblouis/tables/fr-ca-g1.utb
+file path=usr/share/liblouis/tables/fr-fr-g1.utb
+file path=usr/share/liblouis/tables/ga.ctb
+file path=usr/share/liblouis/tables/gd.ctb
+file path=usr/share/liblouis/tables/gr-bb.ctb
+file path=usr/share/liblouis/tables/gr-gr-g1.utb
+file path=usr/share/liblouis/tables/he.ctb
+file path=usr/share/liblouis/tables/hi-in-g1.utb
+file path=usr/share/liblouis/tables/hr.ctb
+file path=usr/share/liblouis/tables/hu.ctb
+file path=usr/share/liblouis/tables/hu1.ctb
+file path=usr/share/liblouis/tables/hy.ctb
+file path=usr/share/liblouis/tables/hyph_de_DE.dic
+file path=usr/share/liblouis/tables/hyph_en_US.dic
+file path=usr/share/liblouis/tables/hyph_es_ES.dic
+file path=usr/share/liblouis/tables/hyph_fr_FR.dic
+file path=usr/share/liblouis/tables/hyph_it_IT.dic
+file path=usr/share/liblouis/tables/hyph_nl_NL.dic
+file path=usr/share/liblouis/tables/hyph_no_NO.dic
+file path=usr/share/liblouis/tables/hyph_pl_PL.dic
+file path=usr/share/liblouis/tables/hyph_pt_PT.dic
+file path=usr/share/liblouis/tables/hyph_sv_SE.dic
+file path=usr/share/liblouis/tables/is.ctb
+file path=usr/share/liblouis/tables/it-it-g1.utb
+file path=usr/share/liblouis/tables/it-it-g1.utb2
+file path=usr/share/liblouis/tables/lang2table
+file path=usr/share/liblouis/tables/lt.ctb
+file path=usr/share/liblouis/tables/marburg.ctb
+file path=usr/share/liblouis/tables/marburg_edit.ctb
+file path=usr/share/liblouis/tables/marburg_single_cell_defs.cti
+file path=usr/share/liblouis/tables/marburg_unicode_defs.cti
+file path=usr/share/liblouis/tables/mt.ctb
+file path=usr/share/liblouis/tables/nemeth.ctb
+file path=usr/share/liblouis/tables/nemeth_edit.ctb
+file path=usr/share/liblouis/tables/nemethdefs.cti
+file path=usr/share/liblouis/tables/nl-be-g1.utb
+file path=usr/share/liblouis/tables/no-gen.ctb
+file path=usr/share/liblouis/tables/no-gen.dis
+file path=usr/share/liblouis/tables/no-no-g0.utb
+file path=usr/share/liblouis/tables/no-no-g1.ctb
+file path=usr/share/liblouis/tables/no-no-g2.ctb
+file path=usr/share/liblouis/tables/no-no-g3.ctb
+file path=usr/share/liblouis/tables/no-no-generic.ctb
+file path=usr/share/liblouis/tables/no-no-generic.dis
+file path=usr/share/liblouis/tables/no-no.ctb
+file path=usr/share/liblouis/tables/no-no.dis
+file path=usr/share/liblouis/tables/printables.cti
+file path=usr/share/liblouis/tables/pt-pt-g1.utb
+file path=usr/share/liblouis/tables/pt-pt-g2.ctb
+file path=usr/share/liblouis/tables/ro.ctb
+file path=usr/share/liblouis/tables/ru-ru-comp8
+file path=usr/share/liblouis/tables/ru-ru-g1.utb
+file path=usr/share/liblouis/tables/ru-ru.dis
+file path=usr/share/liblouis/tables/ru.ctb
+file path=usr/share/liblouis/tables/se-se.dis
+file path=usr/share/liblouis/tables/sk-sk-g1.utb
+file path=usr/share/liblouis/tables/sk-sk.utb
+file path=usr/share/liblouis/tables/sl-si-g1.utb
+file path=usr/share/liblouis/tables/spaces.ctb
+file path=usr/share/liblouis/tables/sv-1989.ctb
+file path=usr/share/liblouis/tables/sv-1996.ctb
+file path=usr/share/liblouis/tables/text_nabcc.dis
+file path=usr/share/liblouis/tables/tr.ctb
+file path=usr/share/liblouis/tables/ukchardefs.cti
+file path=usr/share/liblouis/tables/ukmaths.ctb
+file path=usr/share/liblouis/tables/ukmaths_edit.ctb
+file path=usr/share/liblouis/tables/ukmaths_single_cell_defs.cti
+file path=usr/share/liblouis/tables/ukmaths_unicode_defs.cti
+file path=usr/share/liblouis/tables/uni-text.dis
+file path=usr/share/liblouis/tables/unicodedefs.cti
+file path=usr/share/liblouis/tables/us-table.dis
+file path=usr/share/liblouis/tables/vi.ctb
+file path=usr/share/liblouis/tables/zh-hk.ctb
+file path=usr/share/liblouis/tables/zh-tw.ctb
+file path=usr/share/man/man1/lou_allround.1
+file path=usr/share/man/man1/lou_checkhyphens.1
+file path=usr/share/man/man1/lou_checktable.1
+file path=usr/share/man/man1/lou_debug.1
+file path=usr/share/man/man1/lou_translate.1
+license COPYING license=GPLv3
+license COPYING.LIB license=LGPLv3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/desktop/liblouis/patches/01-python3.patch	Fri Nov 11 23:31:58 2016 -0800
@@ -0,0 +1,185 @@
+Backport of Python 3 changes from upstream git:
+
+https://github.com/liblouis/liblouis/blob/61e98afda6bab9c921d1955b99235a945357889a/python/louis/__init__.py.in
+
+--- liblouis-2.1.1/python/louis/__init__.py.in
++++ liblouis-2.1.1/python/louis/__init__.py.in
+@@ -34,6 +34,18 @@
+ from ctypes import *
+ import struct
+ import atexit
++import sys
++
++# Some general utility functions
++def _createTablesString(tablesList):
++    """Creates a tables string for liblouis calls"""
++    return b",".join([x.encode("ASCII") if isinstance(x, str) else bytes(x) for x in tablesList])
++
++createStr = None
++if sys.version_info[0] == 2:
++    createStr = lambda x: unicode(x)
++else:
++    createStr = lambda x: str(x)
+ 
+ #{ Module Configuration
+ #: Specifies the number by which the input length should be multiplied
+@@ -85,14 +97,14 @@
+         the release date and perhaps notable changes.
+     @rtype: str
+     """
+-    return liblouis.lou_version()
++    return liblouis.lou_version().decode("ASCII")
+ 
+ def translate(tableList, inbuf, typeform=None,cursorPos=0, mode=0):
+     """Translate a string of characters, providing position information.
+     @param tableList: A list of translation tables.
+     @type tableList: list of str
+     @param inbuf: The string to translate.
+-    @type inbuf: unicode
++    @type inbuf: str
+     @param typeform: A list of typeform constants indicating the typeform for each position in inbuf,
+         C{None} for no typeform information.
+     @type typeform: list of int
+@@ -104,12 +116,12 @@
+         a list of input positions for each position in the output,
+         a list of output positions for each position in the input, and
+         the position of the cursor in the output.
+-    @rtype: (unicode, list of int, list of int, int)
++    @rtype: (str, list of int, list of int, int)
+     @raise RuntimeError: If a complete translation could not be done.
+     @see: lou_translate in the liblouis documentation
+     """
+-    tablesString = ",".join([str(x) for x in tableList])
+-    inbuf = unicode(inbuf)
++    tablesString = _createTablesString(tableList)
++    inbuf = createStr(inbuf)
+     inlen = c_int(len(inbuf))
+     outlen = c_int(inlen.value*outlenMultiplier)
+     outbuf = create_unicode_buffer(outlen.value)
+@@ -132,19 +144,19 @@
+     @param tableList: A list of translation tables.
+     @type tableList: list of str
+     @param inbuf: The string to translate.
+-    @type inbuf: unicode
++    @type inbuf: str
+     @param typeform: A list of typeform constants indicating the typeform for each position in inbuf,
+         C{None} for no typeform information.
+     @type typeform: list of int
+     @param mode: The translation mode; add multiple values for a combined mode.
+     @type mode: int
+     @return: The translated string.
+-    @rtype: unicode
++    @rtype: str
+     @raise RuntimeError: If a complete translation could not be done.
+     @see: lou_translateString in the liblouis documentation
+     """
+-    tablesString = ",".join([str(x) for x in tableList])
+-    inbuf = unicode(inbuf)
++    tablesString = _createTablesString(tableList)
++    inbuf = createStr(inbuf)
+     inlen = c_int(len(inbuf))
+     outlen = c_int(inlen.value*outlenMultiplier)
+     outbuf = create_unicode_buffer(outlen.value)
+@@ -164,7 +176,7 @@
+     @param tableList: A list of translation tables.
+     @type tableList: list of str
+     @param inbuf: Braille to back translate.
+-    @type inbuf: unicode
++    @type inbuf: str
+     @param typeform: List where typeform constants will be placed.
+     @type typeform: list
+     @param cursorPos: Position of cursor.
+@@ -175,12 +187,12 @@
+         a list of input positions for each position in the output,
+         a list of the output positions for each position in the input and
+         the position of the cursor in the output.
+-    @rtype: (unicode, list of int, list of int, int)
++    @rtype: (str, list of int, list of int, int)
+     @raises RuntimeError: If back translation could not be completed.
+     @see: lou_backTranslate in the liblouis documentation.
+     """
+-    tablestring = ','.join([str(x) for x in tableList])
+-    inbuf = unicode(inbuf)
++    tablestring = _createTablesString(tableList)
++    inbuf = createStr(inbuf)
+     inlen = c_int(len(inbuf))
+     outlen = c_int(inlen.value * outlenMultiplier)
+     outbuf = create_unicode_buffer(outlen.value)
+@@ -203,19 +215,19 @@
+     @param tableList: A list of translation tables.
+     @type tableList: list of str
+     @param inbuf: The Braille to back translate.
+-    @type inbuf: unicode
++    @type inbuf: str
+     @param typeform: List for typeform constants to be put in.
+         If you don't want typeform data then give None
+     @type typeform: list
+     @param mode: The translation mode
+     @type mode: int
+     @return: The back translation of inbuf.
+-    @rtype: unicode
++    @rtype: str
+     @raises RuntimeError: If a full back translation could not be done.
+     @see: lou_backTranslateString in the liblouis documentation.
+     """
+-    tablestring = ','.join([str(x) for x in tableList])
+-    inbuf = unicode(inbuf)
++    tablestring = _createTablesString(tableList)
++    inbuf = createStr(inbuf)
+     inlen = c_int(len(inbuf))
+     outlen = c_int(inlen.value * outlenMultiplier)
+     outbuf = create_unicode_buffer(outlen.value)
+@@ -237,7 +249,7 @@
+     @param inbuf: The text to get hyphenation information about.
+         This should be a single word and leading/trailing whitespace
+         and punctuation is ignored.
+-    @type inbuf: unicode
++    @type inbuf: str
+     @param mode: Lets liblouis know if inbuf is plain text or Braille.
+         Set to 0 for text and anyother value for Braille.
+     @type mode: int
+@@ -247,13 +259,13 @@
+     @raises RuntimeError: If hyphenation data could not be produced.
+     @see: lou_hyphenate in the liblouis documentation.
+     """
+-    tablestring = ','.join([str(x) for x in tableList])
+-    inbuf = unicode(inbuf)
++    tablesString = _createTablesString(tableList)
++    inbuf = createStr(inbuf)
+     inlen = c_int(len(inbuf))
+     hyphen_string = create_string_buffer(inlen.value)
+-    if not liblouis.lou_hyphenate(tablestring, inbuf, inlen, hyphen_string, mode):
+-        raise RuntimeError("Can't hyphenate tables %s, inbuf %s, mode %d" %(tablestring, inbuf, mode))
+-    return hyphen_string.value
++    if not liblouis.lou_hyphenate(tablesString, inbuf, inlen, hyphen_string, mode):
++        raise RuntimeError("Can't hyphenate tables %s, inbuf %s, mode %d" %(tablesString, inbuf, mode))
++    return hyphen_string.value.decode("ASCII")
+ 
+ def compileString(tableList, inString):
+     """Compile a table entry on the fly at run-time.
+@@ -264,7 +276,8 @@
+     @raise RuntimeError: If compilation of the entry failed.
+     @see: lou_compileString in the liblouis documentation
+     """
+-    tablesString = ",".join([str(x) for x in tableList])
++    tablesString = _createTablesString(tableList)
++    inBytes = inString.encode("ASCII") if isinstance(inString, str) else bytes(inString)
+     if not liblouis.lou_compileString(tablesString, inString):
+         raise RuntimeError("Can't compile entry: tables %s, inString %s" % (tableList, inString))
+ 
+@@ -282,9 +295,13 @@
+ comp8Dots = 8
+ pass1Only = 16
+ compbrlLeftCursor = 32
++otherTrans = 64
++ucBrl = 128
+ #}
+ 
+ if __name__ == '__main__':
+     # Just some common tests.
+-    print version()
+-    print translate(['../tables/en-us-g2.ctb'], u'Hello world!', cursorPos=5)
++    print(version())
++    print(translate([b'../tables/en-us-g2.ctb'], 'Hello world!', cursorPos=5))
++
++
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/desktop/liblouis/patches/02-test.patch	Fri Nov 11 23:31:58 2016 -0800
@@ -0,0 +1,19 @@
+In our build environment the test script was failing because lou_checktable
+was looking for the passed in pathname under $LOUIS_TABLEPATH and thus all
+tests failed with a doubled pathname, effectively
+$(top_srcdir)/tables/$(top_srcdir)/tables/tablename .
+
+Upstream has replaced this shell script with a perl script, so we need to see
+if it has the same problem before figuring out if we need to submit upstream.
+
+--- liblouis-2.1.1/tests/check_all_tables
++++ liblouis-2.1.1/tests/check_all_tables
+@@ -13,7 +13,7 @@
+ TABLES=`ls $LOUIS_TABLEPATH/*.[cu]tb $LOUIS_TABLEPATH/*.cti $LOUIS_TABLEPATH/*.dis | grep -v countries.cti | grep -v compress.ctb | grep -v corrections.ctb | grep -v core.[cu]tb`
+ 
+ for table in $TABLES; do
+-    if ! lou_checktable $table 2> /dev/null; then
++    if ! lou_checktable $(basename $table); then
+ 	echo "lou_checktable on $table failed";
+ 	fail=1;
+     fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/desktop/liblouis/test/results-64.master	Fri Nov 11 23:31:58 2016 -0800
@@ -0,0 +1,11 @@
+string='greetings  ' cursor=10 (' ') expected=8 recieved=7 (' ')
+XFAIL: present_progressive
+PASS: capitalized_word
+PASS: capitalized_with_sentance
+PASS: inpos_compbrl
+XFAIL: lastworditalafter
+PASS: check_all_tables
+PASS: check_tables_against_corpus.pl
+=====================================================
+All 7 tests behaved as expected (2 expected failures)
+=====================================================
--- a/components/meta-packages/incorporation-cache	Sun Nov 13 22:50:47 2016 -0800
+++ b/components/meta-packages/incorporation-cache	Fri Nov 11 23:31:58 2016 -0800
@@ -67,7 +67,6 @@
 consolidation/userland/userland-incorporation:gnome/window-manager/[email protected]
 consolidation/userland/userland-incorporation:image/library/[email protected]
 consolidation/userland/userland-incorporation:library/[email protected]
-consolidation/userland/userland-incorporation:library/[email protected]
 consolidation/userland/userland-incorporation:library/libproxy/[email protected]
 consolidation/userland/userland-incorporation:library/libproxy/[email protected]
 consolidation/userland/userland-incorporation:library/[email protected]