depot/third_party/nixpkgs/pkgs/by-name/ar/archivemount/package.nix

59 lines
1.3 KiB
Nix

{
lib,
stdenv,
fetchFromSourcehut,
fetchpatch,
pkg-config,
fuse,
libarchive,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "archivemount";
version = "1";
src = fetchFromSourcehut {
owner = "~nabijaczleweli";
repo = "archivemount-ng";
rev = finalAttrs.version;
hash = "sha256-xuLtbqC9iS86BKz4jG8of4id+GTlBXoohONrkmIzOpY=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
fuse
libarchive
];
makeFlags = [
"PREFIX=${placeholder "out"}"
"VERSION=${finalAttrs.version}"
];
dontConfigure = true;
# Fix missing standard struct stat on Darwin
# Already on upstream, but no new release made
patches = [
(fetchpatch {
name = "fix-missing-standard-struct-stat-on-darwin.patch";
url = "https://git.sr.ht/~nabijaczleweli/archivemount-ng/commit/53dd70f05fdb6ababe7c1ca70f0f62bcf4930b5a.patch";
hash = "sha256-UqoALAJoNXihop6Mem4mu+W8REOV92Zyv7pPW20Ugz8=";
})
];
# Fix cross-compilation
postPatch = ''
substituteInPlace Makefile --replace-fail pkg-config "$PKG_CONFIG"
'';
meta = {
description = "Gateway between FUSE and libarchive: allows mounting of cpio, .tar.gz, .tar.bz2 archives";
mainProgram = "archivemount";
license = [
lib.licenses.lgpl2Plus
lib.licenses.bsd0
];
platforms = lib.platforms.unix;
};
})