summary refs log tree commit diff
path: root/pkgs/applications/video
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2018-08-06 12:07:37 +0200
committerVladimír Čunát <vcunat@gmail.com>2018-08-06 12:07:37 +0200
commitf504af072bc5cf49da008e6970c214255d5f46ed (patch)
treef2849cd5d239a32d7a2fbdff1dc5b3a0ed369b96 /pkgs/applications/video
parent11ceef47699fb0911bea790e4b8059d97e95ad14 (diff)
parent6820e2f0dd16104961d6fc7e8e38846807159c4e (diff)
downloadnixlib-f504af072bc5cf49da008e6970c214255d5f46ed.tar
nixlib-f504af072bc5cf49da008e6970c214255d5f46ed.tar.gz
nixlib-f504af072bc5cf49da008e6970c214255d5f46ed.tar.bz2
nixlib-f504af072bc5cf49da008e6970c214255d5f46ed.tar.lz
nixlib-f504af072bc5cf49da008e6970c214255d5f46ed.tar.xz
nixlib-f504af072bc5cf49da008e6970c214255d5f46ed.tar.zst
nixlib-f504af072bc5cf49da008e6970c214255d5f46ed.zip
Merge branch 'master' into staging-next
There's been some large rebuild on master.
I don't really have time ATM to find what it was.
Diffstat (limited to 'pkgs/applications/video')
-rw-r--r--pkgs/applications/video/mpv/default.nix29
-rw-r--r--pkgs/applications/video/plex-media-player/default.nix86
-rw-r--r--pkgs/applications/video/shotcut/default.nix14
3 files changed, 110 insertions, 19 deletions
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index 55ab1b954898..c384455d6722 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -171,9 +171,12 @@ in stdenv.mkDerivation rec {
 
   buildPhase = ''
     python3 ${waf} build
+  '' + optionalString stdenv.isDarwin ''
+    python3 TOOLS/osxbundle.py -s build/mpv
   '';
 
-  installPhase =
+  # Ensure youtube-dl is available in $PATH for mpv
+  wrapperFlags = 
   let
     getPath  = type : "${luasocket}/lib/lua/${lua.luaversion}/?.${type};" +
                       "${luasocket}/share/lua/${lua.luaversion}/?.${type}";
@@ -181,24 +184,32 @@ in stdenv.mkDerivation rec {
     luaCPath = getPath "so";
   in
   ''
-    python3 ${waf} install
-
-    # Use a standard font
-    mkdir -p $out/share/mpv
-    ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
-    # Ensure youtube-dl is available in $PATH for MPV
-    wrapProgram $out/bin/mpv \
       --prefix LUA_PATH : "${luaPath}" \
       --prefix LUA_CPATH : "${luaCPath}" \
   '' + optionalString youtubeSupport ''
       --prefix PATH : "${youtube-dl}/bin" \
   '' + optionalString vapoursynthSupport ''
       --prefix PYTHONPATH : "${vapoursynth}/lib/${python3.libPrefix}/site-packages:$PYTHONPATH"
-  '' + ''
+  '';
+
+  installPhase = ''
+    python3 ${waf} install
+
+    # Use a standard font
+    mkdir -p $out/share/mpv
+    ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
+    wrapProgram "$out/bin/mpv" \
+      ${wrapperFlags}
 
     cp TOOLS/umpv $out/bin
     wrapProgram $out/bin/umpv \
       --set MPV "$out/bin/mpv"
+
+  '' + optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    cp -r build/mpv.app $out/Applications
+    wrapProgram "$out/Applications/mpv.app/Contents/MacOS/mpv" \
+      ${wrapperFlags}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/plex-media-player/default.nix b/pkgs/applications/video/plex-media-player/default.nix
new file mode 100644
index 000000000000..7386d95d0c2b
--- /dev/null
+++ b/pkgs/applications/video/plex-media-player/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchFromGitHub, fetchurl, makeDesktopItem, pkgconfig, cmake, python3
+, libX11, libXrandr, qtbase, qtwebchannel, qtwebengine, qtx11extras
+, libvdpau, SDL2, mpv, libGL }:
+let
+  # During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`,
+  # which then downloads a handful of web client-related files. To enable
+  # sandboxed builds, we manually download them and save them so these files
+  # are fetched ahead-of-time instead of during the CMake build. Whenever
+  # plex-media-player is updated, the versions for these files are changed,
+  # so the build IDs (and SHAs) below will need to be updated!
+  depSrcs = rec {
+    webClientBuildId = "56-23317d81e49651";
+    webClientDesktopBuildId = "3.57.1-1e49651";
+    webClientTvBuildId = "3.60.1-23317d8";
+
+    webClient = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake";
+      sha256 = "1a48a65zzdx347kfnxriwkb0yjlhvn2g8jkda5pz10r3lwja0gbi";
+    };
+    webClientDesktopHash = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1";
+      sha256 = "04wdgpsh33y8hyjhjrfw6ymf9g002jny7hvhld4xp33lwxhd2j5w";
+    };
+    webClientDesktop = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz";
+      sha256 = "1asw9f84z9sm3w7ifnc7j631j84rgx23c6msmn2dnw48ckv3bj2z";
+    };
+    webClientTvHash = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1";
+      sha256 = "0d1hsvmpwczwx442f8qdvfr8c3w84630j9qwpg2y4qm423sgdvja";
+    };
+    webClientTv = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz";
+      sha256 = "1ih3l5paf1jl68b1xq3iqqmvs3m07fybz57hcz4f78v0gwq2kryq";
+    };
+  };
+in stdenv.mkDerivation rec {
+  name = "plex-media-player-${version}";
+  version = "2.14.1.880";
+  vsnHash = "301a4b6c";
+
+  src = fetchFromGitHub {
+    owner = "plexinc";
+    repo = "plex-media-player";
+    rev = "v${version}-${vsnHash}";
+    sha256 = "0xz41r697vl6s3qvy6jwriv3pb9cfy61j6sydvdq121x5a0jnh9a";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake python3 ];
+  buildInputs = [ libX11 libXrandr qtbase qtwebchannel qtwebengine qtx11extras
+                  libvdpau SDL2 mpv libGL ];
+
+  desktopItem = makeDesktopItem {
+    name = "plex-media-player";
+    exec = "plexmediaplayer";
+    icon = "plex-media-player";
+    comment = "View your media";
+    desktopName = "Plex Media Player";
+    genericName = "Media Player";
+    categories = "AudioVideo;Video;Player;TV;";
+  };
+
+  preConfigure = with depSrcs; ''
+    mkdir -p build/dependencies
+    ln -s ${webClient} build/dependencies/buildid-${webClientBuildId}.cmake
+    ln -s ${webClientDesktopHash} build/dependencies/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1
+    ln -s ${webClientDesktop} build/dependencies/web-client-desktop-${webClientDesktopBuildId}.tar.xz
+    ln -s ${webClientTvHash} build/dependencies/web-client-tv-${webClientTvBuildId}.tar.xz.sha1
+    ln -s ${webClientTv} build/dependencies/web-client-tv-${webClientTvBuildId}.tar.xz
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/{applications,pixmaps}
+    cp ${src}/resources/images/icon.png $out/share/pixmaps/plex-media-player.png
+    cp ${desktopItem}/share/applications/* $out/share/applications
+  '';
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ];
+
+  meta = with stdenv.lib; {
+    description = "Streaming media player for Plex";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ kylewlacy ];
+    homepage = https://plex.tv;
+  };
+}
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 0df5d42ee0ea..950cd27937cc 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -1,20 +1,20 @@
 { stdenv, fetchFromGitHub, SDL2, frei0r, gettext, mlt, jack1, pkgconfig, qtbase
 , qtmultimedia, qtwebkit, qtx11extras, qtwebsockets, qtquickcontrols
 , qtgraphicaleffects, libmlt
-, qmake, makeWrapper, fetchpatch, qttools }:
+, qmake, makeWrapper, qttools }:
 
 assert stdenv.lib.versionAtLeast libmlt.version "6.8.0";
 assert stdenv.lib.versionAtLeast mlt.version "6.8.0";
 
 stdenv.mkDerivation rec {
   name = "shotcut-${version}";
-  version = "18.06.02";
+  version = "18.08";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "1pqpgsb8ix1akq326chf46vvl5h02dwmdskskf2n6impygsy4x7v";
+    sha256 = "1p2s4avm3bl5ippmgfzkkbb2w0xs4vhk2wbcd22g7bh1zq9w190n";
   };
 
   enableParallelBuilding = true;
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   NIX_CFLAGS_COMPILE = "-I${libmlt}/include/mlt++ -I${libmlt}/include/mlt";
-  qmakeFlags = [ "QMAKE_LRELEASE=${stdenv.lib.getDev qttools}/bin/lrelease" ];
+  qmakeFlags = [ "QMAKE_LRELEASE=${stdenv.lib.getDev qttools}/bin/lrelease" "SHOTCUT_VERSION=${version}" ];
 
   prePatch = ''
     sed 's_shotcutPath, "qmelt"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
@@ -35,12 +35,6 @@ stdenv.mkDerivation rec {
     sed "s_/usr/bin/nice_''${NICE}_" -i src/jobs/meltjob.cpp src/jobs/ffmpegjob.cpp
   '';
 
-  patches = [ (fetchpatch {
-    url = https://github.com/mltframework/shotcut/commit/f304b7403cc7beb57b1610afd9c5c8173749e80b.patch;
-    name = "qt511.patch";
-    sha256 = "1ynvyjchcb33a33x4w1ddnah2gyzmnm125ailgg6xy60lqsnsmp9";
-    } ) ];
-
   postInstall = ''
     mkdir -p $out/share/shotcut
     cp -r src/qml $out/share/shotcut/