From 60ad837bea4a006a54fd8b659083f7bf648da781 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Sun, 28 Jan 2018 09:43:30 +0800 Subject: [PATCH] procd: fix procd_lock() when prepare_roofs This fixes the following errors when doing "make package/install" /home/yousong/git-repo/lede-project/lede/build_dir/target-mips_24kc_musl/root-malta/lib/functions/procd.sh: line 47: /home/yousong/git-repo/l ede-project/lede/build_dir/target-mips_24kc_musl/root-malta/var/lock/procd_urandom_seed.lock: No such file or directory flock: 1000: Bad file descriptor Fixes FS#1260 Signed-off-by: Yousong Zhou --- include/rootfs.mk | 2 ++ package/system/procd/Makefile | 2 +- package/system/procd/files/procd.sh | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/rootfs.mk b/include/rootfs.mk index 74785cbbd3..1844f849e2 100644 --- a/include/rootfs.mk +++ b/include/rootfs.mk @@ -60,6 +60,7 @@ define prepare_rootfs $(call file_copy,$(TOPDIR)/files/.,$(1)); \ fi @mkdir -p $(1)/etc/rc.d + @mkdir -p $(1)/var/lock @( \ cd $(1); \ for script in ./usr/lib/opkg/info/*.postinst; do \ @@ -84,6 +85,7 @@ define prepare_rootfs rm -f $(1)/usr/lib/opkg/lists/* rm -f $(1)/usr/lib/opkg/info/*.postinst* rm -f $(1)/usr/lib/opkg/info/*.prerm* + rm -f $(1)/var/lock/*.lock $(call clean_ipkg,$(1)) $(call mklibs,$(1)) endef diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile index 7b673e4246..b3b38ada8b 100644 --- a/package/system/procd/Makefile +++ b/package/system/procd/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=procd -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git diff --git a/package/system/procd/files/procd.sh b/package/system/procd/files/procd.sh index b4b6faa662..6f16b746ff 100644 --- a/package/system/procd/files/procd.sh +++ b/package/system/procd/files/procd.sh @@ -33,7 +33,7 @@ # Send a signal to a service instance (or all instances) # -. $IPKG_INSTROOT/usr/share/libubox/jshn.sh +. "$IPKG_INSTROOT/usr/share/libubox/jshn.sh" PROCD_RELOAD_DELAY=1000 _PROCD_SERVICE= @@ -44,7 +44,7 @@ procd_lock() { flock -n 1000 &> /dev/null if [ "$?" != "0" ]; then - exec 1000>/var/lock/procd_${service_name}.lock + exec 1000>"$IPKG_INSTROOT/var/lock/procd_${service_name}.lock" flock 1000 if [ "$?" != "0" ]; then logger "warning: procd flock for $service_name failed"