Created attachment 213400 [details] sphinx-v3.0.1-v1.8.5-PR.patch Before applying the patch: $ svn cp textproc/py-sphinx textproc/py-sphinx18 $ svn patch sphinx-v3.0.1-v1.8.5-PR.patch Plan: - Repocopy textproc/py-sphinx to textproc/py-sphinx18, then upgrade it to 1.8.5 (latest version from 1.8.X). This version supports Python 2 and 3. Add test target. - textproc/py-sphinx: Update to 3.0.1 Python 3 only, 3.5+ Add test target. Add new ports (PR's will be linked here) - Mk/Uses/python.mk: Add PY_SPHINX To use with flavors and not break ports with USES=python (all versions). Python >=3.5 --> textproc/py-sphinx (v3.0.1) Python < 3.5 --> textproc/py-sphinx18 (v1.8.5) All ports that uses sphinx were changed to use the new variable ${PY_SPHINX} in the dependency line, exceptions: * Ports that fails to build with sphinx 3.0.1 because of code. They are pointing to textproc/py-sphinx18 directly. There aren't many ports. * Ports that don't know Python flavors. - Add several patches to fix sphinx consumers The most common issues are related with pkg-plist, the output files from sphinx changes between versions, I tried to keep ports generating it dynamically. This will save our time in the future sphinx updates. Tests: mini exp-run on all consumers, 2412 ports (all flavors). textproc/py-sphinx18: make test: 4 failed, 1324 passed, 23 skipped, 487 warnings in 84.17 seconds test_correct_year[expect_date1] - tests/test_correct_year.py:37: AssertionErro test_ext_imgconverter - tests/test_ext_imgconverter.py:23: AssertionError test_text_definition_terms - tests/test_intl.py:268: AssertionError test_gettext_definition_terms - tests/test_intl.py:530: AssertionError textproc/py-sphinx: make test: 1 failed, 1432 passed, 29 skipped, 37 warnings in 97.99 seconds WARNING: convert command 'convert' cannot be run, check the image_converter setting needs to investigate, docutils, imagemagick related IMHO this is very reasonable result, if you compare them with the current version (which is not even working in the tree): textproc/py-sphinx (current version in the ports tree v1.6.5): make test: 2 failed, 188 passed, 9 skipped, 36 warnings, 956 error in 11.96 seconds But tests can certainly be improved in the following updates. Looking forward for your feedback. And if this patch is fine, I Would like to ask for an exp-run.
+DOCS_BUILD_DEPENDS= sphinx-build-${PYTHON_VER}:textproc/py-sphinx18@${PY_FLAVOR} I think you should depend on the package instead, otherwise some people will complain that they have sphinx-build installed from the textproc/py-sphinx port and that llvm fails to build
Created attachment 213640 [details] sphinx-v3.0.2-v1.8.5-PR.patch
update Sphinx to 3.0.2 llvm ports depending on package
python timeout, over to portmgr for exp-run
A few nits: - the 4 new ports have to be hooked to textproc/Makefile - textproc/py-sphinx18/files has to be removed
Another nit: textproc/py-sphinxcontrib-adadomain/files/patch-sphinx14 has to be removed
Exp-run looks fine
A commit references this bug: Author: dbaio Date: Mon May 11 23:52:08 UTC 2020 New revision: 534966 URL: https://svnweb.freebsd.org/changeset/ports/534966 Log: Update Sphinx - Repocopy textproc/py-sphinx to textproc/py-sphinx18 Update it to 1.8.5 (latest version from 1.8.X). This version supports Python 2 and 3. Add test target. - textproc/py-sphinx: Update to 3.0.2 Python 3 only (3.5+). Add test target. - Mk/Uses/python.mk: Add PY_SPHINX Shared macro to use with flavors and not break ports with USES=python (all versions). Python >=3.5 --> textproc/py-sphinx (v3.0.2) Python < 3.5 --> textproc/py-sphinx18 (v1.8.5) All ports that uses sphinx were changed to use the new variable ${PY_SPHINX} in the dependency line, exceptions: * Ports that fails to build with sphinx 3.0.2 because of code. They are pointing to textproc/py-sphinx18 directly. There aren't many ports. * Ports that doesn't know Python flavors. - Add several patches to fix Sphinx consumers The most common issues are related with pkg-plist, the output files from Sphinx changes between versions, keep this dynamically is the better approach. This will save time in future sphinx updates. PR: 245629 Exp-run by: antoine Changes: head/Mk/Uses/python.mk head/audio/aubio/Makefile head/audio/aubio/pkg-plist head/audio/musicpc/Makefile head/audio/musicpc/pkg-plist head/audio/ncmpc/Makefile head/audio/ncmpc/pkg-plist head/audio/py-pyaudio/Makefile head/biology/py-orange3-single-cell/Makefile head/comms/gnuradio/Makefile head/databases/cassandra3/Makefile head/databases/cassandra4/Makefile head/databases/py-xapian/Makefile head/deskutils/py-khard/Makefile head/deskutils/py-paperless/Makefile head/deskutils/py-paperless/pkg-plist head/devel/ahven/Makefile head/devel/ahven/pkg-plist head/devel/bpython/Makefile head/devel/cmake-doc/Makefile head/devel/cmake-doc/pkg-plist head/devel/gearmand/Makefile head/devel/gearmand-devel/Makefile head/devel/kf5-extra-cmake-modules/Makefile head/devel/kf5-extra-cmake-modules/pkg-plist head/devel/llvm-cheri/Makefile head/devel/llvm-devel/Makefile head/devel/llvm10/Makefile head/devel/llvm60/Makefile head/devel/llvm70/Makefile head/devel/llvm80/Makefile head/devel/llvm90/Makefile head/devel/py-Jinja2/Makefile head/devel/py-boolean.py/Makefile head/devel/py-delfick_error/Makefile head/devel/py-easyprocess/Makefile head/devel/py-jira/Makefile head/devel/py-molecule/Makefile head/devel/py-noseofyeti/Makefile head/devel/py-noseofyeti/files/ head/devel/py-noseofyeti/files/patch-docs___ext_options.py head/devel/py-noseofyeti/files/patch-docs___ext_show__tests.py head/devel/py-oslotest/Makefile head/devel/py-osprofiler/Makefile head/devel/py-pathlib/Makefile head/devel/py-pathtools/Makefile head/devel/py-pathtools/pkg-plist head/devel/py-pip/Makefile head/devel/py-pyinstaller/Makefile head/devel/py-python-gitlab/Makefile head/devel/py-spyder/Makefile head/devel/py-virtualenv/Makefile head/devel/py-virtualenvwrapper/Makefile head/devel/py-virtualenvwrapper/pkg-plist head/devel/py-watchdog/Makefile head/dns/knot-resolver/Makefile head/graphics/colmap/Makefile head/graphics/py-django-easy-thumbnails/Makefile head/graphics/py-mayavi/Makefile head/graphics/py-sorl-thumbnail/Makefile head/graphics/zathura/Makefile head/lang/pocl/Makefile head/mail/py-afew/Makefile head/math/ceres-solver/Makefile head/math/py-networkx/Makefile head/net/ceph12/Makefile head/net/ceph13/Makefile head/net/ceph14/Makefile head/net/frr5/Makefile head/net/frr6/Makefile head/net/frr7/Makefile head/net/irrd/Makefile head/net/py-gntp/Makefile head/net/py-zeep/Makefile head/net/savvycan/Makefile head/science/code_saturne/Makefile head/security/libscep/Makefile head/security/py-certbot-dns-cloudflare/Makefile head/security/py-certbot-dns-cloudxns/Makefile head/security/py-certbot-dns-digitalocean/Makefile head/security/py-certbot-dns-dnsimple/Makefile head/security/py-certbot-dns-dnsmadeeasy/Makefile head/security/py-certbot-dns-gehirn/Makefile head/security/py-certbot-dns-google/Makefile head/security/py-certbot-dns-linode/Makefile head/security/py-certbot-dns-luadns/Makefile head/security/py-certbot-dns-nsone/Makefile head/security/py-certbot-dns-ovh/Makefile head/security/py-certbot-dns-rfc2136/Makefile head/security/py-certbot-dns-sakuracloud/Makefile head/security/py-certbot-nginx/Makefile head/security/py-keystone/Makefile head/shells/fish/Makefile head/shells/fish/pkg-plist head/sysutils/py-pkginfo/Makefile head/sysutils/zrepl/Makefile head/textproc/Makefile head/textproc/py-cloud_sptheme/Makefile head/textproc/py-gfm/Makefile head/textproc/py-m2r/Makefile head/textproc/py-numpydoc/Makefile head/textproc/py-openstackdocstheme/Makefile head/textproc/py-os-api-ref/Makefile head/textproc/py-recommonmark/Makefile head/textproc/py-sphinx/Makefile head/textproc/py-sphinx/distinfo head/textproc/py-sphinx/files/ head/textproc/py-sphinx-hieroglyph/Makefile head/textproc/py-sphinx-intl/Makefile head/textproc/py-sphinx-tabs/Makefile head/textproc/py-sphinx18/ head/textproc/py-sphinx18/Makefile head/textproc/py-sphinx18/distinfo head/textproc/py-sphinx18/files/ head/textproc/py-sphinx_numfig/Makefile head/textproc/py-sphinx_wikipedia/Makefile head/textproc/py-sphinxcontrib-adadomain/Makefile head/textproc/py-sphinxcontrib-bitbucket/Makefile head/textproc/py-sphinxcontrib-fulltoc/Makefile head/textproc/py-sphinxcontrib-httpdomain/Makefile head/textproc/py-sphinxcontrib-newsfeed/Makefile head/textproc/py-sphinxcontrib-programoutput/Makefile head/www/py-beautifulsoup/Makefile head/www/py-cssselect/Makefile head/www/py-cssselect/pkg-plist head/www/py-dj22-django-auth-ldap/Makefile head/www/py-django-auth-ldap/Makefile head/www/py-django-babel/Makefile head/www/py-django-configurations/Makefile head/www/py-django-haystack/Makefile head/www/py-django-reversion/Makefile head/www/py-django-simple-captcha/Makefile head/www/py-django-treebeard/Makefile head/www/py-django111/Makefile head/www/py-django22/Makefile head/www/py-django30/Makefile head/www/py-pyquery/Makefile head/www/py-pyquery/pkg-plist head/www/py-requests-mock/Makefile head/www/py-requests-toolbelt/Makefile head/www/py-webob/Makefile head/www/varnish6/Makefile head/x11/py-pyvirtualdisplay/Makefile head/x11-toolkits/gtkada/Makefile
(In reply to Antoine Brodin from comment #7) Thank you!