diff --git a/.github/docker/Dockerfile b/.github/docker/Dockerfile index 1ded689..ea80612 100644 --- a/.github/docker/Dockerfile +++ b/.github/docker/Dockerfile @@ -11,4 +11,4 @@ WORKDIR /src/set_user RUN apt-get update && \ apt-get -y upgrade && \ apt-get -y install postgresql-server-dev-${DEVPKG} make gcc -RUN make USE_PGXS=1 install \ No newline at end of file +RUN make install diff --git a/.github/workflows/regression-tests.yml b/.github/workflows/regression-tests.yml index ca553cc..97bc90e 100644 --- a/.github/workflows/regression-tests.yml +++ b/.github/workflows/regression-tests.yml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - pgver: [9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15] + pgver: [12, 13, 14, 15] steps: - name: Checkout set_user repo diff --git a/.gitignore b/.gitignore index 7e776be..f186ce4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ results # Generated documentation *.pdf + +# Generated extension file +extension/set_user--*.sql diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 0000000..7a7fe6e --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,11 @@ +4.0.1 + +NEW FEATURES +============ + - Reorganized repository structure to allow for easier management of extension files during build process. + - Added NO_PGXS build flag to allow building of extension without PGXS. Restores ability to build on Windows. + - No changes to extension code. + +BUGFIXES +======== + - None diff --git a/Makefile b/Makefile index ff7eb7a..b83eb42 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,19 @@ -MODULES = set_user - EXTENSION = set_user -DATA = set_user--3.0.sql set_user--2.0--3.0.sql set_user--1.6--2.0.sql set_user--1.5--1.6.sql set_user--1.4--1.5.sql set_user--1.1--1.4.sql set_user--1.0--1.1.sql set_user--4.0.0rc1--4.0.0.sql set_user--4.0.0.sql set_user--3.0--4.0.0.sql +EXTVERSION = $(shell grep default_version $(EXTENSION).control | \ + sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/") +LDFLAGS_SL += $(filter -lm, $(LIBS)) +MODULES = src/set_user +PG_CONFIG = pg_config PGFILEDESC = "set_user - similar to SET ROLE but with added logging" - REGRESS = set_user -LDFLAGS_SL += $(filter -lm, $(LIBS)) +all: extension/$(EXTENSION)--$(EXTVERSION).sql + +extension/$(EXTENSION)--$(EXTVERSION).sql: extension/set_user.sql + cat $^ > $@ + +DATA = $(wildcard updates/*--*.sql) extension/$(EXTENSION)--$(EXTVERSION).sql +EXTRA_CLEAN = extension/$(EXTENSION)--$(EXTVERSION).sql ifdef NO_PGXS subdir = contrib/set_user @@ -14,7 +21,6 @@ top_builddir = ../.. include $(top_builddir)/src/Makefile.global include $(top_srcdir)/contrib/contrib-global.mk else -PG_CONFIG = pg_config PGXS := $(shell $(PG_CONFIG) --pgxs) include $(PGXS) endif @@ -25,7 +31,7 @@ install: install-headers install-headers: $(MKDIR_P) "$(DESTDIR)$(includedir)" - $(INSTALL_DATA) "set_user.h" "$(DESTDIR)$(includedir)" + $(INSTALL_DATA) "src/set_user.h" "$(DESTDIR)$(includedir)" uninstall: uninstall-headers diff --git a/set_user--4.0.0.sql b/extension/set_user.sql similarity index 100% rename from set_user--4.0.0.sql rename to extension/set_user.sql diff --git a/set_user--1.6.sql b/set_user--1.6.sql deleted file mode 100644 index 4662d84..0000000 --- a/set_user--1.6.sql +++ /dev/null @@ -1,44 +0,0 @@ -/* set-user--1.6.sql */ - -SET LOCAL search_path to @extschema@; - --- complain if script is sourced in psql, rather than via CREATE EXTENSION -\echo Use "CREATE EXTENSION set_user" to load this file. \quit - -CREATE FUNCTION @extschema@.set_user(text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C; - -CREATE FUNCTION @extschema@.set_user(text, text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C STRICT; - -REVOKE EXECUTE ON FUNCTION @extschema@.set_user(text) FROM PUBLIC; -REVOKE EXECUTE ON FUNCTION @extschema@.set_user(text, text) FROM PUBLIC; - -CREATE FUNCTION @extschema@.reset_user() -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C; - -CREATE FUNCTION @extschema@.reset_user(text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C STRICT; - -GRANT EXECUTE ON FUNCTION @extschema@.reset_user() TO PUBLIC; -GRANT EXECUTE ON FUNCTION @extschema@.reset_user(text) TO PUBLIC; - -/* New functions in 1.1 (now 1.4) begin here */ - -CREATE FUNCTION @extschema@.set_user_u(text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C STRICT; - -REVOKE EXECUTE ON FUNCTION @extschema@.set_user_u(text) FROM PUBLIC; - -/* No new sql functions for 1.5 */ -/* No new sql functions for 1.6 */ diff --git a/set_user--3.0.sql b/set_user--3.0.sql deleted file mode 100644 index c35300a..0000000 --- a/set_user--3.0.sql +++ /dev/null @@ -1,53 +0,0 @@ -/* set-user--3.0.sql */ - -SET LOCAL search_path to @extschema@; - --- complain if script is sourced in psql, rather than via CREATE EXTENSION -\echo Use "CREATE EXTENSION set_user" to load this file. \quit - -CREATE FUNCTION @extschema@.set_user(text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C; - -CREATE FUNCTION @extschema@.set_user(text, text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C STRICT; - -REVOKE EXECUTE ON FUNCTION @extschema@.set_user(text) FROM PUBLIC; -REVOKE EXECUTE ON FUNCTION @extschema@.set_user(text, text) FROM PUBLIC; - -CREATE FUNCTION @extschema@.reset_user() -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C; - -CREATE FUNCTION @extschema@.reset_user(text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C STRICT; - -GRANT EXECUTE ON FUNCTION @extschema@.reset_user() TO PUBLIC; -GRANT EXECUTE ON FUNCTION @extschema@.reset_user(text) TO PUBLIC; - -/* New functions in 1.1 (now 1.4) begin here */ - -CREATE FUNCTION @extschema@.set_user_u(text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_user' -LANGUAGE C STRICT; - -REVOKE EXECUTE ON FUNCTION @extschema@.set_user_u(text) FROM PUBLIC; - -/* No new sql functions for 1.5 */ -/* No new sql functions for 1.6 */ -/* No new sql functions for 2.0 */ - -/* New functions in 3.0 begin here */ - -CREATE FUNCTION @extschema@.set_session_auth(text) -RETURNS text -AS 'MODULE_PATHNAME', 'set_session_auth' -LANGUAGE C STRICT; -REVOKE EXECUTE ON FUNCTION @extschema@.set_session_auth(text) FROM PUBLIC; diff --git a/set_user.control b/set_user.control index fde2d0d..20acd5c 100644 --- a/set_user.control +++ b/set_user.control @@ -1,5 +1,5 @@ # set_user extension comment = 'similar to SET ROLE but with added logging' -default_version = '4.0.0' +default_version = '4.0.1' module_pathname = '$libdir/set_user' relocatable = false diff --git a/compatibility.h b/src/compatibility.h similarity index 100% rename from compatibility.h rename to src/compatibility.h diff --git a/set_user.c b/src/set_user.c similarity index 100% rename from set_user.c rename to src/set_user.c diff --git a/set_user.h b/src/set_user.h similarity index 100% rename from set_user.h rename to src/set_user.h diff --git a/set_user--1.0--1.1.sql b/updates/set_user--1.0--1.1.sql similarity index 100% rename from set_user--1.0--1.1.sql rename to updates/set_user--1.0--1.1.sql diff --git a/set_user--1.1--1.4.sql b/updates/set_user--1.1--1.4.sql similarity index 100% rename from set_user--1.1--1.4.sql rename to updates/set_user--1.1--1.4.sql diff --git a/set_user--1.4--1.5.sql b/updates/set_user--1.4--1.5.sql similarity index 100% rename from set_user--1.4--1.5.sql rename to updates/set_user--1.4--1.5.sql diff --git a/set_user--1.5--1.6.sql b/updates/set_user--1.5--1.6.sql similarity index 100% rename from set_user--1.5--1.6.sql rename to updates/set_user--1.5--1.6.sql diff --git a/set_user--1.6--2.0.sql b/updates/set_user--1.6--2.0.sql similarity index 100% rename from set_user--1.6--2.0.sql rename to updates/set_user--1.6--2.0.sql diff --git a/set_user--2.0--3.0.sql b/updates/set_user--2.0--3.0.sql similarity index 100% rename from set_user--2.0--3.0.sql rename to updates/set_user--2.0--3.0.sql diff --git a/set_user--3.0--4.0.0.sql b/updates/set_user--3.0--4.0.0.sql similarity index 100% rename from set_user--3.0--4.0.0.sql rename to updates/set_user--3.0--4.0.0.sql diff --git a/set_user--3.0--4.0.0rc1.sql b/updates/set_user--3.0--4.0.0rc1.sql similarity index 100% rename from set_user--3.0--4.0.0rc1.sql rename to updates/set_user--3.0--4.0.0rc1.sql diff --git a/updates/set_user--4.0.0--4.0.1.sql b/updates/set_user--4.0.0--4.0.1.sql new file mode 100644 index 0000000..01b538e --- /dev/null +++ b/updates/set_user--4.0.0--4.0.1.sql @@ -0,0 +1,6 @@ +/* set-user--4.0.0--4.0.1.sql */ + +-- complain if script is sourced in psql, rather than via ALTER EXTENSION +\echo Use "ALTER EXTENSION set_user UPDATE" to load this file. \quit + +-- just bumping our version to 4.0.1. no new SQL features here, so nothing to do. diff --git a/set_user--4.0.0rc1--4.0.0.sql b/updates/set_user--4.0.0rc1--4.0.0.sql similarity index 100% rename from set_user--4.0.0rc1--4.0.0.sql rename to updates/set_user--4.0.0rc1--4.0.0.sql diff --git a/set_user--4.0.0rc1.sql b/updates/set_user--4.0.0rc1.sql similarity index 100% rename from set_user--4.0.0rc1.sql rename to updates/set_user--4.0.0rc1.sql