Package Details: openvino-git 2023.3.0.r875.g17bf1f6d841-1

Git Clone URL: https://aur.archlinux.org/openvino-git.git (read-only, click to copy)
Package Base: openvino-git
Description: A toolkit for developing artificial inteligence and deep learning applications (git version)
Upstream URL: https://docs.openvinotoolkit.org/
Licenses: Apache-2.0
Conflicts: intel-openvino-git, openvino
Provides: intel-openvino-git, openvino
Replaces: intel-openvino-git
Submitter: dbermond
Maintainer: dbermond
Last Packager: dbermond
Votes: 0
Popularity: 0.000000
First Submitted: 2020-12-23 22:29 (UTC)
Last Updated: 2024-03-02 20:50 (UTC)

Dependencies (23)

Required by (8)

Sources (26)

Latest Comments

1 2 Next › Last »

dbermond commented on 2024-03-06 19:25 (UTC)

@Eirikr Sorry, but I have no interest in maintaining packages for older versions of openvino. You can take a look at openvino AUR package and use the PKGBUILD from older versions. It should work, but there is a chance that some dependency version bump breaks it. Some comments regarding your PKGBUILD: 1) 'pkgdesc' should not contain the package name (should not contain 'OpenVINO is...', see pkgdesc in Arck Wiki); 2) 'pkgdesc' is too large (try to make it under 80 characters if possible, see pkgdesc in Arck Wiki); 3) versioned pkgname should not contain the exact minor/patch version, otherwise you need a new PKGBUILUD (and a new AUR package) if upstream unexpectedly bumps a lts version from 2022.3.1 to 2022.3.2 (yes, they can do it); 4) versioned pkgname should not contain hyphen between pkgname and the version (use 'openvino2022' instead of 'openvino-2022', see versioned packages in the official repositories, like gcc12); 5) 'conflicts' should not include all possible openvino packages in existence (like openvino-git), but specify only the base 'openvino' package on it (see conflicts in Arck Wiki); 6) do not rename the git clone download dir in the source array if the cloned project have an unique name like openvino, as it duplicates source files when building multiple variant packages (do not use '"${pkgname}::' for 'git+' urls, unless when needed); 7) source tarballs in github can be accessed with an url in the format 'https://github.com/<user>/<project>/archive/<tag>/<desired_filename>.tar.gz' (do not do not download tarballs from github with urls containing 'refs/tags' + file renaming, but use the mentioned url format to specify the output filename directly; 8) unless you a have a strong reason for not doing such, specify the git submodules in the source array and initialize all of them, instead of using a generic git command for submodule initialization in prepare(); 9) no need to use an extra line for 'cd' before the 'git' command, use git '-C' option; 10) no need to use an extra line to create the build directory, use cmake '-B' option for creating/specifying it; 10.1) if, for some obscure reason, you prefer to create the build directory with a separate command (and increase the line count of the PKGBUILD), do it in prepare(), not in build(); 11) no need to use an extra line for 'cd' before the cmake command, use cmake '-S' option for specifying the source directory; 12) cmake command should specify the '-G' option for the cmake generator, otherwise the user can override it with an environment variable, and this is not desirable; 13) Arch Linux packages do not use '/usr/local', and packages should never be installed to it, so never use '/usr/local' to install anything in PKGBUILDs (change the cmake install prefix from '/usr/local' to '/usr', see package etiquette in Arch Wiki; 14) use 'cmake --build build' instead of the generator (ninja) directly; 15) use 'cmake --install build' instead of the generator (ninja) directly (also, no need to 'cd' before it); 16) no need to create the library symlink in package() when the libs are not installed into the standard directory, use a 'ld.so' configuration file instead; 17) do not hardcode the python version in the install directories (since python 3.10 will not be available forever, and you will need to fix the PKGBUILD when python gets a version bump), but retrieve the current python directory information using a python command (see using python version in Arch Wiki).

Eirikr commented on 2024-03-06 08:34 (UTC) (edited on 2024-03-06 09:12 (UTC) by Eirikr)

Thank you for your openvino, openvino-git packages AND your responsiveness!!

Requesting:

1) A PKGBUILD for OpenVINO 2021.4.1 LTS (final version to support NCSDK2 and the original Neural Compute Stick Movidius Myriad X VPU (of course, still supports Neural Compute Stick 2 for mixed-device environments) https://github.com/openvinotoolkit/openvino/archive/refs/tags/2021.4.1.tar.gz - That package works in tandem with this: This package is de-listed but works w/ git clone: https://aur.archlinux.org/ncsdk.git. The version in that PKGBUILD is 2.08.01.02 but it should be v.2.10.01.01.


So if a PKGBUILD maintainer were cool with updating the PKGBUILD listed for the ncsdk2; notating its the final build for the original intel compute stick / intel movidius myriad x vpu; along with the OpenVINO 2021.4.1 LTS as a dependency (and maybe vice-versa) then "budget" AI can live on! All thanks to @dbermond!!!


2) A PKGBUILD for OpenVINO 2022.3.1 LTS which is the last version of OpenVINO to have Movidius/Neural Compute Stick 2 support. (ncsdk2 + Movidius VPU unsupported)


I suck at PKGBUILDing. But I do not like to just say "please give!" without at least trying to provide the sauce. Not sure if I have the dependencies quite right... eeeeep. Feel free obviously to start from scratch. This is just me learning and playing show-and-tell to see if I came close:

