misc/118385: /etc/rc.d/motd doesn't work on custom system

Renato Botelho garga at FreeBSD.org
Sun Dec 2 08:50:01 PST 2007


>Number:         118385
>Category:       misc
>Synopsis:       /etc/rc.d/motd doesn't work on custom system
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Dec 02 16:50:00 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator:     Renato Botelho
>Release:        7.0-BETA3
>Organization:
>Environment:
FreeBSD localhost 7.0-BETA3 FreeBSD 7.0-BETA3 #1: Sat Dec  1 17:38:41 BRST 2007     root at localhost:/usr/obj/usr/src/sys/GARGA  i386

>Description:
When you customize Operating System name, /etc/rc.d/motd add a new OS information line at the top of /etc/motd on each new boot.

It happens because name "FreeBSD" is harcoded inside it, i've changed it to get OS name using uname command.

I don't know if the way i did it is the best, but it's working here.
>How-To-Repeat:

>Fix:
Index: src/etc/rc.d/motd
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/motd,v
retrieving revision 1.9
diff -u -r1.9 motd
--- src/etc/rc.d/motd	7 Oct 2004 13:55:26 -0000	1.9
+++ src/etc/rc.d/motd	2 Dec 2007 16:32:33 -0000
@@ -34,14 +34,16 @@
 	fi
 
 	T=`mktemp -t motd`
+	export __OSNAME=`/usr/bin/uname`
 	uname -v | sed -e 's,^\([^#]*\) #\(.* [1-2][0-9][0-9][0-9]\).*/\([^\]*\) $,\1 (\3) #\2,' > ${T}
-	awk '{if (NR == 1) {if ($1 == "FreeBSD") {next} else {print "\n"$0}} else {print}}' < /etc/motd >> ${T}
+	awk '{if (NR == 1) {if ($1 == ENVIRON["__OSNAME"]) {next} else {print "\n"$0}} else {print}}' < /etc/motd >> ${T}
 
 	cmp -s $T /etc/motd || {
 		cp $T /etc/motd
 		chmod ${PERMS} /etc/motd
 	}
 	rm -f $T
+	unset __OSNAME
 
 	echo .
 }

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list