mirror of
https://github.com/terrapkg/packages.git
synced 2026-06-04 10:52:18 +00:00
235 lines
7.3 KiB
RPMSpec
235 lines
7.3 KiB
RPMSpec
# https://pkgs.rpmfusion.org/cgit/free/HandBrake.git/tree/HandBrake.spec
|
|
%global commit0 04413a27e6d616cddd98c2c6468aca2bf91b87b5
|
|
%global commit_date %(date '+%Y%m%d')
|
|
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
|
|
%global tag %{version}
|
|
%global pkg HandBrake
|
|
|
|
# Build with "--without ffmpeg" or enable this to use bundled libAV
|
|
# instead of system FFMpeg libraries.
|
|
#global _without_ffmpeg 1
|
|
|
|
%ifarch i686 x86_64
|
|
%global _with_asm 1
|
|
%global _with_vpl 1
|
|
%endif
|
|
|
|
%global desktop_id fr.handbrake.ghb
|
|
|
|
Name: terra-HandBrake
|
|
Version: 1.6.1
|
|
Release: 1%?dist
|
|
Summary: An open-source multiplatform video transcoder
|
|
License: GPL-2.0-or-later
|
|
URL: https://handbrake.fr/
|
|
|
|
%if 0%{?tag:1}
|
|
%dnl Source0: https://github.com/%pkg/%pkg/releases/download/%version/%pkg-%version-source.tar.bz2
|
|
Source1: https://github.com/%pkg/%pkg/releases/download/%version/%pkg-%version-source.tar.bz2.sig
|
|
# import from https://handbrake.fr/openpgp.php or https://github.com/HandBrake/HandBrake/wiki/OpenPGP
|
|
# gpg2 --export --export-options export-minimal 1629C061B3DDE7EB4AE34B81021DB8B44E4A8645 > gpg-keyring-1629C061B3DDE7EB4AE34B81021DB8B44E4A8645.gpg
|
|
Source2: gpg-keyring-1629C061B3DDE7EB4AE34B81021DB8B44E4A8645.gpg
|
|
%else
|
|
%dnl Source0: https://github.com/%pkg/%pkg/archive/%commit0.tar.gz#/%{name}-%{shortcommit0}.tar.gz
|
|
%endif
|
|
|
|
%{?_without_ffmpeg:Source10: https://libav.org/releases/libav-12.tar.gz}
|
|
|
|
# Pass strip tool override to gtk/configure
|
|
Patch0: %pkg-nostrip.patch
|
|
# Don't link with libva unnecessarily
|
|
Patch1: %pkg-no-libva.patch
|
|
# Don't link with fdk_aac unnecessarily
|
|
Patch2: %pkg-no-fdk_aac.patch
|
|
# Fix build on non-x86 (without nasm)
|
|
Patch3: %pkg-no-nasm.patch
|
|
# Patch from Gentoo
|
|
Patch4: %pkg-x265-link.patch
|
|
|
|
BuildRequires: a52dec-devel >= 0.7.4
|
|
BuildRequires: cmake
|
|
BuildRequires: dbus-glib-devel
|
|
BuildRequires: desktop-file-utils
|
|
%if 0%{?tag:1}
|
|
BuildRequires: gnupg2
|
|
%endif
|
|
BuildRequires: libappstream-glib
|
|
%{!?_without_ffmpeg:BuildRequires: ffmpeg-free-devel >= 3.5}
|
|
# Should be >= 2.6:
|
|
BuildRequires: freetype-devel >= 2.4.11
|
|
# Should be >= 0.19.7:
|
|
BuildRequires: fribidi-devel >= 0.19.4
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: gstreamer1-plugins-base-devel
|
|
BuildRequires: intltool
|
|
BuildRequires: jansson-devel
|
|
BuildRequires: turbojpeg-devel
|
|
BuildRequires: lame-devel >= 3.98
|
|
BuildRequires: libappindicator-gtk3-devel
|
|
# Should be >= 0.13.2:
|
|
BuildRequires: libass-devel >= 0.13.1
|
|
BuildRequires: libbluray-devel >= 0.9.3
|
|
BuildRequires: libdav1d-devel
|
|
BuildRequires: libdrm-devel
|
|
BuildRequires: libdvdnav-devel >= 5.0.1
|
|
BuildRequires: libdvdread-devel >= 5.0.0
|
|
BuildRequires: libgudev-devel
|
|
%if 0%{?_with_vpl:1}
|
|
BuildRequires: intel-mediasdk-devel
|
|
BuildRequires: oneVPL-devel
|
|
BuildRequires: libva-devel
|
|
%endif
|
|
BuildRequires: libmpeg2-devel >= 0.5.1
|
|
BuildRequires: libnotify-devel
|
|
BuildRequires: librsvg2-devel
|
|
BuildRequires: libsamplerate-devel
|
|
BuildRequires: libtheora-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: libvorbis-devel
|
|
# Should be >= 1.5:
|
|
BuildRequires: libvpx-devel >= 1.3
|
|
BuildRequires: make
|
|
BuildRequires: meson
|
|
%if 0%{?_with_asm:1}
|
|
BuildRequires: nasm
|
|
%endif
|
|
BuildRequires: numactl-devel
|
|
BuildRequires: nv-codec-headers
|
|
BuildRequires: opus-devel
|
|
BuildRequires: python3
|
|
BuildRequires: speex-devel
|
|
BuildRequires: svt-av1-devel
|
|
BuildRequires: x264-devel >= 0.148
|
|
BuildRequires: x265-devel >= 1.9
|
|
BuildRequires: xz-devel
|
|
BuildRequires: zimg-devel
|
|
BuildRequires: git
|
|
BuildRequires: vulkan-loader
|
|
|
|
Requires: hicolor-icon-theme
|
|
# needed for reading encrypted DVDs
|
|
%{?fedora:Recommends: libdvdcss%_isa}
|
|
Obsoletes: HandBrake-cli < %version-%release
|
|
Provides: HandBrake-cli = %version-%release
|
|
Provides: handbrake = %version-%release
|
|
|
|
%description
|
|
%pkg is a general-purpose, free, open-source, cross-platform, multithreaded
|
|
video transcoder software application. It can process most common multimedia
|
|
files and any DVD or Bluray sources that do not contain any kind of copy
|
|
protection.
|
|
|
|
This package contains the command line version of the program.
|
|
|
|
%package gui
|
|
Summary: An open-source multiplatform video transcoder (GUI)
|
|
Provides: handbrake-gui = %version-%release
|
|
Requires: hicolor-icon-theme
|
|
# needed for reading encrypted DVDs
|
|
%{?fedora:Recommends: libdvdcss%_isa}
|
|
# needed for live preview
|
|
%{?fedora:Recommends: gstreamer1-plugins-good%_isa}
|
|
|
|
%description gui
|
|
%pkg is a general-purpose, free, open-source, cross-platform, multithreaded
|
|
video transcoder software application. It can process most common multimedia
|
|
files and any DVD or Bluray sources that do not contain any kind of copy
|
|
protection.
|
|
|
|
This package contains the main program with a graphical interface.
|
|
|
|
%prep
|
|
%if 0%{?tag:1}
|
|
%endif
|
|
git clone https://github.com/%pkg/%pkg
|
|
cd %pkg
|
|
git checkout %{!?tag:%commit0}%{?tag:%version}
|
|
%patch -P0 -p1
|
|
%if 0%!?_with_vpl
|
|
%patch -P1 -p1
|
|
%endif
|
|
%patch -P2 -p1
|
|
%patch -P3 -p1
|
|
%patch -P4 -p1
|
|
|
|
# Use system libraries in place of bundled ones
|
|
for module in a52dec fdk-aac %{!?_without_ffmpeg:ffmpeg} libdav1d libdvdnav libdvdread libbluray %{?_with_vpl:libmfx libvpl} nvenc libvpx svt-av1 x265; do
|
|
sed -i -e "/MODULES += contrib\/$module/d" make/include/main.defs
|
|
done
|
|
|
|
# Fix desktop file
|
|
sed -i -e 's/%desktop_id.svg/%desktop_id/g' gtk/src/%desktop_id.desktop
|
|
|
|
%build
|
|
cd %pkg
|
|
echo "HASH=%commit0" > version.txt
|
|
echo "SHORTHASH=%shortcommit0" >> version.txt
|
|
echo "DATE=$(date "+%Y-%m-%d %T" -d %date)" >> version.txt
|
|
%if 0%{?tag:1}
|
|
echo "TAG=%version" >> version.txt
|
|
echo "TAG_HASH=%commit0" >> version.txt
|
|
%endif
|
|
|
|
# By default the project is built with optimizations for speed and no debug.
|
|
# Override configure settings by passing RPM_OPT_FLAGS and disabling preset
|
|
# debug options.
|
|
echo "GCC.args.O.speed = %optflags -I%_includedir/vpl -I%_includedir/ffmpeg -ldl -lx265 %{?_with_vpl:-lvpl}" > custom.defs
|
|
echo "GCC.args.g.none = " >> custom.defs
|
|
|
|
# Not an autotools configure script.
|
|
./configure \
|
|
--build build \
|
|
--prefix=%_prefix \
|
|
--debug=std \
|
|
--strip=%_bindir/echo \
|
|
--verbose \
|
|
--disable-df-fetch \
|
|
--disable-df-verify \
|
|
--disable-gtk-update-checks \
|
|
%{?_with_asm:--enable-asm} \
|
|
--enable-x265 \
|
|
--disable-numa \
|
|
--enable-fdk-aac \
|
|
%{?_with_vpl:--enable-qsv}
|
|
|
|
%make_build -C build V=1
|
|
|
|
%install
|
|
cd %pkg
|
|
%make_install -C build
|
|
|
|
cp *.markdown COPYING ..
|
|
|
|
# Desktop file, icons and AppStream metadata from FlatPak build (more complete)
|
|
rm -f %buildroot%_datadir/applications/ghb.desktop \
|
|
%buildroot%_datadir/icons/hicolor/scalable/apps/hb-icon.svg
|
|
|
|
install -Dpm644 gtk/src/%desktop_id.desktop \
|
|
%buildroot%_datadir/applications/%desktop_id.desktop
|
|
install -Dpm644 gtk/src/%desktop_id.svg \
|
|
%buildroot%_datadir/icons/hicolor/scalable/apps/%desktop_id.svg
|
|
|
|
%find_lang ghb
|
|
|
|
%check
|
|
desktop-file-validate %buildroot%_datadir/applications/%desktop_id.desktop
|
|
appstream-util validate-relax --nonet %buildroot%_metainfodir/%desktop_id.metainfo.xml
|
|
|
|
%files gui
|
|
%license COPYING
|
|
%doc AUTHORS.markdown NEWS.markdown README.markdown THANKS.markdown
|
|
%_bindir/ghb
|
|
%_metainfodir/%desktop_id.metainfo.xml
|
|
%_datadir/applications/%desktop_id.desktop
|
|
%_datadir/icons/hicolor/scalable/apps/%desktop_id.svg
|
|
%_datadir/locale/*/LC_MESSAGES/ghb.mo
|
|
|
|
|
|
%files
|
|
%license COPYING
|
|
%doc AUTHORS.markdown NEWS.markdown README.markdown THANKS.markdown
|
|
%_bindir/HandBrakeCLI
|
|
|
|
%changelog
|
|
%autochangelog
|