Skip to content

Commit 8ca7f21

Browse files
authored
Merge pull request #1118 from citusdata/ubuntu_24.04
Adds Ubuntu 24.04 (noble) support
2 parents f259827 + ad78fe3 commit 8ca7f21

10 files changed

+154
-38
lines changed

Diff for: .github/workflows/build-citus-community-nightlies.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
# - ubuntu/bionic
3737
- ubuntu/focal
3838
- ubuntu/jammy
39+
- ubuntu/noble
3940

4041
steps:
4142
- name: Checkout repository
@@ -49,7 +50,7 @@ jobs:
4950
password: ${{ secrets.DOCKERHUB_PASSWORD }}
5051

5152
- name: Clone tools branch
52-
run: git clone -b v0.8.27 --depth=1 https://github.com/citusdata/tools.git tools
53+
run: git clone -b v0.8.32 --depth=1 https://github.com/citusdata/tools.git tools
5354

5455
- name: Clone build branch
5556
run: git clone -b "${MAIN_BRANCH}" --depth=1 https://github.com/citusdata/packaging.git packaging

Diff for: .github/workflows/build-package-test.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ jobs:
5757
# - TARGET_PLATFORM: ubuntu,bionic
5858
- TARGET_PLATFORM: ubuntu,focal
5959
- TARGET_PLATFORM: ubuntu,jammy
60+
- TARGET_PLATFORM: ubuntu,noble
6061
- TARGET_PLATFORM: pgxn
6162
steps:
6263
- name: Checkout repository
@@ -78,7 +79,7 @@ jobs:
7879
POSTGRES_VERSION: ${{ matrix.POSTGRES_VERSION }}
7980

8081
- name: Clone tools repo for test
81-
run: git clone -b v0.8.27 --depth=1 https://github.com/citusdata/tools.git tools
82+
run: git clone -b v0.8.32 --depth=1 https://github.com/citusdata/tools.git tools
8283

8384
- name: Execute packaging tests
8485
run: |

Diff for: .github/workflows/build-package.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ jobs:
5757
# - TARGET_PLATFORM: ubuntu,bionic
5858
- TARGET_PLATFORM: ubuntu,focal
5959
- TARGET_PLATFORM: ubuntu,jammy
60+
- TARGET_PLATFORM: ubuntu,noble
6061
- TARGET_PLATFORM: pgxn
6162
steps:
6263
- name: Checkout repository
@@ -78,7 +79,7 @@ jobs:
7879
POSTGRES_VERSION: ${{ matrix.POSTGRES_VERSION }}
7980

8081
- name: Clone tools repo for test
81-
run: git clone -b v0.8.27 --depth=1 https://github.com/citusdata/tools.git tools
82+
run: git clone -b v0.8.32 --depth=1 https://github.com/citusdata/tools.git tools
8283

8384
- name: Execute packaging tests
8485
run: |

Diff for: .github/workflows/build-pgazure-nightlies.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
password: ${{ secrets.DOCKERHUB_PASSWORD }}
5050

5151
- name: Clone tools branch
52-
run: git clone -b v0.8.27 --depth=1 https://github.com/citusdata/tools.git tools
52+
run: git clone -b v0.8.32 --depth=1 https://github.com/citusdata/tools.git tools
5353

5454
- name: Clone build branch
5555
run: git clone -b "${MAIN_BRANCH}" --depth=1 https://github.com/citusdata/packaging.git packaging

Diff for: .github/workflows/image-health-check.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ jobs:
5959
# - TARGET_PLATFORM: ubuntu,bionic
6060
- TARGET_PLATFORM: ubuntu,focal
6161
- TARGET_PLATFORM: ubuntu,jammy
62+
- TARGET_PLATFORM: ubuntu,noble
6263
- TARGET_PLATFORM: pgxn
6364
steps:
6465
- name: Checkout repository
@@ -80,7 +81,7 @@ jobs:
8081
POSTGRES_VERSION: ${{ matrix.POSTGRES_VERSION }}
8182

