On Tue, Aug 29, 2023 at 03:18:26PM +0200, Bastian Germann wrote: > On Tue, 31 Jan 2023 21:36:46 +0800 Bo YU <tsu.y...@gmail.com> wrote: > > The upstream has tried to switch pcre2[0], but the backporting is > > not easy, so maybe waiting a new release is good iead. > > I have started a backport in git but there is at least one linker > flag missing.
That's right; the attached patch makes the build succeed for me but I have not tested further (sorry for the patch noise; it's because I had to "quilt refresh").
>From 2b6f55b4d9f476646072d2be197b4fc1defcf7ac Mon Sep 17 00:00:00 2001 From: Yavor Doganov <ya...@gnu.org> Date: Thu, 21 Dec 2023 19:20:23 +0200 Subject: [PATCH] pcre2.patch: Add missing linker flag; refresh --- debian/patches/pcre2.patch | 81 +++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 44 deletions(-) diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch index 9d012bb..031b6a7 100644 --- a/debian/patches/pcre2.patch +++ b/debian/patches/pcre2.patch @@ -6,11 +6,9 @@ Subject: Update pcre 8.44 -> pcre2 10.42 libpcre is no longer maintained, and was replaced by libpcre2. This requires some minor API changes. --- -diff --git a/Tupfile b/Tupfile -index 107c81cca..cc6ed1ce5 100644 ---- a/Tupfile -+++ b/Tupfile -@@ -30,7 +30,7 @@ srcs += src/sqlite3/*.o +--- tup.orig/Tupfile ++++ tup/Tupfile +@@ -30,7 +30,7 @@ endif ifeq ($(use_system_pcre),y) @@ -19,11 +17,9 @@ index 107c81cca..cc6ed1ce5 100644 else srcs += src/pcre/*.o endif -diff --git a/Tuprules.tup b/Tuprules.tup -index 3cdab0ffc..a7fd6cb66 100644 ---- a/Tuprules.tup -+++ b/Tuprules.tup -@@ -99,7 +99,7 @@ else +--- tup.orig/Tuprules.tup ++++ tup/Tuprules.tup +@@ -89,7 +89,7 @@ use_system_pcre = $(TUP_USE_SYSTEM_PCRE) endif ifeq ($(use_system_pcre),y) @@ -32,11 +28,18 @@ index 3cdab0ffc..a7fd6cb66 100644 else CFLAGS += -I$(TUP_CWD)/src/pcre CFLAGS += -DPCRE_STATIC -diff --git a/build.sh b/build.sh -index 7fecb8914..6ac7041e6 100755 ---- a/build.sh -+++ b/build.sh -@@ -80,6 +80,7 @@ mkdir luabuiltin +--- tup.orig/build.sh ++++ tup/build.sh +@@ -27,7 +27,7 @@ + echo "Error: invalid TUP_SERVER \"$server\"" 1>&2 + exit 1 + fi +-LDFLAGS="$LDFLAGS -lm" ++LDFLAGS="$LDFLAGS -lm -lpcre2-8" + : ${CC:=gcc} + case "$os" in + Linux) +@@ -80,6 +80,7 @@ ./lua ../src/luabuiltin/xxd.lua builtin.lua luabuiltin/luabuiltin.h CFLAGS="$CFLAGS -DTUP_SERVER=\"$server\"" @@ -44,11 +47,9 @@ index 7fecb8914..6ac7041e6 100755 CFLAGS="$CFLAGS -DHAVE_CONFIG_H" for i in ../src/tup/*.c ../src/tup/tup/main.c ../src/tup/monitor/null.c ../src/tup/flock/fcntl.c ../src/inih/ini.c ../src/pcre/*.c $plat_files; do -diff --git a/src/tup/entry.c b/src/tup/entry.c -index 90e1b80c0..96842bc4b 100644 ---- a/src/tup/entry.c -+++ b/src/tup/entry.c -@@ -151,7 +151,7 @@ static int rm_entry(tupid_t tupid, int safe) +--- tup.orig/src/tup/entry.c ++++ tup/src/tup/entry.c +@@ -151,7 +151,7 @@ string_tree_rm(&tent->parent->entries, &tent->name); } if(tent->re) { @@ -57,7 +58,7 @@ index 90e1b80c0..96842bc4b 100644 } free_tent_tree(&tent->stickies); free_tent_tree(&tent->group_stickies); -@@ -504,11 +504,13 @@ static struct tup_entry *new_entry(tupid_t tupid, tupid_t dt, +@@ -473,11 +473,13 @@ RB_INIT(&tent->entries); if(tent->dt == exclusion_dt()) { @@ -75,7 +76,7 @@ index 90e1b80c0..96842bc4b 100644 return NULL; } } else { -@@ -795,14 +797,16 @@ int exclusion_match(FILE *f, struct tent_entries *exclusion_root, const char *s, +@@ -767,14 +769,16 @@ *match = 0; RB_FOREACH(tt, tent_entries, exclusion_root) { int rc; @@ -95,10 +96,8 @@ index 90e1b80c0..96842bc4b 100644 fprintf(f, "tup error: Regex failed to execute: %s\n", tt->tent->name.s); return -1; } -diff --git a/src/tup/entry.h b/src/tup/entry.h -index 332849842..1b37e077e 100644 ---- a/src/tup/entry.h -+++ b/src/tup/entry.h +--- tup.orig/src/tup/entry.h ++++ tup/src/tup/entry.h @@ -26,9 +26,9 @@ #include "string_tree.h" #include "db_types.h" @@ -110,7 +109,7 @@ index 332849842..1b37e077e 100644 struct variant; struct estring; -@@ -51,7 +51,7 @@ struct tup_entry { +@@ -51,7 +51,7 @@ _Atomic int refcount; /* For exclusions */ @@ -119,11 +118,9 @@ index 332849842..1b37e077e 100644 /* For command strings */ char *flags; -diff --git a/src/tup/parser.c b/src/tup/parser.c -index ce057737f..71ee32c79 100644 ---- a/src/tup/parser.c -+++ b/src/tup/parser.c -@@ -2288,6 +2288,7 @@ struct path_list *new_pl(struct tupfile *tf, const char *s, int len, struct bin_ +--- tup.orig/src/tup/parser.c ++++ tup/src/tup/parser.c +@@ -2235,6 +2235,7 @@ pl->pel = NULL; pl->bin = NULL; pl->re = NULL; @@ -131,7 +128,8 @@ index ce057737f..71ee32c79 100644 memcpy(pl->mem, s, len); pl->mem[len] = 0; pl->orderid = orderid; -@@ -2316,13 +2317,16 @@ struct path_list *new_pl(struct tupfile *tf, const char *s, int len, struct bin_ +@@ -2262,14 +2263,17 @@ + } } else if(p[0] == '^') { /* Exclusion */ - const char *error; @@ -152,7 +150,7 @@ index ce057737f..71ee32c79 100644 } else { /* Path */ if(strchr(p, '<') != NULL) { -@@ -2544,7 +2548,8 @@ void del_pl(struct path_list *pl, struct path_list_head *head) +@@ -2480,7 +2484,8 @@ { TAILQ_REMOVE(head, pl, list); if(pl->re) { @@ -162,7 +160,7 @@ index ce057737f..71ee32c79 100644 } free_pel(pl->pel); free(pl); -@@ -2861,10 +2866,10 @@ static int nl_rm_exclusion(struct tupfile *tf, struct path_list *pl, struct name +@@ -2787,10 +2792,10 @@ TAILQ_FOREACH_SAFE(nle, &nl->entries, list, tmp) { int rc; @@ -176,10 +174,8 @@ index ce057737f..71ee32c79 100644 fprintf(tf->f, "tup error: Regex failed to execute: %s\n", &pl->mem[1]); return -1; } -diff --git a/src/tup/parser.h b/src/tup/parser.h -index 66ada7b0e..220f9d29e 100644 ---- a/src/tup/parser.h -+++ b/src/tup/parser.h +--- tup.orig/src/tup/parser.h ++++ tup/src/tup/parser.h @@ -26,7 +26,7 @@ #include "timespan.h" #include "bin.h" @@ -189,7 +185,7 @@ index 66ada7b0e..220f9d29e 100644 #define TUPLUA_NOERROR 0 #define TUPLUA_PENDINGERROR 1 -@@ -130,7 +130,8 @@ struct path_list { +@@ -127,7 +127,8 @@ struct bin *bin; /* For exclusions: */ @@ -199,11 +195,8 @@ index 66ada7b0e..220f9d29e 100644 /* Copy of the full string */ char mem[0]; -diff --git a/src/tup/tup_pcre.h b/src/tup/tup_pcre.h -new file mode 100644 -index 000000000..37987f6eb --- /dev/null -+++ b/src/tup/tup_pcre.h ++++ tup/src/tup/tup_pcre.h @@ -0,0 +1,28 @@ +/* vim: set ts=8 sw=8 sts=8 noet tw=78: + * -- 2.43.0