Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Synology Issues? #640

Closed
5 tasks done
joewheatley opened this issue Sep 24, 2024 · 2 comments
Closed
5 tasks done

Synology Issues? #640

joewheatley opened this issue Sep 24, 2024 · 2 comments
Assignees
Labels
support request Technical support is required.

Comments

@joewheatley
Copy link

Preconditions

  • Requirements fulfilled
  • The known issues did not answer my question
  • The question has not been asked in the past or the answer does not satisfy me
  • There is currently no other opened issue that matches my question
  • I cannot find any answer to my question in GitHub discussions

Current Situation

I'm probably super out my depth here and it might not even be supported but i'm trying to install on my Synology Homebridge setup. My Synology can't run docker so i'm on the Synology package. I'm encountering some errors on install. See log. I think i'm stuck on the version of node.js and OpenSSL due to Synology DSM.

Any advice appreciated.

Logs

9/24/2024, 11:41:50 AM] [Apple TV Enhanced] [I] Update check: You are using the latest version of AppleTV Enhanced (excluding betas): 1.7.1
[9/24/2024, 11:41:50 AM] [Apple TV Enhanced] [I] Python check: Starting python check.
[9/24/2024, 11:41:50 AM] [Apple TV Enhanced] [I] Python check: plugin dir exists.
[9/24/2024, 11:41:50 AM] [Shelly DS9] [shelly1pmmini-543204b57864] Device added
[9/24/2024, 11:41:50 AM] [Apple TV Enhanced] [W] Python check: You are using OpenSSL 1.1.1. However, OpenSSL 3.0.0 or later is required for the most AppleTV enhanced in it's latest version. Falling back to openssl legacy mode. Be aware that Python 3.12 is not compatible with openssl legacy mode.
[9/24/2024, 11:41:50 AM] [Shelly DS9] [shellyplus2pm-c049ef86b4b0] Device added
[9/24/2024, 11:41:50 AM] [Shelly DS9] [shellyplus1-fcb467bf0484] Device added
[9/24/2024, 11:41:50 AM] [Apple TV Enhanced] [I] Python check: Python 3.8.15 is installed and supported by the plugin.
[9/24/2024, 11:41:50 AM] [Apple TV Enhanced] [I] Python check: Virtual environment already exists.
[9/24/2024, 11:41:50 AM] [Shelly DS9] [shellyplus1-08b61fd8283c] Device added
[9/24/2024, 11:41:50 AM] [Apple TV Enhanced] [I] Python check: Virtual environment is using the systems default python environment. Continuing ...
[9/24/2024, 11:41:52 AM] [Apple TV Enhanced] [I] Python check: Venv pip version: 24.2
[9/24/2024, 11:41:52 AM] [Apple TV Enhanced] [I] Python check: Checking if there is an update for venv pip ...
[9/24/2024, 11:41:52 AM] [Apple TV Enhanced] [I] Python check: Venv pip is up-to-date
[9/24/2024, 11:41:54 AM] [Apple TV Enhanced] [W] Python check: Python requirements are not satisfied. Installing them now ...
[9/24/2024, 11:42:00 AM] [Apple TV Enhanced] [I] Python check: Collecting aiohttp==3.10.5 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 1))
[9/24/2024, 11:42:00 AM] [Apple TV Enhanced] [I] Python check: Using cached aiohttp-3.10.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (7.5 kB)
[9/24/2024, 11:42:00 AM] [Apple TV Enhanced] [I] Python check: Collecting aiosignal==1.3.1 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 2))
[9/24/2024, 11:42:00 AM] [Apple TV Enhanced] [I] Python check: Using cached aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
[9/24/2024, 11:42:00 AM] [Apple TV Enhanced] [I] Python check: Collecting annotated-types==0.7.0 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 3))
[9/24/2024, 11:42:00 AM] [Apple TV Enhanced] [I] Python check: Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
[9/24/2024, 11:42:01 AM] [Apple TV Enhanced] [I] Python check: Collecting async-timeout==4.0.3 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 4))
[9/24/2024, 11:42:01 AM] [Apple TV Enhanced] [I] Python check: Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
[9/24/2024, 11:42:01 AM] [Apple TV Enhanced] [I] Python check: Collecting attrs==24.2.0 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 5))
[9/24/2024, 11:42:01 AM] [Apple TV Enhanced] [I] Python check: Using cached attrs-24.2.0-py3-none-any.whl.metadata (11 kB)
[9/24/2024, 11:42:01 AM] [Apple TV Enhanced] [I] Python check: Collecting certifi==2024.7.4 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 6))
[9/24/2024, 11:42:01 AM] [Apple TV Enhanced] [I] Python check: Using cached certifi-2024.7.4-py3-none-any.whl.metadata (2.2 kB)
[9/24/2024, 11:42:03 AM] [Apple TV Enhanced] [I] Python check: Collecting cffi==1.17.0 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 7))
[9/24/2024, 11:42:03 AM] [Apple TV Enhanced] [I] Python check: Using cached cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (1.5 kB)
[9/24/2024, 11:42:04 AM] [Apple TV Enhanced] [I] Python check: Collecting chacha20poly1305-reuseable==0.12.2 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 8))
[9/24/2024, 11:42:04 AM] [Apple TV Enhanced] [I] Python check: Using cached chacha20poly1305_reuseable-0.12.2.tar.gz (11 kB)
[9/24/2024, 11:42:04 AM] [Apple TV Enhanced] [I] Python check: Installing build dependencies: started
[9/24/2024, 11:42:23 AM] [Apple TV Enhanced] [I] Python check: Installing build dependencies: finished with status 'done'
[9/24/2024, 11:42:23 AM] [Apple TV Enhanced] [I] Python check: Getting requirements to build wheel: started
[9/24/2024, 11:42:24 AM] [Apple TV Enhanced] [I] Python check: Getting requirements to build wheel: finished with status 'done'
[9/24/2024, 11:42:24 AM] [Apple TV Enhanced] [I] Python check: Preparing metadata (pyproject.toml): started
[9/24/2024, 11:42:26 AM] [Apple TV Enhanced] [I] Python check: Preparing metadata (pyproject.toml): finished with status 'done'
[9/24/2024, 11:42:27 AM] [Apple TV Enhanced] [I] Python check: Collecting charset-normalizer==3.3.2 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 9))
[9/24/2024, 11:42:27 AM] [Apple TV Enhanced] [I] Python check: Using cached charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (33 kB)
[9/24/2024, 11:42:29 AM] [Apple TV Enhanced] [I] Python check: Collecting cryptography==42.0.8 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 10))
[9/24/2024, 11:42:29 AM] [Apple TV Enhanced] [I] Python check: Using cached cryptography-42.0.8-cp37-abi3-manylinux_2_28_aarch64.whl.metadata (5.3 kB)
[9/24/2024, 11:42:30 AM] [Apple TV Enhanced] [I] Python check: Collecting frozenlist==1.4.1 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 11))
[9/24/2024, 11:42:30 AM] [Apple TV Enhanced] [I] Python check: Using cached frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (12 kB)
[9/24/2024, 11:42:30 AM] [Apple TV Enhanced] [I] Python check: Collecting idna==3.8 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 12))
[9/24/2024, 11:42:30 AM] [Apple TV Enhanced] [I] Python check: Using cached idna-3.8-py3-none-any.whl.metadata (9.9 kB)
[9/24/2024, 11:42:30 AM] [Apple TV Enhanced] [I] Python check: Collecting ifaddr==0.2.0 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 13))
[9/24/2024, 11:42:30 AM] [Apple TV Enhanced] [I] Python check: Using cached ifaddr-0.2.0-py3-none-any.whl.metadata (4.9 kB)
[9/24/2024, 11:42:30 AM] [Apple TV Enhanced] [I] Python check: Collecting mediafile==0.12.0 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 14))
[9/24/2024, 11:42:30 AM] [Apple TV Enhanced] [I] Python check: Using cached mediafile-0.12.0-py3-none-any.whl.metadata (2.3 kB)
[9/24/2024, 11:42:31 AM] [Apple TV Enhanced] [I] Python check: Collecting miniaudio==1.61 (from -r /volume1/homebridge/node_modules/homebridge-appletv-enhanced/python_requirements/openssl_legacy/requirements.txt (line 15))
[9/24/2024, 11:42:31 AM] [Apple TV Enhanced] [I] Python check: Using cached miniaudio-1.61.tar.gz (1.1 MB)
[9/24/2024, 11:42:31 AM] [Apple TV Enhanced] [I] Python check: Installing build dependencies: started
[9/24/2024, 11:42:45 AM] [Apple TV Enhanced] [I] Python check: Installing build dependencies: finished with status 'done'
[9/24/2024, 11:42:45 AM] [Apple TV Enhanced] [I] Python check: Getting requirements to build wheel: started
[9/24/2024, 11:42:46 AM] [Apple TV Enhanced] [I] Python check: Getting requirements to build wheel: finished with status 'error'
[9/24/2024, 11:42:46 AM] [Apple TV Enhanced] [E] Python check:   error: subprocess-exited-with-error
  
  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [41 lines of output]
      /tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require'
        warnings.warn(msg)
      /tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite'
        warnings.warn(msg)
      Traceback (most recent call last):
        File "/volume1/homebridge/appletv-enhanced/.venv/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/volume1/homebridge/appletv-enhanced/.venv/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/volume1/homebridge/appletv-enhanced/.venv/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 302, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 318, in run_setup
          exec(code, locals())
        File "<string>", line 20, in <module>
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/__init__.py", line 117, in setup
          return distutils.core.setup(**attrs)
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 145, in setup
          _setup_distribution = dist = klass(attrs)
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 283, in __init__
          _Distribution.__init__(self, dist_attrs)
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 279, in __init__
          self.finalize_options()
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 635, in finalize_options
          ep(self)
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 655, in _finalize_setup_keywords
          ep.load()(self, ep.name, value)
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/cffi/setuptools_ext.py", line 216, in cffi_modules
          add_cffi_module(dist, cffi_module)
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/cffi/setuptools_ext.py", line 49, in add_cffi_module
          execfile(build_file_name, mod_vars)
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/cffi/setuptools_ext.py", line 25, in execfile
          exec(code, glob, glob)
        File "build_ffi_module.py", line 830, in <module>
          ffibuilder = FFI()
        File "/tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/cffi/api.py", line 48, in __init__
          import _cffi_backend as backend
      ImportError: /tmp/pip-build-env-_ljeacj3/overlay/lib/python3.8/site-packages/_cffi_backend.cpython-38-aarch64-linux-gnu.so: failed to map segment from shared object
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.

