utils/mdadm: Update to 4.0
authorDaniel Engberg <daniel.engberg.lists@pyret.net>
Fri, 24 Mar 2017 11:17:24 +0000 (12:17 +0100)
committerFelix Fietkau <nbd@nbd.name>
Wed, 26 Apr 2017 08:27:45 +0000 (10:27 +0200)
Update mdadm to 4.0
Remove 000-compile.patch as it's fixed upstream
Refresh patches
Add mdadm.h-Undefine-dprintf-before-redefining.patch
Source: http://git.openembedded.org/openembedded-core/tree/meta/recipes-extended/mdadm/files
Add RAID 0,1 and 10 as depends to make mdadm usable.

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
package/utils/mdadm/Makefile
package/utils/mdadm/patches/000-compile.patch [deleted file]
package/utils/mdadm/patches/100-cross_compile.patch
package/utils/mdadm/patches/101-mdadm.h-Undefine-dprintf-before-redefining.patch [new file with mode: 0644]
package/utils/mdadm/patches/200-reduce_size.patch

index 32544cc996e18659966b5558c73e1015705a36cc..8ebc02cfa5fcb9231434b3787f8631b2e9402d8c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mdadm
-PKG_VERSION:=3.2.5
-PKG_RELEASE:=2
+PKG_VERSION:=4.0
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=ec1d264e4126309aafe76d76067e8f3fd6649941cff6cb0242d467a1e66a01e0
+PKG_HASH:=1d6ae7f24ced3a0fa7b5613b32f4a589bb4881e3946a5a2c3724056254ada3a9
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 
@@ -27,11 +27,14 @@ define Package/mdadm
   SUBMENU:=Disc
   TITLE:=A tool for managing Soft RAID under Linux
   URL:=http://www.kernel.org/pub/linux/utils/raid/mdadm/
-  DEPENDS:=+@KERNEL_DIRECT_IO
+  DEPENDS:=+@KERNEL_DIRECT_IO +libpthread +kmod-md-mod +kmod-md-raid0 +kmod-md-raid10 +kmod-md-raid1
 endef
 
 define Package/mdadm/description
  A tool for managing Linux Software RAID arrays.
+ RAID 0, 1 and 10 support included. 
+ If you need RAID 4,5 or 6 functionality please 
+ install kmod-md-raid456 .
 endef
 
 define Package/mdadm/conffiles
@@ -39,7 +42,7 @@ define Package/mdadm/conffiles
 /etc/config/mdadm
 endef
 
-TARGET_CFLAGS += -ffunction-sections -fdata-sections
+TARGET_CFLAGS += -ffunction-sections -fdata-sections -DNO_COROSYNC -DNO_DLM -DUSE_PTHREADS
 TARGET_LDFLAGS += -Wl,--gc-sections
 
 define Build/Compile
