From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: VCSWITNESS = fail ** 2 Date: Sun, 12 Jan 2014 18:27:48 +0200 Message-ID: <83iotp88sb.fsf@gnu.org> References: <20140112143733.B3F863811D4@snark.thyrsus.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1389544096 31979 80.91.229.3 (12 Jan 2014 16:28:16 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 12 Jan 2014 16:28:16 +0000 (UTC) Cc: emacs-devel@gnu.org To: esr@thyrsus.com (Eric S. Raymond) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 12 17:28:24 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1W2Nte-0003sp-SN for ged-emacs-devel@m.gmane.org; Sun, 12 Jan 2014 17:28:23 +0100 Original-Received: from localhost ([::1]:38468 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W2Nte-0002UG-9u for ged-emacs-devel@m.gmane.org; Sun, 12 Jan 2014 11:28:22 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41407) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W2NtW-0002Tz-GE for emacs-devel@gnu.org; Sun, 12 Jan 2014 11:28:19 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W2NtR-0004AQ-18 for emacs-devel@gnu.org; Sun, 12 Jan 2014 11:28:14 -0500 Original-Received: from mtaout22.012.net.il ([80.179.55.172]:61300) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W2NtQ-0004AM-PS for emacs-devel@gnu.org; Sun, 12 Jan 2014 11:28:08 -0500 Original-Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0MZA00200R2Q4A00@a-mtaout22.012.net.il> for emacs-devel@gnu.org; Sun, 12 Jan 2014 18:28:02 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MZA001U1R2PZ230@a-mtaout22.012.net.il>; Sun, 12 Jan 2014 18:28:02 +0200 (IST) In-reply-to: <20140112143733.B3F863811D4@snark.thyrsus.com> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.172 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:168197 Archived-At: > From: esr@thyrsus.com (Eric S. Raymond) > Date: Sun, 12 Jan 2014 09:37:33 -0500 (EST) > > Nobody has stepped up to own or defend this code in Makefile.in: You didn't wait nowhere near enough time to draw that conclusion. Some of us live in different time zones than you do. Moreover, for some of us today is a weekday, not a weekend, and I, for instance, cannot reply to my gnu.org email during office hours, for boring reasons. Please always wait for at least a day, if not longer, before you conclude that no one responded. > src: Makefile FRC > dirstate='.bzr/checkout/dirstate'; \ > vcswitness='$$(srcdir)/../'$$dirstate; \ > [ -r "$(srcdir)/$$dirstate" ] || vcswitness=''; \ > cd $@ || exit; \ > boot=bootstrap-emacs$(EXEEXT); \ > [ ! -x "$$boot" ] || boot=''; \ > $(MAKE) all $(MFLAGS) \ > CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ > LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot" \ > VCSWITNESS="$$vcswitness" > > Which is just as well, because the second through fourth lines > > dirstate='.bzr/checkout/dirstate'; \ > vcswitness='$$(srcdir)/../'$$dirstate; \ > [ -r "$(srcdir)/$$dirstate" ] || vcswitness=''; \ > > are a case study in how not to do things. First, they're broken. The > readability test on line 4 is not checking the same file path that is > set on line 3. AFAICS, that's because the test is done first from $(srcdir), and then from $(srcdir)/src. Thus, the value passed to src/Makefile needs an extra "..". > The contingent result with the current repo tree structure > is that vcswitness is never set. Isn't the problem in this line: VCSWITNESS="$$vcswitness" Shouldn't that be VCSWITNESS="$vcswitness" instead? > Now let's look at what VCSWITNESS is used for. The key lines are > in src/Makefile.in: > > ## VCSWITNESS points to the file that holds info about the current checkout. > ## We use it as a heuristic to decide when to rebuild loaddefs.el. > ## If empty it is ignored; the parent makefile can set it to some other value. > VCSWITNESS = > > $(lispsource)/loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) > cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS="$(bootstrap_exe)" > > This test is wrong. The correct prerequisites would be every elisp > file that declares an autoload cookie. That possibility was considered and rejected, for the reasons that Stefan explained. So you have just made things worse, not better. > I'm going to delete the broken code. I'm going to revert that change, unless I hear some objections. Then we can discuss how to fix this (assuming it is broken, which I'm not sure it is yet).