From f0d41eae524251f91d3377d2f5ff188c98526b2b Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Mon, 13 Jul 2026 15:26:15 +0800 Subject: [PATCH] build: rebrand output artifacts to Oak and fix macOS QML deployment - Rename macOS bundle output from Olive.app to Oak.app. - Rename editor binary to oak-editor and render worker to oak-render-worker. - Rename crash handler output to oak-crashhandler. - Update worker lookup, NSIS installer, Linux desktop/AppRun, crashhandler symbol paths, and documentation for the new binary names. - Update CD workflow paths and add -qmldir flags to macdeployqt so QtQuick / QML plugins required by KDDockWidgets are bundled, fixing the launch crash on macOS. - Update user-facing GitHub URLs to OakVideoEditorCommunity/oak. --- .github/workflows/cd.yml | 39 +-- CMakeLists.txt | 2 +- CONTRIBUTING.md | 6 - app/CMakeLists.txt | 15 +- app/crashhandler/CMakeLists.txt | 5 +- app/crashhandler/crashhandler.cpp | 12 +- app/packaging/linux/AppRun | 8 +- .../org.oakvideoeditor.Oak.appdata.xml.in | 4 +- .../linux/org.oakvideoeditor.Oak.desktop | 2 +- app/packaging/macos/{olive.icns => oak.icns} | Bin .../windows/nsis/{olive.nsi => oak.nsi} | 16 +- app/render/rendermanager.h | 2 +- app/render/renderworkerpool.cpp | 4 +- app/render/worker/workermain.cpp | 2 +- app/window/mainwindow/mainmenu.cpp | 2 +- docker/README.md | 69 ---- docker/ci-common/Dockerfile | 71 ----- docker/ci-crashpad/Dockerfile | 37 --- docker/ci-ffmpeg/Dockerfile | 83 ----- docker/ci-ocio/Dockerfile | 51 --- docker/ci-oiio/Dockerfile | 67 ---- docker/ci-olive/Dockerfile | 77 ----- docker/ci-otio/Dockerfile | 58 ---- docker/scripts/base/install_cmake.sh | 16 - docker/scripts/build_crashpad.sh | 89 ------ docker/scripts/build_ffmpeg.sh | 297 ------------------ docker/scripts/build_ocio.sh | 48 --- docker/scripts/build_oiio.sh | 48 --- docker/scripts/build_olive.sh | 50 --- docker/scripts/build_otio.sh | 28 -- docker/scripts/common/before_build.sh | 15 - docker/scripts/common/copy_new_files.sh | 16 - docker/scripts/common/install_yumpackages.sh | 98 ------ docs/build_macos.md | 6 +- docs/zh/build_macos-zh.md | 6 +- tests/gtest/render_worker_footage_test.cpp | 6 +- 36 files changed, 70 insertions(+), 1285 deletions(-) rename app/packaging/macos/{olive.icns => oak.icns} (100%) rename app/packaging/windows/nsis/{olive.nsi => oak.nsi} (89%) delete mode 100644 docker/README.md delete mode 100644 docker/ci-common/Dockerfile delete mode 100644 docker/ci-crashpad/Dockerfile delete mode 100644 docker/ci-ffmpeg/Dockerfile delete mode 100644 docker/ci-ocio/Dockerfile delete mode 100644 docker/ci-oiio/Dockerfile delete mode 100644 docker/ci-olive/Dockerfile delete mode 100644 docker/ci-otio/Dockerfile delete mode 100644 docker/scripts/base/install_cmake.sh delete mode 100644 docker/scripts/build_crashpad.sh delete mode 100644 docker/scripts/build_ffmpeg.sh delete mode 100644 docker/scripts/build_ocio.sh delete mode 100644 docker/scripts/build_oiio.sh delete mode 100644 docker/scripts/build_olive.sh delete mode 100644 docker/scripts/build_otio.sh delete mode 100644 docker/scripts/common/before_build.sh delete mode 100644 docker/scripts/common/copy_new_files.sh delete mode 100644 docker/scripts/common/install_yumpackages.sh diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 93c0f68e0..ee672ead1 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -57,17 +57,17 @@ jobs: - name: Deploy dependencies shell: msys2 {0} run: | - mkdir -p app/packaging/windows/nsis/olive-editor - cp build/app/olive-editor.exe app/packaging/windows/nsis/olive-editor/ - cp build/app/olive-render-worker.exe app/packaging/windows/nsis/olive-editor/ - cp build/app/oakgl.dll app/packaging/windows/nsis/olive-editor/ + mkdir -p app/packaging/windows/nsis/oak-editor + cp build/app/oak-editor.exe app/packaging/windows/nsis/oak-editor/ + cp build/app/oak-render-worker.exe app/packaging/windows/nsis/oak-editor/ + cp build/app/oakgl.dll app/packaging/windows/nsis/oak-editor/ if [ -f build/app/oakvulkan.dll ]; then - cp build/app/oakvulkan.dll app/packaging/windows/nsis/olive-editor/ + cp build/app/oakvulkan.dll app/packaging/windows/nsis/oak-editor/ fi - windeployqt6 app/packaging/windows/nsis/olive-editor/olive-editor.exe + windeployqt6 app/packaging/windows/nsis/oak-editor/oak-editor.exe # Copy all non-Qt MSYS2 DLLs recursively for every binary we ship - cd app/packaging/windows/nsis/olive-editor - for binary in olive-editor.exe olive-render-worker.exe oakgl.dll oakvulkan.dll; do + cd app/packaging/windows/nsis/oak-editor + for binary in oak-editor.exe oak-render-worker.exe oakgl.dll oakvulkan.dll; do [ -f "$binary" ] || continue for l in $(ntldd -R "$binary" | grep -E 'mingw64|ucrt64|clang64' | sed 's/^[ \t]*//' | cut -d' ' -f3); do cp -v "$l" . @@ -79,7 +79,7 @@ jobs: run: | cd app/packaging/windows/nsis cp "${GITHUB_WORKSPACE}"/LICENSE . - makensis olive.nsi + makensis oak.nsi mv setup.exe "${GITHUB_WORKSPACE}"/Oak-Video-Editor-Windows-x64.exe - name: Upload artifact @@ -130,18 +130,21 @@ jobs: - name: Deploy Qt dependencies run: | export PATH="$(brew --prefix qt@6)/bin:$PATH" - macdeployqt build/app/Olive.app + macdeployqt build/app/Oak.app \ + -qmldir=app \ + -qmldir=ext/KDDockWidgets/src/qtquick/views/qml \ + -verbose=2 # Re-sign after macdeployqt (it breaks signatures when modifying libs) - codesign --force --deep --sign - build/app/Olive.app + codesign --force --deep --sign - build/app/Oak.app - name: Bundle non-Qt libraries run: | - mkdir -p build/app/Olive.app/Contents/Frameworks + mkdir -p build/app/Oak.app/Contents/Frameworks python3 << 'PYEOF' import os, shutil, subprocess - APP = "build/app/Olive.app" - BINARY = f"{APP}/Contents/MacOS/Olive" + APP = "build/app/Oak.app" + BINARY = f"{APP}/Contents/MacOS/Oak" DEST = f"{APP}/Contents/Frameworks" os.makedirs(DEST, exist_ok=True) @@ -232,16 +235,16 @@ jobs: - name: Debug bundle contents run: | echo "=== otool -L ===" - otool -L build/app/Olive.app/Contents/MacOS/Olive + otool -L build/app/Oak.app/Contents/MacOS/Oak echo "=== Frameworks dir ===" - ls -la build/app/Olive.app/Contents/Frameworks/ || echo "(empty)" + ls -la build/app/Oak.app/Contents/Frameworks/ || echo "(empty)" echo "=== App bundle size ===" - du -sh build/app/Olive.app + du -sh build/app/Oak.app - name: Create DMG run: | hdiutil create \ - -srcfolder build/app/Olive.app \ + -srcfolder build/app/Oak.app \ -volname "Oak Video Editor" \ -fs HFS+ \ -format UDZO \ diff --git a/CMakeLists.txt b/CMakeLists.txt index a4923b50f..647fbcb62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ cmake_minimum_required(VERSION 3.13 FATAL_ERROR) -project(olive-editor VERSION 0.3.0 LANGUAGES CXX) +project(olive-editor VERSION 0.4.0 LANGUAGES CXX) set(PROJECT_VERSION "0.4.0-alpha") diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ba13dc1af..76d28c4b2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,12 +2,6 @@ Thank you for your interest in contributing to Olive! -## Reporting issues - -Bug reports help to make the software more stable and usable. -Please read the pinned [issue #1175](https://github.com/olive-editor/olive/issues/1175) -for guidelines before you create a new issue. - ## Writing code Code contributions are welcome. Note that the code base is rapidly changing in diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index ada2489f1..1e0149918 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -250,7 +250,9 @@ endif() # Ensure the render worker is always built together with the editor on every platform. add_dependencies(olive-editor olive-render-worker) -# Add render worker process (olive-render-worker). +set_target_properties(olive-editor PROPERTIES OUTPUT_NAME "oak-editor") + +# Add render worker process (oak-render-worker). # Reuses the libolive-editor object library so the worker shares the exact same render/node/codec # code as the editor. It is a headless app that owns its own offscreen GL context. The link set is # currently the full OLIVE_LIBRARIES for simplicity; trimming UI-only dependencies is a later-phase @@ -260,6 +262,7 @@ add_executable(olive-render-worker $ $ ) +set_target_properties(olive-render-worker PROPERTIES OUTPUT_NAME "oak-render-worker") if (APPLE) target_sources(olive-render-worker PRIVATE render/worker/workermain_mac.mm) target_link_libraries(olive-render-worker PRIVATE "-framework Cocoa") @@ -292,7 +295,7 @@ if (WIN32) elseif(APPLE) # Set Mac application icon - set(OLIVE_ICON packaging/macos/olive.icns) + set(OLIVE_ICON packaging/macos/oak.icns) target_sources(olive-editor PRIVATE ${OLIVE_ICON}) # Set Mac bundle properties @@ -300,24 +303,24 @@ elseif(APPLE) MACOSX_BUNDLE TRUE MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/packaging/macos/MacOSXBundleInfo.plist.in MACOSX_BUNDLE_GUI_IDENTIFIER org.oakvideoeditor.Oak - MACOSX_BUNDLE_ICON_FILE olive.icns + MACOSX_BUNDLE_ICON_FILE oak.icns MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION} MACOSX_BUNDLE_BUNDLE_NAME "Oak Video Editor" MACOSX_BUNDLE_INFO_STRING "Oak Video Editor ${PROJECT_LONG_VERSION}" MACOSX_BUNDLE_COPYRIGHT "©2018-2021 Olive Studios LLC and others. Fork maintained by Oak Video Editor Team." RESOURCE "${OLIVE_ICON}" - OUTPUT_NAME "Olive" + OUTPUT_NAME "Oak" ) # Copy the render worker and dynamic render backends into the app bundle. # They are looked up in QCoreApplication::applicationDirPath(), which on - # macOS points to Olive.app/Contents/MacOS. + # macOS points to Oak.app/Contents/MacOS. add_custom_command(TARGET olive-editor POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory $/Contents/MacOS COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/Contents/MacOS/ COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/Contents/MacOS/ - COMMENT "Copying olive-render-worker and render backends into Olive.app" + COMMENT "Copying oak-render-worker and render backends into Oak.app" ) if (TARGET oakvulkan) add_custom_command(TARGET olive-editor POST_BUILD diff --git a/app/crashhandler/CMakeLists.txt b/app/crashhandler/CMakeLists.txt index f835c73ae..11b7009d5 100644 --- a/app/crashhandler/CMakeLists.txt +++ b/app/crashhandler/CMakeLists.txt @@ -22,6 +22,9 @@ add_executable( $ ) +# Rename the generated binary to oak-crashhandler so it matches the Oak branding. +set_target_properties(olive-crashhandler PROPERTIES OUTPUT_NAME "oak-crashhandler") + # Disable console appearing on crash handler dialog set_target_properties(olive-crashhandler PROPERTIES WIN32_EXECUTABLE TRUE @@ -52,7 +55,7 @@ set(MINIDUMP_STACKWALK "minidump_stackwalk${CMAKE_EXECUTABLE_SUFFIX}") if(APPLE) # Move crash handler executables inside Mac app bundle add_custom_command(TARGET olive-crashhandler POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different olive-crashhandler $ + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CRASHPAD_LIBRARY_DIRS}/${CRASHPAD_HANDLER} $ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${BREAKPAD_BIN_DIR}/${MINIDUMP_STACKWALK} $ ) diff --git a/app/crashhandler/crashhandler.cpp b/app/crashhandler/crashhandler.cpp index 86291cb4d..aac3b3d99 100644 --- a/app/crashhandler/crashhandler.cpp +++ b/app/crashhandler/crashhandler.cpp @@ -124,7 +124,7 @@ QString CrashHandlerDialog::GetSymbolPath() #elif BUILDFLAG(IS_LINUX) app_path.cdUp(); symbols_path = - app_path.filePath(QStringLiteral("share/olive-editor/symbols")); + app_path.filePath(QStringLiteral("share/oak-editor/symbols")); #elif BUILDFLAG(IS_APPLE) app_path.cdUp(); symbols_path = app_path.filePath(QStringLiteral("Resources/symbols")); @@ -291,11 +291,11 @@ void CrashHandlerDialog::SendErrorReport() QString symbol_bin_name; #if BUILDFLAG(IS_WIN) - symbol_bin_name = QStringLiteral("olive-editor.pdb"); + symbol_bin_name = QStringLiteral("oak-editor.pdb"); #elif BUILDFLAG(IS_APPLE) - symbol_bin_name = QStringLiteral("Olive"); + symbol_bin_name = QStringLiteral("Oak"); #else - symbol_bin_name = QStringLiteral("olive-editor"); + symbol_bin_name = QStringLiteral("oak-editor"); #endif symbol_dir = QDir(symbol_dir.filePath(symbol_bin_name)); @@ -320,9 +320,9 @@ void CrashHandlerDialog::SendErrorReport() // Create sym section QString symbol_filename; #if BUILDFLAG(IS_APPLE) - symbol_filename = QStringLiteral("Olive.sym"); + symbol_filename = QStringLiteral("Oak.sym"); #else - symbol_filename = QStringLiteral("olive-editor.sym"); + symbol_filename = QStringLiteral("oak-editor.sym"); #endif QString symbol_full_path = symbol_dir.filePath(symbol_filename); QHttpPart sym_part; diff --git a/app/packaging/linux/AppRun b/app/packaging/linux/AppRun index 78498db05..e2381bb3f 100755 --- a/app/packaging/linux/AppRun +++ b/app/packaging/linux/AppRun @@ -20,16 +20,16 @@ APPDIR=$(readlink -f $(dirname "$0")) -# Custom AppRun that ensures the AppImage doesn't dismount before olive-crashhandler exits +# Custom AppRun that ensures the AppImage doesn't dismount before oak-crashhandler exits # Run main program -"$APPDIR/usr/bin/olive-editor" "$@" +"$APPDIR/usr/bin/oak-editor" "$@" # Wait arbitrary amount of time sleep 5 -# While olive-crashhandler exists, keep sleeping -while [[ $(ps -aux | grep olive-crashhandler | grep -v grep) ]] +# While oak-crashhandler exists, keep sleeping +while [[ $(ps -aux | grep oak-crashhandler | grep -v grep) ]] do sleep 5 done diff --git a/app/packaging/linux/org.oakvideoeditor.Oak.appdata.xml.in b/app/packaging/linux/org.oakvideoeditor.Oak.appdata.xml.in index 834e13018..a93fb73e7 100644 --- a/app/packaging/linux/org.oakvideoeditor.Oak.appdata.xml.in +++ b/app/packaging/linux/org.oakvideoeditor.Oak.appdata.xml.in @@ -28,8 +28,8 @@

Oak Video Editor adalah aplikasi edit video bersifat non-linier yang bebas dan gratis, bertujuan untuk memberikan alternatif yang lengkap untuk aplikasi edit video profesional. Ini adalah fork komunitas dari Olive Video Editor.

Oak Video Editor est un éditeur vidéo non linéaire libre visant à fournir une alternative complète aux logiciels de montage vidéo professionnels haut de gamme. Il s'agit d'un fork communautaire d'Olive Video Editor.

- https://github.com/olive-editor/olive - https://github.com/olive-editor/olive/issues + https://github.com/OakVideoEditorCommunity/oak + https://github.com/OakVideoEditorCommunity/oak/issues https://olivevideoeditor.org/img/screenshot.1600.jpg diff --git a/app/packaging/linux/org.oakvideoeditor.Oak.desktop b/app/packaging/linux/org.oakvideoeditor.Oak.desktop index 22d7fbff1..977deff49 100644 --- a/app/packaging/linux/org.oakvideoeditor.Oak.desktop +++ b/app/packaging/linux/org.oakvideoeditor.Oak.desktop @@ -4,7 +4,7 @@ Comment=Professional open-source non-linear video editor Comment[fr]=Éditeur vidéo non-linéaire open-source professionnel Comment[it]=Programma di montaggio video professionale open-source Comment[id]=Aplikasi edit video yang non-linier, profesional serta sumbernya terbuka. -Exec=olive-editor %f +Exec=oak-editor %f Icon=org.oakvideoeditor.Oak Terminal=false Type=Application diff --git a/app/packaging/macos/olive.icns b/app/packaging/macos/oak.icns similarity index 100% rename from app/packaging/macos/olive.icns rename to app/packaging/macos/oak.icns diff --git a/app/packaging/windows/nsis/olive.nsi b/app/packaging/windows/nsis/oak.nsi similarity index 89% rename from app/packaging/windows/nsis/olive.nsi rename to app/packaging/windows/nsis/oak.nsi index a75114c06..c379823f4 100644 --- a/app/packaging/windows/nsis/olive.nsi +++ b/app/packaging/windows/nsis/oak.nsi @@ -4,9 +4,9 @@ !define MUI_UNICON "uninstall icon.ico" !define APP_NAME "Oak Video Editor" -!define APP_TARGET "olive-editor" +!define APP_TARGET "oak-editor" -!define MUI_FINISHPAGE_RUN "$INSTDIR\olive-editor.exe" +!define MUI_FINISHPAGE_RUN "$INSTDIR\oak-editor.exe" SetCompressor lzma @@ -38,14 +38,14 @@ InstallDir "$PROGRAMFILES32\${APP_NAME}" Section "Oak Video Editor" SectionIn RO SetOutPath $INSTDIR - File /r olive-editor\* + File /r oak-editor\* # Render worker process must live next to the editor binary - File "olive-editor\olive-render-worker.exe" + File "oak-editor\oak-render-worker.exe" # Render backends must also live next to the editor binary - File "olive-editor\oakgl.dll" - File /nonfatal "olive-editor\oakvulkan.dll" + File "oak-editor\oakgl.dll" + File /nonfatal "oak-editor\oakvulkan.dll" WriteUninstaller "$INSTDIR\uninstall.exe" @@ -69,8 +69,8 @@ Section "Associate *.ove files with Oak Video Editor" WriteRegStr HKCR ".ove" "" "OakEditor.OVEFile" WriteRegStr HKCR ".ove" "Content Type" "application/vnd.olive-project" WriteRegStr HKCR "OakEditor.OVEFile" "" "Oak project file" - WriteRegStr HKCR "OakEditor.OVEFile\DefaultIcon" "" "$INSTDIR\olive-editor.exe,1" - WriteRegStr HKCR "OakEditor.OVEFile\shell\open\command" "" "$\"$INSTDIR\olive-editor.exe$\" $\"%1$\"" + WriteRegStr HKCR "OakEditor.OVEFile\DefaultIcon" "" "$INSTDIR\oak-editor.exe,1" + WriteRegStr HKCR "OakEditor.OVEFile\shell\open\command" "" "$\"$INSTDIR\oak-editor.exe$\" $\"%1$\"" System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' SectionEnd diff --git a/app/render/rendermanager.h b/app/render/rendermanager.h index 33d40f2ff..dbf96be1c 100644 --- a/app/render/rendermanager.h +++ b/app/render/rendermanager.h @@ -82,7 +82,7 @@ public: /// Vulkan requested by the user. Falls back to OpenGL until VulkanRenderer is implemented. kVulkan, - /// Video frames are rendered by an external olive-render-worker process. + /// Video frames are rendered by an external oak-render-worker process. kMultiProcess, /// No graphics rendering - used to test core threading logic diff --git a/app/render/renderworkerpool.cpp b/app/render/renderworkerpool.cpp index 5e99dbf29..b4bc7b5bd 100644 --- a/app/render/renderworkerpool.cpp +++ b/app/render/renderworkerpool.cpp @@ -241,9 +241,9 @@ bool DecodeInputFrames(DecoderCache *decoder_cache, QString WorkerProgramPath() { #if defined(Q_OS_WIN) - const QString file = QStringLiteral("olive-render-worker.exe"); + const QString file = QStringLiteral("oak-render-worker.exe"); #else - const QString file = QStringLiteral("olive-render-worker"); + const QString file = QStringLiteral("oak-render-worker"); #endif const QString app_dir = QCoreApplication::applicationDirPath(); diff --git a/app/render/worker/workermain.cpp b/app/render/worker/workermain.cpp index 079c08f79..6dff951d7 100644 --- a/app/render/worker/workermain.cpp +++ b/app/render/worker/workermain.cpp @@ -547,7 +547,7 @@ int main(int argc, char *argv[]) #endif QCoreApplication::setOrganizationName(QStringLiteral("oakvideoeditor.org")); - QCoreApplication::setApplicationName(QStringLiteral("olive-render-worker")); + QCoreApplication::setApplicationName(QStringLiteral("oak-render-worker")); QString backend = QStringLiteral("opengl"); const QStringList args = app.arguments(); diff --git a/app/window/mainwindow/mainmenu.cpp b/app/window/mainwindow/mainmenu.cpp index 81a26401d..860d9d7cc 100644 --- a/app/window/mainwindow/mainmenu.cpp +++ b/app/window/mainwindow/mainmenu.cpp @@ -788,7 +788,7 @@ void MainMenu::SequenceCacheClearTriggered() void MainMenu::HelpFeedbackTriggered() { QDesktopServices::openUrl( - QStringLiteral("https://github.com/olive-editor/olive/issues")); + QStringLiteral("https://github.com/OakVideoEditorCommunity/oak/issues")); } void MainMenu::Retranslate() diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index fa0c08423..000000000 --- a/docker/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Docker Images - -Olive uses Docker containers for continuous integration on Linux. -No Docker images are involved for the Windows and macOS CI. - -## Overview - -`ci-common` is the shared build image with GCC, Clang and packages that are -needed by most dependent images. It is used to compile Olive's dependencies -in a controlled environment. The final CI image `ci-olive` is assembled from -images maintained by the Olive team as well as from -[aswf-docker](https://github.com/AcademySoftwareFoundation/aswf-docker/). - -Dependency hierarchy: - -1. `ci-common` -2. `ci-otio`, `ci-crashpad`, `ci-ffmpeg`, `ci-ocio` -3. `ci-olive` - -## Usage - -Pull images from [Docker Hub](https://hub.docker.com/u/olivevideoeditor): - -``` -docker pull olivevideoeditor/ci-common:2 -docker pull olivevideoeditor/ci-package-otio:0.14.1 -docker pull olivevideoeditor/ci-package-crashpad -docker pull olivevideoeditor/ci-package-ffmpeg:5.0 -docker pull olivevideoeditor/ci-package-ocio:2022-2.1.1 -docker pull olivevideoeditor/ci-olive:2022.2 -``` - -Use `ci-olive` image as local build container, by mounting working copy at -`~/olive` into guest system at `/opt/olive/olive`: - -```bash -docker run --rm -it -v ~/olive:/opt/olive/olive olivevideoeditor/ci-olive:2022.2 -mkdir build -cd build -cmake .. -G Ninja -cmake --build . -``` - -Rebuild all images locally: - -``` -cd docker -docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile . -docker build -t olivevideoeditor/ci-package-otio:0.14.1 -f ci-otio/Dockerfile . -docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile . -docker build -t olivevideoeditor/ci-package-ffmpeg:5.0 -f ci-ffmpeg/Dockerfile . -docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.1 -f ci-ocio/Dockerfile . -docker build -t olivevideoeditor/ci-olive:2022.2 -f ci-olive/Dockerfile . -``` - -Note that `2022` in `ci-olive:2022.2` stands for the -[VFX Reference Platform](http://vfxplatform.com/) calendar year and `2` for the -build image revision (should be incremented each time a new image is published). - -Publish images: - -``` -docker push olivevideoeditor/ci-common:2 -docker push olivevideoeditor/ci-package-otio:0.14.1 -docker push olivevideoeditor/ci-package-crashpad -docker push olivevideoeditor/ci-package-ffmpeg:5.0 -docker push olivevideoeditor/ci-package-ocio:2022-2.1.1 -docker push olivevideoeditor/ci-olive:2022.2 -``` diff --git a/docker/ci-common/Dockerfile b/docker/ci-common/Dockerfile deleted file mode 100644 index f7da97214..000000000 --- a/docker/ci-common/Dockerfile +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright (C) 2022 Olive Team -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later - -# Build image (default): -# docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile . - -ARG OLIVE_ORG=olivevideoeditor -ARG ASWF_PKG_ORG=aswftesting -ARG CI_COMMON_VERSION=2 -ARG DTS_VERSION=9 -ARG CMAKE_VERSION=3.22.3 - -FROM ${ASWF_PKG_ORG}/ci-package-clang:${CI_COMMON_VERSION} as ci-package-clang -FROM ${ASWF_PKG_ORG}/ci-package-ninja:${CI_COMMON_VERSION} as ci-package-ninja - -FROM centos:7 as ci-common - -ARG OLIVE_ORG -ARG CI_COMMON_VERSION -ARG DTS_VERSION -ARG CMAKE_VERSION - -LABEL maintainer="olivevideoeditor@gmail.com" -LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-common" -LABEL org.opencontainers.image.description="CentOS CI Shared Image" -LABEL org.opencontainers.image.url="http://olivevideoeditor.org" -LABEL org.opencontainers.image.source="https://github.com/olive-editor/olive" -LABEL org.opencontainers.image.vendor="Olive Team" -LABEL org.opencontainers.image.version="1.0" -LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" - -USER root - -COPY scripts/common/install_yumpackages.sh \ - scripts/common/before_build.sh \ - scripts/common/copy_new_files.sh \ - /tmp/ - -ENV DTS_VERSION=${DTS_VERSION} -RUN /tmp/install_yumpackages.sh - -RUN mkdir /opt/olive -WORKDIR /opt/olive - -ENV OLIVE_ORG=${OLIVE_ORG} \ - CI_COMMON_VERSION=${CI_COMMON_VERSION} \ - CMAKE_VERSION=${CMAKE_VERSION} \ - LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:/opt/rh/httpd24/root/usr/lib64:/opt/rh/devtoolset-${DTS_VERSION}/root/usr/lib64:/opt/rh/devtoolset-${DTS_VERSION}/root/usr/lib:${LD_LIBRARY_PATH} \ - PATH=/opt/rh/rh-git218/root/usr/bin:/usr/local/bin:/opt/rh/devtoolset-${DTS_VERSION}/root/usr/bin:/opt/app-root/src/bin:/opt/rh/devtoolset-${DTS_VERSION}/root/usr/bin/:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin - -#COPY scripts/common/install_sonar.sh \ -# scripts/common/install_ccache.sh \ -# /tmp/ - -COPY --from=ci-package-clang /. /usr/local/ -COPY --from=ci-package-ninja /. /usr/local/ - -#COPY scripts/common/setup_aswfuser.sh /tmp -#RUN /tmp/setup_aswfuser.sh - -COPY scripts/base/install_cmake.sh \ - /tmp/ - -RUN export DOWNLOADS_DIR=/tmp/downloads && \ - mkdir /tmp/downloads && \ -# source /tmp/versions_base.sh && \ - /tmp/install_cmake.sh && \ -# /tmp/patchup.sh && \ - rm -rf /tmp/downloads -# TODO: Remove scripts from /tmp ? diff --git a/docker/ci-crashpad/Dockerfile b/docker/ci-crashpad/Dockerfile deleted file mode 100644 index 0d2572a86..000000000 --- a/docker/ci-crashpad/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2022 Olive Team -# SPDX-License-Identifier: GPL-3.0-or-later - -# Build image (default): -# docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile . - -ARG OLIVE_ORG=olivevideoeditor -ARG CI_COMMON_VERSION=2 - -FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-crashpad - -ARG OLIVE_ORG -ARG CI_COMMON_VERSION - -LABEL maintainer="olivevideoeditor@gmail.com" -LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-crashpad" -LABEL org.opencontainers.image.description="CentOS Crashpad Build Image" -LABEL org.opencontainers.image.url="http://olivevideoeditor.org" -LABEL org.opencontainers.image.source="https://github.com/olive-editor/olive" -LABEL org.opencontainers.image.vendor="Olive Team" -LABEL org.opencontainers.image.version="1.0" -LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" - -COPY scripts/build_crashpad.sh \ - /tmp/ - -ENV OLIVE_ORG=${OLIVE_ORG} \ - CI_COMMON_VERSION=${CI_COMMON_VERSION} \ - OLIVE_INSTALL_PREFIX=/usr/local - -RUN /tmp/before_build.sh && \ - /tmp/build_crashpad.sh && \ - /tmp/copy_new_files.sh - -FROM scratch as ci-package-crashpad - -COPY --from=ci-crashpad /package / diff --git a/docker/ci-ffmpeg/Dockerfile b/docker/ci-ffmpeg/Dockerfile deleted file mode 100644 index 1a9a145ff..000000000 --- a/docker/ci-ffmpeg/Dockerfile +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright (C) 2022 Olive Team -# SPDX-License-Identifier: GPL-3.0-or-later - -# Build image (default): -# docker build -t olivevideoeditor/ci-package-ffmpeg:5.0 -f ci-ffmpeg/Dockerfile . - -ARG OLIVE_ORG=olivevideoeditor -ARG CI_COMMON_VERSION=2 -ARG FFMPEG_VERSION=5.0 -ARG NASM_VERSION=2.15.05 -ARG YASM_VERSION=1.3.0 -ARG SVTAV1_VERSION=v1.1.0 -ARG X265_VERSION=3.5 -ARG OGG_VERSION=1.3.5 -ARG OPUS_VERSION=1.3.1 -ARG VORBIS_VERSION=1.3.7 -ARG THEORA_VERSION=1.1.1 -ARG VPX_VERSION=1.11.0 -ARG WEBP_VERSION=1.2.2 -ARG LAME_VERSION=3.100 -ARG XVID_VERSION=1.3.7 -ARG OPENJPEG_VERSION=2.4.0 -ARG LIBPNG_VERSION=1.6.37 -# TODO: Make version of x264 selectable? - -FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-ffmpeg - -ARG OLIVE_ORG -ARG CI_COMMON_VERSION -ARG FFMPEG_VERSION -ARG NASM_VERSION -ARG YASM_VERSION -ARG SVTAV1_VERSION -ARG X265_VERSION -ARG OGG_VERSION -ARG OPUS_VERSION -ARG VORBIS_VERSION -ARG THEORA_VERSION -ARG VPX_VERSION -ARG WEBP_VERSION -ARG LAME_VERSION -ARG XVID_VERSION -ARG OPENJPEG_VERSION -ARG LIBPNG_VERSION - -LABEL maintainer="olivevideoeditor@gmail.com" -LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-ffmpeg" -LABEL org.opencontainers.image.description="CentOS FFmpeg Build Image" -LABEL org.opencontainers.image.url="http://olivevideoeditor.org" -LABEL org.opencontainers.image.source="https://github.com/olive-editor/olive" -LABEL org.opencontainers.image.vendor="Olive Team" -LABEL org.opencontainers.image.version="1.0" -LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" - -COPY scripts/build_ffmpeg.sh \ - /tmp/ - -ENV OLIVE_ORG=${OLIVE_ORG} \ - CI_COMMON_VERSION=${CI_COMMON_VERSION} \ - FFMPEG_VERSION=${FFMPEG_VERSION} \ - NASM_VERSION=${NASM_VERSION} \ - YASM_VERSION=${YASM_VERSION} \ - SVTAV1_VERSION=${SVTAV1_VERSION} \ - X265_VERSION=${X265_VERSION} \ - OGG_VERSION=${OGG_VERSION} \ - OPUS_VERSION=${OPUS_VERSION} \ - VORBIS_VERSION=${VORBIS_VERSION} \ - THEORA_VERSION=${THEORA_VERSION} \ - VPX_VERSION=${VPX_VERSION} \ - WEBP_VERSION=${WEBP_VERSION} \ - LAME_VERSION=${LAME_VERSION} \ - XVID_VERSION=${XVID_VERSION} \ - OPENJPEG_VERSION=${OPENJPEG_VERSION} \ - LIBPNG_VERSION=${LIBPNG_VERSION} \ - OLIVE_INSTALL_PREFIX=/usr/local - -RUN /tmp/before_build.sh && \ - /tmp/build_ffmpeg.sh && \ - /tmp/copy_new_files.sh - -FROM scratch as ci-package-ffmpeg - -COPY --from=ci-ffmpeg /package/. / diff --git a/docker/ci-ocio/Dockerfile b/docker/ci-ocio/Dockerfile deleted file mode 100644 index 60e7fd83f..000000000 --- a/docker/ci-ocio/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2022 Olive Team -# SPDX-License-Identifier: GPL-3.0-or-later - -# Build image (default): -# docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.1 -f ci-ocio/Dockerfile . - -ARG OLIVE_ORG=olivevideoeditor -ARG ASWF_PKG_ORG=aswftesting -ARG CI_COMMON_VERSION=2 -ARG VFXPLATFORM_VERSION=2022 -# OCIO repo branch or tag name -ARG OCIO_VERSION=v2.1.1 -# Latest configs ~3 GB because of ACES 1.0.x. -# Upstream only copies nuke-default, therefore we also use the older configs. -ARG OCIO_CONFIGS_VERSION=1.0_r2 - -FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-ocio - -ARG OLIVE_ORG -ARG CI_COMMON_VERSION -ARG VFXPLATFORM_VERSION -ARG OCIO_VERSION -ARG OCIO_CONFIGS_VERSION - -LABEL maintainer="olivevideoeditor@gmail.com" -LABEL com.vfxplatform.version=$VFXPLATFORM_VERSION -LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-otio" -LABEL org.opencontainers.image.description="CentOS OpenColorIO Build Image" -LABEL org.opencontainers.image.url="http://olivevideoeditor.org" -LABEL org.opencontainers.image.source="https://github.com/olive-editor/olive" -LABEL org.opencontainers.image.vendor="Olive Team" -LABEL org.opencontainers.image.version="1.0" -LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" - -ENV OLIVE_ORG=${OLIVE_ORG} \ - CI_COMMON_VERSION=${CI_COMMON_VERSION} \ - VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \ - OCIO_VERSION=${OCIO_VERSION} \ - OCIO_CONFIGS_VERSION=${OCIO_CONFIGS_VERSION} \ - OLIVE_INSTALL_PREFIX=/usr/local - -COPY scripts/build_ocio.sh \ - /tmp/ - -RUN /tmp/before_build.sh && \ - /tmp/build_ocio.sh && \ - /tmp/copy_new_files.sh - -FROM scratch as ci-package-ocio - -COPY --from=ci-ocio /package/. / diff --git a/docker/ci-oiio/Dockerfile b/docker/ci-oiio/Dockerfile deleted file mode 100644 index 27421beeb..000000000 --- a/docker/ci-oiio/Dockerfile +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright (C) 2022 Olive Team -# SPDX-License-Identifier: GPL-3.0-or-later - -# Build image (default): -# docker build -t olivevideoeditor/ci-package-oiio:2.3.13.0 -f ci-oiio/Dockerfile . - -ARG ASWF_PKG_ORG=aswftesting -ARG OLIVE_ORG=olivevideoeditor -ARG CI_COMMON_VERSION=2 -ARG VFXPLATFORM_VERSION=2022 -ARG OIIO_VERSION=v2.3.13.0 -ARG YASM_VERSION=1.3.0 -ARG JPEG_TURBO_VERSION=2.1.3 - -FROM ${ASWF_PKG_ORG}/ci-package-boost:${VFXPLATFORM_VERSION} as ci-package-boost -FROM ${ASWF_PKG_ORG}/ci-package-openexr:${VFXPLATFORM_VERSION} as ci-package-openexr -FROM ${ASWF_PKG_ORG}/ci-package-imath:${VFXPLATFORM_VERSION} as ci-package-imath - -FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-oiio - -ARG OLIVE_ORG -ARG VFXPLATFORM_VERSION -ARG OIIO_VERSION -ARG YASM_VERSION -ARG JPEG_TURBO_VERSION - -LABEL maintainer="olivevideoeditor@gmail.com" -LABEL com.vfxplatform.version=$VFXPLATFORM_VERSION -LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-oiio" -LABEL org.opencontainers.image.description="CentOS OpenImageIO Build Image" -LABEL org.opencontainers.image.url="http://olivevideoeditor.org" -LABEL org.opencontainers.image.source="https://github.com/olive-editor/olive" -LABEL org.opencontainers.image.vendor="Olive Team" -LABEL org.opencontainers.image.version="1.0" -LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" - -ENV OLIVE_ORG=${OLIVE_ORG} \ - VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \ - OIIO_VERSION=${OIIO_VERSION} \ - YASM_VERSION=${YASM_VERSION} \ - JPEG_TURBO_VERSION=${JPEG_TURBO_VERSION} \ - OLIVE_INSTALL_PREFIX=/usr/local - -COPY scripts/build_oiio.sh \ - /tmp/ - -COPY --from=ci-package-boost /. /usr/local/ -COPY --from=ci-package-openexr /. /usr/local/ -COPY --from=ci-package-imath /. /usr/local/ - -RUN curl -fLsS -o yasm.tar.gz "http://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz" && \ - tar xf yasm.tar.gz && \ - rm -f yasm.tar.gz && \ - cd yasm* && \ - ./configure --prefix="${OLIVE_INSTALL_PREFIX}" && \ - make -j$(nproc) && \ - make install && \ - cd .. && \ - rm -rf yasm* - -RUN /tmp/before_build.sh && \ - /tmp/build_oiio.sh && \ - /tmp/copy_new_files.sh - -FROM scratch as ci-package-oiio - -COPY --from=ci-oiio /package/. / diff --git a/docker/ci-olive/Dockerfile b/docker/ci-olive/Dockerfile deleted file mode 100644 index fab98dfc0..000000000 --- a/docker/ci-olive/Dockerfile +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (C) 2022 Olive Team -# SPDX-License-Identifier: GPL-3.0-or-later - -# Build image (default): -# docker build -t olivevideoeditor/ci-olive:2022.2 -f ci-olive/Dockerfile . -# -# .n is the build image revision number. It should be incremented each time a -# new image is published (also update the GitHub Actions workflow!). -# This allows to revert to a previous image should something go wrong. - -ARG OLIVE_ORG=olivevideoeditor -ARG ASWF_PKG_ORG=aswftesting -ARG CI_COMMON_VERSION=2 -ARG VFXPLATFORM_VERSION=2022 -ARG OCIO_VERSION=2.1.1 -ARG FFMPEG_VERSION=5.0 -ARG OTIO_VERSION=0.14.1 -ARG OIIO_VERSION=2.3.13.0 - -FROM ${ASWF_PKG_ORG}/ci-package-qt:${VFXPLATFORM_VERSION} as ci-package-qt -FROM ${ASWF_PKG_ORG}/ci-package-python:${VFXPLATFORM_VERSION} as ci-package-python -FROM ${ASWF_PKG_ORG}/ci-package-boost:${VFXPLATFORM_VERSION} as ci-package-boost -FROM ${ASWF_PKG_ORG}/ci-package-imath:${VFXPLATFORM_VERSION} as ci-package-imath -FROM ${ASWF_PKG_ORG}/ci-package-openexr:${VFXPLATFORM_VERSION} as ci-package-openexr -# A custom OIIO package without OpenVDB/Blosc/TBB would be smaller, -# but it currently does not pick up libwebp for some reason. -#FROM ${OLIVE_ORG}/ci-package-oiio:${OIIO_VERSION} as ci-package-oiio -FROM ${ASWF_PKG_ORG}/ci-package-oiio:${VFXPLATFORM_VERSION} as ci-package-oiio -FROM ${ASWF_PKG_ORG}/ci-package-openvdb:${VFXPLATFORM_VERSION} as ci-package-openvdb -FROM ${ASWF_PKG_ORG}/ci-package-blosc:${VFXPLATFORM_VERSION} as ci-package-blosc -FROM ${ASWF_PKG_ORG}/ci-package-tbb:${VFXPLATFORM_VERSION} as ci-package-tbb -#FROM ${ASWF_PKG_ORG}/ci-package-ocio:${VFXPLATFORM_VERSION}-${OCIO_VERSION} as ci-package-ocio -# Our package is compiled as RelWithDebInfo -FROM ${OLIVE_ORG}/ci-package-ocio:${VFXPLATFORM_VERSION}-${OCIO_VERSION} as ci-package-ocio -FROM ${OLIVE_ORG}/ci-package-ffmpeg:${FFMPEG_VERSION} as ci-package-ffmpeg -FROM ${OLIVE_ORG}/ci-package-crashpad:latest as ci-package-crashpad -FROM ${OLIVE_ORG}/ci-package-otio:${OTIO_VERSION} as ci-package-otio - -FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-olive - -ARG OLIVE_ORG -ARG VFXPLATFORM_VERSION -ARG PYTHON_VERSION=3.9 - -LABEL maintainer="olivevideoeditor@gmail.com" -LABEL com.vfxplatform.version=$VFXPLATFORM_VERSION -LABEL org.opencontainers.image.name="olivevideoeditor/ci-olive" -LABEL org.opencontainers.image.description="CentOS CI Olive Build Image" -LABEL org.opencontainers.image.url="http://olivevideoeditor.org" -LABEL org.opencontainers.image.source="https://github.com/olive-editor/olive" -LABEL org.opencontainers.image.vendor="Olive Team" -LABEL org.opencontainers.image.version="1.0" -LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" - -ENV PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:${PYTHONPATH} \ - CRASHPAD_LOCATION=/usr/local/crashpad \ - VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} - -COPY --from=ci-package-qt /. /usr/local/ -COPY --from=ci-package-python /. /usr/local/ -COPY --from=ci-package-boost /. /usr/local/ -COPY --from=ci-package-imath /. /usr/local/ -COPY --from=ci-package-openexr /. /usr/local/ -COPY --from=ci-package-oiio /. /usr/local/ -# The ASWF OIIO package requires OpenVDB, Blosc, and TBB -COPY --from=ci-package-openvdb /. /usr/local/ -COPY --from=ci-package-blosc /. /usr/local/ -COPY --from=ci-package-tbb /. /usr/local/ -COPY --from=ci-package-ocio /. /usr/local/ -COPY --from=ci-package-ffmpeg /. /usr/local/ -COPY --from=ci-package-crashpad /. /usr/local/ -COPY --from=ci-package-otio /. /usr/local/ -COPY scripts/build_olive.sh /tmp/ - -RUN curl --location "https://github.com/probonopd/linuxdeployqt/releases/download/7/linuxdeployqt-7-x86_64.AppImage" \ - -o "/usr/local/linuxdeployqt-x86_64.AppImage" && \ - chmod a+x "/usr/local/linuxdeployqt-x86_64.AppImage" diff --git a/docker/ci-otio/Dockerfile b/docker/ci-otio/Dockerfile deleted file mode 100644 index 794b5797d..000000000 --- a/docker/ci-otio/Dockerfile +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (C) 2022 Olive Team -# SPDX-License-Identifier: GPL-3.0-or-later - -# Build image (default): -# docker build -t olivevideoeditor/ci-package-otio:0.14.1 -f ci-otio/Dockerfile . - -ARG OLIVE_ORG=olivevideoeditor -ARG ASWF_PKG_ORG=aswftesting -ARG CI_COMMON_VERSION=2 -ARG VFXPLATFORM_VERSION=2022 -ARG OTIO_VERSION=v0.14.1 -ARG CXX_STANDARD=17 - -# We are currently not interested in the Python implementation and bindings -#FROM ${ASWF_PKG_ORG}/ci-package-python:${VFXPLATFORM_VERSION} as ci-package-python -#FROM ${ASWF_PKG_ORG}/ci-package-qt:${VFXPLATFORM_VERSION} as ci-package-qt -#FROM ${ASWF_PKG_ORG}/ci-package-pyside:${VFXPLATFORM_VERSION} as ci-package-pyside - -FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-otio - -ARG OLIVE_ORG -ARG VFXPLATFORM_VERSION -ARG OTIO_VERSION -ARG CXX_STANDARD -ARG PYTHON_VERSION=3.9 - -LABEL maintainer="olivevideoeditor@gmail.com" -LABEL com.vfxplatform.version=$VFXPLATFORM_VERSION -LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-otio" -LABEL org.opencontainers.image.description="CentOS OpenTimelineIO Build Image" -LABEL org.opencontainers.image.url="http://olivevideoeditor.org" -LABEL org.opencontainers.image.source="https://github.com/olive-editor/olive" -LABEL org.opencontainers.image.vendor="Olive Team" -LABEL org.opencontainers.image.version="1.0" -LABEL org.opencontainers.image.licenses="GPL-3.0-or-later" - -ENV OLIVE_ORG=${OLIVE_ORG} \ - CI_COMMON_VERSION=${CI_COMMON_VERSION} \ - VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \ - OTIO_VERSION=${OTIO_VERSION} \ - CXX_STANDARD=${CXX_STANDARD} \ - OLIVE_INSTALL_PREFIX=/usr/local -# PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:/usr/local/lib/python \ - -COPY scripts/build_otio.sh \ - /tmp/ - -#COPY --from=ci-package-python /. /usr/local/ -#COPY --from=ci-package-qt /. /usr/local/ -#COPY --from=ci-package-pyside /. /usr/local/ - -RUN /tmp/before_build.sh && \ - /tmp/build_otio.sh && \ - /tmp/copy_new_files.sh - -FROM scratch as ci-package-otio - -COPY --from=ci-otio /package/. / diff --git a/docker/scripts/base/install_cmake.sh b/docker/scripts/base/install_cmake.sh deleted file mode 100644 index cab8bc1ff..000000000 --- a/docker/scripts/base/install_cmake.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# Modifications Copyright (C) 2025 mikesolar -# SPDX-License-Identifier: Apache-2.0 - - - - - -set -ex - -if [ ! -f "$DOWNLOADS_DIR/cmake-${CMAKE_VERSION}-Linux-x86_64.sh" ]; then - curl --location "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh" -o "$DOWNLOADS_DIR/cmake-${CMAKE_VERSION}-Linux-x86_64.sh" -fi - -sh "$DOWNLOADS_DIR/cmake-${CMAKE_VERSION}-Linux-x86_64.sh" --skip-license --prefix=/usr/local --exclude-subdir diff --git a/docker/scripts/build_crashpad.sh b/docker/scripts/build_crashpad.sh deleted file mode 100644 index 7221ae297..000000000 --- a/docker/scripts/build_crashpad.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2022 Olive Team -# Modifications Copyright (C) 2025 mikesolar -# SPDX-License-Identifier: GPL-3.0-or-later - - - - - -set -ex - -# Get Google's build tools -git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git - -# HACK: Compile our own gn. The one included in depot_tools requires GLIBC_2.18, -# but CentOS 7 only ships with GLIBC_2.17. -git clone https://gn.googlesource.com/gn -# NOTE: Don't clone with --depth 1, this will make build/gen.py fail! -cd gn -python build/gen.py -ninja -C out -cd .. -# Put the path to our own gn build first -PATH="$(pwd)/gn/out:$(pwd)/depot_tools:$PATH" -export PATH - -# Build Crashpad with Clang (default) -# Toolchain can be controlled with env vars CC, CXX and AR -mkdir crashpad -cd crashpad -git clone --depth 1 https://github.com/olive-editor/crashpad.git -gclient config https://github.com/olive-editor/crashpad.git -gclient sync -cd crashpad -# TODO: Do we want to set any special args here? For example: -# gn gen --args="target_cpu=\"x64\" is_debug=true" out/Default -gn gen out/Default -ninja -C out/Default - -# Include list -echo 'out/Default/crashpad_handler' > /tmp/crashpad_include_list.txt -find . \( -type f -o -type l \) \ - -name "*.h" -o \ - -name "*.o" -o \ - -name "*.a" | cut -c3- >> /tmp/crashpad_include_list.txt - -# Exclude list -echo '**/.git/** -compat/android/** -compat/ios/** -compat/mac/** -compat/non_elf/** -compat/win/** -handler/mac/** -handler/win/** -infra/** -minidump/test/** -out/Default/**_test* -snapshot/fuchsia/** -snapshot/ios/** -snapshot/mac/** -snapshot/win/** -test/** -third_party/fuchsia/** -third_party/gyp/gyp/test/** -third_party/mini_chromium/mini_chromium/base/fuchsia/** -third_party/mini_chromium/mini_chromium/testing/** -tools/mac/** -util/fuchsia/** -util/ios/** -util/mac/** -util/win/**' > /tmp/crashpad_exclude_list.txt - -rsync -av \ - --files-from=/tmp/crashpad_include_list.txt \ - --exclude-from=/tmp/crashpad_exclude_list.txt \ - --prune-empty-dirs \ - . "${OLIVE_INSTALL_PREFIX}/crashpad" - -cd ../.. - -# Build Breakpad for minidump_stackwalk -mkdir breakpad -cd breakpad -fetch breakpad -cd src -./configure --prefix="${OLIVE_INSTALL_PREFIX}" -make -j$(nproc) -make install diff --git a/docker/scripts/build_ffmpeg.sh b/docker/scripts/build_ffmpeg.sh deleted file mode 100644 index 98ad4197f..000000000 --- a/docker/scripts/build_ffmpeg.sh +++ /dev/null @@ -1,297 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2022 Olive Team -# Modifications Copyright (C) 2025 mikesolar -# SPDX-License-Identifier: GPL-3.0-or-later - - - - - -# Largely based on https://trac.ffmpeg.org/wiki/CompilationGuide/Centos -# -# Uses { command } & pattern for parallelism https://gist.github.com/thenadz/6c0584d42fb007582fbc -# -# TODO: Use advanced options such as LTO? e.g. https://code.videolan.org/videolan/x264/-/blob/master/configure -# TODO: Enable debug symbols? (Or is it opt-out?) -# TODO: Add more ffmpeg libraries? See https://raw.githubusercontent.com/jrottenberg/ffmpeg/master/docker-images/4.2/centos7/Dockerfile - -set -ex - -# Set up recent NASM -{ - curl -fLsS -o nasm.tar.xz "https://www.nasm.us/pub/nasm/releasebuilds/${NASM_VERSION}/nasm-${NASM_VERSION}.tar.xz" - tar xf nasm.tar.xz - rm -f nasm.tar.xz - cd nasm* - ./autogen.sh - ./configure \ - --prefix="/usr" - make -j$(nproc) - make install - cd .. - rm -rf nasm* -} & - -# Set up recent YASM -{ - curl -fLsS -o yasm.tar.gz "http://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz" - tar xf yasm.tar.gz - rm -f yasm.tar.gz - cd yasm* - ./configure \ - --prefix="/usr" - make -j$(nproc) - make install - cd .. - rm -rf yasm* -} & - -# join jobs, some libs depend on NASM/YASM -wait - -# Set up libsvtav1 -{ - git clone --depth 1 --branch "${SVTAV1_VERSION}" "https://gitlab.com/AOMediaCodec/SVT-AV1.git" - cd SVT-AV1/Build - cmake .. \ - -G "Unix Makefiles" \ - -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_APPS=OFF - cmake --build . - cmake --install . - cd ../.. - rm -rf SVT-AV1 -} & - -# Set up libx264 -{ - # TODO: Checkout stable branch instead of master? - git clone --depth 1 "https://code.videolan.org/videolan/x264.git" - cd x264 - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --enable-shared \ - --enable-pic \ - --disable-cli - make - make install - cd .. - rm -rf x264 -} & - -# Set up libx265 -{ - # BitBucket dropped support for Mercurial repos - #hg clone https://bitbucket.org/multicoreware/x265 - # Need to fetch tags (off by default for shallow clones) or checkout a tag to avoid pkg-config error - git clone --depth 1 --branch "${X265_VERSION}" "https://bitbucket.org/multicoreware/x265_git.git" x265 - cd x265/build/linux - cmake \ - -G "Unix Makefiles" \ - -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ - ../../source - make - make install - cd ../../.. - rm -rf x265 -} & - -# Set up libogg -{ - curl -fLsS -o libogg.tar.gz "http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz" - tar xf libogg.tar.gz - rm -f libogg.tar.gz - cd libogg* - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --enable-shared - make - make install - cd .. - rm -rf libogg* -} & - -# Set up libopus -{ - curl -fLsS -o opus.tar.gz "https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz" - tar xf opus.tar.gz - rm -f opus.tar.gz - cd opus* - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --enable-shared - make - make install - cd .. - rm -rf opus* -} & - -# join jobs, libvorbis and libtheora depend on libogg -wait - -# Set up libvorbis -{ - curl -fLsS -o libvorbis.tar.gz "http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz" - tar xf libvorbis.tar.gz - rm -f libvorbis.tar.gz - cd libvorbis* - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --with-ogg="${OLIVE_INSTALL_PREFIX}" \ - --enable-shared - make - make install - cd .. - rm -rf libvorbis* -} & - -# Set up libtheora -{ - curl -fLsS -o libtheora.tar.gz "http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz" - tar xf libtheora.tar.gz - rm -f libtheora.tar.gz - cd libtheora* - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --with-ogg="${OLIVE_INSTALL_PREFIX}" \ - --enable-shared - make - make install - cd .. - rm -rf libtheora* -} & - -# Set up libvpx -{ - git clone --depth 1 --branch "v${VPX_VERSION}" "https://chromium.googlesource.com/webm/libvpx.git" - cd libvpx - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --enable-shared \ - --enable-pic \ - --enable-vp8 \ - --enable-vp9 \ - --enable-vp9-highbitdepth \ - --as=yasm \ - --disable-examples \ - --disable-unit-tests \ - --disable-docs \ - --disable-install-bins - make - make install - cd .. - rm -rf libvpx -} & - -### Set up libwebp -{ - curl -fLsS -o libwebp.tar.gz "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz" - tar xf libwebp.tar.gz - rm -f libwebp.tar.gz - cd libwebp* - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --enable-shared - make - make install - cd .. - rm -rf libwebp* -} & - -# Set up libmp3lame -{ - curl -fLsS -o lame.tar.gz "https://downloads.sourceforge.net/project/lame/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz" - tar xf lame.tar.gz - rm -f lame.tar.gz - cd lame* - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --enable-shared \ - --enable-nasm \ - --disable-frontend - make - make install - cd .. - rm -rf lame* -} & - -### Set up xvid -{ - curl -fLsS -o xvidcore.tar.gz "https://downloads.xvid.com/downloads/xvidcore-${XVID_VERSION}.tar.gz" - tar xf xvidcore.tar.gz - rm -f xvidcore.tar.gz - cd xvidcore/build/generic - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --bindir="${OLIVE_INSTALL_PREFIX}/bin" - make - make install - cd ../../.. - rm -rf xvidcore -} & - -# Set up openjpeg -{ - curl -fLsS -o openjpeg.tar.gz "https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz" - tar xf openjpeg.tar.gz - rm -f openjpeg.tar.gz - cd openjpeg* - cmake \ - -DBUILD_THIRDPARTY:BOOL=ON \ - -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ - . - make - make install - cd .. - rm -rf openjpeg* -} & - -# Set up libpng -{ - git clone --depth 1 "https://git.code.sf.net/p/libpng/code" libpng --branch "v${LIBPNG_VERSION}" - cd libpng - ./autogen.sh - ./configure \ - --prefix="${OLIVE_INSTALL_PREFIX}" - make check - make install - cd .. - rm -rf libpng -} & - -# join all jobs -wait - -curl -fLsS -o ffmpeg.tar.xz "https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz" -tar xf ffmpeg.tar.xz -cd ffmpeg* - -# TODO: --enable-debug? -PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH" ./configure \ - --disable-doc \ - --disable-ffplay \ - --enable-gpl \ - --enable-version3 \ - --enable-shared \ - --enable-libsvtav1 \ - --enable-libfreetype \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libopus \ - --enable-libvorbis \ - --enable-libtheora \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libmp3lame \ - --enable-libxvid \ - --enable-libopenjpeg \ - --prefix="${OLIVE_INSTALL_PREFIX}" \ - --extra-libs=-lpthread \ - --extra-libs=-lm \ - --extra-cflags="-I${OLIVE_INSTALL_PREFIX}/include" \ - --extra-ldflags="-L${OLIVE_INSTALL_PREFIX}/lib" -make -j$(nproc) -make install -cd .. -rm -rf ffmpeg* diff --git a/docker/scripts/build_ocio.sh b/docker/scripts/build_ocio.sh deleted file mode 100644 index fbddcfa82..000000000 --- a/docker/scripts/build_ocio.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2022 Olive Team -# Modifications Copyright (C) 2025 mikesolar -# SPDX-License-Identifier: GPL-3.0-or-later - - - - - -set -ex - -mkdir ocio -cd ocio - -git clone --depth 1 --branch "${OCIO_VERSION}" https://github.com/AcademySoftwareFoundation/OpenColorIO.git -cd OpenColorIO - -mkdir build -cd build -cmake \ - -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DOCIO_BUILD_APPS=OFF \ - -DOCIO_BUILD_NUKE=OFF \ - -DOCIO_BUILD_DOCS=OFF \ - -DOCIO_BUILD_TESTS=OFF \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_USE_HEADLESS=OFF \ - -DOCIO_BUILD_PYTHON=OFF \ - -DOCIO_BUILD_JAVA=OFF \ - -DOCIO_WARNING_AS_ERROR=OFF \ - -DOCIO_INSTALL_EXT_PACKAGES=ALL \ - .. -make -j$(nproc) -make install - -cd ../.. - -curl --location "https://github.com/imageworks/OpenColorIO-Configs/archive/v${OCIO_CONFIGS_VERSION}.tar.gz" -o "ocio-configs.tar.gz" -tar -zxf ocio-configs.tar.gz -cd "OpenColorIO-Configs-${OCIO_CONFIGS_VERSION}" - -mkdir "${OLIVE_INSTALL_PREFIX}/openColorIO" -cp nuke-default/config.ocio "${OLIVE_INSTALL_PREFIX}/openColorIO/" -cp -r nuke-default/luts "${OLIVE_INSTALL_PREFIX}/openColorIO/" - -cd ../.. -rm -rf ocio diff --git a/docker/scripts/build_oiio.sh b/docker/scripts/build_oiio.sh deleted file mode 100644 index b21bf6dcc..000000000 --- a/docker/scripts/build_oiio.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2022 Olive Team -# Modifications Copyright (C) 2025 mikesolar -# SPDX-License-Identifier: GPL-3.0-or-later - - - - - -set -ex - -# TODO: Move to install_yumpackages.sh -yum install -y \ - libtiff \ - libtiff-devel \ - libpng \ - libpng-devel - -git clone --depth 1 --branch "$JPEG_TURBO_VERSION" https://github.com/libjpeg-turbo/libjpeg-turbo -cd libjpeg-turbo -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ - .. -make -j$(nproc) -make install -cd ../.. -rm -rf libjpeg-turbo - - -# TODO: Make OIIO pick up WebP (missing: WEBPDEMUX_LIBRARY) -git clone --depth 1 --branch "$OIIO_VERSION" https://github.com/OpenImageIO/oiio.git -cd oiio - -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ - -DOIIO_BUILD_TOOLS=OFF \ - -DOIIO_BUILD_TESTS=OFF \ - -DVERBOSE=ON \ - -DUSE_PYTHON=0 \ - -DBoost_NO_BOOST_CMAKE=ON \ - .. -make -j$(nproc) -make install - -cd ../.. -rm -rf oiio diff --git a/docker/scripts/build_olive.sh b/docker/scripts/build_olive.sh deleted file mode 100644 index 76cc8ddf5..000000000 --- a/docker/scripts/build_olive.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash - -# -# Oak Video Editor - Non-Linear Video Editor -# Copyright (C) 2025 Olive CE Team -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -git clone --depth 1 https://github.com/olive-editor/olive.git -cd olive -mkdir build -cd build -cmake .. -G "Ninja" -cmake --build . - -cmake --install app --prefix appdir/usr - -# TODO: Can the following libs be excluded? -#libQt5DBus.so,\ -#libQt5MultimediaGstTools.so,\ -#libQt5MultimediaWidgets.so,\ - -/usr/local/linuxdeployqt-x86_64.AppImage \ - appdir/usr/share/applications/org.olivevideoeditor.Olive.desktop \ - -appimage \ - -exclude-libs=\ -libQt5Pdf.so,\ -libQt5Qml.so,\ -libQt5QmlModels.so,\ -libQt5Quick.so,\ -libQt5VirtualKeyboard.so \ - -bundle-non-qt-libs \ - -executable=appdir/usr/bin/crashpad_handler \ - -executable=appdir/usr/bin/minidump_stackwalk \ - -executable=appdir/usr/bin/olive-crashhandler \ - --appimage-extract-and-run - -./Olive*.AppImage --appimage-extract-and-run --version diff --git a/docker/scripts/build_otio.sh b/docker/scripts/build_otio.sh deleted file mode 100644 index 43edb61c1..000000000 --- a/docker/scripts/build_otio.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2022 Olive Team -# Modifications Copyright (C) 2025 mikesolar -# SPDX-License-Identifier: GPL-3.0-or-later - - - - - -set -ex - -git clone --depth 1 --branch "$OTIO_VERSION" https://github.com/PixarAnimationStudios/OpenTimelineIO.git -cd OpenTimelineIO - -#pip install --prefix="${OLIVE_INSTALL_PREFIX}" . - -mkdir build -cd build -cmake .. -G "Ninja" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_CXX_STANDARD="${CXX_STANDARD}" \ - -DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \ - -DOTIO_PYTHON_INSTALL=OFF -cmake --build . -cmake --install . - -cd ../.. -rm -rf OpenTimelineIO diff --git a/docker/scripts/common/before_build.sh b/docker/scripts/common/before_build.sh deleted file mode 100644 index 277d80fc4..000000000 --- a/docker/scripts/common/before_build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# Modifications Copyright (C) 2025 mikesolar -# SPDX-License-Identifier: Apache-2.0 - - - - - -set -ex - -rm -rf /package - -cd "${OLIVE_INSTALL_PREFIX}" -find . -type f -o -type l | cut -c3- > /tmp/previous-prefix-files.txt diff --git a/docker/scripts/common/copy_new_files.sh b/docker/scripts/common/copy_new_files.sh deleted file mode 100644 index 78a8340f5..000000000 --- a/docker/scripts/common/copy_new_files.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# Modifications Copyright (C) 2025 mikesolar -# SPDX-License-Identifier: Apache-2.0 - - - - - -set -ex - -mkdir -p /package - -cd "${OLIVE_INSTALL_PREFIX}" -find . -type l -o -type f | cut -c3- > /tmp/new-prefix-files.txt -rsync -av --files-from=/tmp/new-prefix-files.txt --exclude-from=/tmp/previous-prefix-files.txt . /package/ diff --git a/docker/scripts/common/install_yumpackages.sh b/docker/scripts/common/install_yumpackages.sh deleted file mode 100644 index 636909da7..000000000 --- a/docker/scripts/common/install_yumpackages.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2022 Olive Team -# Modifications Copyright (C) 2025 mikesolar -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later - - - - - -set -ex - -# TODO: Check if this causes any problems. ASWF doesn't run a yum update. -yum update -y - -# TODO: Add deps of deps which are explicitly listed in aswf-docker? -yum install --setopt=tsflags=nodocs -y \ - bzip2-devel \ - cups-libs \ - freetype-devel \ - giflib-devel \ - gstreamer1 \ - gstreamer1-devel \ - gstreamer1-plugins-bad-free \ - gstreamer1-plugins-bad-free-devel \ - libcurl-devel \ - libicu-devel \ - libmng-devel \ - LibRaw-devel \ - libwebp-devel \ - libXcomposite \ - libXcomposite-devel \ - libXcursor \ - libXcursor-devel \ - libxkbcommon \ - libxkbcommon-devel \ - libxkbcommon-x11-devel \ - libXScrnSaver \ - libXScrnSaver-devel \ - mesa-libGL-devel \ - numactl-devel \ - openjpeg2-devel \ - pciutils-devel \ - pulseaudio-libs \ - pulseaudio-libs-devel \ - python3-tkinter \ - xcb-util-image \ - xcb-util-image-devel \ - xcb-util-keysyms \ - xcb-util-keysyms-devel \ - xcb-util-renderutil \ - xcb-util-renderutil-devel \ - xcb-util-wm \ - xcb-util-wm-devel \ - zlib-devel - -# This is needed for Xvfb to function properly. -dbus-uuidgen > /etc/machine-id - -yum -y groupinstall "Development Tools" - -# TODO: Below code installs the obsolete devtoolset-6. -# Unclear which devtoolset it will be for VFX platform CY2021: -# https://groups.google.com/forum/#!topic/vfx-platform-discuss/_-_CPw1fD3c - -yum install -y --setopt=tsflags=nodocs centos-release-scl-rh yum-utils - -if [[ $DTS_VERSION == 6 ]]; then - # Use the centos vault as the original devtoolset-6 is not part of CentOS-7 anymore - sed -i 's/7/7.6.1810/g; s|^#\s*\(baseurl=http://\)mirror|\1vault|g; /mirrorlist/d' /etc/yum.repos.d/CentOS-SCLo-*.repo -fi - -yum install -y --setopt=tsflags=nodocs \ - "devtoolset-$DTS_VERSION-toolchain" - -yum install -y epel-release - -# Additional package that are not found initially -yum install -y \ - rh-git218 \ - portaudio-devel -# lame-devel -# libcaca-devel \ -# libdb4-devel \ -# libdc1394-devel \ -# openssl11-devel \ -# p7zip \ -# yasm-devel \ -# zvbi-devel - -# TODO: Does clearing the cache have any negative side effects? -yum clean all - -# HACK: Qt5GuiConfigExtras.cmake expects libGL.so in /usr/local/lib64 but it gets installed to /usr/lib64 -ln -s /usr/lib64/libGL.so /usr/local/lib64/ -# Alternatively, we could edit /usr/local/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake -# - _qt5gui_find_extra_libs(OPENGL "/usr/local/lib64/libGL.so" "" "") -# + _qt5gui_find_extra_libs(OPENGL "/usr/lib64/libGL.so" "" "") diff --git a/docs/build_macos.md b/docs/build_macos.md index b6885eed7..72b5ca4dd 100644 --- a/docs/build_macos.md +++ b/docs/build_macos.md @@ -146,13 +146,13 @@ The build process may take 10-30 minutes depending on your hardware. After successful build, you can run Oak Video Editor: ```bash -./build/app/olive-editor +./build/app/oak-editor ``` Or open the app bundle (if generated): ```bash -open ./build/app/olive-editor.app +open ./build/app/Oak.app ``` --- @@ -234,7 +234,7 @@ export CPATH="/opt/homebrew/include:$CPATH" To create a distributable `.app` bundle, you may need to use `macdeployqt`: ```bash -/opt/homebrew/opt/qt@6/bin/macdeployqt build/app/olive-editor.app +/opt/homebrew/opt/qt@6/bin/macdeployqt build/app/Oak.app ``` This will bundle the required Qt libraries into the app. diff --git a/docs/zh/build_macos-zh.md b/docs/zh/build_macos-zh.md index 4cc2f7464..4bee93b20 100644 --- a/docs/zh/build_macos-zh.md +++ b/docs/zh/build_macos-zh.md @@ -146,13 +146,13 @@ cmake --build build --config Release 编译成功后,你可以运行 Oak 视频编辑器: ```bash -./build/app/olive-editor +./build/app/oak-editor ``` 或者打开应用程序包(如果已生成): ```bash -open ./build/app/olive-editor.app +open ./build/app/Oak.app ``` --- @@ -234,7 +234,7 @@ export CPATH="/opt/homebrew/include:$CPATH" 要创建可分发的 `.app` 包,你可能需要使用 `macdeployqt`: ```bash -/opt/homebrew/opt/qt@6/bin/macdeployqt build/app/olive-editor.app +/opt/homebrew/opt/qt@6/bin/macdeployqt build/app/Oak.app ``` 这会将所需的 Qt 库打包到应用程序中。 diff --git a/tests/gtest/render_worker_footage_test.cpp b/tests/gtest/render_worker_footage_test.cpp index e90c4487b..d7d82d091 100644 --- a/tests/gtest/render_worker_footage_test.cpp +++ b/tests/gtest/render_worker_footage_test.cpp @@ -2,7 +2,7 @@ * Oak Video Editor - Render Worker Footage Integration Test * Copyright (C) 2026 Oak Team * - * End-to-end test that spawns olive-render-worker, feeds it a real decoded + * End-to-end test that spawns oak-render-worker, feeds it a real decoded * frame from tests/demo.mp4 through the IPC shared-memory frame pool, and * verifies that the worker returns a non-black output frame. */ @@ -100,9 +100,9 @@ QString WorkerBinaryPath() dir.cdUp(); // tests -> build dir dir.cd(QStringLiteral("app")); #if defined(_WIN32) - return dir.filePath(QStringLiteral("olive-render-worker.exe")); + return dir.filePath(QStringLiteral("oak-render-worker.exe")); #else - return dir.filePath(QStringLiteral("olive-render-worker")); + return dir.filePath(QStringLiteral("oak-render-worker")); #endif }