GNU bug report logs - #55846
make bootstrap -j2 fails on macOS

Previous Next

Package: emacs;

Reported by: Mattias Engdegård <mattiase <at> acm.org>

Date: Wed, 8 Jun 2022 10:43:02 UTC

Severity: normal

Done: Mattias Engdegård <mattiase <at> acm.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 55846 in the body.
You can then email your comments to 55846 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#55846; Package emacs. (Wed, 08 Jun 2022 10:43:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mattias Engdegård <mattiase <at> acm.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 08 Jun 2022 10:43:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mattias Engdegård <mattiase <at> acm.org>
To: bug-gnu-emacs <at> gnu.org
Subject: make bootstrap -j2 fails on macOS
Date: Wed, 8 Jun 2022 12:41:54 +0200
nextstep/Makefile.in has the rule

${ns_check_file} ${ns_appdir}: ${srcdir}/${ns_appsrc} ${ns_appsrc}
	rm -rf ${ns_appdir}
	${MKDIR_P} ${ns_appdir}
	( cd ${srcdir}/${ns_appsrc} ; tar cfh - . ) | \
	  ( cd ${ns_appdir} ; umask 022; tar xf - )
	[ "`cd ${srcdir} && /bin/pwd`" = "`/bin/pwd`" ] || \
	  ( cd ${ns_appsrc} ; tar cfh - . ) | \
	    ( cd ${ns_appdir} ; umask 022; tar xf - )
	touch ${ns_appdir}

but because of its dual targets, ns_check_file and ns_appdir, it is unsafe to use in parallel builds and seems in fact often to be invoked twice at the same time, which leads to general confusion and eventual build failure.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#55846; Package emacs. (Wed, 08 Jun 2022 10:53:02 GMT) Full text and rfc822 format available.

Message #8 received at 55846 <at> debbugs.gnu.org (full text, mbox):

From: Mattias Engdegård <mattiase <at> acm.org>
To: 55846 <at> debbugs.gnu.org
Cc: Po Lu <luangruo <at> yahoo.com>, Alan Third <alan <at> idiocy.org>,
 Jan Djärv <jan.h.d <at> swipnet.se>
Subject: bug#55846: make bootstrap -j2 fails on macOS
Date: Wed, 8 Jun 2022 12:52:04 +0200
I have no idea what the intention was, but it's slightly confusing that the originating commit (de3d0b572d) was ostensibly made to cope with make parallelism. (CC:ing the author, Jan Djärv, in case he still remembers anything.)

Just making one target depend on the other, as in the diff below, makes it work, but I'm not sure of the purpose of ns_check_file.

--- a/nextstep/Makefile.in
+++ b/nextstep/Makefile.in
@@ -47,7 +47,9 @@ .PHONY:
 
 all: ${ns_appdir} ${ns_appbindir}/Emacs ${ns_applibexecdir}/Emacs.pdmp
 
-${ns_check_file} ${ns_appdir}: ${srcdir}/${ns_appsrc} ${ns_appsrc}
+${ns_check_file}: ${ns_appdir}
+
+${ns_appdir}: ${srcdir}/${ns_appsrc} ${ns_appsrc}
        rm -rf ${ns_appdir}
        ${MKDIR_P} ${ns_appdir}
        ( cd ${srcdir}/${ns_appsrc} ; tar cfh - . ) | \





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#55846; Package emacs. (Thu, 09 Jun 2022 13:31:02 GMT) Full text and rfc822 format available.

Message #11 received at 55846 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Mattias Engdegård <mattiase <at> acm.org>
Cc: Po Lu <luangruo <at> yahoo.com>, Alan Third <alan <at> idiocy.org>,
 55846 <at> debbugs.gnu.org, Joakim Verona <joakim <at> verona.se>,
 Jan Djärv <jan.h.d <at> swipnet.se>
Subject: Re: bug#55846: make bootstrap -j2 fails on macOS
Date: Thu, 09 Jun 2022 15:29:59 +0200
Mattias Engdegård <mattiase <at> acm.org> writes:

> Just making one target depend on the other, as in the diff below,
> makes it work, but I'm not sure of the purpose of ns_check_file.

Let's see...

if test "$HAVE_NS" = "yes"; then
  if test "$NS_IMPL_GNUSTEP" = yes; then
    AC_CONFIG_FILES([nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist:nextstep/templates/Info-gnustep.plist.in \
      nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop:nextstep/templates/Emacs.desktop.in])
    ns_check_file=Resources/Info-gnustep.plist
  else
    AC_CONFIG_FILES([nextstep/Cocoa/Emacs.base/Contents/Info.plist:nextstep/templates/Info.plist.in \
      nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings:nextstep/templates/InfoPlist.strings.in])
    ns_check_file=Contents/Info.plist
  fi
  AC_SUBST(ns_check_file)
fi

Uhm...  OK, still not sure.  Seems like this was added by

