Received: (at 31157) by debbugs.gnu.org; 22 Apr 2018 13:57:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 22 09:57:35 2018 Received: from localhost ([127.0.0.1]:35941 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fAFUl-0004Kl-KW for submit <at> debbugs.gnu.org; Sun, 22 Apr 2018 09:57:35 -0400 Received: from mail-ot0-f169.google.com ([74.125.82.169]:37816) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <rrt@HIDDEN>) id 1fAFUj-0004KX-UR for 31157 <at> debbugs.gnu.org; Sun, 22 Apr 2018 09:57:34 -0400 Received: by mail-ot0-f169.google.com with SMTP id 77-v6so8345710otd.4 for <31157 <at> debbugs.gnu.org>; Sun, 22 Apr 2018 06:57:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=35woVE6EacgHofq+Jk0q81Rs2q6kqu6TpJMHP1w/MIs=; b=hgB0AP25S+tNHmxHWMp0BZPKtgIvDKvEbUskIehIjAhWR0DEI4NIvb3/IZhHk4e6MR obaW0//G0LP3e/1R2bCNvUnuEOt3ws0FGa8qPlhv7mCZhJYtIKqBFJnlT4HQpI3cuz5B jIgq7ilgYZ0+CL2QtPbvfQ08mSvf5OLw9/mVE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=35woVE6EacgHofq+Jk0q81Rs2q6kqu6TpJMHP1w/MIs=; b=N85b7gqf3RDk8ZeY5WnAEDI+3T+CmL/eAFiiaWX+FSiw4WOLf996oWJIVwAfr+C+g4 qVGXv49d5yHuSSU0ZGAfViTdLGKvwTbzAznTewhjUX6ay1wywJ2PrFviFAh3jX6kSkty pEhUnrDYsD7CQTGDrbUgCDuO4UErjzhovpwejmoFKLUf7ipb90mcY85huZ30EEhm6uf+ J6YnfTZOfWSJsfNCrYZrQ76rBnH+ZASYGeXjpy2YrgZIaoPcZy8vJe3/cZH6aBSEApia VG++sNUky40PyQbEbyW7cbVAMygGDJTZy5mJZGnG94pVCZaFW+rczzuW8oxGrNd5QcRu D1gg== X-Gm-Message-State: ALQs6tAo9i3+8hDPnt8YhNObq7wOfnOqdCJX3qBIutbG1YPCWKTwFNEK /pp02ZVoE15Qs6jRbVpDVe9aV5oOmTGDNfuHsDywTw== X-Google-Smtp-Source: AIpwx4/fTBKffO08QmKeORYYEbUf37byLXQ17yM34PmYriN35Zx0kW9LJjbKo0ACf2WmS2XMPnpKodoqfNSLa/1nQs0= X-Received: by 2002:a9d:4902:: with SMTP id e2-v6mr11115648otf.212.1524405447925; Sun, 22 Apr 2018 06:57:27 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:3389:0:0:0:0:0 with HTTP; Sun, 22 Apr 2018 06:57:26 -0700 (PDT) In-Reply-To: <87wowzvbcc.fsf@HIDDEN> References: <CAOnWdoiR3yGdPoAixbkw_6QDCD65uaa2b=a-HXTJysrE0eLTgA@HIDDEN> <87o9ica8y1.fsf@HIDDEN> <CAOnWdogdGR4=32WgSaLjR5e5vmeL8JMXRWQYm3P-8sqvP9X_Tg@HIDDEN> <87wowzvbcc.fsf@HIDDEN> From: Reuben Thomas <rrt@HIDDEN> Date: Sun, 22 Apr 2018 14:57:26 +0100 Message-ID: <CAOnWdohpDPAGHVBapT0Kxvn=a-VNuJHMfe7ozAcuFa20JxxxAQ@HIDDEN> Subject: Re: bug#31157: Advice for help2man does not work for parallel builds To: Mathieu Lirzin <mthl@HIDDEN> Content-Type: multipart/alternative; boundary="00000000000037ba7c056a704d15" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 31157 Cc: 31157 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --00000000000037ba7c056a704d15 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On 22 April 2018 at 10:28, Mathieu Lirzin <mthl@HIDDEN> wrote: > > > $(srcdir)/foo.1: foo.c foo$(EXEEXT) > > -@case '$?' in \ > > *foo.c*) > > =E2=80=8B=E2=80=8B$(AM_V_P) && set -x || echo " HELP2MAN $@"; \ > > LANGUAGE=3D help2man --output=3D"$(srcdir)/foo.1" ./foo$(EXEEXT);; \ > > *) : ;; \ > > esac; > > > > Nice! The one thing I don't understand: why is "-" needed at the start > > (i.e. why do we need to ignore failure of this command?). > > I don't recall exactly the reason Guix added it, I guess it was to allow > the build to "succeed" even if the man pages generation failed since > that doesn't impact the software to run. However I am not sure if it's > a good idea. > Ah, I guess it could fail because if help2man is not available. The code I supplied=E2=80=8B uses "missing" instead. IIUC this case silently ignores when the =E2=80=98beetle.1=E2=80=99 is not = distributed, > =E2=80=8BIt is distributed. This is important to cover the case where help2= man is not available.=E2=80=8B Note that the command would not work anyway under make distcheck, as it would attempt to write to a non-writable directory, and this case is explicitly handled. --=20 https://rrt.sc3d.org --00000000000037ba7c056a704d15 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div class=3D"gmail_extra">On 22 April 2018 at 10:28, Math= ieu Lirzin <span dir=3D"ltr"><<a href=3D"mailto:mthl@HIDDEN" target=3D"= _blank">mthl@HIDDEN</a>></span> wrote:<br><div class=3D"gmail_quote"><b= lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px = #ccc solid;padding-left:1ex"><span class=3D""><br> >=C2=A0 $(srcdir)/foo.1: foo.c foo$(EXEEXT)<br> >=C2=A0 -@case '$?' in \<br> >=C2=A0 *foo.c*) <br> >=C2=A0 =E2=80=8B=E2=80=8B$(AM_V_P) && set -x || echo " HEL= P2MAN $@"; \<br> >=C2=A0 LANGUAGE=3D help2man --output=3D"$(srcdir)/foo.1" ./fo= o$(EXEEXT);; \<br> >=C2=A0 *) : ;; \<br> >=C2=A0 esac;<br> ><br> > Nice! The one thing I don't understand: why is "-" neede= d at the start<br> > (i.e. why do we need to ignore failure of this command?).<br> <br> </span>I don't recall exactly the reason Guix added it, I guess it was = to allow<br> the build to "succeed" even if the man pages generation failed si= nce<br> that doesn't impact the software to run.=C2=A0 However I am not sure if= it's<br> a good idea.<br></blockquote><div><br><div style=3D"font-family: times\ new= \ roman, serif; font-size: small;" class=3D"gmail_default">Ah, I guess it c= ould fail because if help2man is not available. The code I supplied=E2=80= =8B uses "missing" instead.<br></div><br></div><blockquote class= =3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd= ing-left:1ex"> IIUC this case silently ignores when the =E2=80=98beetle.1=E2=80=99 is not = distributed,<br></blockquote><div class=3D"h5"><br><div style=3D"font-famil= y: times\ new\ roman, serif; font-size: small;" class=3D"gmail_default">=E2= =80=8BIt is distributed. This is important to cover the case where help2man= is not available.=E2=80=8B<br><br></div><div style=3D"font-family: times\ = new\ roman, serif; font-size: small;" class=3D"gmail_default">Note that the= command would not work anyway under make distcheck, as it would attempt to= write to a non-writable directory, and this case is explicitly handled.<br= ></div><br clear=3D"all"></div></div>-- <br><div class=3D"gmail_signature" = data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><a href=3D"https://rrt.= sc3d.org" target=3D"_blank">https://rrt.sc3d.org</a></div></div> </div></div> --00000000000037ba7c056a704d15--
bug-automake@HIDDEN
:bug#31157
; Package automake
.
Full text available.Received: (at 31157) by debbugs.gnu.org; 22 Apr 2018 10:07:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 22 06:07:45 2018 Received: from localhost ([127.0.0.1]:35418 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fABuH-0005PD-78 for submit <at> debbugs.gnu.org; Sun, 22 Apr 2018 06:07:45 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44182) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mthl@HIDDEN>) id 1fABuE-0005P0-SD for 31157 <at> debbugs.gnu.org; Sun, 22 Apr 2018 06:07:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <mthl@HIDDEN>) id 1fABu6-0004rm-1K for 31157 <at> debbugs.gnu.org; Sun, 22 Apr 2018 06:07:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50174) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <mthl@HIDDEN>) id 1fABtz-0004lY-6d; Sun, 22 Apr 2018 06:07:23 -0400 Received: from 176-179-165-201.abo.bbox.fr ([176.169.165.201]:48100 helo=neptune) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <mthl@HIDDEN>) id 1fABty-0006JS-Df; Sun, 22 Apr 2018 06:07:22 -0400 From: Mathieu Lirzin <mthl@HIDDEN> To: Peter Johansson <trojkan@HIDDEN> Subject: Re: bug#31157: Advice for help2man does not work for parallel builds References: <CAOnWdoiR3yGdPoAixbkw_6QDCD65uaa2b=a-HXTJysrE0eLTgA@HIDDEN> <87o9ica8y1.fsf@HIDDEN> <80eb0a21-fe98-afb1-5531-fe83581c8cbf@HIDDEN> Date: Sun, 22 Apr 2018 12:07:19 +0200 In-Reply-To: <80eb0a21-fe98-afb1-5531-fe83581c8cbf@HIDDEN> (Peter Johansson's message of "Sun, 22 Apr 2018 09:56:28 +1000") Message-ID: <87sh7nv9k8.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 31157 Cc: 31157 <at> debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Reuben Thomas <rrt@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -6.0 (------) Hello Peter, Peter Johansson <trojkan@HIDDEN> writes: > On 4/22/2018 1:13 AM, Mathieu Lirzin wrote: >> Hello Reuben, >> >> Reuben Thomas <rrt@HIDDEN> writes: >> >>> In the manual, we are given the following pattern for using help2man >>> without breaking make distcheck: >>> >>> foo.1: foo.c $(top_srcdir)/configure.ac >>> $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT) >>> help2man --output=3Dfoo.1 ./foo$(EXEEXT) >>> >>> The problem is that with make -j this can result in two attempts to >>> make a library in parallel (suppose that we have: >>> >>> foo_LDADD =3D libfoo.la >>> lib_LTLIBRARIES =3D libfoo.la >>> >>> ). This can fail, and in any case is wasteful. >> Have you identified the reason why this can fail? because > > One problem is that the rule for foo.1 can be triggered before > foo.$(EXEEXT) exists and the rule needs foo.$(EXEEXT) or help2man will > fail. In a -j1 build this is never a problem as binaries are built > before man pages. with the =E2=80=98$(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT)=E2=80=99 recipe line= , normally this ensures that the =E2=80=98foo$(EXEEXT)=E2=80=99 is built at least once= . My question was about understanding why building a program/library twice may end up in a failure in a parallel context. The answer from Reuben was that since compilation is not thead safe when for example deleting shared temporary files, then concurrent processes might impact each other. > When the 'missing' script changed behaviour in Automake 1.13 (and > became useless imvho), we changed the rule in one project so foo.1 > depended on foo.$(EXEEXT) but not if we are 1) building from a tarball > and 2) foo.$(EXEEXT) exists. > > http://dev.thep.lu.se/svndigest/browser/trunk/man/Makefile.am This is an alternative solution which is used by GNU Hello too. I remember some people not being fond of this approach because of its AM_MAINTAINER_MODE spirit [1]. [1] https://www.gnu.org/software/automake/manual/html_node/maintainer_002dm= ode.html Thanks for your feedback. --=20 Mathieu Lirzin GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
bug-automake@HIDDEN
:bug#31157
; Package automake
.
Full text available.Received: (at 31157) by debbugs.gnu.org; 22 Apr 2018 09:29:10 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 22 05:29:10 2018 Received: from localhost ([127.0.0.1]:35409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fABIv-0004YH-J3 for submit <at> debbugs.gnu.org; Sun, 22 Apr 2018 05:29:10 -0400 Received: from eggs.gnu.org ([208.118.235.92]:52062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mthl@HIDDEN>) id 1fABIt-0004Xm-KS for 31157 <at> debbugs.gnu.org; Sun, 22 Apr 2018 05:29:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <mthl@HIDDEN>) id 1fABIl-0000oZ-0B for 31157 <at> debbugs.gnu.org; Sun, 22 Apr 2018 05:28:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49805) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <mthl@HIDDEN>) id 1fABIk-0000oR-SH; Sun, 22 Apr 2018 05:28:54 -0400 Received: from 176-179-165-201.abo.bbox.fr ([176.169.165.201]:47882 helo=neptune) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <mthl@HIDDEN>) id 1fABIk-0007Oz-9U; Sun, 22 Apr 2018 05:28:54 -0400 From: Mathieu Lirzin <mthl@HIDDEN> To: Reuben Thomas <rrt@HIDDEN> Subject: Re: bug#31157: Advice for help2man does not work for parallel builds References: <CAOnWdoiR3yGdPoAixbkw_6QDCD65uaa2b=a-HXTJysrE0eLTgA@HIDDEN> <87o9ica8y1.fsf@HIDDEN> <CAOnWdogdGR4=32WgSaLjR5e5vmeL8JMXRWQYm3P-8sqvP9X_Tg@HIDDEN> Date: Sun, 22 Apr 2018 11:28:51 +0200 In-Reply-To: <CAOnWdogdGR4=32WgSaLjR5e5vmeL8JMXRWQYm3P-8sqvP9X_Tg@HIDDEN> (Reuben Thomas's message of "Sun, 22 Apr 2018 07:52:02 +0100") Message-ID: <87wowzvbcc.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 31157 Cc: 31157 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -6.0 (------) Reuben Thomas <rrt@HIDDEN> writes: > On 21 April 2018 at 16:13, Mathieu Lirzin <mthl@HIDDEN> wrote: > > Reuben Thomas <rrt@HIDDEN> writes: > > > In the manual, we are given the following pattern for using help2man > > without breaking make distcheck: > > > > foo.1: foo.c $(top_srcdir)/configure.ac > > $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT) > > help2man --output=3Dfoo.1 ./foo$(EXEEXT) > > > > The problem is that with make -j this can result in two attempts to > > make a library in parallel (suppose that we have: > > > > foo_LDADD =3D libfoo.la > > lib_LTLIBRARIES =3D libfoo.la > > > > ). This can fail, and in any case is wasteful. > > Have you identified the reason why this can fail? because=20 > > =E2=80=8BBecause two independent parallel invocations of make =E2=80=8Bca= n end up trying > to build the library (which is wasteful anyway) and some needed file > can be deleted by one invocation when the other is trying to use it to > link the library. Makes sense. > This is not ideal since this result in making =E2=80=98help2man=E2=80=99= (and =E2=80=98perl=E2=80=99 > transitively) a build dependency for tarball builders. > > =E2=80=8BI'm increasingly of the view this is not a problem. Perl is > increasingly reasonable as a build dep (it seems to be in most base > systems now), and help2man is small. In term of convenience for end users, I agree this is often a harmless issue. However having been involved in GNU Guix for awhile I think it is important to avoid accidental dependencies to improve the simplicity of the bootstrapping process of our systems [1][2]. > $(srcdir)/foo.1: foo.c foo$(EXEEXT) > -@case '$?' in \ > *foo.c*)=20 > =E2=80=8B=E2=80=8B$(AM_V_P) && set -x || echo " HELP2MAN $@"; \ > LANGUAGE=3D help2man --output=3D"$(srcdir)/foo.1" ./foo$(EXEEXT);; \ > *) : ;; \ > esac; > > Nice! The one thing I don't understand: why is "-" needed at the start > (i.e. why do we need to ignore failure of this command?). I don't recall exactly the reason Guix added it, I guess it was to allow the build to "succeed" even if the man pages generation failed since that doesn't impact the software to run. However I am not sure if it's a good idea. > Combining the above with what I originally posted, I get: > > beetle.1: tbl_opts.h beetle$(EXEEXT) > ## Exit gracefully if beetle.1 is not writeable, such as during distcheck! > @if ( touch $@.w && rm -f $@.w; ) >/dev/null 2>&1; then \ IIUC this case silently ignores when the =E2=80=98beetle.1=E2=80=99 is not = distributed, which doesn't seem desirable for =E2=80=98make distcheck=E2=80=99, no? =20=20=20=20=20 > case '$?' in \ > *tbl_opts.h*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ > $(top_srcdir)/build-aux/missing --run $(HELP2MAN) --no-info \ > --name=3D"Forth virtual machine" \ > --output=3D$@ ./beetle$(EXEEXT);; \ > *) : ;; \ > esac; \ > fi [1] https://www.gnu.org/software/guix/manual/html_node/Bootstrapping.html [2] http://bootstrappable.org/ --=20 Mathieu Lirzin GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
bug-automake@HIDDEN
:bug#31157
; Package automake
.
Full text available.Received: (at 31157) by debbugs.gnu.org; 22 Apr 2018 06:52:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 22 02:52:11 2018 Received: from localhost ([127.0.0.1]:35384 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fA8r5-0000xN-51 for submit <at> debbugs.gnu.org; Sun, 22 Apr 2018 02:52:11 -0400 Received: from mail-ot0-f177.google.com ([74.125.82.177]:46630) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <rrt@HIDDEN>) id 1fA8r3-0000x9-Cl for 31157 <at> debbugs.gnu.org; Sun, 22 Apr 2018 02:52:09 -0400 Received: by mail-ot0-f177.google.com with SMTP id v64-v6so13905641otb.13 for <31157 <at> debbugs.gnu.org>; Sat, 21 Apr 2018 23:52:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3bMVINqHtYLGys2ORSs5GUu2mXPVYqNzjblvTUPHiUI=; b=oLmgOUVSoTE0AQ52xc7ZezR2i68U7KVPPJJm1XVrSYR+XdKHKyYzzE1Y7TCEiMSito kWCuK4aFR/FpheCU3Q3N5Ig63bcjL64m2iYhVBXvTtpOAncx7HjGkPssdVsHOaaVeTOP jlesHwdbNI4bydLdqJWlk5mQxEpP4mReaodMc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3bMVINqHtYLGys2ORSs5GUu2mXPVYqNzjblvTUPHiUI=; b=M+I+dxIXru7cLR9+OfR/YxLraLk/7tSoyyBN5+pEbSET2akwDmZAX5iB8+iavconeh G8x4n478DXdhl/+QHDuhed2o8RioREAbSEpJ+g0GJM5aTqfkMhWXApNPVi0Tvg5y+SzB lLVuD1AJFq06SBFJagqEew2+ynb1+nhsdTa7RZyLikMjyiEqDzw0SBwHYXjhf4PB+5g+ i4SrCbKjFGJdGCRAON0KOGXz7q3YijvV80AESqnoGkPv6SIUDgGnGmRLXh0/d4dsCLTw Mi0K5yDhwtaCy/BnkuLBfGGQgxD1eX4WGK8nT62zzJsMYrnb/m4M+ahDidu9QLZiGWoo X6Wg== X-Gm-Message-State: ALQs6tCQg5aKYdqGBWsYFWaK4pTuWyNkc3ahUUvbHvkJKP94r7mom5DC KXjpLTfMwPgQ7dq9ZaNhaI/W6Jq2sBpCURXAgzKSHA== X-Google-Smtp-Source: AIpwx49NngKhU+TAkyBxXx0TUDNwvAmOZqFR5ce6fiqNZhU6lcP388uhnNcmbFLQznaxfEr/QDPq2DVNNwNjPqrgMWw= X-Received: by 2002:a9d:f48:: with SMTP id 66-v6mr11336397ott.146.1524379923318; Sat, 21 Apr 2018 23:52:03 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:3389:0:0:0:0:0 with HTTP; Sat, 21 Apr 2018 23:52:02 -0700 (PDT) In-Reply-To: <87o9ica8y1.fsf@HIDDEN> References: <CAOnWdoiR3yGdPoAixbkw_6QDCD65uaa2b=a-HXTJysrE0eLTgA@HIDDEN> <87o9ica8y1.fsf@HIDDEN> From: Reuben Thomas <rrt@HIDDEN> Date: Sun, 22 Apr 2018 07:52:02 +0100 Message-ID: <CAOnWdogdGR4=32WgSaLjR5e5vmeL8JMXRWQYm3P-8sqvP9X_Tg@HIDDEN> Subject: Re: bug#31157: Advice for help2man does not work for parallel builds To: Mathieu Lirzin <mthl@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000d51f65056a6a5be1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 31157 Cc: 31157 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000d51f65056a6a5be1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On 21 April 2018 at 16:13, Mathieu Lirzin <mthl@HIDDEN> wrote: > Hello Reuben, > > Reuben Thomas <rrt@HIDDEN> writes: > > > In the manual, we are given the following pattern for using help2man > > without breaking make distcheck: > > > > foo.1: foo.c $(top_srcdir)/configure.ac > > $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT) > > help2man --output=3Dfoo.1 ./foo$(EXEEXT) > > > > The problem is that with make -j this can result in two attempts to > > make a library in parallel (suppose that we have: > > > > foo_LDADD =3D libfoo.la > > lib_LTLIBRARIES =3D libfoo.la > > > > ). This can fail, and in any case is wasteful. > > Have you identified the reason why this can fail? because > =E2=80=8BBecause two independent parallel invocations of make =E2=80=8Bcan = end up trying to build the library (which is wasteful anyway) and some needed file can be deleted by one invocation when the other is trying to use it to link the library. This is not ideal since this result in making =E2=80=98help2man=E2=80=99 (a= nd =E2=80=98perl=E2=80=99 > transitively) a build dependency for tarball builders. > =E2=80=8BI'm increasingly of the view this is not a problem. Perl is increa= singly reasonable as a build dep (it seems to be in most base systems now), and help2man is small. Further, it's increasingly common to build from git sources, or a tarball of git, or, as Debian does, to rerun autoreconf/bootstrap at build time.=E2=80=8B However, for now I am being conservative! $(srcdir)/foo.1: foo.c foo$(EXEEXT) > -@case '$?' in \ > *foo.c*) > =E2=80=8B=E2=80=8B > $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ > LANGUAGE=3D help2man --output=3D"$(srcdir)/foo.1" > ./foo$(EXEEXT);; \ > *) : ;; \ > esac; > Nice! The one thing I don't understand: why is "-" needed at the start (i.e. why do we need to ignore failure of this command?). Combining the above with what I originally posted, I get: beetle.1: tbl_opts.h beetle$(EXEEXT) ## Exit gracefully if beetle.1 is not writeable, such as during distcheck! @if ( touch $@.w && rm -f $@.w; ) >/dev/null 2>&1; then \ case '$?' in \ *tbl_opts.h*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ $(top_srcdir)/build-aux/missing --run $(HELP2MAN) --no-info \ --name=3D"Forth virtual machine" \ --output=3D$@ ./beetle$(EXEEXT);; \ *) : ;; \ esac; \ fi --=20 https://rrt.sc3d.org --000000000000d51f65056a6a5be1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div class=3D"gmail_extra">On 21 April 2018 at 16:13, Math= ieu Lirzin <span dir=3D"ltr"><<a href=3D"mailto:mthl@HIDDEN" target=3D"= _blank">mthl@HIDDEN</a>></span> wrote:<br><div class=3D"gmail_quote"><b= lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le= ft:1px solid rgb(204,204,204);padding-left:1ex">Hello Reuben,<br> <br> Reuben Thomas <<a href=3D"mailto:rrt@HIDDEN" target=3D"_blank">rrt@sc3= d.org</a>> writes:<br> <br> > In the manual, we are given the following pattern for using help2man<b= r> > without breaking make distcheck:<br> ><br> > foo.1: foo.c $(top_srcdir)/<a href=3D"http://configure.ac" rel=3D"nore= ferrer" target=3D"_blank">configure.ac</a><br> > $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT)<br> > help2man --output=3Dfoo.1 ./foo$(EXEEXT)<br> ><br> > The problem is that with make -j this can result in two attempts to<br= > > make a library in parallel (suppose that we have:<br> ><br> > foo_LDADD =3D <a href=3D"http://libfoo.la" rel=3D"noreferrer" target= =3D"_blank">libfoo.la</a><br> > lib_LTLIBRARIES =3D <a href=3D"http://libfoo.la" rel=3D"noreferrer" ta= rget=3D"_blank">libfoo.la</a><br> ><br> > ). This can fail, and in any case is wasteful.<br> <br> Have you identified the reason why this can fail?=C2=A0 because <br></block= quote><div><br><div class=3D"gmail_default">=E2=80=8BBecause two independen= t parallel invocations of make =E2=80=8Bcan end up trying to build the libr= ary (which is wasteful anyway) and some needed file can be deleted by one i= nvocation when the other is trying to use it to link the library.<br></div>= <br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8= ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> This is not ideal since this result in making =E2=80=98help2man=E2=80=99 (a= nd =E2=80=98perl=E2=80=99<br> transitively) a build dependency for tarball builders.<br></blockquote><div= ><br><div class=3D"gmail_default">=E2=80=8BI'm increasingly of the view= this is not a problem. Perl is increasingly reasonable as a build dep (it = seems to be in most base systems now), and help2man is small. Further, it&#= 39;s increasingly common to build from git sources, or a tarball of git, or= , as Debian does, to rerun autoreconf/bootstrap at build time.=E2=80=8B How= ever, for now I am being conservative!<br></div><br></div><blockquote class= =3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg= b(204,204,204);padding-left:1ex"> $(srcdir)/foo.1: foo.c foo$(EXEEXT)<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 -@case '$?' in \<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 *foo.c*) <div class=3D"gmail_default">= =E2=80=8B=E2=80=8B</div>$(AM_V_P) && set -x || echo "=C2=A0 HE= LP2MAN $@"; \<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0LANGUA= GE=3D help2man --output=3D"$(srcdir)/foo.1" ./foo$(EXEEXT);; \<br= > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 *) : ;; \<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 esac;<br></blockquote><div><br><div class=3D"gm= ail_default">Nice! The one thing I don't understand: why is "-&quo= t; needed at the start (i.e. why do we need to ignore failure of this comma= nd?).<br><br></div><div class=3D"gmail_default">Combining the above with wh= at I originally posted, I get:<br><br>beetle.1: tbl_opts.h beetle$(EXEEXT)<= br>## Exit gracefully if beetle.1 is not writeable, such as during distchec= k!<br>=C2=A0=C2=A0=C2=A0 @if ( touch $@.w && rm -f $@.w; ) >/dev= /null 2>&1; then \<br>=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 case = 9;$?' in \<br>=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *tbl_op= ts.h*) $(AM_V_P) && set -x || echo "=C2=A0 HELP2MAN $@"; = \<br>=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0 $(top_srcdir)/build-aux/m= issing --run $(HELP2MAN) --no-info \<br>=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2= =A0 =C2=A0=C2=A0=C2=A0 --name=3D"Forth virtual machine" \<br>=C2= =A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 --output=3D$@ ./beetl= e$(EXEEXT);; \<br>=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *) : ;;= \<br>=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 esac; \<br>=C2=A0=C2=A0=C2=A0 f= i<br><br></div></div></div>-- <br><div class=3D"gmail-m_2865329520839415486= gmail_signature"><div dir=3D"ltr"><a href=3D"https://rrt.sc3d.org" target= =3D"_blank">https://rrt.sc3d.org</a></div></div> </div></div> --000000000000d51f65056a6a5be1--
bug-automake@HIDDEN
:bug#31157
; Package automake
.
Full text available.Received: (at 31157) by debbugs.gnu.org; 21 Apr 2018 23:56:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 21 19:56:48 2018 Received: from localhost ([127.0.0.1]:35239 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fA2N2-0007xM-Ft for submit <at> debbugs.gnu.org; Sat, 21 Apr 2018 19:56:48 -0400 Received: from mail-pg0-f48.google.com ([74.125.83.48]:33467) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <trojkan@HIDDEN>) id 1fA2Mx-0007x6-6G for 31157 <at> debbugs.gnu.org; Sat, 21 Apr 2018 19:56:43 -0400 Received: by mail-pg0-f48.google.com with SMTP id i194so5835436pgd.0 for <31157 <at> debbugs.gnu.org>; Sat, 21 Apr 2018 16:56:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=7eTsy5ACVibmSb1N3COczqalVvutZ4kAUGJ+g1chCtU=; b=HWqRmYObLii9+6Onc2LSVctS+Ui723b2iANpMpbbEfhTXuy/BnX4ay6sDP+RmUK1bU ZGufWF7rBO2LluyHz/Tc4KxzO3N7GZw88qRNG+A4nGFBT7vrKjWN3gDYXeU4tDtnw4E6 1nofbTvYQs5XVxqbjOw+wzOdRv3sKSHbyHHn9L+HzqssO8dQE6FdR+HVuzrJVLQWLeXD OT2G/clSiY+n9x1XyJZ7/8oiyS7An8Q1WL8fkpC7TvQsREzqvm4bc5EXJQ6fskC1C8Px xA/ESx9LNEjDxF1x3atK15pvynHobGd/lFomJz18wKH3ugSmdqM3oxMcPjSqEDrpx3Vr BLfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=7eTsy5ACVibmSb1N3COczqalVvutZ4kAUGJ+g1chCtU=; b=L3Mc1b/BZuIm/DW3jxHVRYSJLEH0HaBAbxPTpGRYf2U12y0FbvbpxPizlcWFsicm7b dUBsN/ttYh3WNTJIlX8tAyuCcUd3AOtKeedJTHAp3QqvetGLXSp9oSUNJxb7X44yb0NM 3srdhKCVjll06emyCyHjyMXeAvEnMDDLfDQV9qbY4oP8W97D5TuNQxu/aHL2Gv0yRb0C 3oqTGRrjjA6Zqica1GQPbDJpzrJnBFqpIjdRkITJ5Eb7Cb4IFn1rpN0GrzWBoRMhadzP X7Fko4pdMF3VSVI/Yj9YV3xxiD+ozdCoHDRu34Fd3JlMiIZ0CzkxVeT6wOfY9n18IvqJ 8IFw== X-Gm-Message-State: ALQs6tAII9nVdzbliNzvrpetaK6mULizs36lD8QKYa5a6Eqh29XIF2X+ Q3rrbv/yGjr3pRV/wqOEVH8= X-Google-Smtp-Source: AIpwx4/cL6BQH3n7spechUtG45XhknsHfTp5xeVxNO1THxQslhRH8AGNFoCm2VT2z8UZvmw+OkNBjQ== X-Received: by 2002:a17:902:462:: with SMTP id 89-v6mr9636105ple.300.1524354993170; Sat, 21 Apr 2018 16:56:33 -0700 (PDT) Received: from [10.1.1.235] (58-6-252-124.dyn.iinet.net.au. [58.6.252.124]) by smtp.gmail.com with ESMTPSA id w1sm12748495pfb.39.2018.04.21.16.56.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 21 Apr 2018 16:56:32 -0700 (PDT) Subject: Re: bug#31157: Advice for help2man does not work for parallel builds To: Mathieu Lirzin <mthl@HIDDEN>, Reuben Thomas <rrt@HIDDEN> References: <CAOnWdoiR3yGdPoAixbkw_6QDCD65uaa2b=a-HXTJysrE0eLTgA@HIDDEN> <87o9ica8y1.fsf@HIDDEN> From: Peter Johansson <trojkan@HIDDEN> Message-ID: <80eb0a21-fe98-afb1-5531-fe83581c8cbf@HIDDEN> Date: Sun, 22 Apr 2018 09:56:28 +1000 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <87o9ica8y1.fsf@HIDDEN> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 31157 Cc: 31157 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Ruben and Mathieu, On 4/22/2018 1:13 AM, Mathieu Lirzin wrote: > Hello Reuben, > > Reuben Thomas <rrt@HIDDEN> writes: > >> In the manual, we are given the following pattern for using help2man >> without breaking make distcheck: >> >> foo.1: foo.c $(top_srcdir)/configure.ac >> $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT) >> help2man --output=foo.1 ./foo$(EXEEXT) >> >> The problem is that with make -j this can result in two attempts to >> make a library in parallel (suppose that we have: >> >> foo_LDADD = libfoo.la >> lib_LTLIBRARIES = libfoo.la >> >> ). This can fail, and in any case is wasteful. > Have you identified the reason why this can fail? because One problem is that the rule for foo.1 can be triggered before foo.$(EXEEXT) exists and the rule needs foo.$(EXEEXT) or help2man will fail. In a -j1 build this is never a problem as binaries are built before man pages. When the 'missing' script changed behaviour in Automake 1.13 (and became useless imvho), we changed the rule in one project so foo.1 depended on foo.$(EXEEXT) but not if we are 1) building from a tarball and 2) foo.$(EXEEXT) exists. http://dev.thep.lu.se/svndigest/browser/trunk/man/Makefile.am Cheers, Peter
bug-automake@HIDDEN
:bug#31157
; Package automake
.
Full text available.Mathieu Lirzin <mthl@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 31157) by debbugs.gnu.org; 21 Apr 2018 15:14:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 21 11:14:14 2018 Received: from localhost ([127.0.0.1]:35141 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1f9uDM-0000Ue-IT for submit <at> debbugs.gnu.org; Sat, 21 Apr 2018 11:14:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:59674) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <mthl@HIDDEN>) id 1f9uDK-0000UR-PH for 31157 <at> debbugs.gnu.org; Sat, 21 Apr 2018 11:14:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <mthl@HIDDEN>) id 1f9uDB-0004Cb-4t for 31157 <at> debbugs.gnu.org; Sat, 21 Apr 2018 11:14:05 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34884) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <mthl@HIDDEN>) id 1f9uDB-0004CS-0h; Sat, 21 Apr 2018 11:14:01 -0400 Received: from 176-179-165-201.abo.bbox.fr ([176.169.165.201]:38200 helo=godel) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <mthl@HIDDEN>) id 1f9uDA-0005qg-H1; Sat, 21 Apr 2018 11:14:00 -0400 From: Mathieu Lirzin <mthl@HIDDEN> To: Reuben Thomas <rrt@HIDDEN> Subject: Re: bug#31157: Advice for help2man does not work for parallel builds References: <CAOnWdoiR3yGdPoAixbkw_6QDCD65uaa2b=a-HXTJysrE0eLTgA@HIDDEN> Date: Sat, 21 Apr 2018 17:13:58 +0200 In-Reply-To: <CAOnWdoiR3yGdPoAixbkw_6QDCD65uaa2b=a-HXTJysrE0eLTgA@HIDDEN> (Reuben Thomas's message of "Sun, 15 Apr 2018 00:48:59 +0100") Message-ID: <87o9ica8y1.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 31157 Cc: 31157 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -6.0 (------) Hello Reuben, Reuben Thomas <rrt@HIDDEN> writes: > In the manual, we are given the following pattern for using help2man > without breaking make distcheck: > > foo.1: foo.c $(top_srcdir)/configure.ac > $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT) > help2man --output=3Dfoo.1 ./foo$(EXEEXT) > > The problem is that with make -j this can result in two attempts to > make a library in parallel (suppose that we have: > > foo_LDADD =3D libfoo.la > lib_LTLIBRARIES =3D libfoo.la > > ). This can fail, and in any case is wasteful. Have you identified the reason why this can fail? because=20 > I'm using automake 1.15. I can't see anything since then that fixes this = problem. Yes, this problem is likely to still be present in 1.16.1. > The best workaround I could come up with was to revert the dependency to= =E2=80=8B > > =E2=80=8B foo.1: foo$(EXEEXT) > > and then set distcleancheck_listfiles appropriately. Obviously, since > this could hide other problems in the build system, it's not ideal. This is not ideal since this result in making =E2=80=98help2man=E2=80=99 (a= nd =E2=80=98perl=E2=80=99 transitively) a build dependency for tarball builders. > Am I missing a better solution? If so, it should be added to the > manual. If not, this problem should probably be documented. I'm > finding that parallel make is becoming a must-have rather than a nice > boost, given the proliferation of slow multi-core machines (for > example: -j makes it feasible to hack on my phone; without it, builds > are painfully slow). I agree that it is important to provide a solution that support parallel builds. I remember that the issue has been adressed by Guix with something like this (untested): --8<---------------cut here---------------start------------->8--- $(srcdir)/foo.1: foo.c foo$(EXEEXT) -@case '$?' in \ *foo.c*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ LANGUAGE=3D help2man --output=3D"$(srcdir)/foo.1" ./foo$(EXEEXT= );; \ *) : ;; \ esac; --8<---------------cut here---------------end--------------->8--- This solution handles silent rules and possible localization of the =E2=80=98./foo --help=E2=80=99 output. However its limitation is that if y= ou have another rule with =E2=80=98$(srcdir)/foo.1=E2=80=99 as a prerequisite then = it will be triggered at every build. WDYT? Thanks for the report. --=20 Mathieu Lirzin GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
bug-automake@HIDDEN
:bug#31157
; Package automake
.
Full text available.Received: (at submit) by debbugs.gnu.org; 14 Apr 2018 23:49:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 14 19:49:17 2018 Received: from localhost ([127.0.0.1]:52886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1f7Uuz-000860-2Q for submit <at> debbugs.gnu.org; Sat, 14 Apr 2018 19:49:17 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42866) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <rrt@HIDDEN>) id 1f7Uuv-00085l-U6 for submit <at> debbugs.gnu.org; Sat, 14 Apr 2018 19:49:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <rrt@HIDDEN>) id 1f7Uup-0007Y9-Oh for submit <at> debbugs.gnu.org; Sat, 14 Apr 2018 19:49:08 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,HTML_MESSAGE, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53617) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <rrt@HIDDEN>) id 1f7Uup-0007Y5-Kd for submit <at> debbugs.gnu.org; Sat, 14 Apr 2018 19:49:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33828) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <rrt@HIDDEN>) id 1f7Uum-0006qu-Eh for bug-automake@HIDDEN; Sat, 14 Apr 2018 19:49:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <rrt@HIDDEN>) id 1f7Uuj-0007We-Vk for bug-automake@HIDDEN; Sat, 14 Apr 2018 19:49:04 -0400 Received: from mail-ot0-x229.google.com ([2607:f8b0:4003:c0f::229]:35002) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from <rrt@HIDDEN>) id 1f7Uuj-0007W2-Oz for bug-automake@HIDDEN; Sat, 14 Apr 2018 19:49:01 -0400 Received: by mail-ot0-x229.google.com with SMTP id f47-v6so13675413oth.2 for <bug-automake@HIDDEN>; Sat, 14 Apr 2018 16:49:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google; h=mime-version:from:date:message-id:subject:to; bh=6/ZjnnnY35jE0x1YEMZZgeXJ9eACvl8eWPFTQ+32VT4=; b=vLUX7gvDuOi9BM6ka6Tic6PSF12gW7yy50GOS9Nm9qapcXVh3F/GrGCHLTB7yTBxy/ 4H81o4Xm5rMHj805W7S3NrUVZ2J0E8zvEDwI6KZF4Ufcst+dotTmTWIMT87ITc8xXoGG rMrDgCPv5ypfb/fnbEINesWHJJsQB4BTUIDXo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=6/ZjnnnY35jE0x1YEMZZgeXJ9eACvl8eWPFTQ+32VT4=; b=XsCm8U24uOGxIdjbo8LvjEa4xsN9wLxVzXbf2mTOCLHxV87CjVsXVvdWJZZyzDlOOz RudT+Ke2CZTt42Fzc43b3jVO4dhEo8bIzN85rOr7tOjUvY5lGqXQz/Mu0xtclAnvOm/f in8DDBgyeky/01J2Z8W0C8TaeYt8v+/WVUXJdVxJ2tQ3Euyix6vtU5FJZtmK7EOIFkj7 qpgTVAs5UuQiz3NGgULPFf+ZjJSQqz9dJvTtqerxc6PcShusszimcRwxdVKsWvskEMxc +e8GvMZeD4IFl72tEu1XI5HNGBMaA8mHAx8hBTqMeb2DIsl07PRcs9e9Gf7/fPfMrkzc ZOxw== X-Gm-Message-State: ALQs6tDsAPXVQaSXyHmFJ4q+DJG1vOMsc2RcZycitqvSrr/tFNIC1XAO 9Nq+bAmTfwPzTQet2SYzkLTZtJIV72jRjQnoMfXPJzUy X-Google-Smtp-Source: AIpwx48ehsbuxjMWjcykXS9psmlo83Qt4HexlzA45oINooxDUKQC5u4EOL2/2Z7BWC6utqUUfDxvYvpBhhEON0agpwg= X-Received: by 2002:a9d:4902:: with SMTP id e2-v6mr514286otf.212.1523749740232; Sat, 14 Apr 2018 16:49:00 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:4611:0:0:0:0:0 with HTTP; Sat, 14 Apr 2018 16:48:59 -0700 (PDT) From: Reuben Thomas <rrt@HIDDEN> Date: Sun, 15 Apr 2018 00:48:59 +0100 Message-ID: <CAOnWdoiR3yGdPoAixbkw_6QDCD65uaa2b=a-HXTJysrE0eLTgA@HIDDEN> Subject: Advice for help2man does not work for parallel builds To: bug-automake <bug-automake@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000fe5e620569d7a137" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.1 (-----) --000000000000fe5e620569d7a137 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable In the manual, we are given the following pattern for using help2man without breaking make distcheck: foo.1: foo.c $(top_srcdir)/configure.ac $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT) help2man --output=3Dfoo.1 ./foo$(EXEEXT) The problem is that with make -j this can result in two attempts to make a library in parallel (suppose that we have: foo_LDADD =3D libfoo.la lib_LTLIBRARIES =3D libfoo.la ). This can fail, and in any case is wasteful. I'm using automake 1.15. I can't see anything since then that fixes this problem. The best workaround I could come up with was to revert the dependency to=E2= =80=8B =E2=80=8B foo.1: foo$(EXEEXT) and then set distcleancheck_listfiles appropriately. Obviously, since this could hide other problems in the build system, it's not ideal. Am I missing a better solution? If so, it should be added to the manual. If not, this problem should probably be documented. I'm finding that parallel make is becoming a must-have rather than a nice boost, given the proliferation of slow multi-core machines (for example: -j makes it feasible to hack on my phone; without it, builds are painfully slow). --=20 https://rrt.sc3d.org --000000000000fe5e620569d7a137 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family: times\ = new\ roman, serif; font-size: small;">In the manual, we are given the follo= wing pattern for using help2man without breaking make distcheck:<br><br>=C2= =A0=C2=A0=C2=A0=C2=A0 foo.1: foo.c $(top_srcdir)/<a href=3D"http://configur= e.ac">configure.ac</a><br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT)<br>=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 help2man --= output=3Dfoo.1 ./foo$(EXEEXT)<br><br></div><div class=3D"gmail_default" sty= le=3D"font-family: times\ new\ roman, serif; font-size: small;">The problem= is that with make -j this can result in two attempts to make a library in = parallel (suppose that we have:<br><br></div><div class=3D"gmail_default" s= tyle=3D"font-family: times\ new\ roman, serif; font-size: small;">=C2=A0=C2= =A0=C2=A0 foo_LDADD =3D <a href=3D"http://libfoo.la">libfoo.la</a><br></div= ><div class=3D"gmail_default" style=3D"font-family: times\ new\ roman, seri= f; font-size: small;">=C2=A0=C2=A0=C2=A0 lib_LTLIBRARIES =3D <a href=3D"htt= p://libfoo.la">libfoo.la</a><br><br></div><div class=3D"gmail_default" styl= e=3D"font-family: times\ new\ roman, serif; font-size: small;">). This can = fail, and in any case is wasteful.<br></div><div class=3D"gmail_default" st= yle=3D"font-family: times\ new\ roman, serif; font-size: small;"><br>I'= m using automake 1.15. I can't see anything since then that fixes this = problem.<br clear=3D"all"></div><br><div style=3D"font-family: times\ new\ = roman, serif; font-size: small;" class=3D"gmail_default">The best workaroun= d I could come up with was to revert the dependency to=E2=80=8B</div><br><d= iv style=3D"font-family: times\ new\ roman, serif; font-size: small;" class= =3D"gmail_default">=E2=80=8B=C2=A0=C2=A0=C2=A0=C2=A0 foo.1: foo$(EXEEXT)<br= ><br></div><div style=3D"font-family: times\ new\ roman, serif; font-size: = small;" class=3D"gmail_default">and then set distcleancheck_listfiles appro= priately. Obviously, since this could hide other problems in the build syst= em, it's not ideal.<br><br>Am I missing a better solution? If so, it sh= ould be added to the manual. If not, this problem should probably be docume= nted. I'm finding that parallel make is becoming a must-have rather tha= n a nice boost, given the proliferation of slow multi-core machines (for ex= ample: -j makes it feasible to hack on my phone; without it, builds are pai= nfully slow).<br></div><br>-- <br><div class=3D"gmail_signature"><div dir= =3D"ltr"><a href=3D"https://rrt.sc3d.org" target=3D"_blank">https://rrt.sc3= d.org</a></div></div> </div> --000000000000fe5e620569d7a137--
Reuben Thomas <rrt@HIDDEN>
:bug-automake@HIDDEN
.
Full text available.bug-automake@HIDDEN
:bug#31157
; Package automake
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.