Skip to content

Commit

Permalink
Update 10 extensions for Postgres 17
Browse files Browse the repository at this point in the history
Simplify the build scripting for these extensions

*   mobilitydb
*   multicorn
*   ora_migrator
*   oracle_fdw
*   orafce
*   periods
*   permuteseq
*   pg_bigm

Add these extensions (previously released manually):

*   pg_base36
*   pg_base62

Upgrade these extensions:

*   mobilitydb v1.2.0
*   orafce v4.14.0
*   periods v1.2.2
*   pg_base36 v1.1.1
  • Loading branch information
theory committed Dec 17, 2024
1 parent 54829b6 commit ec1c8c3
Show file tree
Hide file tree
Showing 23 changed files with 146 additions and 208 deletions.
2 changes: 1 addition & 1 deletion contrib/jdbc_fdw/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ categories = ["connectors"]
apt = ["libpq5", "libc6", "openjdk-18-jre-headless"]

[build]
postgres_version = "15"
postgres_version = "16"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = "make -C jdbc_fdw install USE_PGXS=1"
2 changes: 1 addition & 1 deletion contrib/kafka_fdw/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ categories = ["connectors"]
apt = ["librdkafka1", "libc6"]

[build]
postgres_version = "17"
postgres_version = "16"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = "make -C kafka_fdw install"
2 changes: 1 addition & 1 deletion contrib/meta_triggers/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ documentation = "https://github.com/aquameta/meta_triggers"
categories = ["tooling_admin"]

[build]
postgres_version = "15"
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = "make -C meta_triggers install"
38 changes: 15 additions & 23 deletions contrib/mobilitydb/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
ARG PG_VERSION=15
ARG PG_VERSION
# Set up iamge to copy trunk from.
FROM quay.io/tembo/trunk-test-tembo:f3b2a28-pg15 AS trunk
FROM quay.io/coredb/c-builder:pg${PG_VERSION}
USER root

USER root
RUN apt-get update && \
apt-get install -y \
libgeos-dev \
Expand All @@ -12,25 +14,15 @@ RUN apt-get update && \
libgsl-dev \
libjson-c-dev

# Download and build PostGIS
RUN wget https://download.osgeo.org/postgis/source/postgis-3.4.0.tar.gz && \
tar xvf postgis-3.4.0.tar.gz && \
cd postgis-3.4.0 && \
./configure && \
make && \
make install

# Clone repository
RUN git clone https://github.com/MobilityDB/MobilityDB

# Set project version
ARG RELEASE=v1.1.0rc1
# Install trunk
COPY --from=trunk /usr/bin/trunk /usr/bin/trunk

# Build extension
RUN cd MobilityDB && \
git fetch origin ${RELEASE} && \
git checkout ${RELEASE} && \
mkdir build && \
cd build && \
cmake .. && \
make
# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
RUN trunk install postgis \
&& git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \
&& mkdir -p ${EXTENSION_NAME}/build \
&& cd ${EXTENSION_NAME}/build \
&& cmake .. \
&& make
10 changes: 4 additions & 6 deletions contrib/mobilitydb/Trunk.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[extension]
name = "mobilitydb"
version = "1.1.0"
version = "1.2.0"
repository = "https://github.com/MobilityDB/MobilityDB"
license = "PostgreSQL"
description = "Geospatial trajectory data management."
Expand All @@ -10,12 +10,10 @@ categories = ["data_transformations"]
loadable_libraries = [{ library_name = "postgis-3", requires_restart = true }]

[dependencies]
apt = ["libc6", "libgsl-dev"]
apt = ["libc6", "libgsl-dev"]

