Skip to content

Commit

Permalink
Update these extensions for Postgres 17:
Browse files Browse the repository at this point in the history
*   pg_html5_email_address
*   redis_fdw

*   Upgrade these extensions:

*   pg_html5_email_address v1.2.3
*   pg_jsonschema v0.3.3

Refactor build scripting for these extensions:

*   aggs_for_vecs
*   chkpass
*   pg_analytics
*   pg_cron
*   pg_graphql
*   pg_html5_email_address
*   pg_search
*   redis_fdw

Add configuration for pg_jsonschema, which was previously published
manually.
  • Loading branch information
theory committed Dec 18, 2024
1 parent 97bdae7 commit 0a7ab62
Show file tree
Hide file tree
Showing 17 changed files with 107 additions and 136 deletions.
18 changes: 6 additions & 12 deletions contrib/aggs_for_vecs/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,9 @@
# Set PostgreSQL version
ARG PG_VERSION=17
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}

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

# Set project version
ARG RELEASE=v1.3.2

# Build extension
RUN cd aggs_for_vecs && \
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/pjungwir/${EXTENSION_NAME}.git \
&& make -C ${EXTENSION_NAME}
7 changes: 1 addition & 6 deletions contrib/aggs_for_vecs/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,4 @@ apt = ["libc6"]
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd aggs_for_vecs && 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 aggs_for_vecs install"
14 changes: 8 additions & 6 deletions contrib/chkpass/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
ARG PG_VERSION=17
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}

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

RUN cd chkpass && \
make
ARG EXTENSION_NAME
# ARG EXTENSION_VERSION
ARG RELEASE=87159fd
RUN git clone https://github.com/lacanoid/${EXTENSION_NAME}.git \
&& cd ${EXTENSION_NAME} \
&& git checkout ${RELEASE} \
&& make
7 changes: 1 addition & 6 deletions contrib/chkpass/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,4 @@ apt = ["libcrypt1", "libc6"]
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd chkpass && 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 chkpass install"
2 changes: 1 addition & 1 deletion contrib/pg_analytics/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ARG PG_VERSION=17
ARG PG_VERSION
FROM quay.io/coredb/pgrx-builder:pg${PG_VERSION}-pgrx0.12.7

USER root
Expand Down
15 changes: 6 additions & 9 deletions contrib/pg_cron/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
ARG PG_VERSION=17
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}
ARG EXTENSION_VERSION=1.6.4

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

RUN cd pg_cron && \
git fetch origin v${EXTENSION_VERSION} && \
git checkout v${EXTENSION_VERSION} && \
make
# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
RUN git clone --depth 1 --branch "v${EXTENSION_VERSION}" https://github.com/citusdata/${EXTENSION_NAME}.git \
&& make -C ${EXTENSION_NAME}
2 changes: 1 addition & 1 deletion contrib/pg_cron/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ apt = ["libpq5", "libc6"]
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = "cd pg_cron && make install"
install_command = "make -C pg_cron install"
26 changes: 11 additions & 15 deletions contrib/pg_graphql/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
ARG PG_VERSION=17

ARG PG_VERSION
FROM quay.io/coredb/pgrx-builder:pg${PG_VERSION}-pgrx0.12.6
USER root

ARG PG_VERSION=17
ARG RELEASE=v1.5.9
USER root
RUN apt-get update && apt-get install -y \
# extension build dependencies
build-essential \
Expand All @@ -13,16 +10,15 @@ RUN apt-get update && apt-get install -y \
git \
libpq-dev \
libreadline6-dev \
zlib1g-dev \
# Install Rust
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
# Set default Rust version
zlib1g-dev

ARG PG_VERSION
ARG EXTENSION_NAME
ARG EXTENSION_VERSION

RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
&& /root/.cargo/bin/rustup default stable \
# Download the source
&& git clone https://github.com/supabase/pg_graphql.git \
&& cd pg_graphql \
&& git fetch origin ${RELEASE} \
&& git checkout ${RELEASE} \
# Build the extension
&& git clone --depth 1 --branch v${EXTENSION_VERSION} https://github.com/supabase/${EXTENSION_NAME}.git \
&& cd ${EXTENSION_NAME} \
&& cargo pgrx init --pg${PG_VERSION}=/usr/bin/pg_config \
&& cargo pgrx package
12 changes: 4 additions & 8 deletions contrib/pg_graphql/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,11 @@ homepage = "https://supabase.com"
documentation = "https://supabase.github.io/pg_graphql"
categories = ["data_transformations"]

[dependencies]
apt = ["libc6"]

