GNU bug report logs - #72237
diffutils "make dist" not compliant with the GNU Coding Standards

Previous Next

Package: diffutils;

Reported by: Bruno Haible <bruno <at> clisp.org>

Date: Sun, 21 Jul 2024 19:33:01 UTC

Severity: normal

Done: Jim Meyering <jim <at> meyering.net>

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 72237 in the body.
You can then email your comments to 72237 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-diffutils <at> gnu.org:
bug#72237; Package diffutils. (Sun, 21 Jul 2024 19:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Haible <bruno <at> clisp.org>:
New bug report received and forwarded. Copy sent to bug-diffutils <at> gnu.org. (Sun, 21 Jul 2024 19:33:02 GMT) Full text and rfc822 format available.

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

From: Bruno Haible <bruno <at> clisp.org>
To: bug-diffutils <at> gnu.org
Subject: diffutils "make dist" not compliant with the GNU Coding Standards
Date: Sun, 21 Jul 2024 21:31:52 +0200
[Message part 1 (text/plain, inline)]
Hi,

According to the GNU Coding Standard
https://www.gnu.org/prep/standards/html_node/Standard-Targets.html
  "The dist target should explicitly depend on all non-source files
   that are in the distribution, to make sure they are up to date
   in the distribution."

An easy way to test whether the 'dist' target has this property
is to run

   $ ./configure
   $ make dist

or (in a VPATH build)

   $ ../configure
   $ make dist

without doing "make" before "make dist".

Distributed non-source files that make this difficult are the man pages
for programs, that are generated from the '--help' output using help2man.

While packages that only have a top-level Makefile.am (such as GNU sed
or GNU coreutils) get this right, it is a little bit more complicated
in packages with a Makefile.am per directory (such as GNU diffutils and
GNU gettext). Originally reported for GNU gettext at
<https://lists.gnu.org/archive/html/bug-gettext/2024-07/msg00010.html>.

In GNU diffutils
  $ ./configure; make dist V=1
fails like this:

make[3]: Entering directory '/DIFFUTILS/diffutils/man'
make  distdir-am
make[4]: Entering directory '/DIFFUTILS/diffutils/man'
base=`expr cmp.1 : '\(.*\).1'`                          \
  && test -x ../src/$base                                       \
  && (echo '[NAME]'                                             \
              && sed 's@/\* *@@; s/-/\\-/;s/^GNU //; q' ../src/$base.c) \
     | PATH="../src:$PATH"                      \
       ./help2man -i - -i ./$base.x             \
         -S 'diffutils 2024-05-21' $base > cmp.1-t && mv cmp.1-t cmp.1
make[4]: *** [Makefile:2483: cmp.1] Error 1
make[4]: Leaving directory '/DIFFUTILS/diffutils/man'
make[3]: *** [Makefile:2322: distdir] Error 2
make[3]: Leaving directory '/DIFFUTILS/diffutils/man'


The attached patch fixes it. Tested also with VPATH builds, with
  - GNU make,
  - FreeBSD make,
  - NetBSD make.
Tested also with parallel make, through

   $ ./configure; make -j8 dist V=1

[0001-build-Fix-failure-of-.-configure-make-dist.patch (text/x-patch, attachment)]

Information forwarded to bug-diffutils <at> gnu.org:
bug#72237; Package diffutils. (Sun, 21 Jul 2024 19:59:02 GMT) Full text and rfc822 format available.

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

From: Collin Funk <collin.funk1 <at> gmail.com>
To: Bruno Haible <bruno <at> clisp.org>
Cc: 72237 <at> debbugs.gnu.org
Subject: Re: [bug-diffutils] bug#72237: diffutils "make dist" not compliant
 with the GNU Coding Standards
Date: Sun, 21 Jul 2024 12:57:18 -0700
Hi Bruno,

Bruno Haible <bruno <at> clisp.org> writes:

> The attached patch fixes it. Tested also with VPATH builds, with
>   - GNU make,
>   - FreeBSD make,
>   - NetBSD make.

To save you time in the future testing either FreeBSD or NetBSD make
should be enough. A portable version of NetBSD make is maintained and
that one is used by FreeBSD [1] [2]. OpenBSD seems to have made their
own changes and maintained it themselves since the operating system was
forked from NetBSD.

Also, 'bmake' is packaged in Debian and Fedora at least. You can
probably build the latest version on your host system for testing.

Collin

[1] https://www.crufty.net/help/sjg/bmake.html
[2] https://ftp.netbsd.org/pub/NetBSD/misc/sjg/




Information forwarded to bug-diffutils <at> gnu.org:
bug#72237; Package diffutils. (Sun, 21 Jul 2024 20:40:02 GMT) Full text and rfc822 format available.

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

From: Bruno Haible <bruno <at> clisp.org>
To: Collin Funk <collin.funk1 <at> gmail.com>
Cc: 72237 <at> debbugs.gnu.org
Subject: Re: [bug-diffutils] BSD make
Date: Sun, 21 Jul 2024 22:38:54 +0200
Collin Funk wrote:
> To save you time in the future testing either FreeBSD or NetBSD make
> should be enough. A portable version of NetBSD make is maintained and
> that one is used by FreeBSD [1] [2]. OpenBSD seems to have made their
> own changes and maintained it themselves since the operating system was
> forked from NetBSD.

Thanks for the hint. Indeed, the two directories
  freebsd - src/contrib/bmake
  netbsd  - src/usr.bin/make
appear to be quite similar.

OpenBSD make behaves differently in VPATH builds, as we have recently seen.
<https://lists.gnu.org/archive/html/bug-gnulib/2024-06/msg00129.html>

Bruno







Reply sent to Jim Meyering <jim <at> meyering.net>:
You have taken responsibility. (Mon, 22 Jul 2024 15:02:02 GMT) Full text and rfc822 format available.

Notification sent to Bruno Haible <bruno <at> clisp.org>:
bug acknowledged by developer. (Mon, 22 Jul 2024 15:02:02 GMT) Full text and rfc822 format available.

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

From: Jim Meyering <jim <at> meyering.net>
To: Bruno Haible <bruno <at> clisp.org>
Cc: 72237-done <at> debbugs.gnu.org
Subject: Re: [bug-diffutils] bug#72237: diffutils "make dist" not compliant
 with the GNU Coding Standards
Date: Mon, 22 Jul 2024 08:01:36 -0700
marking as done




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

This bug report was last modified 130 days ago.

Previous Next


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