From: Imran Khan <gururug@gmail.com>
Date: Fri, 27 Nov 2020 06:19:02 +0000 (+0000)
Subject: base-files: merge /etc/passwd on rw-rootfs
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=9c2eceef90b3ca924b8cd836e904ddc480514031;p=openwrt%2Fstaging%2Fdedeckeh.git

base-files: merge /etc/passwd on rw-rootfs

Support installations without root-overlayfs (and hence without /rom)
when migrating user accounts.

Signed-off-by: Imran Khan <gururug@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
[simplified patch, bumped PKG_RELEASE, cleaned message]
---

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index e13578860f..c06b534bea 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
 include $(INCLUDE_DIR)/feeds.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=237
+PKG_RELEASE:=238
 PKG_FLAGS:=nonshared
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
diff --git a/package/base-files/files/lib/preinit/80_mount_root b/package/base-files/files/lib/preinit/80_mount_root
index 56d3fa3797..a15c972220 100644
--- a/package/base-files/files/lib/preinit/80_mount_root
+++ b/package/base-files/files/lib/preinit/80_mount_root
@@ -20,11 +20,13 @@ do_mount_root() {
 	boot_run_hook preinit_mount_root
 	[ -f /sysupgrade.tgz ] && {
 		echo "- config restore -"
+		cp /etc/passwd /etc/group /etc/shadow /tmp
 		cd /
 		tar xzf /sysupgrade.tgz
-		missing_lines /rom/etc/passwd /etc/passwd >> /etc/passwd
-		missing_lines /rom/etc/group /etc/group >> /etc/group
-		missing_lines /rom/etc/shadow /etc/shadow >> /etc/shadow
+		missing_lines /tmp/passwd /etc/passwd >> /etc/passwd
+		missing_lines /tmp/group /etc/group >> /etc/group
+		missing_lines /tmp/shadow /etc/shadow >> /etc/shadow
+		rm /tmp/passwd /tmp/group /tmp/shadow
 		# Prevent configuration corruption on a power loss
 		sync
 	}