[build]
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd pg_graphql
mv target/release/pg_graphql-pg17/usr/lib/postgresql/15/lib/* /usr/lib/postgresql/15/lib
mv target/release/pg_graphql-pg17/usr/share/postgresql/15/extension/* /usr/share/postgresql/15/extension
"""

[dependencies]
apt = ["libc6"]
install_command = "cd pg_graphql && cargo pgrx install --release"
20 changes: 8 additions & 12 deletions contrib/pg_html5_email_address/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
# 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/bigsmoke/pg_html5_email_address.git

ARG RELEASE=v1.2.2

# Build extension
RUN cd pg_html5_email_address && \
git fetch origin ${RELEASE} && \
git checkout ${RELEASE} && \
make
ARG EXTENSION_NAME
ARG EXTENSION_VERSION

# Extension build dependencies
RUN curl -O https://api.pgxn.org/dist/${EXTENSION_NAME}/${EXTENSION_VERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \
&& unzip ${EXTENSION_NAME}-${EXTENSION_VERSION}.zip \
&& cd ${EXTENSION_NAME}-${EXTENSION_VERSION} && make
WORKDIR /app/${EXTENSION_NAME}-${EXTENSION_VERSION}
11 changes: 3 additions & 8 deletions contrib/pg_html5_email_address/Trunk.toml
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
[extension]
name = "pg_html5_email_address"
version = "1.2.2"
version = "1.2.3"
repository = "https://github.com/bigsmoke/pg_html5_email_address"
license = "PostgreSQL"
description = "PostgreSQL email validation that is consistent with the HTML5 spec."
categories = ["data_transformations"]

[build]
postgres_version = "15"
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd pg_html5_email_address && 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 install"
14 changes: 14 additions & 0 deletions contrib/pg_jsonschema/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
ARG PG_VERSION
FROM quay.io/coredb/pgrx-builder:pg${PG_VERSION}-pgrx0.12.6

ARG PG_VERSION
ARG EXTENSION_NAME
ARG EXTENSION_VERSION

USER root
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
&& /root/.cargo/bin/rustup default stable \
&& git clone --depth 1 --branch v${EXTENSION_VERSION} https://github.com/supabase/${EXTENSION_NAME}.git \
&& cd ${EXTENSION_NAME} \
&& cargo pgrx init --pg${PG_VERSION}=/usr/bin/pg_config \
&& cargo pgrx package
18 changes: 18 additions & 0 deletions contrib/pg_jsonschema/Trunk.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[extension]
name = "pg_jsonschema"
version = "0.3.3"
repository = "https://github.com/supabase/pg_jsonschema"
license = "Apache-2.0"
description = "PostgreSQL extension providing JSON Schema validation."
homepage = "https://github.com/supabase/pg_jsonschema"
documentation = "https://github.com/supabase/pg_jsonschema/blob/master/README.md"
categories = ["data_transformations"]

[dependencies]
apt = ["libc6"]

[build]
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = "cd pg_jsonschema && cargo pgrx install --release"
35 changes: 12 additions & 23 deletions contrib/pg_search/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,29 +1,18 @@
ARG PG_VERSION=17
ARG PG_VERSION
FROM quay.io/coredb/pgrx-builder:pg${PG_VERSION}-pgrx0.12.5
USER root

# Extension build dependencies
RUN apt-get update && apt-get install -y \
build-essential

# Install Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

# Set default Rust version
RUN /root/.cargo/bin/rustup default 1.82.0-x86_64-unknown-linux-gnu
ARG PG_VERSION=17
USER root
RUN apt-get update && apt-get install -y build-essential

# argument passed in during build and defined in Trunk.toml
ARG PG_VERSION
ARG EXTENSION_NAME
ARG EXTENSION_VERSION

# Clone repository
RUN git clone https://github.com/paradedb/paradedb.git && \
cd paradedb && \
git fetch --tags && \
git fetch --depth 1 origin tag v${EXTENSION_VERSION} && \
git checkout v${EXTENSION_VERSION}

# Build the extension
RUN cd paradedb/pg_search && \
cargo pgrx init --pg${PG_VERSION} /usr/bin/pg_config && \
cargo pgrx package --features icu
# Install Rust and build the extension.
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
&& /root/.cargo/bin/rustup default stable \
&& git clone --depth 1 --branch v${EXTENSION_VERSION} https://github.com/paradedb/paradedb.git \
&& cd paradedb/${EXTENSION_NAME} \
&& cargo pgrx init --pg${PG_VERSION}=/usr/bin/pg_config \
&& cargo pgrx package --features icu
6 changes: 1 addition & 5 deletions contrib/pg_search/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,4 @@ apt = ["libc6"]
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd paradedb/
mv target/release/pg_search-pg17/usr/lib/postgresql/15/lib/* /usr/lib/postgresql/15/lib
mv target/release/pg_search-pg17/usr/share/postgresql/15/extension/* /usr/share/postgresql/15/extension
"""
install_command = "cd paradedb/pg_search && cargo pgrx install --release --features icu"
27 changes: 10 additions & 17 deletions contrib/redis_fdw/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,21 +1,14 @@
# Set PostgreSQL version
ARG PG_VERSION=15
ARG PG_VERSION
FROM quay.io/coredb/c-builder:pg${PG_VERSION}
USER root

# Extension build dependencies
RUN apt-get update && apt-get install -y \
libhiredis-dev

# Clone repository
RUN git clone https://github.com/pg-redis-fdw/redis_fdw.git

ARG PG_VERSION=15
# Set project version
ARG RELEASE=REL_${PG_VERSION}_STABLE

# Build extension
RUN cd redis_fdw && \
git fetch origin ${RELEASE} && \
git checkout ${RELEASE} && \
make
USER root
RUN apt-get update && apt-get install -y libhiredis-dev

# Clone and build the extension.
ARG EXTENSION_NAME
ARG EXTENSION_VERSION
ARG PG_VERSION
RUN git clone --depth 1 --branch "REL_${PG_VERSION}_STABLE" https://github.com/pg-redis-fdw/${EXTENSION_NAME}.git \
&& make -C ${EXTENSION_NAME}
9 changes: 2 additions & 7 deletions contrib/redis_fdw/Trunk.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,7 @@ categories = ["connectors"]
apt = ["libc6", "libhiredis0.14"]

[build]
postgres_version = "15"
postgres_version = "17"
platform = "linux/amd64"
dockerfile = "Dockerfile"
install_command = """
cd redis_fdw && 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 redis_fdw install"

0 comments on commit 0a7ab62

Please sign in to comment.