aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils/mdadm
diff options
context:
space:
mode:
Diffstat (limited to 'package/utils/mdadm')
-rw-r--r--package/utils/mdadm/Makefile52
-rw-r--r--package/utils/mdadm/patches/000-compile.patch11
-rw-r--r--package/utils/mdadm/patches/100-cross_compile.patch19
-rw-r--r--package/utils/mdadm/patches/200-reduce_size.patch25
4 files changed, 107 insertions, 0 deletions
diff --git a/package/utils/mdadm/Makefile b/package/utils/mdadm/Makefile
new file mode 100644
index 0000000..69eec5b
--- /dev/null
+++ b/package/utils/mdadm/Makefile
@@ -0,0 +1,52 @@
+#
+# Copyright (C) 2008-2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mdadm
+PKG_VERSION:=3.2.5
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MD5SUM:=2fd33dedcdb06f0d1461f50ddabb7e4a
+
+PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/mdadm
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=A tool for managing Soft RAID under Linux
+ URL:=http://www.kernel.org/pub/linux/utils/raid/mdadm/
+ DEPENDS:=+@KERNEL_DIRECT_IO
+endef
+
+define Package/mdadm/description
+ A tool for managing Linux Software RAID arrays.
+endef
+
+TARGET_CFLAGS += -ffunction-sections -fdata-sections
+TARGET_LDFLAGS += -Wl,--gc-sections
+
+define Build/Compile
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ CC="$(TARGET_CC)" \
+ CFLAGS="$(TARGET_CFLAGS) -DHAVE_STDINT_H" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+ mdadm
+endef
+
+define Package/mdadm/install
+ $(INSTALL_DIR) $(1)/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/mdadm $(1)/sbin
+endef
+
+$(eval $(call BuildPackage,mdadm))
diff --git a/package/utils/mdadm/patches/000-compile.patch b/package/utils/mdadm/patches/000-compile.patch
new file mode 100644
index 0000000..6d47489
--- /dev/null
+++ b/package/utils/mdadm/patches/000-compile.patch
@@ -0,0 +1,11 @@
+--- 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
diff --git a/package/utils/mdadm/patches/100-cross_compile.patch b/package/utils/mdadm/patches/100-cross_compile.patch
new file mode 100644
index 0000000..8709e57
--- /dev/null
+++ b/package/utils/mdadm/patches/100-cross_compile.patch
@@ -0,0 +1,19 @@
+--- a/Makefile
++++ b/Makefile
+@@ -76,7 +76,6 @@ FAILED_SLOTS_DIR = /run/mdadm/failed-slo
+ 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)
+
+ # 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)
diff --git a/package/utils/mdadm/patches/200-reduce_size.patch b/package/utils/mdadm/patches/200-reduce_size.patch
new file mode 100644
index 0000000..3d8c2f4
--- /dev/null
+++ b/package/utils/mdadm/patches/200-reduce_size.patch
@@ -0,0 +1,25 @@
+--- a/Incremental.c
++++ b/Incremental.c
+@@ -1508,6 +1508,10 @@ static int Incremental_container(struct
+ if (ra_all == ra_blocked)
+ return 0;
+
++#ifndef MDADM_FULL
++ return 0;
++#endif
++
+ /* Now move all suitable spares from spare container */
+ domains = domain_from_array(list, st->ss->name);
+ memcpy(suuid, uuid_zero, sizeof(int[4]));
+--- a/util.c
++++ b/util.c
+@@ -928,7 +928,9 @@ void wait_for(char *dev, int fd)
+ struct superswitch *superlist[] =
+ {
+ &super0, &super1,
++#ifdef MDADM_FULL
+ &super_ddf, &super_imsm,
++#endif
+ &mbr, &gpt,
+ NULL };
+