nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 97 lines 2.6 kB view raw
1{ 2 lib, 3 fetchurl, 4 stdenv, 5 fetchzip, 6 ant, 7 jdk, 8 makeWrapper, 9 stripJavaArchivesHook, 10 callPackage, 11}: 12 13let 14 minimalJavaVersion = "11"; 15 16 newsPlugin = fetchurl { 17 url = "https://www.tvbrowser.org/data/uploads/1372016422809_543/NewsPlugin.jar"; 18 hash = "sha256-5XoypuMd2AFBE2SJ6EdECuvq6D81HLLuu9UoA9kcKAM="; 19 }; 20in 21stdenv.mkDerivation rec { 22 pname = "tvbrowser"; 23 version = "4.2.7"; 24 25 src = fetchzip { 26 url = "mirror://sourceforge/${pname}/TV-Browser%20Releases%20%28Java%20${minimalJavaVersion}%20and%20higher%29/${version}/${pname}_${version}_src.zip"; 27 hash = "sha256-dmNfI6T0MU7UtMH+C/2hiAeDwZlFCB4JofQViZezoqI="; 28 }; 29 30 nativeBuildInputs = [ 31 ant 32 jdk 33 makeWrapper 34 stripJavaArchivesHook 35 ]; 36 37 buildPhase = '' 38 runHook preBuild 39 40 ant runtime-linux -Dnewsplugin.url=file://${newsPlugin} 41 ant tvbrowser-desktop-entry 42 43 runHook postBuild 44 ''; 45 46 installPhase = '' 47 runHook preInstall 48 49 mkdir -p $out/share/tvbrowser 50 cp -R runtime/tvbrowser_linux/* $out/share/tvbrowser 51 52 mkdir -p $out/share/applications 53 mv -t $out/share/applications $out/share/tvbrowser/tvbrowser.desktop 54 sed -e 's|=imgs/|='$out'/share/tvbrowser/imgs/|' \ 55 -e 's|=tvbrowser.sh|='$out'/bin/tvbrowser|' \ 56 -i $out/share/applications/tvbrowser.desktop 57 58 for i in 16 32 48 128; do 59 mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps 60 ln -s $out/share/tvbrowser/imgs/tvbrowser$i.png \ 61 $out/share/icons/hicolor/''${i}x''${i}/apps/tvbrowser.png 62 done 63 64 mkdir -p $out/bin 65 makeWrapper \ 66 $out/share/tvbrowser/tvbrowser.sh \ 67 $out/bin/tvbrowser \ 68 --prefix PATH : ${jdk}/bin \ 69 --prefix XDG_DATA_DIRS : $out/share \ 70 --set PROGRAM_DIR $out/share/tvbrowser 71 72 runHook postInstall 73 ''; 74 75 passthru.tests.startwindow = callPackage ./test.nix { }; 76 77 meta = { 78 description = "Electronic TV Program Guide"; 79 downloadPage = "https://www.tvbrowser.org/index.php?id=tv-browser"; 80 homepage = "https://www.tvbrowser.org/"; 81 changelog = "https://www.tvbrowser.org/index.php?id=news"; 82 sourceProvenance = with lib.sourceTypes; [ 83 binaryBytecode 84 fromSource 85 ]; 86 license = lib.licenses.gpl3Plus; 87 platforms = lib.platforms.linux; 88 mainProgram = "tvbrowser"; 89 maintainers = with lib.maintainers; [ yarny ]; 90 longDescription = '' 91 TV-Browser shows TV program data arranged like in printed 92 TV programs after downloading it from the internet. 93 Plugins are used to download program data 94 and to provide additional functionality. 95 ''; 96 }; 97}