anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / tools / archivers / rar / default.nix
blobfb95f4de5650ab9097b4eaaddef228a28fe75ed6
1 { lib
2 , stdenv
3 , fetchurl
4 , autoPatchelfHook
5 , installShellFiles
6 }:
8 let
9   version = "7.01";
10   downloadVersion = lib.replaceStrings [ "." ] [ "" ] version;
11   # Use `./update.sh` to generate the entries below
12   srcs = {
13     i686-linux = {
14       url = "https://www.rarlab.com/rar/rarlinux-x32-${downloadVersion}.tar.gz";
15       hash = "sha256-1CSbxM7arGpn4Yj5fHEFKcDURFPrC2+XptLoaDH8LDs=";
16     };
17     x86_64-linux = {
18       url = "https://www.rarlab.com/rar/rarlinux-x64-${downloadVersion}.tar.gz";
19       hash = "sha256-34iWajylsSmIOuAT6kV7c2537qWFHc+gT+JT/trWrw8=";
20     };
21     aarch64-darwin = {
22       url = "https://www.rarlab.com/rar/rarmacos-arm-${downloadVersion}.tar.gz";
23       hash = "sha256-BjEJFzKyRpN4XL6KYW7ykQcSxqF4tYr2dCFf50JHH38=";
24     };
25     x86_64-darwin = {
26       url = "https://www.rarlab.com/rar/rarmacos-x64-${downloadVersion}.tar.gz";
27       hash = "sha256-1ExnVDre49wWwB/BKP/L9xdYOMx8qkeZfmObJ7xm4dY=";
28     };
29   };
30   manSrc = fetchurl {
31     url = "https://aur.archlinux.org/cgit/aur.git/plain/rar.1?h=rar&id=8e39a12e88d8a3b168c496c44c18d443c876dd10";
32     name = "rar.1";
33     hash = "sha256-93cSr9oAsi+xHUtMsUvICyHJe66vAImS2tLie7nt8Uw=";
34   };
36 stdenv.mkDerivation {
37   pname = "rar";
38   inherit version;
40   src = fetchurl (srcs.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}"));
42   dontBuild = true;
44   buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ (lib.getLib stdenv.cc.cc) ];
46   nativeBuildInputs = [ installShellFiles ]
47     ++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
49   installPhase = ''
50     runHook preInstall
52     install -Dm755 {rar,unrar} -t "$out/bin"
53     install -Dm755 default.sfx -t "$out/lib"
54     install -Dm644 {acknow.txt,license.txt} -t "$out/share/doc/rar"
55     install -Dm644 rarfiles.lst -t "$out/etc"
57     runHook postInstall
58   '';
60   postInstall = ''
61     installManPage ${manSrc}
62   '';
64   passthru.updateScript = ./update.sh;
66   meta = with lib; {
67     description = "Utility for RAR archives";
68     homepage = "https://www.rarlab.com/";
69     license = licenses.unfree;
70     mainProgram = "rar";
71     maintainers = with maintainers; [ thiagokokada ];
72     platforms = lib.attrNames srcs;
73     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
74   };