Hi,

The following patch makes www/py-genshi to download and uses Debian
patches (instead of copying them on your side - few patches but touching
several files):

  - fix_tests_failure_with_python27.patch : Skip test which still fails
    in Python 2.7.6.

  - issue566.patch : Fix an IndexError preventing Genshi for uploading
    attachments in Trac for users with non-English language settings.

  - issue582.patch : Make genshi 0.7 compatible with Python 3.4.

  - issue602.patch : Fix Python 3.5 compatibility issues.

See http://sources.debian.net/src/genshi/0.7-6/debian/patches/

I use the same way that www/w3m does for that. If proper patches are
prefered, I could go this way too.

Currently, genshi upstream seems abandoned (last commits in 2015), but
the library is still used by several projects (trac, relatorio which is
a dependance of tryton). Linux distributions (at least Debian and
Gentoo) uses these patches to makes it usable on python3.

With the diff, it is possible to use genshi on python3 on OpenBSD too.

My purpose is to switch several ports to python3 in order to be able to
run trytond on python3 (it isn't packaged on ports).

Thanks.
-- 
Sebastien Marie


Index: Makefile
===================================================================
RCS file: /cvs/ports/www/py-genshi/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- Makefile    26 Nov 2015 21:50:54 -0000      1.13
+++ Makefile    18 Oct 2017 14:00:39 -0000
@@ -5,7 +5,7 @@ COMMENT =       toolkit for generation of outp
 MODPY_EGG_VERSION =    0.7
 DISTNAME =     Genshi-${MODPY_EGG_VERSION}
 PKGNAME =      py-${DISTNAME:L}
-REVISION =     0
+REVISION =     1
 
 CATEGORIES =   www
 
@@ -17,23 +17,33 @@ PERMIT_PACKAGE_CDROM =      Yes
 WANTLIB += ${MODPY_WANTLIB} pthread
 
 MASTER_SITES = http://ftp.edgewall.com/pub/genshi/
+MASTER_SITES0 =        ${MASTER_SITE_DEBIAN:=main/g/genshi/}
+
+DISTFILES =    ${DISTNAME}.tar.gz \
+               genshi_0.7-6.debian.tar.xz:0
 
 MODULES =      lang/python
 
 MODPY_SETUPTOOLS =     Yes
 MODPY_SETUP_ARGS =     --with-speedups
 
+FLAVOR ?=
+FLAVORS =      python3
+
 TEST_DEPENDS = ${BUILD_DEPENDS}
 
+PATCH_DIST_STRIP =     -p1
+
+do-distpatch:
+       for p in ${WRKDIR}/debian/patches/*.patch; do \
+               ${PATCH} ${PATCH_DIST_ARGS} < $$p; \
+       done
+
 post-install:
        ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/py-genshi
        ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/py-genshi
        cd ${WRKSRC}/doc && pax -rw * ${PREFIX}/share/doc/py-genshi
        cd ${WRKSRC}/examples && \
            pax -rw * ${PREFIX}/share/examples/py-genshi
-
-do-test:
-       @${MAKE_ENV} PYTHONPATH=${WRKSRC} ${MODPY_BIN} \
-           ${WRKSRC}/genshi/tests/__init__.py
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/www/py-genshi/distinfo,v
retrieving revision 1.5
diff -u -p -r1.5 distinfo
--- distinfo    26 Jun 2015 06:56:22 -0000      1.5
+++ distinfo    18 Oct 2017 14:00:39 -0000
@@ -1,2 +1,4 @@
 SHA256 (Genshi-0.7.tar.gz) = HRVEAuaLxESlW8rBAflstOWTcxAMx6LaB/vz5cxdc1I=
+SHA256 (genshi_0.7-6.debian.tar.xz) = 
E6/z0eBOYGOr1GKYRUOnluqm6V3THrbP6s7dBIveZFo=
 SIZE (Genshi-0.7.tar.gz) = 491579
+SIZE (genshi_0.7-6.debian.tar.xz) = 11380
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/www/py-genshi/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST
--- pkg/PLIST   26 Jun 2015 06:56:22 -0000      1.3
+++ pkg/PLIST   18 Oct 2017 14:00:39 -0000
@@ -8,102 +8,108 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/Genshi-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt
 lib/python${MODPY_VERSION}/site-packages/genshi/
 lib/python${MODPY_VERSION}/site-packages/genshi/__init__.py
-lib/python${MODPY_VERSION}/site-packages/genshi/__init__.pyc
-lib/python${MODPY_VERSION}/site-packages/genshi/_speedups.so
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}builder.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}compat.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}input.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}output.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}path.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/builder.py
-lib/python${MODPY_VERSION}/site-packages/genshi/builder.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/compat.py
-lib/python${MODPY_VERSION}/site-packages/genshi/compat.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/core.py
-lib/python${MODPY_VERSION}/site-packages/genshi/core.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/__init__.py
-lib/python${MODPY_VERSION}/site-packages/genshi/filters/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/genshi/filters/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/genshi/filters/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/filters/${MODPY_PYCACHE}html.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/filters/${MODPY_PYCACHE}i18n.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/filters/${MODPY_PYCACHE}transform.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/html.py
-lib/python${MODPY_VERSION}/site-packages/genshi/filters/html.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/i18n.py
-lib/python${MODPY_VERSION}/site-packages/genshi/filters/i18n.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/__init__.py
-lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/${MODPY_PYCACHE}i18n.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/${MODPY_PYCACHE}test_html.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/${MODPY_PYCACHE}transform.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/i18n.py
-lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/i18n.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/test_html.py
-lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/test_html.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/transform.py
-lib/python${MODPY_VERSION}/site-packages/genshi/filters/tests/transform.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/filters/transform.py
-lib/python${MODPY_VERSION}/site-packages/genshi/filters/transform.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/input.py
-lib/python${MODPY_VERSION}/site-packages/genshi/input.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/output.py
-lib/python${MODPY_VERSION}/site-packages/genshi/output.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/path.py
-lib/python${MODPY_VERSION}/site-packages/genshi/path.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/
 lib/python${MODPY_VERSION}/site-packages/genshi/template/__init__.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}_ast24.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}ast24.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}astutil.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}directives.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}eval.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}interpolation.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}loader.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}markup.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/${MODPY_PYCACHE}text.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/_ast24.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/_ast24.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/ast24.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/ast24.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/astutil.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/astutil.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/base.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/base.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/directives.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/directives.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/eval.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/eval.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/interpolation.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/interpolation.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/loader.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/loader.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/markup.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/markup.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/plugin.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/plugin.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/__init__.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}directives.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}eval.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}interpolation.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}loader.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}markup.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}plugin.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/${MODPY_PYCACHE}text.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/base.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/base.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/directives.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/directives.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/eval.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/eval.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/interpolation.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/interpolation.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/loader.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/loader.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/markup.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/markup.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/plugin.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/plugin.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/templates/
 
lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/templates/__init__.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/templates/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/templates/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/templates/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/text.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/tests/text.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/template/text.py
-lib/python${MODPY_VERSION}/site-packages/genshi/template/text.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/tests/
 lib/python${MODPY_VERSION}/site-packages/genshi/tests/__init__.py
-lib/python${MODPY_VERSION}/site-packages/genshi/tests/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/genshi/tests/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/genshi/tests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/tests/${MODPY_PYCACHE}builder.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/tests/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/tests/${MODPY_PYCACHE}input.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/tests/${MODPY_PYCACHE}output.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/tests/${MODPY_PYCACHE}path.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/genshi/tests/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/tests/builder.py
-lib/python${MODPY_VERSION}/site-packages/genshi/tests/builder.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/tests/core.py
-lib/python${MODPY_VERSION}/site-packages/genshi/tests/core.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/tests/input.py
-lib/python${MODPY_VERSION}/site-packages/genshi/tests/input.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/tests/output.py
-lib/python${MODPY_VERSION}/site-packages/genshi/tests/output.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/tests/path.py
-lib/python${MODPY_VERSION}/site-packages/genshi/tests/path.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/tests/util.py
-lib/python${MODPY_VERSION}/site-packages/genshi/tests/util.pyc
 lib/python${MODPY_VERSION}/site-packages/genshi/util.py
-lib/python${MODPY_VERSION}/site-packages/genshi/util.pyc
 share/doc/py-genshi/
 share/doc/py-genshi/2000ft.png
 share/doc/py-genshi/api/
@@ -307,11 +313,12 @@ share/doc/py-genshi/api/since-index.html
 share/doc/py-genshi/common/
 share/doc/py-genshi/common/COPYING
 share/doc/py-genshi/common/README.txt
+${MODPY_COMMENT}share/doc/py-genshi/common/${MODPY_PYCACHE}/
+share/doc/py-genshi/common/${MODPY_PYCACHE}doctools.${MODPY_PYC_MAGIC_TAG}pyc
 share/doc/py-genshi/common/conf/
 share/doc/py-genshi/common/conf/docutils.ini
 share/doc/py-genshi/common/conf/epydoc.ini
 share/doc/py-genshi/common/doctools.py
-share/doc/py-genshi/common/doctools.pyc
 share/doc/py-genshi/common/style/
 share/doc/py-genshi/common/style/bkgnd_pattern.png
 share/doc/py-genshi/common/style/docutils.css

Reply via email to