[LEDE-DEV] [PATCH] mdadm: Fix config generation

Rosen Penev rosenp at gmail.com
Tue Oct 17 09:28:39 PDT 2017


The init script generated something like "DEVICE=/dev/sda" when it should have been generating "DEVICE /dev/sda". mdadm errors on this. Patch by jow.

Also changed the default sendmail path to /usr/sbin/sendmail. No package in LEDE provides /sbin/sendmail. msmtp provides /usr/sbin/sendmail so use that.

Also add a patch to fix file paths for mdadm runtime files. mdadm currently errors on them since /run is missing. Once /run is added to stock LEDE, this patch can be removed.

Signed-off-by: Rosen Penev <rosenp at gmail.com>

v2: Get rid of patch in favor of Makefile options. Also remove /etc/mdadm.conf as a conffile since /var/etc/mdadm.conf seems to be used instead.
---
 package/utils/mdadm/Makefile         |  9 ++++-----
 package/utils/mdadm/files/mdadm.init | 11 +++++------
 2 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/package/utils/mdadm/Makefile b/package/utils/mdadm/Makefile
index 1ed62d8174..826424247f 100644
--- a/package/utils/mdadm/Makefile
+++ b/package/utils/mdadm/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mdadm
 PKG_VERSION:=4.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
@@ -32,17 +32,16 @@ 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 
+ 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
-/etc/mdadm.conf
 /etc/config/mdadm
 endef
 
-TARGET_CFLAGS += -ffunction-sections -fdata-sections -DNO_COROSYNC -DNO_DLM -DUSE_PTHREADS
+TARGET_CFLAGS += -ffunction-sections -fdata-sections -DNO_COROSYNC -DNO_DLM -DUSE_PTHREADS -DCONFFILE="/var/etc/mdadm.conf" -DMAP_DIR="/var/run/mdadm" -DMDMON_DIR="/var/run/mdadm" -DFAILED_SLOTS_DIR="/var/run/mdadm/failed-slots"
 TARGET_LDFLAGS += -Wl,--gc-sections
 
 define Build/Compile
diff --git a/package/utils/mdadm/files/mdadm.init b/package/utils/mdadm/files/mdadm.init
index e6624a776e..64a50b35de 100644
--- a/package/utils/mdadm/files/mdadm.init
+++ b/package/utils/mdadm/files/mdadm.init
@@ -34,14 +34,13 @@ mdadm_common() {
 	local cfg="$1"
 	local email devices
 
-	if [ -x /sbin/sendmail ]; then
-		append_option email "$cfg" email "MAILADDR"
-
+	if [ -x /usr/sbin/sendmail ]; then
+		config_get email "$cfg" email
+		[ -n "$email" ] && printf "MAILADDR %s\n" "$email" >> $CONF
 	fi
 
-	append_option devices "$cfg" devices DEVICE " "
-
-	printf "%s\n%s\n" "$email" "$devices" >> $CONF
+	config_list_foreach "$cfg" devices append_list_item devices " "
+	[ -n "$devices" ] && printf "DEVICE %s\n" "$devices" >> $CONF
 }
 
 mdadm_array() {
-- 
2.13.6




More information about the Lede-dev mailing list