Skip to content

Conversation

@jeltz
Copy link
Collaborator

@jeltz jeltz commented Nov 17, 2025

Try to keep use reasonably in sync with the Debian packages from PGDG. We do not use all these dependencies yet but maybe we should make sure we build with plpython, plperl, etc. But that is for another PR.

The list of build dependencies from the Debian package are the following:

autoconf
bison
clang
debhelper-compat
dh-exec
docbook-xml
docbook-xsl
dpkg-dev
flex
gdb
gettext
libcurl4-openssl-dev
libicu-dev
libio-pty-perl
libipc-run-perl
libkrb5-dev
libldap2-dev
liblz4-dev
libnuma-dev
libpam0g-dev
libperl-dev
libreadline-dev
libselinux1-dev
libssl-dev
libsystemd-dev
liburing-dev
libxml2-dev
libxml2-utils
libxslt1-dev
libzstd-dev
llvm-dev
lz4
mawk
openssl
perl
pkgconf
postgresql-common-dev
python3-dev
systemtap-sdt-dev
tcl-dev
tzdata
uuid-dev
xsltproc
zlib1g-dev
zstd

And a diff is the following:

--- ci_scripts/18.txt	2025-11-11 13:26:47.752212033 +0100
+++ ci_scripts/our.txt	2025-11-18 00:20:40.505125489 +0100
@@ -1,17 +1,10 @@
-autoconf
 bison
-clang
-debhelper-compat
-dh-exec
 docbook-xml
 docbook-xsl
-dpkg-dev
 flex
-gdb
 gettext
 libcurl4-openssl-dev
 libicu-dev
-libio-pty-perl
 libipc-run-perl
 libkrb5-dev
 libldap2-dev
@@ -28,17 +21,13 @@
 libxml2-utils
 libxslt1-dev
 libzstd-dev
-llvm-dev
 lz4
 mawk
-openssl
 perl
 pkgconf
-postgresql-common-dev
 python3-dev
 systemtap-sdt-dev
 tcl-dev
-tzdata
 uuid-dev
 xsltproc
 zlib1g-dev

PostgreSQL 18 introduces liburing (already installed), libnuma and
libcurl as new optional depednencies so install them.
Right now we do not compile pplpython but we probably should. The Debian
package from PGDG has this as a dependency.
Github's images alreayd had jq installed but when I used an image from
Incus I had to manually install it so add it to the list of
dependencies.
@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.68%. Comparing base (bfff728) to head (4b7a954).

❌ Your project status has failed because the head coverage (59.68%) is below the target coverage (90.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #473      +/-   ##
==========================================
+ Coverage   59.66%   59.68%   +0.01%     
==========================================
  Files          67       67              
  Lines       10481    10481              
  Branches     1809     1809              
==========================================
+ Hits         6254     6256       +2     
+ Misses       3532     3530       -2     
  Partials      695      695              
Components Coverage Δ
access 84.89% <ø> (ø)
catalog 87.93% <ø> (ø)
common 77.77% <ø> (ø)
encryption 71.56% <ø> (ø)
keyring 73.54% <ø> (ø)
src 94.20% <ø> (ø)
smgr 94.06% <ø> (ø)
transam ∅ <ø> (∅)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@AndersAstrand
Copy link
Collaborator

AndersAstrand commented Nov 18, 2025

I've been thinking about going in the completely opposite direction and remove everything that's already listed as installed on the runner image here: https://github.com/actions/runner-images/blob/ubuntu24/20251112.124/images/ubuntu/Ubuntu2404-Readme.md

I'm not sure which approach is best, but we should choose one of them instead of being in the middle as we currently are.

@jeltz
Copy link
Collaborator Author

jeltz commented Nov 18, 2025

My thought was that going this direction would mean fewer manual calls and easier to maintain, but it is hard to predict.

@AndersAstrand
Copy link
Collaborator

AndersAstrand commented Nov 18, 2025

My thought was that going this direction would mean fewer manual calls and easier to maintain, but it is hard to predict.

Hmm... What do we do with packages like wget for example that we install unnecessarily that's not part of the pgdg list? should we add all such packages even if they're already installed in the runner?

I was thinking "install what we need that's not already installed" would lead to fewer manual calls and easier to maintain. But I might be wrong.

When I wrote this on my "todo at some point in the future" list I didn't even consider copying the pgdg list at all to be clear.

I now think that maybe we should copy the pgdg list verbatim as in this commit, but for everything outside of that list it's "if we need it and it's not already installed on the runner" maybe?

@jeltz
Copy link
Collaborator Author

jeltz commented Nov 18, 2025

I now think that maybe we should copy the pgdg list verbatim as in this commit, but for everything outside of that list it's "if we need it and it's not already installed on the runner" maybe?

That sounds like an appealing alternative which would mean no wget and no jq.

@AndersAstrand
Copy link
Collaborator

That sounds like an appealing alternative which would mean no wget and no jq.

We just need to check if the same script is used in the QA jenkins though, since they probably use a pure ubuntu come to think of it.

@AndersAstrand
Copy link
Collaborator

That sounds like an appealing alternative which would mean no wget and no jq.

We just need to check if the same script is used in the QA jenkins though, since they probably use a pure ubuntu come to think of it.

I have now verified that they don't use the script.

# Setup
jq
wget
# Build
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clearly label the where the list is copied from here, so it doesn't start diverging again in the future and anyone can see where to go look for an updated list if stuff starts failing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants