View previous topic :: View next topic |
Author |
Message |
erg_samowzbudnik Apprentice
Joined: 09 Sep 2011 Posts: 228 Location: European sticks
|
Posted: Mon Oct 07, 2024 7:38 am Post subject: Translating Debian packages to Gentoo |
|
|
Hi All,
I have Oak-D Lite device I'd like to use on Gentoo:
https://docs.luxonis.com/hardware/products/OAK-D%20Lite
Link to dependencies:
https://raw.githubusercontent.com/luxonis/depthai-python/refs/heads/main/docs/install_dependencies.sh
I would like to write an ebuild once I get it to a working state manually but I think I might have not installed all dependencies yet.
Could use help translating those debian packages from the script above to Gentoo packages.
I've set up a python venv environment, installed depthai_viewer with pip but I'm getting an error:
(got to use python 3.12 as dependency apache-arrow is not 3.13 ready)
$ python3.12 -m depthai_viewer
[2024-10-07T07:19:00Z ERROR eframe::native::run] Exiting because of error: Wgpu(NoSuitableAdapterFound) on event Resumed
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/erg/Oak-D_Lite/lib/python3.12/site-packages/depthai_viewer/__main__.py", line 31, in <module>
main()
File "/home/erg/Oak-D_Lite/lib/python3.12/site-packages/depthai_viewer/__main__.py", line 27, in main
sys.exit(bindings.main(sys.argv, python_exe, site_packages_directory))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: WGPU error: Failed to create wgpu adapter, no suitable adapter found. -> Failed to create wgpu adapter, no suitable adapter found.
Any advice on how to approach this beyond translating packages to Gentoo ones would be super helpful. |
|
Back to top |
|
|
Banana Moderator
Joined: 21 May 2004 Posts: 1798 Location: Germany
|
|
Back to top |
|
|
GDH-gentoo Veteran
Joined: 20 Jul 2019 Posts: 1777 Location: South America
|
Posted: Tue Oct 08, 2024 2:07 am Post subject: Re: Translating Debian packages to Gentoo |
|
|
Let's see. As far as I can tell from https://packages.debian.org:
Code: | python3
python3-dev |
Those are dev-lang/python on Gentoo, which you will have because of Portage
Code: | python3-pip
udev
cmake
git
python3-numpy
pkg-config
libjpeg-dev
libpng-dev
libtiff-dev
libsm6
libxext6
qtchooser |
Those are, in order, dev-python/pip, sys-apps/systemd-utils[udev] (i. e. installed with the udev USE flag set) on Gentoo with OpenRC or sys-apps/systemd on Gentoo with systemd, dev-build/cmake, dev-vcs/git, dev-python/numpy, dev-util/pkgconf (but ebuilds should specify virtual/pkg-config), media-libs/libjpeg-turbo, media-libs/libpng, media-libs/tiff, x11-libs/libSM, x11-libs/libXext and dev-qt/qtchooser.
That is x11-libs/gtk+:2, i. e. the slot 2 package.
Code: | libavcodec-dev
libavformat-dev
libswscale-dev
ffmpeg |
Those are media-video/ffmpeg.
Code: | libtbb-dev
libtbbmalloc2 |
Those are dev-cpp/tbb.
Code: | python3-pyqt5
python3-pyqt5.qtquick |
Those are dev-python/PyQt5[declarative], i. e. installed with the declarative USE flag set.
Code: | qtdeclarative5-dev
qml-module-qtquick2
qml-module-qtquick-layouts
qml-module-qtquick-window2 |
Those are dev-qt/qtdeclarative:5, i. e. the slot 5 package.
Code: | qtbase5-dev
qt5-qmake
qtbase5-dev-tools |
Those are dev-qt/qtcore.
Code: | qml-module-qtquick-controls2
qml-module-qt-labs-platform |
Those are dev-qt/qtquickcontrols2.
Code: | libdc1394-dev
libgl1-mesa-dev |
And those are, in order, media-libs/libdc1394 and media-libs/mesa.
This thread probably belongs in "Unsupported Software". _________________
NeddySeagoon wrote: | I'm not a witch, I'm a retired electronics engineer |
Ionen wrote: | As a packager I just don't want things to get messier with weird build systems and multiple toolchains requirements though |
Last edited by GDH-gentoo on Tue Oct 08, 2024 12:57 pm; edited 1 time in total |
|
Back to top |
|
|
Banana Moderator
Joined: 21 May 2004 Posts: 1798 Location: Germany
|
|
Back to top |
|
|
erg_samowzbudnik Apprentice
Joined: 09 Sep 2011 Posts: 228 Location: European sticks
|
Posted: Tue Oct 08, 2024 8:40 am Post subject: |
|
|
@GDH-gentoo: Who are you, really?!? I feel so small now
This is super helpful, thank you so much! Exactly what I needed to get me started.
This is going to be slow going due to life, I'll come back with more questions once I hit another wall. |
|
Back to top |
|
|
erg_samowzbudnik Apprentice
Joined: 09 Sep 2011 Posts: 228 Location: European sticks
|
Posted: Wed Oct 09, 2024 8:01 am Post subject: |
|
|
This is how my ebuild looks right now:
Code: | # Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python{3_10,3_11,3_12} )
inherit distutils-r1
inherit pypi
DESCRIPTION="depthai machine vision python package."
HOMEPAGE="https://github.com/luxonis"
COMMIT="00ca3534d2e92af2b8e3aff9a8e5bc96b6bb1993"
WORKDIR="${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work"
SRC_URI="https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/depthai/depthai-0.0.2.1+${COMMIT}.tar.gz"
S="${WORKDIR}/${PF}+${COMMIT}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
dev-build/cmake
dev-cpp/tbb
dev-lang/python
dev-vcs/git
dev-python/numpy
dev-python/PyQt5[declarative,gui,network]
dev-qt/qtchooser
dev-qt/qtcore
dev-qt/qtdeclarative:5
dev-qt/qtquickcontrols2
dev-util/pkgconf
media-libs/libdc1394
media-libs/libjpeg-turbo
media-libs/libpng
media-libs/mesa
media-libs/tiff
media-video/ffmpeg
sys-apps/systemd-utils[udev]
x11-libs/gtk+:2
x11-libs/libSM
x11-libs/libXext
" |
emerge fails with:
[edited for brevity]
Code: |
(...)
CMake Warning (dev) at /usr/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1284 (message):
The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
not set. The policy's OLD behavior will be used. When using a URL
download, the timestamps of extracted files should preferably be that of
the time of extraction, otherwise code that depends on the extracted
contents might not be rebuilt if the URL changes. The OLD behavior
preserves the timestamps from the archive instead, but this is usually not
what you want. Update your project to the NEW behavior or specify the
DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
robustness issue.
Call Stack (most recent call first):
/usr/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
CMakeLists.txt:4 (ExternalProject_Add)
This warning is for project developers. Use -Wno-dev to suppress it.
-- [hunter] Initializing Hunter workspace (062a19ab13ce8dffa9a882b6ce3e43bdabdf75d3)
-- [hunter] https://github.com/cpp-pm/hunter/archive/v0.23.258.tar.gz
-- [hunter] -> /var/tmp/portage/dev-python/depthai-0.0.2.1/homedir/.hunter/_Base/Download/Hunter/0.23.258/062a19a
CMake Error at Build/Hunter-prefix/src/Hunter-stamp/download-Hunter.cmake:163 (message):
Each download failed!
error: downloading 'https://github.com/cpp-pm/hunter/archive/v0.23.258.tar.gz' failed
status_code: 6
status_string: "Could not resolve hostname"
log:
--- LOG BEGIN ---
Could not resolve host: github.com
Could not resolve host: github.com
closing connection #0
--- LOG END ---
error: downloading 'https://github.com/cpp-pm/hunter/archive/v0.23.258.tar.gz' failed
status_code: 6
status_string: "Could not resolve hostname"
log:
--- LOG BEGIN ---
Could not resolve host: github.com
Could not resolve host: github.com
closing connection #0
(...)
|
I can download file manually.
Tried unpacking it in /var/tmp/portage/dev-python/depthai-0.0.2.1/homedir/.hunter/_Base/Download/Hunter/0.23.258/062a19a/Unpacked
Didn't help. |
|
Back to top |
|
|
nicop Tux's lil' helper
Joined: 10 Apr 2014 Posts: 103
|
Posted: Wed Oct 09, 2024 10:55 am Post subject: |
|
|
For fail with github.com, try this solution : disable adns USE on net-misc/curl
EDIT : I think I have solved this with a change in nsswitch.conf but I don’t remember what ... |
|
Back to top |
|
|
Chiitoo Administrator
Joined: 28 Feb 2010 Posts: 2740 Location: Here and Away Again
|
Posted: Wed Oct 09, 2024 11:12 am Post subject: |
|
|
From a quick look, since the message is from CMake, it seems like the build is trying to download things from the internet (not good).
Such attempts will fail due to the sandbox the ebuild functions are being run in.
Usually this is a problem with tests, since there are many that require network access, but sometimes there are these "fun" things people do with build systems...
All the things required should be downloaded when fetching the sources. _________________ Kindest of regardses. |
|
Back to top |
|
|
erg_samowzbudnik Apprentice
Joined: 09 Sep 2011 Posts: 228 Location: European sticks
|
Posted: Wed Oct 09, 2024 12:13 pm Post subject: |
|
|
@nicop: gave it a shot, no luck
@Chiitoo: I see, this seems like that road ends here then as I do not think I can convince maintainers to change their packaging.
Unless there's a way I do not see here, back to running a docker image it is. Sad. |
|
Back to top |
|
|
GDH-gentoo Veteran
Joined: 20 Jul 2019 Posts: 1777 Location: South America
|
Posted: Wed Oct 09, 2024 1:11 pm Post subject: |
|
|
Have you tried a manual build first before going the ebuild route? Not a manual installation, just a manual build. This exercise should give you an idea about the way this build system works. _________________
NeddySeagoon wrote: | I'm not a witch, I'm a retired electronics engineer |
Ionen wrote: | As a packager I just don't want things to get messier with weird build systems and multiple toolchains requirements though |
|
|
Back to top |
|
|
erg_samowzbudnik Apprentice
Joined: 09 Sep 2011 Posts: 228 Location: European sticks
|
Posted: Wed Oct 09, 2024 1:47 pm Post subject: |
|
|
@GDH-gentoo: I have tried that now. It happily downloads a ton of stuff from github and luxonis website and proceeds a lot further before crashing with:
Code: | -- Found PythonInterp: /usr/bin/python (found version "3.13")
CMake Error at tools/FindPythonLibsNew.cmake:133 (message):
Python config failure:
Traceback (most recent call last):
File "<string>", line 1, in <module>
from distutils import sysconfig as s;import sys;import struct;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'distutils' |
(I do have dev-python/distutils installed, thought this provides distutils now.)
Looks like there are a lot of bodies buried here :/ |
|
Back to top |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22865
|
Posted: Thu Oct 10, 2024 7:39 pm Post subject: |
|
|
As Chiitoo said, build systems should not do this.
For your distutils failure, I do not see dev-python/distutils in the main tree. Is this an overlay package? |
|
Back to top |
|
|
GDH-gentoo Veteran
Joined: 20 Jul 2019 Posts: 1777 Location: South America
|
Posted: Thu Oct 10, 2024 9:38 pm Post subject: |
|
|
The distutils module has been deprecated since Python 3.10, and removed fron Python 3.12. The recommended replacement for module distutils.sysconfig, which is what this code is trying to import, is the sysconfig module, so it looks like patching is going to be needed for working with recent versions of Python. _________________
NeddySeagoon wrote: | I'm not a witch, I'm a retired electronics engineer |
Ionen wrote: | As a packager I just don't want things to get messier with weird build systems and multiple toolchains requirements though |
|
|
Back to top |
|
|
|