> On Nov 2, 2026, at 18:35, Peter Eisentraut <[email protected]> wrote:
> 
> The list of files for the backend's message catalog is collected with find, 
> which also lists symlinks, namely the generated files that are linked from 
> src/include/utils/ to src/backend/utils/ (such as guc_tables.inc.c) and the 
> port/pg_sema.c and port/pg_shmem.c links created by configure.  Since the 
> link targets are found under their real names as well, xgettext processed 
> those files twice, resulting in duplicate "#:" references like
> 
>    #: ../include/utils/guc_tables.inc.c:410 utils/guc_tables.inc.c:410
> 
> This is an old problem, but the introduction of guc_tables.inc.c in PG19 has 
> made it much more noticeable.
> 
> I propose the attached patch to fix this by restricting find to regular files.
> <0001-Avoid-duplicate-file-references-in-backend-.pot-file.patch>

LGTM. I tested in this way:
```
% ls -l src/include/utils/guc_tables.inc.c
lrwxr-xr-x@ 1 chaol  staff  43 Nov  3 13:27 src/include/utils/guc_tables.inc.c 
-> ../../../src/backend/utils/guc_tables.inc.c

% find src/backend src/common src/port src/include \
    \( -name '*.c' -o -name 'proctypelist.h' \) \
    -print | grep guc_tables.inc.c
src/backend/utils/guc_tables.inc.c
src/include/utils/guc_tables.inc.c

% find src/backend src/common src/port src/include -type f \
    \( -name '*.c' -o -name 'proctypelist.h' \) \
    -print | grep guc_tables.inc.c
src/backend/utils/guc_tables.inc.c
```

Without -type f, find lists both the regular file and the symbolic link. With 
-type f, it lists only the regular file, as expected.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/






Reply via email to