Unverified Commit c796e4e5 authored by Masum Reza's avatar Masum Reza Committed by GitHub
Browse files

Merge pull request #323877 from Luflosi/update/darling-dmg

darling-dmg: 1.0.4+git20200427 -> 1.0.4-unstable-2023-07-26
parents 819835ba 49609964
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -240,6 +240,7 @@ in {
  custom-ca = handleTest ./custom-ca.nix {};
  croc = handleTest ./croc.nix {};
  darling = handleTest ./darling.nix {};
  darling-dmg = runTest ./darling-dmg.nix;
  dae = handleTest ./dae.nix {};
  davis = handleTest ./davis.nix {};
  db-rest = handleTest ./db-rest.nix {};
+34 −0
Original line number Diff line number Diff line
{ lib, pkgs, ... }:
# This needs to be a VM test because the FUSE kernel module can't be used inside of a derivation in the Nix sandbox.
# This test also exercises the LZFSE support in darling-dmg.
let
  # The last kitty release which is stored on an HFS+ filesystem inside the disk image
  test-dmg-file = pkgs.fetchurl {
    url = "https://github.com/kovidgoyal/kitty/releases/download/v0.17.4/kitty-0.17.4.dmg";
    hash = "sha256-m+c5s8fFrgUc0xQNI196WplYBZq9+lNgems5haZUdvA=";
  };
in
{
  name = "darling-dmg";
  meta.maintainers = with lib.maintainers; [ Luflosi ];

  nodes.machine = {};

  testScript = ''
    start_all()

    machine.succeed("mkdir mount-point")
    machine.succeed("'${pkgs.darling-dmg}/bin/darling-dmg' '${test-dmg-file}' mount-point")

    # Crude way to verify the contents
    # Taken from https://stackoverflow.com/questions/545387/linux-compute-a-single-hash-for-a-given-folder-contents
    # This could be improved. It does not check symlinks for example.
    hash = machine.succeed("""
      (find mount-point -type f -print0  | sort -z | xargs -0 sha256sum; \
       find mount-point \( -type f -o -type d \) -print0 | sort -z | \
         xargs -0 stat -c '%n %a') \
      | sha256sum
    """).strip()
    assert hash == "00e61c2ef171093fbf194e420c17bb84bcdb823238d70eb46e375bab2427cc21  -", f"The disk image contents differ from what was expected (was {hash})"
  '';
}
+12 −6
Original line number Diff line number Diff line
{ lib, stdenv, fetchFromGitHub, cmake, fuse, zlib, bzip2, openssl, libxml2, icu, lzfse, libiconv }:
{ lib, stdenv, fetchFromGitHub, cmake, fuse, zlib, bzip2, openssl, libxml2, icu, lzfse, libiconv
, nixosTests
}:

stdenv.mkDerivation rec {
stdenv.mkDerivation {
  pname = "darling-dmg";
  version = "1.0.4+git20200427";
  version = "1.0.4-unstable-2023-07-26";

  src = fetchFromGitHub {
    owner = "darlinghq";
    repo = "darling-dmg";
    rev = "71cc76c792db30328663272788c0b64aca27fdb0";
    sha256 = "08iphkxlmjddrxpbm13gxyqwcrd0k65z3l1944n4pccb6qbyj8gv";
    rev = "a36bf0c07b16675b446377890c5f6f74563f84dd";
    hash = "sha256-QM75GuFHl2gRlRw1BmTexUE1d9YNnhG0qmTqmE9kMX4=";
  };

  nativeBuildInputs = [ cmake ];
@@ -20,9 +22,13 @@ stdenv.mkDerivation rec {
    "-llzfse"
  ];

  passthru.tests = {
    inherit (nixosTests) darling-dmg;
  };

  meta = with lib; {
    homepage = "https://www.darlinghq.org/";
    description = "Darling lets you open macOS dmgs on Linux";
    description = "FUSE module for .dmg files (containing an HFS+ filesystem)";
    mainProgram = "darling-dmg";
    platforms = platforms.unix;
    license = licenses.gpl3Only;
+0 −2
Original line number Diff line number Diff line
@@ -38699,8 +38699,6 @@ with pkgs;
  cnijfilter2 = callPackage ../misc/cups/drivers/cnijfilter2 { };
  darling-dmg = callPackage ../tools/filesystems/darling-dmg { };
  depotdownloader = callPackage ../tools/misc/depotdownloader { };
  dbacl = callPackage ../tools/misc/dbacl { };