bcompare: add darwin support (#141413)

Co-authored-by: Paweł Kruszewski <kruszewsky@gmail.com>

authored by

arkivm
Paweł Kruszewski
and committed by
GitHub
18e1ae0d 64cd57dd

+72 -42
+72 -42
pkgs/applications/version-management/bcompare/default.nix
··· 1 - { autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, pango, gtk2, kcoreaddons, ki18n, kio, kservice, lib, qt4, qtbase, stdenv, runtimeShell }: 1 + { lib, autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, glibc, pango, gtk2, kcoreaddons, ki18n, kio, kservice 2 + , stdenv, runtimeShell, unzip 3 + }: 2 4 3 - stdenv.mkDerivation rec { 5 + let 4 6 pname = "bcompare"; 5 7 version = "4.4.0.25886"; 6 8 7 - src = fetchurl { 8 - url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb"; 9 - sha256 = "sha256-zQZrCjXzoOZ5o5M4t1n5/HhGoGTcZSj5rlf9Uz9UZko="; 9 + throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}"; 10 + 11 + srcs = { 12 + x86_64-linux = fetchurl { 13 + url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb"; 14 + sha256 = "sha256-zQZrCjXzoOZ5o5M4t1n5/HhGoGTcZSj5rlf9Uz9UZko="; 15 + }; 16 + 17 + x86_64-darwin = fetchurl { 18 + url = "https://www.scootersoftware.com/BCompareOSX-${version}.zip"; 19 + sha256 = "sha256-dez30a1sp+4XuBBYhu07Vpn1+AUmX0Ni7aad7hy2ajQ="; 20 + }; 21 + 22 + aarch64-darwin = srcs.x86_64-darwin; 10 23 }; 11 24 12 - unpackPhase = '' 13 - ar x $src 14 - tar xfz data.tar.gz 15 - ''; 25 + src = srcs.${stdenv.hostPlatform.system} or throwSystem; 16 26 17 - installPhase = '' 18 - mkdir -p $out/bin $out/lib $out/share 19 - cp -R usr/share $out/ 20 - cp -R usr/lib $out/ 21 - cp -R usr/bin $out/ 27 + linux = stdenv.mkDerivation { 28 + inherit pname version src meta; 29 + unpackPhase = '' 30 + ar x $src 31 + tar xfz data.tar.gz 32 + ''; 22 33 23 - # Remove library that refuses to be autoPatchelf'ed 24 - rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so 34 + installPhase = '' 35 + mkdir -p $out/{bin,lib,share} 25 36 26 - substituteInPlace $out/bin/bcompare \ 27 - --replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \ 28 - --replace "/bin/bash" "${runtimeShell}" 37 + cp -R usr/{bin,lib,share} $out/ 29 38 30 - # Create symlink bzip2 library 31 - ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0 32 - ''; 39 + # Remove library that refuses to be autoPatchelf'ed 40 + rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so 33 41 34 - nativeBuildInputs = [ autoPatchelfHook ]; 42 + substituteInPlace $out/bin/${pname} \ 43 + --replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \ 44 + --replace "ldd" "${glibc.out}/bin/ldd" \ 45 + --replace "/bin/bash" "${runtimeShell}" 35 46 36 - buildInputs = [ 37 - stdenv.cc.cc.lib 38 - gtk2 39 - pango 40 - cairo 41 - kio 42 - kservice 43 - ki18n 44 - kcoreaddons 45 - gdk-pixbuf 46 - bzip2 47 - ]; 47 + # Create symlink bzip2 library 48 + ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0 49 + ''; 50 + 51 + nativeBuildInputs = [ autoPatchelfHook ]; 52 + 53 + buildInputs = [ 54 + stdenv.cc.cc.lib 55 + gtk2 56 + pango 57 + cairo 58 + kio 59 + kservice 60 + ki18n 61 + kcoreaddons 62 + gdk-pixbuf 63 + bzip2 64 + ]; 65 + 66 + dontBuild = true; 67 + dontConfigure = true; 68 + dontWrapQtApps = true; 69 + }; 70 + 71 + darwin = stdenv.mkDerivation { 72 + inherit pname version src meta; 73 + nativeBuildInputs = [ unzip ]; 48 74 49 - dontBuild = true; 50 - dontConfigure = true; 51 - dontWrapQtApps = true; 75 + installPhase = '' 76 + mkdir -p $out/Applications/BCompare.app 77 + cp -R . $out/Applications/BCompare.app 78 + ''; 79 + }; 52 80 53 81 meta = with lib; { 54 82 description = "GUI application that allows to quickly and easily compare files and folders"; ··· 59 87 ''; 60 88 homepage = "https://www.scootersoftware.com"; 61 89 license = licenses.unfree; 62 - maintainers = [ maintainers.ktor ]; 63 - platforms = [ "x86_64-linux" ]; 90 + maintainers = with maintainers; [ ktor arkivm ]; 91 + platforms = builtins.attrNames srcs; 64 92 }; 65 - 66 - } 93 + in 94 + if stdenv.isDarwin 95 + then darwin 96 + else linux