From 9e176e4b3d55e41c2d5a0af3a71c96d44012cd1e Mon Sep 17 00:00:00 2001 From: Daniel Bermond Date: Sat, 8 Nov 2025 11:47:44 -0300 Subject: [PATCH] Update dependencies Dropped dependency on lensfun-git and use a locally built static library: ffmpeg requires lensfun git master, but the lensfun-git package wrongly installs its files in non-standard locations, defying the whole purpose of VCS packages, breaking the VCS package guidelines from the ArchWiki and requiring users to have both lensfun and lensfun-git packages intalled. Using a local static library also have the benefit of avoid rebuilding packages requiring lensfun, like gegl (required for gimp, a commonly used package), as lensfun git master currently have a soname bump in relation to the last stable version. Also in this commit: - update obs-studio verison --- .SRCINFO | 9 +++++---- PKGBUILD | 43 ++++++++++++++++++++++++++++++++----------- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 58ab8b3..35a33c1 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = ffmpeg-full pkgdesc = Complete solution to record, convert and stream audio and video (all possible features including libfdk-aac) pkgver = 8.0 - pkgrel = 2 + pkgrel = 3 url = https://ffmpeg.org/ arch = x86_64 license = LicenseRef-nonfree-and-unredistributable @@ -47,7 +47,6 @@ pkgbase = ffmpeg-full depends = lame depends = lcevcdec depends = lcms2 - depends = lensfun-git depends = libaribcaption depends = libass depends = libavc1394 @@ -151,7 +150,8 @@ pkgbase = ffmpeg-full conflicts = ffmpeg source = https://ffmpeg.org/releases/ffmpeg-8.0.tar.xz source = https://ffmpeg.org/releases/ffmpeg-8.0.tar.xz.asc - source = https://github.com/obsproject/obs-studio/archive/32.0.1/obs-studio-32.0.1.tar.gz + source = git+https://github.com/lensfun/lensfun.git + source = https://github.com/obsproject/obs-studio/archive/32.0.2/obs-studio-32.0.2.tar.gz source = https://github.com/ggml-org/whisper.cpp/archive/v1.8.2/whisper.cpp-1.8.2.tar.gz source = 010-ffmpeg-add-svt-hevc.patch source = 020-ffmpeg-add-svt-hevc-docs-ged80959.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/ed80959ebb5586aa7763c91a397d44be1798587c/ffmpeg_plugin/0002-doc-Add-libsvt_hevc-encoder-docs.patch @@ -166,7 +166,8 @@ pkgbase = ffmpeg-full validpgpkeys = FCF986EA15E6E293A5644F10B4322F04D67658D8 sha256sums = b2751fccb6cc4c77708113cd78b561059b6fa904b24162fa0be2d60273d27b8e sha256sums = SKIP - sha256sums = 906278ccedb5ed919e586697467eb7fa4205fceeda127386ce5b74026113ba96 + sha256sums = SKIP + sha256sums = 39e99b9fbdc77e7e87cfd9c7e8709d1d427627bad5b21b791019c887c8598d13 sha256sums = bcee25589bb8052d9e155369f6759a05729a2022d2a8085c1aa4345108523077 sha256sums = 4b1053cc01244c79e3b23dc696eaff1aeb0627a2098e1a720a025d4ad75b5c16 sha256sums = a164ebdc4d281352bf7ad1b179aae4aeb33f1191c444bed96cb8ab333c046f81 diff --git a/PKGBUILD b/PKGBUILD index 87a877c..1f9e3c1 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -3,9 +3,9 @@ pkgname=ffmpeg-full pkgver=8.0 -pkgrel=2 +pkgrel=3 _svt_hevc_ver='ed80959ebb5586aa7763c91a397d44be1798587c' -_obs_studio_ver='32.0.1' +_obs_studio_ver='32.0.2' _whispercpp_ver='1.8.2' pkgdesc='Complete solution to record, convert and stream audio and video (all possible features including libfdk-aac)' arch=('x86_64') @@ -41,7 +41,6 @@ depends=( 'lame' 'lcevcdec' 'lcms2' - 'lensfun-git' 'libaribcaption' 'libass' 'libavc1394' @@ -160,6 +159,7 @@ provides=( 'libswresample.so') conflicts=('ffmpeg') source=("https://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.xz"{,.asc} + 'git+https://github.com/lensfun/lensfun.git' "https://github.com/obsproject/obs-studio/archive/${_obs_studio_ver}/obs-studio-${_obs_studio_ver}.tar.gz" "https://github.com/ggml-org/whisper.cpp/archive/v${_whispercpp_ver}/whisper.cpp-${_whispercpp_ver}.tar.gz" '010-ffmpeg-add-svt-hevc.patch' @@ -174,7 +174,8 @@ source=("https://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.xz"{,.asc} 'LICENSE') sha256sums=('b2751fccb6cc4c77708113cd78b561059b6fa904b24162fa0be2d60273d27b8e' 'SKIP' - '906278ccedb5ed919e586697467eb7fa4205fceeda127386ce5b74026113ba96' + 'SKIP' + '39e99b9fbdc77e7e87cfd9c7e8709d1d427627bad5b21b791019c887c8598d13' 'bcee25589bb8052d9e155369f6759a05729a2022d2a8085c1aa4345108523077' '4b1053cc01244c79e3b23dc696eaff1aeb0627a2098e1a720a025d4ad75b5c16' 'a164ebdc4d281352bf7ad1b179aae4aeb33f1191c444bed96cb8ab333c046f81' @@ -202,16 +203,37 @@ prepare() { } build() { + local _stagingdir="${srcdir}/staging" + local _pkgconfigdir="${_stagingdir}/lib/pkgconfig" + export PKG_CONFIG_PATH="${_pkgconfigdir}${PKG_CONFIG_PATH:+":${PKG_CONFIG_PATH}"}" + + local -a _cmake_opts=( + '-GUnix Makefiles' + '-DBUILD_SHARED_LIBS:BOOL=OFF' + '-DCMAKE_BUILD_TYPE:STRING=None' + "-DCMAKE_INSTALL_PREFIX:PATH=${_stagingdir}" + '-Wno-dev') + + # ffmpeg requires lensfun git master, but lensfun-git package wrongly installs its files to non-standard locations: + # https://aur.archlinux.org/cgit/aur.git/commit/?h=lensfun-git&id=7b7a2d4890df59cde62c7dbfde3cefd7868a2707 + # building it locally as a static library for the time being - this also have the benefit of avoid rebuilding packages + # requiring lensfun, like gegl (required for gimp, a commonly used package), as lensfun git master have a soname bump + cmake -B build/lensfun -S lensfun \ + "${_cmake_opts[@]}" \ + -DBUILD_STATIC:BOOL='ON' \ + -DINSTALL_PYTHON_MODULE:BOOL='OFF' \ + -DINSTALL_HELPER_SCRIPTS:BOOL='OFF' + cmake --build build/lensfun --target install + sed -i \ + -e 's/\(-llensfun\)/\1 -lglib-2.0 -lstdc++/' \ + -e '/Cflags: /s/$/ -DCONF_LENSFUN_STATIC/' "${_pkgconfigdir}/lensfun.pc" + # whisper.cpp AUR package conflicts with imagemagick at the time of writing # building it locally as a static library for the time being, as imagemagick is a commonly used package (high usage in pkgstats) cmake -B build/whisper.cpp -S "whisper.cpp-${_whispercpp_ver}" \ - -G 'Unix Makefiles' \ - -DBUILD_SHARED_LIBS:BOOL='OFF' \ - -DCMAKE_BUILD_TYPE:STRING='None' \ - -DCMAKE_INSTALL_PREFIX:PATH="${srcdir}/staging" \ + "${_cmake_opts[@]}" \ -DWHISPER_BUILD_EXAMPLES:BOOL='OFF' \ - -DWHISPER_BUILD_TESTS:BOOL='OFF' \ - -Wno-dev + -DWHISPER_BUILD_TESTS:BOOL='OFF' cmake --build build/whisper.cpp --target install cd "ffmpeg-${pkgver}" @@ -220,7 +242,6 @@ build() { export CFLAGS+=' -isystem/opt/cuda/include' export CFLAGS+=" -isystem${srcdir}/obs-studio-${_obs_studio_ver}/plugins/decklink/linux/decklink-sdk" export LDFLAGS+=' -L/opt/cuda/lib64' - export PKG_CONFIG_PATH="${srcdir}/staging/lib/pkgconfig${PKG_CONFIG_PATH:+":${PKG_CONFIG_PATH}"}" # fix build of libavfilter/asrc_flite.c with gcc 14 export CFLAGS+=' -Wno-error=incompatible-pointer-types'