From 02900606f9d83ffbb562a530081d73dad8f18822 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Wed, 4 May 2022 17:30:42 +0200 Subject: [PATCH] Backport fixes --- .github/workflows/build.yaml | 4 ++-- .github/workflows/publish.yaml | 17 ++++++++--------- debian/control | 6 +++--- docker-build-win64.sh | 21 +-------------------- docker-build.sh | 15 +++++++++------ 5 files changed, 23 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 09871bc8817..2a36289e2ec 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -7,13 +7,13 @@ concurrency: on: push: branches: - - jellyfin + - jellyfin-4.4 paths-ignore: - '**/*.md' pull_request: branches: - - jellyfin + - jellyfin-4.4 paths-ignore: - '**/*.md' diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index c20d63eceff..93e90840940 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -73,20 +73,19 @@ jobs: script: |- tag="${{ github.event.release.tag_name }}" version="${tag#v}" - basename="jellyfin-ffmpeg_${version}-${{ matrix.arrays.codename }}" + basename="jellyfin-ffmpeg*_${version}-${{ matrix.arrays.codename }}" + find /srv/repository/releases/server/${{ matrix.arrays.distro }}/ -type l -name "jellyfin-ffmpeg*_*" -exec rm {} \; if [ "${{ matrix.arrays.distro }}" != "windows" ]; then - find /srv/repository/releases/server/${{ matrix.arrays.distro }}/ -type l -name "jellyfin-ffmpeg_*" -exec rm {} \; find /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} -type f -name "${basename}_*.deb" | while read file; do reprepro -b /srv/repository/${{ matrix.arrays.distro }} --export=never --keepunreferencedfiles includedeb ${{ matrix.arrays.codename }} ${file} done find /srv/repository/releases/server/${{ matrix.arrays.distro }}/ -type l -name "${basename}_*" -exec rm {} \; reprepro -b /srv/repository/${{ matrix.arrays.distro }} deleteunreferenced reprepro -b /srv/repository/${{ matrix.arrays.distro }} export - rm -f /srv/repository/releases/server/${{ matrix.arrays.distro }}/{stable,stable-pre,unstable}/ffmpeg - ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/stable/ffmpeg - ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/stable-pre/ffmpeg - ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/unstable/ffmpeg - else - rm -f /srv/repository/releases/server/${{ matrix.arrays.distro }}/ffmpeg - ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/ffmpeg fi + rm -f /srv/repository/releases/server/${{ matrix.arrays.distro }}/ffmpeg + rm -f /srv/repository/releases/server/${{ matrix.arrays.distro }}/{stable,stable-pre,unstable}/ffmpeg + ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/ffmpeg + ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/stable/ffmpeg + ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/stable-pre/ffmpeg + ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/unstable/ffmpeg diff --git a/debian/control b/debian/control index bf58fcf17b9..5559000deee 100644 --- a/debian/control +++ b/debian/control @@ -94,8 +94,8 @@ Description: Tools for transcoding, streaming and playing of multimedia files cutting edge. . This package contains a static build compatible with all Debian/Ubuntu - releases, designed to facilitate Jellyfin on systems with a repository ffmpeg - version of 4.1 or newer, which we do not yet support. Included files are: + releases, designed to facilitate Jellyfin on systems with an unpatched version + of ffmpeg in their repository. Included files are: * ffmpeg: a command line tool to convert multimedia files between formats - * ffplay: a simple media player based on SDL and the FFmpeg libraries * ffprobe: a simple multimedia stream analyzer + * vainfo: a command line tool to get information about local VA-API devices diff --git a/docker-build-win64.sh b/docker-build-win64.sh index acc8cc354ff..5a9e6e3a5f3 100755 --- a/docker-build-win64.sh +++ b/docker-build-win64.sh @@ -140,25 +140,6 @@ make install popd popd -# SDL2 -mkdir sdl2 -pushd sdl2 -sdl2_ver="2.0.20" -sdl2_link="https://libsdl.org/release/SDL2-${sdl2_ver}.tar.gz" -wget ${sdl2_link} -O sdl2.tar.gz -tar xaf sdl2.tar.gz -pushd SDL2-${sdl2_ver} -./autogen.sh -./configure \ - --prefix=${FF_DEPS_PREFIX} \ - --host=${FF_TOOLCHAIN} \ - --disable-shared \ - --enable-static -make -j$(nproc) -make install -popd -popd - # FONTCONFIG mkdir fontconfig pushd fontconfig @@ -531,6 +512,7 @@ fi --disable-ffplay \ --disable-debug \ --disable-doc \ + --disable-sdl2 \ --disable-w32threads \ --enable-pthreads \ --enable-shared \ @@ -542,7 +524,6 @@ fi --enable-libxml2 \ --enable-zlib \ --enable-lzma \ - --enable-sdl2 \ --enable-gmp \ --enable-libfreetype \ --enable-libfribidi \ diff --git a/docker-build.sh b/docker-build.sh index 645d6a12625..ad81b394cf9 100755 --- a/docker-build.sh +++ b/docker-build.sh @@ -77,7 +77,9 @@ prepare_extra_common() { git clone -b stripped4 --depth=1 https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped.git pushd fdk-aac-stripped ./autogen.sh - ./configure --disable-silent-rules --disable-static --prefix=${TARGET_DIR} CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" ${CROSS_OPT} + ./configure \ + --disable-{static,silent-rules} \ + --prefix=${TARGET_DIR} CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" ${CROSS_OPT} make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/fdk-aac-stripped echo "fdk-aac-stripped${TARGET_DIR}/lib/libfdk-aac.so* usr/lib/jellyfin-ffmpeg/lib" >> ${SOURCE_DIR}/debian/jellyfin-ffmpeg.install popd @@ -88,7 +90,7 @@ prepare_extra_common() { prepare_extra_amd64() { # Download and install the nvidia headers pushd ${SOURCE_DIR} - git clone -b n11.0.10.1 --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git + git clone -b n11.0.10.1 --depth=1 https://github.com/FFmpeg/nv-codec-headers pushd nv-codec-headers make make install @@ -158,7 +160,7 @@ prepare_extra_amd64() { # Provides MSDK runtime (libmfxhw64.so.1) for 11th Gen Rocket Lake and older # Provides MFX dispatcher (libmfx.so.1) for FFmpeg pushd ${SOURCE_DIR} - git clone -b intel-mediasdk-22.3.0 --depth=1 https://github.com/Intel-Media-SDK/MediaSDK + git clone -b intel-mediasdk-22.4.0 --depth=1 https://github.com/Intel-Media-SDK/MediaSDK pushd MediaSDK sed -i 's|MFX_PLUGINS_CONF_DIR "/plugins.cfg"|"/usr/lib/jellyfin-ffmpeg/lib/mfx/plugins.cfg"|g' api/mfx_dispatch/linux/mfxloader.cpp mkdir build && pushd build @@ -178,12 +180,12 @@ prepare_extra_amd64() { # Provides VPL runtime (libmfx-gen.so.1.2) for 11th Gen Tiger Lake and newer # Both MSDK and VPL runtime can be loaded by MFX dispatcher (libmfx.so.1) pushd ${SOURCE_DIR} - git clone -b intel-onevpl-22.3.2 --depth=1 https://github.com/oneapi-src/oneVPL-intel-gpu + git clone -b intel-onevpl-22.4.0 --depth=1 https://github.com/oneapi-src/oneVPL-intel-gpu pushd oneVPL-intel-gpu mkdir build && pushd build cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} .. make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/intel - echo "intel${TARGET_DIR}/lib/libmfx-gen.so* usr/lib/jellyfin-ffmpeg/lib" >> ${SOURCE_DIR}/debian/jellyfin-ffmpeg.install + echo "intel${TARGET_DIR}/lib/libmfx-gen* usr/lib/jellyfin-ffmpeg/lib" >> ${SOURCE_DIR}/debian/jellyfin-ffmpeg.install popd popd popd @@ -192,8 +194,9 @@ prepare_extra_amd64() { # Full Feature Build: ENABLE_KERNELS=ON(Default) ENABLE_NONFREE_KERNELS=ON(Default) # Free Kernel Build: ENABLE_KERNELS=ON ENABLE_NONFREE_KERNELS=OFF pushd ${SOURCE_DIR} - git clone -b intel-media-22.3.1 --depth=1 https://github.com/intel/media-driver + git clone -b intel-media-22.4.0 --depth=1 https://github.com/intel/media-driver pushd media-driver + sed -i 's|find_package(X11)||g' media_softlet/media_top_cmake.cmake media_driver/media_top_cmake.cmake mkdir build && pushd build cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} \ -DENABLE_KERNELS=ON \