You are not logged in.

#1 2024-09-01 17:26:43

letscho545
Member
Registered: 2024-09-01
Posts: 2

Missing dependencies when building Python package

Hello,

I am trying to make an AUR package for satlas2 but when I run

makepgk

I get a Missing dependencies error:

==> Making package: python-satlas2 0.1.10-1 (Sun 01 Sep 2024 19:18:50 CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Downloading python-satlas2-0.1.10.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 5290k    0 5290k    0     0  8317k      0 --:--:-- --:--:-- --:--:-- 8317k
==> Validating source files with sha256sums...
    python-satlas2-0.1.10.tar.gz ... Passed
==> Extracting sources...
  -> Extracting python-satlas2-0.1.10.tar.gz with bsdtar
==> Starting build()...
* Getting build dependencies for wheel...

ERROR Missing dependencies:
	pandas
	tzdata>=2022.7
	lmfit
	asteval>=1.0
==> ERROR: A failure occurred in build().
    Aborting...

All the dependencies are installed, only asteval with version 0.9.33-1. I tried it on two different up to date Arch machines.

Here you have the PKGBUILD (the commented lines in build() are different things I tried):

# Maintainer: letscho <handbook_latch586 at simplelogin dot com>
pkgname='python-satlas2'
_name=${pkgname#python-}
pkgver='0.1.10'
pkgrel=1
pkgdesc="Statistical Analysis Toolbox for Laser Spectroscopy"
arch=(any)
url=https://iks-nm.github.io/satlas2/
license=("MIT")
depends=(
    python-numpy
    python-matplotlib
    python-scipy
    python-h5py
    python-emcee
    python-sympy
    python-lmfit
    python-numdifftools
    python-uncertainties
    python-tqdm
    python-pandas
)
makedepends=(
    python-build
    python-installer
    python-wheel
    python-flit-core
)
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/IKS-nm/satlas2/archive/refs/tags/${pkgver}.tar.gz")
sha256sums=('f5b4b4f991c55c0b76bd94f188d5f21330c2a6b529305651ecd5019efeade7c6')

build() {
    cd "${_name}-${pkgver}"
    # python -m build --wheel --skip-dependency-check --no-isolation
    # python -m build --wheel --no-isolation
    SETUPTOOLS_SCM_PRETEND_VERSION=${pkgver} python -m build --wheel --no-isolation
    # SETUPTOOLS_SCM_PRETEND_VERSION=${pkgver} python -m build --wheel --skip-dependency-check --no-isolation
}

package() {
    cd "${_name}-${pkgver}"
    python -m installer --destdir="$pkgdir" dist/*.whl
    install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

I made a similar PGKBUILD, but by building directly from git which works fine:

# Maintainer: letscho <handbook_latch586 at simplelogin dot com>
pkgname='python-satlas2'
_name=${pkgname#python-}
pkgver='0.1.10.r34.gafbb12f'
pkgrel=1
pkgdesc="Statistical Analysis Toolbox for Laser Spectroscopy"
arch=(any)
url=https://iks-nm.github.io/satlas2/
license=("MIT")
depends=(
    python-numpy
    python-matplotlib
    python-scipy
    python-h5py
    python-emcee
    python-sympy
    python-lmfit
    python-numdifftools
    python-uncertainties
    python-tqdm
    python-pandas
)
makedepends=(
    git
    python-build
    python-installer
    python-wheel
)
source=("git+https://github.com/IKS-nm/satlas2.git")
sha256sums=("SKIP")

pkgver() {
  cd "$_name"
  git describe --long --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}

build() {
    cd "$_name"
    python -m build --wheel --no-isolation
}

package() {
    cd "$_name"
    python -m installer --destdir="$pkgdir" dist/*.whl
    install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

Any help in solving this issue would be very much appreciated.

Offline

#2 2024-09-01 18:54:39

loqs
Member
Registered: 2014-03-06
Posts: 18,042

Re: Missing dependencies when building Python package

$ grep -rF 'tzdata>=2022.7'
usr/lib/python3.12/site-packages/pandas-2.2.2.dist-info/METADATA:Requires-Dist: tzdata>=2022.7
usr/lib/python3.12/site-packages/pandas/pyproject.toml:  "tzdata>=2022.7"

Have you tried adding python-tzdata to makedepends?
Edit:
lmfit 1.3.2 requires asteval>=1.0 while extra contains python-asteval 0.9.33-1 https://github.com/lmfit/lmfit-py/releases/tag/1.3.2
Edit2:
FLIT_ALLOW_INVALID=true will allow the invalid version.

Last edited by loqs (2024-09-01 19:55:06)

Online

#3 2024-09-01 20:17:21

letscho545
Member
Registered: 2024-09-01
Posts: 2

Re: Missing dependencies when building Python package

Thanks a lot! That's very helpful.
I flagged the asteval package out of date.

loqs wrote:

FLIT_ALLOW_INVALID=true will allow the invalid version.

Where exactly should I put this?
I tried this without success:

    FLIT_ALLOW_INVALID=true SETUPTOOLS_SCM_PRETEND_VERSION=${pkgver} python -m build --wheel --no-isolation

Offline

#4 2024-09-01 21:18:28

loqs
Member
Registered: 2014-03-06
Posts: 18,042

Re: Missing dependencies when building Python package

I was able to build using python-lmfit downgraded to 1.3.1 with:

    FLIT_ALLOW_INVALID=true python -m build --wheel --no-isolation

Online

Board footer

Powered by FluxBB