From 2240ddcf8c49418ffc4a670ca3fe86df12529cc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Tue, 30 Jul 2019 21:02:24 +0200 Subject: [PATCH] makemkv: modernize derivation - Use libsForQt5.callPackage - Replace separate builder.sh script - Replace patchelf call by autoPatchElfHook - Use ffmpeg in place of libav --- pkgs/applications/video/makemkv/builder.sh | 40 ------------------- pkgs/applications/video/makemkv/default.nix | 43 +++++++++++++-------- pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 28 insertions(+), 57 deletions(-) delete mode 100644 pkgs/applications/video/makemkv/builder.sh diff --git a/pkgs/applications/video/makemkv/builder.sh b/pkgs/applications/video/makemkv/builder.sh deleted file mode 100644 index 416d5c0f0b07..000000000000 --- a/pkgs/applications/video/makemkv/builder.sh +++ /dev/null @@ -1,40 +0,0 @@ -source $stdenv/setup -set -x - -lib=" \ - makemkv-oss-${ver}/out/libdriveio.so.0 \ - makemkv-oss-${ver}/out/libmakemkv.so.1 \ - makemkv-oss-${ver}/out/libmmbd.so.0 \ - " - -bin=" \ - makemkv-oss-${ver}/out/makemkv \ - makemkv-bin-${ver}/bin/amd64/makemkvcon \ - " - -tar xzf ${src_bin} -tar xzf ${src_oss} - -( - cd makemkv-oss-${ver} - ./configure --prefix=$out - make -) - -chmod +x ${bin} - -libPath="${libPath}:${out}/lib" # XXX: der. This should be in the nix file? - -for i in ${bin} ; do - patchelf \ - --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath $libPath \ - ${i} -done - -mkdir -p $out/bin -mkdir -p $out/lib -mkdir -p $out/share/MakeMKV -cp ${lib} ${out}/lib -cp ${bin} ${out}/bin -cp makemkv-bin-${ver}/src/share/* $out/share/MakeMKV diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix index f9b5c4c01965..f3d8b4ae569b 100644 --- a/pkgs/applications/video/makemkv/default.nix +++ b/pkgs/applications/video/makemkv/default.nix @@ -1,34 +1,45 @@ -{ stdenv, fetchurl -, openssl, qt5, libGLU_combined, zlib, pkgconfig, libav +{ stdenv, mkDerivation, fetchurl, autoPatchelfHook +, ffmpeg, openssl, qtbase, zlib, pkgconfig }: -stdenv.mkDerivation rec { - name = "makemkv-${ver}"; - ver = "1.14.4"; - builder = ./builder.sh; - +let + version = "1.14.4"; # Using two URLs as the first one will break as soon as a new version is released src_bin = fetchurl { urls = [ - "http://www.makemkv.com/download/makemkv-bin-${ver}.tar.gz" - "http://www.makemkv.com/download/old/makemkv-bin-${ver}.tar.gz" + "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz" + "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz" ]; sha256 = "0vmmvldmwmq9g202abblj6l15kb8z3b0c6mcc03f30s2yci6ij33"; }; - src_oss = fetchurl { urls = [ - "http://www.makemkv.com/download/makemkv-oss-${ver}.tar.gz" - "http://www.makemkv.com/download/old/makemkv-oss-${ver}.tar.gz" + "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz" + "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz" ]; sha256 = "0n1nlq17dxcbgk9xqf7nv6zykvh91yhsjqdhq55947wc11fxjqa0"; }; +in mkDerivation { + pname = "makemkv"; + inherit version; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [openssl qt5.qtbase libGLU_combined zlib libav]; + srcs = [ src_bin src_oss ]; - libPath = stdenv.lib.makeLibraryPath [stdenv.cc.cc openssl libGLU_combined qt5.qtbase zlib ] - + ":" + stdenv.cc.cc + "/lib64"; + sourceRoot = "makemkv-oss-${version}"; + + nativeBuildInputs = [ autoPatchelfHook pkgconfig ]; + + buildInputs = [ ffmpeg openssl qtbase zlib ]; + + installPhase = '' + runHook preInstall + + install -Dm555 -t $out/bin out/makemkv ../makemkv-bin-${version}/bin/amd64/makemkvcon + install -D -t $out/lib out/lib{driveio,makemkv,mmbd}.so.* + install -D -t $out/share/MakeMKV ../makemkv-bin-${version}/src/share/* + + runHook postInstall + ''; meta = with stdenv.lib; { description = "Convert blu-ray and dvd to mkv"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4a03f722c971..9aa65d716559 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4568,7 +4568,7 @@ in mairix = callPackage ../tools/text/mairix { }; - makemkv = callPackage ../applications/video/makemkv { }; + makemkv = libsForQt5.callPackage ../applications/video/makemkv { }; makerpm = callPackage ../development/tools/makerpm { };