[9/24/2024, 11:42:46 AM] [Apple TV Enhanced] [E] Python check: error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

[9/24/2024, 11:42:48 AM] [Apple TV Enhanced] [S] Python check: Python requirements installed.
[9/24/2024, 11:42:48 AM] [Apple TV Enhanced] [I] Python check: Finished
[9/24/2024, 11:42:48 AM] [Apple TV Enhanced] [I] Platform: Starting device discovery ...
[9/24/2024, 11:42:48 AM] Error: spawn /volume1/homebridge/appletv-enhanced/.venv/bin/atvscript ENOENT
    at Process.ChildProcess._handle.onexit (node:internal/child_process:286:19)
    at onErrorNT (node:internal/child_process:484:16)
    at processTicksAndRejections (node:internal/process/task_queues:82:21)
[9/24/2024, 11:42:48 AM] Got SIGTERM, shutting down Homebridge...
[9/24/2024, 11:42:53 AM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[9/24/2024, 11:42:58 AM] [HB Supervisor] Restarting Homebridge...

Configuration

{
    "name": "Apple TV Enhanced",
    "deviceStates": [
        "paused",
        "playing"
    ],
    "deviceStateDelay": 0,
    "avadaKedavraAppAmount": 15,
    "disableVolumeControlRemote": false,
    "absoluteVolumeControl": false,
    "discover": {
        "multicast": true
    },
    "forceVenvRecreate": false,
    "logLevel": 3,
    "updateCheckLevel": "stable",
    "updateCheckTime": 3,
    "deviceSpecificOverrides": [
        {
            "overrideMediaTypes": false,
            "overrideDeviceStates": false,
            "overrideDeviceStateDelay": false,
            "deviceStateDelay": 0,
            "overrideRemoteKeysAsSwitch": false,
            "overrideAvadaKedavraAppAmount": false,
            "avadaKedavraAppAmount": 15,
            "overrideCustomInputURIs": false,
            "overrideDisableVolumeControlRemote": false,
            "disableVolumeControlRemote": false,
            "overrideAbsoluteVolumeControl": false,
            "absoluteVolumeControl": false
        }
    ],
    "platform": "AppleTVEnhanced"
}

Operating System

Linux

Operating System: Bits

64-bit

Operating System: Distribution

Synology DSM 7.2.1

Operating System: Distribution Version

7.2.1

Docker

no

Docker Image

None

Docker Image Tag

No response

Homebridge Version

1.8.4

Homebridge Config UI Version

4.58.0

Homebridge Storage Path

/var/lib/packages/homebridge

Homebridge Apple TV Enhanced Version

1.7.1

Node Version

20.9.0

NPM Version

10.1.0

Python Version

3.8.15

PIP Version

24.2

HDMI Hops

No response

Audio Output

no

Same Subnet

yes

Additional Context

No response

@joewheatley joewheatley added the support request Technical support is required. label Sep 24, 2024
@maxileith
Copy link
Owner

That is not an issue of node.js or openssl being to old ... although openssl is really old which is somehow very common. This is why I added an openssl legacy mode which the plugin automatically activated in your case.

The problem is that when installing the python dependency miniaudio, your host needs to compile this package since it is not available as a binary for your CPU architecture ... probably ARM? To install build dependencies on a Debian system, you would install the apt package python3-dev. I am not sure how Synology DSM is handling the installation of packages so you need to figure that out for yourself.

When installing homebridge via apt, that would have been installed automatically: homebridge/homebridge-apt-pkg#16 (comment)

@maxileith
Copy link
Owner

Installing the build dependencies like I instructed in the comment above should help. If it doesn't, please reopen the issue or leave a comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
support request Technical support is required.
Projects
None yet
Development

No branches or pull requests

2 participants