Merge #63643: handbrake: fix build on Darwin
This commit is contained in:
commit
48af02a402
@ -2,10 +2,14 @@
|
||||
#
|
||||
# Derivation patches HandBrake to use Nix closure dependencies.
|
||||
#
|
||||
# NOTE: 2019-07-19: This derivation does not currently support the native macOS
|
||||
# GUI--it produces the "HandbrakeCLI" CLI version only. In the future it would
|
||||
# be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
|
||||
# requires invoking the Xcode build system, which is non-trivial for now.
|
||||
|
||||
{ stdenv, lib, fetchurl,
|
||||
# Main build tools
|
||||
python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4,
|
||||
python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4, lzma,
|
||||
# Processing, video codecs, containers
|
||||
ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora,
|
||||
# Codecs, audio
|
||||
@ -14,7 +18,17 @@
|
||||
libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz,
|
||||
# Optical media
|
||||
libdvdread, libdvdnav, libdvdcss, libbluray,
|
||||
useGtk ? true, wrapGAppsHook ? null,
|
||||
# Darwin-specific
|
||||
AudioToolbox ? null,
|
||||
Foundation ? null,
|
||||
libobjc ? null,
|
||||
VideoToolbox ? null,
|
||||
# GTK
|
||||
# NOTE: 2019-07-19: The gtk3 package has a transitive dependency on dbus,
|
||||
# which in turn depends on systemd. systemd is not supported on Darwin, so
|
||||
# for now we disable GTK GUI support on Darwin. (It may be possible to remove
|
||||
# this restriction later.)
|
||||
useGtk ? !stdenv.isDarwin, wrapGAppsHook ? null,
|
||||
intltool ? null,
|
||||
glib ? null,
|
||||
gtk3 ? null,
|
||||
@ -25,9 +39,13 @@
|
||||
udev ? null,
|
||||
libgudev ? null,
|
||||
hicolor-icon-theme ? null,
|
||||
# FDK
|
||||
useFdk ? false, fdk_aac ? null
|
||||
}:
|
||||
|
||||
assert stdenv.isDarwin -> AudioToolbox != null && Foundation != null
|
||||
&& libobjc != null && VideoToolbox != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "handbrake";
|
||||
version = "1.2.2";
|
||||
@ -45,12 +63,13 @@ stdenv.mkDerivation rec {
|
||||
ffmpeg-full libogg libtheora x264 x265 libvpx
|
||||
libopus lame libvorbis a52dec speex libsamplerate
|
||||
libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
|
||||
libdvdread libdvdnav libdvdcss libbluray
|
||||
libdvdread libdvdnav libdvdcss libbluray lzma
|
||||
] ++ lib.optionals useGtk [
|
||||
glib gtk3 libappindicator-gtk3 libnotify
|
||||
gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
|
||||
libgudev hicolor-icon-theme
|
||||
] ++ lib.optional useFdk fdk_aac
|
||||
++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
|
||||
# NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
|
||||
# look at ./make/configure.py search "enable_nvenc"
|
||||
++ lib.optional stdenv.isLinux nv-codec-headers;
|
||||
@ -59,13 +78,16 @@ stdenv.mkDerivation rec {
|
||||
# (default distribution bundles&builds 3rd party libs),
|
||||
# don't trigger cmake build
|
||||
dontUseCmakeConfigure = true;
|
||||
enableParallelBuilding = true;
|
||||
# cp: cannot create regular file './internal_defaults.json': File exists
|
||||
enableParallelBuilding = false;
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs scripts
|
||||
|
||||
substituteInPlace libhb/module.defs \
|
||||
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
|
||||
substituteInPlace libhb/module.defs \
|
||||
--replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
|
||||
|
||||
# Force using nixpkgs dependencies
|
||||
sed -i '/MODULES += contrib/d' make/include/main.defs
|
||||
@ -77,6 +99,7 @@ stdenv.mkDerivation rec {
|
||||
"--disable-df-verify"
|
||||
(if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
|
||||
(if useFdk then "--enable-fdk-aac" else "")
|
||||
(if stdenv.isDarwin then "--disable-xcode" else "")
|
||||
];
|
||||
|
||||
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing
|
||||
|
@ -19193,7 +19193,10 @@ in
|
||||
|
||||
lxdvdrip = callPackage ../applications/video/lxdvdrip { };
|
||||
|
||||
handbrake = callPackage ../applications/video/handbrake { };
|
||||
handbrake = callPackage ../applications/video/handbrake {
|
||||
inherit (darwin.apple_sdk.frameworks) AudioToolbox Foundation VideoToolbox;
|
||||
inherit (darwin) libobjc;
|
||||
};
|
||||
|
||||
lilyterm = callPackage ../applications/misc/lilyterm {
|
||||
inherit (gnome2) vte;
|
||||
|
Loading…
Reference in New Issue
Block a user