[build]
postgres_version = "15"
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd MobilityDB/build && make install
"""
install_command = "make -C mobilitydb/build install"
28 changes: 10 additions & 18 deletions contrib/multicorn/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Set the PostgreSQL version
ARG PG_VERSION=17
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}
USER root

# Extension build dependencies
USER root
RUN apt-get update && apt-get install -y \
build-essential \
libreadline-dev \
Expand All @@ -22,19 +22,11 @@ RUN apt-get update && apt-get install -y \
python3-pip && \
apt-get clean && rm -rf /var/lib/apt/lists/*

# Clone repository
RUN git clone https://github.com/postgres/postgres.git

# Use argument to specify PostgreSQL release
ARG PG_RELEASE=REL_17_2

# Configure and build PostgreSQL
RUN cd postgres && \
git fetch origin ${PG_RELEASE} && \
git checkout ${PG_RELEASE} && \
./configure && \
cd contrib && \
wget https://github.com/pgsql-io/multicorn2/archive/refs/tags/v3.0.tar.gz && \
tar -xvf v3.0.tar.gz && \
cd multicorn2-3.0 && \
make
# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
RUN RELEASE="$(perl -e 'print shift =~ s/[.]0$//r' "${EXTENSION_VERSION}")" \
&& wget "https://github.com/pgsql-io/${EXTENSION_NAME}2/archive/refs/tags/v${RELEASE}.tar.gz" \
&& tar -xvf "v${RELEASE}.tar.gz" \
&& mv "${EXTENSION_NAME}2-${RELEASE}" "${EXTENSION_NAME}" \
&& make -C "${EXTENSION_NAME}"
7 changes: 1 addition & 6 deletions contrib/multicorn/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,4 @@ categories = ["connectors"]
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd postgres/contrib/multicorn2-3.0 && make install
set -x
mv /usr/local/pgsql/share/extension/* /usr/share/postgresql/15/extension
mv /usr/local/pgsql/lib/* /usr/lib/postgresql/15/lib
"""
install_command = "make -C multicorn install"
18 changes: 6 additions & 12 deletions contrib/ora_migrator/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,9 @@
# Set PostgreSQL version
ARG PG_VERSION=15
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}

# Clone repository
RUN git clone https://github.com/cybertec-postgresql/ora_migrator.git

# Set project version
ARG RELEASE=RELEASE_1_0_0

# Build extension
RUN cd ora_migrator && \
git fetch origin ${RELEASE} && \
git checkout ${RELEASE} && \
make
# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
RUN git clone --depth 1 --branch "RELEASE_$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/cybertec-postgresql/${EXTENSION_NAME}.git \
&& make -C ${EXTENSION_NAME}
9 changes: 2 additions & 7 deletions contrib/ora_migrator/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,7 @@ documentation = "https://github.com/cybertec-postgresql/ora_migrator"
categories = ["connectors"]

