diff options
author | Vladimír Čunát <v@cunat.cz> | 2019-09-16 08:28:04 +0200 |
---|---|---|
committer | Vladimír Čunát <v@cunat.cz> | 2019-09-16 08:28:04 +0200 |
commit | 48af02a402e6f000a3cf1f1b46087e2d74638dc2 (patch) | |
tree | 3d242ce8cfa09e466ee98460df47e20616d8dcd7 /pkgs/applications/video | |
parent | d88f4efd0b1172450cfd211ae659cc4f09ce6689 (diff) | |
parent | aaf3881a80b4d41466d5e2cd8d36d36e89698186 (diff) |
Merge #63643: handbrake: fix build on Darwin
Diffstat (limited to 'pkgs/applications/video')
-rw-r--r-- | pkgs/applications/video/handbrake/default.nix | 55 |
1 files changed, 39 insertions, 16 deletions
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix index a15a4cd5999..2e216369de9 100644 --- a/pkgs/applications/video/handbrake/default.nix +++ b/pkgs/applications/video/handbrake/default.nix @@ -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,20 +18,34 @@ libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz, # Optical media libdvdread, libdvdnav, libdvdcss, libbluray, - useGtk ? true, wrapGAppsHook ? null, - intltool ? null, - glib ? null, - gtk3 ? null, - libappindicator-gtk3 ? null, - libnotify ? null, - gst_all_1 ? null, - dbus-glib ? null, - udev ? null, - libgudev ? null, - hicolor-icon-theme ? 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, + libappindicator-gtk3 ? null, + libnotify ? null, + gst_all_1 ? null, + dbus-glib ? null, + 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 @@ -75,8 +97,9 @@ stdenv.mkDerivation rec { configureFlags = [ "--disable-df-fetch" "--disable-df-verify" - (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk") - (if useFdk then "--enable-fdk-aac" else "") + (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 |