losslesscut-bin: init at 3.33.1 (#108512)

Add binary package for
* Linux (AppImage)
* Mac (dmg, x86_64 version)
* Windows (zip)

authored by

Shamrock Lee and committed by
GitHub
56a4d985 9b3ab07e

+147
+45
pkgs/applications/video/losslesscut-bin/appimage.nix
···
··· 1 + { appimageTools, lib, fetchurl, gtk3, gsettings-desktop-schemas, version }: 2 + 3 + let 4 + pname = "losslesscut"; 5 + nameRepo = "lossless-cut"; 6 + nameCamel = "LosslessCut"; 7 + name = "${pname}-${version}"; 8 + nameSource = "${nameCamel}-linux.AppImage"; 9 + nameExecutable = "losslesscut"; 10 + owner = "mifi"; 11 + src = fetchurl { 12 + url = "https://github.com/${owner}/${nameRepo}/releases/download/v${version}/${nameSource}"; 13 + name = nameSource; 14 + sha256 = "0aqz5ijl5japfzzbcdcd2mmihkb8b2fc2hs9kkm3211yb37c5ygv"; 15 + }; 16 + extracted = appimageTools.extractType2 { 17 + inherit name src; 18 + }; 19 + in appimageTools.wrapType2 { 20 + inherit name src; 21 + 22 + profile = '' 23 + export LC_ALL=C.UTF-8 24 + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS 25 + ''; 26 + 27 + extraPkgs = ps: appimageTools.defaultFhsEnvArgs.multiPkgs ps; 28 + 29 + extraInstallCommands = '' 30 + mv $out/bin/{${name},${nameExecutable}} 31 + ( 32 + mkdir -p $out/share 33 + cd ${extracted}/usr 34 + find share -mindepth 1 -type d -exec mkdir -p $out/{} \; 35 + find share -mindepth 1 -type f,l -exec ln -s $PWD/{} $out/{} \; 36 + ) 37 + ln -s ${extracted}/${nameExecutable}.png $out/share/icons/${nameExecutable}.png 38 + mkdir $out/share/applications 39 + cp ${extracted}/${nameExecutable}.desktop $out/share/applications 40 + substituteInPlace $out/share/applications/${nameExecutable}.desktop \ 41 + --replace AppRun ${nameExecutable} 42 + ''; 43 + 44 + meta.platforms = with lib.platforms; [ "x86_64-linux" ]; 45 + }
+24
pkgs/applications/video/losslesscut-bin/default.nix
···
··· 1 + { callPackage, stdenvNoCC, lib }: 2 + let 3 + version = "3.33.1"; 4 + appimage = callPackage ./appimage.nix { inherit version; }; 5 + dmg = callPackage ./dmg.nix { inherit version; }; 6 + windows = callPackage ./windows.nix { inherit version; }; 7 + in ( 8 + if stdenvNoCC.isDarwin then dmg 9 + else if stdenvNoCC.isCygwin then windows 10 + else appimage 11 + ).overrideAttrs 12 + (oldAttrs: { 13 + meta = with lib; { 14 + description = "The swiss army knife of lossless video/audio editing"; 15 + homepage = "https://mifi.no/losslesscut/"; 16 + license = licenses.mit; 17 + maintainers = with maintainers; [ ShamrockLee ]; 18 + } // oldAttrs.meta // { 19 + platforms = 20 + appimage.meta.platforms 21 + ++ dmg.meta.platforms 22 + ++ windows.meta.platforms; 23 + }; 24 + })
+31
pkgs/applications/video/losslesscut-bin/dmg.nix
···
··· 1 + { stdenvNoCC, lib, fetchurl, undmg, version }: 2 + 3 + let 4 + pname = "losslesscut"; 5 + nameRepo = "lossless-cut"; 6 + nameCamel = "LosslessCut"; 7 + nameSource = "${nameCamel}-mac.dmg"; 8 + nameApp = nameCamel + ".app"; 9 + owner = "mifi"; 10 + src = fetchurl { 11 + url = "https://github.com/${owner}/${nameRepo}/releases/download/v${version}/${nameSource}"; 12 + name = nameSource; 13 + sha256 = "0xa1avbwar7x7kv5yn2ldca4vj3nwaz0dhjm3bcdy59q914xn3dj"; 14 + }; 15 + in stdenvNoCC.mkDerivation { 16 + inherit pname version src; 17 + 18 + nativeBuildInputs = [ undmg ]; 19 + 20 + unpackPhase = '' 21 + undmg ${src} 22 + ''; 23 + sourceRoot = nameApp; 24 + 25 + installPhase = '' 26 + mkdir -p $out/Applications/${nameApp} 27 + cp -R . $out/Applications/${nameApp} 28 + ''; 29 + 30 + meta.platforms = lib.platforms.darwin; 31 + }
+45
pkgs/applications/video/losslesscut-bin/windows.nix
···
··· 1 + { stdenvNoCC 2 + , lib 3 + , fetchurl 4 + , unzip 5 + , version 6 + , useMklink ? false 7 + , customSymlinkCommand ? null 8 + }: 9 + let 10 + pname = "losslesscut"; 11 + nameRepo = "lossless-cut"; 12 + nameCamel = "LosslessCut"; 13 + nameSourceBase = "${nameCamel}-win"; 14 + nameSource = "${nameSourceBase}.zip"; 15 + nameExecutable = "${nameCamel}.exe"; 16 + owner = "mifi"; 17 + getSymlinkCommand = if (customSymlinkCommand != null) then customSymlinkCommand 18 + else if useMklink then (targetPath: linkPath: "mklink ${targetPath} ${linkPath}") 19 + else (targetPath: linkPath: "ln -s ${targetPath} ${linkPath}"); 20 + in stdenvNoCC.mkDerivation { 21 + inherit pname version; 22 + 23 + src = fetchurl { 24 + name = nameSource; 25 + url = "https://github.com/${owner}/${nameRepo}/releases/download/v${version}/${nameSource}"; 26 + sha256 = "1rq9frab0jl9y1mgmjhzsm734jvz0a646zq2wi5xzzspn4wikhvb"; 27 + }; 28 + 29 + nativeBuildInputs = [ unzip ]; 30 + 31 + unpackPhase = '' 32 + unzip $src -d ${nameSourceBase} 33 + ''; 34 + 35 + sourceRoot = nameSourceBase; 36 + 37 + installPhase = '' 38 + mkdir -p $out/bin $out/libexec 39 + cd .. 40 + mv ${nameSourceBase} $out/libexec 41 + 42 + '' + (getSymlinkCommand "${nameSourceBase}/${nameExecutable}" "$out/bin/${nameExecutable}"); 43 + 44 + meta.platforms = lib.platforms.windows; 45 + }
+2
pkgs/top-level/all-packages.nix
··· 24239 portaudio = null; 24240 }; 24241 24242 loxodo = callPackage ../applications/misc/loxodo { }; 24243 24244 lsd2dsl = libsForQt5.callPackage ../applications/misc/lsd2dsl { };
··· 24239 portaudio = null; 24240 }; 24241 24242 + losslesscut-bin = callPackage ../applications/video/losslesscut-bin { }; 24243 + 24244 loxodo = callPackage ../applications/misc/loxodo { }; 24245 24246 lsd2dsl = libsForQt5.callPackage ../applications/misc/lsd2dsl { };