Unverified Commit 8394c3bd authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

bcompare: 4.4.7.28397 -> 5.2.0.31950 (#435513)

parents 48049146 c030fec9
Loading
Loading
Loading
Loading
+19 −21
Original line number Diff line number Diff line
@@ -2,13 +2,9 @@
  lib,
  autoPatchelfHook,
  bzip2,
  cairo,
  fetchurl,
  gdk-pixbuf,
  glibc,
  pango,
  gtk2,
  libsForQt5,
  kdePackages,
  stdenv,
  runtimeShell,
  unzip,
@@ -16,19 +12,19 @@

let
  pname = "bcompare";
  version = "4.4.7.28397";
  version = "5.2.0.31950";

  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";

  srcs = {
    x86_64-linux = fetchurl {
      url = "https://www.scootersoftware.com/bcompare-${version}_amd64.deb";
      sha256 = "sha256-4AWTSoYpVhGmBBxcwHXdg1CGd/04+8yL9pu+gHrsj6U";
      url = "https://www.scootersoftware.com/files/bcompare-${version}_amd64.deb";
      sha256 = "sha256-CCSRNGWIYVKAoQVVJ8McDUtc45nK0S4CdamcT5uVlQM=";
    };

    x86_64-darwin = fetchurl {
      url = "https://www.scootersoftware.com/BCompareOSX-${version}.zip";
      sha256 = "sha256-qbpM6hJbv+APo+ed45k3GXrl1HnZRxD1uT2lvaN3oM4=";
      url = "https://www.scootersoftware.com/files/BCompareOSX-${version}.zip";
      sha256 = "sha256-R+G2Zlr074i2W4GaEDweK0c0q8tnzjs6M0N106WVAlg=";
    };

    aarch64-darwin = srcs.x86_64-darwin;
@@ -54,35 +50,34 @@ let
      cp -R usr/{bin,lib,share} $out/

      # Remove library that refuses to be autoPatchelf'ed
      #  - bcompare_ext_kde.amd64.so is linked with Qt4
      #  - bcompare_ext_kde5.amd64.so is linked with Qt5
      rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so
      rm $out/lib/beyondcompare/ext/bcompare_ext_kde5.amd64.so

      substituteInPlace $out/bin/bcompare \
        --replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \
        --replace "ldd" "${glibc.bin}/bin/ldd" \
        --replace "/bin/bash" "${runtimeShell}"

      # Create symlink bzip2 library
      ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0
    '';

    nativeBuildInputs = [ autoPatchelfHook ];

    buildInputs = [
      (lib.getLib stdenv.cc.cc)
      gtk2
      pango
      cairo
      libsForQt5.kio
      libsForQt5.kservice
      libsForQt5.ki18n
      libsForQt5.kcoreaddons
      gdk-pixbuf
      kdePackages.kio
      kdePackages.kservice
      kdePackages.ki18n
      kdePackages.kcoreaddons
      bzip2
    ];

    dontBuild = true;
    dontConfigure = true;
    dontWrapQtApps = true;

    __structuredAttrs = true;
    strictDeps = true;
  };

  darwin = stdenv.mkDerivation {
@@ -98,6 +93,9 @@ let
      mkdir -p $out/Applications/BCompare.app
      cp -R . $out/Applications/BCompare.app
    '';

    __structuredAttrs = true;
    strictDeps = true;
  };

  meta = {
+127 −0
Original line number Diff line number Diff line
{
  lib,
  autoPatchelfHook,
  bzip2,
  cairo,
  fetchurl,
  gdk-pixbuf,
  glibc,
  pango,
  gtk2,
  libsForQt5,
  stdenv,
  runtimeShell,
  unzip,
}:

let
  pname = "bcompare4";
  version = "4.4.7.28397";

  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";

  srcs = {
    x86_64-linux = fetchurl {
      url = "https://www.scootersoftware.com/bcompare-${version}_amd64.deb";
      sha256 = "sha256-4AWTSoYpVhGmBBxcwHXdg1CGd/04+8yL9pu+gHrsj6U";
    };

    x86_64-darwin = fetchurl {
      url = "https://www.scootersoftware.com/BCompareOSX-${version}.zip";
      sha256 = "sha256-qbpM6hJbv+APo+ed45k3GXrl1HnZRxD1uT2lvaN3oM4=";
    };

    aarch64-darwin = srcs.x86_64-darwin;
  };

  src = srcs.${stdenv.hostPlatform.system} or throwSystem;

  linux = stdenv.mkDerivation {
    inherit
      pname
      version
      src
      meta
      ;
    unpackPhase = ''
      ar x $src
      tar xfz data.tar.gz
    '';

    installPhase = ''
      mkdir -p $out/{bin,lib,share}

      cp -R usr/{bin,lib,share} $out/

      # Remove library that refuses to be autoPatchelf'ed
      rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so

      substituteInPlace $out/bin/bcompare \
        --replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \
        --replace "ldd" "${glibc.bin}/bin/ldd" \
        --replace "/bin/bash" "${runtimeShell}"

      # Create symlink bzip2 library
      ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0
    '';

    nativeBuildInputs = [ autoPatchelfHook ];

    buildInputs = [
      (lib.getLib stdenv.cc.cc)
      gtk2
      pango
      cairo
      libsForQt5.kio
      libsForQt5.kservice
      libsForQt5.ki18n
      libsForQt5.kcoreaddons
      gdk-pixbuf
      bzip2
    ];

    dontBuild = true;
    dontConfigure = true;
    dontWrapQtApps = true;

    __structuredAttrs = true;
    strictDeps = true;
  };

  darwin = stdenv.mkDerivation {
    inherit
      pname
      version
      src
      meta
      ;
    nativeBuildInputs = [ unzip ];

    installPhase = ''
      mkdir -p $out/Applications/BCompare.app
      cp -R . $out/Applications/BCompare.app
    '';

    __structuredAttrs = true;
    strictDeps = true;
  };

  meta = {
    description = "GUI application that allows to quickly and easily compare files and folders";
    longDescription = ''
      Beyond Compare is focused. Beyond Compare allows you to quickly and easily compare your files and folders.
      By using simple, powerful commands you can focus on the differences you're interested in and ignore those you're not.
      You can then merge the changes, synchronize your files, and generate reports for your records.
    '';
    homepage = "https://www.scootersoftware.com";
    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
    license = lib.licenses.unfree;
    maintainers = with lib.maintainers; [
      ktor
      arkivm
    ];
    platforms = builtins.attrNames srcs;
    mainProgram = "bcompare";
  };
in
if stdenv.hostPlatform.isDarwin then darwin else linux