From 6be5b76d66cadbea715defa109963939ea866922 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 16 Feb 2026 15:20:15 -0500 Subject: [PATCH] Ensure that all three build methods install the same set of files. syscache_info.h was installed into $installdir/include/server/catalog if you use a non-VPATH autoconf build, but not if you use a VPATH build or meson. That happened because the makefiles blindly install src/include/catalog/*.h, and in a non-VPATH build the generated header files would be swept up in that. While it's hard to conjure a reason to need syscache_info.h outside of backend build, it's also hard to get the makefiles to skip syscache_info.h, so let's go the other way and install it in the other two cases too. Another problem, new in v19, was that meson builds install a copy of src/include/catalog/README, while autoconf builds do not. The issue here is that that file is new and wasn't added to meson.build's exclusion list. While it's clearly a bug if different build methods don't install the same set of files, I doubt anyone would thank us for changing the behavior in released branches. Hence, fix in master only. Author: Tom Lane Reviewed-by: Andres Freund Discussion: https://postgr.es/m/946828.1771185367@sss.pgh.pa.us --- src/include/catalog/Makefile | 3 ++- src/include/catalog/meson.build | 2 +- src/include/meson.build | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/include/catalog/Makefile b/src/include/catalog/Makefile index c90022f7c57..24b527230d4 100644 --- a/src/include/catalog/Makefile +++ b/src/include/catalog/Makefile @@ -149,6 +149,7 @@ install: all installdirs ifeq ($(vpath_build),yes) $(INSTALL_DATA) schemapg.h '$(DESTDIR)$(includedir_server)'/catalog/schemapg.h $(INSTALL_DATA) syscache_ids.h '$(DESTDIR)$(includedir_server)'/catalog/syscache_ids.h + $(INSTALL_DATA) syscache_info.h '$(DESTDIR)$(includedir_server)'/catalog/syscache_info.h $(INSTALL_DATA) system_fk_info.h '$(DESTDIR)$(includedir_server)'/catalog/system_fk_info.h for file in $(GENERATED_HEADERS); do \ $(INSTALL_DATA) $$file '$(DESTDIR)$(includedir_server)'/catalog/$$file || exit; \ @@ -160,7 +161,7 @@ installdirs: uninstall: rm -f $(addprefix '$(DESTDIR)$(datadir)'/, postgres.bki system_constraints.sql) - rm -f $(addprefix '$(DESTDIR)$(includedir_server)'/catalog/, schemapg.h syscache_ids.h system_fk_info.h $(GENERATED_HEADERS)) + rm -f $(addprefix '$(DESTDIR)$(includedir_server)'/catalog/, schemapg.h syscache_ids.h syscache_info.h system_fk_info.h $(GENERATED_HEADERS)) clean: rm -f bki-stamp $(GENBKI_OUTPUT_FILES) diff --git a/src/include/catalog/meson.build b/src/include/catalog/meson.build index b63cd584068..433bcc908ad 100644 --- a/src/include/catalog/meson.build +++ b/src/include/catalog/meson.build @@ -115,7 +115,7 @@ output_install = [ dir_data, dir_include_server / 'catalog', dir_include_server / 'catalog', - false, + dir_include_server / 'catalog', dir_include_server / 'catalog', ] diff --git a/src/include/meson.build b/src/include/meson.build index b940c5cd3d6..7d734d92dab 100644 --- a/src/include/meson.build +++ b/src/include/meson.build @@ -173,6 +173,7 @@ install_subdir('catalog', exclude_files: [ '.gitignore', 'Makefile', + 'README', 'duplicate_oids', 'meson.build', 'reformat_dat_file.pl',