8283
- name: Clone tools repo for test
83-
run: git clone -b v0.8.27 --depth=1 https://github.com/citusdata/tools.git tools
84+
run: git clone -b v0.8.32 --depth=1 https://github.com/citusdata/tools.git tools
8485

8586
- name: Execute packaging tests
8687
run: |

Diff for: .github/workflows/update-pgxn-version.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
run: sudo apt install libcurl4-openssl-dev libssl-dev
2323

2424
- name: Clone Tools branch
25-
run: git clone --branch v0.8.27 https://github.com/citusdata/tools.git
25+
run: git clone --branch v0.8.32 https://github.com/citusdata/tools.git
2626

2727
- name: Install Python requirements
2828
run: python -m pip install -r tools/packaging_automation/requirements.txt

Diff for: .github/workflows/update_package_properties.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323

2424
# Runs a single command using the runners shell
2525
- name: Clone Tools branch
26-
run: git clone --depth 1 --branch v0.8.27 https://github.com/citusdata/tools.git
26+
run: git clone --depth 1 --branch v0.8.32 https://github.com/citusdata/tools.git
2727

2828
# Runs a set of commands using the runners shell
2929
- name: Execute Package Properties Update

Diff for: dockerfiles/ubuntu-noble-all/Dockerfile

+142
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
# vim:set ft=dockerfile:
2+
FROM ubuntu:noble
3+
ARG DEBIAN_FRONTEND=noninteractive
4+
5+
# See https://github.com/tianon/docker-brew-debian/issues/49 for discussion of the following
6+
#
7+
# https://bugs.debian.org/830696 (apt uses gpgv by default in newer releases, rather than gpg)
8+
RUN set -x \
9+
&& apt-get update \
10+
# Fix ipv6 issue on travis: https://github.com/f-secure-foundry/usbarmory-debian-base_image/issues/9#issuecomment-466594168
11+
&& mkdir ~/.gnupg && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \
12+
&& { \
13+
which gpg \
14+
# prefer gnupg2, to match APT's Recommends
15+
|| apt-get install -y --no-install-recommends gnupg2 \
16+
|| apt-get install -y --no-install-recommends gnupg \
17+
; } \
18+
# Ubuntu includes "gnupg" (not "gnupg2", but still 2.x), but not dirmngr, and gnupg 2.x requires dirmngr
19+
# so, if we're not running gnupg 1.x, explicitly install dirmngr too
20+
&& { \
21+
gpg --version | grep -q '^gpg (GnuPG) 1\.' \
22+
|| apt-get install -y --no-install-recommends dirmngr \
23+
; } \
24+
&& rm -rf /var/lib/apt/lists/*
25+
26+
RUN set -ex; \
27+
# pub 4096R/ACCC4CF8 2011-10-13 [expires: 2019-07-02]
28+
# Key fingerprint = B97B 0AFC AA1A 47F0 44F2 44A0 7FCC 7D46 ACCC 4CF8
29+
# uid PostgreSQL Debian Repository
30+
key='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8'; \
31+
export GNUPGHOME="$(mktemp -d)"; \
32+
# Fix ipv6 issue on travis: https://github.com/f-secure-foundry/usbarmory-debian-base_image/issues/9#issuecomment-466594168
33+
echo "disable-ipv6" >> $GNUPGHOME/dirmngr.conf; \
34+
gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$key"; \
35+
gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/postgres.gpg; \
36+
command -v gpgconf > /dev/null && gpgconf --kill all; \
37+
rm -rf "$GNUPGHOME"; \
38+
apt-key list
39+
40+
# add buster backports repo to be able to download missing packages in buster main repo
41+
RUN ( [ ubuntu != debian ] || [ noble != buster ] ) || ( \
42+
echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list \
43+
)
44+
45+
# install build tools and PostgreSQL development files
46+
47+
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main 17' > /etc/apt/sources.list.d/pgdg.list \
48+
&& apt-get update \
49+
&& apt-get install -y --no-install-recommends \
50+
autotools-dev \
51+
build-essential \
52+
ca-certificates \
53+
curl \
54+
debhelper \
55+
devscripts \
56+
fakeroot \
57+
flex \
58+
libbz2-dev \
59+
libffi-dev \
60+
libcurl4-openssl-dev \
61+
libdistro-info-perl \
62+
libedit-dev \
63+
libfile-fcntllock-perl \
64+
libicu-dev \
65+
libkrb5-dev \
66+
libpam0g-dev \
67+
libreadline-dev \
68+
libselinux1-dev \
69+
libssl-dev \
70+
libxslt-dev \
71+
lintian \
72+
postgresql-server-dev-all \
73+
postgresql-server-dev-17 \
74+
wget \
75+
zlib1g-dev \
76+
python3-pip \
77+
python3-sphinx \
78+
python3-setuptools \
79+
liblz4-dev \
80+
liblz4-1 \
81+
libzstd1 \
82+
libzstd-dev \
83+
# below are needed for cmake and pgazure build
84+
checkinstall \
85+
git \
86+
libtemplate-perl \
87+
pkg-config \
88+
tar \
89+
unzip \
90+
uuid \
91+
uuid-dev \
92+
zip \
93+
sudo \
94+
&& rm -rf /var/lib/apt/lists/*
95+
96+
97+
# install jq to process JSON API responses
98+
RUN curl -sL https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 \
99+
-o /usr/bin/jq \
100+
&& chmod +x /usr/bin/jq
101+
102+
# install packagecloud repos for pg_auto_failover
103+
RUN curl https://install.citusdata.com/community/deb.sh | bash \
104+
&& rm -rf /var/lib/apt/lists/*
105+
106+
# patch pg_buildext to use multiple processors
107+
COPY make_pg_buildext_parallel.patch /
108+
RUN patch `which pg_buildext` < /make_pg_buildext_parallel.patch
109+
110+
111+
# install cmake from source
112+
RUN wget https://github.com/Kitware/CMake/releases/download/v3.22.2/cmake-3.22.2.tar.gz && \
113+
tar -zxvf cmake-3.22.2.tar.gz && \
114+
cd cmake-3.22.2 && ./bootstrap && \
115+
make && \
116+
make install && \
117+
rm -f cmake-3.22.2.tar.gz && \
118+
rm -rf cmake-3.22.2
119+
120+
# install pyenv and python 3.8 to be able to execute tools scripts
121+
ARG PYTHON_VERSION=3.8.16
122+
RUN set -ex \
123+
&& curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash \
124+
&& export PATH="$HOME/.pyenv/bin:$PATH" \
125+
&& pyenv update \
126+
&& pyenv install $PYTHON_VERSION \
127+
&& pyenv global $PYTHON_VERSION \
128+
&& pyenv rehash \
129+
&& echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc \
130+
&& echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc \
131+
&& echo 'eval "$(pyenv init -)"' >> ~/.bashrc
132+
133+
134+
# Added for pg17 beta package support.
135+
ENV DEB_PG_SUPPORTED_VERSIONS="10 11 12 13 14 15 16 17"
136+
137+
# place scripts on path and declare output volume
138+
ENV PATH /scripts:$PATH
139+
COPY scripts /scripts
140+
VOLUME /packages
141+
142+
ENTRYPOINT ["/scripts/fetch_and_build_deb"]

Diff for: make_pg_buildext.patch

-29
This file was deleted.

Diff for: os-list.csv

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
almalinux,8
22
almalinux,9
3-
debian,buster
43
debian,bullseye
54
debian,bookworm
65
oraclelinux,8
76
oraclelinux,6
87
ubuntu,focal
9-
ubuntu,bionic
108
ubuntu,jammy
9+
ubuntu,noble
1110
pgxn

0 commit comments

Comments
 (0)