Bug 245629 - textproc/py-sphinx: Update to 3.0.2
Summary: textproc/py-sphinx: Update to 3.0.2
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Danilo G. Baio
URL:
Keywords:
Depends on: 244676 244677 244678 245750 246618
Blocks:
  Show dependency treegraph
 
Reported: 2020-04-15 01:58 UTC by Danilo G. Baio
Modified: 2020-05-23 01:36 UTC (History)
3 users (show)

See Also:
antoine: maintainer-feedback+
antoine: exp-run+


Attachments
sphinx-v3.0.1-v1.8.5-PR.patch (140.88 KB, patch)
2020-04-15 01:58 UTC, Danilo G. Baio
no flags Details | Diff
sphinx-v3.0.2-v1.8.5-PR.patch (140.27 KB, patch)
2020-04-21 14:30 UTC, Danilo G. Baio
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Danilo G. Baio freebsd_committer 2020-04-15 01:58:59 UTC
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.
Comment 1 Antoine Brodin freebsd_committer 2020-04-20 17:26:18 UTC

+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
Comment 2 Danilo G. Baio freebsd_committer 2020-04-21 14:30:46 UTC
Created attachment 213640 [details]
sphinx-v3.0.2-v1.8.5-PR.patch
Comment 3 Danilo G. Baio freebsd_committer 2020-04-21 14:31:17 UTC
update Sphinx to 3.0.2
llvm ports depending on package
Comment 4 Antoine Brodin freebsd_committer 2020-05-09 19:52:23 UTC
python timeout,  over to portmgr for exp-run
Comment 5 Antoine Brodin freebsd_committer 2020-05-09 19:55:28 UTC
A few nits:
- the 4 new ports have to be hooked to textproc/Makefile
- textproc/py-sphinx18/files has to be removed
Comment 6 Antoine Brodin freebsd_committer 2020-05-09 20:12:04 UTC
Another nit:

textproc/py-sphinxcontrib-adadomain/files/patch-sphinx14 has to be removed
Comment 7 Antoine Brodin freebsd_committer 2020-05-10 08:29:31 UTC
Exp-run looks fine
Comment 8 commit-hook freebsd_committer 2020-05-11 23:53:04 UTC
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
Comment 9 Danilo G. Baio freebsd_committer 2020-05-11 23:53:40 UTC
(In reply to Antoine Brodin from comment #7)

Thank you!