Re: Remove distprep

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>
Subject: Re: Remove distprep
Date: 2023-10-05 15:46:46
Message-ID: e9f99f54-2f6b-79ef-3c91-9d2669d7210b@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 26.09.23 06:49, Michael Paquier wrote:
> On Wed, Aug 23, 2023 at 12:46:45PM +0200, Peter Eisentraut wrote:
>> Apparently, the headerscheck and cpluspluscheck targets still didn't work
>> right in the Cirrus jobs. Here is an updated patch to address that. This
>> is also rebased over some recent changes that affected this patch (generated
>> wait events stuff).
>
> -gettext-files: distprep
> +gettext-files: postgres
>
> This bit in src/backend/nls.mk does not seem right to me. The
> following sequence works on HEAD, but breaks with the patch because
> the files that should be automatically generated from the perl scripts
> aren't anymore:
> $ ./configure ...
> $ make -C src/backend/ gettext-files
> [...]
> In file included from ../../../../src/include/postgres.h:46,
> from brin.c:16:
> ../../../../src/include/utils/elog.h:79:10: fatal error:
> utils/errcodes.h: No such file or directory
> 79 | #include "utils/errcodes.h"

Ok, I think I found a better way to address this. It requires keeping a
subset of the old distprep target in src/backend/Makefile for use by
nls.mk. I have checked that the above sequence now works, and that the
generated .pot files are identical to before this patch.

> # Technically, this should depend on Makefile.global, but then
> # version.sgml would need to be rebuilt after every configure run,
> # even in distribution tarballs. So this is cheating a bit, but it
>
> There is this comment in doc/src/sgml/Makefile. Does it still apply?

I have removed the "even in distribution tarballs" bit, but the general
idea is still valid I think.

> Note that building <productname>PostgreSQL</productname> from the source
> repository requires reasonably up-to-date versions of <application>bison</application>,
> <application>flex</application>, and <application>Perl</application>.
> These tools are not needed to build from a distribution tarball, because
> the files generated with these tools are included in the tarball.
> Other tool requirements
>
> This paragraph exists in sourcerepo.sgml, but it should be updated, I
> guess, because now these three binaries would be required when
> building from a tarball.

I have removed that paragraph.

> # specparse.c and specscanner.c are in the distribution tarball,
> # so do not clean them here
>
> This comment in src/test/isolation/Makefile should be removed.

done

The attached updated patch is also split up like Andres suggested
nearby. (Not sure if it would be good to commit it that way, but it's
easier to look at for now for sure.)

Attachment Content-Type Size
v5-0001-Make-bison-flex-perl-hard-build-requirements.patch text/plain 13.6 KB
v5-0002-Remove-distprep.patch text/plain 59.1 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2023-10-05 15:49:24 Re: tablecmds.c/MergeAttributes() cleanup
Previous Message Jon Erdman 2023-10-05 14:58:05 Re: Good News Everyone! + feature proposal