diff options
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/dmraid')
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/dmraid/default.nix | 50 | ||||
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/dmraid/hardening-format.patch | 18 |
2 files changed, 68 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/dmraid/default.nix b/nixpkgs/pkgs/os-specific/linux/dmraid/default.nix new file mode 100644 index 000000000000..3a6f31fa5523 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/dmraid/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchurl, fetchpatch, lvm2 }: + +stdenv.mkDerivation rec { + pname = "dmraid"; + version = "1.0.0.rc16"; + + src = fetchurl { + url = "https://people.redhat.com/~heinzm/sw/dmraid/src/old/dmraid-${version}.tar.bz2"; + sha256 = "0m92971gyqp61darxbiri6a48jz3wq3gkp8r2k39320z0i6w8jgq"; + }; + + patches = [ ./hardening-format.patch ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + (fetchpatch { + url = "https://raw.githubusercontent.com/void-linux/void-packages/fceed4b8e96b3c1da07babf6f67b6ed1588a28b2/srcpkgs/dmraid/patches/006-musl-libc.patch"; + sha256 = "1j8xda0fpz8lxjxnqdidy7qb866qrzwpbca56yjdg6vf4x21hx6w"; + stripLen = 2; + extraPrefix = "1.0.0.rc16/"; + }) + (fetchpatch { + url = "https://raw.githubusercontent.com/void-linux/void-packages/fceed4b8e96b3c1da07babf6f67b6ed1588a28b2/srcpkgs/dmraid/patches/007-fix-loff_t-musl.patch"; + sha256 = "0msnq39qnzg3b1pdksnz1dgqwa3ak03g41pqh0lw3h7w5rjc016k"; + stripLen = 2; + extraPrefix = "1.0.0.rc16/"; + }) + ]; + + postPatch = '' + sed -i 's/\[\[[^]]*\]\]/[ "''$''${n##*.}" = "so" ]/' */lib/Makefile.in + '' + lib.optionalString stdenv.hostPlatform.isMusl '' + NIX_CFLAGS_COMPILE+=" -D_GNU_SOURCE" + ''; + + preConfigure = "cd */"; + + buildInputs = [ lvm2 ]; + + meta = { + description = "Old-style RAID configuration utility"; + longDescription = '' + Old RAID configuration utility (still under development, though). + It is fully compatible with modern kernels and mdadm recognizes + its volumes. May be needed for rescuing an older system or nuking + the metadata when reformatting. + ''; + maintainers = [ lib.maintainers.raskin ]; + platforms = lib.platforms.linux; + license = lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/os-specific/linux/dmraid/hardening-format.patch b/nixpkgs/pkgs/os-specific/linux/dmraid/hardening-format.patch new file mode 100644 index 000000000000..f91a7fb18aa0 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/dmraid/hardening-format.patch @@ -0,0 +1,18 @@ +--- a/1.0.0.rc16/lib/events/libdmraid-events-isw.c 2016-01-29 05:16:57.455425454 +0000 ++++ b/1.0.0.rc16/lib/events/libdmraid-events-isw.c 2016-01-29 05:17:55.520564013 +0000 +@@ -838,13 +838,13 @@ + + sz = _log_all_devs(log_type, rs, NULL, 0); + if (!sz) { +- syslog(LOG_ERR, msg[0]); ++ syslog(LOG_ERR, "%s", msg[0]); + return; + } + + str = dm_malloc(++sz); + if (!str) { +- syslog(LOG_ERR, msg[1]); ++ syslog(LOG_ERR, "%s", msg[1]); + return; + } + |