package-recursiveではビルドした状態でそのまま他のをビルドしに行くのでやっかいな問題がしばしば起る.
⇒ 「ビルド放置問題」
たとえば
同じ種類で異なるバージョンのものをインストールしようとしてコケる
writing dependency_links to src/pluggy.egg-info/dependency_links.txt writing requirements to src/pluggy.egg-info/requires.txt writing top-level names to src/pluggy.egg-info/top_level.txt reading manifest file 'src/pluggy.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'CHANGELOG' warning: no previously-included files matching '*.pyc' found under directory '*' warning: no previously-included files matching '*.pyo' found under directory '*' adding license file 'LICENSE' writing manifest file 'src/pluggy.egg-info/SOURCES.txt' Copying src/pluggy.egg-info to /var/ports/work/usr/ports/devel/py-pluggy0/work-py39/stage/usr/local/lib/python3.9/site-packages/pluggy-0.13.1-py3.9.egg-info running install_scripts writing list of installed files to '/var/ports/work/usr/ports/devel/py-pluggy0/work-py39/.PLIST.pymodtmp' ===> Creating unique files: Move MAN files needing SUFFIX ===> Creating unique files: Move files needing SUFFIX ====> Compressing man pages (compress-man) ===> Installing for py39-pluggy0-0.13.1 ===> Checking if py39-pluggy0 is already installed ===> Registering installation for py39-pluggy0-0.13.1 as automatic Installing py39-pluggy0-0.13.1... pkg-static: py39-pluggy0-0.13.1 conflicts with py39-pluggy-1.0.0_1 (installs files into the same place). Problematic file: /usr/local/lib/python3.9/site-packages/pluggy/__init__.py *** Error code 1 Stop. make[2]: stopped in /var/ports/msrvkx/devel/py-pluggy0 *** Error code 1 Stop. make[1]: stopped in /usr/ports/devel/py-pytest4 *** Error code 1 Stop. make: stopped in /usr/ports/devel/git
通常既にビルドしたものはUSE_PACKAGE_DEPENDS=yesとしてpackageからインストールしてビルド時間を節約するが,そうするとそのpackageのportもビルドしに行く.
⇒ 「二重ビルド問題」
packageの作成順序がFILOなのでビルド途中でコケると,(2)の方法でビルドした場合,そのpackageがインストールされると,そのpackageが必要とするpackageが無いと言ってコケる.
⇒ 「package 不足問題」
=> Attempting to fetch https://files.pythonhosted.org/packages/source/p/pytest-env/pytest-env-0.6.2.tar.gz pytest-env-0.6.2.tar.gz 1693 B 412 kBps 00s ===> Fetching all distfiles required by py39-pytest-env-0.6.2 for building ===> Extracting for py39-pytest-env-0.6.2 => SHA256 Checksum OK for pytest-env-0.6.2.tar.gz. ===> Patching for py39-pytest-env-0.6.2 ===> py39-pytest-env-0.6.2 depends on package: py39-setuptools>=63.1.0 - found ===> py39-pytest-env-0.6.2 depends on file: /usr/local/bin/python3.9 - found ===> Configuring for py39-pytest-env-0.6.2 running config ===> Building for py39-pytest-env-0.6.2 running build running build_py creating build creating build/lib creating build/lib/pytest_env copying pytest_env/__init__.py -> build/lib/pytest_env copying pytest_env/plugin.py -> build/lib/pytest_env ===> Staging for py39-pytest-env-0.6.2 ===> py39-pytest-env-0.6.2 depends on package: py39-pytest>=2.6 - not found ===> Installing existing package /var/ports/packages/All/py39-pytest-7.3.1,1.pkg Installing py39-pytest-7.3.1,1... pkg-static: Missing dependency 'py39-exceptiongroup' Failed to install the following 1 package(s): /var/ports/packages/All/py39-pytest-7.3.1,1.pkg *** Error code 1 Stop. make[1]: stopped in /usr/ports/devel/py-pytest-env *** Error code 1 Stop. make: stopped in /usr/ports/devel/git