diff --git a/pkgs/tools/archivers/wimlib/default.nix b/pkgs/tools/archivers/wimlib/default.nix new file mode 100644 index 000000000000..2faf39b671f3 --- /dev/null +++ b/pkgs/tools/archivers/wimlib/default.nix @@ -0,0 +1,50 @@ +{ stdenv, lib, fetchurl, pkgs, makeWrapper, bash +, cabextract ? null +, cdrkit ? null +, mtools ? null +, ntfs3g ? null +, syslinux ? null +}: + +stdenv.mkDerivation rec { + version = "1.12.0"; + name = "wimlib-${version}"; + + nativeBuildInputs = with pkgs; [ pkgconfig makeWrapper ]; + buildInputs = with pkgs; [ openssl fuse libxml2 ntfs3g ]; + + src = fetchurl { + url = "https://wimlib.net/downloads/${name}.tar.gz"; + sha256 = "852cf59d682a91974f715f09fa98cab621b740226adcfea7a42360be0f86464f"; + }; + + prefixPackages = [ cabextract cdrkit mtools ntfs3g syslinux ]; + + preBuild = '' + substituteInPlace programs/mkwinpeimg.in --replace '/usr/lib/syslinux' "${syslinux}/share/syslinux" + ''; + + postInstall = '' + for prog in $out/bin/*; do + wrapProgram $prog --prefix PATH : ${lib.makeBinPath prefixPackages} + done + ''; + + doCheck = true; + + checkPhase = '' + patchShebangs tests/ + for testfile in tests/test-*; do + wrapProgram $testfile --prefix PATH : ${lib.makeBinPath prefixPackages} + done + make check + ''; + + meta = with lib; { + homepage = https://wimlib.net; + description = "A library and program to extract, create, and modify WIM files"; + platforms = platforms.unix; + maintainers = with maintainers; [ andir ]; + license = with licenses; [ gpl3 lgpl3 cc0 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a225238b26bd..a5e0a4f27b22 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5137,6 +5137,8 @@ with pkgs; wicd = callPackage ../tools/networking/wicd { }; + wimlib = callPackage ../tools/archivers/wimlib { }; + wipe = callPackage ../tools/security/wipe { }; wkhtmltopdf = callPackage ../tools/graphics/wkhtmltopdf {