From b51a09c477e86fdbdca8eb6ef91697cef21b6560 Mon Sep 17 00:00:00 2001 From: El Date: Thu, 8 May 2025 16:59:22 +0500 Subject: [PATCH 01/10] VNC-127 Introduce TBB task arena for optimized parallel execution --- common/rfb/EncodeManager.cxx | 13 +++++++++---- common/rfb/EncodeManager.h | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/common/rfb/EncodeManager.cxx b/common/rfb/EncodeManager.cxx index 5dbf1dc..7182afc 100644 --- a/common/rfb/EncodeManager.cxx +++ b/common/rfb/EncodeManager.cxx @@ -44,6 +44,7 @@ #include #include #include +#include using namespace rfb; @@ -210,6 +211,9 @@ EncodeManager::EncodeManager(SConnection* conn_, EncCache *encCache_) : conn(con dynamicQualityMin = Server::dynamicQualityMin; dynamicQualityOff = Server::dynamicQualityMax - Server::dynamicQualityMin; } + + const auto num_cores = tbb::this_task_arena::max_concurrency() / 2; + arena.initialize(num_cores); } EncodeManager::~EncodeManager() @@ -1237,12 +1241,13 @@ void EncodeManager::writeRects(const Region& changed, const PixelBuffer* pb, } scalingTime = msSince(&scalestart); - std::for_each(std::execution::par_unseq, std::begin(indices), std::end(indices), [&](size_t i) - { - encoderTypes[i] = getEncoderType(subrects[i], pb, &palettes[i], compresseds[i], + arena.execute([&] { + tbb::parallel_for(static_cast(0), subrects_size, [&](size_t i) { + encoderTypes[i] = getEncoderType(subrects[i], pb, &palettes[i], compresseds[i], &isWebp[i], &fromCache[i], scaledpb, scaledrects[i], ms[i]); - checkWebpFallback(start); + checkWebpFallback(start); + }); }); for (uint32_t i = 0; i < subrects_size; ++i) { diff --git a/common/rfb/EncodeManager.h b/common/rfb/EncodeManager.h index 7844faa..7d6774f 100644 --- a/common/rfb/EncodeManager.h +++ b/common/rfb/EncodeManager.h @@ -32,6 +32,7 @@ #include #include +#include #include namespace rfb { @@ -167,6 +168,7 @@ namespace rfb { protected: SConnection *conn; + tbb::task_arena arena; std::vector encoders; std::vector activeEncoders; From 61f48bc7d1e0ec4425541f6a4fe9132a85661511 Mon Sep 17 00:00:00 2001 From: El Date: Thu, 8 May 2025 18:50:12 +0500 Subject: [PATCH 02/10] VNC-127 Add TBB dependency to rfb build configuration --- common/rfb/CMakeLists.txt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt index a55ea60..a5ffffc 100644 --- a/common/rfb/CMakeLists.txt +++ b/common/rfb/CMakeLists.txt @@ -85,7 +85,7 @@ set(RFB_LIBRARIES ${JPEG_LIBRARIES} ${PNG_LIBRARIES} os rdr Xregion) cmake_host_system_information(RESULT DISTRO QUERY DISTRIB_INFO) if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10) OR (DISTRO_PLATFORM_ID MATCHES "platform:el8")) - set(RFB_LIBRARIES ${RFB_LIBRARIES} tbb) + set(RFB_LIBRARIES ${RFB_LIBRARIES} tbb) endif () if (HAVE_PAM) @@ -132,7 +132,15 @@ endif () find_package(PkgConfig REQUIRED) pkg_check_modules(FFMPEG REQUIRED libavcodec libavformat libavutil libswscale) +find_package(TBB) +if (TBB_FOUND) + set(RFB_LIBRARIES ${RFB_LIBRARIES} tbb) +else () + pkg_check_modules(TBB tbb) + set(RFB_LIBRARIES ${RFB_LIBRARIES} ${TBB_LIBRARIES}) +endif () +message(STATUS ${RFB_LIBRARIES}) add_library(rfb STATIC ${RFB_SOURCES}) target_include_directories(rfb PRIVATE @@ -142,9 +150,10 @@ target_include_directories(rfb PRIVATE ${CMAKE_SOURCE_DIR}/unix/kasmvncpasswd ${CMAKE_SOURCE_DIR}/third_party/tinyxml2 ${FFMPEG_INCLUDE_DIRS} + ${TBB_INCLUDE_DIRS} ) -target_link_libraries(rfb PRIVATE ${RFB_LIBRARIES} tinyxml2_objs) +target_link_libraries(rfb PUBLIC ${RFB_LIBRARIES} tinyxml2_objs) if (UNIX) libtool_create_control_file(rfb) From 9cdf96c48664509c3a4608a5952b18e6c8f3971f Mon Sep 17 00:00:00 2001 From: El Date: Thu, 8 May 2025 19:49:23 +0500 Subject: [PATCH 03/10] VNC-127 Add script to build and test Docker containers --- builder/test_build_containers | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 builder/test_build_containers diff --git a/builder/test_build_containers b/builder/test_build_containers new file mode 100755 index 0000000..8d68072 --- /dev/null +++ b/builder/test_build_containers @@ -0,0 +1,50 @@ +#!/bin/bash + +#set -xe + +script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +current_dir="$(pwd)" + +images_list=() + +for file in "$script_dir"/dockerfile.*.build; do + if [[ "$file" == *deb* ]] || [[ "$file" == *apk* ]] || [[ "$file" == *rpm* ]] || [[ "$file" == *www* ]]; then + continue + fi + + [ -e "$file" ] || continue + + filename="$(basename "$file")" + image_name=$(echo "$filename" | sed -E 's/^(dockerfile\.|Dockerfile\.)(.*)\.build$/\2/') + + echo "Building docker image: $image_name using file: $file" + + docker build -f "$file" -t "$image_name" "$current_dir" + exit_code=$? + if [ $exit_code -ne 0 ]; then + echo "Build failed for $filename" + break + fi + + rm -rf .cmake CMakeFiles build.ninja cmake_install.cmake cmake_uninstall.cmake CMakeCache.txt config.h + + echo "Running container from image '$image_name'" + # Run the container and capture the exit code + docker run --rm -it -v "$current_dir":/src "$image_name" + exit_code=$? + + if [ $exit_code -ne 0 ]; then + echo "Container for image '$image_name' exited with error (exit code $exit_code)." + break + else + echo "Container for image '$image_name' finished successfully." + docker rmi "$image_name" + fi +done + +echo "Removing all built docker images..." +for img in "${images_list[@]}"; do + echo "Removing docker image: $img" + docker rmi "$img" +done From 79e0d6cad1140156c3bba5c408328c53fb585348 Mon Sep 17 00:00:00 2001 From: El Date: Fri, 9 May 2025 00:10:35 +0500 Subject: [PATCH 04/10] VNC-127 Prevent rebuilding existing KasmVNC images in build script. Enable error checking and update container execution logic --- builder/test_build_containers | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/builder/test_build_containers b/builder/test_build_containers index 8d68072..426770c 100755 --- a/builder/test_build_containers +++ b/builder/test_build_containers @@ -1,9 +1,8 @@ #!/bin/bash -#set -xe +#set -e script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - current_dir="$(pwd)" images_list=() @@ -18,6 +17,10 @@ for file in "$script_dir"/dockerfile.*.build; do filename="$(basename "$file")" image_name=$(echo "$filename" | sed -E 's/^(dockerfile\.|Dockerfile\.)(.*)\.build$/\2/') + if [ -e builder/build/kasmvnc."$image_name".tar.gz ]; then + continue + fi + echo "Building docker image: $image_name using file: $file" docker build -f "$file" -t "$image_name" "$current_dir" @@ -31,20 +34,21 @@ for file in "$script_dir"/dockerfile.*.build; do echo "Running container from image '$image_name'" # Run the container and capture the exit code - docker run --rm -it -v "$current_dir":/src "$image_name" + docker run -it -v "$current_dir":/src -v "$current_dir/builder/build":/build "$image_name" exit_code=$? + echo "Container for image '$image_name' " if [ $exit_code -ne 0 ]; then - echo "Container for image '$image_name' exited with error (exit code $exit_code)." + echo "exited with error (exit code $exit_code)." break else - echo "Container for image '$image_name' finished successfully." - docker rmi "$image_name" + echo "finished successfully." + images_list+=("$image_name") fi done echo "Removing all built docker images..." for img in "${images_list[@]}"; do echo "Removing docker image: $img" - docker rmi "$img" + docker rmi -f "$img" done From 0bc0875a955d77f20e9c159d2b0e1436a08f41e6 Mon Sep 17 00:00:00 2001 From: El Date: Fri, 9 May 2025 00:11:07 +0500 Subject: [PATCH 05/10] VNC-127 Add dependencies across builds --- builder/dockerfile.alpine_318.build | 1 + builder/dockerfile.alpine_319.build | 1 + builder/dockerfile.alpine_320.build | 1 + builder/dockerfile.alpine_321.build | 1 + builder/dockerfile.debian_bookworm.build | 2 +- builder/dockerfile.debian_bullseye.build | 2 +- builder/dockerfile.debian_buster.build | 2 +- builder/dockerfile.fedora_forty.build | 3 ++- builder/dockerfile.fedora_fortyone.build | 3 ++- builder/dockerfile.fedora_thirtynine.build | 3 ++- builder/dockerfile.kali_kali-rolling.build | 2 +- builder/dockerfile.opensuse_15.build | 3 ++- builder/dockerfile.oracle_8.build | 3 ++- builder/dockerfile.oracle_9.build | 3 ++- builder/dockerfile.ubuntu_jammy.build | 2 +- builder/dockerfile.ubuntu_noble.build | 2 +- 16 files changed, 22 insertions(+), 12 deletions(-) diff --git a/builder/dockerfile.alpine_318.build b/builder/dockerfile.alpine_318.build index f8620ba..b455545 100644 --- a/builder/dockerfile.alpine_318.build +++ b/builder/dockerfile.alpine_318.build @@ -43,6 +43,7 @@ RUN \ libxrandr-dev \ libxshmfence-dev \ libxtst-dev \ + libtbb-dev \ mesa-dev \ mesa-dri-gallium \ meson \ diff --git a/builder/dockerfile.alpine_319.build b/builder/dockerfile.alpine_319.build index d003855..6d963a3 100644 --- a/builder/dockerfile.alpine_319.build +++ b/builder/dockerfile.alpine_319.build @@ -43,6 +43,7 @@ RUN \ libxrandr-dev \ libxshmfence-dev \ libxtst-dev \ + libtbb-dev \ mesa-dev \ mesa-dri-gallium \ meson \ diff --git a/builder/dockerfile.alpine_320.build b/builder/dockerfile.alpine_320.build index b282e6d..74da382 100644 --- a/builder/dockerfile.alpine_320.build +++ b/builder/dockerfile.alpine_320.build @@ -43,6 +43,7 @@ RUN \ libxrandr-dev \ libxshmfence-dev \ libxtst-dev \ + libtbb-dev \ mesa-dev \ mesa-dri-gallium \ meson \ diff --git a/builder/dockerfile.alpine_321.build b/builder/dockerfile.alpine_321.build index 47a2cc7..0c983c5 100644 --- a/builder/dockerfile.alpine_321.build +++ b/builder/dockerfile.alpine_321.build @@ -43,6 +43,7 @@ RUN \ libxrandr-dev \ libxshmfence-dev \ libxtst-dev \ + libtbb-dev \ mesa-dev \ mesa-dri-gallium \ meson \ diff --git a/builder/dockerfile.debian_bookworm.build b/builder/dockerfile.debian_bookworm.build index 98034c6..5dbce8a 100644 --- a/builder/dockerfile.debian_bookworm.build +++ b/builder/dockerfile.debian_bookworm.build @@ -24,7 +24,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tz RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver curl RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev + libxcursor-dev libavformat-dev libswscale-dev libtbb-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR diff --git a/builder/dockerfile.debian_bullseye.build b/builder/dockerfile.debian_bullseye.build index d9ce288..0aedd3c 100644 --- a/builder/dockerfile.debian_bullseye.build +++ b/builder/dockerfile.debian_bullseye.build @@ -14,7 +14,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tz RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build nasm git libgnutls28-dev vim wget tightvncserver curl RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev + libxcursor-dev libavformat-dev libswscale-dev libtbb-dev RUN CMAKE_URL="https://cmake.org/files/v3.22/cmake-3.22.0" && \ ARCH=$(arch) && \ diff --git a/builder/dockerfile.debian_buster.build b/builder/dockerfile.debian_buster.build index a1e2afd..63a6c27 100644 --- a/builder/dockerfile.debian_buster.build +++ b/builder/dockerfile.debian_buster.build @@ -13,7 +13,7 @@ RUN apt-get update && \ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver curl -RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev +RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev libtbb-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR diff --git a/builder/dockerfile.fedora_forty.build b/builder/dockerfile.fedora_forty.build index 983a88f..a3e91f4 100644 --- a/builder/dockerfile.fedora_forty.build +++ b/builder/dockerfile.fedora_forty.build @@ -74,7 +74,8 @@ RUN \ xorg-x11-xtrans-devel \ xsltproc \ libavformat-free-devel \ - libswscale-free-devel + libswscale-free-devel \ + tbb-devel ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR diff --git a/builder/dockerfile.fedora_fortyone.build b/builder/dockerfile.fedora_fortyone.build index 336b064..f98b621 100644 --- a/builder/dockerfile.fedora_fortyone.build +++ b/builder/dockerfile.fedora_fortyone.build @@ -75,7 +75,8 @@ RUN \ xorg-x11-xtrans-devel \ xsltproc \ libavformat-free-devel \ - libswscale-free-devel + libswscale-free-devel \ + tbb-devel ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR diff --git a/builder/dockerfile.fedora_thirtynine.build b/builder/dockerfile.fedora_thirtynine.build index d1985de..f4200d7 100644 --- a/builder/dockerfile.fedora_thirtynine.build +++ b/builder/dockerfile.fedora_thirtynine.build @@ -74,7 +74,8 @@ RUN \ xorg-x11-xtrans-devel \ xsltproc \ libavformat-free-devel \ - libswscale-free-devel + libswscale-free-devel \ + tbb-devel ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR diff --git a/builder/dockerfile.kali_kali-rolling.build b/builder/dockerfile.kali_kali-rolling.build index 717e8f9..e3c6f99 100644 --- a/builder/dockerfile.kali_kali-rolling.build +++ b/builder/dockerfile.kali_kali-rolling.build @@ -15,7 +15,7 @@ RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install gcc g++ curl RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev + libxcursor-dev libavformat-dev libswscale-dev libtbb-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR diff --git a/builder/dockerfile.opensuse_15.build b/builder/dockerfile.opensuse_15.build index 63d9358..50596f2 100644 --- a/builder/dockerfile.opensuse_15.build +++ b/builder/dockerfile.opensuse_15.build @@ -47,7 +47,8 @@ RUN zypper install -ny \ xorg-x11-devel \ xorg-x11-server-sdk \ xorg-x11-util-devel \ - zlib-devel + zlib-devel \ + tbb-devel RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 140 \ --slave /usr/bin/g++ g++ /usr/bin/g++-14 \ diff --git a/builder/dockerfile.oracle_8.build b/builder/dockerfile.oracle_8.build index 0a9ecfe..4cdef63 100644 --- a/builder/dockerfile.oracle_8.build +++ b/builder/dockerfile.oracle_8.build @@ -32,7 +32,8 @@ RUN \ tigervnc-server \ wget \ xorg-x11-font-utils \ - zlib-devel + zlib-devel \ + tbb-devel # Enable additional repos (epel, powertools, and fusion) RUN dnf config-manager --set-enabled ol8_codeready_builder diff --git a/builder/dockerfile.oracle_9.build b/builder/dockerfile.oracle_9.build index 674e2f0..2e17589 100644 --- a/builder/dockerfile.oracle_9.build +++ b/builder/dockerfile.oracle_9.build @@ -34,7 +34,8 @@ RUN \ tigervnc-server \ wget \ xorg-x11-font-utils \ - zlib-devel + zlib-devel \ + tbb-devel # Enable additional repos (epel, powertools, and fusion) RUN dnf install -y oracle-epel-release-el9 diff --git a/builder/dockerfile.ubuntu_jammy.build b/builder/dockerfile.ubuntu_jammy.build index 11eafc7..3532bcf 100644 --- a/builder/dockerfile.ubuntu_jammy.build +++ b/builder/dockerfile.ubuntu_jammy.build @@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends tzdata RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver curl RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev + libxcursor-dev libavformat-dev libswscale-dev libtbb-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR diff --git a/builder/dockerfile.ubuntu_noble.build b/builder/dockerfile.ubuntu_noble.build index dfb796c..fde4e56 100644 --- a/builder/dockerfile.ubuntu_noble.build +++ b/builder/dockerfile.ubuntu_noble.build @@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends tzdata RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget curl RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev + libxcursor-dev libavformat-dev libswscale-dev libtbb-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR From ca6884109a465eae024ca1cc792baae241918c7e Mon Sep 17 00:00:00 2001 From: El Date: Fri, 9 May 2025 19:19:50 +0500 Subject: [PATCH 06/10] VNC-127 Set GCC 14 explicitly and adjust build script order --- builder/dockerfile.opensuse_15.build | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/builder/dockerfile.opensuse_15.build b/builder/dockerfile.opensuse_15.build index 50596f2..5a2c6fc 100644 --- a/builder/dockerfile.opensuse_15.build +++ b/builder/dockerfile.opensuse_15.build @@ -50,10 +50,6 @@ RUN zypper install -ny \ zlib-devel \ tbb-devel -RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 140 \ - --slave /usr/bin/g++ g++ /usr/bin/g++-14 \ - --slave /usr/bin/gcov gcov /usr/bin/gcov-14 - RUN useradd -u 1000 docker && \ groupadd -g 1000 docker && \ usermod -a -G docker docker @@ -72,8 +68,11 @@ RUN ARCH=$(arch) && \ rm cmake.sh ENV SCRIPTS_DIR=/tmp/scripts +ENV CC=/usr/bin/gcc-14 +ENV CXX=/usr/bin/g++-14 + COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp && $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-libjpeg-turbo && $SCRIPTS_DIR/build-webp COPY --chown=docker:docker . /src/ From b691b34da26b74103bc57cde40be4a624eb1b31d Mon Sep 17 00:00:00 2001 From: El Date: Fri, 9 May 2025 19:20:31 +0500 Subject: [PATCH 07/10] VNC-127 Add libtbb-dev to build dependencies in Dockerfiles --- builder/dockerfile.debian_bookworm.deb.build | 2 +- builder/dockerfile.debian_bullseye.deb.build | 2 +- builder/dockerfile.kali_kali-rolling.deb.build | 2 +- builder/dockerfile.opensuse_15.build | 1 - builder/dockerfile.ubuntu_jammy.deb.build | 2 +- builder/dockerfile.ubuntu_noble.deb.build | 2 +- 6 files changed, 5 insertions(+), 6 deletions(-) diff --git a/builder/dockerfile.debian_bookworm.deb.build b/builder/dockerfile.debian_bookworm.deb.build index 2e61fbb..e585412 100644 --- a/builder/dockerfile.debian_bookworm.deb.build +++ b/builder/dockerfile.debian_bookworm.deb.build @@ -3,7 +3,7 @@ FROM debian:bookworm ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs + apt-get -y install vim build-essential devscripts equivs libtbb-dev # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.debian_bullseye.deb.build b/builder/dockerfile.debian_bullseye.deb.build index 51bde4f..f5bcc13 100644 --- a/builder/dockerfile.debian_bullseye.deb.build +++ b/builder/dockerfile.debian_bullseye.deb.build @@ -3,7 +3,7 @@ FROM debian:bullseye ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs + apt-get -y install vim build-essential devscripts equivs libtbb-dev # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.kali_kali-rolling.deb.build b/builder/dockerfile.kali_kali-rolling.deb.build index 6d0ed1b..6f9bd9a 100644 --- a/builder/dockerfile.kali_kali-rolling.deb.build +++ b/builder/dockerfile.kali_kali-rolling.deb.build @@ -3,7 +3,7 @@ FROM kalilinux/kali-rolling:latest ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs + apt-get -y install vim build-essential devscripts equivs libtbb-dev # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.opensuse_15.build b/builder/dockerfile.opensuse_15.build index 5a2c6fc..5b3b0ee 100644 --- a/builder/dockerfile.opensuse_15.build +++ b/builder/dockerfile.opensuse_15.build @@ -9,7 +9,6 @@ RUN zypper install -ny \ bdftopcf \ bigreqsproto-devel \ ninja \ - cmake \ nasm \ curl \ ffmpeg-4-libavcodec-devel \ diff --git a/builder/dockerfile.ubuntu_jammy.deb.build b/builder/dockerfile.ubuntu_jammy.deb.build index 31dee99..e4e6fdd 100644 --- a/builder/dockerfile.ubuntu_jammy.deb.build +++ b/builder/dockerfile.ubuntu_jammy.deb.build @@ -3,7 +3,7 @@ FROM ubuntu:jammy ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs + apt-get -y install vim build-essential devscripts equivs libtbb-dev # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.ubuntu_noble.deb.build b/builder/dockerfile.ubuntu_noble.deb.build index 6a56b24..d2f2987 100644 --- a/builder/dockerfile.ubuntu_noble.deb.build +++ b/builder/dockerfile.ubuntu_noble.deb.build @@ -3,7 +3,7 @@ FROM ubuntu:noble ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs + apt-get -y install vim build-essential devscripts equivs libtbb-dev # Install build-deps for the package. COPY ./debian/control /tmp From d144f5a5e06ae24aff735514948fd56a752d9759 Mon Sep 17 00:00:00 2001 From: El Date: Sat, 10 May 2025 04:57:38 +0500 Subject: [PATCH 08/10] VNC-127 Replace individual script runs with unified build-deps.sh --- builder/dockerfile.alpine_318.build | 4 +-- builder/dockerfile.alpine_319.build | 4 +-- builder/dockerfile.alpine_320.build | 4 +-- builder/dockerfile.alpine_321.build | 4 +-- builder/dockerfile.debian_bookworm.build | 5 ++-- builder/dockerfile.debian_bookworm.deb.build | 2 +- builder/dockerfile.debian_bullseye.build | 5 ++-- builder/dockerfile.debian_bullseye.deb.build | 2 +- builder/dockerfile.debian_buster.build | 5 ++-- builder/dockerfile.fedora_forty.build | 6 ++--- builder/dockerfile.fedora_fortyone.build | 6 ++--- builder/dockerfile.fedora_thirtynine.build | 6 ++--- builder/dockerfile.kali_kali-rolling.build | 5 ++-- .../dockerfile.kali_kali-rolling.deb.build | 2 +- builder/dockerfile.opensuse_15.build | 5 ++-- builder/dockerfile.oracle_8.build | 8 +++--- builder/dockerfile.oracle_9.build | 5 ++-- builder/dockerfile.ubuntu_focal.build | 5 ++-- builder/dockerfile.ubuntu_focal.deb.build | 2 +- builder/dockerfile.ubuntu_jammy.build | 5 ++-- builder/dockerfile.ubuntu_jammy.deb.build | 2 +- builder/dockerfile.ubuntu_jammy.dev | 10 +++----- builder/dockerfile.ubuntu_noble.build | 5 ++-- builder/dockerfile.ubuntu_noble.deb.build | 2 +- builder/scripts/build-deps.sh | 8 ++++++ builder/scripts/build-tbb | 25 +++++++++++++++++++ 26 files changed, 74 insertions(+), 68 deletions(-) create mode 100755 builder/scripts/build-deps.sh create mode 100755 builder/scripts/build-tbb diff --git a/builder/dockerfile.alpine_318.build b/builder/dockerfile.alpine_318.build index b455545..f4d3bdf 100644 --- a/builder/dockerfile.alpine_318.build +++ b/builder/dockerfile.alpine_318.build @@ -43,7 +43,6 @@ RUN \ libxrandr-dev \ libxshmfence-dev \ libxtst-dev \ - libtbb-dev \ mesa-dev \ mesa-dri-gallium \ meson \ @@ -74,8 +73,7 @@ RUN \ ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd diff --git a/builder/dockerfile.alpine_319.build b/builder/dockerfile.alpine_319.build index 6d963a3..67a8951 100644 --- a/builder/dockerfile.alpine_319.build +++ b/builder/dockerfile.alpine_319.build @@ -43,7 +43,6 @@ RUN \ libxrandr-dev \ libxshmfence-dev \ libxtst-dev \ - libtbb-dev \ mesa-dev \ mesa-dri-gallium \ meson \ @@ -74,8 +73,7 @@ RUN \ ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd diff --git a/builder/dockerfile.alpine_320.build b/builder/dockerfile.alpine_320.build index 74da382..cf4e697 100644 --- a/builder/dockerfile.alpine_320.build +++ b/builder/dockerfile.alpine_320.build @@ -43,7 +43,6 @@ RUN \ libxrandr-dev \ libxshmfence-dev \ libxtst-dev \ - libtbb-dev \ mesa-dev \ mesa-dri-gallium \ meson \ @@ -74,8 +73,7 @@ RUN \ ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd diff --git a/builder/dockerfile.alpine_321.build b/builder/dockerfile.alpine_321.build index 0c983c5..80972ad 100644 --- a/builder/dockerfile.alpine_321.build +++ b/builder/dockerfile.alpine_321.build @@ -43,7 +43,6 @@ RUN \ libxrandr-dev \ libxshmfence-dev \ libxtst-dev \ - libtbb-dev \ mesa-dev \ mesa-dri-gallium \ meson \ @@ -74,8 +73,7 @@ RUN \ ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd diff --git a/builder/dockerfile.debian_bookworm.build b/builder/dockerfile.debian_bookworm.build index 5dbce8a..bda5926 100644 --- a/builder/dockerfile.debian_bookworm.build +++ b/builder/dockerfile.debian_bookworm.build @@ -24,12 +24,11 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tz RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver curl RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev libtbb-dev + libxcursor-dev libavformat-dev libswscale-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo diff --git a/builder/dockerfile.debian_bookworm.deb.build b/builder/dockerfile.debian_bookworm.deb.build index e585412..2e61fbb 100644 --- a/builder/dockerfile.debian_bookworm.deb.build +++ b/builder/dockerfile.debian_bookworm.deb.build @@ -3,7 +3,7 @@ FROM debian:bookworm ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs libtbb-dev + apt-get -y install vim build-essential devscripts equivs # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.debian_bullseye.build b/builder/dockerfile.debian_bullseye.build index 0aedd3c..bd950e7 100644 --- a/builder/dockerfile.debian_bullseye.build +++ b/builder/dockerfile.debian_bullseye.build @@ -14,7 +14,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tz RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build nasm git libgnutls28-dev vim wget tightvncserver curl RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev libtbb-dev + libxcursor-dev libavformat-dev libswscale-dev RUN CMAKE_URL="https://cmake.org/files/v3.22/cmake-3.22.0" && \ ARCH=$(arch) && \ @@ -31,8 +31,7 @@ RUN CMAKE_URL="https://cmake.org/files/v3.22/cmake-3.22.0" && \ ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo diff --git a/builder/dockerfile.debian_bullseye.deb.build b/builder/dockerfile.debian_bullseye.deb.build index f5bcc13..51bde4f 100644 --- a/builder/dockerfile.debian_bullseye.deb.build +++ b/builder/dockerfile.debian_bullseye.deb.build @@ -3,7 +3,7 @@ FROM debian:bullseye ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs libtbb-dev + apt-get -y install vim build-essential devscripts equivs # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.debian_buster.build b/builder/dockerfile.debian_buster.build index 63a6c27..9b0bed5 100644 --- a/builder/dockerfile.debian_buster.build +++ b/builder/dockerfile.debian_buster.build @@ -13,12 +13,11 @@ RUN apt-get update && \ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver curl -RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev libtbb-dev +RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo diff --git a/builder/dockerfile.fedora_forty.build b/builder/dockerfile.fedora_forty.build index a3e91f4..7859248 100644 --- a/builder/dockerfile.fedora_forty.build +++ b/builder/dockerfile.fedora_forty.build @@ -74,13 +74,11 @@ RUN \ xorg-x11-xtrans-devel \ xsltproc \ libavformat-free-devel \ - libswscale-free-devel \ - tbb-devel + libswscale-free-devel ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd diff --git a/builder/dockerfile.fedora_fortyone.build b/builder/dockerfile.fedora_fortyone.build index f98b621..ef00860 100644 --- a/builder/dockerfile.fedora_fortyone.build +++ b/builder/dockerfile.fedora_fortyone.build @@ -75,13 +75,11 @@ RUN \ xorg-x11-xtrans-devel \ xsltproc \ libavformat-free-devel \ - libswscale-free-devel \ - tbb-devel + libswscale-free-devel ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd diff --git a/builder/dockerfile.fedora_thirtynine.build b/builder/dockerfile.fedora_thirtynine.build index f4200d7..aeaaf88 100644 --- a/builder/dockerfile.fedora_thirtynine.build +++ b/builder/dockerfile.fedora_thirtynine.build @@ -74,13 +74,11 @@ RUN \ xorg-x11-xtrans-devel \ xsltproc \ libavformat-free-devel \ - libswscale-free-devel \ - tbb-devel + libswscale-free-devel ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd diff --git a/builder/dockerfile.kali_kali-rolling.build b/builder/dockerfile.kali_kali-rolling.build index e3c6f99..cf97c83 100644 --- a/builder/dockerfile.kali_kali-rolling.build +++ b/builder/dockerfile.kali_kali-rolling.build @@ -15,12 +15,11 @@ RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install gcc g++ curl RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev libtbb-dev + libxcursor-dev libavformat-dev libswscale-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo diff --git a/builder/dockerfile.kali_kali-rolling.deb.build b/builder/dockerfile.kali_kali-rolling.deb.build index 6f9bd9a..6d0ed1b 100644 --- a/builder/dockerfile.kali_kali-rolling.deb.build +++ b/builder/dockerfile.kali_kali-rolling.deb.build @@ -3,7 +3,7 @@ FROM kalilinux/kali-rolling:latest ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs libtbb-dev + apt-get -y install vim build-essential devscripts equivs # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.opensuse_15.build b/builder/dockerfile.opensuse_15.build index 5b3b0ee..57f81e1 100644 --- a/builder/dockerfile.opensuse_15.build +++ b/builder/dockerfile.opensuse_15.build @@ -46,8 +46,7 @@ RUN zypper install -ny \ xorg-x11-devel \ xorg-x11-server-sdk \ xorg-x11-util-devel \ - zlib-devel \ - tbb-devel + zlib-devel RUN useradd -u 1000 docker && \ groupadd -g 1000 docker && \ @@ -71,7 +70,7 @@ ENV CC=/usr/bin/gcc-14 ENV CXX=/usr/bin/g++-14 COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-libjpeg-turbo && $SCRIPTS_DIR/build-webp +RUN $SCRIPTS_DIR/build-deps.sh COPY --chown=docker:docker . /src/ diff --git a/builder/dockerfile.oracle_8.build b/builder/dockerfile.oracle_8.build index 4cdef63..9fc54da 100644 --- a/builder/dockerfile.oracle_8.build +++ b/builder/dockerfile.oracle_8.build @@ -32,8 +32,7 @@ RUN \ tigervnc-server \ wget \ xorg-x11-font-utils \ - zlib-devel \ - tbb-devel + zlib-devel # Enable additional repos (epel, powertools, and fusion) RUN dnf config-manager --set-enabled ol8_codeready_builder @@ -42,7 +41,6 @@ RUN dnf install -y --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion- # Install from new repos RUN dnf install -y \ - tbb-devel \ ffmpeg-devel \ giflib-devel \ lbzip2 \ @@ -59,8 +57,8 @@ RUN dnf install -y \ ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR RUN echo "source /opt/rh/gcc-toolset-14/enable" > /etc/profile.d/gcc-toolset.sh && \ - $SCRIPTS_DIR/build-webp && $SCRIPTS_DIR/build-libjpeg-turbo && \ - useradd -m docker && echo "docker:docker" | chpasswd + $SCRIPTS_DIR/build-deps.sh && \ + useradd -m docker && echo "docker:docker" | chpasswd COPY --chown=docker:docker . /src/ diff --git a/builder/dockerfile.oracle_9.build b/builder/dockerfile.oracle_9.build index 2e17589..8053bd5 100644 --- a/builder/dockerfile.oracle_9.build +++ b/builder/dockerfile.oracle_9.build @@ -34,8 +34,7 @@ RUN \ tigervnc-server \ wget \ xorg-x11-font-utils \ - zlib-devel \ - tbb-devel + zlib-devel # Enable additional repos (epel, powertools, and fusion) RUN dnf install -y oracle-epel-release-el9 @@ -58,7 +57,7 @@ RUN dnf install -y \ ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR RUN echo "source /opt/rh/gcc-toolset-14/enable" > /etc/profile.d/gcc-toolset.sh && \ - $SCRIPTS_DIR/build-webp && $SCRIPTS_DIR/build-libjpeg-turbo && \ + $SCRIPTS_DIR/build-deps.sh && \ useradd -m docker && echo "docker:docker" | chpasswd COPY --chown=docker:docker . /src/ diff --git a/builder/dockerfile.ubuntu_focal.build b/builder/dockerfile.ubuntu_focal.build index 57c7373..0ecb1ee 100644 --- a/builder/dockerfile.ubuntu_focal.build +++ b/builder/dockerfile.ubuntu_focal.build @@ -13,7 +13,7 @@ RUN apt-get update && \ RUN apt-get update && apt-get install -y --no-install-recommends tzdata RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build nasm git vim wget curl -RUN apt-get update && apt-get -y install libtbb-dev libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ +RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ libxcursor-dev libavformat-dev libswscale-dev ENV SCRIPTS_DIR=/tmp/scripts @@ -34,8 +34,7 @@ RUN ARCH=$(arch) && \ (echo y; echo n) | bash cmake.sh --prefix=/usr/local --skip-license && \ rm cmake.sh -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh COPY --chown=docker:docker . /src/ diff --git a/builder/dockerfile.ubuntu_focal.deb.build b/builder/dockerfile.ubuntu_focal.deb.build index ffe6402..8a4db12 100644 --- a/builder/dockerfile.ubuntu_focal.deb.build +++ b/builder/dockerfile.ubuntu_focal.deb.build @@ -3,7 +3,7 @@ FROM ubuntu:focal ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs libtbb-dev + apt-get -y install vim build-essential devscripts equivs # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.ubuntu_jammy.build b/builder/dockerfile.ubuntu_jammy.build index 3532bcf..3cbfe75 100644 --- a/builder/dockerfile.ubuntu_jammy.build +++ b/builder/dockerfile.ubuntu_jammy.build @@ -14,12 +14,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends tzdata RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver curl RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev libtbb-dev + libxcursor-dev libavformat-dev libswscale-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo diff --git a/builder/dockerfile.ubuntu_jammy.deb.build b/builder/dockerfile.ubuntu_jammy.deb.build index e4e6fdd..31dee99 100644 --- a/builder/dockerfile.ubuntu_jammy.deb.build +++ b/builder/dockerfile.ubuntu_jammy.deb.build @@ -3,7 +3,7 @@ FROM ubuntu:jammy ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs libtbb-dev + apt-get -y install vim build-essential devscripts equivs # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/dockerfile.ubuntu_jammy.dev b/builder/dockerfile.ubuntu_jammy.dev index 08ae041..552b588 100644 --- a/builder/dockerfile.ubuntu_jammy.dev +++ b/builder/dockerfile.ubuntu_jammy.dev @@ -53,18 +53,16 @@ RUN sed -i 's$# deb-src$deb-src$' /etc/apt/sources.list && \ libxkbfile-dev \ x11proto-dev \ libgbm-dev \ + htop \ inotify-tools && \ echo "kasm-user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers RUN curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - RUN apt install -y nodejs nginx -COPY builder/scripts/build-webp /tmp -COPY builder/scripts/build-libjpeg-turbo /tmp -COPY builder/common.sh /tmp - -RUN chmod +x /tmp/build-webp && /tmp/build-webp -RUN chmod +x /tmp/build-libjpeg-turbo && /tmp/build-libjpeg-turbo +ENV SCRIPTS_DIR=/tmp/scripts +COPY builder/scripts $SCRIPTS_DIR +RUN $SCRIPTS_DIR/build-deps.sh USER 1000 diff --git a/builder/dockerfile.ubuntu_noble.build b/builder/dockerfile.ubuntu_noble.build index fde4e56..4301f3a 100644 --- a/builder/dockerfile.ubuntu_noble.build +++ b/builder/dockerfile.ubuntu_noble.build @@ -14,12 +14,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends tzdata RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget curl RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \ - libxcursor-dev libavformat-dev libswscale-dev libtbb-dev + libxcursor-dev libavformat-dev libswscale-dev ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR -RUN $SCRIPTS_DIR/build-webp -RUN $SCRIPTS_DIR/build-libjpeg-turbo +RUN $SCRIPTS_DIR/build-deps.sh RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo diff --git a/builder/dockerfile.ubuntu_noble.deb.build b/builder/dockerfile.ubuntu_noble.deb.build index d2f2987..6a56b24 100644 --- a/builder/dockerfile.ubuntu_noble.deb.build +++ b/builder/dockerfile.ubuntu_noble.deb.build @@ -3,7 +3,7 @@ FROM ubuntu:noble ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ - apt-get -y install vim build-essential devscripts equivs libtbb-dev + apt-get -y install vim build-essential devscripts equivs # Install build-deps for the package. COPY ./debian/control /tmp diff --git a/builder/scripts/build-deps.sh b/builder/scripts/build-deps.sh new file mode 100755 index 0000000..9c1f205 --- /dev/null +++ b/builder/scripts/build-deps.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e + +source_dir=$(dirname "$0") +"${source_dir}"/build-libjpeg-turbo +"${source_dir}"/build-webp +"${source_dir}"/build-tbb \ No newline at end of file diff --git a/builder/scripts/build-tbb b/builder/scripts/build-tbb new file mode 100755 index 0000000..9a91058 --- /dev/null +++ b/builder/scripts/build-tbb @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -euo pipefail + +build_and_install() { + cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DTBB_TEST=OFF -GNinja . + ninja -C build install +} + +prepare_source() { + DIR=tbb + cd /tmp + TBB_RELEASE=$(curl -sL "https://api.github.com/repos/uxlfoundation/oneTBB/releases/latest" \ + | grep '"tag_name":' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/') + + [ -d ./${DIR} ] && rm -rf ./${DIR} + mkdir ${DIR} + curl -Ls "https://github.com/uxlfoundation/oneTBB/archive/${TBB_RELEASE}.tar.gz" | \ + tar xzvf - -C ${DIR}/ --strip-components=1 + cd ${DIR} +} + +prepare_source +build_and_install From ad95259fda64623ed6c02ae9fc7daa89265b8602 Mon Sep 17 00:00:00 2001 From: El Date: Sat, 10 May 2025 15:24:01 +0500 Subject: [PATCH 09/10] VNC-127 Disable shared library builds for TBB --- builder/scripts/build-tbb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/scripts/build-tbb b/builder/scripts/build-tbb index 9a91058..054e2a3 100755 --- a/builder/scripts/build-tbb +++ b/builder/scripts/build-tbb @@ -4,7 +4,7 @@ set -euo pipefail build_and_install() { cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local \ - -DTBB_TEST=OFF -GNinja . + -DTBB_TEST=OFF -DBUILD_SHARED_LIBS=OFF -GNinja . ninja -C build install } From 58fccb771a3da749c17a6406dfc7af7bd07e9e3e Mon Sep 17 00:00:00 2001 From: El Date: Sun, 11 May 2025 07:55:45 +0500 Subject: [PATCH 10/10] VNC-127 Improve TBB build script --- builder/scripts/build-tbb | 62 +++++++++++++++++++++++++++++++-------- common/rfb/CMakeLists.txt | 1 - 2 files changed, 50 insertions(+), 13 deletions(-) diff --git a/builder/scripts/build-tbb b/builder/scripts/build-tbb index 054e2a3..03593f2 100755 --- a/builder/scripts/build-tbb +++ b/builder/scripts/build-tbb @@ -3,23 +3,61 @@ set -euo pipefail build_and_install() { - cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local \ - -DTBB_TEST=OFF -DBUILD_SHARED_LIBS=OFF -GNinja . - ninja -C build install + if [ $older_release -eq 1 ]; then + make extra_inc=big_iron.inc work_dir="$PWD"/ tbb_root="$PWD" + + if [ -d /usr/lib/x86_64-linux-gnu ]; then + LIBS=lib/x86_64-linux-gnu + elif [ -d /usr/lib/aarch64-linux-gnu ]; then + LIBS=lib/aarch64-linux-gnu + elif [ -d /usr/lib/arm-linux-gnueabihf ]; then + LIBS=lib/arm-linux-gnu + fi + + PC_FILE=/usr/${LIBS}/pkgconfig/tbb.pc + echo "prefix=/usr" > "${PC_FILE}" + echo "exec_prefix=\${prefix}" >> "${PC_FILE}" + echo "libdir=\${exec_prefix}/lib/${LIBS}" >> "${PC_FILE}" + echo "includedir=\${prefix}/include" >> "${PC_FILE}" + echo "Name: Threading Building Blocks" >> "${PC_FILE}" + echo "Description: Intel's parallelism library for C++" >> "${PC_FILE}" + echo "URL: http://www.threadingbuildingblocks.org/" >> "${PC_FILE}" + echo "Version: v2020.3.3" >> "${PC_FILE}" + echo "Libs: -ltbb -latomic" >> "${PC_FILE}" + echo "Cflags: -I\${includedir}" >> "${PC_FILE}" + + cp _release/*.a /usr/"${LIBS}"/ + cp -r include/* /usr/include/ + else + cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DTBB_TEST=OFF -DBUILD_SHARED_LIBS=OFF -GNinja . + ninja -C build install + fi } prepare_source() { - DIR=tbb - cd /tmp - TBB_RELEASE=$(curl -sL "https://api.github.com/repos/uxlfoundation/oneTBB/releases/latest" \ - | grep '"tag_name":' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/') + DIR=tbb + cd /tmp + [ -d ./${DIR} ] && rm -rf ./${DIR} + mkdir ${DIR} - [ -d ./${DIR} ] && rm -rf ./${DIR} - mkdir ${DIR} - curl -Ls "https://github.com/uxlfoundation/oneTBB/archive/${TBB_RELEASE}.tar.gz" | \ - tar xzvf - -C ${DIR}/ --strip-components=1 - cd ${DIR} + if [ $older_release -eq 1 ]; then + TBB_RELEASE="v2020.3.3" + else + TBB_RELEASE=$(curl -sL "https://api.github.com/repos/uxlfoundation/oneTBB/releases/latest" \ + | grep '"tag_name":' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/') + fi + + curl -Ls "https://github.com/uxlfoundation/oneTBB/archive/${TBB_RELEASE}.tar.gz" | \ + + tar xzvf - -C ${DIR}/ --strip-components=1 + cd ${DIR} } +older_release=0 +if grep -q 'Ubuntu 20.04\|Debian GNU/Linux 11' /etc/os-release 2>/dev/null; then + older_release=1 +fi + prepare_source build_and_install diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt index a5ffffc..434470b 100644 --- a/common/rfb/CMakeLists.txt +++ b/common/rfb/CMakeLists.txt @@ -140,7 +140,6 @@ else () set(RFB_LIBRARIES ${RFB_LIBRARIES} ${TBB_LIBRARIES}) endif () -message(STATUS ${RFB_LIBRARIES}) add_library(rfb STATIC ${RFB_SOURCES}) target_include_directories(rfb PRIVATE