commit 63dae8e97d343fd4ebfe3dc08f0e8dc932630a4c
Author:     Joakim Verona <joakim <at> verona.se>
AuthorDate: Tue Sep 10 23:52:26 2013 +0200

but the commit is just "merge upstream".  I've added Joakim to the CCs;
perhaps he remembers.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#55846; Package emacs. (Thu, 09 Jun 2022 13:47:01 GMT) Full text and rfc822 format available.

Message #14 received at 55846 <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: Mattias Engdegård <mattiase <at> acm.org>,
 Alan Third <alan <at> idiocy.org>, 55846 <at> debbugs.gnu.org,
 Joakim Verona <joakim <at> verona.se>,
 Jan Djärv <jan.h.d <at> swipnet.se>
Subject: Re: bug#55846: make bootstrap -j2 fails on macOS
Date: Thu, 09 Jun 2022 21:45:39 +0800
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> Mattias Engdegård <mattiase <at> acm.org> writes:
>
>> Just making one target depend on the other, as in the diff below,
>> makes it work, but I'm not sure of the purpose of ns_check_file.
>
> Let's see...
>
> if test "$HAVE_NS" = "yes"; then
>   if test "$NS_IMPL_GNUSTEP" = yes; then
>     AC_CONFIG_FILES([nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist:nextstep/templates/Info-gnustep.plist.in \
>       nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop:nextstep/templates/Emacs.desktop.in])
>     ns_check_file=Resources/Info-gnustep.plist
>   else
>     AC_CONFIG_FILES([nextstep/Cocoa/Emacs.base/Contents/Info.plist:nextstep/templates/Info.plist.in \
>       nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings:nextstep/templates/InfoPlist.strings.in])
>     ns_check_file=Contents/Info.plist
>   fi
>   AC_SUBST(ns_check_file)
> fi
>
> Uhm...  OK, still not sure.  Seems like this was added by
>
> commit 63dae8e97d343fd4ebfe3dc08f0e8dc932630a4c
> Author:     Joakim Verona <joakim <at> verona.se>
> AuthorDate: Tue Sep 10 23:52:26 2013 +0200
>
> but the commit is just "merge upstream".  I've added Joakim to the CCs;
> perhaps he remembers.

AFAICT ns_check_file is some kind of "bundle metadata" file used by
Nextstep that has to be generated from a template
(Info-gnustep.plist.in).  They are similar to .desktop files on
GNU/Linux.

Creating it depends on ns_appdir being created, since that's where it
resides.  The current rule is a mistake.  It should depend on ns_appdir.

Further more I might just be sleepy, but I can't see what is actually
creating Info-gnustep.plist in the ns_check_file and ns_appdir rule.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#55846; Package emacs. (Thu, 09 Jun 2022 14:27:01 GMT) Full text and rfc822 format available.

Message #17 received at 55846 <at> debbugs.gnu.org (full text, mbox):

From: Mattias Engdegård <mattiase <at> acm.org>
To: Po Lu <luangruo <at> yahoo.com>
Cc: Joakim Verona <joakim <at> verona.se>, Lars Ingebrigtsen <larsi <at> gnus.org>,
 55846 <at> debbugs.gnu.org, Alan Third <alan <at> idiocy.org>,
 Jan Djärv <jan.h.d <at> swipnet.se>
Subject: Re: bug#55846: make bootstrap -j2 fails on macOS
Date: Thu, 9 Jun 2022 16:26:18 +0200
9 juni 2022 kl. 15.45 skrev Po Lu <luangruo <at> yahoo.com>:

> Further more I might just be sleepy, but I can't see what is actually
> creating Info-gnustep.plist in the ns_check_file and ns_appdir rule.

Isn't that file created by configure from a template (nextstep/templates/Info-gnustep.plist.in)? The rule then just copies the whole subtree.





Reply sent to Mattias Engdegård <mattiase <at> acm.org>:
You have taken responsibility. (Fri, 10 Jun 2022 08:36:02 GMT) Full text and rfc822 format available.

Notification sent to Mattias Engdegård <mattiase <at> acm.org>:
bug acknowledged by developer. (Fri, 10 Jun 2022 08:36:02 GMT) Full text and rfc822 format available.

Message #22 received at 55846-done <at> debbugs.gnu.org (full text, mbox):

From: Mattias Engdegård <mattiase <at> acm.org>
To: 55846-done <at> debbugs.gnu.org
Cc: Po Lu <luangruo <at> yahoo.com>, Lars Ingebrigtsen <larsi <at> gnus.org>,
 Alan Third <alan <at> idiocy.org>, Joakim Verona <joakim <at> verona.se>
Subject: Re: bug#55846: make bootstrap -j2 fails on macOS
Date: Fri, 10 Jun 2022 10:35:42 +0200
I'm applying the first patch since it solves my problem without any apparent adverse effects. If anyone has a better idea, feel free to modify.





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 08 Jul 2022 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 347 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.