tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: etc/motd not updated
On Thu, 18 Oct 2012, Edgar Fu wrote:
I have a netbsd-6 source tree. After the 6.0 release, I updated
to netbsd-6-0. When I now build.sh distribution, I end up
with an etc.tgz where ./etc/motd still talks about a release
canidate. It looks like obj/destdir.XXX/etc/motd lacks some
dependency and doesn't get updated.
DESTDIR/etc/motd is created from different source files depending
on pattern matching against ${DISTRIBVER} in etc/Makefile. If
DISTRIBVER changes, then the rules change, but nothing notices
that the installed file might need to change.
The appended patch adds a a dependency on an intermediate file in
the .OBJDIR called motd.${DISTRIBVER}, and recreates that file
whenever DISTRIBVER changes. In addition to applying this patch,
you need to rename src/etc/motd to src/etc/motd.default. If the
patch appears to be mangled, try looking for lines that start with
two or more spaces, and remove one of those spaces; it's an artefact of
the "text/plain; format=flowed" content type.
This change to the build process has the side effect of changing
the timestamp of the installed DESTDIR/etc/motd. Previously,
it would have been the same as the timestamp of the source
etc/motd{,.current,.beta,.stable,.rc}, but now it will be the
timestamp of the motd.${DISTRIBVER} file created during the first
build with a particular value of ${DISTRIBVER}.
--apb (Alan Barrett)
Index: etc/Makefile
===================================================================
RCS file: /home/apb/netbsd/cvsmirror/cvsroot/src/etc/Makefile,v
retrieving revision 1.398
diff -d -p -u -r1.398 Makefile
--- etc/Makefile 17 Aug 2012 16:59:26 -0000 1.398
+++ etc/Makefile 19 Oct 2012 08:09:57 -0000
@@ -114,21 +114,8 @@ BIN1+= etc.${MACHINE}/ttyaction
.endif
# -rw-rw-r--
-.if !empty(DISTRIBVER:M*.99.*)
-BIN2+= motd.current
-FILESNAME_motd.current= motd
-.elif !empty(DISTRIBVER:M*BETA*)
-BIN2+= motd.beta
-FILESNAME_motd.beta= motd
-.elif !empty(DISTRIBVER:M*RC*)
-BIN2+= motd.rc
-FILESNAME_motd.rc= motd
-.elif !empty(DISTRIBVER:M*STABLE*)
-BIN2+= motd.stable
-FILESNAME_motd.stable= motd
-.else
BIN2+= motd
-.endif
+FILESBUILD_motd= YES
# -rw-------
BIN3+= hosts.equiv
@@ -172,6 +159,31 @@ distribution: .PHONY .MAKE check_DESTDIR
.endif # !DISTRIBUTION_DONE
+# Force motd to be recreated if DISTRIBVER changes.
+#
+# This doesn't work if you flip back and forth between two values of
+# DISTRIBVER without "make clean" in between, but it works in the common
+# case that DISTRIBVER goes forwards without a "make clean".
+#
+.if !empty(DISTRIBVER:M*.99.*)
+MOTD_SOURCE= motd.current
+.elif !empty(DISTRIBVER:M*BETA*)
+MOTD_SOURCE= motd.beta
+.elif !empty(DISTRIBVER:M*RC*)
+MOTD_SOURCE= motd.rc
+.elif !empty(DISTRIBVER:M*STABLE*)
+MOTD_SOURCE= motd.stable
+.else
+MOTD_SOURCE= motd.default
+.endif
+CLEANFILES+= motd.[0-9]*
+motd.${DISTRIBVER}: ${MOTD_SOURCE}
+ #${_MKTARGET_CREATE}
+ ${HOST_INSTALL_FILE:S,${PRESERVE},,} ${.ALLSRC} ${.TARGET}
+motd: motd.${DISTRIBVER}
+ ${_MKTARGET_CREATE}
+ ${HOST_INSTALL_FILE} ${.ALLSRC} ${.TARGET}
+
CLEANFILES+= MAKEDEV
MAKEDEV: ${.CURDIR}/MAKEDEV.awk ${.CURDIR}/MAKEDEV.tmpl \
${.CURDIR}/etc.${MACHINE}/MAKEDEV.conf
Home |
Main Index |
Thread Index |
Old Index