- Due to pypa/setuptools#5429 (devendoring issues with pip), combining an
Arch-packaged pip and a
pypi2pkgbuild.py
-packaged setuptools does not work. In practice, this means that one should excludesetuptools
from automatic upgrades. - Packages that are manually vendored (... poorly) by Arch (e.g., previously,
html5lib
intobleach
) cause some issues. A solution would be to actually install the dependencies, check whether the last versions were installed, and error if this is not the case (indicating a requirement on an earlier version, which necessarily means manual vendoring). - VCS fragments cannot be given.
- PyPI packages that depends on another package's
extra_requires
are not supported (needs upstream support frompip show
).scikit-image
"depends" (... with fallback) ondask[array]
.
- License support is incomplete.
- e.g.
matplotlib
has aLICENSE
directory. - get licenses from wheels.
- e.g.
- Meta packages are fully rebuilt even if only a component needs to be built
(although version dependencies -- in particular
pkgrel
s -- may have changed so it may not be possible to avoid this and maintain robustness). scipy
fails to build, probably due to numpy/numpy#7779 (LDFLAGS
set bymakepkg
strips defaults). SettingLDFLAGS
to"$(. /etc/makepkg.conf; echo $LDFLAGS) -shared"
does not seem to help, though. NOTE: This may possibly be fixed using theNPY_DISTUTILS_APPEND_FLAG
environment variable on numpy≥1.16.fpm
adds aget_metadata
command to avoid having to install the package but this can't be done with e.g. wheels. Perhaps we could hook something else?- Move
numpy
support to--guess-makedepends
. Implementguess-makedepends
by adding shim files to the environment that check whether they are accessed. A similar strategy can be used e.g. for swig, pybind11.
- Some packages are installed without an
.egg-info
(e.g.entrypoints
) and thus not seen by
pip list --outdated
(and thus
pypi2pkgbuild.py -o
).- Some packages are installed without an
- Setup-time non-Python dependencies.
notebook
from the git repository (requires at leastbower
, perhaps more).
- Undetected split packages:
- Arch splits
pygments
intopython-pygments
andpygmentize
, andpygobject
intopython-gobject
andpygobject-devel
(because the latter is shared withpython2-gobject
) but in each casepypi2pkgbuild.py
only sees the former (and thus does not provides/conflicts the latter). Due to licenses and the presence of custom scripts (e.g. shell completion forpygmentize
, we can't rely on strict inclusion). The best solution is therefore either to declare aconflicts
/replaces
, or to manually remove the extraneous file (seepython-gobject.PKGBUILD_EXTRAS
).
- Arch splits
- Packages that install system-level (e.g., systemd) scripts:
sftpman
(explicitly unsupported viasftpman.PKGBUILD_EXTRAS
).
- Packages vendored into non-Python packages (could be partially detected from
nonmatching versions):
lit
(vendored intollvm
).
Note that fixes for some other packages are provided in the pkgbuild-extras
directory.
- Intercept pkg-config calls for missing packages (e.g. cairo/pycairo?).
- Extract manylinux wheels' vendored .libs.