Bug 280687 - textproc/py-sphinxcontrib-towncrier: causes devel/py-virtualenv to no longer build
Summary: textproc/py-sphinxcontrib-towncrier: causes devel/py-virtualenv to no longer ...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Nicola Vitale
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-08-08 14:28 UTC by Dimitry Andric
Modified: 2024-08-14 15:48 UTC (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dimitry Andric freebsd_committer freebsd_triage 2024-08-08 14:28:13 UTC
Seems that after 5af0128fcd3924401147ace8c3d00f0b53c21229 ("textproc/py-sphinxcontrib-towncrier: Change RUN_DEPENDS from py-towncrier to py-towncrier23") I cannot build devel/py-virtualenv anymore, since it wants to pull in both the default py-towncrier, _and_ py-sphinxcontrib-towncrier:

===>   py311-virtualenv-20.26.3 depends on package: py311-sphinx>=5.3.0 - found
===>   py311-virtualenv-20.26.3 depends on package: py311-sphinxcontrib-towncrier>=0.3.2a0 - not found
===>   Installing existing package /packages/All/py311-sphinxcontrib-towncrier-0.4.0a0_1.pkg
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] Installing py311-sphinxcontrib-towncrier-0.4.0a0_1...
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] `-- Installing py311-towncrier23-23.11.0...
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] |   `-- Installing py311-importlib-resources-6.4.0...
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] |   `-- Extracting py311-importlib-resources-6.4.0: .......... done
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] |   `-- Installing py311-incremental-21.3.0...
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] |   `-- Extracting py311-incremental-21.3.0: .......... done
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] `-- Extracting py311-towncrier23-23.11.0: .......... done
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] Extracting py311-sphinxcontrib-towncrier-0.4.0a0_1: .......... done
===>   py311-virtualenv-20.26.3 depends on package: py311-sphinxcontrib-towncrier>=0.3.2a0 - found
===>   Returning to build of py311-virtualenv-20.26.3
===>   py311-virtualenv-20.26.3 depends on package: py311-towncrier>=22.12.0 - not found
===>   Installing existing package /packages/All/py311-towncrier-24.7.1.pkg
[llvm-19-update-n271637-849de7fda8f0-amd64-local-job-01] Installing py311-towncrier-24.7.1...
pkg-static: py311-towncrier-24.7.1 conflicts with py311-towncrier23-23.11.0 (installs files into the same place).  Problematic file: /usr/local/bin/towncrier-3.11

Either py-virtualenv should also use py-towncrier23, or there should maybe be another flavor of py-sphinxcontrib? I'm unsure why there are different versions of towncrier in the tree, though.
Comment 1 Dimitry Andric freebsd_committer freebsd_triage 2024-08-08 14:29:18 UTC
Alternatively, there could be some hack to allow both versions of towncrier to be installed side-by-side, but it is probably not the best way. :)
Comment 2 Po-Chuan Hsieh freebsd_committer freebsd_triage 2024-08-08 15:32:59 UTC
sphinxcontrib-towncrier is not compatible with towncrier 24.7+ yet, therefore I added py-towncrier23. See bug 280570 and https://github.com/sphinx-contrib/sphinxcontrib-towncrier/issues/92 for more information.
Comment 3 Dimitry Andric freebsd_committer freebsd_triage 2024-08-08 17:45:54 UTC
(In reply to Po-Chuan Hsieh from comment #2)
I understood that from bug 280570, but now you cannot install py-virtualenv anymore.

As a workaround, I've downgraded the dependency in the py-virtualenv Makefile to towncrier23 too:

--- a/devel/py-virtualenv/Makefile
+++ b/devel/py-virtualenv/Makefile
@@ -55,7 +55,7 @@ DOCS_BUILD_DEPENDS=   ${PYTHON_PKGNAMEPREFIX}click-default-group>=1.2.4:devel/py-c
                        ${PYTHON_PKGNAMEPREFIX}sphinx-argparse>=0.4:textproc/py-sphinx-argparse@${PY_FLAVOR} \
                        ${PYTHON_PKGNAMEPREFIX}sphinx>=5.3.0:textproc/py-sphinx@${PY_FLAVOR} \
                        ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-towncrier>=0.3.2a0:textproc/py-sphinxcontrib-towncrier@${PY_FLAVOR} \
-                       ${PYTHON_PKGNAMEPREFIX}towncrier>=22.12.0:textproc/py-towncrier@${PY_FLAVOR}
+                       ${PYTHON_PKGNAMEPREFIX}towncrier23>=22.12.0:textproc/py-towncrier23@${PY_FLAVOR}
 DOCS_BINARY_ALIAS=     towncrier=towncrier-${PYTHON_VER}
 DOCS_PLIST_FILES=      share/man/man1/virtualenv.1.gz
 DOCS_PORTDOCS=         * .buildinfo

That works for me, but it looks like there aren't many other direct consumers of the plain towncrier port after that...
Comment 4 commit-hook freebsd_committer freebsd_triage 2024-08-14 15:42:30 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=060ca335549ee124e729c771477913eb7dff1882

commit 060ca335549ee124e729c771477913eb7dff1882
Author:     Nicola Vitale <nivit@FreeBSD.org>
AuthorDate: 2024-08-14 15:20:34 +0000
Commit:     Nicola Vitale <nivit@FreeBSD.org>
CommitDate: 2024-08-14 15:39:08 +0000

    devel/py-virtualenv: Fix build caused by conflicting dependencies

    - Temporarly disable DOCS option due to the conflit between the docs
      build-dependency textproc/py-towncrier with textproc/py-towncrier23,
      which the other dependency py-sphinxcontrib-towncrier now depends on.

      I prefer to disable this option instead of changing the dependency
      to py-towncrier23 because a user may have already installed py-towncrier
      in the system for other reasons before updating.

      Other reference:

        https://github.com/sphinx-contrib/sphinxcontrib-towncrier/issues/92

    - Bump PORTREVISION

    PR:             280687

 devel/py-virtualenv/Makefile | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
Comment 5 Nicola Vitale freebsd_committer freebsd_triage 2024-08-14 15:48:39 UTC
Fixed. Thank you for the PR!