Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pg_rrule for openSUSE:Factory checked in at 2025-12-20 21:47:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pg_rrule (Old) and /work/SRC/openSUSE:Factory/.pg_rrule.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pg_rrule" Sat Dec 20 21:47:18 2025 rev:2 rq:1323816 version:0.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/pg_rrule/pg_rrule.changes 2025-09-16 18:19:52.506825591 +0200 +++ /work/SRC/openSUSE:Factory/.pg_rrule.new.1928/pg_rrule.changes 2025-12-20 21:50:04.500093764 +0100 @@ -1,0 +2,20 @@ +Sat Dec 20 15:59:52 UTC 2025 - Dominik George <[email protected]> + +- Update to new upstream version 0.3.1 + + Fixes a SEGFAULT when storing RRULE types. + + remove test-create-extension.patch, applied upstream + + remove fix_testsuite.patch, applied upstream + + remove fix_make_install.patch, applied upstream + + remove fix_regress_opts.patch, applied upstream + +------------------------------------------------------------------- +Thu Sep 25 16:18:03 UTC 2025 - Marcus Rueckert <[email protected]> + +- enable pg 18 + +------------------------------------------------------------------- +Thu Sep 18 10:06:44 UTC 2025 - Dominik George <[email protected]> + +- Fix typo in description + +------------------------------------------------------------------- Old: ---- fix_make_install.patch fix_regress_opts.patch fix_testsuite.patch pg-rrule_0.2.0+git20211101.d7d10f2.orig.tar.gz test-create-extension.patch New: ---- 0.3.1.tar.gz ----------(Old B)---------- Old: + remove fix_testsuite.patch, applied upstream + remove fix_make_install.patch, applied upstream + remove fix_regress_opts.patch, applied upstream Old: + remove fix_make_install.patch, applied upstream + remove fix_regress_opts.patch, applied upstream Old: + remove test-create-extension.patch, applied upstream + remove fix_testsuite.patch, applied upstream + remove fix_make_install.patch, applied upstream Old: + Fixes a SEGFAULT when storing RRULE types. + remove test-create-extension.patch, applied upstream + remove fix_testsuite.patch, applied upstream ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pg_rrule.spec ++++++ --- /var/tmp/diff_new_pack.Jao3SL/_old 2025-12-20 21:50:05.192122414 +0100 +++ /var/tmp/diff_new_pack.Jao3SL/_new 2025-12-20 21:50:05.192122414 +0100 @@ -35,17 +35,13 @@ %pg_server_requires %endif BuildRequires: libical-devel -Version: 0.2.0+git20211101.d7d10f2 +Version: 0.3.1 Release: 0 -Summary: RULE data type for PostgreSQL +Summary: RRULE data type for PostgreSQL License: MIT Group: Productivity/Databases/Tools -URL: https://github.com/petropavel13/pg_rrule -Source: https://deb.debian.org/debian/pool/main/p/pg-rrule/pg-rrule_0.2.0+git20211101.d7d10f2.orig.tar.gz -Patch0: https://sources.debian.org/data/main/p/pg-rrule/0.2.0%2Bgit20211101.d7d10f2-3/debian/patches/fix_make_install.patch -Patch1: https://sources.debian.org/data/main/p/pg-rrule/0.2.0%2Bgit20211101.d7d10f2-3/debian/patches/fix_regress_opts.patch -Patch2: https://sources.debian.org/data/main/p/pg-rrule/0.2.0%2Bgit20211101.d7d10f2-3/debian/patches/fix_testsuite.patch -Patch3: https://sources.debian.org/data/main/p/pg-rrule/0.2.0%2Bgit20211101.d7d10f2-3/debian/patches/test-create-extension.patch +URL: https://github.com/Natureshadow/pg_rrule +Source: https://github.com/Natureshadow/pg_rrule/archive/refs/tags/%{version}.tar.gz %description pg-rrule can expand recurrence rules (RRULE) as defined in the @@ -54,7 +50,7 @@ against. %prep -%autosetup -p1 -n %{ext_name}-master +%autosetup -p1 -n %{ext_name}-%{version} %build %make_pgxs ++++++ pg-rrule_0.2.0+git20211101.d7d10f2.orig.tar.gz -> 0.3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pg_rrule-master/Makefile new/pg_rrule-0.3.1/Makefile --- old/pg_rrule-master/Makefile 2021-11-01 14:49:51.000000000 +0100 +++ new/pg_rrule-0.3.1/Makefile 2025-12-20 17:07:27.000000000 +0100 @@ -5,7 +5,7 @@ DOCS = $(wildcard doc/*.md) TESTS = $(wildcard test/sql/*.sql) REGRESS = $(patsubst test/sql/%.sql,%,$(TESTS)) -REGRESS_OPTS = --inputdir=test --load-language=plpgsql +REGRESS_OPTS = --inputdir=test # # Uncoment the MODULES line if you are adding C files # to your extention. @@ -21,15 +21,18 @@ sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql cp $< $@ -DATA = $(wildcard sql/*--*.sql) sql/$(EXTENSION)--$(EXTVERSION).sql +DATA = sql/$(EXTENSION)--$(EXTVERSION).sql EXTRA_CLEAN = sql/$(EXTENSION)--$(EXTVERSION).sql endif PGXS := $(shell $(PG_CONFIG) --pgxs) include $(PGXS) -src/pg_rrule.o: CFLAGS += $(shell pkg-config --cflags libical) +src/pg_rrule.o: CFLAGS += $(shell pkg-config --cflags libical) # for debug: -g3 -ggdb3 pg_rrule.so: SHLIB_LINK += $(shell pkg-config --libs libical) +# Avoid copying the same file twice +DATA := $(sort $(DATA)) + sql/pg_rrule.sql: sql/pg_rrule.sql.in sed 's,MODULE_PATHNAME,$$libdir/$(@:sql/%.sql=%),g' $< >$@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pg_rrule-master/pg_rrule.control new/pg_rrule-0.3.1/pg_rrule.control --- old/pg_rrule-master/pg_rrule.control 2021-11-01 14:49:51.000000000 +0100 +++ new/pg_rrule-0.3.1/pg_rrule.control 2025-12-20 17:07:27.000000000 +0100 @@ -1,5 +1,5 @@ # pg_rrule extension comment = 'RRULE field type for PostgreSQL' -default_version = '0.2.0' +default_version = '0.3.0' relocatable = true module_pathname = '$libdir/pg_rrule' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pg_rrule-master/sql/pg_rrule.sql.in new/pg_rrule-0.3.1/sql/pg_rrule.sql.in --- old/pg_rrule-master/sql/pg_rrule.sql.in 2021-11-01 14:49:51.000000000 +0100 +++ new/pg_rrule-0.3.1/sql/pg_rrule.sql.in 2025-12-20 17:07:27.000000000 +0100 @@ -26,7 +26,7 @@ CREATE TYPE rrule ( input = rrule_in, output = rrule_out, - internallength = 2760 -- TODO: check sizeof(icalrecurrencetype) on 32-bit machine + internallength = 2896 -- CRITICAL: Must match the size of 'icalrecurrencetype' in the current version of libical. cf ASSERT in pg_rrule.c ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pg_rrule-master/src/pg_rrule.c new/pg_rrule-0.3.1/src/pg_rrule.c --- old/pg_rrule-master/src/pg_rrule.c 2021-11-01 14:49:51.000000000 +0100 +++ new/pg_rrule-0.3.1/src/pg_rrule.c 2025-12-20 17:07:27.000000000 +0100 @@ -32,9 +32,39 @@ errmsg("Invalid RRULE frequency. RRULE \"%s\".", rrule_str))); } + // Need to copy result to palloc'd memory struct icalrecurrencetype* recurrence_ref = palloc(sizeof(struct icalrecurrencetype)); - - (*recurrence_ref) = recurrence; + memcpy(recurrence_ref, &recurrence, sizeof(struct icalrecurrencetype)); + + // Be sure to copy the strings using the pstrdup function + if (recurrence.rscale) { + recurrence_ref->rscale = pstrdup(recurrence.rscale); + } + + // TODO: do we also need to copy the zone? + // Tried the below but 'icaltimezone' is an opaque type and we can't access the size + // + // if (recurrence.until.zone) { + // struct icaltimezone* cloned_zone = palloc(sizeof(struct icaltimezone)); + // memcpy(cloned_zone, recurrence.until.zone, sizeof(struct icaltimezone)); + // recurrence_ref->until.zone = cloned_zone; + // } + + // log_recurrence(recurrence_ref); + + // Below is a critical assert, + // to be sure the size of icalrecurrencetype in the current version of libical + // matches the size of the custom RRULE type defined in pg_rrule/sql/pg_rrule.sql.in + // + // CREATE TYPE rrule ( + // input = rrule_in, + // output = rrule_out, + // internallength = 2896 + // ); + // + // If a new version of libical changes the size of icalrecurrencetype, we need to fail here + // so that we are aware of the change. + assert(sizeof(struct icalrecurrencetype)==2896); PG_RETURN_POINTER(recurrence_ref); } @@ -127,8 +157,9 @@ Datum pg_rrule_get_occurrences_dtstart_until(PG_FUNCTION_ARGS) { struct icalrecurrencetype* recurrence_ref = (struct icalrecurrencetype*)PG_GETARG_POINTER(0); + Timestamp dtstart_ts = PG_GETARG_TIMESTAMP(1); - Timestamp until_ts = PG_GETARG_TIMESTAMPTZ(2); + Timestamp until_ts = PG_GETARG_TIMESTAMP(2); pg_time_t dtstart_ts_pg_time_t = timestamptz_to_time_t(dtstart_ts); pg_time_t until_ts_pg_time_t = timestamptz_to_time_t(until_ts); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pg_rrule-master/test/expected/base.out new/pg_rrule-0.3.1/test/expected/base.out --- old/pg_rrule-master/test/expected/base.out 2021-11-01 14:49:51.000000000 +0100 +++ new/pg_rrule-0.3.1/test/expected/base.out 2025-12-20 17:07:27.000000000 +0100 @@ -1,19 +1,18 @@ -\set ECHO 0 - +\set ECHO errors SELECT 'FREQ=WEEKLY;INTERVAL=1;WKST=MO;UNTIL=20200101T045102Z'::rrule; - rrule + rrule ------------------------------------ FREQ=WEEKLY;UNTIL=20200101T045102Z (1 row) SELECT get_byday('FREQ=WEEKLY;INTERVAL=1;WKST=MO;UNTIL=20200101T045102Z;BYDAY=MO,TH,SU'::rrule); - get_byday + get_byday ----------- {2,5,1} (1 row) SELECT get_freq('FREQ=WEEKLY;INTERVAL=1;WKST=MO;UNTIL=20200101T045102Z'::rrule); - get_freq + get_freq ---------- WEEKLY (1 row) @@ -23,12 +22,13 @@ get_occurrences('FREQ=WEEKLY;INTERVAL=1;WKST=MO;UNTIL=20200101T045102Z;BYDAY=SA;BYHOUR=10;BYMINUTE=51;BYSECOND=2'::rrule, '2019-12-07 10:51:02+00'::timestamp with time zone) ); - unnest ------------------------- - 2019-12-07 10:51:02+00 - 2019-12-14 10:51:02+00 - 2019-12-21 10:51:02+00 - 2019-12-28 10:51:02+00 +WARNING: Can't get timezone from current session! Fallback to UTC. + unnest +------------------------------ + Sat Dec 07 02:51:02 2019 PST + Sat Dec 14 02:51:02 2019 PST + Sat Dec 21 02:51:02 2019 PST + Sat Dec 28 02:51:02 2019 PST (4 rows) SELECT * FROM @@ -36,12 +36,28 @@ get_occurrences('FREQ=WEEKLY;INTERVAL=1;WKST=MO;UNTIL=20200101T045102Z;BYDAY=SA;BYHOUR=10;BYMINUTE=51;BYSECOND=2'::rrule, '2019-12-07 10:51:02'::timestamp) ); - unnest ---------------------- - 2019-12-07 10:51:02 - 2019-12-14 10:51:02 - 2019-12-21 10:51:02 - 2019-12-28 10:51:02 + unnest +-------------------------- + Sat Dec 07 10:51:02 2019 + Sat Dec 14 10:51:02 2019 + Sat Dec 21 10:51:02 2019 + Sat Dec 28 10:51:02 2019 (4 rows) +WITH occurrences AS ( + SELECT unnest( + get_occurrences( + 'FREQ=DAILY;BYHOUR=09;'::rrule, + '2024-05-25 00:00:00'::timestamp, + '2024-05-27 00:00:00'::timestamp + ) + ) as occ +) +SELECT * FROM occurrences; + occ +-------------------------- + Sat May 25 09:00:00 2024 + Sun May 26 09:00:00 2024 +(2 rows) + ROLLBACK; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pg_rrule-master/test/sql/base.sql new/pg_rrule-0.3.1/test/sql/base.sql --- old/pg_rrule-master/test/sql/base.sql 2021-11-01 14:49:51.000000000 +0100 +++ new/pg_rrule-0.3.1/test/sql/base.sql 2025-12-20 17:07:27.000000000 +0100 @@ -1,6 +1,6 @@ -\set ECHO 0 +\set ECHO errors BEGIN; -\i sql/pg_rrule.sql +CREATE EXTENSION pg_rrule; \set ECHO all SELECT 'FREQ=WEEKLY;INTERVAL=1;WKST=MO;UNTIL=20200101T045102Z'::rrule; @@ -21,4 +21,15 @@ '2019-12-07 10:51:02'::timestamp) ); +WITH occurrences AS ( + SELECT unnest( + get_occurrences( + 'FREQ=DAILY;BYHOUR=09;'::rrule, + '2024-05-25 00:00:00'::timestamp, + '2024-05-27 00:00:00'::timestamp + ) + ) as occ +) +SELECT * FROM occurrences; + ROLLBACK; ++++++ _multibuild ++++++ --- /var/tmp/diff_new_pack.Jao3SL/_old 2025-12-20 21:50:05.356129203 +0100 +++ /var/tmp/diff_new_pack.Jao3SL/_new 2025-12-20 21:50:05.368129700 +0100 @@ -4,5 +4,6 @@ <package>postgresql15</package> <package>postgresql16</package> <package>postgresql17</package> + <package>postgresql18</package> </multibuild>
