diff --git a/builder/images/macos/06-libunibreak.sh b/builder/images/macos/06-libunibreak.sh deleted file mode 100755 index e5e82a27f..000000000 --- a/builder/images/macos/06-libunibreak.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -ffbuild_macbase() { - wget https://github.com/adah1972/libunibreak/releases/download/libunibreak_5_1/libunibreak-5.1.tar.gz -O libunibreadk.tar.gz - tar xvf libunibreadk.tar.gz - cd libunibreak-5.1 - ./configure --prefix="$FFBUILD_PREFIX" \ - --disable-shared \ - --enable-static \ - --disable-silent-rules - make -j$(nproc) - make install -} diff --git a/builder/scripts.d/45-libunibreak.sh b/builder/scripts.d/45-libunibreak.sh new file mode 100755 index 000000000..3313edb1e --- /dev/null +++ b/builder/scripts.d/45-libunibreak.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/adah1972/libunibreak.git" +SCRIPT_COMMIT="32dc4fabf20176aeaa63c4880cc53cc123e53261" + +ffbuild_enabled() { + return 0 +} + +ffbuild_dockerbuild() { + git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libunibreak + cd libunibreak + + ./bootstrap + + local myconf=( + --prefix="$FFBUILD_PREFIX" + --disable-shared + --enable-static + --with-pic + ) + + if [[ $TARGET == win* || $TARGET == linux* ]]; then + myconf+=( + --host="$FFBUILD_TOOLCHAIN" + ) + elif [[ $TARGET == mac* ]]; then + : + else + echo "Unknown target" + return -1 + fi + + ./configure "${myconf[@]}" + make -j$(nproc) + make install +} diff --git a/builder/scripts.d/50-libass.sh b/builder/scripts.d/50-libass.sh index 9b8a0f5e0..75a59ee34 100755 --- a/builder/scripts.d/50-libass.sh +++ b/builder/scripts.d/50-libass.sh @@ -17,6 +17,7 @@ ffbuild_dockerbuild() { --prefix="$FFBUILD_PREFIX" --disable-shared --enable-static + --enable-libunibreak --with-pic ) diff --git a/docker-build-win64.sh b/docker-build-win64.sh index 05ea842bd..e24337fb6 100755 --- a/docker-build-win64.sh +++ b/docker-build-win64.sh @@ -216,6 +216,20 @@ make -j$(nproc) make install popd +# UNIBREAK +git clone --depth=1 https://github.com/adah1972/libunibreak.git +pushd libunibreak +./bootstrap +./configure \ + --prefix=${FF_DEPS_PREFIX} \ + --host=${FF_TOOLCHAIN} \ + --disable-shared \ + --enable-static \ + --with-pic +make -j$(nproc) +make install +popd + # LIBASS git clone -b 0.17.3 --depth=1 https://github.com/libass/libass.git pushd libass @@ -224,7 +238,7 @@ pushd libass --prefix=${FF_DEPS_PREFIX} \ --host=${FF_TOOLCHAIN} \ --disable-shared \ - --enable-static \ + --enable-{static,libunibreak} \ --with-pic make -j$(nproc) make install diff --git a/docker-build.sh b/docker-build.sh index 99858a80e..3fe2ba80c 100755 --- a/docker-build.sh +++ b/docker-build.sh @@ -150,6 +150,22 @@ prepare_extra_common() { echo "harfbuzz/libharfbuzz.so* usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST} popd + # UNIBREAK + pushd ${SOURCE_DIR} + git clone --depth=1 https://github.com/adah1972/libunibreak.git + pushd libunibreak + ./bootstrap + ./configure \ + ${CROSS_OPT} \ + --prefix=${TARGET_DIR} \ + --enable-shared \ + --disable-static \ + --with-pic + make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/libunibreak + echo "libunibreak${TARGET_DIR}/lib/libunibreak.so* usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST} + popd + popd + # LIBASS pushd ${SOURCE_DIR} git clone -b 0.17.3 --depth=1 https://github.com/libass/libass.git @@ -158,8 +174,8 @@ prepare_extra_common() { ./configure \ ${CROSS_OPT} \ --prefix=${TARGET_DIR} \ - --enable-shared \ --disable-static \ + --enable-{shared,libunibreak} \ --with-pic make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/libass echo "libass${TARGET_DIR}/lib/libass.so* usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST} diff --git a/msys2/PKGBUILD/35-mingw-w64-libunibreak/PKGBUILD b/msys2/PKGBUILD/35-mingw-w64-libunibreak/PKGBUILD new file mode 100644 index 000000000..7efa9c84e --- /dev/null +++ b/msys2/PKGBUILD/35-mingw-w64-libunibreak/PKGBUILD @@ -0,0 +1,56 @@ +# Maintainer: Christoph Reiter + +_realname=libunibreak +pkgbase=mingw-w64-jellyfin-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-jellyfin-${_realname}") +pkgver=6.1 +pkgrel=1 +pkgdesc="An implementation of the line breaking algorithm as described in Unicode 5.2.0 Standard Annex 14, Revision 24 (mingw-w64)" +arch=('any') +mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64') +url='https://github.com/adah1972/libunibreak/' +license=('spdx:Zlib') +makedepends=("${MINGW_PACKAGE_PREFIX}-autotools" + "${MINGW_PACKAGE_PREFIX}-cc") +source=("https://github.com/adah1972/libunibreak/archive/libunibreak_${pkgver//./_}/$_realname-$pkgver.tar.gz") +sha256sums=('890674996168ef5ba143d80d49ab8b61594a4eb70198dcac76caf6e1bd264a41') + +prepare() { + mv "${srcdir}/${_realname}-${_realname}_${pkgver//./_}" "${srcdir}/${_realname}-${pkgver}" + cd "${srcdir}/${_realname}-${pkgver}" + + ./bootstrap +} + +export MINGW_TOOLCHAIN_PREFIX="${MINGW_PREFIX}" +export FF_MINGW_PREFIX="${MINGW_TOOLCHAIN_PREFIX}/ffbuild" + +build() { + cd "${srcdir}/${_realname}-${pkgver}" + mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" + + ../"${_realname}-${pkgver}"/configure \ + --prefix="${FF_MINGW_PREFIX}" \ + --build="${MINGW_CHOST}" \ + --host="${MINGW_CHOST}" \ + --target="${MINGW_CHOST}" \ + --enable-static \ + --disable-shared + + make +} + +check() { + cd "${srcdir}/build-${MSYSTEM}" + + make check +} + +package() { + cd "${srcdir}/build-${MSYSTEM}" + + make install DESTDIR="${pkgdir}" + + install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENCE \ + "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENCE +} diff --git a/msys2/PKGBUILD/40-mingw-w64-libass/PKGBUILD b/msys2/PKGBUILD/40-mingw-w64-libass/PKGBUILD index 9d11ba741..b41e28450 100644 --- a/msys2/PKGBUILD/40-mingw-w64-libass/PKGBUILD +++ b/msys2/PKGBUILD/40-mingw-w64-libass/PKGBUILD @@ -21,6 +21,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-autotools" depends=("${MINGW_PACKAGE_PREFIX}-jellyfin-fribidi" "${MINGW_PACKAGE_PREFIX}-jellyfin-fontconfig" "${MINGW_PACKAGE_PREFIX}-jellyfin-freetype" + "${MINGW_PACKAGE_PREFIX}-jellyfin-libunibreak" "${MINGW_PACKAGE_PREFIX}-jellyfin-harfbuzz") source=(https://github.com/libass/${_realname}/releases/download/${pkgver}/${_realname}-${pkgver}.tar.xz) sha256sums=('SKIP') @@ -48,7 +49,7 @@ build() { --disable-shared \ --enable-static \ --enable-directwrite \ - --disable-libunibreak \ + --enable-libunibreak \ --with-pic \ $( [[ "${CARCH}" != "i686" \ && "${CARCH}" != "x86_64" ]] \