From 46d30ae22f741e58c24d14755c76a337c88c9404 Mon Sep 17 00:00:00 2001 From: codyopel <codyopel@gmail.com> Date: Mon, 11 May 2015 06:20:12 -0400 Subject: [PATCH] mkvtoolnix: 7.8.0 -> 7.9.0 --- .../applications/video/mkvtoolnix/default.nix | 81 ++++++++++++------- pkgs/top-level/all-packages.nix | 2 + 2 files changed, 55 insertions(+), 28 deletions(-) diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix index 01d96542c2e..0dbf4271383 100644 --- a/pkgs/applications/video/mkvtoolnix/default.nix +++ b/pkgs/applications/video/mkvtoolnix/default.nix @@ -1,49 +1,74 @@ -{ stdenv, fetchurl -, libmatroska -, flac -, libvorbis -, file -, boost -, xdg_utils -, expat -, withGUI ? true -, wxGTK -, zlib -, ruby -, gettext -, pkgconfig -, curl +{ stdenv, fetchurl, gettext, pkgconfig, ruby +, boost, expat, file, flac, libebml, libmatroska, libogg, libvorbis, xdg_utils, zlib +# pugixml (not packaged) +, buildConfig ? "all" +, withGUI ? false, qt5 ? null # Disabled for now until upstream issues are resolved +, legacyGUI ? true, wxGTK ? null +# For now both qt5 and wxwidgets gui's are enabled, if wxwidgets is disabled the +# build system doesn't install desktop entries, icons, etc... }: -assert withGUI -> wxGTK != null; +let + inherit (stdenv.lib) enableFeature optional; +in + +assert withGUI -> qt5 != null; +assert legacyGUI -> wxGTK != null; stdenv.mkDerivation rec { - version = "7.8.0"; name = "mkvtoolnix-${version}"; + version = "7.9.0"; src = fetchurl { url = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${name}.tar.xz"; - sha256 = "0m7y9115bkfsm95hv2nq0hnd9w73jymsm071jm798w11vdskm8af"; + sha256 = "0jmsgfkxrnplpmwlzynqdb4xf3x1z3dminz97gmddswwgnjqyy1r"; }; - buildInputs = [ - libmatroska flac libvorbis file boost xdg_utils - expat zlib ruby gettext pkgconfig curl - ] ++ stdenv.lib.optional withGUI wxGTK; + patchPhase = '' + patchShebangs ./rake.d/ + patchShebangs ./Rakefile + # Force ruby encoding to use UTF-8 or else when enabling qt5 the Rakefile may + # fail with `invalid byte sequence in US-ASCII' due to UTF-8 characters + # This workaround replaces an arbitrary comment in the drake file + sed -e 's,#--,Encoding.default_external = Encoding::UTF_8,' -i ./drake + ''; + + configureFlags = [ + "--with-boost-libdir=${boost.lib}/lib" + "--without-curl" + ] ++ ( + if (withGUI || legacyGUI) then [ + "--with-mkvtoolnix-gui" + "--enable-gui" + (enableFeature withGUI "qt") + (enableFeature legacyGUI "wxwidgets") + ] else [ + "--disable-gui" + ] + ); + + nativeBuildInputs = [ gettext pkgconfig ruby ]; + + buildInputs = [ + boost expat file flac libebml libmatroska libogg libvorbis xdg_utils zlib + ] ++ optional withGUI qt5 + ++ optional legacyGUI wxGTK; + + enableParallelBuilding = true; - configureFlags = "--with-boost-libdir=${boost.lib}/lib"; buildPhase = '' - ruby ./drake + ./drake ''; installPhase = '' - ruby ./drake install + ./drake install ''; - meta = { + meta = with stdenv.lib; { description = "Cross-platform tools for Matroska"; homepage = http://www.bunkus.org/videotools/mkvtoolnix/; - license = stdenv.lib.licenses.gpl2; - maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; + license = licenses.gpl2; + maintainers = with maintainers; [ codyopel fuuzetsu ]; + platforms = platforms.unix; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 716349d6074..9ac1bd592e3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7144,6 +7144,8 @@ let mkvtoolnix-cli = mkvtoolnix.override { withGUI = false; + qt5 = null; + legacyGUI = false; wxGTK = null; };