]> Zhao Yanbai Git Server - minix.git/commitdiff
Fixed an mtree bugs that caused permissions and ownerships for / to
authorBen Gras <ben@minix3.org>
Tue, 3 May 2005 15:41:02 +0000 (15:41 +0000)
committerBen Gras <ben@minix3.org>
Tue, 3 May 2005 15:41:02 +0000 (15:41 +0000)
be wrong.

Made the install process quieter when install already done.

rc and daily now is more readonly-/usr aware (for cd).

etc/Makefile
etc/mtree.sh
etc/rc
etc/usr/daily
etc/usr/rc

index b0c62d4c7618217bade5e8489e0fdad00504ff99..40121d92fbb8b67b174abb51404878659afccc79 100644 (file)
@@ -12,10 +12,12 @@ clean::
 install::
        @echo "Installing /etc and /usr/etc.."
        mkdir -p $(ETC)
-       for f in $(FILES1); do if [ -f $(ETC)/$$f ]; then echo $$f exists; else cp $$f $(ETC); chmod 755 $(ETC)/$$f; fi; done
-       for f in $(FILES2); do if [ -f $(ETC)/$$f ]; then echo $$f exists; else cp $$f $(ETC); chmod 600 $(ETC)/$$f; fi; done
+       @for f in $(FILES1); do if [ -f $(ETC)/$$f ]; then :; else cp $$f $(ETC)/$$f; chmod 755 $(ETC)/$$f; fi; done
+       @for f in $(FILES2); do if [ -f $(ETC)/$$f ]; then :; else cp $$f $(ETC)/$$f; chmod 600 $(ETC)/$$f; fi; done
        @echo "Making hierarchy.."
-       ./mtree.sh mtree/minix.tree
-       for f in $(FILES3); do if [ -f $(USRETC)/$$f ]; then echo $$f exists; else cp usr/$$f $(USRETC); chmod 755 $(USRETC)/$$f; fi; done
-       cd /dev && /usr/src/commands/scripts/MAKEDEV.sh std
-       (cd ast && tar cf - .* ) | (cd /usr/ast && tar xf - )
+       sh mtree.sh mtree/minix.tree
+       @for f in $(FILES3); do if [ -f $(USRETC)/$$f ]; then :; else cp usr/$$f $(USRETC); chmod 755 $(USRETC)/$$f; fi; done
+       @echo "Making devices.."
+       cd /dev && sh /usr/src/commands/scripts/MAKEDEV.sh std 2>/dev/null
+       @echo "Making user homedirs.."
+       for u in bin ast; do (cd ast && tar cf - .[a-z]* ) | (cd ~$u && tar xf - ); done
index 786b2b5033ec227131a38664916dcb220840f71c..cdc9df9512e6e6146aad87b741e91b65e0ebf068 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 cat $1 | while read line
-do     awk '{ print "mkdir -p "$4" || exit 1; chmod "$1" "$4" || exit 1; chown "$2" "$4" || exit 1; chgrp "$3" "$4" || exit 1" }' | sh || exit 1
+do      echo $line | awk '{ print "mkdir -p "$4" || exit 1; chmod "$1" "$4" || exit 1; chown "$2" "$4" || exit 1; chgrp "$3" "$4" || exit 1" }' | sh || exit 1
 done
diff --git a/etc/rc b/etc/rc
index 83a94317219fd92f3e07fb9a65a59abb5982a6ae..b3c5e56f227f99078994bb150b85b2d47730e6c6 100755 (executable)
--- a/etc/rc
+++ b/etc/rc
@@ -52,7 +52,6 @@ start)
 
     # Are we booting from CD?
     bootcd="`/bin/sysenv bootcd`"
-    ramname="`/bin/sysenv ramname`"
 
     # If booting from CD, /usr has to be mounted readonly.
     # Also, $usr won't be specified correctly in the
@@ -60,8 +59,9 @@ start)
     # where it is.
     if [ "$bootcd" = 1 ]
     then       
+               ramname="`/bin/sysenv ramimagedev_n`"
                usr_roflag="-r"
-               usr="/dev/${ramname}p2"
+               usr="/dev/c0`echo $ramname | sed 's/.*\(d.\).*/\1/'`p2"
                echo "Setting /usr to mount readonly from cd: $ramname -> $usr"
     fi
  
index 225f7a1db75acf78662fd7a1d05816ea31e0a2c2..6552aa535669f5d9780d2d27b7ab7c4a7b63783a 100755 (executable)
@@ -2,6 +2,11 @@
 #
 # daily - daily cleanup of the system.
 
+# Doesn't make sense when running from CD
+if [ -f /CD ]
+then   exit
+fi
+
 case "$#:$1" in
 1:cron|1:boot)
     caller=$1
@@ -20,7 +25,7 @@ then
     set -- `ls -lT $timestamp`
     test "$6 $7 $9" = "$(date '+%b %d %Y')" && exit
 fi
->$timestamp 2>/dev/null # Makes for errors when booting from CD
+>$timestamp
 
 # Remove three day old files from various tmp dirs.
 cleantmp -3 /tmp /usr/tmp /usr/preserve /usr/spool/lpd /usr/spool/at/past
index d7e0a6c3936ff4c67ac4d5171c1c70060bd63b48..097f8f30e19fb5aa8ed4cf9d5b1229d3456b9276 100644 (file)
@@ -45,7 +45,12 @@ start)
 
     echo -n "Starting daemons:"
     daemonize update
-    daemonize cron
+
+    # Ugly error message when starting cron from CD.
+    # (and cron unnecessary then so..)
+    if [ ! -f /CD ]
+    then       daemonize cron
+    fi
 
     if [ "$net" ]
     then