Date: Wed, 24 Jun 2026 20:28:22 +0000 From: Charlie Li <vishwin@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 81c0a4f5271f - main - www/py-ll-xist: rename and update to 5.85 Message-ID: <6a3c3de6.1840a.4ca75614@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by vishwin: URL: https://cgit.FreeBSD.org/ports/commit/?id=81c0a4f5271f88ae0baf593193bd31c89d1abef2 commit 81c0a4f5271f88ae0baf593193bd31c89d1abef2 Author: Charlie Li <vishwin@FreeBSD.org> AuthorDate: 2026-06-24 20:10:17 +0000 Commit: Charlie Li <vishwin@FreeBSD.org> CommitDate: 2026-06-24 20:27:07 +0000 www/py-ll-xist: rename and update to 5.85 Changelog: https://python.livinglogic.de/NEWS.html#changes-in-5-85-released-2026-05-20 Not the latest upstream version. 5.86 and later use t-strings which is a Python 3.14 feature. Event: Halifax Hackathon 202606 --- MOVED | 1 + www/Makefile | 2 +- www/py-ll-xist/Makefile | 41 ++ www/py-ll-xist/distinfo | 3 + www/py-ll-xist/files/patch-test_test__url__open.py | 593 +++++++++++++++++++++ www/{xist => py-ll-xist}/pkg-descr | 0 www/xist/Makefile | 26 - www/xist/distinfo | 3 - 8 files changed, 639 insertions(+), 30 deletions(-) diff --git a/MOVED b/MOVED index 10862c0df551..2d65253df352 100644 --- a/MOVED +++ b/MOVED @@ -5377,3 +5377,4 @@ sysutils/signon-plugin-oauth2@qt6|sysutils/signon-plugin-oauth2|2026-06-22|Unfla net-im/libaccounts-qt@qt5||2026-06-22|Unflavorize, remove Qt5 flavor net-im/libaccounts-qt@qt6|net-im/libaccounts-qt|2026-06-22|Unflavorize science/minc2|science/minc-tools|2026-06-24|Split into science/minc-tools and science/libminc +www/xist|www/py-ll-xist|2026-06-24|Use correct Python package name diff --git a/www/Makefile b/www/Makefile index 5ea848b5d776..16d723db0f55 100644 --- a/www/Makefile +++ b/www/Makefile @@ -1882,6 +1882,7 @@ SUBDIR += py-limits SUBDIR += py-litestar SUBDIR += py-livereload + SUBDIR += py-ll-xist SUBDIR += py-mailman-hyperkitty SUBDIR += py-mechanicalsoup SUBDIR += py-mechanize @@ -2765,7 +2766,6 @@ SUBDIR += xcaddy SUBDIR += xfce4-smartbookmark-plugin SUBDIR += xh - SUBDIR += xist SUBDIR += xoops SUBDIR += xsp SUBDIR += xurls diff --git a/www/py-ll-xist/Makefile b/www/py-ll-xist/Makefile new file mode 100644 index 000000000000..3bba6eb19a7b --- /dev/null +++ b/www/py-ll-xist/Makefile @@ -0,0 +1,41 @@ +PORTNAME= ll-xist +DISTVERSION= 5.85 +CATEGORIES= www python +MASTER_SITES= http://python-downloads.livinglogic.de/download/xist/ \ + PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTNAME= ${PORTNAME:C/[-_.]+/_/g}-${DISTVERSION} + +MAINTAINER= python@FreeBSD.org +COMMENT= XML-based extensible HTML generator +WWW= https://python.livinglogic.de/ + +LICENSE= MIT + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cssutils>=2.6.0,1:www/py-cssutils@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}lxml>=4.3.4:devel/py-lxml@${PY_FLAVOR} \ + ${PY_PILLOW} \ + ${PYTHON_PKGNAMEPREFIX}oracledb>0:databases/py-oracledb@${PY_FLAVOR} +#TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-xdist>0:devel/py-pytest-xdist@${PY_FLAVOR} \ +# ${PYTHON_PKGNAMEPREFIX}pytest-rerunfailures>0:devel/py-pytest-rerunfailures@${PY_FLAVOR} \ +# ${PYTHON_PKGNAMEPREFIX}filelock>0:sysutils/py-filelock@${PY_FLAVOR} \ +# ${PYTHON_PKGNAMEPREFIX}psycopg>0:databases/py-psycopg@${PY_FLAVOR} + +USES= python +USE_PYTHON= autoplist cython pep517 +#USE_PYTHON+= pytest + +#USE_GITHUB= yes +#GH_ACCOUNT= LivingLogic +#GH_PROJECT= LivingLogic.Python.xist +#GH_TAGNAME= rel-5-85 + +#post-patch: +# ${REINPLACE_CMD} -e 's/pytest-reporter-html1//' ${WRKSRC}/pytest.ini + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/ll/*.so ${STAGEDIR}${PYTHON_SITELIBDIR}/ll/xist/*.so + +.include <bsd.port.mk> diff --git a/www/py-ll-xist/distinfo b/www/py-ll-xist/distinfo new file mode 100644 index 000000000000..64fbe2977eef --- /dev/null +++ b/www/py-ll-xist/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1782331233 +SHA256 (ll_xist-5.85.tar.gz) = 3cf688d83929572d1df2d4c21bffd33744ab0ed2c0c1f98fa79955c06f906702 +SIZE (ll_xist-5.85.tar.gz) = 1788274 diff --git a/www/py-ll-xist/files/patch-test_test__url__open.py b/www/py-ll-xist/files/patch-test_test__url__open.py new file mode 100644 index 000000000000..a62d3ab939a8 --- /dev/null +++ b/www/py-ll-xist/files/patch-test_test__url__open.py @@ -0,0 +1,593 @@ +--- test/test_url_open.py 2026-05-20 16:02:56 UTC ++++ /dev/null +@@ -1,590 +0,0 @@ +-#!/usr/bin/env python +-# -*- coding: utf-8 -*- +-# cython: language_level=3, always_allow_keywords=True +- +-## Copyright 2005-2026 by LivingLogic AG, Bayreuth/Germany +-## Copyright 2005-2026 by Walter Dörwald +-## +-## All Rights Reserved +-## +-## See ll/xist/__init__.py for the license +- +- +-import io, os, datetime +- +-from ll import url +- +-import pytest +- +-# This must point to an ssh account (in the form ``user@hostname``) +-# that has a directory ``LivingLogic.Python.xist``. +-remote_user = os.environ["LL_SSH_TEST_CONNECT"] +- +-@pytest.mark.net +-def test_remove(): +- def check(u): +- with url.Context(): +- u = url.URL(u) +- u2 = u/"foo_remove" +- r = u2.open("wb") +- try: +- r.write(b"testing...") +- r.close() +- assert u2.exists() +- finally: +- u2.remove() +- assert not u2.exists() +- +- check(__file__.rstrip("c")) +- check(url.URL(__file__.rstrip("c"))) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/") +- +- +-@pytest.mark.net +-def test_link(): +- def check(u): +- with url.Context(): +- u = url.URL(u) +- u2 = u/"foo_link" +- try: +- u.link(u2) +- assert u2.exists() +- assert u2.isfile() +- assert not u2.islink() # A hardlink is indistinguisable from the real thing +- finally: +- u2.remove() +- assert not u2.exists() +- +- check(__file__.rstrip("c")) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/setup.py") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/setup.py") +- +- +-@pytest.mark.net +-def test_symlink(): +- def check(u): +- with url.Context(): +- u = url.URL(u) +- u2 = u/"foo_symlink" +- try: +- u.symlink(u2) +- assert u2.exists() +- assert u2.islink() +- finally: +- u2.remove() +- assert not u2.exists() +- +- check(__file__.rstrip("c")) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/setup.py") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/setup.py") +- +- +-@pytest.mark.net +-def test_chmod(): +- def check(u): +- with url.Context(): +- u = url.URL(u) +- r = u.open("wb") +- try: +- try: +- r.write(b"testing ...") +- finally: +- r.close() +- u.chmod(0o444) +- assert u.stat().st_mode & 0o777 == 0o444 +- finally: +- u.remove() +- +- check("~/foo_chmod") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/foo") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/foo") +- +- +-@pytest.mark.net +-def test_chown(): +- def check(u1, u2, owner, group): +- with url.Context(): +- u1 = url.URL(u1) +- u2 = url.URL(u2) +- r = u1.open("wb") +- try: +- try: +- r.write(b"foo") +- finally: +- r.close() +- # Might have been left over from previous run +- if u2.exists(): +- u2.remove() +- try: +- u1.symlink(u2) +- u2.lchown(owner, group) +- assert u1.owner() == owner +- assert u1.group() == group +- assert u2.owner() == owner +- assert u2.group() == group +- +- u2.chown(owner, group) +- assert u1.owner() == owner +- assert u1.group() == group +- assert u2.owner() == owner +- assert u2.group() == group +- finally: +- u2.remove() +- finally: +- u1.remove() +- +- remote_user_name = remote_user.split("@")[0] +- +- check(f"ssh://{remote_user}/~/foo_chown", f"ssh://{remote_user}/~/bar", remote_user_name, remote_user_name) +- check(f"ssh-nocheck://{remote_user}:22/~/foo_chown", f"ssh-nocheck://{remote_user}:22/~/bar", remote_user_name, remote_user_name) +- +- +-@pytest.mark.net +-def test_size(): +- def check(u): +- with url.Context(): +- u = url.URL(u) +- assert len(u.open("rb").read()) == u.open("rb").size() == u.size() == 1479 +- +- check("~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- check("https://python.livinglogic.de/_static/favicon.png") +- +- +-@pytest.mark.net +-def test_imagesize(): +- def check(u): +- with url.Context(): +- u = url.URL(u) +- assert u.imagesize() == (32, 32) +- +- check("~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- check("https://python.livinglogic.de/_static/favicon.png") +- +- +-@pytest.mark.net +-def test_mimetype(): +- def check(u, mt): +- with url.Context(): +- u = url.URL(u) +- assert u.mimetype() == u.open().mimetype() == mt +- +- check(__file__.rstrip("c"), "text/x-python") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/setup.py", "text/x-python") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/setup.py", "text/x-python") +- check("https://python.livinglogic.de/", "text/html") +- +- +-@pytest.mark.net +-def test_readline(): +- def check(u, firstline): +- with url.Context(): +- u = url.URL(u) +- r = u.open("rb") +- canseektell = hasattr(r, "tell") and hasattr(r, "seek") +- if canseektell: +- try: +- r.tell() +- except io.UnsupportedOperation: +- canseektell = False +- assert r.readline() == firstline +- if canseektell: +- assert r.tell() == len(firstline) +- r.seek(0) +- assert r.readline() == firstline +- r.seek(0) +- else: +- r = u.open("rb") # reopen +- assert r.read(len(firstline)) == firstline +- if canseektell: +- r.seek(0) +- else: +- r = u.open("rb") # reopen +- assert r.read().startswith(firstline) +- +- check(__file__.rstrip("c"), b"#!/usr/bin/env python\n") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/setup.py", b"#! /usr/bin/env python\n") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/setup.py", b"#! /usr/bin/env python\n") +- check("https://python.livinglogic.de/_static/css/theme.css", b'/* sphinx_ll_theme version 0.1 | MIT license */\n') +- +- +-@pytest.mark.net +-def test_iter(): +- def check(u, firstline): +- with url.Context(): +- u = url.URL(u) +- r = u.open("rb") +- assert next(iter(r)) == firstline +- list(r) +- +- check(__file__.rstrip("c"), b"#!/usr/bin/env python\n") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/setup.py", b"#! /usr/bin/env python\n") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/setup.py", b"#! /usr/bin/env python\n") +- check("https://python.livinglogic.de/_static/css/theme.css", b'/* sphinx_ll_theme version 0.1 | MIT license */\n') +- +- +-@pytest.mark.net +-def test_autocreate_dir(): +- def check(u): +- with url.Context(): +- try: +- u = url.URL(u) +- with u.openwrite() as f: +- f.write(b"Hurz!") +- finally: +- u.remove() +- u.withoutfile().rmdir() +- +- check("gurk/hurz.txt") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/gurk/hurz.txt") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/gurk/hurz.txt") +- +- +-@pytest.mark.net +-def test_seek_tell(): +- def check(u): +- with url.Context(): +- u = url.URL(u) +- r = u.open("rb") +- r.read() +- assert r.tell() == 1479 +- r.seek(0) +- assert r.tell() == 0 +- r.seek(100, os.SEEK_SET) +- assert r.tell() == 100 +- r.seek(0, os.SEEK_END) +- assert r.tell() == 1479 +- r.seek(-479, os.SEEK_END) +- assert r.tell() == 1000 +- r.seek(479, os.SEEK_CUR) +- assert r.tell() == 1479 +- assert r.read() == b"" +- +- check("~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/docs/_static/favicon.png") +- +- +-@pytest.mark.net +-def test_truncate(): +- def check(u): +- with url.Context(): +- u = url.URL(u)/"foo_truncate" +- try: +- r = u.open("wb") +- r.write(b"testing...") +- r.seek(-3, os.SEEK_CUR) +- r.truncate() +- r.close() +- assert u.open("rb").read() == b"testing" +- finally: +- u.remove() +- +- check(__file__) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/") +- +- +-@pytest.mark.net +-def test_owner(): +- def check(u, owner): +- with url.Context(): +- u = url.URL(u) +- assert u.owner() == owner +- assert u.stat().st_uid == u.uid() +- +- remote_user_name = remote_user.split("@")[0] +- +- check(__file__, "walter") +- check("/", "root") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", remote_user_name) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", remote_user_name) +- +- +-@pytest.mark.net +-def test_stat(): +- def check(u): +- with url.Context(): +- u = url.URL(u) +- stat = u.stat() +- assert stat.st_size > 1000 +- assert stat.st_mode & 0o600 == 0o600 +- +- check(url.File(__file__)/"../README.rst") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst") +- +- +-@pytest.mark.net +-def test_group(): +- def check(u, *groups): +- with url.Context(): +- u = url.URL(u) +- assert u.group() in groups +- assert u.stat().st_gid == u.gid() +- +- remote_user_name = remote_user.split("@")[0] +- +- check(__file__, "users", "staff", "walter") +- check("/", "root", "admin", "wheel") +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", remote_user_name) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", remote_user_name) +- +- +-@pytest.mark.net +-def test_cdate(): +- def check(u, *args): +- with url.Context(): +- assert url.URL(u).cdate() >= datetime.datetime(*args) +- +- check(__file__.rstrip("c"), 2006, 10, 24) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", 2006, 6, 29) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", 2006, 6, 29) +- +- +-@pytest.mark.net +-def test_mdate(): +- def check(u, *args): +- with url.Context(): +- u = url.URL(u) +- assert u.mdate() == u.open().mdate() >= datetime.datetime(*args) +- +- check(__file__.rstrip("c"), 2006, 10, 24) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", 2006, 6, 29) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", 2006, 6, 29) +- check("https://python.livinglogic.de/XIST.html", 2006, 10, 3) +- +- +-@pytest.mark.net +-def test_adate(): +- def check(u, *args): +- with url.Context(): +- assert url.URL(u).adate() >= datetime.datetime(*args) +- +- check(__file__.rstrip("c"), 2006, 10, 24) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", 2006, 6, 29) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", 2006, 6, 29) +- +- +-@pytest.mark.net +-def test_exists(): +- def check(u, exists): +- with url.Context(): +- u = url.URL(u) +- assert u.exists() == exists +- +- check(__file__, True) +- check(__file__ + "no", False) +- check("/", True) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", True) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", True) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/DONTREADME.rst", False) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/DONTREADME.rst", False) +- +- +-@pytest.mark.net +-def test_isfile(): +- def check(u, isfile): +- with url.Context(): +- u = url.URL(u) +- assert u.isfile() == isfile +- +- check(__file__, True) +- check(__file__ + "no", False) +- check("/", False) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", True) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", True) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/", False) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/", False) +- +- +-@pytest.mark.net +-def test_isdir(): +- def check(u, isdir): +- with url.Context(): +- u = url.URL(u) +- assert u.isdir() == isdir +- +- check(__file__, False) +- check(__file__ + "no", False) +- check("/", True) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", False) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", False) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/", True) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/", True) +- check(f"ssh://{remote_user}/~/checkouts/", True) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/", True) +- +- +-@pytest.mark.net +-def test_islink(): +- def check(u, islink): +- with url.Context(): +- u = url.URL(u) +- assert u.islink() == islink +- +- check(__file__, False) +- check("/", False) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", False) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", False) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/", False) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/", False) +- +- +-@pytest.mark.net +-def test_ismount(): +- def check(u, ismount): +- with url.Context(): +- u = url.URL(u) +- assert u.ismount() == ismount +- +- check(__file__, False) +- check("/", True) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", False) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", False) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/", False) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/", False) +- check(f"ssh://{remote_user}/~livpython", False) +- check(f"ssh-nocheck://{remote_user}:22/~livpython", False) +- +- +-@pytest.mark.net +-def test_access(): +- def check(u, mode, result): +- with url.Context(): +- u = url.URL(u) +- assert u.access(mode) == result +- +- check(__file__, os.F_OK, True) +- check(__file__ + "no", os.F_OK, False) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", os.F_OK, True) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", os.F_OK, True) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/DONTREADME.rst", os.F_OK, False) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/DONTREADME.rst", os.F_OK, False) +- +- +-@pytest.mark.net +-def test_resheaders(): +- def check(u, headers): +- with url.Context(): +- u = url.URL(u) +- realheaders = u.resheaders() +- for (k, v) in headers.items(): +- assert realheaders[k] == v +- +- check(url.File(__file__)/"../README.rst", {"Content-type": "text/x-rst"}) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/README.rst", {"Content-Type": "text/x-rst"}) +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/README.rst", {"Content-Type": "text/x-rst"}) +- check("https://python.livinglogic.de/XIST.html", {"Content-type": "text/html"}) +- +- +-@pytest.mark.net +-def test_resdata(): +- def check(u, firstline): +- with url.Context(): +- u = url.URL(u) +- realdata = u.open("rb").resdata() +- assert realdata.splitlines(True)[0] == firstline +- +- check("https://python.livinglogic.de/_static/css/theme.css", b'/* sphinx_ll_theme version 0.1 | MIT license */\n') +- +- +-@pytest.mark.net +-def test_mkdir_rmdir(): +- def check(u): +- with url.Context(): +- u = url.URL(u)/"foo_mkdir_rmdir/" +- u.mkdir(0o755) +- try: +- assert u.isdir() +- assert u.stat().st_mode & 0o777 == 0o755 +- finally: +- u.rmdir() +- +- check(__file__) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/") +- +- +-@pytest.mark.net +-def test_makedirs(): +- def check(u): +- with url.Context(): +- u = url.URL(u)/"foo_makedirs/bar/" +- u.makedirs(0o755) +- try: +- assert u.isdir() +- assert u.stat().st_mode & 0o777 == 0o755 +- finally: +- u.rmdir() +- (u/"../").rmdir() +- +- check(__file__) +- check(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/") +- check(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/") +- +- +-@pytest.mark.net +-def test_dir(): +- def check(u, pu, isfile, include=None, exclude=None): +- with url.Context(): +- u = url.URL(u) +- pu = url.URL(pu) +- assert u in pu.listdir(include=include, exclude=exclude) +- if isfile: +- assert u in pu.files(include=include, exclude=exclude) +- assert u not in pu.dirs(include=include, exclude=exclude) +- else: +- assert u not in pu.files(include=include, exclude=exclude) +- assert u in pu.dirs(include=include, exclude=exclude) +- +- check(os.path.basename(__file__), os.path.dirname(__file__), True) +- check("lib/", "/usr/", False) +- check("README.rst", f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/", True) +- check("README.rst", f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/", True) +- check("LivingLogic.Python.xist/", f"ssh://{remote_user}/~/checkouts/", False) +- check("LivingLogic.Python.xist/", f"ssh-nocheck://{remote_user}:22/~/checkouts/", False) +- check("lib/", "/usr/", False, "lib") +- check("lib/", "/usr/", False, None, "nolib") +- +- +-@pytest.mark.net +-def test_walk(): +- def check(u, pu, isfile, include=None, exclude=None): +- with url.Context(): +- u = url.URL(u) +- pu = url.URL(pu) +- assert any(u==wu for wu in pu.walkall(include=include, exclude=exclude)) +- if isfile: +- assert any(u==wu for wu in pu.walkfiles(include=include, exclude=exclude)) +- assert all(u!=wu for wu in pu.walkdirs(include=include, exclude=exclude)) +- else: +- assert all(u!=wu for wu in pu.walkfiles(include=include, exclude=exclude)) +- assert any(u==wu for wu in pu.walkdirs(include=include, exclude=exclude)) +- +- check(os.path.basename(__file__), os.path.dirname(__file__), True) +- check("src/ll/xist/", url.Dir("~/checkouts/LivingLogic.Python.xist/"), False) +- check("ll/xist/ns/html.py", f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/src/", True) +- check("ll/xist/ns/html.py", f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/src/", True) +- check("ll/xist/ns/", f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/src/", False) +- check("ll/xist/ns/", f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/src/", False) +- +- +-@pytest.mark.net +-def test_ssh_params(): +- with url.Context(): +- u1 = url.URL(f"ssh://{remote_user}/~/checkouts/LivingLogic.Python.xist/") +- assert u1.isdir(python="/home/walter/.local/bin/python3") is True +- assert u1.isdir(nice=20) is True +- assert u1.isdir(check=False) is True +- assert u1.isdir(check=True) is True +- +- u2 = url.URL(f"ssh-nocheck://{remote_user}:22/~/checkouts/LivingLogic.Python.xist/") +- assert u2.isdir(python="/home/walter/.local/bin/python3") is True +- assert u2.isdir(nice=20) is True +- assert u2.isdir(check=False) is True +- assert u2.isdir(check=True) is True diff --git a/www/xist/pkg-descr b/www/py-ll-xist/pkg-descr similarity index 100% rename from www/xist/pkg-descr rename to www/py-ll-xist/pkg-descr diff --git a/www/xist/Makefile b/www/xist/Makefile deleted file mode 100644 index 8b72d8deb609..000000000000 --- a/www/xist/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -PORTNAME= xist -PORTVERSION= 5.34 -PORTREVISION= 4 -CATEGORIES= www python -MASTER_SITES= PYPI \ - http://ftp.livinglogic.de/xist/ -PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} -DISTNAME= ll-${PORTNAME}-${PORTVERSION} - -MAINTAINER= python@FreeBSD.org -COMMENT= XML-based extensible HTML generator -WWW= http://www.livinglogic.de/Python/xist/ - -LICENSE= MIT - -RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cssutils>=1.0,1:www/py-cssutils@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}lxml>=3.4:devel/py-lxml@${PY_FLAVOR} \ - ${PY_PILLOW} - -USES= python tar:bzip2 -USE_PYTHON= autoplist distutils - -post-install: - ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/ll/*.so ${STAGEDIR}${PYTHON_SITELIBDIR}/ll/xist/*.so - -.include <bsd.port.mk> diff --git a/www/xist/distinfo b/www/xist/distinfo deleted file mode 100644 index f0b2a9f4a44d..000000000000 --- a/www/xist/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1531645044 -SHA256 (ll-xist-5.34.tar.bz2) = a2e1ac0002fec5f216aef119a11981e76939c099f488ebf4db3eb188f374070f -SIZE (ll-xist-5.34.tar.bz2) = 564559home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a3c3de6.1840a.4ca75614>
