mdadm: Fix config generation
authorRosen Penev <rosenp@gmail.com>
Tue, 17 Oct 2017 16:28:39 +0000 (09:28 -0700)
committerJo-Philipp Wich <jo@mein.io>
Fri, 27 Oct 2017 00:32:32 +0000 (02:32 +0200)
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@gmail.com>
[rewrap commit message]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
package/utils/mdadm/Makefile
package/utils/mdadm/files/mdadm.init

index 1ed62d8..8264242 100644 (file)
@@ -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
index e6624a7..64a50b3 100644 (file)
@@ -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() {