diff --git a/pkgs/os-specific/linux/cramfsprogs/default.nix b/pkgs/os-specific/linux/cramfsprogs/default.nix new file mode 100644 index 000000000000..8633823ab5c5 --- /dev/null +++ b/pkgs/os-specific/linux/cramfsprogs/default.nix @@ -0,0 +1,32 @@ +{ stdenv +, fetchurl +, zlib +}: + +stdenv.mkDerivation rec { + pname = "cramfsprogs"; + version = "1.1"; + + src = fetchurl { + url = "mirror://debian/pool/main/c/cramfs/cramfs_${version}.orig.tar.gz"; + sha256 = "0s13sabykbkbp0pcw8clxddwzxckyq7ywm2ial343ip7qjiaqg0k"; + }; + + # CramFs is unmaintained upstream: https://tracker.debian.org/pkg/cramfs. + # So patch the "missing include" bug ourselves. + patches = [ ./include-sysmacros.patch ]; + + installPhase = '' + install --target $out/bin -D cramfsck mkcramfs + ''; + + buildInputs = [ zlib ]; + + meta = with stdenv.lib; { + description = "Tools to create, check, and extract content of CramFs images"; + homepage = "https://packages.debian.org/jessie/cramfsprogs"; + license = licenses.gpl2; + maintainers = with maintainers; [ pamplemousse ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch b/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch new file mode 100644 index 000000000000..7c115a66ac90 --- /dev/null +++ b/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch @@ -0,0 +1,12 @@ +diff --git a/mkcramfs.c b/mkcramfs.c +index a2ef018959d..bec83c112d1 100644 +--- a/mkcramfs.c ++++ b/mkcramfs.c +@@ -22,6 +22,7 @@ + * If you change the disk format of cramfs, please update fs/cramfs/README. + */ + ++#include + #include + #include + #include diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3614e7b68aa5..072b3218a015 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16963,6 +16963,8 @@ in cryptsetup = callPackage ../os-specific/linux/cryptsetup { }; + cramfsprogs = callPackage ../os-specific/linux/cramfsprogs { }; + cramfsswap = callPackage ../os-specific/linux/cramfsswap { }; crda = callPackage ../os-specific/linux/crda { };