diff options
Diffstat (limited to 'package/openntpd')
| -rwxr-xr-x | package/openntpd/ipkg/CONTROL/postinst | 52 | 
1 files changed, 31 insertions, 21 deletions
diff --git a/package/openntpd/ipkg/CONTROL/postinst b/package/openntpd/ipkg/CONTROL/postinst index 8881116c0..daa0baf55 100755 --- a/package/openntpd/ipkg/CONTROL/postinst +++ b/package/openntpd/ipkg/CONTROL/postinst @@ -1,25 +1,35 @@  #!/bin/sh -grep -q '^ntp[[:space:]]*123/udp' ${IPKG_INSTROOT}/etc/services 2>/dev/null -[ $? -ne 0 ] && echo "ntp	123/udp" >>${IPKG_INSTROOT}/etc/services -NU=ntp -U=`grep "^$NU:" ${IPKG_INSTROOT}/etc/passwd 2>/dev/null | cut -d: -f3` -if [ .$U = . ]; then -	U=`cut -d: -f3 ${IPKG_INSTROOT}/etc/passwd 2>/dev/null | sort -n | tail -1` -	[ .$U = . ] && U=49 -	U=`expr $U + 1` -	[ $U -lt 50 ] && U=50 -	G=`grep "^$NU:" ${IPKG_INSTROOT}/etc/group 2>/dev/null | cut -d: -f3` -	if [ .$G = . ]; then -		G=`cut -d: -f3 ${IPKG_INSTROOT}/etc/group 2>/dev/null | sort -n | tail -1` -		[ .$G = . ] && G=49 -		G=`expr $G + 1` -		[ $G -lt 50 ] && G=50 +name=ntp +id=50 + +# do not change below +# check if we are on real system +if [ -z "${IPKG_INSTROOT}" ]; then +	# create copies of passwd and group, if we use squashfs +	rootfs=`mount |awk '/root/ { print $5 }'` +	if [ "$rootfs" = "squashfs" ]; then +		if [ -h /etc/group ]; then +			rm /etc/group +			cp /rom/etc/group /etc/group +		fi +		if [ -h /etc/passwd ]; then +			rm /etc/passwd +			cp /rom/etc/passwd /etc/passwd +		fi  	fi -	LINE="$NU:x:$U:$G::/tmp/.ntp:/bin/false" -	echo "$LINE" >>${IPKG_INSTROOT}/etc/passwd -else -	awk -F: '{ if($1=="ntp") printf("%s:%s:%s:%s:%s:/tmp/.ntp:/bin/false\n",$1,$2,$3,$4,$5); else print $0 }' ${IPKG_INSTROOT}/etc/passwd >/tmp/$$ -	mv /tmp/$$ ${IPKG_INSTROOT}/etc/passwd -	chmod 644 ${IPKG_INSTROOT}/etc/passwd  fi + +echo "" +if [ -z "$(grep ^\\${name}: ${IPKG_INSTROOT}/etc/group)" ]; then  +	echo "adding group $name to /etc/group" +	echo "${name}:x:${id}:" >> ${IPKG_INSTROOT}/etc/group   +fi + +if [ -z "$(grep ^\\${name}: ${IPKG_INSTROOT}/etc/passwd)" ]; then  +	echo "adding user $name to /etc/passwd" +	echo "${name}:x:${id}:${id}:${name}:/tmp/.${name}:/bin/false" >> ${IPKG_INSTROOT}/etc/passwd +fi + +grep -q '^ntp[[:space:]]*123/udp' ${IPKG_INSTROOT}/etc/services 2>/dev/null +[ $? -ne 0 ] && echo "ntp	123/udp" >>${IPKG_INSTROOT}/etc/services  | 
