Inconsistency in installation of syscache_info.h
I happened to notice that syscache_info.h is installed into
$installdir/include/server/catalog if you use a non-VPATH
autoconf build, but not if you use a VPATH build or meson.
This is not great IMO.
Just to confuse matters even more, meson builds install a copy of
src/include/catalog/README, which autoconf builds do not.
ISTM we need to get these things in sync.
You could argue that syscache_info.h could never be useful outside the
core server, but it'd be a bit painful to get the non-VPATH code to
not install it, because it just blindly installs everything matching
src/include/catalog/*.h. So I'd vote for making the other two paths
install it too.
I've not looked into why meson is installing a copy of that
README, but it seems quite random to do so, so I'd vote for
not doing that if possible.
Thoughts?
regards, tom lane
I wrote:
I happened to notice that syscache_info.h is installed into
$installdir/include/server/catalog if you use a non-VPATH
autoconf build, but not if you use a VPATH build or meson.
This is not great IMO.
Just to confuse matters even more, meson builds install a copy of
src/include/catalog/README, which autoconf builds do not.
ISTM we need to get these things in sync.
Here's a proposed patch for that. I've confirmed we get identical
filesets from all three build methods with this.
Although this seems like clearly a bug, I'm not sure anyone would
thank us for changing the behavior in back branches; particularly
not packagers, who tend to pay close attention to the set of files
installed. So I'm inclined to apply this to master only.
regards, tom lane
Attachments:
0001-synchronize-installed-file-sets.patchtext/x-diff; charset=us-ascii; name=0001-synchronize-installed-file-sets.patchDownload+4-2
Hi,
On 2026-02-16 14:01:38 -0500, Tom Lane wrote:
I wrote:
I happened to notice that syscache_info.h is installed into
$installdir/include/server/catalog if you use a non-VPATH
autoconf build, but not if you use a VPATH build or meson.
This is not great IMO.
Indeed. If it were trivial to not install it, I'd have gone that way, but it
looks like it's not...
Just to confuse matters even more, meson builds install a copy of
src/include/catalog/README, which autoconf builds do not.ISTM we need to get these things in sync.
Here's a proposed patch for that. I've confirmed we get identical
filesets from all three build methods with this.
Nice.
Although this seems like clearly a bug, I'm not sure anyone would
thank us for changing the behavior in back branches; particularly
not packagers, who tend to pay close attention to the set of files
installed. So I'm inclined to apply this to master only.
Agreed. Given that syscache_info.h should never be needed, it's not like it'll
bother anyone that it's not there. And it looks like
src/include/catalog/README is new enough that the installation in meson
happens only on master anyway.
Greetings,
Andres Freund