diff --git a/package/utils/mdadm/patches/000-compile.patch b/package/utils/mdadm/patches/000-compile.patch
deleted file mode 100644 (file)
index 6d47489..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/sha1.h
-+++ b/sha1.h
-@@ -26,8 +26,6 @@
- # include <limits.h>
- #endif
--#include "ansidecl.h"
--
- /* The following contortions are an attempt to use the C preprocessor
-    to determine an unsigned integral type that is 32 bits wide.  An
-    alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
index 8709e57816baebe9eadbc5ef4fae28bc40076200..62bf69345537a99e74b4214e72e6c4a33d80749c 100644 (file)
@@ -1,19 +1,11 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -76,7 +76,6 @@ FAILED_SLOTS_DIR = /run/mdadm/failed-slo
+@@ -86,7 +86,7 @@ DLM:=$(shell [ -f /usr/include/libdlm.h
  DIRFLAGS = -DMAP_DIR=\"$(MAP_DIR)\" -DMAP_FILE=\"$(MAP_FILE)\"
  DIRFLAGS += -DMDMON_DIR=\"$(MDMON_DIR)\"
  DIRFLAGS += -DFAILED_SLOTS_DIR=\"$(FAILED_SLOTS_DIR)\"
--CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS)
+-CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS) $(COROSYNC) $(DLM)
++# CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS) $(COROSYNC) $(DLM)
  
- # The glibc TLS ABI requires applications that call clone(2) to set up
- # TLS data structures, use pthreads until mdmon implements this support
-@@ -183,7 +182,7 @@ raid6check : raid6check.o mdadm.h $(CHEC
- mdassemble : $(ASSEMBLE_SRCS) $(INCL)
-       rm -f $(OBJS)
--      $(DIET_GCC) $(ASSEMBLE_FLAGS) -o mdassemble $(ASSEMBLE_SRCS)  $(STATICSRC)
-+      $(CC) $(ASSEMBLE_FLAGS) -o mdassemble $(ASSEMBLE_SRCS)  $(STATICSRC)
- mdassemble.static : $(ASSEMBLE_SRCS) $(INCL)
-       rm -f $(OBJS)
+ VERSION = $(shell [ -d .git ] && git describe HEAD | sed 's/mdadm-//')
+ VERS_DATE = $(shell [ -d .git ] && date --date="`git log -n1 --format=format:%cd --date=short`" '+%0dth %B %Y' | sed -e 's/1th/1st/' -e 's/2th/2nd/' -e 's/11st/11th/' -e 's/12nd/12th/')
diff --git a/package/utils/mdadm/patches/101-mdadm.h-Undefine-dprintf-before-redefining.patch b/package/utils/mdadm/patches/101-mdadm.h-Undefine-dprintf-before-redefining.patch
new file mode 100644 (file)
index 0000000..bcff20d
--- /dev/null
@@ -0,0 +1,38 @@
+From 6d369e8f226594632ce4260129509daf7030de0a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 9 May 2016 22:03:57 +0000
+Subject: [PATCH] mdadm.h: Undefine dprintf before redefining
+
+dprintf is also defined in libc see
+usr/include/bits/stdio2.h, this comes into
+play especially when fortify sources is enabled
+and compilers like clang reports the override
+
+In file included from policy.c:25:
+./mdadm.h:1562:9: error: 'dprintf' macro redefined [-Werror,-Wmacro-redefined]
+        ^
+/mnt/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/bits/stdio2.h:145:12: note: previous definition is here
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ mdadm.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/mdadm.h
++++ b/mdadm.h
+@@ -1595,11 +1595,13 @@ static inline char *to_subarray(struct m
+ }
+ #ifdef DEBUG
++#undef dprintf
+ #define dprintf(fmt, arg...) \
+       fprintf(stderr, "%s: %s: "fmt, Name, __func__, ##arg)
+ #define dprintf_cont(fmt, arg...) \
+       fprintf(stderr, fmt, ##arg)
+ #else
++#undef dprintf
+ #define dprintf(fmt, arg...) \
+         ({ if (0) fprintf(stderr, "%s: %s: " fmt, Name, __func__, ##arg); 0; })
+ #define dprintf_cont(fmt, arg...) \
index 3d8c2f421c8b12a7ddb865994181c9b26e125dbb..ae8204ccd93d7cf21332fed1a8f4ce5d97beec8d 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Incremental.c
 +++ b/Incremental.c
-@@ -1508,6 +1508,10 @@ static int Incremental_container(struct 
+@@ -1642,6 +1642,10 @@ static int Incremental_container(struct
        if (ra_all == ra_blocked)
                return 0;
  
@@ -13,7 +13,7 @@
        memcpy(suuid, uuid_zero, sizeof(int[4]));
 --- a/util.c
 +++ b/util.c
-@@ -928,7 +928,9 @@ void wait_for(char *dev, int fd)
+@@ -1151,7 +1151,9 @@ void wait_for(char *dev, int fd)
  struct superswitch *superlist[] =
  {
        &super0, &super1,