nixpkgs/pkgs/tools/archivers/unar/default.nix
2021-07-17 20:55:28 +02:00

66 lines
2 KiB
Nix

{ lib, stdenv, fetchFromGitHub, installShellFiles, gnustep, bzip2, zlib, icu, openssl, wavpack }:
stdenv.mkDerivation rec {
pname = "unar";
version = "1.10.7";
src = fetchFromGitHub {
owner = "MacPaw";
# the unar repo contains a shallow clone of both XADMaster and universal-detector
repo = "unar";
rev = "v${version}";
sha256 = "0p846q1l66k3rnd512sncp26zpv411b8ahi145sghfcsz9w8abc4";
};
postPatch = ''
for f in Makefile.linux ../UniversalDetector/Makefile.linux ; do
substituteInPlace $f \
--replace "= gcc" "=${stdenv.cc.targetPrefix}cc" \
--replace "= g++" "=${stdenv.cc.targetPrefix}c++" \
--replace "-DGNU_RUNTIME=1" "" \
--replace "-fgnu-runtime" "-fobjc-nonfragile-abi"
done
# we need to build inside this directory as well, so we have to make it writeable
chmod +w ../UniversalDetector -R
'';
buildInputs = [ gnustep.base bzip2 icu openssl wavpack zlib ];
nativeBuildInputs = [ gnustep.make installShellFiles ];
enableParallelBuilding = true;
dontConfigure = true;
makefile = "Makefile.linux";
sourceRoot = "./source/XADMaster";
installPhase = ''
runHook preInstall
install -Dm555 -t $out/bin lsar unar
for f in lsar unar; do
installManPage ./Extra/$f.?
installShellCompletion --bash --name $f ./Extra/$f.bash_completion
done
runHook postInstall
'';
meta = with lib; {
homepage = "https://theunarchiver.com";
description = "An archive unpacker program";
longDescription = ''
The Unarchiver is an archive unpacker program with support for the popular
zip, RAR, 7z, tar, gzip, bzip2, LZMA, XZ, CAB, MSI, NSIS, EXE, ISO, BIN,
and split file formats, as well as the old Stuffit, Stuffit X, DiskDouble,
Compact Pro, Packit, cpio, compress (.Z), ARJ, ARC, PAK, ACE, ZOO, LZH,
ADF, DMS, LZX, PowerPacker, LBR, Squeeze, Crunch, and other old formats.
'';
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux;
};
}