summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2017-10-23 13:38:41 +0000
committerjoerg <joerg@pkgsrc.org>2017-10-23 13:38:41 +0000
commitfe52bb949f837d39420dbdb8d3ff47488362c204 (patch)
treebdf623312ff1b1c780a1cf3a86462f8ce5e92a45 /graphics
parent146e6b211b6741d5b0bbed27f4f0f3a973ebc83c (diff)
downloadpkgsrc-fe52bb949f837d39420dbdb8d3ff47488362c204.tar.gz
Add py-strich-0.8:
PyStrich is a Python module to generate 1D and 2D barcodes (Code 39, Code 128, DataMatrix, QRCode and EAN13).
Diffstat (limited to 'graphics')
-rw-r--r--graphics/py-strich/DESCR2
-rw-r--r--graphics/py-strich/Makefile21
-rw-r--r--graphics/py-strich/PLIST335
-rw-r--r--graphics/py-strich/distinfo9
-rw-r--r--graphics/py-strich/patches/patch-pystrich_code128_test__code128.py12
-rw-r--r--graphics/py-strich/patches/patch-pystrich_qrcode_isodata.py24
-rw-r--r--graphics/py-strich/patches/patch-pystrich_qrcode_test__qrcode.py12
7 files changed, 415 insertions, 0 deletions
diff --git a/graphics/py-strich/DESCR b/graphics/py-strich/DESCR
new file mode 100644
index 00000000000..012695d7212
--- /dev/null
+++ b/graphics/py-strich/DESCR
@@ -0,0 +1,2 @@
+PyStrich is a Python module to generate 1D and 2D barcodes (Code 39, Code
+128, DataMatrix, QRCode and EAN13).
diff --git a/graphics/py-strich/Makefile b/graphics/py-strich/Makefile
new file mode 100644
index 00000000000..10c8d2f1b4a
--- /dev/null
+++ b/graphics/py-strich/Makefile
@@ -0,0 +1,21 @@
+# $NetBSD: Makefile,v 1.1 2017/10/23 13:38:41 joerg Exp $
+
+DISTNAME= pyStrich-0.8
+PKGNAME= ${PYPKGPREFIX}-strich-0.8
+CATEGORIES= graphics python
+MASTER_SITES= ${MASTER_SITE_PYPI:=p/pyStrich/}
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= http://method-b.uk/pystrich/
+COMMENT= 1D and 2D barcode generator
+LICENSE= 2-clause-bsd AND apache-2.0
+
+BUILD_DEPENDS+= ${PYPKGPREFIX}-test>=2.8:../../devel/py-test
+DEPENDS+= ${PYPKGPREFIX}-Pillow-[0-9]*:../../graphics/py-Pillow
+
+do-test:
+ ${MKDIR} ${WRKSRC}/pystrich/code128/test_img ${WRKSRC}/pystrich/ean13/test_img
+ cd ${WRKSRC} && py.test-${PYVERSSUFFIX}
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/graphics/py-strich/PLIST b/graphics/py-strich/PLIST
new file mode 100644
index 00000000000..d4ea47c6957
--- /dev/null
+++ b/graphics/py-strich/PLIST
@@ -0,0 +1,335 @@
+@comment $NetBSD: PLIST,v 1.1 2017/10/23 13:38:41 joerg Exp $
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/pystrich/__init__.py
+${PYSITELIB}/pystrich/__init__.pyc
+${PYSITELIB}/pystrich/__init__.pyo
+${PYSITELIB}/pystrich/code128/__init__.py
+${PYSITELIB}/pystrich/code128/__init__.pyc
+${PYSITELIB}/pystrich/code128/__init__.pyo
+${PYSITELIB}/pystrich/code128/encoding.py
+${PYSITELIB}/pystrich/code128/encoding.pyc
+${PYSITELIB}/pystrich/code128/encoding.pyo
+${PYSITELIB}/pystrich/code128/generate_test.py
+${PYSITELIB}/pystrich/code128/generate_test.pyc
+${PYSITELIB}/pystrich/code128/generate_test.pyo
+${PYSITELIB}/pystrich/code128/renderer.py
+${PYSITELIB}/pystrich/code128/renderer.pyc
+${PYSITELIB}/pystrich/code128/renderer.pyo
+${PYSITELIB}/pystrich/code128/test_code128.py
+${PYSITELIB}/pystrich/code128/test_code128.pyc
+${PYSITELIB}/pystrich/code128/test_code128.pyo
+${PYSITELIB}/pystrich/code128/textencoder.py
+${PYSITELIB}/pystrich/code128/textencoder.pyc
+${PYSITELIB}/pystrich/code128/textencoder.pyo
+${PYSITELIB}/pystrich/code39/__init__.py
+${PYSITELIB}/pystrich/code39/__init__.pyc
+${PYSITELIB}/pystrich/code39/__init__.pyo
+${PYSITELIB}/pystrich/code39/encoding.py
+${PYSITELIB}/pystrich/code39/encoding.pyc
+${PYSITELIB}/pystrich/code39/encoding.pyo
+${PYSITELIB}/pystrich/code39/renderer.py
+${PYSITELIB}/pystrich/code39/renderer.pyc
+${PYSITELIB}/pystrich/code39/renderer.pyo
+${PYSITELIB}/pystrich/code39/textencoder.py
+${PYSITELIB}/pystrich/code39/textencoder.pyc
+${PYSITELIB}/pystrich/code39/textencoder.pyo
+${PYSITELIB}/pystrich/datamatrix/__init__.py
+${PYSITELIB}/pystrich/datamatrix/__init__.pyc
+${PYSITELIB}/pystrich/datamatrix/__init__.pyo
+${PYSITELIB}/pystrich/datamatrix/placement.py
+${PYSITELIB}/pystrich/datamatrix/placement.pyc
+${PYSITELIB}/pystrich/datamatrix/placement.pyo
+${PYSITELIB}/pystrich/datamatrix/reedsolomon.py
+${PYSITELIB}/pystrich/datamatrix/reedsolomon.pyc
+${PYSITELIB}/pystrich/datamatrix/reedsolomon.pyo
+${PYSITELIB}/pystrich/datamatrix/renderer.py
+${PYSITELIB}/pystrich/datamatrix/renderer.pyc
+${PYSITELIB}/pystrich/datamatrix/renderer.pyo
+${PYSITELIB}/pystrich/datamatrix/test_datamatrix.py
+${PYSITELIB}/pystrich/datamatrix/test_datamatrix.pyc
+${PYSITELIB}/pystrich/datamatrix/test_datamatrix.pyo
+${PYSITELIB}/pystrich/datamatrix/textencoder.py
+${PYSITELIB}/pystrich/datamatrix/textencoder.pyc
+${PYSITELIB}/pystrich/datamatrix/textencoder.pyo
+${PYSITELIB}/pystrich/ean13/__init__.py
+${PYSITELIB}/pystrich/ean13/__init__.pyc
+${PYSITELIB}/pystrich/ean13/__init__.pyo
+${PYSITELIB}/pystrich/ean13/encoding.py
+${PYSITELIB}/pystrich/ean13/encoding.pyc
+${PYSITELIB}/pystrich/ean13/encoding.pyo
+${PYSITELIB}/pystrich/ean13/generate_test.py
+${PYSITELIB}/pystrich/ean13/generate_test.pyc
+${PYSITELIB}/pystrich/ean13/generate_test.pyo
+${PYSITELIB}/pystrich/ean13/renderer.py
+${PYSITELIB}/pystrich/ean13/renderer.pyc
+${PYSITELIB}/pystrich/ean13/renderer.pyo
+${PYSITELIB}/pystrich/ean13/test_ean13.py
+${PYSITELIB}/pystrich/ean13/test_ean13.pyc
+${PYSITELIB}/pystrich/ean13/test_ean13.pyo
+${PYSITELIB}/pystrich/fonts/__init__.py
+${PYSITELIB}/pystrich/fonts/__init__.pyc
+${PYSITELIB}/pystrich/fonts/__init__.pyo
+${PYSITELIB}/pystrich/fonts/cour.pbm
+${PYSITELIB}/pystrich/fonts/cour.pil
+${PYSITELIB}/pystrich/fonts/courR08.pbm
+${PYSITELIB}/pystrich/fonts/courR08.pil
+${PYSITELIB}/pystrich/fonts/courR10.pbm
+${PYSITELIB}/pystrich/fonts/courR10.pil
+${PYSITELIB}/pystrich/fonts/courR12.pbm
+${PYSITELIB}/pystrich/fonts/courR12.pil
+${PYSITELIB}/pystrich/fonts/courR14.pbm
+${PYSITELIB}/pystrich/fonts/courR14.pil
+${PYSITELIB}/pystrich/fonts/courR18.pbm
+${PYSITELIB}/pystrich/fonts/courR18.pil
+${PYSITELIB}/pystrich/fonts/courR24.pbm
+${PYSITELIB}/pystrich/fonts/courR24.pil
+${PYSITELIB}/pystrich/qrcode/__init__.py
+${PYSITELIB}/pystrich/qrcode/__init__.pyc
+${PYSITELIB}/pystrich/qrcode/__init__.pyo
+${PYSITELIB}/pystrich/qrcode/isodata.py
+${PYSITELIB}/pystrich/qrcode/isodata.pyc
+${PYSITELIB}/pystrich/qrcode/isodata.pyo
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv10_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv10_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv10_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv10_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv11_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv11_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv11_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv11_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv12_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv12_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv12_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv12_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv13_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv13_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv13_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv13_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv14_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv14_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv14_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv14_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv15_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv15_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv15_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv15_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv16_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv16_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv16_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv16_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv17_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv17_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv17_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv17_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv18_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv18_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv18_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv18_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv19_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv19_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv19_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv19_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv1_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv1_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv1_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv1_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv20_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv20_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv20_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv20_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv21_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv21_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv21_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv21_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv22_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv22_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv22_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv22_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv23_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv23_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv23_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv23_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv24_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv24_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv24_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv24_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv25_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv25_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv25_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv25_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv26_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv26_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv26_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv26_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv27_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv27_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv27_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv27_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv28_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv28_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv28_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv28_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv29_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv29_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv29_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv29_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv2_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv2_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv2_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv2_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv30_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv30_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv30_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv30_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv31_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv31_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv31_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv31_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv32_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv32_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv32_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv32_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv33_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv33_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv33_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv33_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv34_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv34_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv34_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv34_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv35_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv35_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv35_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv35_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv36_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv36_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv36_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv36_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv37_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv37_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv37_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv37_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv38_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv38_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv38_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv38_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv39_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv39_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv39_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv39_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv3_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv3_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv3_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv3_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv40_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv40_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv40_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv40_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv4_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv4_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv4_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv4_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv5_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv5_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv5_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv5_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv6_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv6_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv6_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv6_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv7_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv7_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv7_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv7_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv8_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv8_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv8_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv8_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv9_0.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv9_1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv9_2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrv9_3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr1.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr10.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr11.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr12.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr13.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr14.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr15.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr16.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr17.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr18.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr19.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr2.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr20.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr21.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr22.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr23.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr24.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr25.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr26.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr27.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr28.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr29.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr3.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr30.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr31.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr32.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr33.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr34.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr35.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr36.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr37.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr38.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr39.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr4.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr40.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr5.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr6.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr7.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr8.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/qrvfr9.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc10.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc13.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc15.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc16.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc17.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc18.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc20.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc22.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc24.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc26.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc28.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc30.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc32.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc34.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc36.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc40.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc42.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc44.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc46.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc48.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc50.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc52.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc54.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc56.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc58.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc60.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc62.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc64.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc66.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc68.dat
+${PYSITELIB}/pystrich/qrcode/qrcode_data/rsc7.dat
+${PYSITELIB}/pystrich/qrcode/renderer.py
+${PYSITELIB}/pystrich/qrcode/renderer.pyc
+${PYSITELIB}/pystrich/qrcode/renderer.pyo
+${PYSITELIB}/pystrich/qrcode/test_qrcode.py
+${PYSITELIB}/pystrich/qrcode/test_qrcode.pyc
+${PYSITELIB}/pystrich/qrcode/test_qrcode.pyo
+${PYSITELIB}/pystrich/qrcode/textencoder.py
+${PYSITELIB}/pystrich/qrcode/textencoder.pyc
+${PYSITELIB}/pystrich/qrcode/textencoder.pyo
diff --git a/graphics/py-strich/distinfo b/graphics/py-strich/distinfo
new file mode 100644
index 00000000000..61adfe8faa5
--- /dev/null
+++ b/graphics/py-strich/distinfo
@@ -0,0 +1,9 @@
+$NetBSD: distinfo,v 1.1 2017/10/23 13:38:41 joerg Exp $
+
+SHA1 (pyStrich-0.8.tar.gz) = 076a7bfab9d28ba4a94766fd8fdb41ca6be332bc
+RMD160 (pyStrich-0.8.tar.gz) = 72d5ff19735e698e318bc7c9d7842863f41a0c44
+SHA512 (pyStrich-0.8.tar.gz) = 53179204692d9d3b3824d558f4d56ff9a2f7994953e61be3f51227b4326304bb84857fba015fe7302e5f94e3b8472787111f7c3510f7918d9eeca7d7cdf4304a
+Size (pyStrich-0.8.tar.gz) = 981235 bytes
+SHA1 (patch-pystrich_code128_test__code128.py) = dbc1f6a2331f88b2e8cd442061cfc1fbe6a9acfb
+SHA1 (patch-pystrich_qrcode_isodata.py) = 2c3b6e4fc393da533b5e66f98f79a806a8269748
+SHA1 (patch-pystrich_qrcode_test__qrcode.py) = 227b0a4f51054ccacb4b1675592af9f639c079d3
diff --git a/graphics/py-strich/patches/patch-pystrich_code128_test__code128.py b/graphics/py-strich/patches/patch-pystrich_code128_test__code128.py
new file mode 100644
index 00000000000..9ef640c4fe9
--- /dev/null
+++ b/graphics/py-strich/patches/patch-pystrich_code128_test__code128.py
@@ -0,0 +1,12 @@
+$NetBSD: patch-pystrich_code128_test__code128.py,v 1.1 2017/10/23 13:38:41 joerg Exp $
+
+--- pystrich/code128/test_code128.py.orig 2017-10-23 13:01:32.367532563 +0000
++++ pystrich/code128/test_code128.py
+@@ -72,6 +72,7 @@ class Code128Test(unittest.TestCase):
+
+ def test_against_generated(self):
+ """Compare the output of this library with generated barcodes"""
++ return # Missing test images
+
+ for index, string in enumerate(Code128Test.test_strings):
+ generated = tempfile.mkstemp(".png")[1]
diff --git a/graphics/py-strich/patches/patch-pystrich_qrcode_isodata.py b/graphics/py-strich/patches/patch-pystrich_qrcode_isodata.py
new file mode 100644
index 00000000000..a972d2a2a18
--- /dev/null
+++ b/graphics/py-strich/patches/patch-pystrich_qrcode_isodata.py
@@ -0,0 +1,24 @@
+$NetBSD: patch-pystrich_qrcode_isodata.py,v 1.1 2017/10/23 13:38:41 joerg Exp $
+
+--- pystrich/qrcode/isodata.py.orig 2015-07-19 21:44:27.000000000 +0000
++++ pystrich/qrcode/isodata.py
+@@ -1,6 +1,7 @@
+ """ISO/IEC 18004:2006 tables and functions implementation"""
+
+ import os.path
++import sys
+
+ MAX_DATA_BITS = [
+ 128, 224, 352, 512, 688, 864, 992, 1232, 1456, 1728,
+@@ -50,7 +51,10 @@ class MatrixInfo:
+ filename = path + "/qrv" + str(version) + "_"
+ filename += str(ecl) + ".dat"
+
+- unpack = list
++ if sys.version_info.major == 2:
++ unpack = lambda y: [ord(x) for x in y]
++ else:
++ unpack = list
+
+ with open(filename, "rb") as fhndl:
+ self.matrix_d = []
diff --git a/graphics/py-strich/patches/patch-pystrich_qrcode_test__qrcode.py b/graphics/py-strich/patches/patch-pystrich_qrcode_test__qrcode.py
new file mode 100644
index 00000000000..1697127b2cc
--- /dev/null
+++ b/graphics/py-strich/patches/patch-pystrich_qrcode_test__qrcode.py
@@ -0,0 +1,12 @@
+$NetBSD: patch-pystrich_qrcode_test__qrcode.py,v 1.1 2017/10/23 13:38:41 joerg Exp $
+
+--- pystrich/qrcode/test_qrcode.py.orig 2015-07-19 21:44:27.000000000 +0000
++++ pystrich/qrcode/test_qrcode.py
+@@ -34,6 +34,7 @@ class QRTest(unittest.TestCase):
+
+ def test_against_generated(self):
+ """Compare the output of this library with generated barcodes"""
++ return # Missing test images
+
+ i = 1
+ for string in QRTest.test_strings: