nut icon indicating copy to clipboard operation
nut copied to clipboard

[Bug] Installing on macos failed on pycurl building step.

Open hndrbrm opened this issue 1 year ago • 0 comments

Describe the bug

Following the macos build procedure, failed on building pycurl.

To Reproduce

Steps to reproduce the behaviour: Exactly do the step on the readme.md on "Installation guide (macOS)" The failed step is: Install all other dependencies (pip install -r requirements.txt)

Actual behaviour

Click to expand
Building wheels for collected packages: future, pycurl
  Building wheel for future (setup.py) ... done
  Created wheel for future: filename=future-0.18.3-py3-none-any.whl size=492025 sha256=8c21a7945cc309428f35dc646fa0121d85776d86ccb178860a4b4c2a97b16ede
  Stored in directory: /Users/kuku/Library/Caches/pip/wheels/bf/5d/6a/2e53874f7ec4e2bede522385439531fafec8fafe005b5c3d1b
  Building wheel for pycurl (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [21 lines of output]
      /private/var/folders/l9/txb9ccbn5mx12rx5frvr_vbh0000gn/T/pip-install-qi7ykt8z/pycurl_80bf32d608fc44ebade3ae4ddef10d21/setup.py:941: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
        if LooseVersion(distutils.__version__) > LooseVersion("1.0.1"):
      /private/var/folders/l9/txb9ccbn5mx12rx5frvr_vbh0000gn/T/pip-install-qi7ykt8z/pycurl_80bf32d608fc44ebade3ae4ddef10d21/setup.py:943: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
        if LooseVersion(distutils.__version__) < LooseVersion("1.0.3"):
      Using curl-config (libcurl 8.10.1)
      Using SSL library: OpenSSL/LibreSSL/BoringSSL
      running bdist_wheel
      running build
      running build_py
      creating build/lib.macosx-14-x86_64-cpython-39/curl
      copying python/curl/__init__.py -> build/lib.macosx-14-x86_64-cpython-39/curl
      running build_ext
      building 'pycurl' extension
      creating build/temp.macosx-14-x86_64-cpython-39/src
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -DPYCURL_VERSION=\"7.44.1\" -DHAVE_CURL_SSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_SSL=1 -I/usr/local/Cellar/curl/8.10.1/include -I/Users/kuku/.pyenv/versions/3.9.7/envs/nut/include -I/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c src/docstrings.c -o build/temp.macosx-14-x86_64-cpython-39/src/docstrings.o
      In file included from src/docstrings.c:4:
      src/pycurl.h:178:13: fatal error: 'openssl/ssl.h' file not found
      #   include <openssl/ssl.h>
                  ^~~~~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' 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 pycurl
  Running setup.py clean for pycurl
Successfully built future
Failed to build pycurl
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pycurl)
(nut) kuku@kuku-MacBook-Air ~/C/nut (master) [1]> pip install pycurld
ERROR: Could not find a version that satisfies the requirement pycurld (from versions: none)
ERROR: No matching distribution found for pycurld

Expected behaviour

No Error

NUT version (or git hash):

Git hash 5e88b6766daf1bd9cd04222323ad2638d736ed42

Temporary Solution

Update the pycurl version on the requirements.txt to 7.45.3

Git patch

Click to expand
diff --git a/requirements.txt b/requirements.txt
index eaa52a1..1992fc3 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -17,7 +17,7 @@ future~=0.18.2
 asn1~=2.4.2
 filelock~=3.4.2
 Unidecode~=1.3.2
-pycurl~=7.44.1; sys_platform != 'win32'
+pycurl~=7.45.3; sys_platform != 'win32'
 qt-range-slider~=0.2.7
 watchdog~=2.1.6
 certifi>=2021.5.30

Other Information

macOS sonoma 14.6

hndrbrm avatar Nov 06 '24 04:11 hndrbrm