From 8c08398a1014b7f8881e9a9c729aed9c3c2679a8 Mon Sep 17 00:00:00 2001 From: "David E. Wheeler" Date: Tue, 17 Dec 2024 19:16:23 -0500 Subject: [PATCH] Update pg_html5_email_address & add pg_jsonschema Also backport install script simplification to pg_analytics, pg_cron, and pg_graphql. --- contrib/pg_analytics/Dockerfile | 2 +- contrib/pg_cron/Dockerfile | 15 ++++++------- contrib/pg_cron/Trunk.toml | 2 +- contrib/pg_graphql/Dockerfile | 26 ++++++++++------------- contrib/pg_graphql/Trunk.toml | 12 ++++------- contrib/pg_html5_email_address/Dockerfile | 20 +++++++---------- contrib/pg_html5_email_address/Trunk.toml | 11 +++------- contrib/pg_jsonschema/Dockerfile | 14 ++++++++++++ contrib/pg_jsonschema/Trunk.toml | 18 ++++++++++++++++ 9 files changed, 66 insertions(+), 54 deletions(-) create mode 100644 contrib/pg_jsonschema/Dockerfile create mode 100644 contrib/pg_jsonschema/Trunk.toml diff --git a/contrib/pg_analytics/Dockerfile b/contrib/pg_analytics/Dockerfile index e6a2d9e2..d79b8fac 100644 --- a/contrib/pg_analytics/Dockerfile +++ b/contrib/pg_analytics/Dockerfile @@ -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 diff --git a/contrib/pg_cron/Dockerfile b/contrib/pg_cron/Dockerfile index 199ff769..c4c6a125 100644 --- a/contrib/pg_cron/Dockerfile +++ b/contrib/pg_cron/Dockerfile @@ -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} diff --git a/contrib/pg_cron/Trunk.toml b/contrib/pg_cron/Trunk.toml index aaabff3e..87885228 100644 --- a/contrib/pg_cron/Trunk.toml +++ b/contrib/pg_cron/Trunk.toml @@ -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" diff --git a/contrib/pg_graphql/Dockerfile b/contrib/pg_graphql/Dockerfile index f1edb371..6154c688 100644 --- a/contrib/pg_graphql/Dockerfile +++ b/contrib/pg_graphql/Dockerfile @@ -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 \ @@ -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 diff --git a/contrib/pg_graphql/Trunk.toml b/contrib/pg_graphql/Trunk.toml index 548e6ea6..498ed859 100644 --- a/contrib/pg_graphql/Trunk.toml +++ b/contrib/pg_graphql/Trunk.toml @@ -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" diff --git a/contrib/pg_html5_email_address/Dockerfile b/contrib/pg_html5_email_address/Dockerfile index 5110ce93..71c912b5 100644 --- a/contrib/pg_html5_email_address/Dockerfile +++ b/contrib/pg_html5_email_address/Dockerfile @@ -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} diff --git a/contrib/pg_html5_email_address/Trunk.toml b/contrib/pg_html5_email_address/Trunk.toml index 5827b181..2240eb34 100644 --- a/contrib/pg_html5_email_address/Trunk.toml +++ b/contrib/pg_html5_email_address/Trunk.toml @@ -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" diff --git a/contrib/pg_jsonschema/Dockerfile b/contrib/pg_jsonschema/Dockerfile new file mode 100644 index 00000000..c8325232 --- /dev/null +++ b/contrib/pg_jsonschema/Dockerfile @@ -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 diff --git a/contrib/pg_jsonschema/Trunk.toml b/contrib/pg_jsonschema/Trunk.toml new file mode 100644 index 00000000..a58f3c16 --- /dev/null +++ b/contrib/pg_jsonschema/Trunk.toml @@ -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"