parent
19dbe42aeb
commit
46d30ae22f
@ -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"; |
||||
}; |
||||
|
||||
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 = [ |
||||
libmatroska flac libvorbis file boost xdg_utils |
||||
expat zlib ruby gettext pkgconfig curl |
||||
] ++ stdenv.lib.optional withGUI wxGTK; |
||||
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; |
||||
}; |
||||
} |
||||
|
Loading…
Reference in new issue