Browse Source

check for uncommitted changes in /etc

When using reboot, halt or poweroff check for
uncommittet changes in /etc on a cfgfs enabled system.
When installing packages via ipkg, check afterwards if
any uncommittet changes left.
Waldemar Brodkorb 13 years ago
parent
commit
e4531a8290

+ 1 - 0
package/base-files/src/etc/banner

@@ -1 +1,2 @@
      Linux created with OpenADK
+

+ 0 - 3
package/base-files/src/etc/init.d/rcK

@@ -1,8 +1,6 @@
 #!/bin/sh
 export PATH=/bin:/sbin:/usr/bin:/usr/sbin
-busybox reboot -d 60 -f &		# just in case…
 {
-	[[ -f /proc/diag/led/power ]] && echo f >/proc/diag/led/power
 	test -e /etc/rc.shutdown && (/bin/sh /etc/rc.shutdown) 2>&1
 	grep '^#INIT ' /etc/init.d/* | \
 	    sort -rnk2 | \
@@ -17,5 +15,4 @@ busybox reboot -d 60 -f &		# just in case…
 		esac
 		${shebang:-/bin/sh} ${line%%:*} autostop 2>&1
 	done
-	[[ -f /proc/diag/led/power ]] && echo 0 >/proc/diag/led/power
 } | logger -s -p 6 -t ''

+ 4 - 1
package/busybox/Makefile

@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		busybox
 PKG_VERSION:=		1.17.1
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_MD5SUM:=		c7fe7533b7fc4018b0b49a05ee0ee601
 PKG_DESCR:=		Core utilities for embedded systems
 PKG_SECTION:=		base
@@ -73,6 +73,9 @@ ifeq ($(ADK_DEBUG),y)
 	${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \
 		$(IDIR_BUSYBOX)/bin/busybox
 endif
+ifneq ($(strip ${ADK_PACKAGE_CFGFS}),)
+	cd ${IDIR_BUSYBOX}/sbin && rm -f halt poweroff reboot
+endif
 
 udhcpd-install:
 	${INSTALL_DIR} ${IDIR_UDHCPD}/etc/

File diff suppressed because it is too large
+ 253 - 240
package/busybox/patches/001-ipkg.patch


+ 4 - 1
package/cfgfs/Makefile

@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		cfgfs
 PKG_VERSION:=		1.0.7
-PKG_RELEASE:=		2
+PKG_RELEASE:=		3
 PKG_DESCR:=		compressed config filesystem
 PKG_SECTION:=		base
 
@@ -30,5 +30,8 @@ do-install:
 	${INSTALL_BIN} ${WRKBUILD}/fwcf.sh ${IDIR_CFGFS}/sbin/cfgfs
 	${INSTALL_BIN} ${WRKBUILD}/fwcf.helper.out \
 		${IDIR_CFGFS}/sbin/cfgfs.helper
+	cd ${IDIR_CFGFS}/sbin; for tgt in halt reboot poweroff; do \
+		ln cfgfs $$tgt; \
+	done
 
 include ${TOPDIR}/mk/pkg-bottom.mk

+ 8 - 8
package/cfgfs/src/fwcf.sh

@@ -69,11 +69,11 @@ case $0 in
 esac
 
 if [[ $me != cfgfs ]]; then
-	integer dflag=0
 	dval=
-	integer fflag=0
-	integer nocfgfs=0
-	integer nflag=0
+	dflag=0
+	fflag=0
+	nocfgfs=0
+	nflag=0
 	while getopts ":d:Ffn" ch; do
 		case $ch in
 		(d)	dflag=1; dval=$OPTARG ;;
@@ -85,7 +85,7 @@ if [[ $me != cfgfs ]]; then
 	done
 	shift $((OPTIND - 1))
 
-	(( nocfgfs == 0 && fflag == 0 )) && if ! cfgfs status -q; then
+	[[ $nocfgfs -eq 0 ]] && [[ $fflag -eq 0 ]] && if ! cfgfs status -q; then
 		echo "error: will not $me: unsaved changes in /etc found!"
 		echo "Either run 'cfgfs commit' before trying to $me"
 		echo "or retry with '$me -F${*+ }$*' to force a ${me}."
@@ -93,9 +93,9 @@ if [[ $me != cfgfs ]]; then
 		exit 2
 	fi
 
-	(( fflag )) && me="$me -f"
-	(( nflag )) && me="$me -n"
-	(( dflag )) && me="$me -d '$dval'"
+	[[ $fflag -eq 1 ]] && me="$me -f"
+	[[ $nflag -eq 1 ]] && me="$me -n"
+	[[ $dflag -eq 1 ]] && me="$me -d '$dval'"
 	eval exec busybox $me
 fi
 

+ 0 - 30
package/lsof/patches/patch-Configure.orig

@@ -1,30 +0,0 @@
---- lsof_4.83_src.orig/Configure	2010-01-18 20:01:14.000000000 +0100
-+++ lsof_4.83_src/Configure	2010-07-28 15:37:18.304500970 +0200
-@@ -2735,27 +2735,6 @@ return(0); }
-     then
-       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
-     fi	# }
--
--    # Test for SELinux support.
--
--    LSOF_TMP1=0
--    if test "X$LINUX_HASSELINUX" = "X"	# {
--    then
--      if test -r ${LSOF_INCLUDE}/selinux/selinux.h	# {
--      then
--	LSOF_TMP1=1
--      fi	# }
--    else
--      if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # {
--      then
--	LSOF_TMP1=1
--      fi	# }
--    fi	# }
--    if test $LSOF_TMP1 -eq 1	# {
--    then
--      LSOF_CFGF="$LSOF_CFGF -DHASSELINUX"
--      LSOF_CFGL="$LSOF_CFGL -lselinux"
--    fi	# }
-     LSOF_DIALECT_DIR="linux"
-     LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
-     ;;

Some files were not shown because too many files changed in this diff