Skip to content
Closed
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
2dbd69c
Fix fedora docker build (#517)
mholowni Jan 9, 2026
330de18
Add workflow for building DL Streamer from source
dmichalo Jan 8, 2026
6f67c1b
Refactor OpenVINO and DL Streamer env setup in CI
dmichalo Jan 8, 2026
5f53568
Use DLS_REL_PATH env var in build environment setup
dmichalo Jan 8, 2026
4e08ccd
Update DL Streamer plugin verification steps
dmichalo Jan 8, 2026
271f049
Comment out Install Python dependencies
dmichalo Jan 8, 2026
05fad4a
Update build workflow to use self-hosted runner
dmichalo Jan 8, 2026
13aca18
Update CMake scripts and docs for dependency builds
dmichalo Jan 9, 2026
cac3d18
Remove duplicate libopencv-dev from package list
dmichalo Jan 9, 2026
058127b
Add OpenVINO GenAI installation to CI workflow
dmichalo Jan 9, 2026
b78e040
Revert "Add OpenCV calib3d module to CMake dependencies"
dmichalo Jan 9, 2026
b5774db
Add OpenCV calib3d module to CMake find_package
dmichalo Jan 9, 2026
131cfcd
Use matrix OS for build job runner
dmichalo Jan 9, 2026
5572621
Add Ubuntu version-specific OpenVINO GenAI install
dmichalo Jan 12, 2026
45fd0dd
Merge branch 'main' into dmichalo_AddMakeBuildTesting
dmichalo Jan 12, 2026
3843499
Fixes for yamllint,hadolint action and license headers. (#521)
nszczygl9 Jan 12, 2026
e6fc478
Replace curl with wget for OpenVINO GenAI install
dmichalo Jan 12, 2026
2f0fef1
Unify OS matrix and remove curl from build dependencies
dmichalo Jan 12, 2026
b5ea602
Add OpenCV calib3d module to dependencies
dmichalo Jan 12, 2026
fd99f30
Fix fedora docker build (#517)
mholowni Jan 9, 2026
ab45533
Add workflow for building DL Streamer from source
dmichalo Jan 8, 2026
0f9319d
Refactor OpenVINO and DL Streamer env setup in CI
dmichalo Jan 8, 2026
a9acdc3
Use DLS_REL_PATH env var in build environment setup
dmichalo Jan 8, 2026
b20f3b7
Update DL Streamer plugin verification steps
dmichalo Jan 8, 2026
cdd8339
Comment out Install Python dependencies
dmichalo Jan 8, 2026
3e39f04
Update build workflow to use self-hosted runner
dmichalo Jan 8, 2026
d8f4323
Update CMake scripts and docs for dependency builds
dmichalo Jan 9, 2026
70aef07
Remove duplicate libopencv-dev from package list
dmichalo Jan 9, 2026
6c7227d
Add OpenVINO GenAI installation to CI workflow
dmichalo Jan 9, 2026
7a80165
Revert "Add OpenCV calib3d module to CMake dependencies"
dmichalo Jan 9, 2026
6eeced6
Add OpenCV calib3d module to CMake find_package
dmichalo Jan 9, 2026
c0a7e5a
Use matrix OS for build job runner
dmichalo Jan 9, 2026
d47d509
Add Ubuntu version-specific OpenVINO GenAI install
dmichalo Jan 12, 2026
6adbcf4
Replace curl with wget for OpenVINO GenAI install
dmichalo Jan 12, 2026
0b2e8ae
Unify OS matrix and remove curl from build dependencies
dmichalo Jan 12, 2026
682bedc
Add OpenCV calib3d module to dependencies
dmichalo Jan 12, 2026
4fe0127
Merge branch 'dmichalo_AddMakeBuildTesting' of https://github.com/ope…
dmichalo Jan 12, 2026
8befa5b
Refactor and streamline CI workflows and yamllint action
dmichalo Jan 12, 2026
962c150
Remove trailing whitespace in shellcheck action
dmichalo Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 178 additions & 0 deletions .github/workflows/dls-build-sources-make-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
name: "[DLS] [U22/24] Build from sources using make build"
run-name: "[DLS] [U22/24] Build from sources using make build (by ${{ github.actor }})"
on:
workflow_call:
workflow_dispatch:

permissions: {}
env:
dlstreamer-version: "2025.2.0"
DLS_REL_PATH: "./dlstreamer-repo"

jobs:
build:
name: "Build from sources using make build on ${{ matrix.ubuntu_version }}"
runs-on: ${{ matrix.os }}
permissions:
contents: read
packages: read
strategy:
fail-fast: false
matrix:
include:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need 2 similar variables? i think we can only use "os"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One is used for runs-on, the second for printing in logs etc.
Technically, there can be only one.

- os: ubuntu-22.04
ubuntu_version: ubuntu22
- os: ubuntu-24.04
ubuntu_version: ubuntu24
steps:
- name: Initial environment clean
run: |
sudo rm -rf dlstreamer-repo
- name: Check out dlstreamer repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 #5.0.0
with:
persist-credentials: false
path: dlstreamer-repo

- name: Init submodules
run: |
cd dlstreamer-repo
git submodule update --init thirdparty/spdlog
# ======================================================== BUILDING PART ========================================================
- name: Install prerequisites
run: |
cd ${{ env.DLS_REL_PATH }}/scripts
./DLS_install_prerequisites.sh
- name: Install build dependencies
run: |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional: maybe it's good idea to make a script similar to DLS_install_prerequisites.sh, for example DLS_install_build_dependecies.sh

echo "Installing build dependencies for ${{ matrix.ubuntu_version }}"
if [[ ${{ matrix.ubuntu_version }} == "ubuntu22" ]]; then
echo "Executing Ubuntu 22.04 specific setup..."
sudo apt-get update && \
sudo apt-get install -y wget curl vainfo xz-utils python3-pip python3-gi gcc-multilib libglib2.0-dev \
flex bison autoconf automake libtool libogg-dev make g++ libva-dev yasm libglx-dev libdrm-dev \
python-gi-dev python3-dev unzip libgflags-dev \
libgirepository1.0-dev libx265-dev libx264-dev libde265-dev gudev-1.0 libusb-1.0 nasm python3-venv \
libcairo2-dev libxt-dev libgirepository1.0-dev libgles2-mesa-dev wayland-protocols libcurl4-openssl-dev \
libssh2-1-dev cmake git valgrind numactl libvpx-dev libopus-dev libsrtp2-dev libxv-dev \
linux-libc-dev libpmix2 libhwloc15 libhwloc-plugins libxcb1-dev libx11-xcb-dev \
ffmpeg libpaho-mqtt-dev libpostproc-dev libavfilter-dev libavdevice-dev \
libswscale-dev libswresample-dev libavutil-dev libavformat-dev libavcodec-dev libxml2-dev ocl-icd-opencl-dev \
opencl-headers
elif [[ ${{ matrix.ubuntu_version }} == "ubuntu24" ]]; then
echo "Executing Ubuntu 24.04 specific setup..."
sudo apt-get update && \
sudo apt-get install -y wget curl vainfo xz-utils python3-pip python3-gi gcc-multilib libglib2.0-dev \
flex bison autoconf automake libtool libogg-dev make g++ libva-dev yasm libglx-dev libdrm-dev \
python-gi-dev python3-dev unzip libgflags-dev libcurl4-openssl-dev \
libgirepository1.0-dev libx265-dev libx264-dev libde265-dev gudev-1.0 libusb-1.0 nasm python3-venv \
libcairo2-dev libxt-dev libgirepository1.0-dev libgles2-mesa-dev wayland-protocols \
libssh2-1-dev cmake git valgrind numactl libvpx-dev libopus-dev libsrtp2-dev libxv-dev \
linux-libc-dev libpmix2t64 libhwloc15 libhwloc-plugins libxcb1-dev libx11-xcb-dev \
ffmpeg libpaho-mqtt-dev libopencv-dev libpostproc-dev libavfilter-dev libavdevice-dev \
libswscale-dev libswresample-dev libavutil-dev libavformat-dev libavcodec-dev libtbb12 libxml2-dev \
ocl-icd-opencl-dev
else
echo "Unknown Ubuntu version: ${{ matrix.ubuntu_version }}"
exit 1
fi
- name: Set up a Python environment
run: |
python3 -m venv ~/python3venv
source ~/python3venv/bin/activate
pip install --upgrade pip==24.0
pip install meson==1.4.1 ninja==1.11.1.1
- name: Install OpenVINO
run: |
cd ${{ env.DLS_REL_PATH }}
echo "Installing OpenVINO..."
sudo ./scripts/install_dependencies/install_openvino.sh
echo " "
echo "Installing OpenVINO dependencies..."
sudo -E /opt/intel/openvino_2025/install_dependencies/install_openvino_dependencies.sh
- name: Install OpenVINO GenAI
run: |
cd ${{ env.DLS_REL_PATH }}
echo "Installing OpenVINO GenAI for ${{ matrix.ubuntu_version }}..."
if [[ ${{ matrix.ubuntu_version }} == "ubuntu22" ]]; then
echo "Executing Ubuntu 22.04 specific setup..."
curl -L https://storage.openvinotoolkit.org/repositories/openvino_genai/packages/2025.4/linux/openvino_genai_ubuntu22_2025.4.0.0_x86_64.tar.gz | tar -xz
mv openvino_genai_ubuntu22_2025.4.0.0_x86_64 /opt/intel/openvino_genai
source /opt/intel/openvino_genai/setupvars.sh
elif [[ ${{ matrix.ubuntu_version }} == "ubuntu24" ]]; then
echo "Executing Ubuntu 24.04 specific setup..."
curl -L https://storage.openvinotoolkit.org/repositories/openvino_genai/packages/2025.4/linux/openvino_genai_ubuntu24_2025.4.0.0_x86_64.tar.gz | tar -xz
sudo mv openvino_genai_ubuntu24_2025.4.0.0_x86_64 /opt/intel/openvino_genai
source /opt/intel/openvino_genai/setupvars.sh
else
echo "Unknown Ubuntu version: ${{ matrix.ubuntu_version }}"
exit 1
fi
- name: Build DL Streamer using make build
run: |
echo "Activating Python virtual environment..."
source ~/python3venv/bin/activate
cd ${{ env.DLS_REL_PATH }}
echo " "
echo "Sourcing OpenVINO environment..."
source /opt/intel/openvino_2025/setupvars.sh
echo " "
echo "Sourcing OpenVINO GenAI environment..."
source /opt/intel/openvino_genai/setupvars.sh
echo " "
echo "Building DL Streamer using make build..."
make build
- name: Install DL Streamer
run: |
cd ${{ env.DLS_REL_PATH }}
sudo -E make install
- name: Install Python dependencies
run: |
sudo apt-get install -y -q --no-install-recommends gcc cmake python3-full python-gi-dev python3-dev python3-pip \
libglib2.0-dev libcairo2-dev libopencv-objdetect-dev libopencv-photo-dev libopencv-stitching-dev libopencv-video-dev \
libopencv-calib3d-dev libopencv-core-dev libopencv-dnn-dev libgirepository1.0-dev
source ~/python3venv/bin/activate
cd ${{ env.DLS_REL_PATH }}
python3 -m pip install -r requirements.txt
- name: Verify DL Streamer installation
run: |
echo "Setting up DL Streamer environment..."
export LIBVA_DRIVER_NAME=iHD
export GST_PLUGIN_PATH="/opt/intel/dlstreamer/Release/lib:/opt/intel/dlstreamer/gstreamer/lib/gstreamer-1.0:$GST_PLUGIN_PATH"
export LD_LIBRARY_PATH="/opt/intel/dlstreamer/Release/lib:/opt/intel/dlstreamer/gstreamer/lib:/opt/intel/dlstreamer/opencv/lib:/opt/intel/dlstreamer/rdkafka/lib:$LD_LIBRARY_PATH"
export LIBVA_DRIVERS_PATH="/usr/lib/x86_64-linux-gnu/dri"
export GST_VA_ALL_DRIVERS="1"
export PATH="/opt/intel/dlstreamer/Release/bin:/opt/intel/dlstreamer/gstreamer/bin:/opt/intel/dlstreamer/opencv/bin:$HOME/.local/bin:$HOME/python3venv/bin:$PATH"
export PKG_CONFIG_PATH="/opt/intel/dlstreamer/Release/lib/pkgconfig:/opt/intel/dlstreamer/gstreamer/lib/pkgconfig:$PKG_CONFIG_PATH"
export GST_PLUGIN_FEATURE_RANK=${GST_PLUGIN_FEATURE_RANK},ximagesink:MAX
export GI_TYPELIB_PATH="/opt/intel/dlstreamer/gstreamer/lib/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0gi"
export PYTHONPATH="/opt/intel/dlstreamer/gstreamer/lib/python3/dist-packages:/opt/intel/dlstreamer/python:/opt/intel/dlstreamer/gstreamer/lib/python3/dist-packages:$PYTHONPATH"
source ~/python3venv/bin/activate
echo "Verifying DL Streamer installation..."
gst-inspect-1.0 | grep gva
gst-inspect-1.0 gvadetect
gst-inspect-1.0 gvawatermark3d
gst-inspect-1.0 gvapython
gst-inspect-1.0 gvamotiondetect
gst-inspect-1.0 gvafpscounter
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you extend list about gvagenai as well ?

# ======================================================== CLEANUP PART ========================================================
- name: Clean up
if: always()
run: |
rm -rf ~/python3venv
sudo rm -rf ${{ env.DLS_REL_PATH }}
7 changes: 7 additions & 0 deletions .github/workflows/dls-pr-workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,13 @@ jobs:
report_suffix: dlstreamer

# -------------------------------------------------------- BUILDS & TESTS ---------------------------------------------------------
dls-build-sources-make-build:
permissions:
contents: read
packages: read
name: "DLS BUILD: make build"
uses: ./.github/workflows/dls-build-sources-make-build.yaml

dls-build-dev-images-and-run-unit-tests:
permissions:
contents: read
Expand Down
17 changes: 10 additions & 7 deletions dependencies/opencv.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,34 @@ include(ExternalProject)
set(DESIRED_VERSION 4.12.0)

ExternalProject_Add(
opencv-contrib
PREFIX ${CMAKE_BINARY_DIR}/opencv-contrib
opencv_contrib
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only naming convention alignment

PREFIX ${CMAKE_BINARY_DIR}/opencv_contrib
URL https://github.com/opencv/opencv_contrib/archive/${DESIRED_VERSION}.zip
URL_MD5 2eecff53ebd74f6291108247d365cb61
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eliminates warnigns

CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)

ExternalProject_Get_Property(opencv-contrib SOURCE_DIR)
ExternalProject_Get_Property(opencv_contrib SOURCE_DIR)
ExternalProject_Add(
opencv
PREFIX ${CMAKE_BINARY_DIR}/opencv
URL https://github.com/opencv/opencv/archive/${DESIRED_VERSION}.zip
URL_MD5 6bc2ed099ff31451242f37a5f2dac0cf
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
CMAKE_GENERATOR Ninja
TEST_COMMAND ""
CMAKE_ARGS -DBUILD_TESTS=OFF
INSTALL_COMMAND ninja install
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing INSTALL_COMMAND

CMAKE_ARGS -DBUILD_TESTS=OFF
-DCMAKE_BUILD_TYPE=Release
-DOPENCV_GENERATE_PKGCONFIG=ON
-DBUILD_SHARED_LIBS=ON
-DBUILD_PERF_TESTS=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_opencv_apps=OFF
-DBUILD_PERF_TESTS=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_opencv_apps=OFF
-DOPENCV_EXTRA_MODULES_PATH=${SOURCE_DIR}/modules
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/opencv-bin
-DWITH_VA=ON
Expand Down
3 changes: 2 additions & 1 deletion dependencies/rdkafka.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@ ExternalProject_Add(
PREFIX ${CMAKE_BINARY_DIR}/rdkafka
URL https://github.com/edenhill/librdkafka/archive/v${DESIRED_VERSION}.tar.gz
URL_MD5 86ed3acd2f9d9046250dea654cee59a8
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eliminates warnigns

BUILD_IN_SOURCE 1
BUILD_COMMAND make
INSTALL_COMMAND make install
TEST_COMMAND ""
CONFIGURE_COMMAND ./configure
CONFIGURE_COMMAND ./configure
--prefix=${CMAKE_BINARY_DIR}/rdkafka-bin
)

Expand Down
2 changes: 1 addition & 1 deletion docker/fedora41/fedora41.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ RUN \
python3-gobject-devel python3-devel tbb gnupg2 unzip gflags-devel openssl-devel openssl-devel-engine \
gobject-introspection-devel x265-devel x264-devel libde265-devel libgudev-devel libusb1 libusb1-devel nasm python3-virtualenv \
cairo-devel cairo-gobject-devel libXt-devel mesa-libGLES-devel wayland-protocols-devel libcurl-devel which \
libssh2-devel cmake git valgrind numactl libvpx-devel opus-devel libsrtp-devel libXv-devel paho-c-devel \
libssh2-devel cmake git valgrind numactl libvpx-devel opus-devel libsrtp-devel libXv-devel paho-c-devel ocl-icd-devel \
kernel-headers pmix pmix-devel hwloc hwloc-libs hwloc-devel libxcb-devel libX11-devel libatomic intel-media-driver libsoup3 && \
dnf clean all

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ Follow the instructions in

```bash
sudo apt-get update && \
sudo apt-get install -y wget vainfo xz-utils python3-pip python3-gi gcc-multilib libglib2.0-dev \
sudo apt-get install -y wget curl vainfo xz-utils python3-pip python3-gi gcc-multilib libglib2.0-dev \
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

curl is required for OpenVINO GenAI step

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that we should change curl to wget in OpenVINO GenAI step then

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about it as well. @tbujewsk agree to change the step in documentation and new test workflow?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is already 'curl' in step 6, no change in doc needed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is used in the step 6 for GenAI. But the thing is that curl is not installed with apt. So we have to install it - it was missed in the doc. Therefore I've added it here.
But the point here is that instead of installing new tool, maybe we can use wget for GenAI as well.

flex bison autoconf automake libtool libogg-dev make g++ libva-dev yasm libglx-dev libdrm-dev \
python-gi-dev python3-dev unzip libgflags-dev libcurl4-openssl-dev \
libgirepository1.0-dev libx265-dev libx264-dev libde265-dev gudev-1.0 libusb-1.0 nasm python3-venv \
libcairo2-dev libxt-dev libgirepository1.0-dev libgles2-mesa-dev wayland-protocols \
libssh2-1-dev cmake git valgrind numactl libvpx-dev libopus-dev libsrtp2-dev libxv-dev \
linux-libc-dev libpmix2t64 libhwloc15 libhwloc-plugins libxcb1-dev libx11-xcb-dev \
ffmpeg libpaho-mqtt-dev libopencv-dev libpostproc-dev libavfilter-dev libavdevice-dev \
libswscale-dev libswresample-dev libavutil-dev libavformat-dev libavcodec-dev libtbb12 libxml2-dev libopencv-dev \
libswscale-dev libswresample-dev libavutil-dev libavformat-dev libavcodec-dev libtbb12 libxml2-dev \
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libopencv-dev was listed twice

ocl-icd-opencl-dev
```

Expand All @@ -40,7 +40,7 @@ Follow the instructions in

```bash
sudo apt-get update && \
sudo apt-get install -y wget vainfo xz-utils python3-pip python3-gi gcc-multilib libglib2.0-dev \
sudo apt-get install -y wget curl vainfo xz-utils python3-pip python3-gi gcc-multilib libglib2.0-dev \
flex bison autoconf automake libtool libogg-dev make g++ libva-dev yasm libglx-dev libdrm-dev \
python-gi-dev python3-dev unzip libgflags-dev \
libgirepository1.0-dev libx265-dev libx264-dev libde265-dev gudev-1.0 libusb-1.0 nasm python3-venv \
Expand Down
2 changes: 1 addition & 1 deletion src/monolithic/gst/elements/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

set (TARGET_NAME "elements")

find_package(OpenCV REQUIRED core imgproc)
find_package(OpenCV REQUIRED core imgproc calib3d)
find_package(PkgConfig REQUIRED)
pkg_check_modules(GSTREAMER gstreamer-1.0>=1.16 REQUIRED)
pkg_check_modules(GSTVIDEO gstreamer-video-1.0>=1.16 REQUIRED)
Expand Down
Loading