[build]
postgres_version = "15"
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd ora_migrator && make install
set -x
mv /usr/local/pgsql/share/extension/* /usr/share/postgresql/15/extension
mv /usr/local/pgsql/lib/* /usr/lib/postgresql/15/lib
"""
install_command = "make -C ora_migrator install"
52 changes: 21 additions & 31 deletions contrib/oracle_fdw/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
ARG PG_VERSION=15
FROM quay.io/coredb/c-builder:pg${PG_VERSION} as build
USER root
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}

# Extension build dependencies
USER root
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libreadline-dev \
Expand All @@ -17,32 +17,22 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
ccache \
libaio1 \
unzip \
wget && \
rm -rf /var/lib/apt/lists/*

# Download and unpack Oracle Instant Client (Basic and SDK)
RUN mkdir /opt/oracle && \
wget -q https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-basiclite-linux.x64-19.8.0.0.0dbru.zip && \
wget -q https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip && \
unzip instantclient-basiclite-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle && \
unzip instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle && \
rm instantclient-basiclite-linux.x64-19.8.0.0.0dbru.zip instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip && \
echo /opt/oracle/instantclient_19_8 > /etc/ld.so.conf.d/oracle-instantclient.conf && \
ldconfig && \
ln -sf /opt/oracle/instantclient_19_8/libclntsh.so.19.1 /opt/oracle/instantclient_19_8/libclntsh.so

# Clone repository
RUN git clone https://github.com/postgres/postgres.git

ARG PG_RELEASE=REL_15_3

# Build extension
RUN cd postgres && \
git fetch origin ${PG_RELEASE} && \
git checkout ${PG_RELEASE} && \
./configure --without-ldap && \
cd contrib && \
git clone https://github.com/laurenz/oracle_fdw.git && \
cd oracle_fdw && \
make ORACLE_HOME=/opt/oracle/instantclient_19_8 USE_PGXS=1
wget \
&& rm -rf /var/lib/apt/lists/* \
# Download and unpack Oracle Instant Client (Basic and SDK)
&& mkdir /opt/oracle \
&& wget -q https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-basiclite-linux.x64-19.8.0.0.0dbru.zip \
&& wget -q https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip \
&& unzip instantclient-basiclite-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle \
&& unzip instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle \
&& rm instantclient-basiclite-linux.x64-19.8.0.0.0dbru.zip instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip \
&& echo /opt/oracle/instantclient_19_8 > /etc/ld.so.conf.d/oracle-instantclient.conf \
&& ldconfig \
&& ln -sf /opt/oracle/instantclient_19_8/libclntsh.so.19.1 /opt/oracle/instantclient_19_8/libclntsh.so

# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
ARG RELEASE=ORACLE_FDW_2_7_0
RUN git clone --depth 1 --branch "${RELEASE}" https://github.com/laurenz/${EXTENSION_NAME}.git \
&& make -C ${EXTENSION_NAME} ORACLE_HOME=/opt/oracle/instantclient_19_8 USE_PGXS=1
9 changes: 2 additions & 7 deletions contrib/oracle_fdw/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,7 @@ categories = ["connectors"]
apt = ["libc6"]

[build]
postgres_version = "15"
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd postgres/contrib/oracle_fdw && make USE_PGXS=1 install
set -x
mv /usr/local/pgsql/share/extension/* /usr/share/postgresql/15/extension
mv /usr/local/pgsql/lib/* /usr/lib/postgresql/15/lib
"""
install_command = "make -C oracle_fdw install USE_PGXS=1"
16 changes: 6 additions & 10 deletions contrib/orafce/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
ARG PG_VERSION=15
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}

# Clone repository
RUN git clone https://github.com/orafce/orafce.git

ARG RELEASE=VERSION_4_4_0

RUN cd orafce && \
git fetch origin ${RELEASE} && \
git checkout ${RELEASE} && \
make
# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
RUN git clone --depth 1 --branch "VERSION_$(perl -E 'print shift =~ s/\./_/gr' "${EXTENSION_VERSION}")" https://github.com/${EXTENSION_NAME}/${EXTENSION_NAME}.git \
&& make -C ${EXTENSION_NAME}
9 changes: 2 additions & 7 deletions contrib/orafce/Trunk.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[extension]
name = "orafce"
version = "4.4.0"
version = "4.14.0"
repository = "https://github.com/orafce/orafce"
license = "0BSD"
description = "Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS."
Expand All @@ -14,9 +14,4 @@ apt = ["libc6"]
postgres_version = "15"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd orafce && make install
set -x
mv /usr/local/pgsql/share/extension/* /usr/share/postgresql/15/extension
mv /usr/local/pgsql/lib/* /usr/lib/postgresql/15/lib
"""
install_command = "make -C orafce install"
16 changes: 6 additions & 10 deletions contrib/periods/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
ARG PG_VERSION=15
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}

# Clone repository
RUN git clone https://github.com/xocolatl/periods.git

ARG RELEASE=v1.2.2

RUN cd periods && \
git fetch origin ${RELEASE} && \
git checkout ${RELEASE} && \
make
# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/xocolatl/${EXTENSION_NAME}.git \
&& make -C ${EXTENSION_NAME}
11 changes: 3 additions & 8 deletions contrib/periods/Trunk.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[extension]
name = "periods"
version = "1.2.0"
version = "1.2.2"
repository = "https://github.com/xocolatl/periods"
license = "PostgreSQL"
description = "This extension recreates the behavior defined in SQL:2016 (originally in SQL:2011) around periods and tables with SYSTEM VERSIONING."
Expand All @@ -11,12 +11,7 @@ categories = ["data_transformations"]
apt = ["libc6"]

[build]
postgres_version = "15"
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd periods && make install
set -x
mv /usr/local/pgsql/share/extension/* /usr/share/postgresql/15/extension
mv /usr/local/pgsql/lib/* /usr/lib/postgresql/15/lib
"""
install_command = "make -C periods install"
19 changes: 6 additions & 13 deletions contrib/permuteseq/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@
# Set PostgreSQL version
ARG PG_VERSION=15
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}
USER root

# Clone repository
RUN git clone https://github.com/dverite/permuteseq.git

ARG RELEASE=v1.2.2

# Build extension
RUN cd permuteseq && \
git fetch origin ${RELEASE} && \
git checkout ${RELEASE} && \
make

# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/dverite/${EXTENSION_NAME}.git \
&& make -C ${EXTENSION_NAME}
9 changes: 2 additions & 7 deletions contrib/permuteseq/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,7 @@ description = "Pseudo-randomly permute sequences with a format-preserving encryp
categories = ["analytics"]

[build]
postgres_version = "15"
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd permuteseq && make install
set -x
mv /usr/local/pgsql/share/extension/* /usr/share/postgresql/15/extension
mv /usr/local/pgsql/lib/* /usr/lib/postgresql/15/lib
"""
install_command = "make -C permuteseq install"
11 changes: 11 additions & 0 deletions contrib/pg_base36/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}

ARG EXTENSION_NAME
ARG EXTENSION_VERSION

# Extension build dependencies
RUN curl -O https://api.pgxn.org/dist/base36/${EXTENSION_VERSION}/base36-${EXTENSION_VERSION}.zip \
&& unzip base36-${EXTENSION_VERSION}.zip \
&& cd base36-${EXTENSION_VERSION} && make
WORKDIR /app/base36-${EXTENSION_VERSION}
Loading

0 comments on commit ec1c8c3

Please sign in to comment.