Skip to content

Build issue for alpine-based docker image running on mac (works on linux) #74

@aviad-dev

Description

@aviad-dev

Hey @noxdafox

We're trying to install the wonderful clipspy on an alpine image. When running on linux (and probably windows) it works, while when docker is running on a new mac laptop (let me know if you'd like the exact machine spec), and are getting this error:

$ docker run -it python:3.12-alpine sh -c "apk add build-base curl make && pip install clipspy"
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/aarch64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/aarch64/APKINDEX.tar.gz
(1/29) Installing libgcc (14.2.0-r6)
(2/29) Installing jansson (2.14.1-r0)
(3/29) Installing libstdc++ (14.2.0-r6)
(4/29) Installing zstd-libs (1.5.7-r0)
(5/29) Installing binutils (2.44-r0)
(6/29) Installing libmagic (5.46-r2)
(7/29) Installing file (5.46-r2)
(8/29) Installing libgomp (14.2.0-r6)
(9/29) Installing libatomic (14.2.0-r6)
(10/29) Installing gmp (6.3.0-r3)
(11/29) Installing isl26 (0.26-r1)
(12/29) Installing mpfr4 (4.2.1_p1-r0)
(13/29) Installing mpc1 (1.3.1-r1)
(14/29) Installing gcc (14.2.0-r6)
(15/29) Installing libstdc++-dev (14.2.0-r6)
(16/29) Installing musl-dev (1.2.5-r10)
(17/29) Installing g++ (14.2.0-r6)
(18/29) Installing make (4.4.1-r3)
(19/29) Installing fortify-headers (1.1-r5)
(20/29) Installing patch (2.8-r0)
(21/29) Installing build-base (0.5-r3)
(22/29) Installing brotli-libs (1.1.0-r2)
(23/29) Installing c-ares (1.34.5-r0)
(24/29) Installing libunistring (1.3-r0)
(25/29) Installing libidn2 (2.3.7-r0)
(26/29) Installing nghttp2-libs (1.65.0-r0)
(27/29) Installing libpsl (0.21.5-r3)
(28/29) Installing libcurl (8.14.1-r0)
(29/29) Installing curl (8.14.1-r0)
Executing busybox-1.37.0-r18.trigger
OK: 243 MiB in 67 packages
Collecting clipspy
  Downloading clipspy-1.0.5.tar.gz (28 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting cffi>=1.0.0 (from clipspy)
  Using cached cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl.metadata (1.5 kB)
Collecting pycparser (from cffi>=1.0.0->clipspy)
  Using cached pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Using cached cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl (484 kB)
Using cached pycparser-2.22-py3-none-any.whl (117 kB)
Building wheels for collected packages: clipspy
  Building wheel for clipspy (pyproject.toml) ... error
  error: subprocess-exited-with-error
 
  × Building wheel for clipspy (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [39 lines of output]
      /tmp/pip-build-env-ftq2t3od/overlay/lib/python3.12/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
      !!
 
              ********************************************************************************
              Please consider removing the following classifiers in favor of a SPDX license expression:
 
              License :: OSI Approved :: BSD License
 
              See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
              ********************************************************************************
 
      !!
        self._finalize_license_expression()
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-aarch64-cpython-312/clips
      copying clips/common.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/modules.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/environment.py -> build/lib.linux-aarch64-cpython-312/clips                           
      copying clips/routers.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/__init__.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/functions.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/values.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/clips_build.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/classes.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/agenda.py -> build/lib.linux-aarch64-cpython-312/clips
      copying clips/facts.py -> build/lib.linux-aarch64-cpython-312/clips
      running build_ext
      generating cffi module 'build/temp.linux-aarch64-cpython-312/_clips.c'
      creating build/temp.linux-aarch64-cpython-312
      building '_clips' extension
      creating build/temp.linux-aarch64-cpython-312/build/temp.linux-aarch64-cpython-312
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -Iclips_source -I/usr/local/include/python3.12 -c build/temp.linux-aarch64-cpython-312/_clips.c -o build/temp.linux-aarch64-cpython-312/build/temp.linux-aarch64-cpython-312/_clips.o
      build/temp.linux-aarch64-cpython-312/_clips.c:574:10: fatal error: clips.h: No such file or directory
        574 | #include <clips.h>
            |          ^~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]
 
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for clipspy
Failed to build clipspy

Any hint you can give us would be very appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions