Docker: Update build image with final OCIOv2, Qt 5.15.2, OTIO, Crashpad (#1489)
* Add missing xcb-util-* packages. Qt's libqxcb.so seems to require them in the newer Qt version * Adjust breakpad install prefix to match CMake change * Add build script for Olive for quick testing * .n in CI image actually stands for image revision * skipping the CI is now supported natively by GitHub Actions
This commit is contained in:
@@ -36,28 +36,20 @@ jobs:
|
|||||||
compiler-name: GCC 9.3.1
|
compiler-name: GCC 9.3.1
|
||||||
cmake-gen: Ninja
|
cmake-gen: Ninja
|
||||||
os-name: Linux (CentOS 7)
|
os-name: Linux (CentOS 7)
|
||||||
vfx-cy: 2021
|
|
||||||
ci-common-version: 2
|
|
||||||
- build-type: RelWithDebInfo
|
- build-type: RelWithDebInfo
|
||||||
cc-compiler: clang
|
cc-compiler: clang
|
||||||
cxx-compiler: clang++
|
cxx-compiler: clang++
|
||||||
compiler-name: Clang 10.0.0
|
compiler-name: Clang 10.0.0
|
||||||
cmake-gen: Ninja
|
cmake-gen: Ninja
|
||||||
os-name: Linux (CentOS 7)
|
os-name: Linux (CentOS 7)
|
||||||
vfx-cy: 2021
|
|
||||||
ci-common-version: 2
|
|
||||||
name: |
|
name: |
|
||||||
${{ matrix.os-name }}
|
${{ matrix.os-name }}
|
||||||
<${{ matrix.compiler-name }},
|
<${{ matrix.compiler-name }},
|
||||||
${{ matrix.build-type }},
|
${{ matrix.build-type }},
|
||||||
${{ matrix.cmake-gen }},
|
${{ matrix.cmake-gen }}>
|
||||||
VFX CY${{ matrix.vfx-cy }},
|
|
||||||
CI Common Version ${{ matrix.ci-common-version }}>
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: olivevideoeditor/ci-olive:${{ matrix.vfx-cy }}.${{ matrix.ci-common-version }}
|
image: olivevideoeditor/ci-olive:2021.3
|
||||||
if: >-
|
|
||||||
!contains(github.event.head_commit.message, '[skip ci]')
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Source Code
|
- name: Checkout Source Code
|
||||||
@@ -138,8 +130,6 @@ jobs:
|
|||||||
${{ matrix.build-type }},
|
${{ matrix.build-type }},
|
||||||
${{ matrix.cmake-gen }}>
|
${{ matrix.cmake-gen }}>
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
if: >-
|
|
||||||
!contains(github.event.head_commit.message, '[skip ci]')
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Source Code
|
- name: Checkout Source Code
|
||||||
@@ -284,8 +274,6 @@ jobs:
|
|||||||
${{ matrix.build-type }},
|
${{ matrix.build-type }},
|
||||||
${{ matrix.cmake-gen }}>
|
${{ matrix.cmake-gen }}>
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
if: >-
|
|
||||||
!contains(github.event.head_commit.message, '[skip ci]')
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Source Code
|
- name: Checkout Source Code
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ find_library(OCIO_LIBRARY
|
|||||||
libOpenColorIO.so.2.0 # libOpenColorIO.so.2.0 (Linux)
|
libOpenColorIO.so.2.0 # libOpenColorIO.so.2.0 (Linux)
|
||||||
OpenColorIO.2.0 # libOpenColorIO.2.0.dylib (macOS)
|
OpenColorIO.2.0 # libOpenColorIO.2.0.dylib (macOS)
|
||||||
OpenColorIO_2_0 # OpenColorIO_2_0.lib (Windows)
|
OpenColorIO_2_0 # OpenColorIO_2_0.lib (Windows)
|
||||||
OpenColorIO # (fallback)
|
|
||||||
HINTS
|
HINTS
|
||||||
"${OCIO_LOCATION}"
|
"${OCIO_LOCATION}"
|
||||||
"$ENV{OCIO_LOCATION}"
|
"$ENV{OCIO_LOCATION}"
|
||||||
|
|||||||
+12
-5
@@ -14,7 +14,7 @@ images maintained by the Olive team as well as from
|
|||||||
Dependency hierarchy:
|
Dependency hierarchy:
|
||||||
|
|
||||||
1. `ci-common`
|
1. `ci-common`
|
||||||
2. `ci-otio`, `ci-crashpad`, `ci-ffmpeg`
|
2. `ci-otio`, `ci-crashpad`, `ci-ffmpeg`, `ci-ocio`
|
||||||
3. `ci-olive`
|
3. `ci-olive`
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
@@ -26,14 +26,15 @@ docker pull olivevideoeditor/ci-common:2
|
|||||||
docker pull olivevideoeditor/ci-package-otio
|
docker pull olivevideoeditor/ci-package-otio
|
||||||
docker pull olivevideoeditor/ci-package-crashpad
|
docker pull olivevideoeditor/ci-package-crashpad
|
||||||
docker pull olivevideoeditor/ci-package-ffmpeg:4.2.4
|
docker pull olivevideoeditor/ci-package-ffmpeg:4.2.4
|
||||||
docker pull olivevideoeditor/ci-olive:2021.2
|
docker pull olivevideoeditor/ci-package-ocio:2021-2.0.0
|
||||||
|
docker pull olivevideoeditor/ci-olive:2021.3
|
||||||
```
|
```
|
||||||
|
|
||||||
Use `ci-olive` image as local build container, by mounting working copy at
|
Use `ci-olive` image as local build container, by mounting working copy at
|
||||||
`~/olive` into guest system at `/opt/olive/olive`:
|
`~/olive` into guest system at `/opt/olive/olive`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --rm -it -v ~/olive:/opt/olive/olive olivevideoeditor/ci-olive:2021.2
|
docker run --rm -it -v ~/olive:/opt/olive/olive olivevideoeditor/ci-olive:2021.3
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake .. -G Ninja
|
cmake .. -G Ninja
|
||||||
@@ -48,9 +49,14 @@ docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile .
|
|||||||
docker build -t olivevideoeditor/ci-package-otio -f ci-otio/Dockerfile .
|
docker build -t olivevideoeditor/ci-package-otio -f ci-otio/Dockerfile .
|
||||||
docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile .
|
docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile .
|
||||||
docker build -t olivevideoeditor/ci-package-ffmpeg:4.2.4 -f ci-ffmpeg/Dockerfile .
|
docker build -t olivevideoeditor/ci-package-ffmpeg:4.2.4 -f ci-ffmpeg/Dockerfile .
|
||||||
docker build -t olivevideoeditor/ci-olive:2021.2 -f ci-olive/Dockerfile .
|
docker build -t olivevideoeditor/ci-package-ocio:2021-2.0.0 -f ci-ocio/Dockerfile .
|
||||||
|
docker build -t olivevideoeditor/ci-olive:2021.3 -f ci-olive/Dockerfile .
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Note that `2021` in `ci-olive:2021.3` stands for the
|
||||||
|
[VFX Reference Platform](http://vfxplatform.com/) calendar year and `3` for the
|
||||||
|
build image revision (should be incremented each time a new image is published).
|
||||||
|
|
||||||
Publish images:
|
Publish images:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -58,5 +64,6 @@ docker push olivevideoeditor/ci-common:2
|
|||||||
docker push olivevideoeditor/ci-package-otio
|
docker push olivevideoeditor/ci-package-otio
|
||||||
docker push olivevideoeditor/ci-package-crashpad
|
docker push olivevideoeditor/ci-package-crashpad
|
||||||
docker push olivevideoeditor/ci-package-ffmpeg:4.2.4
|
docker push olivevideoeditor/ci-package-ffmpeg:4.2.4
|
||||||
docker push olivevideoeditor/ci-olive:2021.2
|
docker push olivevideoeditor/ci-package-ocio:2021-2.0.0
|
||||||
|
docker push olivevideoeditor/ci-olive:2021.3
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
# Copyright (C) 2020 Olive Team
|
# Copyright (C) 2020 Olive Team
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# 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):
|
# Build image (default):
|
||||||
# docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile .
|
# docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile .
|
||||||
@@ -8,7 +9,7 @@ ARG OLIVE_ORG=olivevideoeditor
|
|||||||
ARG ASWF_PKG_ORG=aswftesting
|
ARG ASWF_PKG_ORG=aswftesting
|
||||||
ARG CI_COMMON_VERSION=2
|
ARG CI_COMMON_VERSION=2
|
||||||
ARG DTS_VERSION=9
|
ARG DTS_VERSION=9
|
||||||
ARG CMAKE_VERSION=3.17.3
|
ARG CMAKE_VERSION=3.19.3
|
||||||
|
|
||||||
FROM ${ASWF_PKG_ORG}/ci-package-clang:${CI_COMMON_VERSION} as ci-package-clang
|
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 ${ASWF_PKG_ORG}/ci-package-ninja:${CI_COMMON_VERSION} as ci-package-ninja
|
||||||
@@ -31,21 +32,19 @@ LABEL org.opencontainers.image.licenses="GPL-3.0-or-later"
|
|||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
COPY scripts/${CI_COMMON_VERSION}/versions_common.sh \
|
COPY scripts/common/install_yumpackages.sh \
|
||||||
scripts/common/install_yumpackages.sh \
|
|
||||||
scripts/common/before_build.sh \
|
scripts/common/before_build.sh \
|
||||||
scripts/common/copy_new_files.sh \
|
scripts/common/copy_new_files.sh \
|
||||||
/tmp/
|
/tmp/
|
||||||
|
|
||||||
RUN source /tmp/versions_common.sh && \
|
ENV DTS_VERSION=${DTS_VERSION}
|
||||||
/tmp/install_yumpackages.sh
|
RUN /tmp/install_yumpackages.sh
|
||||||
|
|
||||||
RUN mkdir /opt/olive
|
RUN mkdir /opt/olive
|
||||||
WORKDIR /opt/olive
|
WORKDIR /opt/olive
|
||||||
|
|
||||||
ENV OLIVE_ORG=${OLIVE_ORG} \
|
ENV OLIVE_ORG=${OLIVE_ORG} \
|
||||||
CI_COMMON_VERSION=${CI_COMMON_VERSION} \
|
CI_COMMON_VERSION=${CI_COMMON_VERSION} \
|
||||||
DTS_VERSION=${DTS_VERSION} \
|
|
||||||
CMAKE_VERSION=${CMAKE_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} \
|
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
|
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
|
||||||
@@ -69,3 +68,4 @@ RUN export DOWNLOADS_DIR=/tmp/downloads && \
|
|||||||
/tmp/install_cmake.sh && \
|
/tmp/install_cmake.sh && \
|
||||||
# /tmp/patchup.sh && \
|
# /tmp/patchup.sh && \
|
||||||
rm -rf /tmp/downloads
|
rm -rf /tmp/downloads
|
||||||
|
# TODO: Remove scripts from /tmp ?
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ ARG CI_COMMON_VERSION=2
|
|||||||
ARG FFMPEG_VERSION=4.2.4
|
ARG FFMPEG_VERSION=4.2.4
|
||||||
ARG NASM_VERSION=2.15.03
|
ARG NASM_VERSION=2.15.03
|
||||||
ARG YASM_VERSION=1.3.0
|
ARG YASM_VERSION=1.3.0
|
||||||
|
ARG AOM_VERSION=v2.0.1
|
||||||
ARG X265_VERSION=3.4
|
ARG X265_VERSION=3.4
|
||||||
ARG OGG_VERSION=1.3.4
|
ARG OGG_VERSION=1.3.4
|
||||||
ARG OPUS_VERSION=1.3.1
|
ARG OPUS_VERSION=1.3.1
|
||||||
@@ -20,7 +21,7 @@ ARG LAME_VERSION=3.100
|
|||||||
ARG XVID_VERSION=1.3.5
|
ARG XVID_VERSION=1.3.5
|
||||||
ARG OPENJPEG_VERSION=2.3.1
|
ARG OPENJPEG_VERSION=2.3.1
|
||||||
ARG LIBPNG_VERSION=1.6.31
|
ARG LIBPNG_VERSION=1.6.31
|
||||||
# TODO: Make version of x264, x265 and libvpx selectable?
|
# TODO: Make version of x264 selectable?
|
||||||
ARG NUM_JOBS=2
|
ARG NUM_JOBS=2
|
||||||
|
|
||||||
FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-ffmpeg
|
FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-ffmpeg
|
||||||
@@ -30,6 +31,7 @@ ARG CI_COMMON_VERSION
|
|||||||
ARG FFMPEG_VERSION
|
ARG FFMPEG_VERSION
|
||||||
ARG NASM_VERSION
|
ARG NASM_VERSION
|
||||||
ARG YASM_VERSION
|
ARG YASM_VERSION
|
||||||
|
ARG AOM_VERSION
|
||||||
ARG X265_VERSION
|
ARG X265_VERSION
|
||||||
ARG OGG_VERSION
|
ARG OGG_VERSION
|
||||||
ARG OPUS_VERSION
|
ARG OPUS_VERSION
|
||||||
@@ -41,8 +43,7 @@ ARG LAME_VERSION
|
|||||||
ARG XVID_VERSION
|
ARG XVID_VERSION
|
||||||
ARG OPENJPEG_VERSION
|
ARG OPENJPEG_VERSION
|
||||||
ARG LIBPNG_VERSION
|
ARG LIBPNG_VERSION
|
||||||
# TODO: Make version of x264, x265 and libvpx selectable?
|
ARG NUM_JOBS
|
||||||
ARG NUM_JOBS=2
|
|
||||||
|
|
||||||
LABEL maintainer="olivevideoeditor@gmail.com"
|
LABEL maintainer="olivevideoeditor@gmail.com"
|
||||||
LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-ffmpeg"
|
LABEL org.opencontainers.image.name="$OLIVE_ORG/ci-ffmpeg"
|
||||||
@@ -61,6 +62,7 @@ ENV OLIVE_ORG=${OLIVE_ORG} \
|
|||||||
FFMPEG_VERSION=${FFMPEG_VERSION} \
|
FFMPEG_VERSION=${FFMPEG_VERSION} \
|
||||||
NASM_VERSION=${NASM_VERSION} \
|
NASM_VERSION=${NASM_VERSION} \
|
||||||
YASM_VERSION=${YASM_VERSION} \
|
YASM_VERSION=${YASM_VERSION} \
|
||||||
|
AOM_VERSION=${AOM_VERSION} \
|
||||||
X265_VERSION=${X265_VERSION} \
|
X265_VERSION=${X265_VERSION} \
|
||||||
OGG_VERSION=${OGG_VERSION} \
|
OGG_VERSION=${OGG_VERSION} \
|
||||||
OPUS_VERSION=${OPUS_VERSION} \
|
OPUS_VERSION=${OPUS_VERSION} \
|
||||||
|
|||||||
@@ -2,12 +2,14 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# Build image (default):
|
# Build image (default):
|
||||||
# docker build -t olivevideoeditor/ci-package-ocio:2021-2.0 -f ci-ocio/Dockerfile .
|
# docker build -t olivevideoeditor/ci-package-ocio:2021-2.0.0 -f ci-ocio/Dockerfile .
|
||||||
|
|
||||||
ARG OLIVE_ORG=olivevideoeditor
|
ARG OLIVE_ORG=olivevideoeditor
|
||||||
ARG ASWF_PKG_ORG=aswftesting
|
ARG ASWF_PKG_ORG=aswftesting
|
||||||
ARG CI_COMMON_VERSION=2
|
ARG CI_COMMON_VERSION=2
|
||||||
ARG VFXPLATFORM_VERSION=2021
|
ARG VFXPLATFORM_VERSION=2021
|
||||||
|
# OCIO repo branch or tag name
|
||||||
|
ARG OCIO_VERSION=v2.0.0
|
||||||
# Latest configs ~3 GB because of ACES 1.0.x.
|
# Latest configs ~3 GB because of ACES 1.0.x.
|
||||||
# Upstream only copies nuke-default, therefore we also use the older configs.
|
# Upstream only copies nuke-default, therefore we also use the older configs.
|
||||||
ARG OCIO_CONFIGS_VERSION=1.0_r2
|
ARG OCIO_CONFIGS_VERSION=1.0_r2
|
||||||
@@ -17,6 +19,7 @@ FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-ocio
|
|||||||
ARG OLIVE_ORG
|
ARG OLIVE_ORG
|
||||||
ARG CI_COMMON_VERSION
|
ARG CI_COMMON_VERSION
|
||||||
ARG VFXPLATFORM_VERSION
|
ARG VFXPLATFORM_VERSION
|
||||||
|
ARG OCIO_VERSION
|
||||||
ARG OCIO_CONFIGS_VERSION
|
ARG OCIO_CONFIGS_VERSION
|
||||||
|
|
||||||
LABEL maintainer="olivevideoeditor@gmail.com"
|
LABEL maintainer="olivevideoeditor@gmail.com"
|
||||||
@@ -32,6 +35,7 @@ LABEL org.opencontainers.image.licenses="GPL-3.0-or-later"
|
|||||||
ENV OLIVE_ORG=${OLIVE_ORG} \
|
ENV OLIVE_ORG=${OLIVE_ORG} \
|
||||||
CI_COMMON_VERSION=${CI_COMMON_VERSION} \
|
CI_COMMON_VERSION=${CI_COMMON_VERSION} \
|
||||||
VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \
|
VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \
|
||||||
|
OCIO_VERSION=${OCIO_VERSION} \
|
||||||
OCIO_CONFIGS_VERSION=${OCIO_CONFIGS_VERSION} \
|
OCIO_CONFIGS_VERSION=${OCIO_CONFIGS_VERSION} \
|
||||||
OLIVE_INSTALL_PREFIX=/usr/local
|
OLIVE_INSTALL_PREFIX=/usr/local
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,17 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# Build image (default):
|
# Build image (default):
|
||||||
# docker build -t olivevideoeditor/ci-olive:2021.2 -f ci-olive/Dockerfile .
|
# docker build -t olivevideoeditor/ci-olive:2021.3 -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 OLIVE_ORG=olivevideoeditor
|
||||||
ARG ASWF_PKG_ORG=aswftesting
|
ARG ASWF_PKG_ORG=aswftesting
|
||||||
ARG CI_COMMON_VERSION=2
|
ARG CI_COMMON_VERSION=2
|
||||||
ARG VFXPLATFORM_VERSION=2021
|
ARG VFXPLATFORM_VERSION=2021
|
||||||
ARG OCIO_VERSION=2.0
|
ARG OCIO_VERSION=2.0.0
|
||||||
ARG FFMPEG_VERSION=4.2.4
|
ARG FFMPEG_VERSION=4.2.4
|
||||||
|
|
||||||
FROM ${ASWF_PKG_ORG}/ci-package-qt:${VFXPLATFORM_VERSION} as ci-package-qt
|
FROM ${ASWF_PKG_ORG}/ci-package-qt:${VFXPLATFORM_VERSION} as ci-package-qt
|
||||||
@@ -16,6 +20,8 @@ FROM ${ASWF_PKG_ORG}/ci-package-python:${VFXPLATFORM_VERSION} as ci-package-pyth
|
|||||||
FROM ${ASWF_PKG_ORG}/ci-package-boost:${VFXPLATFORM_VERSION} as ci-package-boost
|
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-openexr:${VFXPLATFORM_VERSION} as ci-package-openexr
|
||||||
FROM ${ASWF_PKG_ORG}/ci-package-oiio:${VFXPLATFORM_VERSION} as ci-package-oiio
|
FROM ${ASWF_PKG_ORG}/ci-package-oiio:${VFXPLATFORM_VERSION} as ci-package-oiio
|
||||||
|
#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-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-ffmpeg:${FFMPEG_VERSION} as ci-package-ffmpeg
|
||||||
FROM ${OLIVE_ORG}/ci-package-crashpad:latest as ci-package-crashpad
|
FROM ${OLIVE_ORG}/ci-package-crashpad:latest as ci-package-crashpad
|
||||||
@@ -50,6 +56,7 @@ COPY --from=ci-package-ocio /. /usr/local/
|
|||||||
COPY --from=ci-package-ffmpeg /. /usr/local/
|
COPY --from=ci-package-ffmpeg /. /usr/local/
|
||||||
COPY --from=ci-package-crashpad /. /usr/local/
|
COPY --from=ci-package-crashpad /. /usr/local/
|
||||||
COPY --from=ci-package-otio /. /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/continuous/linuxdeployqt-continuous-x86_64.AppImage" \
|
RUN curl --location "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" \
|
||||||
-o "/usr/local/linuxdeployqt-x86_64.AppImage" && \
|
-o "/usr/local/linuxdeployqt-x86_64.AppImage" && \
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ ARG ASWF_PKG_ORG=aswftesting
|
|||||||
ARG CI_COMMON_VERSION=2
|
ARG CI_COMMON_VERSION=2
|
||||||
ARG VFXPLATFORM_VERSION=2021
|
ARG VFXPLATFORM_VERSION=2021
|
||||||
|
|
||||||
FROM ${ASWF_PKG_ORG}/ci-package-python:${VFXPLATFORM_VERSION} as ci-package-python
|
# We are currently not interested in the Python implementation and bindings
|
||||||
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-pyside:${VFXPLATFORM_VERSION} as ci-package-pyside
|
#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
|
FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-otio
|
||||||
|
|
||||||
@@ -32,21 +33,20 @@ LABEL org.opencontainers.image.licenses="GPL-3.0-or-later"
|
|||||||
ENV OLIVE_ORG=${OLIVE_ORG} \
|
ENV OLIVE_ORG=${OLIVE_ORG} \
|
||||||
CI_COMMON_VERSION=${CI_COMMON_VERSION} \
|
CI_COMMON_VERSION=${CI_COMMON_VERSION} \
|
||||||
VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \
|
VFXPLATFORM_VERSION=${VFXPLATFORM_VERSION} \
|
||||||
PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:/usr/local/lib/python \
|
|
||||||
OLIVE_INSTALL_PREFIX=/usr/local
|
OLIVE_INSTALL_PREFIX=/usr/local
|
||||||
|
# PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:/usr/local/lib/python \
|
||||||
|
|
||||||
COPY scripts/base/install_cmake.sh \
|
COPY scripts/base/install_cmake.sh \
|
||||||
scripts/build_otio.sh \
|
scripts/build_otio.sh \
|
||||||
/tmp/
|
/tmp/
|
||||||
|
|
||||||
COPY --from=ci-package-python /. /usr/local/
|
#COPY --from=ci-package-python /. /usr/local/
|
||||||
COPY --from=ci-package-qt /. /usr/local/
|
#COPY --from=ci-package-qt /. /usr/local/
|
||||||
COPY --from=ci-package-pyside /. /usr/local/
|
#COPY --from=ci-package-pyside /. /usr/local/
|
||||||
|
|
||||||
RUN export DOWNLOADS_DIR=/tmp/downloads && \
|
RUN export DOWNLOADS_DIR=/tmp/downloads && \
|
||||||
mkdir /tmp/downloads && \
|
mkdir /tmp/downloads && \
|
||||||
/tmp/install_cmake.sh && \
|
/tmp/install_cmake.sh && \
|
||||||
pip install flake8 tox urllib3 && \
|
|
||||||
rm -rf /tmp/downloads
|
rm -rf /tmp/downloads
|
||||||
|
|
||||||
RUN /tmp/before_build.sh && \
|
RUN /tmp/before_build.sh && \
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Copyright (c) Contributors to the aswf-docker Project. All rights reserved.
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
export DTS_VERSION=9
|
|
||||||
export CLANG_VERSION=10.0.0
|
|
||||||
export NINJA_VERSION=1.10.0
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Copyright (c) Contributors to the aswf-docker Project. All rights reserved.
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
export BOOST_VERSION=1.70.0
|
|
||||||
export CMAKE_VERSION=3.17.3
|
|
||||||
export NUMPY_VERSION=1.16
|
|
||||||
export PYSIDE_VERSION=5.12.6
|
|
||||||
export PYTHON_VERSION_FULL=3.7.3
|
|
||||||
export PYTHON_VERSION=3.7
|
|
||||||
export QT_VERSION=5.12.8
|
|
||||||
@@ -77,6 +77,6 @@ mkdir breakpad
|
|||||||
cd breakpad
|
cd breakpad
|
||||||
fetch breakpad
|
fetch breakpad
|
||||||
cd src
|
cd src
|
||||||
./configure --prefix="${OLIVE_INSTALL_PREFIX}/breakpad"
|
./configure --prefix="${OLIVE_INSTALL_PREFIX}"
|
||||||
make
|
make
|
||||||
make install -j$(nproc)
|
make install -j$(nproc)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# Copyright (C) 2020 Olive Team
|
# Copyright (C) 2020 Olive Team
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# Largely copied from https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
|
# Largely based on https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
|
||||||
#
|
#
|
||||||
# Uses { command } & pattern for parallelism https://gist.github.com/thenadz/6c0584d42fb007582fbc
|
# Uses { command } & pattern for parallelism https://gist.github.com/thenadz/6c0584d42fb007582fbc
|
||||||
#
|
#
|
||||||
@@ -44,6 +44,21 @@ set -ex
|
|||||||
# join jobs, some libs depend on NASM/YASM
|
# join jobs, some libs depend on NASM/YASM
|
||||||
wait
|
wait
|
||||||
|
|
||||||
|
# Set up libaom
|
||||||
|
{
|
||||||
|
git clone --depth 1 --branch "${AOM_VERSION}" "https://aomedia.googlesource.com/aom"
|
||||||
|
cd aom
|
||||||
|
mkdir _build
|
||||||
|
cd _build
|
||||||
|
cmake .. \
|
||||||
|
-DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \
|
||||||
|
-DBUILD_SHARED_LIBS=1
|
||||||
|
cmake --build .
|
||||||
|
cmake --install .
|
||||||
|
cd ../..
|
||||||
|
rm -rf aom
|
||||||
|
} &
|
||||||
|
|
||||||
# Set up libx264
|
# Set up libx264
|
||||||
{
|
{
|
||||||
# TODO: Checkout stable branch instead of master?
|
# TODO: Checkout stable branch instead of master?
|
||||||
@@ -248,12 +263,13 @@ tar xf ffmpeg.tar.xz
|
|||||||
cd ffmpeg*
|
cd ffmpeg*
|
||||||
|
|
||||||
# TODO: --enable-debug?
|
# TODO: --enable-debug?
|
||||||
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" ./configure \
|
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH" ./configure \
|
||||||
--disable-doc \
|
--disable-doc \
|
||||||
--disable-ffplay \
|
--disable-ffplay \
|
||||||
--enable-gpl \
|
--enable-gpl \
|
||||||
--enable-version3 \
|
--enable-version3 \
|
||||||
--enable-shared \
|
--enable-shared \
|
||||||
|
--enable-libaom \
|
||||||
--enable-libfreetype \
|
--enable-libfreetype \
|
||||||
--enable-libx264 \
|
--enable-libx264 \
|
||||||
--enable-libx265 \
|
--enable-libx265 \
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ set -ex
|
|||||||
mkdir ocio
|
mkdir ocio
|
||||||
cd ocio
|
cd ocio
|
||||||
|
|
||||||
git clone --depth 1 https://github.com/AcademySoftwareFoundation/OpenColorIO.git
|
git clone --depth 1 --branch "${OCIO_VERSION}" https://github.com/AcademySoftwareFoundation/OpenColorIO.git
|
||||||
cd OpenColorIO
|
cd OpenColorIO
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
/usr/local/linuxdeployqt-x86_64.AppImage \
|
||||||
|
appdir/usr/share/applications/org.olivevideoeditor.Olive.desktop \
|
||||||
|
-appimage \
|
||||||
|
--appimage-extract-and-run
|
||||||
|
|
||||||
|
./Olive*.AppImage --appimage-extract-and-run --version
|
||||||
@@ -11,13 +11,16 @@ cd OpenTimelineIO
|
|||||||
# git checkout "tags/v${OTIO_VERSION}" -b "v${OTIO_VERSION}"
|
# git checkout "tags/v${OTIO_VERSION}" -b "v${OTIO_VERSION}"
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
pip install --prefix="${OLIVE_INSTALL_PREFIX}" .
|
#pip install --prefix="${OLIVE_INSTALL_PREFIX}" .
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake .. -G "Ninja"
|
cmake .. -G "Ninja" \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \
|
||||||
|
-DOTIO_PYTHON_INSTALL=OFF
|
||||||
cmake --build .
|
cmake --build .
|
||||||
cmake --install . --prefix "${OLIVE_INSTALL_PREFIX}"
|
cmake --install .
|
||||||
|
|
||||||
cd ../..
|
cd ../..
|
||||||
rm -rf OpenTimelineIO
|
rm -rf OpenTimelineIO
|
||||||
|
|||||||
@@ -14,23 +14,38 @@ yum install --setopt=tsflags=nodocs -y \
|
|||||||
cups-libs \
|
cups-libs \
|
||||||
freetype-devel \
|
freetype-devel \
|
||||||
giflib-devel \
|
giflib-devel \
|
||||||
gstreamer1 gstreamer1-devel \
|
gstreamer1 \
|
||||||
gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel \
|
gstreamer1-devel \
|
||||||
|
gstreamer1-plugins-bad-free \
|
||||||
|
gstreamer1-plugins-bad-free-devel \
|
||||||
libicu-devel \
|
libicu-devel \
|
||||||
libmng-devel \
|
libmng-devel \
|
||||||
LibRaw-devel \
|
LibRaw-devel \
|
||||||
libwebp-devel \
|
libwebp-devel \
|
||||||
libXcomposite libXcomposite-devel \
|
libXcomposite \
|
||||||
libXcursor libXcursor-devel \
|
libXcomposite-devel \
|
||||||
libxkbcommon libxkbcommon-devel \
|
libXcursor \
|
||||||
|
libXcursor-devel \
|
||||||
|
libxkbcommon \
|
||||||
|
libxkbcommon-devel \
|
||||||
libxkbcommon-x11-devel \
|
libxkbcommon-x11-devel \
|
||||||
libXScrnSaver libXScrnSaver-devel \
|
libXScrnSaver \
|
||||||
|
libXScrnSaver-devel \
|
||||||
mesa-libGL-devel \
|
mesa-libGL-devel \
|
||||||
numactl-devel \
|
numactl-devel \
|
||||||
openjpeg2-devel \
|
openjpeg2-devel \
|
||||||
pciutils-devel \
|
pciutils-devel \
|
||||||
pulseaudio-libs pulseaudio-libs-devel \
|
pulseaudio-libs \
|
||||||
|
pulseaudio-libs-devel \
|
||||||
python3-tkinter \
|
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
|
zlib-devel
|
||||||
|
|
||||||
# This is needed for Xvfb to function properly.
|
# This is needed for Xvfb to function properly.
|
||||||
@@ -56,11 +71,12 @@ yum install -y epel-release
|
|||||||
|
|
||||||
# Additional package that are not found initially
|
# Additional package that are not found initially
|
||||||
yum install -y \
|
yum install -y \
|
||||||
rh-git218 \
|
rh-git218
|
||||||
# lame-devel
|
# lame-devel
|
||||||
# libcaca-devel \
|
# libcaca-devel \
|
||||||
# libdb4-devel \
|
# libdb4-devel \
|
||||||
# libdc1394-devel \
|
# libdc1394-devel \
|
||||||
|
# openssl11-devel \
|
||||||
# p7zip \
|
# p7zip \
|
||||||
# yasm-devel \
|
# yasm-devel \
|
||||||
# zvbi-devel
|
# zvbi-devel
|
||||||
|
|||||||
Reference in New Issue
Block a user