pkgname=openvino-2022.3.1
pkgver=2022.3.1
pkgrel=1
pkgdesc='OpenVINO toolkit is a comprehensive toolkit for quickly developing applications and solutions that solve a variety of tasks including emulation of human vision, automatic speech recognition, natural language processing, recommendation systems, and many others. This LTS version is the final to support NCS2 and HDDL. Original NCS Movidius Myriad X VPU deprecated.'
arch=('x86_64')
url='https://docs.openvinotoolkit.org/'
license=('Apache-2.0')
depends=('intel-media-sdk' 'intel-compute-runtime' 'intel-opencl' 'intel-level-zero-gpu' 
         'tbb' 'opencv' 'python' 'python-numpy' 'python-cython' 'libusb' 'libxml2' 'protobuf')
makedepends=('git' 'cmake' 'ninja')
provides=('openvino')
conflicts=('openvino' 'openvino-git')
source=("${pkgname}::git+https://github.com/openvinotoolkit/openvino.git#tag=${pkgver}"
        "${pkgname}-ocl::https://github.com/intel/compute-runtime/archive/refs/tags/19.41.14441.tar.gz")
sha256sums=('SKIP'
            'ab9a54da2b7c10cfd08efdeec11ee1a3433aae4d97fba1e30a52c05c4a24e96c')

prepare() {
  cd "${srcdir}/${pkgname}"
  git submodule update --init --recursive

  # Apply patch for compute runtime
  mkdir -p "${srcdir}/${pkgname}/inference-engine/thirdparty/ocl/opencl"
  tar -xf "${srcdir}/${pkgname}-ocl" -C "${srcdir}/${pkgname}/inference-engine/thirdparty/ocl/opencl" --strip-components=1
}

build() {
  cd "${srcdir}/${pkgname}"
  mkdir build && cd build

  cmake .. \
    -G Ninja \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DENABLE_INTEL_CPU=ON \
    -DENABLE_INTEL_GPU=ON \
    -DENABLE_INTEL_GNA=ON \
    -DENABLE_INTEL_MYRIAD=ON \
    -DENABLE_INTEL_HDDL=ON \
    -DENABLE_PYTHON=ON \
    -DENABLE_WHEEL=ON \
    -DTHREADING=TBB

  ninja
}

package() {
  cd "${srcdir}/${pkgname}/build"
  DESTDIR="${pkgdir}" ninja install

  install -d "${pkgdir}/usr/lib"
  ln -s /usr/local/lib/libinference_engine.so "${pkgdir}/usr/lib/libinference_engine.so"

  install -d "${pkgdir}/usr/lib/python3.10/site-packages"
  ln -s /usr/local/lib/python3.10/site-packages/openvino "${pkgdir}/usr/lib/python3.10/site-packages/openvino"
}

Finally: if anyone has a 13th/14th Gen CPU/GPU, Intel Xe or Intel Arc GPU they need to use the newest openvino. If someone has that setup with some Compute Sticks and Compute Sticks 2; then openvino or openvino-git need a fork and a patch to reintroduce VPU support. That is not easy and not exciting. So the best solution is multiple OpenVINO versions unless a diety-tier dev comes around to create a forked "openvino-vpu" with all those cool pieces re-added.

Sorry that I'm out of ideas.

This is partially been in response to person in an Arch-focused Telegram group complaining about their compute sticks not working.

dbermond commented on 2024-03-02 20:51 (UTC)

@xiota package updated. Latest upstream changes applied.

xiota commented on 2024-03-02 16:04 (UTC)

Changes needed:

  • update submodules
  • remove/update patches
  • update license string
  • remove replaces

dbermond commented on 2023-06-20 01:58 (UTC)

@xiota Package updated. Building fine.

xiota commented on 2023-05-21 14:25 (UTC)

Clean chroot. Broken patch:

patching file sources/ade/CMakeLists.txt
patching file thirdparty/CMakeLists.txt
Hunk #1 FAILED at 342.
1 out of 1 hunk FAILED -- saving rejects to file thirdparty/CMakeLists.txt.rej
==> ERROR: A failure occurred in prepare().

dbermond commented on 2023-04-02 15:23 (UTC)

@Eirikr I've pushed a fix. My guess is that this is some incompatibility with newer cmake versions. Building fine now.

Eirikr commented on 2023-04-01 22:41 (UTC) (edited on 2023-04-01 23:19 (UTC) by Eirikr)

So regardless, I still get an error:

CMake Error at /usr/share/cmake/Modules/FindOpenCL.cmake:51 (if): if given arguments:

"EXISTS" "/home/eirikr/.cache/yay/openvino/src/openvino/thirdparty/ocl/cl_headers" "/home/eirikr/.cache/yay/openvino/src/openvino/thirdparty/ocl/clhpp_headers/include/Headers/cl.h"

Unknown arguments specified Call Stack (most recent call first): /usr/share/cmake/Modules/FindOpenCL.cmake:95 (_FIND_OPENCL_VERSION) samples/cpp/benchmark_app/CMakeLists.txt:84 (find_package)

Eirikr commented on 2023-04-01 19:48 (UTC) (edited on 2023-04-01 19:51 (UTC) by Eirikr)

For the Neural Compute Stick 2 I had to add to the PKGBUILD: -DENABLE_MYRIAD:BOOL='ON' \ and -DENABLE_VPU:BOOL='ON' \