Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 101 lines 2.5 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 pkg-config, 6 cmake, 7 qtbase, 8 qttools, 9 spdlog, 10 ffmpeg, 11 taglib, 12 wrapQtAppsHook, 13 makeDesktopItem, 14 copyDesktopItems, 15}: 16 17stdenv.mkDerivation rec { 18 pname = "easyaudiosync"; 19 version = "1.1.2"; 20 21 src = fetchFromGitHub { 22 owner = "complexlogic"; 23 repo = "EasyAudioSync"; 24 rev = "v${version}"; 25 hash = "sha256-UCOL4DzynKjNDvS0HZ4/K+Wn5lOqHZ0bNop0zqJl5kc="; 26 }; 27 28 patches = [ 29 ./0001-fix-project-name.patch 30 ./0003-fix-darwin-app.patch 31 ./0004-force-qt6.patch 32 ]; 33 34 nativeBuildInputs = [ 35 cmake 36 pkg-config 37 wrapQtAppsHook 38 ] 39 ++ lib.optional stdenv.hostPlatform.isLinux copyDesktopItems; 40 41 buildInputs = [ 42 qtbase 43 qttools 44 ffmpeg 45 spdlog 46 taglib 47 ]; 48 49 installPhase = '' 50 runHook preInstall 51 '' 52 + lib.optionalString stdenv.hostPlatform.isDarwin '' 53 mkdir -p $out/Applications 54 mv "easyaudiosync.app" "Easy Audio Sync.app" 55 cp -r "Easy Audio Sync.app" $out/Applications 56 '' 57 + lib.optionalString stdenv.hostPlatform.isLinux '' 58 install -Dm755 easyaudiosync $out/bin/easyaudiosync 59 60 for RES in 48 64 128 256; do 61 install -Dm755 "$src/assets/icons/easyaudiosync''${RES}.png" "$out/share/icons/hicolor/''${RES}x''${RES}/apps/easyaudiosync.png" 62 done 63 64 install -Dm755 "$src/assets/icons/easyaudiosync.svg" "$out/share/icons/hicolor/scalable/apps/easyaudiosync.svg" 65 '' 66 + '' 67 runHook postInstall 68 ''; 69 70 desktopItems = [ 71 (makeDesktopItem { 72 name = "easyaudiosync"; 73 exec = "easyaudiosync"; 74 icon = "easyaudiosync"; 75 desktopName = "Easy Audio Sync"; 76 categories = [ 77 "Qt" 78 "Audio" 79 "AudioVideo" 80 ]; 81 comment = "Audio library syncing and conversion utility"; 82 }) 83 ]; 84 85 meta = with lib; { 86 description = "Audio library syncing and conversion utility"; 87 longDescription = '' 88 Easy Audio Sync is an audio library syncing and conversion utility. 89 The intended use is syncing an audio library with many lossless files to a mobile device 90 with limited storage. 91 92 The program's design is inspired by the rsync utility. It supports folder-based 93 source to destination syncing, with added audio transcoding capability, and is 94 GUI-based instead of CLI-based. 95 ''; 96 homepage = "https://github.com/complexlogic/EasyAudioSync"; 97 license = licenses.unlicense; 98 maintainers = with maintainers; [ matteopacini ]; 99 platforms = platforms.linux ++ platforms.darwin; 100 }; 101}