depot/third_party/nixpkgs/pkgs/tools/virtualization/guestfs-tools/default.nix
Default email 24fdeddc0a Project import generated by Copybara.
GitOrigin-RevId: 2768c7d042a37de65bb1b5b3268fc987e534c49d
2024-10-23 09:41:50 +03:00

123 lines
2.6 KiB
Nix

{ lib
, stdenv
, fetchurl
, bash-completion
, bison
, cdrkit
, cpio
, curl
, flex
, getopt
, glib
, gnupg
, hivex
, jansson
, libguestfs-with-appliance
, libosinfo
, libvirt
, libxml2
, makeWrapper
, ncurses
, ocamlPackages
, openssl
, pcre2
, perlPackages
, pkg-config
, qemu
, xz
, gitUpdater
}:
stdenv.mkDerivation (finalAttrs: {
pname = "guestfs-tools";
version = "1.52.2";
src = fetchurl {
url = "https://download.libguestfs.org/guestfs-tools/${lib.versions.majorMinor finalAttrs.version}-stable/guestfs-tools-${finalAttrs.version}.tar.gz";
hash = "sha256-02khDS2NLG1QOSqswtDoqBX2Mg6sE/OiUoP9JFs4vTU=";
};
nativeBuildInputs = [
bison
cdrkit
cpio
flex
getopt
makeWrapper
pkg-config
qemu
] ++
(with perlPackages; [
GetoptLong
libintl-perl
ModuleBuild
perl
Po4a
]) ++
(with ocamlPackages; [
findlib
ocaml
ounit2
]);
buildInputs = [
bash-completion
glib
hivex
jansson
libguestfs-with-appliance
libosinfo
libvirt
libxml2
ncurses
openssl
pcre2
xz
];
postPatch = ''
# If it uses the executable name, then there's nothing we can do
# when wrapping to stop it looking in
# $out/etc/.virt-builder-wrapped, which won't exist.
substituteInPlace common/mlstdutils/std_utils.ml \
--replace Sys.executable_name '(Array.get Sys.argv 0)'
'';
preConfigure = ''
patchShebangs ocaml-dep.sh.in ocaml-link.sh.in run.in
'';
makeFlags = [
"LIBGUESTFS_PATH=${libguestfs-with-appliance}/lib/guestfs"
];
installFlags = [
"BASH_COMPLETIONS_DIR=${placeholder "out"}/share/bash-completion/completions"
];
enableParallelBuilding = true;
postInstall = ''
wrapProgram $out/bin/virt-builder \
--argv0 virt-builder \
--prefix PATH : ${lib.makeBinPath [ curl gnupg ]}:$out/bin \
--suffix VIRT_BUILDER_DIRS : /etc:$out/etc
wrapProgram $out/bin/virt-win-reg \
--prefix PERL5LIB : ${with perlPackages; makeFullPerlPath [ hivex libintl-perl libguestfs-with-appliance ]}
'';
passthru.updateScript = gitUpdater {
url = "https://github.com/libguestfs/guestfs-tools";
rev-prefix = "v";
odd-unstable = true;
};
meta = {
description = "Extra tools for accessing and modifying virtual machine disk images";
license = with lib.licenses; [ gpl2Plus lgpl21Plus ];
homepage = "https://libguestfs.org/";
changelog = "https://www.libguestfs.org/guestfs-tools-release-notes-${lib.versions.majorMinor finalAttrs.version}.1.html";
maintainers = [ ];
platforms = lib.platforms.linux;
};
})