Bug#1075601: unar: ftbfs with GCC-14
Control: tags -1 + patch Hi Alex, Here's a patch fixing this bug. Description: Fix FTBFS with GCC 14. Bug-Debian: https://bugs.debian.org/1075601 Author: Yavor Doganov Forwarded: no Last-Update: 2024-07-03 --- --- unar-1.10.8+ds1.orig/XADRAR5Parser.m +++ unar-1.10.8+ds1/XADRAR5Parser.m @@ -74,12 +74,6 @@ return 8; } -+(BOOL)recognizeFileWithHandle:(CSHandle *)handle firstBytes:(NSData *)data name:(NSString *)name -{ -off_t signatureLocation = [self signatureLocationInData:data]; -return signatureLocation != RAR5SignatureNotFound; -} - + (off_t)signatureLocationInData:(NSData *)data { const uint8_t *bytes=[data bytes]; int length=[data length]; @@ -98,6 +92,12 @@ return RAR5SignatureNotFound; } ++(BOOL)recognizeFileWithHandle:(CSHandle *)handle firstBytes:(NSData *)data name:(NSString *)name +{ +off_t signatureLocation = [self signatureLocationInData:data]; +return signatureLocation != RAR5SignatureNotFound; +} + +(NSArray *)volumesForHandle:(CSHandle *)handle firstBytes:(NSData *)data name:(NSString *)name { // Check if multipart
Bug#1074452: timemon.app: dh_gnustep removal
Niels Thykier wrote: > On Fri, 28 Jun 2024 23:14:32 +0300 Yavor Doganov wrote: > > Usertags: dh_gnustep-removal > I do not understand the rationale. [...] At this point, 2/3 of all > tools named `dh_` are *not* part of debhelper. I didn't realize there are so many. > In other words, it seems unnecessary to me to rename the tool just to > avoid the debhelper association - at least from the position I am > looking. Obviously, I am not involved in any of this and it might > still make sense to rename if the plan is to also change the behavior > of the tool. Hmm, apparently the plan was not well thought. I wanted to change the behavior by writing a dh_bugfiles addition. We want the GNUstep backend to be reported automatically so gnustep-back will soon have a bug script which can be symlinked by any package that depends on gnustep-gui. This addition will automatically create the symlink (/usr/share/bug/$package -> /usr/share/bug/gnustep-back-common) if it detects that gnustep-backN is in depends and will add a versioned dependency via ${misc:Depends} on the gnustep-back-common package containing the bug script. But then I thought that such change in behavior might be too risky so I came to the idea that writing another tool would be a better option. And I couldn't come up with another name but gsdh_bugfiles (which cannot have its dh_ counterpart as that's the debhelper dh_bugfiles). So the dh_gnustep removal is mostly for consistency. Perhaps the right thing to do is to follow your advice and close these bugs; I am still undecided. P.S. I see nothing wrong to implement this new ala dh_bugfiles behavior within dh_gnustep with the appropriate NEWS entry and a test rebuild of all GNUstep packages that use (gs)dh_gnustep.
Bug#1074459: volumecontrol.app: dh_gnustep removal
Source: volumecontrol.app Version: 0.8-1 Tags: sid trixie ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: dh_gnustep-removal This package uses dh_gnustep directly but dh_gnustep will be removed in the near future. It is not part of debhelper so the program (script) name is misleading. There is a /usr/bin/gsdh_gnustep symlink which currently points to /usr/bin/dh_gnustep; the plan is to leave only gsdh_gnustep which will be the real script. So please make sure to invoke gsdh_gnustep directly in your debian/rules. You can remove the build-dependency on gnustep-make straight away (lintian issues a warning if a dh_* command is in another package and the source package using it is not build-depending on it); the gsdh_gnustep symlink exists since the first time when (gs)dh_gnustep was implemented (gnustep-make/1.11.1-1) and is guaranteed to be available across all relevant Debian suites. The severity of this bug will be promoted to "serious" as soon as the appropriate gnustep-make upload (removing dh_gnustep) is made to unstable as it will cause this package to FTBFS. P.S. Most probably I'll handle this myself when the time comes.
Bug#1074457: affiche: dh_gnustep removal
Source: affiche Version: 0.6.0-12 Tags: sid trixie ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: dh_gnustep-removal This package uses dh_gnustep directly but dh_gnustep will be removed in the near future. It is not part of debhelper so the program (script) name is misleading. There is a /usr/bin/gsdh_gnustep symlink which currently points to /usr/bin/dh_gnustep; the plan is to leave only gsdh_gnustep which will be the real script. So please make sure to invoke gsdh_gnustep directly in your debian/rules. You can remove the build-dependency on gnustep-make straight away (lintian issues a warning if a dh_* command is in another package and the source package using it is not build-depending on it); the gsdh_gnustep symlink exists since the first time when (gs)dh_gnustep was implemented (gnustep-make/1.11.1-1) and is guaranteed to be available across all relevant Debian suites. The severity of this bug will be promoted to "serious" as soon as the appropriate gnustep-make upload (removing dh_gnustep) is made to unstable as it will cause this package to FTBFS. P.S. Most probably I'll handle this myself when the time comes.
Bug#1074456: viewpdf.app: dh_gnustep removal
Source: viewpdf.app Version: 1:0.2dfsg1-7 Tags: sid trixie ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: dh_gnustep-removal This package uses dh_gnustep directly but dh_gnustep will be removed in the near future. It is not part of debhelper so the program (script) name is misleading. There is a /usr/bin/gsdh_gnustep symlink which currently points to /usr/bin/dh_gnustep; the plan is to leave only gsdh_gnustep which will be the real script. So please make sure to invoke gsdh_gnustep directly in your debian/rules. You can remove the build-dependency on gnustep-make straight away (lintian issues a warning if a dh_* command is in another package and the source package using it is not build-depending on it); the gsdh_gnustep symlink exists since the first time when (gs)dh_gnustep was implemented (gnustep-make/1.11.1-1) and is guaranteed to be available across all relevant Debian suites. The severity of this bug will be promoted to "serious" as soon as the appropriate gnustep-make upload (removing dh_gnustep) is made to unstable as it will cause this package to FTBFS. P.S. Most probably I'll handle this myself when the time comes.
Bug#1074455: chess.app: dh_gnustep removal
Source: chess.app Version: 2.8-4 Tags: sid trixie ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: dh_gnustep-removal This package uses dh_gnustep directly but dh_gnustep will be removed in the near future. It is not part of debhelper so the program (script) name is misleading. There is a /usr/bin/gsdh_gnustep symlink which currently points to /usr/bin/dh_gnustep; the plan is to leave only gsdh_gnustep which will be the real script. So please make sure to invoke gsdh_gnustep directly in your debian/rules. You can remove the build-dependency on gnustep-make straight away (lintian issues a warning if a dh_* command is in another package and the source package using it is not build-depending on it); the gsdh_gnustep symlink exists since the first time when (gs)dh_gnustep was implemented (gnustep-make/1.11.1-1) and is guaranteed to be available across all relevant Debian suites. The severity of this bug will be promoted to "serious" as soon as the appropriate gnustep-make upload (removing dh_gnustep) is made to unstable as it will cause this package to FTBFS. P.S. Most probably I'll handle this myself when the time comes.
Bug#1074453: fontmanager.app: dh_gnustep removal
Source: fontmanager.app Version: 0.1-3 Tags: sid trixie ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: dh_gnustep-removal This package uses dh_gnustep directly but dh_gnustep will be removed in the near future. It is not part of debhelper so the program (script) name is misleading. There is a /usr/bin/gsdh_gnustep symlink which currently points to /usr/bin/dh_gnustep; the plan is to leave only gsdh_gnustep which will be the real script. So please make sure to invoke gsdh_gnustep directly in your debian/rules. You can remove the build-dependency on gnustep-make straight away (lintian issues a warning if a dh_* command is in another package and the source package using it is not build-depending on it); the gsdh_gnustep symlink exists since the first time when (gs)dh_gnustep was implemented (gnustep-make/1.11.1-1) and is guaranteed to be available across all relevant Debian suites. The severity of this bug will be promoted to "serious" as soon as the appropriate gnustep-make upload (removing dh_gnustep) is made to unstable as it will cause this package to FTBFS. P.S. Most probably I'll handle this myself when the time comes.
Bug#1074452: timemon.app: dh_gnustep removal
Source: timemon.app Version: 4.2-3 Tags: sid trixie ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: dh_gnustep-removal This package uses dh_gnustep directly but dh_gnustep will be removed in the near future. It is not part of debhelper so the program (script) name is misleading. There is a /usr/bin/gsdh_gnustep symlink which currently points to /usr/bin/dh_gnustep; the plan is to leave only gsdh_gnustep which will be the real script. So please make sure to invoke gsdh_gnustep directly in your debian/rules. You can remove the build-dependency on gnustep-make straight away (lintian issues a warning if a dh_* command is in another package and the source package using it is not build-depending on it); the gsdh_gnustep symlink exists since the first time when (gs)dh_gnustep was implemented (gnustep-make/1.11.1-1) and is guaranteed to be available across all relevant Debian suites. The severity of this bug will be promoted to "serious" as soon as the appropriate gnustep-make upload (removing dh_gnustep) is made to unstable as it will cause this package to FTBFS. P.S. Most probably I'll handle this myself when the time comes.
Bug#1074450: price.app: dh_gnustep removal
Source: price.app Version: 1.3.0-5 Tags: sid trixie User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: dh_gnustep-removal This package uses dh_gnustep directly but dh_gnustep will be removed in the near future. It is not part of debhelper so the program (script) name is misleading. There is a /usr/bin/gsdh_gnustep symlink which currently points to /usr/bin/dh_gnustep; the plan is to leave only gsdh_gnustep which will be the real script. So please make sure to invoke gsdh_gnustep directly in your debian/rules. You can remove the build-dependency on gnustep-make straight away (lintian issues a warning if a dh_* command is in another package and the source package using it is not build-depending on it); the gsdh_gnustep symlink exists since the first time when (gs)dh_gnustep was implemented (gnustep-make/1.11.1-1) and is guaranteed to be available across all relevant Debian suites. The severity of this bug will be promoted to "serious" as soon as the appropriate gnustep-make upload (removing dh_gnustep) is made to unstable as it will cause this package to FTBFS. P.S. Most probably I'll handle this myself when the time comes.
Bug#1074449: gridlock.app: dh_gnustep removal
Source: gridlock.app Version: 1.10-5 Tags: sid trixie ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: dh_gnustep-removal This package uses dh_gnustep directly but dh_gnustep will be removed in the near future. It is not part of debhelper so the program (script) name is misleading. There is a /usr/bin/gsdh_gnustep symlink which currently points to /usr/bin/dh_gnustep; the plan is to leave only gsdh_gnustep which will be the real script. So please make sure to invoke gsdh_gnustep directly in your debian/rules. You can remove the build-dependency on gnustep-make straight away (lintian issues a warning if a dh_* command is in another package and the source package using it is not build-depending on it); the gsdh_gnustep symlink exists since the first time when (gs)dh_gnustep was implemented (gnustep-make/1.11.1-1) and is guaranteed to be available across all relevant Debian suites. The severity of this bug will be promoted to "serious" as soon as the appropriate gnustep-make upload (removing dh_gnustep) is made to unstable as it will cause this package to FTBFS. P.S. Most probably I'll handle this myself when the time comes.
Bug#1073528: RFS: parser/3.4.6-5 [RC] [QA] -- HTML-embedded scripting language
Package: sponsorship-requests Severity: important Dear mentors, I'm looking for a sponsor for the orphaned package "parser": * Package name : parser Version : 3.4.6-5 Upstream contact : Art Lebedev Studio * URL : http://www.parser.ru/en/ * License : other, GPL-2+, LGPL-2+, other-1, GPL-3, University-of-Illinois-Open-Source-License * Vcs : https://salsa.debian.org/debian/parser Section : web The source builds the following binary packages: parser3 - Parser 3, HTML-embedded scripting language (metapackage) parser3-common - Common files for packages built from the Parser 3 source parser3-cgi - Parser 3, HTML-embedded scripting language (CGI binary) libapache2-mod-parser3 - Parser 3, HTML-embedded scripting language (Apache2 module) parser3-dev - Files for Parser 3 module development To access further information about this package, please visit the following URL: https://mentors.debian.net/package/parser/ Alternatively, you can download the package with 'dget' using this command: dget -x https://mentors.debian.net/debian/pool/main/p/parser/parser_3.4.6-5.dsc Changes since the last upload: parser (3.4.6-5) unstable; urgency=medium . * QA upload. * debian/patches/libxml2-2.12.patch: New; fix FTBFS with libxml2/2.12 (Closes: #1073353). Thanks Lucas Nussbaum for the report. * debian/control (Standards-Version): Bump to 4.7.0; no changes needed. * debian/copyright: Update copyright years.
Bug#1073313: gnustep-base: FTBFS: GSXML.m:2674:22: error: ‘xmlEntity’ {aka ‘struct _xmlEntity’} has no member named ‘checked’
Control: fixed -1 1.30.0-1 Control: tags -1 + pending [ CCing libxml2@packages.d.o ] Lucas Nussbaum wrote: > Source: gnustep-base > Version: 1.29.0-7 > Severity: serious ... > > GSXML.m: In function ‘getEntityDefault’: > > GSXML.m:2674:22: error: ‘xmlEntity’ {aka ‘struct _xmlEntity’} has no member > > named ‘checked’ > > 2674 | if (ret->checked == 0) > > | ^~ Thanks for the report; I'll get it fixed in unstable ASAP. IMVHO removing a public struct member constitutes an API break. It is also an ABI break, because if a program or a library accesses such member and is compiled against an old libxml2 version that is supposed to be ABI-compatible (like 2.9.14+dfsg-1.3 in trixie), it will crash at runtime with the new library version.
Bug#1072853: transition: gnustep-base, gnustep-gui
Package: release.debian.org Severity: normal X-Debbugs-Cc: pkg-gnustep-maintain...@lists.alioth.debian.org User: release.debian@packages.debian.org Usertags: transition Hi release managers, On behalf of the GNUstep team I'd like to request a transition slot for a combined gnustep-base/gnustep-gui transition (one-round binNMUs): libgnustep-base1.29 -> 1.30 libgnustep-gui0.30 -> 0.31 The new libraries are available in experimental, built on all release architectures. Build-testing the rdeps revealed only one issue (lynkeos.app, #1072736) which has been fixed in unstable so no sourceful uploads (except gnustep-back) will be required. FYI, the new gnustep-gui version adds support for ImageMagick 7 (release.d.o #1060103). The automatically generated trackers look fine.
Bug#1072736: lynkeos.app: FTBFS with gnustep-gui/0.31.x: MyPluginsController.m:27:36: error: redeclaration of enumerator ‘NSControlKeyMask’
Source: lynkeos.app Version: 3.7+dfsg-1 Severity: important Tags: sid trixie ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: gnustep-gui0.31-transition gnustep-transition This package fails to build with gnustep-gui/0.31.x (in experimental); relevant part of the build log: gcc /<>/application/GNUstep/../Sources/MyProcessingThread.m -c \ -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -DCURRENT_PROJECT_VERSION=370.0 -I. -I.. -I/<>/application/GNUstep.. -I/<>/application/GNUstep/../Sources -I/<>/application/GNUstep/../ThreadConnectionSources -I/<>/application/GNUstep/../ThirdPartySources/SMDoubleSlider -DNO_FRAMEWORK_CHECK=1 -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -std=gnu99 -Wno-unknown-pragmas -Wno-cpp -fconstant-string-class=NSConstantString -I. -I/usr/local/include/GNUstep -I/usr/include/GNUstep \ -o obj/Lynkeos.obj/MyProcessingThread.m.o /<>/application/GNUstep/../Sources/MyPluginsController.m:27:36: error: redeclaration of enumerator ‘NSControlKeyMask’ 27 | #define NSEventModifierFlagControl NSControlKeyMask |^~~~ /usr/include/GNUstep/AppKit/NSEvent.h:234:3: note: in expansion of macro ‘NSEventModifierFlagControl’ 234 | NSEventModifierFlagControl = NSControlKeyMask, | ^~ In file included from /usr/include/GNUstep/AppKit/AppKit.h:89, from ../LynkeosCore/LynkeosProcessing.h:48, from ../LynkeosCore/LynkeosImageBuffer.h:31, from /<>/application/GNUstep/../Sources/LynkeosFileReader.h:66, from /<>/application/GNUstep/../Sources/MyPluginsController.m:39: /usr/include/GNUstep/AppKit/NSEvent.h:225:3: note: previous definition of ‘NSControlKeyMask’ with type ‘int’ 225 | NSControlKeyMask = 4 << 16, | ^~~~ /<>/application/GNUstep/../Sources/MyPluginsController.m:26:36: error: redeclaration of enumerator ‘NSCommandKeyMask’ 26 | #define NSEventModifierFlagCommand NSCommandKeyMask |^~~~ /usr/include/GNUstep/AppKit/NSEvent.h:236:3: note: in expansion of macro ‘NSEventModifierFlagCommand’ 236 | NSEventModifierFlagCommand = NSCommandKeyMask, | ^~ /usr/include/GNUstep/AppKit/NSEvent.h:227:3: note: previous definition of ‘NSCommandKeyMask’ with type ‘int’ 227 | NSCommandKeyMask = 16 << 16, | ^~~~ make[5]: *** [/usr/share/GNUstep/Makefiles/rules.make:534: obj/Lynkeos.obj/MyPluginsController.m.o] Error 1 ... make[1]: *** [debian/rules:23: override_dh_auto_build] Error 25 make[1]: Leaving directory '/<>' make: *** [debian/rules:20: binary] Error 2 The severity of this bug will be raised to "serious" as soon as the forthcoming GNUstep transition begins.
Bug#967258: artha: depends on deprecated GTK 2
Control: tags -1 + patch Control: block -1 with 955873 Please find attached a patch -- I tested it a lot but chances are that I've missed something. As there is no GtkStatusIcon (aka "trayicon") anymore, the notifications are sent when the window is closed (and of course, when they are enabled which was and still is the default). The "Notify" toolbar item is now permanent (unlike in the original code) because if a user disables notifications there is no way to enable them again apart from editing the configuration file (since there is no systray icon with a popup menu having a "Notify" GtkCheckMenuItem). Also please note that this patch formally depends on the patch I sent to #955873 (hence the block) as that patch is its parent. It cannot be applied cleanly to current git master because of that but otherwise this bug does not depend on it; they're completely orthogonal. >From 5c15a90a1b6e4f912d1fd326d055c4bca2093ea6 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Fri, 8 Mar 2024 00:26:46 +0200 Subject: [PATCH] Port to GTK 3 (#967258) --- debian/changelog |4 +- debian/control|3 +- debian/patches/gtk3.patch | 2406 + debian/patches/series |1 + 4 files changed, 2411 insertions(+), 3 deletions(-) create mode 100644 debian/patches/gtk3.patch diff --git a/debian/changelog b/debian/changelog index abf4b48..5086ebd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,8 +3,10 @@ artha (1.0.5-4) UNRELEASED; urgency=medium * Team upload. * debian/patches/no-dbus-glib.patch: New; stop using dbus-glib in favor of dbus-gmain as recommended (Closes: #955873). + * debian/patches/gtk3.patch: New; port to GTK 3 (Closes: #967258). * debian/control (Build-Depends): Replace libdbus-glib-1-dev with -libdbus-1-dev. +libdbus-1-dev and libgtk2.0-dev with libgtk-3-dev. +(Recommends): Drop libnotify4, the program uses GNotification now. -- Yavor Doganov Mon, 04 Mar 2024 16:53:11 +0200 diff --git a/debian/control b/debian/control index 83103fa..d2cc751 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Section: utils Priority: optional Build-Depends: debhelper-compat (= 13), wordnet-dev, - libgtk2.0-dev, + libgtk-3-dev, libdbus-1-dev Standards-Version: 4.6.0 Vcs-Browser: https://salsa.debian.org/science-team/artha @@ -20,7 +20,6 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, wordnet Recommends: wordnet-sense-index, -libnotify4, libenchant-2-2 Suggests: aspell-en Description: Handy off-line thesaurus based on WordNet diff --git a/debian/patches/gtk3.patch b/debian/patches/gtk3.patch new file mode 100644 index 000..2fa388a --- /dev/null +++ b/debian/patches/gtk3.patch @@ -0,0 +1,2406 @@ +Description: Port to GTK 3. +Bug-Debian: https://bugs.debian.org/967258 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2024-03-08 +--- + +--- artha.orig/configure.ac artha/configure.ac +@@ -55,12 +55,10 @@ + AC_SUBST([WORDNET_LIB]) + + +-# GtkComboBox with entry only since 2.24 only, hence check for GTK+-2.0 >= 2.24 +-# check for GTK+ and GLib +-PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24 glib-2.0 >= 2.40], , [ ++PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.21.4 glib-2.0 >= 2.40], , [ + AC_MSG_RESULT(no) + AC_MSG_ERROR([ +-You must have GTK+ 2.0 (version 2.24 or above) and GLib 2.0 (version 2.40 ++You must have GTK+ 3.0 (version 3.21.4 or above) and GLib 2.0 (version 2.40 + or above) development headers installed to build. + + If you have these installed already you may need to install pkg-config so +--- artha.orig/src/gui.c artha/src/gui.c +@@ -54,7 +54,7 @@ + static gboolean was_double_click = FALSE, last_search_successful = FALSE, advanced_mode = FALSE, auto_contract = FALSE; + static gboolean hotkey_set = FALSE, mod_suggest = FALSE; + // options which default to true +-static gboolean notifier_enabled = TRUE, show_polysemy = TRUE, launch_minimized = TRUE, show_trayicon = TRUE; ++static gboolean notifier_enabled = TRUE, show_polysemy = TRUE, launch_minimized = TRUE; + static gboolean last_lookup_a_notification = FALSE; + static gchar last_search[MAX_LEMMA_LEN] = ""; + #ifdef X11_AVAILABLE +@@ -63,13 +63,11 @@ + guint32 last_hotkey_time = 0; + static guint num_lock_mask = 0, caps_lock_mask = 0, scroll_lock_mask = 0; + #endif +-static guint hotkey_trials[] = {GDK_w, GDK_a, GDK_t, GDK_q}; ++static guint hotkey_trials[] = {GDK_KEY_w, GDK_KEY_a, GDK_KEY_t, GDK_KEY_q}; + GtkAccelKey app_hotkey = {0}; + static gint notify_toolbar_index = -1; + static guint status_msg_context_id = 0; + static GString*w
Bug#955873: artha: Depends on deprecated dbus-glib
Control: tags -1 + patch Please find attached a patch. >From 6c94fcfbf0dc45114602312c8bc6f1bededbf840 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Mon, 4 Mar 2024 16:56:28 +0200 Subject: [PATCH] Drop dbus-glib dependency (#955873) --- debian/changelog | 10 + debian/control| 2 +- debian/patches/no-dbus-glib.patch | 810 ++ debian/patches/series | 1 + 4 files changed, 822 insertions(+), 1 deletion(-) create mode 100644 debian/patches/no-dbus-glib.patch diff --git a/debian/changelog b/debian/changelog index 9ae7a98..abf4b48 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +artha (1.0.5-4) UNRELEASED; urgency=medium + + * Team upload. + * debian/patches/no-dbus-glib.patch: New; stop using dbus-glib in favor +of dbus-gmain as recommended (Closes: #955873). + * debian/control (Build-Depends): Replace libdbus-glib-1-dev with +libdbus-1-dev. + + -- Yavor Doganov Mon, 04 Mar 2024 16:53:11 +0200 + artha (1.0.5-3) unstable; urgency=medium * DEP5 copyright diff --git a/debian/control b/debian/control index 780d311..83103fa 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Priority: optional Build-Depends: debhelper-compat (= 13), wordnet-dev, libgtk2.0-dev, - libdbus-glib-1-dev + libdbus-1-dev Standards-Version: 4.6.0 Vcs-Browser: https://salsa.debian.org/science-team/artha Vcs-Git: https://salsa.debian.org/science-team/artha.git diff --git a/debian/patches/no-dbus-glib.patch b/debian/patches/no-dbus-glib.patch new file mode 100644 index 000..11e36d9 --- /dev/null +++ b/debian/patches/no-dbus-glib.patch @@ -0,0 +1,810 @@ +Description: Stop using dbus-glib. +Bug-Debian: https://bugs.debian.org/955873 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2024-03-08 +--- + +--- artha.orig/configure.ac artha/configure.ac +@@ -57,10 +57,10 @@ + + # GtkComboBox with entry only since 2.24 only, hence check for GTK+-2.0 >= 2.24 + # check for GTK+ and GLib +-PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24 glib-2.0 >= 2.22], , [ ++PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24 glib-2.0 >= 2.40], , [ + AC_MSG_RESULT(no) + AC_MSG_ERROR([ +-You must have GTK+ 2.0 (version 2.24 or above) and GLib 2.0 (version 2.22 ++You must have GTK+ 2.0 (version 2.24 or above) and GLib 2.0 (version 2.40 + or above) development headers installed to build. + + If you have these installed already you may need to install pkg-config so +@@ -97,12 +97,12 @@ + # begin of POSIX specific config + if test "$build_mach" = "posix"; then + +-# check if dbus-1 alone is enough or dbus-glib-1 alone is enough +-PKG_CHECK_MODULES([libdbus], [dbus-1 >= 0.60 dbus-glib-1 >= 0.60], ++# check if dbus-1 alone is enough ++PKG_CHECK_MODULES([libdbus], [dbus-1 >= 1.8], + [AC_DEFINE([DBUS_AVAILABLE], [], [Dbus dev. headers are present])], [ + AC_MSG_RESULT(no) + AC_MSG_ERROR([ +-You must have the dbus and dbus-glib-1 (version 0.60 or above) ++You must have the dbus (version 1.8 or above) + development headers installed! + + If it is installed already, you may need to install pkg-config so +--- artha.orig/src/Makefile.am artha/src/Makefile.am +@@ -9,7 +9,7 @@ + libwni_a_SOURCES = wni.c wni.h + + artha_DEPENDENCIES = libwni.a +-artha_SOURCES = mod_notify.c mod_notify.h \ ++artha_SOURCES = dbus-gmain.c dbus-gmain.h mod_notify.c mod_notify.h \ + suggestions.c suggestions.h \ + hotkey_editor.c hotkey_editor.h \ + gui.c gui.h addons.h +@@ -38,7 +38,7 @@ + + if POSIX + AM_CFLAGS += @libdbus_CFLAGS@ +-artha_LDADD += -lX11 -ldbus-1 -ldbus-glib-1 -lgtk-x11-2.0 -lgdk-x11-2.0 \ ++artha_LDADD += -lX11 -ldbus-1 -lgtk-x11-2.0 -lgdk-x11-2.0 \ +-lgio-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 + else + artha_LDADD += @GTK_LIBS@ +--- /dev/null artha/src/dbus-gmain.c +@@ -0,0 +1,666 @@ ++/* -*- mode: C; c-file-style: "gnu" -*- */ ++/* dbus-gmain.c GLib main loop integration ++ * ++ * Copyright © 2002-2003 CodeFactory AB ++ * Copyright © 2002-2010 Red Hat, Inc. ++ * Copyright © 2003 James Willcox ++ * Copyright © 2006 Marc-Andre Lureau ++ * Copyright © 2006-2018 Collabora Ltd. ++ * Copyright © 2010-2012 Mike Gorse ++ * ++ * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later ++ * ++ * Licensed under the Academic Free License version 2.1 ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more deta
Bug#999931: virtuoso-opensource: depends on obsolete pcre3 library
Hi Andreas, On Wed, 28 Feb 2024 18:36:04 +0200, Andreas Beckmann wrote: > On Wed, 20 Dec 2023 21:18:20 +0200 Yavor Doganov wrote: > > Please find attached a patch; > > Thanks for the patch, I uploaded it to Debian and so far noone > complained ;-) Thanks! Complaints usually come a bit later... > But the patch doesn't apply cleanly on newer virtuoso-opensource > versions, there are actually changes in pcre usage in > libsrc/Wi/sqlbif.h that require adjustments. Right; there's a new function. > Could you take a look again and update the patch? Attached is a patch (commit made to the try-7.2.12 branch) that updates pcre2.patch so that it applies cleanly and restores the build-dependency on libpcre2-dev. > I've never worked with (any version of) pcre (from the programmer > persepective, Likewise, I'm a complete novice here. It would be nice to finish this transition, though. >From 82b97264413540aa72d96297a93a6fd24f56adc2 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Mon, 4 Mar 2024 16:29:34 +0200 Subject: [PATCH] pcre2.patch: Update for the new upstream release --- debian/changelog | 4 + debian/control | 2 +- debian/patches/pcre2.patch | 152 - debian/patches/series | 2 +- 4 files changed, 107 insertions(+), 53 deletions(-) diff --git a/debian/changelog b/debian/changelog index 907e89fc6..a566f67f2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,12 @@ virtuoso-opensource (7.2.12+dfsg-0.1) UNRELEASED; urgency=medium + [ Andreas Beckmann ] * Non-maintainer upload. * New upstream release. + [ Yavor Doganov ] + * debian/patches/pcre2.patch: Update for the new upstream release. + -- Andreas Beckmann Wed, 28 Feb 2024 15:19:59 +0100 virtuoso-opensource (7.2.5.1+dfsg1-0.6) unstable; urgency=medium diff --git a/debian/control b/debian/control index 5fd05fab9..db9b573c4 100644 --- a/debian/control +++ b/debian/control @@ -14,7 +14,7 @@ Build-Depends: debhelper-compat (= 13), gperf, libldap2-dev, libmagickwand-dev, - libpcre3-dev, + libpcre2-dev, libreadline-dev, libssl-dev, libtirpc-dev, diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch index 98c06be51..104c1abc9 100644 --- a/debian/patches/pcre2.patch +++ b/debian/patches/pcre2.patch @@ -2,12 +2,12 @@ Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/31 Author: Yavor Doganov Forwarded: no -Last-Update: 2023-12-20 +Last-Update: 2024-03-04 --- --- virtuoso-opensource.orig/libsrc/Wi/Makefile.am +++ virtuoso-opensource/libsrc/Wi/Makefile.am -@@ -559,7 +559,7 @@ +@@ -563,7 +563,7 @@ $(libwi_base_la_sources) libwi_la_CFLAGS = $(libwi_base_la_cflags) @@ -18,7 +18,7 @@ Last-Update: 2023-12-20 libwi_odbc_la_SOURCES += \ --- virtuoso-opensource.orig/libsrc/Wi/bif_regexp.c +++ virtuoso-opensource/libsrc/Wi/bif_regexp.c -@@ -30,7 +30,8 @@ +@@ -31,7 +31,8 @@ // Debian maintainer: replaced by external PCRE // #include "util/pcrelib/pcre.h" @@ -28,7 +28,7 @@ Last-Update: 2023-12-20 /* typedef struct rx_query_s { -@@ -66,15 +67,16 @@ +@@ -65,16 +66,17 @@ typedef struct compiled_regexp_s { int refctr; @@ -42,14 +42,16 @@ Last-Update: 2023-12-20 -int32 c_pcre_match_limit_recursion = 500; -int32 c_pcre_match_limit = 10; +-int32 pcre_max_cache_sz = 2; +static pcre2_match_context *match_ctxt = NULL; + +uint32 c_pcre_match_limit_recursion = 500; +uint32 c_pcre_match_limit = 10; - int32 pcre_max_cache_sz = 2; ++uint32 pcre_max_cache_sz = 2; int32 pcre_rnd_seed; -@@ -97,6 +99,23 @@ + id_hashed_key_t +@@ -96,6 +98,23 @@ } void @@ -73,7 +75,7 @@ Last-Update: 2023-12-20 release_compiled_regexp (id_hash_t *c_r, compiled_regexp_t *data) { int delete_data; -@@ -112,9 +131,7 @@ +@@ -111,9 +130,7 @@ if (!delete_data) return; if (NULL != data->code) @@ -84,7 +86,7 @@ Last-Update: 2023-12-20 dk_free (data, sizeof (compiled_regexp_t)); } -@@ -137,10 +154,11 @@ +@@ -136,10 +153,11 @@ } static compiled_regexp_t * @@ -99,9 +101,9 @@ Last-Update: 2023-12-20 regexp_key_t key; compiled_regexp_t **val = NULL; compiled_regexp_t tmp, *new_val; -@@ -156,46 +174,18 @@ +@@ -155,46 +173,18 @@ } - HT_LEAVE (c_r); + HT_UNLOCK (c_r); dbg_printf (("regex compiling (%s) with options %x ...\n", pattern, options)); - tmp.code = pcre_compile (pattern, options, , , 0); + tmp.code = pcre2_compile ((PCRE2_SPTR) pattern, strlen (pattern), @@ -149,9 +151,9 @@ Last-Update: 2023-12-20 new_val->code = tmp.code; - new_val->code_x = tmp.code_x; new_val->refctr = 1; - HT_ENTER (c_r); + HT_WRLOCK (c_r); pcre_cache_check (c_r); -@@ -302,18 +292,18 @@ +@@ -301,18 +291,18 @@ } @@ -175,7 +177,7 @
Bug#901677: amide: Window is too wide and not resizable
Control: tags -1 + patch Attached is a patch which makes the main (study) windows resizable at the expense of losing automatic expanding and shrinking. Currently, if you switch off two of the Transverse/Coronal/Sagittal views the window will shrink automatically. Likewise, if you enable 2-way/3-way views it will expand to the necessary height and by disabling them it will shrink. This is a nice feature and judging by the comment in ui_study.c, it is the sole reason why upstream decided to make the window non-resizable. However, the OP's complaint is perfectly legitimate, it is very difficult and unpleasant to work with a window that large. Description: Make the main (study) window resizable. Toolbar menu items "Thickness", "Field of view" and "Zoom" do nothing but they are necessary -- if the window is resized so that the right border is at one of these widgets, no drop-down arrow will be shown so the user will not have access to the Gate/Time buttons. Other items from "Threshold" leftwards are proper GtkToolItems (rather than widgets packed in a GtkToolItem) so their menus are fully functional and will appear as normal/toggle/radio menu items. Bug-Debian: https://bugs.debian.org/901677 Bug: https://github.com/ferdymercury/amide/issues/26 Author: Yavor Doganov Forwarded: no Last-Update: 2024-02-24 --- --- amide.orig/amide-current/src/ui_study.c +++ amide/amide-current/src/ui_study.c @@ -540,7 +540,7 @@ toolbar = gtk_toolbar_new(); gtk_box_pack_start (GTK_BOX (ui_study->window_vbox), toolbar, FALSE, FALSE, 0); gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS); - gtk_toolbar_set_show_arrow(GTK_TOOLBAR(toolbar), FALSE); + gtk_widget_set_hexpand(toolbar, FALSE); tool_item = gtk_radio_tool_button_new(NULL); gtk_tool_button_set_label(GTK_TOOL_BUTTON(tool_item), _("Near.")); @@ -568,9 +568,8 @@ for (i_rendering = 0; i_rendering < AMITK_RENDERING_NUM; i_rendering++) gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ui_study->rendering_menu), amitk_rendering_get_name(i_rendering)); g_signal_connect(G_OBJECT(ui_study->rendering_menu), "changed", G_CALLBACK(ui_study_cb_rendering), ui_study); - ui_common_toolbar_insert_widget(toolbar, ui_study->rendering_menu, - _(amitk_rendering_explanation), - gtk_toolbar_get_n_items(GTK_TOOLBAR(toolbar))); + ui_common_toolbar_append_widget(toolbar, ui_study->rendering_menu, + _(amitk_rendering_explanation)); ui_common_toolbar_append_separator(toolbar); @@ -672,7 +671,7 @@ icon = gtk_image_new_from_icon_name("amide_icon_thresholding", GTK_ICON_SIZE_LARGE_TOOLBAR); - tool_item = gtk_tool_button_new(icon, _("_Threshold")); + tool_item = gtk_tool_button_new(icon, _("Threshold")); gtk_tool_item_set_tooltip_text(tool_item, _("Set the thresholds and colormaps for the active data set")); gtk_actionable_set_action_name(GTK_ACTIONABLE(tool_item), "win.thresholding"); @@ -697,7 +696,10 @@ g_signal_connect(G_OBJECT(ui_study->zoom_spin), "output", G_CALLBACK(amitk_spin_button_scientific_output), NULL); g_signal_connect(G_OBJECT(ui_study->zoom_spin), "button_press_event", G_CALLBACK(amitk_spin_button_discard_double_or_triple_click), NULL); - ui_common_toolbar_append_widget(toolbar,ui_study->zoom_spin,_("specify how much to magnify the images")); + ui_common_toolbar_append_widget_full(toolbar, ui_study->zoom_spin, + _("Zoom"), + _("specify how much to magnify the images"), + NULL, NULL); /* a separator for clarity */ ui_common_toolbar_append_separator(toolbar); @@ -716,7 +718,10 @@ g_signal_connect(G_OBJECT(ui_study->fov_spin), "value_changed", G_CALLBACK(ui_study_cb_fov), ui_study); g_signal_connect(G_OBJECT(ui_study->fov_spin), "button_press_event", G_CALLBACK(amitk_spin_button_discard_double_or_triple_click), NULL); - ui_common_toolbar_append_widget(toolbar,ui_study->fov_spin,_("specify how much of the image field of view to display")); + ui_common_toolbar_append_widget_full(toolbar, ui_study->fov_spin, + _("Field of view"), + _("specify how much of the image field of view to display"), + NULL, NULL); /* a separator for clarity */ ui_common_toolbar_append_separator(toolbar); @@ -736,7 +741,10 @@ g_signal_connect(G_OBJECT(ui_study->thickness_spin), "output", G_CALLBAC
Bug#999921: xymon: depends on obsolete pcre3 library
Hi Roland, Roland Rosenfeld wrote: > Oh, now I see the problem: pcre_copy_substring() returns the length of > the string on match, while pcre2_substring_copy_bynumber() returns 0 > on success. So the above has to be changed from "> 0" to "== 0". Of course... Many thanks for finding and fixing my mistakes! > For showgraph.c this fixes the issue, but there are more places where > the return code of pcre2_substring_copy_bynumber() is checked, which > also may need adoption. I found the following places: Right, thanks again. Have you found some other issues? I tried to trigger as much PCRE-related code as possible but as I'm not familiar with this program I'm afraid I couldn't manage.
Bug#967256: apwal: depends on deprecated GTK 2
Control: tags -1 + patch Please find attached a patch. (You might want to remove the last line from debian/rules to create a dbgsym package.) Description: Port to GTK 3. Bug-Debian: https://bugs.debian.org/967256 Author: Yavor Doganov Forwarded: no Last-Update: 2024-01-19 --- --- apwal-0.4.5.orig/src/Makefile +++ apwal-0.4.5/src/Makefile @@ -7,11 +7,11 @@ INSTALL ?= install ifdef APWAL_DEBUG -CFLAGS += -g -Wall -Werror `$(PKG_CONFIG) --cflags gtk+-2.0 gthread-2.0 libxml-2.0` -DGTK_DISABLE_DEPRECATED -DAPWAL_DEBUG $(CPPFLAGS) -LDFLAGS += `$(PKG_CONFIG) --libs gtk+-2.0 gthread-2.0 libxml-2.0` +CFLAGS += -DAPWAL_DEBUG $(CPPFLAGS) -g -Wall -Werror `$(PKG_CONFIG) --cflags gtk+-3.0 gthread-2.0 libxml-2.0` +LDFLAGS += `$(PKG_CONFIG) --libs gtk+-3.0 gthread-2.0 libxml-2.0` else -CFLAGS += -O2 `$(PKG_CONFIG) --cflags gtk+-2.0 gthread-2.0 libxml-2.0` $(CPPFLAGS) -LDFLAGS += -O2 `$(PKG_CONFIG) --libs gtk+-2.0 gthread-2.0 libxml-2.0` +CFLAGS += $(CPPFLAGS) -O2 `$(PKG_CONFIG) --cflags gtk+-3.0 gthread-2.0 libxml-2.0` +LDFLAGS += -O2 `$(PKG_CONFIG) --libs gtk+-3.0 gthread-2.0 libxml-2.0` endif OBJS=main.o app.o launcher.o editor.o property.o \ @@ -34,7 +34,6 @@ all: apwal apwal: $(OBJS) $(CC) -o $@ $^ $(LDFLAGS) - $(STRIP) $@ endif install: all @@ -42,14 +41,14 @@ $(INSTALL) apwal $(DESTDIR)/usr/bin .c.o: $(INCS) - $(CC) -c $< -o $*.o $(CFLAGS) + $(CC) $(CFLAGS) -c $< -o $*.o xmlrc.o: xmlrc.c $(INCS) - $(CC) -c $< -o $*.o $(CFLAGS) + $(CC) $(CFLAGS) -c $< -o $*.o about.o: about.c $(INCS) ../Makefile.inc - $(CC) -c $< -o $*.o $(CFLAGS) -DAPWAL_VERSION=\"$(VERS)\" + $(CC) -DAPWAL_VERSION=\"$(VERS)\" $(CFLAGS) -c $< -o $*.o -gtkstuff.o: pixbufinline.inc +gtkstuff.o: pixbufinline.inc gresource.c xmlrc.o: xmlrcinline.inc $(OBJS): $(INCS) @@ -88,6 +87,18 @@ echo "sizeof(pixbufinline_t));" >> $@; \ echo "" >> $@; +gresource.c: ../pixmaps/*.png + @echo "generating $@..." + @echo "" >> $*.xml + @echo "" >> $*.xml + @echo "" >> $*.xml + @for f in ../pixmaps/*.png; do \ + echo "$$f" >> $*.xml; \ + done; + @echo "" >> $*.xml + @echo "" >> $*.xml + @glib-compile-resources --generate-source $*.xml + tags: $(INCS) $(OBJS:.o=.c) ctags -R @@ -102,5 +113,5 @@ clean: - -rm -f $(OBJS) apwal pixbufinline.inc xmlrcinline.inc tags + -rm -f $(OBJS) apwal pixbufinline.inc gresource.* xmlrcinline.inc tags --- apwal-0.4.5.orig/src/apwalapp.h +++ apwal-0.4.5/src/apwalapp.h @@ -49,9 +49,6 @@ GtkWidget *w2_btn_cancel; GtkWidget *w2_btn_ok; - - GtkTooltips *tips; - struct apwal_pref_t *apwal_pref; struct editor_t *editor; struct property_t *prop; --- apwal-0.4.5.orig/src/launcher.h +++ apwal-0.4.5/src/launcher.h @@ -35,7 +35,6 @@ GtkWidget *event_box; GtkWidget *image; GdkPixbuf *pixbuf; - GdkBitmap *bitmap_mask; gint x; gint y; --- apwal-0.4.5.orig/src/launcher.c +++ apwal-0.4.5/src/launcher.c @@ -29,6 +29,7 @@ { launcher_t *l; app_list_t *apps; + GdkRectangle geom; l = (launcher_t *)malloc(sizeof(launcher_t)); g_assert(l != NULL); @@ -51,7 +52,6 @@ l->image = NULL; l->pixbuf = NULL; - l->bitmap_mask = NULL; l->x = 0; l->y = 0; @@ -60,8 +60,10 @@ l->editor_started = FALSE; - l->xwidth = gdk_screen_width(); - l->xheight = gdk_screen_height(); + gdk_monitor_get_geometry(gdk_display_get_primary_monitor + (gdk_display_get_default()), ); + l->xwidth = geom.width; + l->xheight = geom.height; l->timeout_activated = 0; l->apps = NULL; @@ -75,6 +77,10 @@ void launcher_load_apps(launcher_t *l, app_list_t *apps) { app_t *app; + cairo_surface_t *surf; + cairo_region_t *region; + GdkWindow *win; + GdkSeat *seat; GdkPixbuf *pixbuf; GdkModifierType state;// mouse state gint x_min, y_min; @@ -93,7 +99,6 @@ l->pixbuf = NULL; l->image = NULL; - l->bitmap_mask = NULL; l->apps = apps; if (!apps) @@ -107,7 +112,11 @@ app_list_delta_x(l->apps), app_list_delta_y(l->apps), x_min, y_min); // get the current position of the mouse cursor - gdk_window_get_pointer (l->window->window, >x, >y, ); + gtk_widget_realize(l->window); + seat = gdk_display_get_default_seat(gdk_display_get_default()); + win = gtk_widget_get_window(l->window); + gdk_window_get_device_position(win, gdk_seat_get_pointer(seat), + >x, >y, ); // check if the position is correct l->x = l->x + (x_min * ICON_WIDTH); if (l->x < 0) @@ -149,15 +
Bug#967242: abx: depends on deprecated GTK 2
Control: tags -1 + patch Please find attached a patch -- note that it applies against the latest upstream release (0.1) which I assumed you would want to package anyway. Description: Port to GTK 3. Bug-Debian: https://bugs.debian.org/967242 Author: Yavor Doganov Forwarded: no Last-Update: 2024-01-11 --- --- abx-0.1.orig/configure.ac +++ abx-0.1/configure.ac @@ -18,7 +18,7 @@ PKG_CHECK_MODULES(portaudio, portaudio-2.0 >= 19) PKG_CHECK_MODULES(sndfile, sndfile) AM_PATH_GLIB_2_0(2.0.0, [], AC_MSG_ERROR([cannot find glib version 2.0 or later with thread support]), gthread) -AM_PATH_GTK_2_0(2.6.0, [], AC_MSG_ERROR([cannot find gtk version 2.6 or later]), gthread) +PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.9.12]) AC_CONFIG_FILES([Makefile src/Makefile]) --- abx-0.1.orig/src/decidewin.c +++ abx-0.1/src/decidewin.c @@ -34,7 +34,7 @@ case 0: case 1: set_guess(current_trial, response); -gtk_widget_hide_all(dialog); +gtk_widget_hide(dialog); if (current_trial == num_test_trials() - 1) { /* test over */ show_result_window(); @@ -49,7 +49,7 @@ break; case GTK_RESPONSE_DELETE_EVENT: case GTK_RESPONSE_CANCEL: -gtk_widget_hide_all(dialog); +gtk_widget_hide(dialog); break; } } @@ -73,7 +73,7 @@ gtk_dialog_add_button(GTK_DIALOG(dialog), "_A", 0); gtk_dialog_add_button(GTK_DIALOG(dialog), "_B", 1); gtk_dialog_add_button(GTK_DIALOG(dialog), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); + _("_Cancel"), GTK_RESPONSE_CANCEL); g_signal_connect(dialog, "response", G_CALLBACK(response_handler), NULL); gtk_widget_show_all(dialog); @@ -84,6 +84,6 @@ hide_decide_dialog(void) { if (dialog) { -gtk_widget_hide_all(dialog); +gtk_widget_hide(dialog); } } --- abx-0.1.orig/src/mainwin.c +++ abx-0.1/src/mainwin.c @@ -45,7 +45,7 @@ static GtkWidget *prev_marker; static GtkWidget *next_marker; -static GtkObject *adjustment; +static GtkAdjustment *adjustment; static GtkWidget *scale; static int is_user_seeking; @@ -223,17 +223,17 @@ menu_bar = create_menu_bar(); create_status_bar(); -left_box = gtk_vbox_new(FALSE, 10); +left_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10); gtk_box_pack_start(GTK_BOX(left_box), test_box, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(left_box), meta_box, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(left_box), playback_box, TRUE, FALSE, 0); -main_hbox = gtk_hbox_new(FALSE, 10); +main_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10); gtk_container_set_border_width(GTK_CONTAINER(main_hbox), 10); gtk_box_pack_start(GTK_BOX(main_hbox), left_box, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(main_hbox), marker_box, FALSE, FALSE, 0); -main_box = gtk_vbox_new(FALSE, 0); +main_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start(GTK_BOX(main_box), menu_bar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(main_box), main_hbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(main_box), status_bar, FALSE, FALSE, 0); @@ -252,10 +252,11 @@ static GtkWidget * create_play_button(gchar *label) { -GtkWidget *aligned_box = gtk_hbox_new(TRUE, 0); -GtkWidget *box = gtk_hbox_new(FALSE, 3); +GtkWidget *aligned_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); +gtk_box_set_homogeneous(GTK_BOX(aligned_box), TRUE); +GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3); gtk_box_pack_start(GTK_BOX(box), - gtk_image_new_from_stock(GTK_STOCK_MEDIA_PLAY, + gtk_image_new_from_icon_name("media-playback-start", GTK_ICON_SIZE_BUTTON), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(box), gtk_label_new_with_mnemonic(label), @@ -276,8 +277,7 @@ GtkWidget *first_row; GtkWidget *second_row; adjustment = gtk_adjustment_new(0, 0, 60, 1.0, 15.0, 0); -scale = gtk_hscale_new(GTK_ADJUSTMENT(adjustment)); -gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_DISCONTINUOUS); +scale = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, adjustment); is_user_seeking = 0; g_signal_connect(G_OBJECT(scale), "button_press_event", G_CALLBACK(scale_button_pressed_or_released), NULL); @@ -299,19 +299,25 @@ create_play_button("Play _X")); g_signal_connect(G_OBJECT(test_sample), "clicked", G_CALLBACK(play_button_clicked), NULL); -pause_button = gtk_button_new_from_stock(GTK_STOCK_MEDIA_PAUSE); +pause_button = gtk_button_new_from_icon_name("media-playback-pause", + GTK_ICON_SIZE_BU
Bug#1000093: mysql-workbench: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch, basically only build-tested (I also ran it but I find it difficult to test specifically the affected code). Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/193 Author: Yavor Doganov Forwarded: no Last-Update: 2024-01-09 --- --- mysql-workbench-8.0.32+dfsg.orig/CMakeLists.txt +++ mysql-workbench-8.0.32+dfsg/CMakeLists.txt @@ -119,7 +119,7 @@ endif(UNIX) -pkg_check_modules(PCRE REQUIRED libpcre libpcrecpp) +pkg_check_modules(PCRE REQUIRED libpcre2-8) pkg_check_modules(CAIRO REQUIRED cairo>=1.5.12) pkg_check_modules(UUID REQUIRED uuid) pkg_check_modules(LIBZIP REQUIRED libzip) --- mysql-workbench-8.0.32+dfsg.orig/library/grt/src/grtpp_shell.cpp +++ mysql-workbench-8.0.32+dfsg/library/grt/src/grtpp_shell.cpp @@ -21,7 +21,8 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include "grtpp_shell.h" using namespace grt; @@ -30,28 +31,34 @@ char *get_value_from_text_ex_opt(const char *txt, int txt_length, const char *regexpr, unsigned int substring_nr, int options_for_exec) { - pcre *pcre_exp; - const char *error_str; - int erroffset; - int o_vector[O_VECTOR_COUNT]; - int rc; - const char *ret_val; + pcre2_code *pcre_exp; + pcre2_match_data *md; + int error; + PCRE2_SIZE erroffset; + PCRE2_SIZE *o_vector; + PCRE2_UCHAR *ret_val; char *value = NULL; if (txt && *txt) { -pcre_exp = pcre_compile(regexpr, PCRE_CASELESS, _str, , NULL); +pcre_exp = pcre2_compile(reinterpret_cast(regexpr), + PCRE2_ZERO_TERMINATED, PCRE2_CASELESS, + , , NULL); if (pcre_exp) { - if ((rc = pcre_exec(pcre_exp, NULL, txt, txt_length, 0, options_for_exec, o_vector, O_VECTOR_COUNT)) > 0) { -if (o_vector[substring_nr * 2] != -1) { - pcre_get_substring(txt, o_vector, rc, substring_nr, _val); + md = pcre2_match_data_create(O_VECTOR_COUNT, NULL); + if (pcre2_match(pcre_exp, reinterpret_cast(txt), + txt_length, 0, options_for_exec, md, NULL) > 0) { +o_vector = pcre2_get_ovector_pointer(md); +if ((int)o_vector[substring_nr * 2] > 0) { + pcre2_substring_get_bynumber(md, substring_nr, _val, ); - value = g_strdup(ret_val); + value = g_strdup(reinterpret_cast(ret_val)); - pcre_free_substring((char *)ret_val); + pcre2_substring_free(ret_val); } } - pcre_free(pcre_exp); + pcre2_code_free(pcre_exp); + pcre2_match_data_free(md); } } --- mysql-workbench-8.0.32+dfsg.orig/backend/wbprivate/sqlide/db_sql_editor_history_be.cpp +++ mysql-workbench-8.0.32+dfsg/backend/wbprivate/sqlide/db_sql_editor_history_be.cpp @@ -26,7 +26,6 @@ #include #include -#include #include "db_sql_editor_history_be.h" #include "sqlide/recordset_data_storage.h" --- mysql-workbench-8.0.32+dfsg.orig/backend/wbpublic/grt/grt_string_list_model.cpp +++ mysql-workbench-8.0.32+dfsg/backend/wbpublic/grt/grt_string_list_model.cpp @@ -22,7 +22,8 @@ */ #include "grt_string_list_model.h" -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include "grtpp_util.h" using namespace bec; @@ -266,33 +267,43 @@ } // compile regexp - pcre *patre; + pcre2_code *patre; + pcre2_match_data *md; { -const char *error; -int erroffset; -patre = pcre_compile(regexp.c_str(), PCRE_UTF8 | PCRE_EXTRA, , , NULL); -if (!patre) +char error[120]; +PCRE2_SIZE erroffset; +int err; +patre = pcre2_compile(reinterpret_cast(regexp.c_str()), + PCRE2_ZERO_TERMINATED, PCRE2_UTF, + , , NULL); +if (!patre) { + pcre2_get_error_message(err, reinterpret_cast(error), + sizeof(error)); throw std::logic_error("error compiling regex " + std::string(error)); +} } // sift items size_t n = 0; + md = pcre2_match_data_create_from_pattern(patre, NULL); for (std::vector::iterator i = items.begin(); i != items.end(); ++i, ++n) { if (*i) { const Item_handler = _items[n]; - int patres[2]; + PCRE2_SIZE *patres; - int substr_count = pcre_exec(patre, NULL, item.val.c_str(), static_cast(item.val.size()), 0, 0, patres, - sizeof(patres) / sizeof(int)); + int substr_count = pcre2_match(patre, reinterpret_cast(item.val.c_str()), + item.val.size(), 0, 0, md, NULL); + patres = pcre2_get_ovector_pointer(md); - if (substr_count > 0 && patres[1] == (int)item.val.size()) + if (substr_count > 0 && patres[1] == item.val.size()) *i = match_means_visible; else *i = !match_means_visible;
Bug#1000113: kodi: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch; I did my best to test it. I believe the changes to the CRegExp class (xbmc/utils/RegExp.*) are sane; they are tested in xbmc/utils/test/TestRegexp.cpp and some other test programs that use CRegExp. I added three more test cases: invalid pattern, UTF-8 compilation/matching, and JIT. The latter two should pass on all the buildds since PCRE2 is built everywhere with Unicode support, and on those architectures where JIT support is not available, m_JitSupported will be false so the related functions in the methods RegComp and PrivateRegFind will not be invoked. Furthermore, according to the PCRE2 documentation, an application doesn't need to check explicitly for JIT support because all of the PCRE2 JIT-related functions have dummy placeholders and silently do nothing if JIT support is not available. The changes to CFTPParse (xbmc/filesystem/FTPParse.cpp) are clumsy, overly verbose code; I'm not proud of it at all. I tried to minimize casting as much as possible. AFAICS it's used only to obtain an ftp directory contents. I tried adding some directories from ftp.gnustep.org as source, but of course there are no media files there. Then I installed an FTP server and populated /srv/ftp/ with some video files. Kodi displays their properties and plays them, but I cannot be sure that CFTPParse methods are actually used. I can't put breakpoints in gdb as the app runs in fullscreen mode and I don't know how to switch to normal mode. (In hindsight, I guess I could have added some printf statements but it's too late now and the beast takes nearly 4 hours to build on my machine.) An unpleasant obstacle was that Kodi frequently crashes my videocard driver (nouveau) which made testing very frustrating. I guess the patch needs more testing and a closer look by someone familiar with this package (ideally both as a user and maintainer), on a machine that is capable of running Kodi. Please let me know if there are problems that require correction. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/1000113 Author: Yavor Doganov Forwarded: no Last-Update: 2024-01-07 --- --- kodi-20.2+dfsg.orig/cmake/modules/FindPCRE.cmake +++ kodi-20.2+dfsg/cmake/modules/FindPCRE.cmake @@ -77,45 +77,34 @@ else() # Populate paths for find_package_handle_standard_args - find_path(PCRE_INCLUDE_DIR pcre.h) + find_path(PCRE_INCLUDE_DIR pcre2.h) - find_library(PCRECPP_LIBRARY_RELEASE NAMES pcrecpp) - find_library(PCRECPP_LIBRARY_DEBUG NAMES pcrecppd) - - find_library(PCRE_LIBRARY_RELEASE NAMES pcre) - find_library(PCRE_LIBRARY_DEBUG NAMES pcred) + find_library(PCRE_LIBRARY_RELEASE NAMES pcre2-8) endif() else() if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_PCRE libpcrecpp QUIET) + pkg_check_modules(PC_PCRE libpcre2-8 QUIET) endif() -find_path(PCRE_INCLUDE_DIR pcrecpp.h +find_path(PCRE_INCLUDE_DIR pcre2.h PATHS ${PC_PCRE_INCLUDEDIR}) -find_library(PCRECPP_LIBRARY_RELEASE NAMES pcrecpp - PATHS ${PC_PCRE_LIBDIR}) -find_library(PCRE_LIBRARY_RELEASE NAMES pcre +find_library(PCRE_LIBRARY_RELEASE NAMES pcre2-8 PATHS ${PC_PCRE_LIBDIR}) -find_library(PCRECPP_LIBRARY_DEBUG NAMES pcrecppd - PATHS ${PC_PCRE_LIBDIR}) -find_library(PCRE_LIBRARY_DEBUG NAMES pcred - PATHS ${PC_PCRE_LIBDIR}) set(PCRE_VERSION ${PC_PCRE_VERSION}) endif() include(SelectLibraryConfigurations) - select_library_configurations(PCRECPP) select_library_configurations(PCRE) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(PCRE -REQUIRED_VARS PCRECPP_LIBRARY PCRE_LIBRARY PCRE_INCLUDE_DIR +REQUIRED_VARS PCRE_LIBRARY PCRE_INCLUDE_DIR VERSION_VAR PCRE_VERSION) if(PCRE_FOUND) -set(PCRE_LIBRARIES ${PCRECPP_LIBRARY} ${PCRE_LIBRARY}) +set(PCRE_LIBRARIES ${PCRE_LIBRARY}) set(PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR}) if(WIN32) set(PCRE_DEFINITIONS -DPCRE_STATIC=1) @@ -166,5 +155,5 @@ endif() endif() - mark_as_advanced(PCRE_INCLUDE_DIR PCRECPP_LIBRARY PCRE_LIBRARY) + mark_as_advanced(PCRE_INCLUDE_DIR PCRE_LIBRARY) endif() --- kodi-20.2+dfsg.orig/xbmc/utils/RegExp.h +++ kodi-20.2+dfsg/xbmc/utils/RegExp.h @@ -13,16 +13,8 @@ #include #include -/* make sure stdlib.h is included before including pcre.h inside the - namespace; this works around stdlib.h definitions also living in - the PCRE namespace */ -#include - -namespace PCRE { -struct real_pcre_jit_stack; // forward declaration for PCRE without JIT -typedef struct real_pcre_jit_stack pcre_jit_stack; -#include -} +#define PCRE2_CODE_UNIT_WIDTH 8 +#include class CRegExp
Bug#1000100: eiskaltdcpp: depends on obsolete pcre3 library
Control: tags -1 + patch Please find a patch attached; build-tested only. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/1000100 Author: Yavor Doganov Forwarded: no Last-Update: 2024-01-02 --- --- eiskaltdcpp-2.4.2.orig/cmake/FindPCRE.cmake +++ eiskaltdcpp-2.4.2/cmake/FindPCRE.cmake @@ -4,23 +4,22 @@ # PCRE_INCLUDE_DIR - the PCRE include directory # PCRE_LIBRARIES - link these to use PCRE -if(PCRE_INCLUDE_DIR AND PCRE_LIBRARY AND PCRECPP_LIBRARY) +if(PCRE_INCLUDE_DIR AND PCRE_LIBRARY) set(PCRE_FIND_QUIETLY TRUE) -endif(PCRE_INCLUDE_DIR AND PCRE_LIBRARY AND PCRECPP_LIBRARY) +endif(PCRE_INCLUDE_DIR AND PCRE_LIBRARY) # Include dir -find_path(PCRE_INCLUDE_DIR NAMES pcre.h) +find_path(PCRE_INCLUDE_DIR NAMES pcre2.h) # Libraries -find_library(PCRE_LIBRARY NAMES pcre) -find_library(PCRECPP_LIBRARY NAMES pcrecpp) +find_library(PCRE_LIBRARY NAMES pcre2-8) -if(PCRE_LIBRARY AND PCRECPP_LIBRARY) - set(PCRE_LIBRARIES ${PCRECPP_LIBRARY} ${PCRE_LIBRARY}) -endif(PCRE_LIBRARY AND PCRECPP_LIBRARY) +if(PCRE_LIBRARY) + set(PCRE_LIBRARIES ${PCRE_LIBRARY}) +endif(PCRE_LIBRARY) INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG PCRE_LIBRARIES PCRE_INCLUDE_DIR) -MARK_AS_ADVANCED(PCRE_LIBRARIES PCRE_INCLUDE_DIR PCRE_LIBRARY PCRECPP_LIBRARY) +MARK_AS_ADVANCED(PCRE_LIBRARIES PCRE_INCLUDE_DIR PCRE_LIBRARY) --- eiskaltdcpp-2.4.2.orig/dcpp/ADLSearch.cpp +++ eiskaltdcpp-2.4.2/dcpp/ADLSearch.cpp @@ -32,7 +32,8 @@ #include "StringTokenizer.h" #ifdef USE_PCRE -#include "pcrecpp.h" +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #endif namespace dcpp { @@ -172,11 +173,28 @@ bool ADLSearch::searchAll(const string& s) { #ifdef USE_PCRE if(bUseRegexp){ -pcrecpp::RE_Options options; -options.set_utf8(true); -options.set_caseless(true); -pcrecpp::RE regexp(regexpstring, options); -if(regexp.FullMatch(s)) +pcre2_code *re; +pcre2_match_data *md; +PCRE2_SPTR pat, subj; +PCRE2_SIZE offset; +uint32_t utf = 0, options = 0; +int rc; + +pcre2_config(PCRE2_CONFIG_UNICODE, ); +if(utf) +options |= PCRE2_UTF; +options |= PCRE2_CASELESS; +pat = reinterpret_cast(regexpstring.c_str()); +subj = reinterpret_cast(s.c_str()); +re = pcre2_compile(pat, PCRE2_ZERO_TERMINATED, options, + , , nullptr); +if(offset != 0) +return false; +md = pcre2_match_data_create_from_pattern(re, nullptr); +rc = pcre2_match(re, subj, s.size(), 0, 0, md, nullptr); +pcre2_code_free(re); +pcre2_match_data_free(md); +if(rc >= 0) return true; else return false;
Bug#1000005: passwordmaker-cli: depends on obsolete pcre3 library
Control: tags -1 + patch Please find a patch attached. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/105 Bug: https://forums.passwordmaker.org/index.php?topic=1834.0 Author: Yavor Doganov Forwarded: no Last-Update: 2024-01-02 --- --- passwordmaker-cli-1.5+dfsg.orig/unix.mak +++ passwordmaker-cli-1.5+dfsg/unix.mak @@ -34,7 +34,7 @@ LDFLAGS += $(shell dpkg-buildflags --get LDFLAGS) CPPFLAGS += $(shell dpkg-buildflags --get CPPFLAGS) INCPATH = -I. -LIBS = -lmhash -lpcrecpp +LIBS = -lmhash -lpcre2-8 ifeq ($(USE_MAC), 1) CFLAGS := $(CFLAGS) -m32 --- passwordmaker-cli-1.5+dfsg.orig/urlsearch.cpp +++ passwordmaker-cli-1.5+dfsg/urlsearch.cpp @@ -24,7 +24,8 @@ #include #include #include -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include "stdafx.h" #include "tinyxml.h" #include "urlsearch.h" @@ -32,9 +33,24 @@ using namespace std; int UrlSearch::regexCmp(const char *regexp, const char *string) { - pcrecpp::RE re(regexp); + pcre2_code *re; + pcre2_match_data *md; + PCRE2_SPTR pat, subj; + PCRE2_SIZE offset; + int rc; - if(re.FullMatch(string)) { + pat = reinterpret_cast(regexp); + subj = reinterpret_cast(string); + re = pcre2_compile(pat, PCRE2_ZERO_TERMINATED, 0, + , , nullptr); + if(offset != 0) { + return 0; + } + md = pcre2_match_data_create_from_pattern(re, nullptr); + rc = pcre2_match(re, subj, PCRE2_ZERO_TERMINATED, 0, 0, md, nullptr); + pcre2_code_free(re); + pcre2_match_data_free(md); + if(rc >= 0) { return 1; } else {
Bug#999956: snort: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch (it applies to the latest upstream release 2.9.20 as well but not to the 3.x series). Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/56 Author: Yavor Doganov Forwarded: no Last-Update: 2024-01-02 --- --- snort-2.9.15.1.orig/configure.in +++ snort-2.9.15.1/configure.in @@ -465,19 +465,21 @@ CPPFLAGS="${CPPFLAGS} -I${with_libpcre_includes}" ICONFIGFLAGS="${ICONFIGFLAGS} -I${with_libpcre_includes}" else -CPPFLAGS="${CPPFLAGS} `pcre-config --cflags`" +CPPFLAGS="${CPPFLAGS} `pcre2-config --cflags`" fi if test "x$with_libpcre_libraries" != "xno"; then LDFLAGS="${LDFLAGS} -L${with_libpcre_libraries}" else -LDFLAGS="${LDFLAGS} `pcre-config --libs`" +LDFLAGS="${LDFLAGS} `pcre2-config --libs8`" fi # PCRE configuration (required) # Verify that we have the headers PCRE_H="" -AC_CHECK_HEADERS(pcre.h,, PCRE_H="no") +AC_CHECK_HEADERS([pcre2.h], [], [PCRE_H="no"], [[ +#define PCRE2_CODE_UNIT_WIDTH 8 +]]) if test "x$PCRE_H" = "xno"; then echo echo " ERROR! Libpcre header not found." @@ -487,36 +489,13 @@ # Verify that we have the library PCRE_L="" -pcre_version_six="" -AC_CHECK_LIB(pcre, pcre_compile, ,PCRE_L="no") +AC_CHECK_LIB([pcre2-8], [pcre2_compile_8], [], [PCRE_L="no"]) if test "x$PCRE_L" = "xno"; then echo echo " ERROR! Libpcre library not found." echo " Get it from http://www.pcre.org; echo exit 1 -else -AC_MSG_CHECKING(for libpcre version 6.0 or greater) -AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ - #if (PCRE_MAJOR < 6) - #error "Version failure" - #else - int a, b = 0, c = 0, d = 0; - pcre *tmp = NULL; - a = pcre_copy_named_substring(tmp, "", , c, "", "", d); - #endif - ]])],[pcre_version_six="yes"],[pcre_version_six="no"]) -fi - -if test "x$pcre_version_six" != "xyes"; then -AC_MSG_RESULT(no) -echo -echo "ERROR! Libpcre library version >= 6.0 not found." -echo "Get it from http://www.pcre.org; -echo -exit 1 -else -AC_MSG_RESULT(yes) fi # OPENSSL SHA configuration (optional) --- snort-2.9.15.1.orig/src/dynamic-plugins/sf_engine/sf_snort_plugin_api.h +++ snort-2.9.15.1/src/dynamic-plugins/sf_engine/sf_snort_plugin_api.h @@ -30,7 +30,8 @@ #ifndef SF_SNORT_PLUGIN_API_H_ #define SF_SNORT_PLUGIN_API_H_ -#include "pcre.h" +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include "stdio.h" #ifndef WIN32 @@ -226,7 +227,7 @@ { char *expr; void *compiled_expr; -void *compiled_extra; +void *ctxt; uint32_t compile_flags; uint32_t flags; /* must include a CONTENT_BUF_X */ int32_t offset; @@ -507,7 +508,7 @@ ENGINE_LINKAGE void setAltDetect(uint8_t *buf, uint16_t altLen); ENGINE_LINKAGE int pcreExecWrapper(const PCREInfo *pcre_info, const char *buf, int len, int start_offset, -int options, int *ovector, int ovecsize); +int options, size_t *ovector, int ovecsize); static inline int invertMatchResult(int retVal) { --- snort-2.9.15.1.orig/src/detection-plugins/sp_pcre.h +++ snort-2.9.15.1/src/detection-plugins/sp_pcre.h @@ -49,17 +49,18 @@ void SetupPcre(void); -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include typedef struct _PcreData { -pcre *re; /* compiled regex */ -pcre_extra *pe; /* studied regex foo */ -int options;/* sp_pcre specfic options (relative & inverse) */ +pcre2_code *re; /* compiled regex */ +pcre2_match_context *ctxt; +uint32_t options; /* sp_pcre specfic options (relative & inverse) */ char *expression; -uint32_t search_offset; +PCRE2_SIZE search_offset; } PcreData; -void PcreCapture(struct _SnortConfig *sc, const void *code, const void *extra); +void PcreCapture(struct _SnortConfig *sc, const void *code); void PcreFree(void *d); uint32_t PcreHash(void *d); int PcreCompare(void *l, void *r); --- snort-2.9.15.1.orig/src/detection-plugins/sp_pcre.c +++ snort-2.9.15.1/src/detection-plugins/sp_pcre.c @@ -46,7 +46,8 @@ #include "sp_pcre.h" -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include "snort.h" #include "profiler.h" @@ -77,8 +78,8 @@ PcreData *data = (PcreData *)d; free(data->expression); -free(data->re); -free(data->pe); +pcre2_code_free(data->re); +pcre2_match_context_free(data->ctxt); free(data); } @@ -161,8 +162,8 @@ pcre_dup->expression = pcre_src->expression;
Bug#1000126: gpt: depends on obsolete pcre3 library
Control: tags -1 + patch Please find a patch attached. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/1000126 Author: Yavor Doganov Forwarded: no Last-Update: 2024-01-02 --- --- gpt.orig/configure.ac +++ gpt/configure.ac @@ -109,10 +109,10 @@ # AC_MSG_CHECKING(for pcre) -AC_CHECK_PROG(has_pcre, pcre-config, yes) +AC_CHECK_PROG(has_pcre, pcre2-config, yes) if test "x$has_pcre" = "xyes"; then - PCRE_CONFIG="pcre-config" + PCRE_CONFIG="pcre2-config" else AC_MSG_ERROR( [ @@ -123,8 +123,8 @@ #pcrecpp -PCRE_INC=`${PCRE_CONFIG} --cglags` -PCRE_LIB="-L`${PCRE_CONFIG} --prefix`/lib -lpcrecpp" +PCRE_INC=`${PCRE_CONFIG} --cflags` +PCRE_LIB=`${PCRE_CONFIG} --libs8` AC_SUBST(PCRE_INC) AC_SUBST(PCRE_LIB) --- gpt.orig/src/modules/interpreter/InterpreterDBG.cpp +++ gpt/src/modules/interpreter/InterpreterDBG.cpp @@ -33,7 +33,8 @@ #include #endif -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include #ifndef WIN32 @@ -403,15 +404,40 @@ void InterpreterDBG::processBreakpointCMD(string& bpcommand) { //cerr << "process breakpoint " << bpcommand << endl; - string cmd; - string file; - int line; - pcrecpp::RE re("breakpoint cmd=(add|remove).*file=\"([^\"]*)\".*line=(\\d+)"); - if(!re.FullMatch(bpcommand, , , )) { + pcre2_code *re; + pcre2_match_data *md; + PCRE2_UCHAR *str; + PCRE2_SPTR pat, subj; + PCRE2_SIZE offset; + int line, rc; + + pat = reinterpret_cast("breakpoint cmd=(add|remove).*file=\"([^\"]*)\".*line=(\\d+)"); + subj = reinterpret_cast(bpcommand.c_str()); + re = pcre2_compile(pat, PCRE2_ZERO_TERMINATED, 0, , , nullptr); + if(offset != 0) { +return; + } + + md = pcre2_match_data_create_from_pattern(re, nullptr); + rc = pcre2_match(re, subj, bpcommand.length(), 0, 0, md, nullptr); + pcre2_code_free(re); + if(rc != 4) { //cerr << PACKAGE << ": comando invalido (2): \"" << cmd << "\"" << endl; +pcre2_match_data_free(md); return; } + pcre2_substring_get_bynumber(md, 1, , ); + string cmd(reinterpret_cast(str)); + pcre2_substring_free(str); + pcre2_substring_get_bynumber(md, 2, , ); + string file(reinterpret_cast(str)); + pcre2_substring_free(str); + pcre2_substring_get_bynumber(md, 3, , ); + line = atoi((const char *)str); + pcre2_substring_free(str); + pcre2_match_data_free(md); + //cerr << PACKAGE << ": capturado:" << cmd << ":" << file << ":" << line << endl; if(cmd == "add") {
Bug#1020989: trafficserver: failed to load plugin
On Mon, Oct 24, 2022 at 10:39:45AM +0200, Jean Baptiste Favre wrote: > Please provide some more details on you issue: > * which plugin do you use? Is there any specific configuration? I am not YunQiang Su but I'm pretty sure we're talking about the same thing. Any remap plugin will fail to load; for example, add the following to /etc/trafficserver/remap.config (example from the manual): map http://a.com http://b.com @plugin=regex_remap.so @pparam=maps.reg With contents of /etc/trafficserver/maps.reg (again from the manual): ^/(ogre.*)/more http://www.ogre.com/$h/$0/$1 Global plugins are not affected by this issue. > * do you have some trafficserver's logs to provide? Here you are (/var/log/trafficserver/diags.log): [Dec 28 20:00:59.369] traffic_server ERROR: plugin 'regex_remap.so' failed to load: /run/trafficserver/adb67a84-e739-4e8f-bc9d-c4797cec16e4/usr/lib/trafficserver/modules/regex_remap.so: failed to map segment from shared object [Dec 28 20:00:59.369] traffic_server ERROR: [ReverseProxy] failed to add remap rule at /etc/trafficserver/remap.config line 199: /run/trafficserver/adb67a84-e739-4e8f-bc9d-c4797cec16e4/usr/lib/trafficserver/modules/regex_remap.so: failed to map segment from shared objectfailed to remove runtime copy: Success [Dec 28 20:00:59.369] traffic_server WARNING: something failed during BuildTable() -- check your remap plugins! [Dec 28 20:00:59.369] traffic_server FATAL: remap.config failed to load [Dec 28 19:46:23.246] traffic_server ERROR: plugin 'cachekey.so' failed to load: /run/trafficserver/c4edf320-f56b-4193-8554-7db2dccfa0a7/usr/lib/trafficserver/modules/cachekey.so: failed to map segment from shared object [Dec 28 19:46:23.246] traffic_server ERROR: [ReverseProxy] failed to add remap rule at /etc/trafficserver/remap.config line 197: /run/trafficserver/c4edf320-f56b-4193-8554-7db2dccfa0a7/usr/lib/trafficserver/modules/cachekey.so: failed to map segment from shared objectfailed to remove runtime copy: Success [Dec 28 19:46:23.246] traffic_server WARNING: something failed during BuildTable() -- check your remap plugins! [Dec 28 19:46:23.246] traffic_server FATAL: remap.config failed to load There are errors from dlopen. As the OP said, the culprit is that it copies the plugins from /usr/lib to /run and tries to dlopen them there. This is doomed to fail because, exactly as the OP said, /run is mounted with the "noexec" option. Upstream logic behind this is to dynamically reload plugins that are changed while the server is running. I guess it makes sense with custom plugins and some other scenarios but there's no way for this to work on Debian systems. The attached dirty hack removes this code but also leads to test failures of two test programs where this dynamic reloading functionality is tested. It is not a proper fix but at least makes remap plugins load again. Like the OP, I also believe this bug deserves RC severity. Additionally (and this is an entirely separate issue, completely unrelated with the problem described above), some global plugins fail to load as well, for various reasons: [Dec 28 19:34:21.066] traffic_server NOTE: loading plugin '/usr/lib/trafficserve r/modules/prefetch.so' [Dec 28 19:34:21.066] traffic_server ERROR: unable to find TSPluginInit function in '/usr/lib/trafficserver/modules/prefetch.so': /usr/lib/trafficserver/modules/prefetch.so: undefined symbol: TSPluginInit [Dec 28 19:34:21.066] traffic_server FATAL: unable to find TSPluginInit function in '/usr/lib/trafficserver/modules/prefetch.so': /usr/lib/trafficserver/modules/prefetch.so: undefined symbol: TSPluginInit There is indeed no such function, and according to the plugin API there should be. [Dec 29 14:31:12.743] traffic_server ERROR: [geoip_acl] No Geo library available! [Dec 29 14:31:12.743] traffic_server ERROR: [ReverseProxy] failed to add remap rule at /etc/trafficserver/remap.config line 206: failed to initialize plugin geoip_acl.so: Unknown plugin errorfailed to remove runtime copy: Success [Dec 29 14:31:12.744] traffic_server WARNING: something failed during BuildTable() -- check your remap plugins! [Dec 29 14:31:12.744] traffic_server FATAL: remap.config failed to load I have tested only those that are pcre-based. --- trafficserver-9.2.3+ds.orig/proxy/http/remap/PluginDso.cc +++ trafficserver-9.2.3+ds/proxy/http/remap/PluginDso.cc @@ -72,7 +72,7 @@ result = false; } else { PluginDebug(_tag, "plugin '%s' effective path: %s", _configPath.c_str(), _effectivePath.c_str()); - +#if 0 /* Copy the installed plugin DSO to a runtime directory if dynamic reload enabled */ std::error_code ec; if (isDynamicReloadEnabled() && !copy(_effectivePath, _runtimePath, ec)) { @@ -88,9 +88,9 @@ fs::file_status fs = fs::status(_effectivePath, ec); _mtime = fs::modification_time(fs); PluginDebug(_tag, "plugin '%s' modification time %ld", _configPath.c_str(), _mtime); - +#endif /* Now attempt
Bug#999938: trafficserver: depends on obsolete pcre3 library
Control: tags -1 + patch sid trixie Please find attached a patch which I admit I could not test properly. This package is fairly specialized and I'm absolutely unfamiliar with it. It requires some extra knowledge and right configuration in order to expose the functionality that has to be tested. Also, some of the affected plugins fail to load due to #1020989. The testsuite passes, and the server runs and loads some of the pcre-based global plugins. I also tested loading of the remap plugins with a hack to workaround #1020989 (I'll follow-up there with more details). Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/bug=38 Bug: https://github.com/apache/trafficserver/issues/8780 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-29 --- --- trafficserver-9.2.3+ds.orig/build/pcre.m4 +++ trafficserver-9.2.3+ds/build/pcre.m4 @@ -45,12 +45,12 @@ fi ], [ - AC_CHECK_PROG(PCRE_CONFIG, pcre-config, pcre-config) + AC_CHECK_PROG(PCRE_CONFIG, pcre2-config, pcre2-config) if test "x$PCRE_CONFIG" != "x"; then enable_pcre=yes pcre_base_dir="`$PCRE_CONFIG --prefix`" pcre_include="`$PCRE_CONFIG --cflags | sed -es/-I//`" -pcre_ldflags="`$PCRE_CONFIG --libs | sed -es/-lpcre// -es/-L//`" +pcre_ldflags="`$PCRE_CONFIG --libs8 | sed -es/-lpcre2-8// -es/-L//`" fi ]) @@ -58,7 +58,7 @@ AC_MSG_CHECKING([for pcre location]) AC_CACHE_VAL(ats_cv_pcre_dir,[ for dir in /usr/local /usr ; do -if test -d $dir && ( test -f $dir/include/pcre.h || test -f $dir/include/pcre/pcre.h ); then +if test -d $dir && ( test -f $dir/include/pcre2.h ); then ats_cv_pcre_dir=$dir break fi @@ -76,7 +76,7 @@ fi else AC_MSG_CHECKING(for pcre headers in $pcre_include) - if test -d $pcre_include && test -d $pcre_ldflags && ( test -f $pcre_include/pcre.h || test -f $pcre_include/pcre/pcre.h ); then + if test -d $pcre_include && test -d $pcre_ldflags && ( test -f $pcre_include/pcre2.h ); then AC_MSG_RESULT([ok]) else AC_MSG_RESULT([not found]) @@ -93,14 +93,15 @@ TS_ADDTO(LDFLAGS, [-L${pcre_ldflags}]) TS_ADDTO_RPATH(${pcre_ldflags}) fi - AC_CHECK_LIB([pcre], [pcre_exec], [pcre_have_libs=1]) + AC_CHECK_LIB([pcre2-8], [pcre2_match_8], [pcre_have_libs=1]) if test "$pcre_have_libs" != "0"; then -AC_CHECK_HEADERS(pcre.h, [pcre_have_headers=1]) -AC_CHECK_HEADERS(pcre/pcre.h, [pcre_have_headers=1]) +AC_CHECK_HEADERS([pcre2.h], [pcre_have_headers=1], [], [[ +#define PCRE2_CODE_UNIT_WIDTH 8 +]]) fi if test "$pcre_have_headers" != "0"; then AC_DEFINE(HAVE_LIBPCRE,1,[Compiling with pcre support]) -AC_SUBST(LIBPCRE, [-lpcre]) +AC_SUBST(LIBPCRE, [-lpcre2-8]) else enable_pcre=no CPPFLAGS=$saved_cppflags --- trafficserver-9.2.3+ds.orig/include/tscore/Regex.h +++ trafficserver-9.2.3+ds/include/tscore/Regex.h @@ -30,11 +30,8 @@ #include "tscore/ink_config.h" -#ifdef HAVE_PCRE_PCRE_H -#include -#else -#include -#endif +#define PCRE2_CODE_UNIT_WIDTH 8 +#include /// Match flags for regular expression evaluation. enum REFlags { @@ -94,8 +91,7 @@ int get_capture_count(); private: - pcre *regex = nullptr; - pcre_extra *regex_extra = nullptr; + pcre2_code *regex = nullptr; }; /** Deterministic Finite state Automata container. --- trafficserver-9.2.3+ds.orig/include/tscore/ink_memory.h +++ trafficserver-9.2.3+ds/include/tscore/ink_memory.h @@ -22,6 +22,7 @@ */ #pragma once +#ifdef __cplusplus #include #include #include @@ -29,6 +30,7 @@ #include #include #include +#endif #include "tscore/ink_config.h" @@ -56,6 +58,9 @@ #include #endif // ! TS_HAS_JEMALLOC +#define PCRE2_CODE_UNIT_WIDTH 8 +#include + #ifndef MADV_NORMAL #define MADV_NORMAL 0 #endif @@ -80,18 +85,9 @@ extern "C" { #endif /* __cplusplus */ -struct IOVec : public iovec { - IOVec() - { -iov_base = nullptr; -iov_len = 0; - } - IOVec(void *base, size_t len) - { -iov_base = base; -iov_len = len; - } -}; +extern pcre2_general_context *gen_ctxt; +extern pcre2_compile_context *comp_ctxt; +extern pcre2_match_context *match_ctxt; void *ats_malloc(size_t size); void *ats_calloc(size_t nelem, size_t elsize); @@ -100,6 +96,10 @@ void ats_free(void *ptr); void *ats_free_null(void *ptr); +void pcre_init(void); +void *pcre_malloc(PCRE2_SIZE size, void *data); +void pcre_free(void *ptr, void *data); + int ats_msync(caddr_t addr, size_t len, caddr_t end, int flags); int ats_madvise(caddr_t addr, size_t len, int flags); int ats_mlock(caddr_t addr, size_t len); @@ -142,6 +142,19 @@ #include +struct IOVec : public iovec { + IOVec() + { +iov_base = nullptr; +iov_len = 0; + } + IOVec(void *base, size_t len) + { +iov_base = base; +iov
Bug#1000044: ccze: depends on obsolete pcre3 library
Axel Beckert wrote: > sorry for the late reply, but I only managed to continue on this now > as I'm on holidays now. No problem at all, we are all busy. And it's not late according to my standards. :) > I though got another crash on this line: > > Dec 24 06:43:16 c6 kernel: net_ratelimit: 1 callbacks suppressed Good catch! This is a case when process is allocated by pcre2_substring_get_bynumber but since there are no square brackets around, the strdup call at line 68 doesn't happen. > I think I managed to fix it and will also upload, but I'd be happy for > a short review of yours: Removing the free call avoids the abort but leads to a memory leak. Attached is a better fix, I think (tested with your line above and my syslog, and of course with valgrind). diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch index a5ee6b3..334d4e3 100644 --- a/debian/patches/pcre2.patch +++ b/debian/patches/pcre2.patch @@ -2473,7 +2473,7 @@ Last-Update: 2023-12-24 { char *date = NULL, *host = NULL, *send = NULL, *process = NULL; char *msg = NULL, *pid = NULL, *tmp = NULL, *toret; -+ int use_free = 0; ++ int msg_use_free = 0, process_use_free = 0; + size_t l; - pcre_get_substring (str, offsets, match, 1, (const char **)); @@ -2488,7 +2488,7 @@ Last-Update: 2023-12-24 -msg = strdup (send); +{ + msg = strdup (send); -+ use_free = 1; ++ msg_use_free = 1; +} else { @@ -2499,7 +2499,7 @@ Last-Update: 2023-12-24 } if (process) -@@ -60,8 +64,8 @@ +@@ -60,8 +64,9 @@ pid = strndup ([1], (size_t)(t2 - t - 1)); tmp = strndup (process, (size_t)(t - process)); @@ -2507,10 +2507,11 @@ Last-Update: 2023-12-24 -process = tmp; +pcre2_substring_free (process); +process = strdup (tmp); ++process_use_free = 1; } } -@@ -87,12 +91,17 @@ +@@ -87,12 +92,20 @@ else toret = strdup (send); @@ -2522,18 +2523,21 @@ Last-Update: 2023-12-24 + pcre2_substring_free (date); + pcre2_substring_free (host); + pcre2_substring_free (send); -+ /* free (process); */ free (pid); + free (tmp); + -+ if (use_free) ++ if (process_use_free) ++free (process); ++ else ++pcre2_substring_free (process); ++ if (msg_use_free) +free (msg); + else +pcre2_substring_free (msg); return toret; } -@@ -100,33 +109,34 @@ +@@ -100,33 +113,34 @@ static void ccze_syslog_setup (void) {
Bug#1000112: kjs: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch; build-tested only. I was unsure what to do with the recursion limit code in the match method. In the old PCRE3, PCRE_CONFIG_STACKRECURSE is 1 because of the recursion implementation, which is stack-based. In PCRE2, the corresponding parameter PCRE2_CONFIG_STACKRECURSE is obsolete and always 0. Furthermore, according to pcre2api(3), if the recursion is great enough, workspace vectors are allocated on the heap from version 10.32 onwards. It also says that only local variables are allocated on the stack and even a small stack can support a lot of recursion. So I concluded that limiting the stack space is unnecessary with PCRE2. I guess that only runtime tests can show if this is true, but as I am not a Qt/KDE person I am unable to perform them, I'm afraid. In any case, it is trivial to limit both the stack and the heap via a match context -- just let me know and I'll make the required modifications. P.S. This patch applies cleanly to the latest upstream release (5.113.0) but I haven't made a build test with it. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/1000112 Bug: https://bugs.kde.org/show_bug.cgi?id=457338 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-23 --- --- kjs-5.107.0.orig/cmake/FindPCRE.cmake +++ kjs-5.107.0/cmake/FindPCRE.cmake @@ -11,10 +11,10 @@ # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -if (PCRE_INCLUDE_DIR AND PCRE_PCREPOSIX_LIBRARY AND PCRE_PCRE_LIBRARY) +if (PCRE_INCLUDE_DIR AND PCRE_PCRE_LIBRARY) # Already in cache, be silent set(PCRE_FIND_QUIETLY TRUE) -endif (PCRE_INCLUDE_DIR AND PCRE_PCREPOSIX_LIBRARY AND PCRE_PCRE_LIBRARY) +endif (PCRE_INCLUDE_DIR AND PCRE_PCRE_LIBRARY) if (NOT WIN32) @@ -22,23 +22,21 @@ # in the FIND_PATH() and FIND_LIBRARY() calls find_package(PkgConfig) - pkg_check_modules(PC_PCRE QUIET libpcre) + pkg_check_modules(PC_PCRE QUIET libpcre2-8) set(PCRE_DEFINITIONS ${PC_PCRE_CFLAGS_OTHER}) endif (NOT WIN32) -find_path(PCRE_INCLUDE_DIR pcre.h +find_path(PCRE_INCLUDE_DIR pcre2.h HINTS ${PC_PCRE_INCLUDEDIR} ${PC_PCRE_INCLUDE_DIRS} - PATH_SUFFIXES pcre) + ) -find_library(PCRE_PCRE_LIBRARY NAMES pcre pcred HINTS ${PC_PCRE_LIBDIR} ${PC_PCRE_LIBRARY_DIRS}) - -find_library(PCRE_PCREPOSIX_LIBRARY NAMES pcreposix pcreposixd HINTS ${PC_PCRE_LIBDIR} ${PC_PCRE_LIBRARY_DIRS}) +find_library(PCRE_PCRE_LIBRARY NAMES pcre2-8 HINTS ${PC_PCRE_LIBDIR} ${PC_PCRE_LIBRARY_DIRS}) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(PCRE DEFAULT_MSG PCRE_INCLUDE_DIR PCRE_PCRE_LIBRARY PCRE_PCREPOSIX_LIBRARY ) +find_package_handle_standard_args(PCRE DEFAULT_MSG PCRE_INCLUDE_DIR PCRE_PCRE_LIBRARY) -set(PCRE_LIBRARIES ${PCRE_PCRE_LIBRARY} ${PCRE_PCREPOSIX_LIBRARY}) +set(PCRE_LIBRARIES ${PCRE_PCRE_LIBRARY}) -mark_as_advanced(PCRE_INCLUDE_DIR PCRE_LIBRARIES PCRE_PCREPOSIX_LIBRARY PCRE_PCRE_LIBRARY) +mark_as_advanced(PCRE_INCLUDE_DIR PCRE_LIBRARIES PCRE_PCRE_LIBRARY) --- kjs-5.107.0.orig/src/kjs/regexp.h +++ kjs-5.107.0/src/kjs/regexp.h @@ -26,7 +26,8 @@ #include "global.h" #if HAVE_PCREPOSIX -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #else // POSIX regex - not so good... extern "C" { // bug with some libc5 distributions #include @@ -115,7 +116,7 @@ #endif private: #if HAVE_PCREPOSIX -pcre *_regex; +pcre2_code *_regex; #else regex_t _regex; #endif --- kjs-5.107.0.orig/src/kjs/regexp.cpp +++ kjs-5.107.0/src/kjs/regexp.cpp @@ -273,8 +273,8 @@ #if HAVE_PCREPOSIX // Determine whether libpcre has unicode support if need be.. if (utf8Support == Unknown) { -int supported; -pcre_config(PCRE_CONFIG_UTF8, (void *)); +uint32_t supported; +pcre2_config(PCRE2_CONFIG_UNICODE, ); utf8Support = supported ? Supported : Unsupported; } #endif @@ -282,50 +282,49 @@ UString intern = sanitizePattern(p); #if HAVE_PCREPOSIX -int options = 0; +uint32_t options = 0; // we are close but not 100% the same as Perl -#ifdef PCRE_JAVASCRIPT_COMPAT // introduced in PCRE 7.7 -options |= PCRE_JAVASCRIPT_COMPAT; -#endif +options |= (PCRE2_ALT_BSUX | PCRE2_MATCH_UNSET_BACKREF); // Note: the Global flag is already handled by RegExpProtoFunc::execute. // FIXME: That last comment is dubious. Not all RegExps get run through RegExpProtoFunc::execute. if (flags & IgnoreCase) { -options |= PCRE_CASELESS; +options |= PCRE2_CASELESS; } if (flags & Multiline) { -options |= PCRE_MULTILINE; +options |= PCRE2_MULTILINE; } if (utf8Support == Supported) { -options |= (PCRE_UTF8 | PCRE_NO_UTF8_CHECK); +options |= (PCRE2_UTF | PCRE2_NO_UTF_CHECK); } -const char *errorMessage; -int errorOffset; +PCRE2_UCHAR errorMessage[120]; +PCRE2_SIZE errorOffset; +int errCode;
Bug#999975: rdup: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch -- build-tested after adding -Wno-error to CFLAGS due to #941101. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/75 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-22 --- --- rdup-1.1.15.orig/configure.ac +++ rdup-1.1.15/configure.ac @@ -62,26 +62,28 @@ if test "$with_libpcre_includes" != "no"; then CFLAGS="${CFLAGS} -I${with_libpcre_includes}" else - CFLAGS="${CFLAGS} `pcre-config --cflags`" + CFLAGS="${CFLAGS} `pcre2-config --cflags`" fi if test "$with_libpcre_libraries" != "no"; then LIBS="${LIBS} -L${with_libpcre_libraries}" else - LIBS="${LIBS} `pcre-config --libs`" + LIBS="${LIBS} `pcre2-config --libs8`" fi # PCRE configuration (required) # Verify that we have the headers PCRE_H="" -AC_CHECK_HEADERS(pcre.h,, PCRE_H="no") +AC_CHECK_HEADERS([pcre2.h], [], [PCRE_H="no"], [[ +#define PCRE2_CODE_UNIT_WIDTH 8 +]]) if test "$PCRE_H" = "no"; then AC_MSG_ERROR([** No pcre library found.]) fi # Verify that we have the library PCRE_L="" -AC_CHECK_LIB(pcre, pcre_compile, ,PCRE_L="no") +AC_CHECK_LIB([pcre2-8], [pcre2_compile_8], [], [PCRE_L="no"]) if test "$PCRE_L" = "no"; then AC_MSG_ERROR([** No pcre library found.]) fi --- rdup-1.1.15.orig/gfunc.c +++ rdup-1.1.15/gfunc.c @@ -7,7 +7,8 @@ #include "rdup.h" #include "protocol.h" -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #ifdef HAVE_LIBNETTLE #include #else @@ -622,20 +623,26 @@ gboolean gfunc_regexp(GSList * l, char *n, size_t len) { GSList *k; - pcre *P; - int ovector[REG_VECTOR]; + pcre2_code *P; + pcre2_match_data *md; + md = pcre2_match_data_create(REG_VECTOR, NULL); for (k = g_slist_nth(l, 0); k; k = k->next) { - if (sig != 0) + if (sig != 0) { + pcre2_match_data_free(md); signal_abort(sig); + } - P = (pcre *) k->data; + P = (pcre2_code *) k->data; /* pcre_exec errors are all < 0, so >= 0 is some kind * of success */ - if (pcre_exec(P, NULL, n, len, 0, 0, ovector, REG_VECTOR) >= 0) + if (pcre2_match(P, (PCRE2_SPTR)n, len, 0, 0, md, NULL) >= 0) { + pcre2_match_data_free(md); return TRUE; + } } + pcre2_match_data_free(md); return FALSE; } --- rdup-1.1.15.orig/regexp.c +++ rdup-1.1.15/regexp.c @@ -6,7 +6,8 @@ */ #include "rdup.h" -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include GSList *pregex_list = NULL; @@ -18,15 +19,16 @@ { FILE *fp; char *buf; - const char *errbuf; - int erroff; + PCRE2_UCHAR errbuf[120]; + PCRE2_SIZE erroff; + int err; char delim; gpointer d; size_t l; size_t s; size_t re_length; ssize_t j; - pcre *P; + pcre2_code *P; if ((fp = fopen(file, "r")) == NULL) { msg(_("Could not open '%s\': %s"), file, strerror(errno)); @@ -45,18 +47,20 @@ /* buf[j - 1] holds the delimeter */ buf[j - 1] = '\0'; - if ((P = pcre_compile(buf, 0, , , NULL)) == NULL) { + if ((P = pcre2_compile((PCRE2_SPTR)buf, strlen(buf), 0, , , NULL)) == NULL) { /* error */ fclose(fp); + pcre2_get_error_message(err, errbuf, sizeof(errbuf)); msg(_ - ("Corrupt regular expression line: %zd, column %d: %s"), + ("Corrupt regular expression line: %zd, column %zu: %s"), l, erroff, errbuf); g_free(buf); return FALSE; } else { - pcre_fullinfo(P, NULL, PCRE_INFO_SIZE, _length); + pcre2_pattern_info(P, PCRE2_INFO_SIZE, _length); d = g_malloc(re_length); d = memcpy(d, P, re_length); + pcre2_code_free(P); pregex_list = g_slist_append(pregex_list, d); } l++;
Bug#1000014: mydumper: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch; build-tested only. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/114 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-22 --- --- mydumper-0.10.1.orig/cmake/modules/FindPCRE.cmake +++ mydumper-0.10.1/cmake/modules/FindPCRE.cmake @@ -11,10 +11,10 @@ # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -if (PCRE_INCLUDE_DIR AND PCRE_PCREPOSIX_LIBRARY AND PCRE_PCRE_LIBRARY) +if (PCRE_INCLUDE_DIR AND PCRE_PCRE_LIBRARY) # Already in cache, be silent set(PCRE_FIND_QUIETLY TRUE) -endif (PCRE_INCLUDE_DIR AND PCRE_PCREPOSIX_LIBRARY AND PCRE_PCRE_LIBRARY) +endif (PCRE_INCLUDE_DIR AND PCRE_PCRE_LIBRARY) if (NOT WIN32) @@ -22,24 +22,22 @@ # in the FIND_PATH() and FIND_LIBRARY() calls find_package(PkgConfig) - pkg_check_modules(PC_PCRE REQUIRED libpcre) + pkg_check_modules(PC_PCRE REQUIRED libpcre2-8) set(PCRE_DEFINITIONS ${PC_PCRE_CFLAGS_OTHER}) endif (NOT WIN32) -find_path(PCRE_INCLUDE_DIR pcre.h +find_path(PCRE_INCLUDE_DIR pcre2.h HINTS ${PC_PCRE_INCLUDEDIR} ${PC_PCRE_INCLUDE_DIRS} - PATH_SUFFIXES pcre) + ) -find_library(PCRE_PCRE_LIBRARY NAMES pcre HINTS ${PC_PCRE_LIBDIR} ${PC_PCRE_LIBRARY_DIRS}) - -find_library(PCRE_PCREPOSIX_LIBRARY NAMES pcreposix HINTS ${PC_PCRE_LIBDIR} ${PC_PCRE_LIBRARY_DIRS}) +find_library(PCRE_PCRE_LIBRARY NAMES pcre2-8 HINTS ${PC_PCRE_LIBDIR} ${PC_PCRE_LIBRARY_DIRS}) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(PCRE DEFAULT_MSG PCRE_INCLUDE_DIR PCRE_PCRE_LIBRARY PCRE_PCREPOSIX_LIBRARY ) +find_package_handle_standard_args(PCRE DEFAULT_MSG PCRE_INCLUDE_DIR PCRE_PCRE_LIBRARY ) -set(PCRE_LIBRARIES ${PCRE_PCRE_LIBRARY} ${PCRE_PCREPOSIX_LIBRARY}) +set(PCRE_LIBRARIES ${PCRE_PCRE_LIBRARY}) -mark_as_advanced(PCRE_INCLUDE_DIR PCRE_LIBRARIES PCRE_PCREPOSIX_LIBRARY PCRE_PCRE_LIBRARY) +mark_as_advanced(PCRE_INCLUDE_DIR PCRE_LIBRARIES PCRE_PCRE_LIBRARY) --- mydumper-0.10.1.orig/mydumper.c +++ mydumper-0.10.1/mydumper.c @@ -36,7 +36,8 @@ #include #include #include -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include #include #include "config.h" @@ -387,26 +388,31 @@ gboolean check_regex(char *database, char *table) { /* This is not going to be used in threads */ - static pcre *re = NULL; + static pcre2_code *re = NULL; + pcre2_match_data *md; int rc; - int ovector[9] = {0}; - const char *error; - int erroroffset; + PCRE2_UCHAR error[120]; + int err; + PCRE2_SIZE erroroffset; char *p; /* Let's compile the RE before we do anything */ if (!re) { -re = pcre_compile(regexstring, PCRE_CASELESS | PCRE_MULTILINE, , - , NULL); +re = pcre2_compile((PCRE2_SPTR)regexstring, strlen(regexstring), + PCRE2_CASELESS | PCRE2_MULTILINE, + , , NULL); if (!re) { + pcre2_get_error_message(err, error, sizeof(error)); g_critical("Regular expression fail: %s", error); exit(EXIT_FAILURE); } } p = g_strdup_printf("%s.%s", database, table); - rc = pcre_exec(re, NULL, p, strlen(p), 0, 0, ovector, 9); + md = pcre2_match_data_create(9, NULL); + rc = pcre2_match(re, (PCRE2_SPTR)p, strlen(p), 0, 0, md, NULL); + pcre2_match_data_free(md); g_free(p); return (rc > 0) ? TRUE : FALSE; --- mydumper-0.10.1.orig/server_detect.c +++ mydumper-0.10.1/server_detect.c @@ -15,73 +15,96 @@ Authors:Andrew Hutchings, SkySQL (andrew at skysql dot com) */ -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include #include #include "server_detect.h" int detect_server(MYSQL *conn) { - pcre *re = NULL; - const char *error; - int erroroffset; - int ovector[9] = {0}; + pcre2_code *re = NULL; + pcre2_match_data *md; + PCRE2_UCHAR error[120]; + PCRE2_SIZE erroroffset; + int err; int rc; const char *db_version = mysql_get_server_info(conn); // debug the version g_message("Server version reported as: %s", db_version); - re = pcre_compile(DETECT_TIDB_REGEX, 0, , , NULL); + re = pcre2_compile((PCRE2_SPTR)DETECT_TIDB_REGEX, PCRE2_ZERO_TERMINATED, + 0, , , NULL); if (!re) { +pcre2_get_error_message(err, error, sizeof(error)); g_critical("Regular expression fail: %s", error); exit(EXIT_FAILURE); } - rc = pcre_exec(re, NULL, db_version, strlen(db_version), 0, 0, ovector, 9); - pcre_free(re); + md = pcre2_match_data_create(9, NULL); + rc = pcre2_match(re, (PCRE2_SPTR)db_version, strlen(db_version), + 0, 0, md, NULL); + pcre2_code_free(re); if (rc > 0) { +pcre2_match_data_free(md); return SERVER_TYPE_TIDB; } - re = pcre_compile(DETECT_MYSQL_REGEX, 0, , , NULL); + re = pcre2_compile((PCRE2_SPTR)DETECT_MYSQL_REGEX, PCRE2_ZERO_TERMINATED, + 0, , , NULL);
Bug#999919: zoneminder: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch; build-tested only. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/19 Bug: https://github.com/ZoneMinder/zoneminder/issues/3384 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-22 --- --- zoneminder-1.36.33+dfsg1.orig/CMakeLists.txt +++ zoneminder-1.36.33+dfsg1/CMakeLists.txt @@ -396,17 +396,17 @@ endif() # pcre (using find_library and find_path) -find_library(PCRE_LIBRARIES pcre) +find_library(PCRE_LIBRARIES pcre2-8) if(PCRE_LIBRARIES) set(HAVE_LIBPCRE 1) list(APPEND ZM_BIN_LIBS "${PCRE_LIBRARIES}") - find_path(PCRE_INCLUDE_DIR pcre.h) + find_path(PCRE_INCLUDE_DIR pcre2.h) if(PCRE_INCLUDE_DIR) include_directories("${PCRE_INCLUDE_DIR}") set(CMAKE_REQUIRED_INCLUDES "${PCRE_INCLUDE_DIR}") endif() mark_as_advanced(FORCE PCRE_LIBRARIES PCRE_INCLUDE_DIR) - check_include_file("pcre.h" HAVE_PCRE_H) + check_include_file("pcre2.h" HAVE_PCRE2_H -DPCRE2_CODE_UNIT_WIDTH=8) set(optlibsfound "${optlibsfound} PCRE") else() set(optlibsnotfound "${optlibsnotfound} PCRE") --- zoneminder-1.36.33+dfsg1.orig/src/zm_regexp.cpp +++ zoneminder-1.36.33+dfsg1/src/zm_regexp.cpp @@ -24,25 +24,20 @@ #if HAVE_LIBPCRE -RegExpr::RegExpr( const char *pattern, int flags, int p_max_matches ) : max_matches( p_max_matches ), match_buffers( nullptr ), match_lengths( nullptr ), match_valid( nullptr ) +RegExpr::RegExpr( const char *pattern, uint32_t flags, int p_max_matches ) : max_matches( p_max_matches ), match_buffers( nullptr ), match_lengths( nullptr ), match_valid( nullptr ) { - const char *errstr; - int erroffset = 0; - if ( !(regex = pcre_compile( pattern, flags, , , 0 )) ) + char errstr[120]; + int err; + PCRE2_SIZE erroffset; + if ( !(regex = pcre2_compile( (PCRE2_SPTR)pattern, strlen( pattern ), flags, , , NULL )) ) { -Panic( "pcre_compile(%s): %s at %d", pattern, errstr, erroffset ); - } - - regextra = pcre_study( regex, 0, ); - if ( errstr ) - { -Panic( "pcre_study(%s): %s", pattern, errstr ); +pcre2_get_error_message( err, (PCRE2_UCHAR *)errstr, sizeof(errstr) ); +Panic( "pcre2_compile(%s): %s at %zu", pattern, errstr, erroffset ); } if ( (ok = (bool)regex) ) { -match_vectors = new int[3*max_matches]; -memset( match_vectors, 0, sizeof(*match_vectors)*3*max_matches ); +match_data = pcre2_match_data_create( 3*max_matches, NULL ); match_buffers = new char *[max_matches]; memset( match_buffers, 0, sizeof(*match_buffers)*max_matches ); match_lengths = new int[max_matches]; @@ -68,18 +63,20 @@ delete[] match_valid; delete[] match_lengths; delete[] match_buffers; - delete[] match_vectors; + pcre2_match_data_free( match_data ); + pcre2_code_free( regex ); } -int RegExpr::Match( const char *subject_string, int subject_length, int flags ) +int RegExpr::Match( const char *subject_string, PCRE2_SIZE subject_length, uint32_t flags ) { match_string = subject_string; - n_matches = pcre_exec( regex, regextra, subject_string, subject_length, 0, flags, match_vectors, 2*max_matches ); + n_matches = pcre2_match( regex, (PCRE2_SPTR)subject_string, subject_length, 0, flags, match_data, NULL ); + match_vectors = pcre2_get_ovector_pointer( match_data ); if ( n_matches <= 0 ) { -if ( n_matches < PCRE_ERROR_NOMATCH ) +if ( n_matches != PCRE2_ERROR_NOMATCH ) { Error( "Error %d executing regular expression", n_matches ); } @@ -101,7 +98,7 @@ } if ( !match_valid[match_index] ) { -int match_len = match_vectors[(2*match_index)+1]-match_vectors[2*match_index]; +int match_len = (int)(match_vectors[(2*match_index)+1]-match_vectors[2*match_index]); if ( match_lengths[match_index] < (match_len+1) ) { delete[] match_buffers[match_index]; @@ -121,7 +118,7 @@ { return( 0 ); } - return( match_vectors[(2*match_index)+1]-match_vectors[2*match_index] ); + return( (int)(match_vectors[(2*match_index)+1]-match_vectors[2*match_index]) ); } #endif // HAVE_LIBPCRE --- zoneminder-1.36.33+dfsg1.orig/src/zm_regexp.h +++ zoneminder-1.36.33+dfsg1/src/zm_regexp.h @@ -24,21 +24,20 @@ #if HAVE_LIBPCRE -#if HAVE_PCRE_H -#include -#elif HAVE_PCRE_PCRE_H -#include +#if HAVE_PCRE2_H +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #else -#error Unable to locate pcre.h, please do 'locate pcre.h' and report location to zoneminder.com +#error Unable to locate pcre2.h, please do 'locate pcre2.h' and report location to zoneminder.com #endif class RegExpr { protected: - pcre *regex; - pcre_extra *regextra; + pcre2_code *regex; + pcre2_match_data *match_data; int max_matches; - int *match_vectors; + PCRE2_SIZE *match_vectors; mutable char **match_buffers; int *match_lengths; bool *match_valid; @@ -51,11 +50,11 @@ bool ok; public: -
Bug#1000010: ohcount: depends on obsolete pcre3 library
Control: tags -1 + patch Please find a patch attached. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/110 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-21 --- --- ohcount-4.0.0.orig/build +++ ohcount-4.0.0/build @@ -31,7 +31,7 @@ # You shouldn't have to change the following. CFLAGS="-fno-common -g" WARN="-Wall -Wno-parentheses" - SHARED="-dynamiclib -L$LIB_DIR -lpcre" + SHARED="-dynamiclib -L$LIB_DIR -lpcre2-8" SHARED_NAME=libohcount.dylib RB_SHARED="-dynamic -bundle -lruby" RB_SHARED_NAME=ohcount.bundle @@ -97,7 +97,7 @@ build_parser_o echo "Building Ohcount" mkdir -p bin/ - sh -c "$cc src/ohcount.c $files -o bin/ohcount -lpcre -lmagic" || exit 1 + sh -c "$cc src/ohcount.c $files -o bin/ohcount -lpcre2-8 -lmagic" || exit 1 } build_test_suite() @@ -105,7 +105,7 @@ build_hash_headers build_parser_o echo "Building test suite" - sh -c "$cc test/unit/all_tests.c $files -o test/unit/run_tests -lpcre -lmagic" \ + sh -c "$cc test/unit/all_tests.c $files -o test/unit/run_tests -lpcre2-8 -lmagic" \ || exit 1 } @@ -127,10 +127,10 @@ mkdir -p ruby/$arch echo $cc $RB_SHARED ruby/ohcount_wrap.c $files -o ruby/$arch/$RB_SHARED_NAME \ -I$RUBY_HEADER_DIR -I$RUBY_CONFIG_DIR -I/usr/include/$rbconfig_arch/ruby-$RUBY_VERSION \ --lpcre -lmagic +-lpcre2-8 -lmagic sh -c "$cc $RB_SHARED ruby/ohcount_wrap.c $files -o ruby/$arch/$RB_SHARED_NAME \ -I$RUBY_HEADER_DIR -I$RUBY_CONFIG_DIR -I/usr/include/$rbconfig_arch/ruby-$RUBY_VERSION \ --lpcre -lmagic" || exit 1 +-lpcre2-8 -lmagic" || exit 1 sh -c "cd test/unit/ruby && ruby ruby_test.rb" || exit 1 } --- ohcount-4.0.0.orig/src/structs.h +++ ohcount-4.0.0/src/structs.h @@ -4,7 +4,8 @@ #ifndef OHCOUNT_STRUCTS_H #define OHCOUNT_STRUCTS_H -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include /** * @struct License @@ -24,7 +25,7 @@ const char *re; /** PCRE flags for re. (Typically PCRE_CASELESS or PCRE_MULTILINE). */ - int re_flags; + uint32_t re_flags; /** * A PCRE regular expression for text that matches re, but should not match @@ -33,13 +34,13 @@ const char *exclude_re; /** PCRE flags for exclude_re. */ - int exclude_re_flags; + uint32_t exclude_re_flags; /** The PCRE object for re. (This field is set automatically.) */ - pcre *regexp; + pcre2_code *regexp; /** The PCRE object for exclude_re. (This field is set automatically.) */ - pcre *exclude_regexp; + pcre2_code *exclude_regexp; } License; --- ohcount-4.0.0.orig/src/detector.c +++ ohcount-4.0.0/src/detector.c @@ -889,7 +889,8 @@ return NULL; // only blanks } -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include // strnlen is not available on OS X, so we roll our own size_t mystrnlen(const char *begin, size_t maxlen) { @@ -906,24 +907,35 @@ return NULL; /* prepare regular expressions */ - const char *error; - int erroffset; + int error; + PCRE2_SIZE erroffset; /* try harder with optional spaces */ - pcre *keyword; - keyword = pcre_compile("^\\s*(ensure|content|notify|require|source)\\s+=>", - PCRE_MULTILINE, , , NULL); - - if (pcre_exec(keyword, NULL, p, mystrnlen(p, 1), 0, 0, NULL, 0) > -1) + pcre2_code *keyword; + pcre2_match_data *md; + keyword = pcre2_compile((PCRE2_SPTR) + "^\\s*(ensure|content|notify|require|source)\\s+=>", + PCRE2_ZERO_TERMINATED, PCRE2_MULTILINE, + , , NULL); + md = pcre2_match_data_create(30, NULL); + if (pcre2_match(keyword, (PCRE2_SPTR)p, mystrnlen(p, 1), + 0, 0, md, NULL) > -1) { + pcre2_match_data_free(md); return LANG_PUPPET; + } /* check for standard puppet constructs */ - pcre *construct; - construct = pcre_compile("^\\s*(define\\s+[\\w:-]+\\s*\\(|class\\s+[\\w:-]+(\\s+inherits\\s+[\\w:-]+)?\\s*[\\({]|node\\s+\\'?[\\w:\\.-]+\\'?\\s*{|import\\s+\"|include\\s+[\"']?[\\w:-][\"']?)", - PCRE_MULTILINE, , , NULL); - - if (pcre_exec(construct, NULL, p, mystrnlen(p, 1), 0, 0, NULL, 0) > -1) + pcre2_code *construct; + construct = pcre2_compile((PCRE2_SPTR)"^\\s*(define\\s+[\\w:-]+\\s*\\(|class\\s+[\\w:-]+(\\s+inherits\\s+[\\w:-]+)?\\s*[\\({]|node\\s+\\'?[\\w:\\.-]+\\'?\\s*{|import\\s+\"|include\\s+[\"']?[\\w:-][\"']?)", + PCRE2_ZERO_TERMINATED, PCRE2_MULTILINE, + , , NULL); + + if (pcre2_match(construct, (PCRE2_SPTR)p, mystrnlen(p, 1), +
Bug#999937: tup: depends on obsolete pcre3 library
On Tue, Aug 29, 2023 at 03:18:26PM +0200, Bastian Germann wrote: > On Tue, 31 Jan 2023 21:36:46 +0800 Bo YU 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 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(>parent->entries, >name); } if(tent->re) { @@ -57,7 +58,7 @@ index 90e1b80c0..96842bc4b 100644 } free_tent_tree(>stickies); free_tent_tree(>group_stickies); -@@ -504,11 +504,13 @@ static struct tup_entry *new_entry(tupid_t tupid, tupid_t dt, +@@ -473,11 +473,13 @@ RB_INIT(>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,
Bug#999921: xymon: depends on obsolete pcre3 library
Control: tags -1 + patch Please find a patch which I've been testing for a while with no ill effects AFAICT. However, I'm not familiar at all with this package so it's possible that I've missed something. I also couldn't test all available functionality. Unfortunately the patch does not apply cleanly to the latest upstream release (4.4-alpha) but I am ready and willing to rebase it, whenever you decide to package it. Just let me know. >From d626686d8e004bbb9e1f5f0074ff825f27d1c2e5 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Thu, 21 Dec 2023 18:44:44 +0200 Subject: [PATCH] Port to PCRE2 (#21). --- debian/changelog |5 + debian/control|2 +- debian/patches/93_pcre2.patch | 2167 + debian/patches/series |1 + debian/rules |2 +- 5 files changed, 2175 insertions(+), 2 deletions(-) create mode 100644 debian/patches/93_pcre2.patch diff --git a/debian/changelog b/debian/changelog index b406ada..1c01d47 100644 --- a/debian/changelog +++ b/debian/changelog @@ -37,6 +37,11 @@ xymon (4.3.30-2) UNRELEASED; urgency=medium * xymon: update xymonserver.cfg: ntpdate obsoleted the "-p" option. (Closes: #1057044) + [ Yavor Doganov ] + * debian/patches/93_pcre2.patch: New; port to PCRE2 (Closes: #21). + * debian/control (Build-Depends): Replace libpcre3-dev with libpcre2-dev. + * debian/rules (override_dh_auto_configure): Use pcre2-config. + -- Axel Beckert Mon, 10 Aug 2020 04:39:28 +0200 xymon (4.3.30-1) unstable; urgency=medium diff --git a/debian/control b/debian/control index 6766762..aaa40b3 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Build-Depends: debhelper-compat (= 13), imagemagick, libc-ares-dev, libldap2-dev, - libpcre3-dev, + libpcre2-dev, librrd-dev, libssl-dev, libtirpc-dev, diff --git a/debian/patches/93_pcre2.patch b/debian/patches/93_pcre2.patch new file mode 100644 index 000..7c163fd --- /dev/null +++ b/debian/patches/93_pcre2.patch @@ -0,0 +1,2167 @@ +Description: Port to PCRE2. +Bug-Debian: https://bugs.debian.org/999921 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-12-21 +--- + +--- xymon.orig/lib/acknowledgementslog.c xymon/lib/acknowledgementslog.c +@@ -26,7 +26,8 @@ + #include + #include + +-#include ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include + + #include "libxymon.h" + +@@ -103,16 +104,17 @@ + char title[200]; + + /* For the PCRE matching */ +- const char *errmsg = NULL; +- int errofs = 0; +- pcre *pageregexp = NULL; +- pcre *expageregexp = NULL; +- pcre *hostregexp = NULL; +- pcre *exhostregexp = NULL; +- pcre *testregexp = NULL; +- pcre *extestregexp = NULL; +- pcre *rcptregexp = NULL; +- pcre *exrcptregexp = NULL; ++ int err; ++ PCRE2_SIZE errofs; ++ pcre2_code *pageregexp = NULL; ++ pcre2_code *expageregexp = NULL; ++ pcre2_code *hostregexp = NULL; ++ pcre2_code *exhostregexp = NULL; ++ pcre2_code *testregexp = NULL; ++ pcre2_code *extestregexp = NULL; ++ pcre2_code *rcptregexp = NULL; ++ pcre2_code *exrcptregexp = NULL; ++ pcre2_match_data *ovector; + + if (maxminutes && (fromtime || totime)) { + fprintf(output, "Only one time interval type is allowed!"); +@@ -147,14 +149,14 @@ + + if (!maxcount) maxcount = 100; + +- if (pageregex && *pageregex) pageregexp = pcre_compile(pageregex, PCRE_CASELESS, , , NULL); +- if (expageregex && *expageregex) expageregexp = pcre_compile(expageregex, PCRE_CASELESS, , , NULL); +- if (hostregex && *hostregex) hostregexp = pcre_compile(hostregex, PCRE_CASELESS, , , NULL); +- if (exhostregex && *exhostregex) exhostregexp = pcre_compile(exhostregex, PCRE_CASELESS, , , NULL); +- if (testregex && *testregex) testregexp = pcre_compile(testregex, PCRE_CASELESS, , , NULL); +- if (extestregex && *extestregex) extestregexp = pcre_compile(extestregex, PCRE_CASELESS, , , NULL); +- if (rcptregex && *rcptregex) rcptregexp = pcre_compile(rcptregex, PCRE_CASELESS, , , NULL); +- if (exrcptregex && *exrcptregex) exrcptregexp = pcre_compile(exrcptregex, PCRE_CASELESS, , , NULL); ++ if (pageregex && *pageregex) pageregexp = pcre2_compile(pageregex, strlen(pageregex), PCRE2_CASELESS, , , NULL); ++ if (expageregex && *expageregex) expageregexp = pcre2_compile(expageregex, strlen(expageregex), PCRE2_CASELESS, , , NULL); ++ if (hostregex && *hostregex) hostregexp = pcre2_compile(hostregex, strlen(hostregex), PCRE2_CASELESS, , , NULL); ++ if (exhostregex && *exhostregex) exhostregexp = pcre2_compile(exhostregex, strl
Bug#999922: xneur: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/22 Author: Yavor Doganov ya...@gnu.org> Forwarded: no Last-Update: 2023-12-20 --- --- xneur.orig/configure.ac +++ xneur/configure.ac @@ -143,7 +143,7 @@ AC_DEFINE(WITH_DEBUG, 1, [Define if you want debug support]) fi -PKG_CHECK_MODULES(PCRE, [libpcre >= 5.0]) +PKG_CHECK_MODULES(PCRE, [libpcre2-8]) AC_ARG_WITH(keylogger, [ --without-keyloggerCompile without keylogger function]) if test "x$with_keylogger" != "xno"; then --- xneur.orig/lib/misc/regexp.c +++ xneur/lib/misc/regexp.c @@ -21,7 +21,8 @@ # include "config.h" #endif -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include #include @@ -31,45 +32,58 @@ int check_regexp_match(const char *str, const char *pattern) { - int options = PCRE_UTF8; - const char *error; - int erroffset; + pcre2_compile_context *ctxt; + uint32_t options = PCRE2_UTF; + int error; + PCRE2_SIZE erroffset; //log_message(DEBUG, "Processing word '%s' against regular expression '%s'", str, pattern); - const unsigned char *tables = pcre_maketables(); - pcre *re = pcre_compile(pattern, options, , , tables); + ctxt = pcre2_compile_context_create(NULL); + const uint8_t *tables = pcre2_maketables(NULL); + pcre2_set_character_tables(ctxt, tables); + pcre2_code *re = pcre2_compile((PCRE2_SPTR)pattern, strlen(pattern), + options, , , ctxt); + pcre2_maketables_free(NULL, tables); + pcre2_compile_context_free(ctxt); if (!re) { log_message(ERROR, _("Can't compile regular expression '%s'"), pattern); return FALSE; } - int str_len = strlen(str); + PCRE2_SIZE str_len = strlen(str); - int ovector[50]; - int count = pcre_exec(re, NULL, str, str_len, 0, 0, ovector, 50); - if (count <= 0 && count != PCRE_ERROR_NOMATCH) + pcre2_match_data *ovector; + ovector = pcre2_match_data_create(50, NULL); + int count = pcre2_match(re, (PCRE2_SPTR)str, str_len, 0, 0, ovector, NULL); + if (count <= 0 && count != PCRE2_ERROR_NOMATCH) { log_message(ERROR, _("Can't exec regular expression '%s', eror code %d"), pattern, count); - pcre_free(re); - pcre_free((void*)tables); + pcre2_code_free(re); + pcre2_match_data_free(ovector); return FALSE; } - pcre_free(re); - pcre_free((void*)tables); + pcre2_code_free(re); - if (count == PCRE_ERROR_NOMATCH) + if (count == PCRE2_ERROR_NOMATCH) + { + pcre2_match_data_free(ovector); return FALSE; + } - const char *pcre_string = NULL; - if(pcre_get_substring(str, ovector, count, 0, _string) < 0) + PCRE2_UCHAR *pcre_string; + if(pcre2_substring_get_bynumber(ovector, 0, _string, _len) < 0) + { + pcre2_match_data_free(ovector); return FALSE; + } //log_message(TRACE, _("Match word '%s' and PERL pattern '%s'"), str, pattern); - pcre_free_substring(pcre_string); + pcre2_substring_free(pcre_string); + pcre2_match_data_free(ovector); return TRUE; }
Bug#999931: virtuoso-opensource: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch; build-tested only (although the package's own testsuite has some checks which test this functionality). Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/31 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-20 --- --- virtuoso-opensource.orig/libsrc/Wi/Makefile.am +++ virtuoso-opensource/libsrc/Wi/Makefile.am @@ -559,7 +559,7 @@ $(libwi_base_la_sources) libwi_la_CFLAGS = $(libwi_base_la_cflags) -libwi_la_LDLAGS = -static -lminizip -lpcre +libwi_la_LDLAGS = -static -lminizip -lpcre2-8 #KUBL_UNIV_FILES_ODBC libwi_odbc_la_SOURCES += \ --- virtuoso-opensource.orig/libsrc/Wi/bif_regexp.c +++ virtuoso-opensource/libsrc/Wi/bif_regexp.c @@ -30,7 +30,8 @@ // Debian maintainer: replaced by external PCRE // #include "util/pcrelib/pcre.h" -#include "pcre.h" +#define PCRE2_CODE_UNIT_WIDTH 8 +#include /* typedef struct rx_query_s { @@ -66,15 +67,16 @@ typedef struct compiled_regexp_s { int refctr; - pcre *code; - pcre_extra *code_x; + pcre2_code *code; } compiled_regexp_t; id_hash_t *compiled_regexps; -int32 c_pcre_match_limit_recursion = 500; -int32 c_pcre_match_limit = 10; +static pcre2_match_context *match_ctxt = NULL; + +uint32 c_pcre_match_limit_recursion = 500; +uint32 c_pcre_match_limit = 10; int32 pcre_max_cache_sz = 2; int32 pcre_rnd_seed; @@ -97,6 +99,23 @@ } void +create_match_context (void) +{ + if (NULL != match_ctxt) +return; + + match_ctxt = pcre2_match_context_create (NULL); + if (c_pcre_match_limit > 0) +{ + pcre2_set_match_limit (match_ctxt, c_pcre_match_limit); +} + if (c_pcre_match_limit_recursion > 0) +{ + pcre2_set_depth_limit (match_ctxt, c_pcre_match_limit_recursion); +} +} + +void release_compiled_regexp (id_hash_t *c_r, compiled_regexp_t *data) { int delete_data; @@ -112,9 +131,7 @@ if (!delete_data) return; if (NULL != data->code) -pcre_free (data->code); - if (NULL != data->code_x) -pcre_free (data->code_x); +pcre2_code_free (data->code); dk_free (data, sizeof (compiled_regexp_t)); } @@ -137,10 +154,11 @@ } static compiled_regexp_t * -get_compiled_regexp (id_hash_t *c_r, const char *pattern, int options, caddr_t *err_ret) +get_compiled_regexp (id_hash_t *c_r, const char *pattern, uint32_t options, caddr_t *err_ret) { - const char *error = NULL; - int erroff; + int err; + PCRE2_UCHAR error[120]; + PCRE2_SIZE erroff; regexp_key_t key; compiled_regexp_t **val = NULL; compiled_regexp_t tmp, *new_val; @@ -156,46 +174,18 @@ } HT_LEAVE (c_r); dbg_printf (("regex compiling (%s) with options %x ...\n", pattern, options)); - tmp.code = pcre_compile (pattern, options, , , 0); + tmp.code = pcre2_compile ((PCRE2_SPTR) pattern, strlen (pattern), +options, , , NULL); if (NULL == tmp.code) { - if (error) -err_ret[0] = srv_make_new_error ("2201B", -"SR098", "regexp error at \'%s\' column %d (%s)", pattern, erroff, error); - else -err_ret[0] = srv_make_new_error ("2201B", -"SR098", "regexp error at \'%s\' column %d", pattern, erroff); + pcre2_get_error_message(err, error, sizeof (error)); + err_ret[0] = srv_make_new_error ("2201B", + "SR098", "regexp error at \'%s\' column %zu (%s)", pattern, erroff, error); return NULL; } - tmp.code_x = pcre_study (tmp.code, options, ); -#ifdef DEBUG - if (!tmp.code_x) -dbg_printf (("***warning RX100: regexp warning: extra regular expression compiling failed\n")); -#endif - if (!tmp.code_x) - { - tmp.code_x = pcre_malloc (sizeof (pcre_extra)); - if (tmp.code_x) - memset (tmp.code_x, 0, sizeof (pcre_extra)); - } -#ifdef PCRE_EXTRA_MATCH_LIMIT - if (c_pcre_match_limit > 0) -{ - tmp.code_x->flags |= PCRE_EXTRA_MATCH_LIMIT; - tmp.code_x->match_limit = c_pcre_match_limit; -} -#endif -#ifdef PCRE_EXTRA_MATCH_LIMIT_RECURSION - if (c_pcre_match_limit_recursion > 0) -{ - tmp.code_x->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; - tmp.code_x->match_limit_recursion = c_pcre_match_limit_recursion; -} -#endif key.orig_strg = box_dv_short_string (pattern); new_val = (compiled_regexp_t *)dk_alloc (sizeof (compiled_regexp_t)); new_val->code = tmp.code; - new_val->code_x = tmp.code_x; new_val->refctr = 1; HT_ENTER (c_r); pcre_cache_check (c_r); @@ -302,18 +292,18 @@ } -static int +static uint32_t regexp_optchars_to_bits (const char *strg) { - int res = 0; + uint32_t res = 0; const char *tail; for (tail = strg; '\0' != tail[0]; tail++) { switch (tail[0]) { -case 'i': case 'I': res |= PCRE_CASELESS; break; -cas
Bug#999954: [Pkg-sugar-devel] Bug#999954: squeak-vm: depends on obsolete pcre3 library
Jonas Smedegaard wrote: > Quoting Yavor Doganov (2023-12-19 11:21:34) > > Please find attached a patch; > > Is it a patch that you composed yourself, or did you work based off of > some upstream changeset. The former. I checked the new upstream release (downloaded with uscan) and also checked upstream SVN trunk -- the problem was not fixed there so I started off the current code in unstable. This patch doesn't apply cleanly to the latest upstream release (it has a bit different layout and there were changes to RePlugin) but I guess it would be more or less trivial for me to adapt it.
Bug#999954: squeak-vm: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch; unfortunately I could not find a way to test it. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/54 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-19 --- --- squeak-vm.orig/platforms/unix/CMakeLists.txt +++ squeak-vm/platforms/unix/CMakeLists.txt @@ -125,7 +125,7 @@ USE_LIBRARY ("-framework ${fwk}") ENDMACRO (USE_FRAMEWORK) -USE_LIBRARY_SHARED ("-lpcre") +USE_LIBRARY_SHARED ("-lpcre2-8") USE_LIBRARY_SHARED ("-ljpeg") MACRO (CONFIG_DEFINE var) --- squeak-vm.orig/platforms/Cross/plugins/RePlugin/rePlugin.h +++ squeak-vm/platforms/Cross/plugins/RePlugin/rePlugin.h @@ -15,11 +15,9 @@ The instance variables must appear in the preceding order. MatchSpaceObj must be allocated by the calling routine and contain at least 6*(numGroups+1) bytes. */ -#include "pcre.h" -#include "internal.h" +#define PCRE2_CODE_UNIT_WIDTH 8 +#include /* Adjust malloc and free routines as used by PCRE */ -static void rePluginFree(void * aPointer); -static void * rePluginMalloc(size_t anInteger); -void *(*pcre_malloc)(size_t) = rePluginMalloc; -void (*pcre_free)(void *) = rePluginFree; +static void rePluginFree(void * aPointer, void * aData); +static void * rePluginMalloc(size_t anInteger, void * aData); --- squeak-vm.orig/platforms/unix/src/vm/intplugins/RePlugin/RePlugin.c +++ squeak-vm/platforms/unix/src/vm/intplugins/RePlugin/RePlugin.c @@ -35,7 +35,6 @@ /*** Constants ***/ /*** Function Prototypes ***/ -static sqInt allocateByteArrayAndSetRcvrExtraPtrFrom(sqInt anExtraPtr); static sqInt allocateByteArrayAndSetRcvrPCREPtrFromPCRE(sqInt aPCREPtr); static sqInt allocateStringAndSetRcvrErrorStrFromCStr(const char *aCStrBuffer); #pragma export on @@ -52,17 +51,19 @@ EXPORT(sqInt) primPCREExecfromto(void); EXPORT(sqInt) primPCRENumSubPatterns(void); #pragma export off -static void rePluginFree(void * aPointer); +static void rePluginFree(void * aPointer, void * aData); #pragma export on -EXPORT(void *) rePluginMalloc(size_t anInteger); +EXPORT(void *) rePluginMalloc(size_t anInteger, void * aData); EXPORT(sqInt) setInterpreter(struct VirtualMachine*anInterpreter); #pragma export off /*** Variables ***/ static sqInt compileFlags; -static sqInt errorOffset; +static PCRE2_SIZE errorOffset; static sqInt errorStr; -static const char * errorStrBuffer; -static sqInt extraPtr; +static int errorCode; +static pcre2_general_context * genContext = NULL; +static pcre2_compile_context * compContext = NULL; +static pcre2_match_context * matchContext = NULL; #ifdef SQUEAK_BUILTIN_PLUGIN extern @@ -86,28 +87,6 @@ static sqInt rcvr; -static sqInt allocateByteArrayAndSetRcvrExtraPtrFrom(sqInt anExtraPtr) { - sqInt extraObject; - void *extraByteArrayPtr; - - if (anExtraPtr) { - - /* Allocate a Smalltalk ByteArray -- lastAlloc contains the length */ - - extraObject = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classByteArray(), sizeof(real_pcre_extra)); - /* begin loadRcvrFromStackAt: */ - rcvr = interpreterProxy->stackObjectValue(0); - extraByteArrayPtr = interpreterProxy->arrayValueOf(extraObject); - memcpy(extraByteArrayPtr, (void *) anExtraPtr, sizeof(real_pcre_extra)); - } else { - extraObject = interpreterProxy->nilObject(); - } - /* begin rcvrExtraPtrFrom: */ - interpreterProxy->storePointerofObjectwithValue(3, rcvr, extraObject); - ; - return extraObject; -} - static sqInt allocateByteArrayAndSetRcvrPCREPtrFromPCRE(sqInt aPCREPtr) { sqInt patObject; void *patByteArrayPtr; @@ -184,13 +163,18 @@ /* , where rcvr is an object with instance variables: - 'patternStr compileFlags pcrePtr extraPtr errorStr errorOffset matchFlags' + 'patternStr compileFlags pcrePtr errorStr errorOffset matchFlags' Compile the regular expression in patternStr, and if the compilation is successful, attempt to optimize the compiled expression. Store the results in and , or fill errorStr with a meaningful errorString and errorOffset with an indicator where the error was found, applying compileFlags throughout. Answer nil with a clean compile (regardless of whether an optimization is possible, and answer with the string otherwise. */ EXPORT(sqInt) primPCRECompile(void) { sqInt anInteger; + if (!genContext) + genContext = pcre2_general_context_create(rePluginMalloc, + rePluginFree, NULL); + if (!compContext) + compContext = pcre2_compile_context_create(genContext); /* begin loadRcvrFromStackAt: */ rcvr = interpreterProxy->stackObjectValue(0); patternStrPtr = ((char *) (interpreterProxy->fetchA
Bug#999960: sipxtapi: depends on obsolete pcre3 library
Control: tags -1 + patch Attached is a patch which I tested with the demo program at the end of sipXportLib/src/utl/UtlRegex.cpp. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/60 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-18 --- --- sipxtapi-3.3.0~test18+dfsg.1.orig/configure.ac +++ sipxtapi-3.3.0~test18+dfsg.1/configure.ac @@ -59,7 +59,7 @@ CHECK_OPUS # PCRE is mandatory -PKG_CHECK_MODULES([DEPS_PCRE], [libpcre >= 4.5]) +PKG_CHECK_MODULES([DEPS_PCRE], [libpcre2-8]) # OpenSSL is mandatory, find it or configure fails: CHECK_SSL --- sipxtapi-3.3.0~test18+dfsg.1.orig/sipXportLib/include/utl/UtlRegex.h +++ sipxtapi-3.3.0~test18+dfsg.1/sipXportLib/include/utl/UtlRegex.h @@ -12,7 +12,8 @@ #define _REGEX_H #include -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include "utl/UtlString.h" /** @@ -61,8 +62,8 @@ /// Compile a regular expression to create the matching object. RegEx( const char * regex, //< the regular expression - int options = 0, //< any sum of PCRE options bits - unsigned long int maxDepth = MAX_RECURSION // see MAX_RECURSION + uint32_t options = 0, //< any sum of PCRE options bits + uint32_t maxDepth = MAX_RECURSION // see MAX_RECURSION ); /**< * If compiling the regular expression fails, an error message string is @@ -71,7 +72,7 @@ */ /// Default maximum for the recursion depth in searches. - static const unsigned long int MAX_RECURSION; + static const uint32_t MAX_RECURSION; /**< * The PCRE internal match() function implements some searches by recursion. * This value is the default maximumm allowed depth for that recursion. It can @@ -115,7 +116,7 @@ ~RegEx(); /// Count the number of possible substrings returned by this expression - int SubStrings(void) const; + uint32_t SubStrings(void) const; /**< * SubStrings() @returns the number of substrings defined by * the regular expression. @@ -142,8 +143,8 @@ /// Search a string for matches to this regular expression bool Search( const char * subject, ///< the string to be searched for a match - int len = -1, ///< the length of the subject string - int options = 0///< sum of any PCRE options flags + PCRE2_SIZE len = -1, ///< the length of the subject string + uint32_t options = 0 ///< sum of any PCRE options flags ); /**< *Apply the regular expression to the subject string. @@ -156,9 +157,9 @@ /// Search a string starting at some offset for matches to this regular expression bool SearchAt(const char* subject, ///< the string to be searched for a match -int offset, ///< offset to begin search in subject string -int len = -1, ///< the length of the subject string -int options = 0 ///< sum of any PCRE options flags +PCRE2_SIZE offset,///< offset to begin search in subject string +PCRE2_SIZE len = 0, ///< the length of the subject string +uint32_t options = 0 ///< sum of any PCRE options flags ); /**< *Apply the regular expression to the subject string, starting at the given offset. @@ -175,7 +176,7 @@ /// Repeat the last search operation, starting immediately after the previous match - bool SearchAgain( int options = 0///< sum of any PCRE options flags + bool SearchAgain( uint32_t options = 0 ///< sum of any PCRE options flags ); /**< *SearchAgain() applies the regular expression to the same @@ -432,17 +433,17 @@ void ClearMatchList(void); - pcre * re; + pcre2_code * re; + pcre2_general_context * gen_ctxt; + pcre2_match_context * match_ctxt; size_t re_size; - pcre_extra * pe; - bool allocated_study; - size_t study_size; - int substrcount; // maximum substrings in pattern + uint32_t substrcount;// maximum substrings in pattern const char * subjectStr; // original subject - int subjectLen; // original length - int lastStart; // offset of start for most recent Search or SearchAgain - int lastMatches; // pcre_exec return for most recent Search or SearchAgain - int * ovector; // results from (and workspace for) pcre_exec + PCRE2_SIZE subjectLen; // original length + PCRE2_SIZE lastStart;// offset of start for most recent Search or SearchAgain + int lastMatches; // pcre2_match return for most recent Search or SearchAgain + PCRE2_SIZE * ovector;// results from (and workspace for) pcre2_match + pcre2_match_data * md; // PCRE match data block const char * * matchlist;// string cache for Match }; --- sipxtapi-3.3.0~test18+dfsg.1.orig/sipXportLib/src/
Bug#984331: sipxtapi: ftbfs with GCC-11
Control: tags -1 + patch Please find attached a patch. Description: Fix FTBFS with GCC 11+. Bug-Debian: https://bugs.debian.org/984331 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-18 --- --- sipxtapi-3.3.0~test18+dfsg.1.orig/sipXtackLib/src/net/SipMessage.cpp +++ sipxtapi-3.3.0~test18+dfsg.1/sipXtackLib/src/net/SipMessage.cpp @@ -3806,13 +3806,13 @@ routeString.append(SIP_MULTIFIELD_SEPARATOR); } // Make sure the route is in name-addr format -if(strstr(routeUri,"<") <= 0) +if(!strstr(routeUri,"<")) { routeString.append("<"); } routeString.append(routeUri); -if(strstr(routeUri, ">") <= 0) +if(!strstr(routeUri, ">")) { routeString.append(">"); }
Bug#1058941: sipxtapi: FTBFS: PlgSpeex.c:21:10: fatal error: speex/speex.h: No such file or directory
Source: sipxtapi Version: 3.3.0~test18+dfsg.1-0.1 Severity: serious Tags: sid ftbfs patch This package fails to build from source because it has to build-depend on libspeex-dev (libspeexdsp-dev only suggests it). The exact error is: libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../../../.. -I../../../../../sipXmediaLib/include -I../../../../../sipXportLib/include -I../../../../../../sipXmediaLib/contrib/libspeex/include -I../../../../../sipXmediaLib/contrib/libspeex/include -Wdate-time -D_FORTIFY_SOURCE=2 -DHAVE_SSL -DDEFAULT_CODECS_PATH=\"/usr/lib/x86_64-linux-gnu/sipxtapi/codecs\" -g -O2 "-ffile-prefix-map=/<>=." -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DHAVE_SPEEX -D__pingtel_on_posix__ -D_linux_ -D_REENTRANT -D_FILE_OFFSET_BITS=64 -fmessage-length=0 -Wall -Wformat -Wwrite-strings -Wpointer-arith -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -c speex_nb.c -fPIC -DPIC -o .libs/codec_speex_la-speex_nb.o In file included from plgspeex.h:16, from speex_nb.c:16: speex_nb.c:57:33: warning: no previous prototype for ‘speex_get_info_v1_1’ [-Wmissing-prototypes] 57 | CODEC_API int PLG_GET_INFO_V1_1(speex)(const struct MppCodecInfoV1_1 **codecInfo) | ^ ../../../../../sipXmediaLib/include/mp/codecs/PlgDefsV1.h:183:40: note: in definition of macro ‘PLG_GET_INFO_V1_1’ 183 | #define PLG_GET_INFO_V1_1(x) x##_get_info_v1_1 |^ speex_nb.c:66:31: warning: no previous prototype for ‘speex_init_v1_2’ [-Wmissing-prototypes] 66 | CODEC_API void *PLG_INIT_V1_2(speex)(const char* fmtp, int isDecoder, | ^ ../../../../../sipXmediaLib/include/mp/codecs/PlgDefsV1.h:184:40: note: in definition of macro ‘PLG_INIT_V1_2’ 184 | #define PLG_INIT_V1_2(x) x##_init_v1_2 |^ speex_nb.c:73:27: warning: no previous prototype for ‘speex_free_v1’ [-Wmissing-prototypes] 73 | CODEC_API int PLG_FREE_V1(speex)(void* handle, int isDecoder) | ^ ../../../../../sipXmediaLib/include/mp/codecs/PlgDefsV1.h:188:40: note: in definition of macro ‘PLG_FREE_V1’ 188 | #define PLG_FREE_V1(x) x##_free_v1 |^ speex_nb.c:78:43: warning: no previous prototype for ‘speex_get_packet_samples_v1_2’ [-Wmissing-prototypes] 78 | CODEC_API int PLG_GET_PACKET_SAMPLES_V1_2(speex)(void *handle, | ^ ../../../../../sipXmediaLib/include/mp/codecs/PlgDefsV1.h:185:40: note: in definition of macro ‘PLG_GET_PACKET_SAMPLES_V1_2’ 185 | #define PLG_GET_PACKET_SAMPLES_V1_2(x) x##_get_packet_samples_v1_2 |^ speex_nb.c:88:30: warning: no previous prototype for ‘speex_decode_v1’ [-Wmissing-prototypes] 88 | CODEC_API int PLG_DECODE_V1(speex)(void* handle, const void* pCodedData, | ^ ../../../../../sipXmediaLib/include/mp/codecs/PlgDefsV1.h:186:40: note: in definition of macro ‘PLG_DECODE_V1’ 186 | #define PLG_DECODE_V1(x) x##_decode_v1 |^ speex_nb.c:97:29: warning: no previous prototype for ‘speex_encode_v1’ [-Wmissing-prototypes] 97 | CODEC_API int PLG_ENCODE_V1(speex)(void* handle, const void* pAudioBuffer, | ^ ../../../../../sipXmediaLib/include/mp/codecs/PlgDefsV1.h:187:40: note: in definition of macro ‘PLG_ENCODE_V1’ 187 | #define PLG_ENCODE_V1(x) x##_encode_v1 |^ PlgSpeex.c:21:10: fatal error: speex/speex.h: No such file or directory 21 | #include | ^~~ compilation terminated. make[7]: *** [Makefile:576: codec_speex_la-PlgSpeex.lo] Error 1 Trivial patch attached. --- debian/control.orig +++ debian/control @@ -2,7 +2,7 @@ Section: libs Priority: optional Maintainer: Debian VoIP Team -Build-Depends: debhelper-compat (= 12), libssl-dev, libcppunit-dev, automake, libpcre3-dev, dpkg-dev (>= 1.16.1~), libxerces-c-dev, pkg-config, libgsm1-dev, libspandsp-dev, libspeexdsp-dev, doxygen, libopus-dev +Build-Depends: debhelper-compat (= 12), libssl-dev, libcppunit-dev, automake, libpcre3-dev, dpkg-dev (>= 1.16.1~), libxerces-c-dev, pkg-config, libgsm1-dev, libspandsp-dev, libspeexdsp-dev, libspeex-dev, doxygen, libopus-dev Homepage: http://www.sipxtapi.org Standards-Version: 4.5.0 Vcs-Git: https://salsa.debian.org/pkg-voip-team/sipxtapi.git
Bug#999964: shush: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/64 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-17 --- --- shush-1.2.3.orig/configure.ac +++ shush-1.2.3/configure.ac @@ -60,9 +60,19 @@ # Checks for libraries. AC_SEARCH_LIBS([basename], [gen]) if test "x$with_pcre" != "xno"; then - AC_SEARCH_LIBS([pcre_compile], [pcre], , - AC_MSG_WARN([Perl Compatible Regular Expressions library is missing.]) - with_pcre="no") + save_libs="$LIBS" + LIBS="$LIBS -lpcre2-8" + AC_MSG_CHECKING([for pcre library]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#define PCRE2_CODE_UNIT_WIDTH 8 +#include +]], + [[pcre2_match_data_create(4, NULL);]])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_WARN([Perl Compatible Regular Expressions library is missing.]) + with_pcre="no" + LIBS="$save_libs"]) fi AC_SEARCH_LIBS([MD5Data], [md]) AC_SEARCH_LIBS([md5_calc], [md5]) @@ -70,7 +80,11 @@ # Checks for header files. AC_CHECK_HEADERS([md5.h paths.h pthread.h]) if test "x$with_pcre" != "xno"; then - AC_CHECK_HEADERS([pcre.h]) + AC_CHECK_HEADERS([pcre2.h], + [AC_DEFINE([HAVE_PCRE_H], [1], +[Define to 1 if you have the header file.])], + [], [[#define PCRE2_CODE_UNIT_WIDTH 8 + ]]) fi # Checks for typedefs, structures, and compiler characteristics. --- shush-1.2.3.orig/src/analyzer.c +++ shush-1.2.3/src/analyzer.c @@ -16,7 +16,8 @@ #include #include #if defined(HAVE_PCRE_H) -# include +# define PCRE2_CODE_UNIT_WIDTH 8 +# include #endif #include "analyzer.h" @@ -40,7 +41,7 @@ { regex_t re; #if defined(HAVE_PCRE_H) - pcre *pcre; + pcre2_code *pcre; #endif } val; }; @@ -98,15 +99,19 @@ static int compile_pcre(void *pcreptr, char *str) { -pcre **re; -const char *errmsg; -int erroffset; +pcre2_code **re; +int err; +PCRE2_SIZE erroffset; re = pcreptr; -*re = pcre_compile(str, 0, , , NULL); +*re = pcre2_compile((PCRE2_SPTR)str, strlen(str), 0, +, , NULL); if (*re == NULL) { - error("Bad PCRE (offset %d): %s", erroffset, errmsg); + PCRE2_UCHAR errmsg[120]; + + pcre2_get_error_message(err, errmsg, sizeof(errmsg)); + error("Bad PCRE (offset %zu): %s", erroffset, errmsg); return -1; } return 0; @@ -501,15 +506,17 @@ #if defined(HAVE_PCRE_H) else if (type == PCRE) { - int ovector[3072]; + PCRE2_SIZE *ovector; + pcre2_match_data *md; - r = pcre_exec(list[condno].val.pcre, NULL, ln, + md = pcre2_match_data_create(3072, NULL); + r = pcre2_match(list[condno].val.pcre, (PCRE2_SPTR)ln, (lndup != NULL) ? strlen(lndup) : nl - ln, - 0, 0, ovector, 3072); - if (r < 0 && r != PCRE_ERROR_NOMATCH) + 0, 0, md, NULL); + if (r < 0 && r != PCRE2_ERROR_NOMATCH) { /* Something bad happened */ - error("Fatal error during output analysis: pcre_exec() failed with code %d", r); + error("Fatal error during output analysis: pcre2_match() failed with code %d", r); error("Regular expression used was: %s", list[condno].expression); error("Trying to match the following line of data: %s", ln); @@ -517,6 +524,7 @@ free(lndup); else *nl = '\n'; + pcre2_match_data_free(md); return -1; } else @@ -527,14 +535,15 @@ /* Matched */ debug(DDATA, - "Matched: #%d %d[%c] (PCRE_ERROR_NOMATCH=%d)", - condno+1, r, list[condno].code, PCRE_ERROR_NOMATCH); + "Matched: #%d %d[%c] (PCRE2_ERROR_NOMATCH=%d)", + condno+1, r, list[condno].code, PCRE2_ERROR_NOMATCH); byteset_set(list[condno].code, 1); /* Check for substrings */ i = 1; + ovector = pcre2_get_ovector_pointer(md); while (i < r) { - if (ovector[i*2] < 0 || ovector[i*2+1] < 0) + if ((int)ovector[i*2] < 0 || (int)ovector[i*2+1] < 0) continue; set_mark(marks, , , ln - str + ovector[i*2], TOGGLE); @@
Bug#999965: shadowsocks-libev: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch, build-tested only. >From a214f32480e417c9bf3358652f96d29d51325560 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Sun, 17 Dec 2023 14:23:39 +0200 Subject: [PATCH] Port to PCRE2 (#65) --- debian/changelog | 7 ++ debian/control | 2 +- debian/patches/pcre2.patch | 157 + debian/patches/series | 1 + 4 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 debian/patches/pcre2.patch diff --git a/debian/changelog b/debian/changelog index c43a915..20c1f63 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +shadowsocks-libev (3.3.5+ds-11) UNRELEASED; urgency=medium + + * debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #65). + * debian/control (Build-Depends): Replace libpcre3-dev with libpcre2-dev. + + -- Yavor Doganov Sun, 17 Dec 2023 14:22:39 +0200 + shadowsocks-libev (3.3.5+ds-10) unstable; urgency=medium * Revert the move of systemd service files from /lib/ to /usr/lib/. diff --git a/debian/control b/debian/control index c2becba..d944661 100644 --- a/debian/control +++ b/debian/control @@ -16,7 +16,7 @@ Build-Depends: libev-dev, libjsonparser-dev, libmbedtls-dev, - libpcre3-dev, + libpcre2-dev, libsodium-dev, pkg-config, xmlto, diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch new file mode 100644 index 000..2691534 --- /dev/null +++ b/debian/patches/pcre2.patch @@ -0,0 +1,157 @@ +Description: Port to PCRE2. +Bug-Debian: https://bugs.debian.org/65 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-12-17 +--- + +--- shadowsocks-libev.orig/src/rule.c shadowsocks-libev/src/rule.c +@@ -78,14 +78,18 @@ + init_rule(rule_t *rule) + { + if (rule->pattern_re == NULL) { +-const char *reerr; +-int reerroffset; ++int reerr; ++PCRE2_SIZE reerroffset; + + rule->pattern_re = +-pcre_compile(rule->pattern, 0, , , NULL); ++pcre2_compile((PCRE2_SPTR)rule->pattern, strlen(rule->pattern), ++ 0, , , NULL); + if (rule->pattern_re == NULL) { +-LOGE("Regex compilation of \"%s\" failed: %s, offset %d", +- rule->pattern, reerr, reerroffset); ++PCRE2_UCHAR buf[120]; ++ ++pcre2_get_error_message(reerr, buf, sizeof(buf)); ++LOGE("Regex compilation of \"%s\" failed: %s, offset %zu", ++ rule->pattern, buf, reerroffset); + return 0; + } + } +@@ -97,6 +101,7 @@ + lookup_rule(const struct cork_dllist *rules, const char *name, size_t name_len) + { + struct cork_dllist_item *curr, *next; ++pcre2_match_data *md = NULL; + + if (name == NULL) { + name = ""; +@@ -105,10 +110,15 @@ + + cork_dllist_foreach_void(rules, curr, next) { + rule_t *rule = cork_container_of(curr, rule_t, entries); +-if (pcre_exec(rule->pattern_re, NULL, +- name, name_len, 0, 0, NULL, 0) >= 0) ++pcre2_match_data_free(md); ++md = pcre2_match_data_create_from_pattern(rule->pattern_re, NULL); ++if (pcre2_match(rule->pattern_re, (PCRE2_SPTR)name, ++name_len, 0, 0, md, NULL) >= 0) { ++pcre2_match_data_free(md); + return rule; ++} + } ++pcre2_match_data_free(md); + + return NULL; + } +@@ -128,6 +138,6 @@ + + ss_free(rule->pattern); + if (rule->pattern_re != NULL) +-pcre_free(rule->pattern_re); ++pcre2_code_free(rule->pattern_re); + ss_free(rule); + } +--- shadowsocks-libev.orig/src/rule.h shadowsocks-libev/src/rule.h +@@ -33,17 +33,16 @@ + + #include + +-#ifdef HAVE_PCRE_H +-#include +-#elif HAVE_PCRE_PCRE_H +-#include ++#ifdef HAVE_PCRE2_H ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include + #endif + + typedef struct rule { + char *pattern; + + /* Runtime fields */ +-pcre *pattern_re; ++pcre2_code *pattern_re; + + struct cork_dllist_item entries; + } rule_t; +--- shadowsocks-libev.orig/m4/pcre.m4 shadowsocks-libev/m4/pcre.m4 +@@ -82,12 +82,12 @@ + fi + ], + [ +- AC_CHECK_PROG(PCRE_CONFIG, pcre-config, pcre-config) ++ AC_CHECK_PROG(PCRE_CONFIG, pcre2-config, pcre2-config) + if test "x$PCRE_CONFIG" != "x"; then + enable_pcre=yes + pcre_base_dir="`$PCRE_CONFIG --prefix`" + pcre_include="`$PCRE_CONFIG --cflags | sed -es/-I//`" +-pcre_ldflags="`$PCRE_CONFIG --libs | sed -es/-lpcre// -es/-L//`" ++pcre_ldflags="`$PCRE_CONFIG --libs8 | sed -es/-lpcre// -es/-L//`" + fi + ]) + +@@ -95,7 +95,7 @@ + AC_MSG_CHECKING([for pcre location]) + AC_CACHE_VAL(ats_cv_pcre_dir,[ + for dir in /usr/local /usr ; do +-if test -d $dir &&
Bug#999968: sagan: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch, build-tested only. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/68 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-17 --- --- sagan-1.2.0.orig/configure.ac +++ sagan-1.2.0/configure.ac @@ -392,14 +392,25 @@ CPPFLAGS="${CPPFLAGS} -I${with_libpcre_includes}" fi -AC_CHECK_HEADER(pcre.h,,[AC_ERROR(pcre.h not found ...)]) +AC_CHECK_HEADER([pcre2.h], [], [AC_MSG_ERROR([pcre2.h not found ...])], +[[#define PCRE2_CODE_UNIT_WIDTH 8 +]]) if test "$with_libpcre_libraries" != "no"; then LDFLAGS="${LDFLAGS} -L${with_libpcre_libraries}" fi PCRE="" -AC_CHECK_LIB(pcre, pcre_get_substring,, PCRE="no") +LIBS="$LIBS -lpcre2-8" +AC_MSG_CHECKING([for pcre library]) +AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#define PCRE2_CODE_UNIT_WIDTH 8 +#include +]], +[[pcre2_match_data *md = pcre2_match_data_create(4, NULL);]])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + PCRE="no"]) if test "$PCRE" = "no"; then echo echo " ERROR! pcre library not found, go get it" @@ -408,98 +419,44 @@ exit 1 fi -# libpcre 8.35 (especially on debian) has a known issue that results in segfaults -if test "$with_libpcre_libraries" = "no"; then -PKG_CHECK_MODULES(LIBPCREVERSION, [libpcre = 8.35],[libpcre_buggy_found="yes"],[libprce_buggy_found="no"]) -if test "$libpcre_buggy_found" = "yes"; then -echo -echo " Warning! vulnerable libpcre version 8.35 found" -echo " This version has a known issue that could result in segfaults" -echo " please upgrade to a newer version of pcre which you can get from" -echo " www.pcre.org. For more information, see issue #1693" -echo -echo " Continuing for now with JIT disabled..." -echo -fi -fi - -# To prevent duping the lib link we reset LIBS after this check. Setting action-if-found to NULL doesn't seem to work -# see: http://blog.flameeyes.eu/2008/04/29/i-consider-ac_check_lib-harmful -PCRE="" -TMPLIBS="${LIBS}" -AC_CHECK_LIB(pcre, pcre_dfa_exec,, PCRE="no") -if test "$PCRE" = "no"; then -echo -echo " ERROR! pcre library was found but version was < 6.0" -echo " please upgrade to a newer version of pcre which you can get from" -echo " www.pcre.org." -echo -exit 1 -fi -LIBS="${TMPLIBS}" - -AC_TRY_COMPILE([ #include ], -[ int eo = 0; eo |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; ], -[ pcre_match_limit_recursion_available=yes ], [:] -) - -if test "$pcre_match_limit_recursion_available" != "yes"; then -echo -echo " Warning! pcre extra opt PCRE_EXTRA_MATCH_LIMIT_RECURSION not found" -echo " This could lead to potential DoS please upgrade to pcre >= 6.5" -echo " from www.pcre.org." -echo " Continuing for now" -echo -AC_DEFINE([NO_PCRE_MATCH_RLIMIT],[1],[Pcre PCRE_EXTRA_MATCH_LIMIT_RECURSION not available]) -fi - -TMPCFLAGS="${CFLAGS}" -CFLAGS="-O0 -g -Werror -Wall" -AC_TRY_COMPILE([ #include ], -[ pcre_extra *extra = NULL; pcre_free_study(extra); ], -[ AC_DEFINE([HAVE_PCRE_FREE_STUDY], [1], [Pcre pcre_free_study supported])], [:] -) -CFLAGS="${TMPCFLAGS}" - - #enable support for PCRE-jit available since pcre-8.20 AC_MSG_CHECKING(for PCRE JIT support) -AC_TRY_COMPILE([ #include ], -[ -int jit = 0; -pcre_config(PCRE_CONFIG_JIT, ); -], +AC_RUN_IFELSE( + [AC_LANG_PROGRAM([[#define PCRE2_CODE_UNIT_WIDTH 8 +#include +]], +[[uint32_t jit = 0; + pcre2_config(PCRE2_CONFIG_JIT, ); + if (jit) +exit(EXIT_SUCCESS); + exit(EXIT_FAILURE);]])], [ pcre_jit_available=yes ], [ pcre_jit_available=no ] ) -# bug 1693, libpcre 8.35 is broken and debian jessie is still using that -if test "$libpcre_buggy_found" = "yes"; then -pcre_jit_available="no, libpcre 8.35 blacklisted" -fi - if test "x$pcre_jit_available" = "xyes"; then AC_MSG_RESULT(yes) AC_DEFINE([PCRE_HAVE_JIT], [1], [Pcre with JIT compiler support enabled]) AC_MSG_CHECKING(for PCRE JIT support usability) - AC_TRY_COMPILE([ #include ], - [ - const char* regexstr = "(a|b|c|d)"; - pcre *re; - const char *error; - pcre_extra *extra; - int err_offset; - re = pcre_compile(regexstr,0, , _offset,NULL); - extra = pcre_study(re, PCRE_STUDY_JIT_COMPILE, ); - if (extra == NULL) - exit(EXIT_FAILURE); - int jit = 0; - int ret = pcre_fullinfo(re, extra, PCRE_INFO_JIT, ); - if (ret != 0 || jit !=
Bug#999984: prads: depends on obsolete pcre3 library
Control: tags -1 + patch Please find a patch attached. I could not observe problems while testing it. >From 014406e858e3e2af471bfb2b392ea693674120e3 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Sun, 17 Dec 2023 00:53:23 +0200 Subject: [PATCH] Port to PCRE2 (#84) --- debian/changelog | 8 + debian/control| 5 +- debian/patches/debian-changes | 359 ++ src/Makefile | 2 +- src/prads.c | 5 +- src/prads.h | 6 +- src/servicefp/servicefp.c | 31 ++- src/servicefp/servicefp.h | 4 +- src/servicefp/tcpc.c | 18 +- src/servicefp/tcps.c | 18 +- src/servicefp/udps.c | 18 +- 11 files changed, 430 insertions(+), 44 deletions(-) diff --git a/debian/changelog b/debian/changelog index 445f0e0..9735891 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +prads (0.3.3-8) UNRELEASED; urgency=medium + + * Port to PCRE2 (Closes: #84). + * debian/control (Depends): Drop libpcre3. +(Build-Depends): Replace libpcre3-dev with libpcre2-dev. + + -- Yavor Doganov Sun, 17 Dec 2023 00:51:17 +0200 + prads (0.3.3-7) unstable; urgency=medium * Remove 1 obsolete maintscript entry. diff --git a/debian/control b/debian/control index 5895778..a2fb71f 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,7 @@ Maintainer: Stig Sandbeck Mathisen Build-Depends: debhelper-compat (= 13), libpcap-dev, - libpcre3-dev, + libpcre2-dev, python3-docutils, Standards-Version: 4.6.0 Homepage: https://gamelinux.github.com/prads/ @@ -15,8 +15,7 @@ Vcs-Browser: https://salsa.debian.org/debian/prads Package: prads Architecture: any Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends}, libpcap0.8, libpcre3, - adduser +Depends: ${shlibs:Depends}, ${misc:Depends}, libpcap0.8, adduser Description: Passive Real-time Asset Detection System PRADS is a Passive Real-time Asset Detection System. . diff --git a/debian/patches/debian-changes b/debian/patches/debian-changes index 89c1c18..848acc3 100644 --- a/debian/patches/debian-changes +++ b/debian/patches/debian-changes @@ -58,6 +58,15 @@ A single combined diff, containing all the changes, follows. # for finding static libraries LIBDIR=/usr/lib/x86_64-linux-gnu +@@ -28,7 +28,7 @@ ifeq (${STATIC},) + ifeq (${TCMALLOC},y) + LDFLAGS+=-ltcmalloc + endif +-LDFLAGS+=-lpcap -lpcre -lresolv ++LDFLAGS+=-lpcap -lpcre2-8 -lresolv + CFLAGS+=-DCONFDIR='"${CONFDIR}/"' + else + ifeq (${TCMALLOC},y) --- prads-0.3.3.orig/src/output-plugins/log.h +++ prads-0.3.3/src/output-plugins/log.h @@ -19,8 +19,8 @@ typedef struct _output_plugin { @@ -82,3 +91,353 @@ A single combined diff, containing all the changes, follows. /* -- * FUNCTION : init_identification +@@ -135,8 +135,8 @@ int parse_raw_signature(bstring line, in + signature *sig, *head; + sig = head = NULL; + bstring pcre_string = NULL; +-const char *err = NULL; /* PCRE */ +-int erroffset; /* PCRE */ ++int err;/* PCRE */ ++PCRE2_SIZE erroffset; /* PCRE */ + int ret = 0; + int i; + +@@ -207,18 +207,17 @@ int parse_raw_signature(bstring line, in + */ + if (pcre_string != NULL) { + if ((sig->regex = +- pcre_compile((char *)bdata(pcre_string), 0, , +- , NULL)) == NULL) { ++ pcre2_compile((PCRE2_SPTR)bdata(pcre_string), ++ PCRE2_ZERO_TERMINATED, 0, , ++ , NULL)) == NULL) { ++PCRE2_UCHAR buf[120]; ++ ++pcre2_get_error_message(err, buf, sizeof(buf)); + printf("Unable to compile signature: %s at line %d (%s)", +- err, lineno, bdata(line)); ++ buf, lineno, bdata(line)); + ret = -1; + } + } +-if (ret != -1) { +-sig->study = pcre_study(sig->regex, 0, ); +-if (err != NULL) +-printf("Unable to study signature: %s", err); +-} + + /* + * Add signature to 'signature_list' data structure. +@@ -266,8 +265,7 @@ void free_signature_list (signature *hea + bdestroy(head->title.app); + bdestroy(head->title.ver); + bdestroy(head->title.misc); +-if (head->regex != NULL) free(head->regex); +-if (head->study != NULL) free(head->study); ++pcre2_code_free(head->regex); + tmp = head->next; + free(head); + head = NULL; +@@ -297,11 +295,11 @@ void del_signature_lists() + * INPUT: 0 - Signature Pointer + * : 1 - payload + *
Bug#1058817: picom: depends on obsolete pcre3 library
Source: picom Version: 10.2-1 Severity: serious Tags: sid trixie fixed-upstream User: matthew-pcre...@debian.org Usertags: obsolete-pcre3 Dear maintainer, During the mass bug filing for the pcre3->pcre2 transition [*], this package was left out somehow. I am filing this (edited copy) post-factum. Fortunately this bug has been fixed upstream. [*] https://release.debian.org/transitions/html/pcre3-to-pcre2.html Your package still depends on the old, obsolete PCRE3 libraries (i.e. libpcre3-dev). This has been end of life for a while now, and upstream do not intend to fix any further bugs in it. Accordingly, we would like to remove the pcre3 libraries from Debian. The newer PCRE2 library was first released in 2015, and has been in Debian since stretch. Upstream's documentation for PCRE2 is available here: https://pcre.org/current/doc/html/ Many large projects that use PCRE have made the switch now (e.g. git, php); it does involve some work, but we are now at the stage where PCRE3 should not be used, particularly if it might ever be exposed to untrusted input. This mass bug filing was discussed on debian-devel@ in https://lists.debian.org/debian-devel/2021/11/msg00176.html
Bug#1000001: pgpcre: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch. I have not tested the package except the build-time tests. Initially, I tried to follow upstream's desire for custom memory management, so I created a pcre2_general_context in _PG_init (changing the pgpcre_malloc/pgpcre_free prototypes as is required). Unfortunately, the test program crashes when pfree is invoked in src:pcre2:src/pcre2_match.c:6846. It looks like palloc/pfree are not suitable as PCRE2 custom memory management functions as they use memory context like in PCRE2 itself. Or I am misunderstanding something. >From f46d9ca762751a3c856369d781cf69554c31e001 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Sat, 16 Dec 2023 22:29:20 +0200 Subject: [PATCH] Port to PCRE2 (#101). --- debian/changelog | 6 + debian/control | 2 +- debian/control.in | 2 +- debian/patches/pcre2.patch | 268 + debian/patches/series | 1 + 5 files changed, 277 insertions(+), 2 deletions(-) create mode 100644 debian/patches/pcre2.patch create mode 100644 debian/patches/series diff --git a/debian/changelog b/debian/changelog index 1d0f545..cba8632 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +pgpcre (0.20190509-7) UNRELEASED; urgency=medium + + * Port to PCRE2 (Closes: #101). + + -- Yavor Doganov Sat, 16 Dec 2023 22:27:38 +0200 + pgpcre (0.20190509-6) unstable; urgency=medium * Upload for PostgreSQL 16. diff --git a/debian/control b/debian/control index 1073417..bb8c141 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Uploaders: Christoph Berg , Build-Depends: debhelper-compat (= 13), - libpcre3-dev, + libpcre2-dev, pkg-config, postgresql-all (>= 217~), Standards-Version: 4.6.2 diff --git a/debian/control.in b/debian/control.in index 5fe2318..0f01b24 100644 --- a/debian/control.in +++ b/debian/control.in @@ -6,7 +6,7 @@ Uploaders: Christoph Berg , Build-Depends: debhelper-compat (= 13), - libpcre3-dev, + libpcre2-dev, pkg-config, postgresql-all (>= 217~), Standards-Version: 4.6.2 diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch new file mode 100644 index 000..f138fb1 --- /dev/null +++ b/debian/patches/pcre2.patch @@ -0,0 +1,268 @@ +Description: Port to PCRE2. +Bug-Debian: https://bugs.debian.org/101 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-12-16 +--- + +--- pgpcre-0.20190509.orig/Makefile pgpcre-0.20190509/Makefile +@@ -6,12 +6,12 @@ + OBJS = pgpcre.o + DATA = pgpcre--0.sql pgpcre--1.sql pgpcre--0--1.sql + +-ifeq (no,$(shell $(PKG_CONFIG) libpcre || echo no)) ++ifeq (no,$(shell $(PKG_CONFIG) libpcre2-8 || echo no)) + $(warning libpcre not registed with pkg-config, build might fail) + endif + +-PG_CPPFLAGS += $(shell $(PKG_CONFIG) --cflags-only-I libpcre) +-SHLIB_LINK += $(shell $(PKG_CONFIG) --libs libpcre) ++PG_CPPFLAGS += $(shell $(PKG_CONFIG) --cflags-only-I libpcre2-8) ++SHLIB_LINK += $(shell $(PKG_CONFIG) --libs libpcre2-8) + + REGRESS = init test unicode + REGRESS_OPTS = --inputdir=test +--- pgpcre-0.20190509.orig/pgpcre.c pgpcre-0.20190509/pgpcre.c +@@ -5,7 +5,8 @@ + #include + #include + +-#include ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include + + PG_MODULE_MAGIC; + +@@ -57,19 +58,19 @@ + pcre_in(PG_FUNCTION_ARGS) + { + char *input_string = PG_GETARG_CSTRING(0); +- pcre *pc; +- const char *err; +- int erroffset; +- size_t in_strlen; +- int rc, total_len, pcsize; ++ pcre2_code *pc; ++ int err; ++ PCRE2_SIZE erroffset; ++ size_t in_strlen, pcsize; ++ int rc, total_len; + pgpcre *result; + + in_strlen = strlen(input_string); + + if (GetDatabaseEncoding() == PG_UTF8) +- pc = pcre_compile(input_string, PCRE_UTF8 | PCRE_UCP, , , NULL); ++ pc = pcre2_compile((PCRE2_SPTR) input_string, in_strlen, PCRE2_UTF | PCRE2_UCP, , , NULL); + else if (GetDatabaseEncoding() == PG_SQL_ASCII) +- pc = pcre_compile(input_string, 0, , , NULL); ++ pc = pcre2_compile((PCRE2_SPTR) input_string, in_strlen, 0, , , NULL); + else + { + char *utf8string; +@@ -78,22 +79,27 @@ + in_strlen, + GetDatabaseEncoding(), + PG_UTF8); +- pc = pcre_compile(utf8string, PCRE_UTF8 | PCRE_UCP, , , NULL); ++ pc = pcre2_compile((PCRE2_SPTR) utf8string, strlen(utf8string), PCRE2_UTF | PCRE2_UCP, , , NULL); + if (utf8string != inp
Bug#1000009: opencollada: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch. Tested with an example COLLADA file. >From f1772e60500e6cbdf3231792a6f7216eb1ac53e0 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Sat, 16 Dec 2023 15:34:11 +0200 Subject: [PATCH] Port to PCRE2 (#109) --- debian/changelog | 7 + debian/control | 2 +- debian/patches/pcre2.patch | 785 + debian/patches/series | 1 + 4 files changed, 794 insertions(+), 1 deletion(-) create mode 100644 debian/patches/pcre2.patch diff --git a/debian/changelog b/debian/changelog index c87ac4f..f0634a2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +opencollada (0.1.0~20180719.619d942+dfsg0-3) UNRELEASED; urgency=medium + + * debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #109). + * debian/control (Build-Depends): Replace libpcre3-dev with libpcre2-dev. + + -- Yavor Doganov Sat, 16 Dec 2023 15:32:13 +0200 + opencollada (0.1.0~20180719.619d942+dfsg0-2) unstable; urgency=medium * Upload to unstable diff --git a/debian/control b/debian/control index da6c13e..4c64ef8 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Uploaders: Matteo F. Vescovi Build-Depends: cmake, debhelper-compat (= 11), - libpcre3-dev, + libpcre2-dev, libxml2-dev Standards-Version: 4.2.1 Homepage: http://www.opencollada.org/ diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch new file mode 100644 index 000..6849bc6 --- /dev/null +++ b/debian/patches/pcre2.patch @@ -0,0 +1,785 @@ +Description: Port to PCRE2. +Bug-Debian: https://bugs.debian.org/109 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-12-16 +--- + +--- opencollada.orig/CMakeLists.txt opencollada/CMakeLists.txt +@@ -257,16 +257,8 @@ + find_package(PCRE) + if (PCRE_FOUND) + message(STATUS "SUCCESSFUL: PCRE found") +-else () # if pcre not found building its local copy from ./Externals +- if (WIN32 OR APPLE) +- message("WARNING: Native PCRE not found, taking PCRE from ./Externals") +- add_definitions(-DPCRE_STATIC) +- add_subdirectory(${EXTERNAL_LIBRARIES}/pcre) +- set(PCRE_INCLUDE_DIR ${libpcre_include_dirs}) +- set(PCRE_LIBRARIES pcre) +- else () +- message("ERROR: PCRE not found, please install pcre library") +- endif () ++else () ++ message("ERROR: PCRE not found, please install pcre library") + endif () + + # building required libs +--- opencollada.orig/COLLADABaseUtils/include/COLLADABUPcreCompiledPattern.h opencollada/COLLADABaseUtils/include/COLLADABUPcreCompiledPattern.h +@@ -12,6 +12,8 @@ + #define __COLLADABU_PCRECOMPILEDPATTERN_H__ + + #include "COLLADABUPrerequisites.h" ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include + + struct real_pcre; + typedef struct real_pcre pcre; +@@ -29,7 +31,7 @@ + { + private: + /** The compiled pattern.*/ +- pcre *mCompiledPattern; ++ pcre2_code *mCompiledPattern; + + /** True, if we need to free the pattern in the destructor, false otherwise.*/ + bool mFreePattern; +@@ -44,7 +46,7 @@ + virtual ~PcreCompiledPattern(); + + /** Returns the compiled pattern. */ +- pcre* getCompiledPattern() const; ++ pcre2_code* getCompiledPattern() const; + + private: + +@@ -55,7 +57,7 @@ + const PcreCompiledPattern& operator= ( const PcreCompiledPattern& pre ); + + /** Compiles the pattern.*/ +- pcre* compilePattern( const char* pattern ); ++ pcre2_code* compilePattern( const char* pattern ); + + }; + +--- opencollada.orig/COLLADABaseUtils/src/COLLADABUPcreCompiledPattern.cpp opencollada/COLLADABaseUtils/src/COLLADABUPcreCompiledPattern.cpp +@@ -11,7 +11,6 @@ + #include "COLLADABUStableHeaders.h" + #include "COLLADABUPcreCompiledPattern.h" + +-#include "pcre.h" + + namespace COLLADABU + { +@@ -30,17 +29,18 @@ + { + if ( mFreePattern ) + { +- pcre_free(mCompiledPattern); ++ pcre2_code_free(mCompiledPattern); + } + } + + //-- +- pcre* PcreCompiledPattern::compilePattern( const char* pattern ) ++ pcre2_code* PcreCompiledPattern::compilePattern( const char* pattern ) + { +- const char *error; +- int erroffset; +- pcre* compiledPattern = pcre_compile( +- pattern, /* the pattern */ ++ int error; ++ size_t erroffset; ++ pcre2_code* compiledPattern = pcre2_compile( ++
Bug#1050187: mvdsv: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch (build-tested only). >From e7127e5a2fa57f84dc12cc6d63671c872c48d28b Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Thu, 14 Dec 2023 18:31:41 +0200 Subject: [PATCH] Port to PCRE2 (#1050187) --- debian/changelog | 7 + debian/control | 2 +- debian/patches/pcre2.patch | 316 + debian/patches/series | 1 + 4 files changed, 325 insertions(+), 1 deletion(-) create mode 100644 debian/patches/pcre2.patch diff --git a/debian/changelog b/debian/changelog index 0f44607..9874ff2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +mvdsv (0.35-7) UNRELEASED; urgency=medium + + * debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #1050187). + * debian/control (Build-Depends): Replace libpcre3-dev with libpcre2-dev. + + -- Yavor Doganov Thu, 14 Dec 2023 18:30:40 +0200 + mvdsv (0.35-6) unstable; urgency=high * Fix build failure on big endian systems diff --git a/debian/control b/debian/control index d53102d..f69173d 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,7 @@ Priority: optional Build-Depends: debhelper-compat (= 13), cmake, libcurl4-openssl-dev, - libpcre3-dev, + libpcre2-dev, Rules-Requires-Root: no Standards-Version: 4.6.2 Vcs-Browser: https://salsa.debian.org/games-team/mvdsv diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch new file mode 100644 index 000..efad8d1 --- /dev/null +++ b/debian/patches/pcre2.patch @@ -0,0 +1,316 @@ +Description: Port to PCRE2. +Bug-Debian: https://bugs.debian.org/1050187 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-12-14 +--- + +--- mvdsv.orig/CMakeLists.txt mvdsv/CMakeLists.txt +@@ -90,18 +90,14 @@ + ## + + # Check for PCRE. if found, include it; if not found, use bundled PCRE. +-find_library(PCRE_LIBRARIES pcre) ++find_library(PCRE_LIBRARIES pcre2-8) + if(PCRE_LIBRARIES) + set(PCRE_FOUND 1) +- find_path(PCRE_INCLUDE_DIR pcre.h) ++ find_path(PCRE_INCLUDE_DIR pcre2.h) + endif(PCRE_LIBRARIES) + + if(NOT PCRE_FOUND) +- message(STATUS "PCRE library not found. Using bundled PCRE instead.") +- list(APPEND SRC_COMMON +- "${DIR_SRC}/pcre/get.c" +- "${DIR_SRC}/pcre/pcre.c" +- ) ++ message(FATAL_ERROR "PCRE library not found.") + else() + message(STATUS "Found PCRE: ${PCRE_LIBRARIES}") + endif() +--- mvdsv.orig/src/sv_demo_misc.c mvdsv/src/sv_demo_misc.c +@@ -22,7 +22,8 @@ + #ifndef CLIENTONLY + #include "qwsvdef.h" + #ifndef SERVERONLY +-#include "pcre.h" ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include + #endif + + #define MAX_DEMOINFO_SIZE (1024 * 200) +@@ -342,8 +343,10 @@ + int files[MAX_DIRFILES + 1]; + + int r; +- pcre*preg; +- const char *errbuf; ++ size_t erroffset; ++ pcre2_code *preg; ++ pcre2_match_data *md; ++ PCRE2_UCHAR errbuf[120]; + + memset(files, 0, sizeof(files)); + +@@ -361,26 +364,29 @@ + { + if (use_regex) + { +- if (!(preg = pcre_compile(Q_normalizetext(Cmd_Argv(j)), PCRE_CASELESS, , , NULL))) ++ if (!(preg = pcre2_compile((PCRE2_SPTR)Q_normalizetext(Cmd_Argv(j)), PCRE2_ZERO_TERMINATED, PCRE2_CASELESS, , , NULL))) + { +- Con_Printf("Sys_listdir: pcre_compile(%s) error: %s at offset %d\n", +- Cmd_Argv(j), errbuf, r); +- pcre_free(preg); ++ pcre2_get_error_message(r, errbuf, sizeof(errbuf)); ++ Con_Printf("Sys_listdir: pcre2_compile(%s) error: %s at offset %lu\n", ++ Cmd_Argv(j), errbuf, erroffset); + break; + } +- switch (r = pcre_exec(preg, NULL, list->name, +-strlen(list->name), 0, 0, NULL, 0)) ++ md = pcre2_match_data_create_from_pattern(preg, NULL); ++ switch (r = pcre2_match(preg, (PCRE2_SPTR)list->name, ++ strlen(list->name), 0, 0, md, NULL)) + { + case 0: +- pcre_free(preg); ++ pcre2_match_data_free(md); ++ pcre
Bug#1057281: RFS: parser/3.4.6-4 [QA] [RC] -- HTML-embedded scripting language
On Sat, 02 Dec 2023 18:44:29 +0200, Yavor Doganov wrote: >* debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #106). Upstream reworked the patch that I forwarded to retain support for the old PCRE, so I have updated it to the version that will be part of the next upstream release and reuploaded the package to mentors.d.n. The only other change is the updated debian/changelog timestamp.
Bug#1000015: mp4h: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch. >From 4ead19b22c1564097192c50e2ec42c07351ef8de Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Sun, 10 Dec 2023 17:12:31 +0200 Subject: [PATCH] Port to PCRE2 (#115) --- debian/changelog | 7 + debian/control | 2 +- debian/patches/pcre2.patch | 449 + debian/patches/series | 1 + 4 files changed, 458 insertions(+), 1 deletion(-) create mode 100644 debian/patches/pcre2.patch diff --git a/debian/changelog b/debian/changelog index b8143c6..018 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +mp4h (1.3.1-18) UNRELEASED; urgency=medium + + * debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #115). + * debian/control (Build-Depends): Replace libpcre3-dev with libpcre2-dev. + + -- Yavor Doganov Sun, 10 Dec 2023 17:11:18 +0200 + mp4h (1.3.1-17) unstable; urgency=medium [ Axel Beckert ] diff --git a/debian/control b/debian/control index 4ee9a51..4630c13 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: autoconf (>= 2.57~), fakeroot, gettext, libltdl-dev, - libpcre3-dev, + libpcre2-dev, libtool, tidy Build-Conflicts: autoconf2.13, diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch new file mode 100644 index 000..15a5857 --- /dev/null +++ b/debian/patches/pcre2.patch @@ -0,0 +1,449 @@ +Description: Port to PCRE2. +Bug-Debian: https://bugs.debian.org/115 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-12-10 +--- + +--- mp4h.orig/src/Makefile.am mp4h/src/Makefile.am +@@ -17,7 +17,7 @@ + if LOADABLE_MODULES + mp4h_LDFLAGS = -export-dynamic + endif +-mp4h_LDADD = -lm $(top_builddir)/lib/libmp4h.a -lpcre @LIBINTL@ $(MODULE_LDADD) ++mp4h_LDADD = -lm $(top_builddir)/lib/libmp4h.a -lpcre2-8 @LIBINTL@ $(MODULE_LDADD) + + include_HEADERS = mp4h.h + noinst_HEADERS = builtin.h +--- mp4h.orig/src/builtin.c mp4h/src/builtin.c +@@ -373,7 +373,7 @@ + static char * utf8char_skip __P ((char *, int)); + static int utf8char_strlen __P ((char *)); + static int encoding_strlen __P ((char *)); +-static void substitute __P ((struct obstack *, const char *, const char *, int *)); ++static void substitute __P ((struct obstack *, const char *, const char *, size_t *)); + static void string_regexp __P ((struct obstack *, int, token_data **, int, const char *)); + static void subst_in_string __P ((struct obstack *, int, token_data **, int)); + static void generic_variable_lookup __P ((MP4H_BUILTIN_PROTO, boolean)); +@@ -382,6 +382,8 @@ + static int array_member __P ((const char *, symbol *, boolean)); + static int sort_function __P ((const void *, const void *)); + static void logical_to_physical_paths __P ((char **)); ++static void * pcre_malloc (size_t, void *); ++static void pcre_free (void *, void *); + + /* This symbol controls breakings of flow statements. */ + static symbol varbreak; +@@ -398,7 +400,12 @@ + struct lconv *my_locale; + + /* Table of characters used by PCRE with non-C locales */ +-static const unsigned char *re_tableptr = NULL; ++static const uint8_t *re_tableptr = NULL; ++ ++/* PCRE contexts needed for custom memory management and adding ++non-builtin character tables. */ ++static pcre2_general_context *gen_ctxt; ++static pcre2_compile_context *comp_ctxt; + + /* Timer */ + static struct tms elapsed_time; +@@ -662,12 +669,22 @@ + | Initialise all builtin and predefined macros. | + `---*/ + ++static void * ++pcre_malloc (size_t size, void *ptr) ++{ ++ return xmalloc (size); ++} ++ ++static void ++pcre_free (void *ptr, void *tag) ++{ ++ xfree (ptr); ++} ++ + void + builtin_init (void) + { + install_builtin_table (builtin_tab); +- pcre_malloc = xmalloc; +- pcre_free = xfree; + } + + /*---. +@@ -688,18 +705,22 @@ + varstack_check (); + } + +-static pcre * ++static pcre2_code * + xre_compile (const char *pattern, int cflags) + { +- pcre *patcomp; +- const char *errbuf; +- int erroffset; ++ pcre2_code *patcomp; ++ PCRE2_UCHAR errbuf[120]; ++ int errcode; ++ size_t erroffset; + + if (document_encoding == ENCODING_UTF8) +- cflags |= PCRE_UTF8; +- patcomp = pcre_compile (pattern, cflags, , , re_tableptr); ++ cflags |= PCRE2_UTF; ++ pcre2_set_character_tables (comp_ctxt, re_tableptr); ++ patcomp = pcre2_compile ((PCRE2_SPTR) pattern, PCRE2_ZERO_TERMINATED, ++ cflags, , , comp_ctxt); + if (patcomp == 0) + { ++ pcre2_get_error_message (errcode, errbuf, sizeof (errbuf)); + MP4HERROR ((warning_status, 0, + _("Warning:%s:%d: Bad regular expression `%s' at position %d: %s"), + CURRENT_FILE_LINE, pattern, erroffset, errbuf)); +@@ -822,11 +843,10 @@ +
Bug#1000047: libsynthesis: depends on obsolete pcre3 library
Control: tags -1 + patch The patch available at the forwarded URL that Adrian Bunk added some time ago looks decent to me -- I have build-tested it and include it here in a form that can be directly dropped in debian/patches. Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/147 Author: Milan Crha Forwarded: no Last-Update: 2023-12-09 --- --- libsynthesis-3.4.0.47.5+syncevolution-1.5.3.orig/configure.in +++ libsynthesis-3.4.0.47.5+syncevolution-1.5.3/configure.in @@ -70,9 +70,9 @@ [enable_regex=$enableval], [enable_regex="yes"]) if test "$enable_regex" == "yes"; then -PKG_CHECK_MODULES(PCRE, libpcre, +PKG_CHECK_MODULES(PCRE, libpcre2-8, [HAVE_PCRE=1], - [AC_ERROR([libpcre not found, required for --enable-regex])]) + [AC_ERROR([libpcre2 not found, required for --enable-regex])]) HAVE_PCRE=1 else HAVE_PCRE=0 --- libsynthesis-3.4.0.47.5+syncevolution-1.5.3.orig/src/sysync/scriptcontext.cpp +++ libsynthesis-3.4.0.47.5+syncevolution-1.5.3/src/sysync/scriptcontext.cpp @@ -24,7 +24,8 @@ #include "vtimezone.h" // for SETTIMEZONE #include "mimediritemtype.h" // for AlldayCount/MakeAllday #ifdef REGEX_SUPPORT - #include "pcre.h" // for RegEx functions + #define PCRE2_CODE_UNIT_WIDTH 8 + #include "pcre2.h" // for RegEx functions #endif #include @@ -1323,7 +1324,7 @@ // Returns: > 0 => success; value is the number of elements filled in // = 0 => success, but offsets is not big enough //-1 => failed to match - //-2 => PCRE_ERROR_NULL => did not compile, error reported to aDbgLogger + //-2 => PCRE2_ERROR_NULL => did not compile, error reported to aDbgLogger // < -2 => some kind of unexpected problem static int run_pcre(cAppCharP aRegEx, cAppCharP aSubject, stringSize aSubjLen, stringSize aSubjStart, int *aOutVec, int aOVSize, TDebugLogger *aDbgLogger) { @@ -1351,11 +1352,11 @@ cAppCharP o = p++; while (*o) { switch (*o) { -case 'i' : options |= PCRE_CASELESS; break; -case 'm' : options |= PCRE_MULTILINE; break; -case 's' : options |= PCRE_DOTALL; break; -case 'x' : options |= PCRE_EXTENDED; break; -case 'U' : options |= PCRE_UNGREEDY; break; +case 'i' : options |= PCRE2_CASELESS; break; +case 'm' : options |= PCRE2_MULTILINE; break; +case 's' : options |= PCRE2_DOTALL; break; +case 'x' : options |= PCRE2_EXTENDED; break; +case 'U' : options |= PCRE2_UNGREEDY; break; } o++; } @@ -1369,23 +1370,43 @@ } // while chars in regex } // if regex with delimiter // - compile regex -pcre *regex; -cAppCharP errMsg=NULL; -int errOffs=0; -regex = pcre_compile(aRegEx, options | PCRE_UTF8, , , NULL); +pcre2_code *regex; +int errNum=0; +size_t errOffs=0; +regex = pcre2_compile((PCRE2_SPTR) aRegEx, options | PCRE2_UTF | PCRE2_ZERO_TERMINATED, 0, , , NULL); if (regex==NULL) { + PCRE2_UCHAR buffer[256] = { 0 }; + pcre2_get_error_message(errNum, buffer, sizeof(buffer)); // error, display it in log if script logging is on PLOGDEBUGPRINTFX(aDbgLogger,DBG_SCRIPTS+DBG_ERROR,( "RegEx error at pattern pos %d: %s ", -errOffs, -errMsg ? errMsg : "" +(int) errOffs, +*buffer ? (const char *) buffer : "" )); - return PCRE_ERROR_NULL; // -2, regexp did not compile + return PCRE2_ERROR_NULL; // -2, regexp did not compile } else { + pcre2_match_data *match_data; // regExp is ok and can be executed against subject - int r = pcre_exec(regex, NULL, aSubject, aSubjLen, aSubjStart, 0, aOutVec, aOVSize); - pcre_free(regex); + match_data = pcre2_match_data_create_from_pattern(regex, NULL); + int r = pcre2_match(regex, (PCRE2_SPTR) aSubject, aSubjLen, 0, 0, match_data, NULL); + if (r > 0 && aOutVec != NULL) { +PCRE2_SIZE *ovector; + ovector = pcre2_get_ovector_pointer(match_data); + if (ovector[0] > ovector[1]) { + aOutVec[0] = ovector[1]; + r = 1; +} else { + int ii; + for (ii = 0; ii < r && ii < aOVSize; ii++) { + aOutVec[ii] = (int) ovector[ii]; + } + if (r > ii) + r = ii; +} + } + pcre2_match_data_free(match_data); + pcre2_code_free(regex); return r; } } // run_pcre
Bug#1050183: httest: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch. Description: Port to PCRE2. Debian-Bug: https://bugs.debian.org/1050183 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-09 --- --- httest-2.4.23.orig/configure.ac +++ httest-2.4.23/configure.ac @@ -54,9 +54,9 @@ fi], [APR_ICONV_INCLUDES=""; APR_ICONV_LIBS=""]) -AC_ARG_WITH(pcre,AS_HELP_STRING(--with-pcre=PATH,path to pcre-config script), - [if test ! -x $withval/pcre-config; then AC_MSG_ERROR($withval/pcre-config do not exist or is not executable); else PCRE_CONFIG="$withval/pcre-config"; fi], - [PCRE_CONFIG="pcre-config"]) +AC_ARG_WITH(pcre,AS_HELP_STRING(--with-pcre=PATH,path to pcre2-config script), + [if test ! -x $withval/pcre2-config; then AC_MSG_ERROR($withval/pcre2-config do not exist or is not executable); else PCRE_CONFIG="$withval/pcre2-config"; fi], + [PCRE_CONFIG="pcre2-config"]) AC_ARG_WITH(lua,AS_HELP_STRING(--with-lua=PATH,path to lua source dir), [if test ! -d $withval; then AC_MSG_ERROR($withval is not a directory); else LUA_LIB_PATH="-L${withval}"; LUA_INCLUDES="-I${withval}"; LUA_LIB="-llua"; fi], [LUA_LIB_PATH=""; if test -d /usr/include/lua5.1; then LUA_INCLUDES="-I/usr/include/lua5.1"; else LUA_INCLUDES=""; fi; LUA_LIB="-llua5.1"]) @@ -93,7 +93,7 @@ INCLUDES="`$APR_CONFIG --includes` `$APU_CONFIG --includes` $OPENSSL_INCLUDES $APR_ICONV_CONFIG" CFLAGS="`$APR_CONFIG --cflags` `$PCRE_CONFIG --cflags` $CFLAGS $INCLUDES" CPPFLAGS="`$APR_CONFIG --cppflags` $CPPFLAGS" -LIBS="$OPENSSL_LIB_PATH -lssl -lcrypto `$APR_CONFIG --link-ld` `$APU_CONFIG --link-ld` `$APR_CONFIG --libs` `$APU_CONFIG --libs` `$PCRE_CONFIG --libs` -lz -lm" +LIBS="$OPENSSL_LIB_PATH -lssl -lcrypto `$APR_CONFIG --link-ld` `$APU_CONFIG --link-ld` `$APR_CONFIG --libs` `$APU_CONFIG --libs` `$PCRE_CONFIG --libs8` -lz -lm" if test "$enable_ssl_legacy_reneg" = "yes"; then CFLAGS="$CFLAGS -DSSL_ALLOW_UNSAFE_LEGACY_RENEGOTIATION" --- httest-2.4.23.orig/src/regex.c +++ httest-2.4.23/src/regex.c @@ -29,7 +29,8 @@ #include #endif -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include #include #include @@ -71,26 +72,27 @@ * * @param p IN pool * @param pattern IN pattern to compile - * @param error IN error string + * @param error IN error code * @param erroff IN offset into pattern wherer compilation fails * * @return regular express on success else NULL */ htt_regex_t *htt_regexcomp(apr_pool_t * p, const char *pattern, - const char **error, int *erroff) { + int *error, size_t *erroff) { htt_regex_t *preg = apr_palloc(p, sizeof *preg); preg->match = 0; preg->pattern = apr_pstrdup(p, pattern); - preg->re_pcre = pcre_compile(pattern, 0, error, erroff, NULL); + preg->re_pcre = pcre2_compile((PCRE2_SPTR) pattern, PCRE2_ZERO_TERMINATED, +0, error, erroff, NULL); preg->re_erroffset = *erroff; if (preg->re_pcre == NULL) { return NULL; } - pcre_fullinfo((const pcre *)preg->re_pcre, NULL, PCRE_INFO_CAPTURECOUNT, &(preg->re_nsub)); + pcre2_pattern_info(preg->re_pcre, PCRE2_INFO_CAPTURECOUNT, &(preg->re_nsub)); apr_pool_cleanup_register(p, (void *) preg, htt_regex_cleanup, apr_pool_cleanup_null); @@ -114,24 +116,24 @@ apr_size_t nmatch, regmatch_t pmatch[], int eflags) { int rc; int options = 0; - int *ovector = NULL; - int small_ovector[POSIX_MALLOC_THRESHOLD * 3]; - int allocated_ovector = 0; + pcre2_match_data *md; + size_t *ovector = NULL; + uint32_t md_size; ((htt_regex_t *) preg)->re_erroffset = (apr_size_t) (-1); /* Only has meaning after compile */ if (nmatch > 0) { if (nmatch <= POSIX_MALLOC_THRESHOLD) { - ovector = &(small_ovector[0]); + md_size = POSIX_MALLOC_THRESHOLD * 3; } else { - ovector = (int *) malloc(sizeof(int) * nmatch * 3); - allocated_ovector = 1; + md_size = nmatch * 3; } } - rc = pcre_exec((const pcre *) preg->re_pcre, NULL, data, - len, 0, options, ovector, nmatch * 3); + md = pcre2_match_data_create(md_size, NULL); + rc = pcre2_match(preg->re_pcre, (PCRE2_SPTR) data, + len, 0, options, md, NULL); if (rc == 0) { rc = nmatch;/* All captured slots were filled in */ @@ -139,22 +141,19 @@ if (rc >= 0) { apr_size_t i; +ovector = pcre2_get_ovector_pointer(md); for (i = 0; i < (apr_size_t) rc; i++) { pmatch[i].rm_so = ovector[i * 2]; pmatch[i].rm_eo = ovector[i * 2 + 1]; } -if (allocated_ovector) { - free(ovector); -} +pcre2_match
Bug#1000065: grok: depends on obsolete pcre3 library
Control: tags -1 + patch Please find a patch attached. Tested with the examples only. Also tested discogrok with $ discogrok --verbose --patterns /usr/share/grok/patterns/base It hangs at this line: [855838] [capture] [grok_capture_add:28] Adding pattern 'YEAR' as capture 0 (pcrenum 1) But so does unpatched discogrok from sid. Note that this patch breaks the libgrok ABI since the library exposes the PCRE API. As libgrok does not have any reverse dependencies in Debian (even grok itself doesn't link with it), the second patch simply removes it. Alternatively, if you wish to retain it, you'd have to bump the SONAME (using a Debian-specific one, perhaps) and the package has to pass through NEW. IMHO that's too much trouble for an unused library, but of course it's up to you as maintainer. >From 8f984ea80430f973d13a67f87b884d4dd3f7383e Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Sat, 9 Dec 2023 09:02:57 +0200 Subject: [PATCH 1/2] Port to PCRE2 (#165) --- Makefile | 2 +- debian/control| 2 +- debian/patches/debian-changes | 556 +- grok.c| 55 ++-- grok.h| 25 +- grok_discover.c | 2 +- grokre.c | 100 +++--- predicates.c | 38 ++- predicates.h | 1 - 9 files changed, 686 insertions(+), 95 deletions(-) diff --git a/Makefile b/Makefile index 564a8c3..fcbf843 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ VERSION=$(shell sh $(BASE)/version.sh) #LDFLAGS+=-g CFLAGS+=-pipe -fPIC -I. -O2 -LDFLAGS+=-lpcre -levent -rdynamic -ltokyocabinet +LDFLAGS+=-lpcre2-8 -levent -rdynamic -ltokyocabinet LIBSUFFIX=$(shell sh $(BASE)/platform.sh libsuffix) VERLIBSUFFIX=$(shell sh $(BASE)/platform.sh libsuffix $(MAJOR)) diff --git a/debian/control b/debian/control index b9f6cad..dd9afb1 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,7 @@ Build-Depends: gperf, help2man, libevent-dev, - libpcre3-dev, + libpcre2-dev, libtirpc-dev, libtokyocabinet-dev, Standards-Version: 3.9.3 diff --git a/debian/patches/debian-changes b/debian/patches/debian-changes index 8718175..f1563fc 100644 --- a/debian/patches/debian-changes +++ b/debian/patches/debian-changes @@ -17,6 +17,15 @@ A single combined diff, containing all the changes, follows. --- grok-1.20110708.1.orig/Makefile +++ grok-1.20110708.1/Makefile +@@ -42,7 +42,7 @@ VERSION=$(shell sh $(BASE)/version.sh) + #LDFLAGS+=-g + + CFLAGS+=-pipe -fPIC -I. -O2 +-LDFLAGS+=-lpcre -levent -rdynamic -ltokyocabinet ++LDFLAGS+=-lpcre2-8 -levent -rdynamic -ltokyocabinet + + LIBSUFFIX=$(shell sh $(BASE)/platform.sh libsuffix) + VERLIBSUFFIX=$(shell sh $(BASE)/platform.sh libsuffix $(MAJOR)) @@ -162,14 +162,14 @@ cleanver: # Binary creation grok: LDFLAGS+=-levent @@ -93,7 +102,12 @@ A single combined diff, containing all the changes, follows. --- grok-1.20110708.1.orig/grokre.c +++ grok-1.20110708.1/grokre.c -@@ -12,8 +12,8 @@ +@@ -1,4 +1,3 @@ +-#include + #include + #include + #include +@@ -12,8 +11,8 @@ /* global, static variables */ @@ -104,15 +118,268 @@ A single combined diff, containing all the changes, follows. /* internal functions */ static char *grok_pattern_expand(grok_t *grok); //, int offset, int length); -@@ -183,7 +183,7 @@ static char *grok_pattern_expand(grok_t +@@ -24,15 +23,15 @@ static void grok_capture_add_predicate(g + + void grok_free_clone(const grok_t *grok) { + if (grok->re != NULL) { +-pcre_free(grok->re); ++pcre2_code_free(grok->re); + } + + if (grok->full_pattern != NULL) { + free(grok->full_pattern); + } + +- if (grok->pcre_capture_vector != NULL) { +-free(grok->pcre_capture_vector); ++ if (grok->md != NULL) { ++pcre2_match_data_free(grok->md); + } + + if (grok->captures_by_name != NULL) { +@@ -76,24 +75,28 @@ int grok_compilen(grok_t *grok, const ch + grok->full_pattern = grok_pattern_expand(grok); + + if (grok->full_pattern == NULL) { ++const char *errstr; ++ + grok_log(grok, LOG_COMPILE, "A failure occurred while compiling '%.*s'", + length, pattern); +-grok->errstr = "failure occurred while expanding pattern "\ +- "(too pattern recursion?)"; ++errstr = "failure occurred while expanding pattern " ++ "(too pattern recursion?)"; ++strcpy((char *)grok->errstr, errstr); + return GROK_ERROR_COMPILE_FAILED; + } + +- grok->re = pcre_compile(grok->full_pattern, 0, +- >pcre_errptr, >pcre_erroffset, NULL); ++ grok->re = pcre2_compile((PCRE2_SPTR)grok->full_pattern, ++ PCRE2_ZERO_TERMINATED, 0, ++ >pcre_errno, >pcre_erroffset, NULL); + + if (grok->re == NULL) { +-gr
Bug#1000118: generator-scripting-language: depends on obsolete pcre3 library
Control: tags -1 + patch On Thu, Jun 29, 2023 at 09:39:18PM +0100, Luca Boccassi wrote: > If someone provides a patch, that is tested against such workflows > to confirm that they are not affected, then I'd merged it, upstream. Please find attached a patch. I could not test it, though, as I do not understand what these workflows are and I couldn't figure out how to write a testcase after my (admittedly short) glimpse at the documentation. Description: Port to PCRE2 Bug-Debian: https://bugs.debian.org/1000118 Author: Yavor Doganov Forwarded: no Last-Update: 2023-12-06 --- --- generator-scripting-language-4.1.5.orig/src/ggpcre.c +++ generator-scripting-language-4.1.5/src/ggpcre.c @@ -51,7 +51,8 @@ regexp_functions, tblsize (regexp_functions) }; -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include static int @@ -86,13 +87,17 @@ { GGCODE_TCB *tcb = gsl_thread-> tcb; -pcre +pcre2_code *re; +pcre2_match_data +*md; char *error; -int +int +errcode; +size_t erroffset; -int +size_t *ovector; int oveccount, @@ -103,47 +108,50 @@ VALUE value; -re = pcre_compile (string_value (> value), - 0, - (const char **) , - , - NULL); +re = pcre2_compile ((PCRE2_SPTR) string_value (> value), +PCRE2_ZERO_TERMINATED, +0, +, +, +NULL); if (! re) { +PCRE2_UCHAR buf[120]; + +pcre2_get_error_message (errcode, buf, sizeof(buf)); snprintf (object_error, LINE_MAX, "Regular expression pattern error: %s\n%s\n%*c", - error, + buf, pattern-> value. s, - erroffset + 1, '^'); + (int) erroffset + 1, '^'); return -1; } -rc = pcre_fullinfo (re, -NULL, -PCRE_INFO_CAPTURECOUNT, -); +rc = pcre2_pattern_info (re, + PCRE2_INFO_CAPTURECOUNT, + ); oveccount = (oveccount + 1) * 3; -ovector = mem_alloc (oveccount * sizeof (int)); +md= pcre2_match_data_create (oveccount, NULL); string_value (> value); -rc = pcre_exec (re, -NULL, -subject-> value. s, -(int) strlen (subject-> value. s), -0, -0, -ovector, -oveccount); +rc = pcre2_match (re, + (PCRE2_SPTR) subject-> value. s, + strlen (subject-> value. s), + 0, + 0, + md, + NULL); -(pcre_free) (re); +(pcre2_code_free) (re); +ovector = pcre2_get_ovector_pointer (md); -if (rc == PCRE_ERROR_NOMATCH) +if (rc == PCRE2_ERROR_NOMATCH) rc = 0; else if (rc < 0) { snprintf (object_error, LINE_MAX, "Regular expression matching error: %d", rc); -mem_free (ovector); +pcre2_match_data_free (md); return -1; } else if (rc == 1) @@ -179,7 +187,7 @@ { strncpy (object_error, error, LINE_MAX); mem_free (value.s); -mem_free (ovector); +pcre2_match_data_free (md); return -1; } destroy_value (& value); @@ -187,7 +195,7 @@ i++; } -mem_free (ovector); +pcre2_match_data_free (md); } return 0; /* Just in case */ --- generator-scripting-language-4.1.5.orig/src/Makefile +++ generator-scripting-language-4.1.5/src/Makefile @@ -51,9 +51,7 @@ EXE = DBG = CC = ./c -q -export CCLIBS = -lpcre - -CPPFLAGS ?= -I/usr/include/pcre +export CCLIBS = -lpcre2-8 # Reset the suffixes that will be considered to just our own list. #
Bug#1000044: ccze: depends on obsolete pcre3 library
On Mon, 04 Dec 2023 15:46:29 +0200, Yavor Doganov wrote: > I guess I need to revisit my patch and find some way to fix this. Here it is -- no memory leaks and I could not obtain crash or abort with the logs I've tested. Note that while my original patch introduced some leaks, it also fixes some in the original code. Tested the following plugins: dpkg, exim, httpd, procmail, sulog and syslog (yours and mine). Also compared the output between version -7 and git master + this new patch. Please test extensively and let me know if something is wrong. You may wish to apply (or not) two additional patches: 1 memory leak that I discovered with aptitude/Xorg logs and 1 uninitialized value (reported by valgrind as error). >From 475cbc072cb08bd6a57befa6c3856f8458355b1b Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Wed, 6 Dec 2023 15:07:25 +0200 Subject: [PATCH] pcre2.patch: Fix some memory leaks --- debian/patches/pcre2.patch | 181 + 1 file changed, 125 insertions(+), 56 deletions(-) diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch index 6b60dc8..4014fc3 100644 --- a/debian/patches/pcre2.patch +++ b/debian/patches/pcre2.patch @@ -2,7 +2,7 @@ Description: Port to PCRE2. Bug-Debian: https://bugs.debian.org/144 Author: Yavor Doganov Forwarded: no -Last-Update: 2023-12-03 +Last-Update: 2023-12-06 --- --- ccze.orig/configure.ac @@ -39,7 +39,7 @@ Last-Update: 2023-12-03 static char *words_bad[] = { "warn", "restart", "exit", "stop", "end", "shutting", "down", "close", -@@ -71,33 +71,31 @@ +@@ -71,34 +71,35 @@ void ccze_wordcolor_process_one (char *word, int slookup) { @@ -48,8 +48,9 @@ Last-Update: 2023-12-03 + size_t wlen, l; ccze_color_t col; - int match, printed = 0; +- char *pre = NULL, *post = NULL, *tmp, *lword; + int printed = 0; - char *pre = NULL, *post = NULL, *tmp, *lword; ++ char *pre = NULL, *post = NULL, *tmp = NULL, *lword; + pcre2_match_data *offsets; col = CCZE_COLOR_DEFAULT; @@ -63,10 +64,11 @@ Last-Update: 2023-12-03 { - pcre_get_substring (word, offsets, match, 1, (const char **)); - pcre_get_substring (word, offsets, match, 2, (const char **)); -- free (word); + pcre2_substring_get_bynumber (offsets, 1, (unsigned char **), ); + pcre2_substring_get_bynumber (offsets, 2, (unsigned char **), ); - word = tmp; + free (word); +- word = tmp; ++ word = strdup (tmp); } else pre = NULL; @@ -78,13 +80,16 @@ Last-Update: 2023-12-03 { - pcre_get_substring (word, offsets, match, 1, (const char **)); - pcre_get_substring (word, offsets, match, 2, (const char **)); -- free (word); ++ pcre2_substring_free (tmp); + pcre2_substring_get_bynumber (offsets, 1, (unsigned char **), ); + pcre2_substring_get_bynumber (offsets, 2, (unsigned char **), ); - word = tmp; + free (word); +- word = tmp; ++ word = strdup (tmp); } else -@@ -107,45 +105,45 @@ + post = NULL; +@@ -107,45 +108,45 @@ lword = _stolower (word); /** Host **/ @@ -144,20 +149,20 @@ Last-Update: 2023-12-03 { char *host, *ip; size_t hostlen, iplen; -@@ -206,9 +204,9 @@ - } +@@ -207,8 +208,10 @@ free (lword); -- free (word); + free (word); - free (post); - free (pre); ++ pcre2_substring_free (tmp); + pcre2_substring_free (post); + pcre2_substring_free (pre); + pcre2_match_data_free (offsets); } void -@@ -260,64 +258,67 @@ +@@ -260,64 +263,67 @@ void ccze_wordcolor_setup (void) { @@ -305,7 +310,8 @@ Last-Update: 2023-12-03 +ccze_apm_process (pcre2_match_data *offsets) { char *battery, *charge, *rate, *stuff1, *elapsed, *remain; - char *stuff2; +- char *stuff2; ++ char *stuff2, *ret; + size_t l; - pcre_get_substring (str, offsets, match, 1, (const char **)); @@ -325,7 +331,7 @@ Last-Update: 2023-12-03 ccze_addstr (CCZE_COLOR_DEFAULT, "Battery:"); ccze_space (); -@@ -62,12 +63,12 @@ +@@ -62,48 +63,54 @@ ccze_addstr (CCZE_COLOR_DATE, remain); ccze_space (); @@ -335,16 +341,19 @@ Last-Update: 2023-12-03 - free (stuff1); - free (elapsed); - free (remain); ++ ret = strdup (stuff2); + pcre2_substring_free (battery); + pcre2_substring_free (charge); + pcre2_substring_free (rate); + pcre2_substring_free (stuff1); + pcre2_substring_free (elapsed); + pcre2_substring_free (remain); ++ pcre2_substring_free (stuff2); - return stuff2; +- return stuff2; ++ return ret; } -@@ -75,35 +76,39 @@ + static void ccze_apm_setup (void) { @@ -408,7 +417,8 @@ Last-Update: 2023-12-03 -ccze_distcc_process (const char *str, int *offsets, int match) +ccze_distcc_process (pcre2_match_data *offsets) { - char *pid, *func, *rest; +- char *pid, *func, *rest; ++ char *pid,
Bug#1000041: ganglia: depends on obsolete pcre3 library
Control: tags -1 + patch Please find attached a patch. As I know absolutely nothing about this package, I was unable to test it properly. I added the following snippet to /etc/ganglia/gmond.conf (taken from gmond.conf manpage): collection_group { collect_every = 60 time_threshold = 300 metric { name_match = "multicpu_([a-z]+)([0-9]+)" value_threshold = 1.0 title = "CPU-\\2 \\1" } } The output of "gmond -m" doesn't change (maybe that's expected) but at least it doesn't crash. According to INSTALL (as well as my humble reading of the code), pcre is used only for parsing name_match in the configuration file. But it seems I cannot trigger a match or do something else improperly. Please test and let me know if corrections are needed. >From 7d05aca52f9cf1b579b80f719bed47cfd6ba7b7b Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Tue, 5 Dec 2023 19:26:34 +0200 Subject: [PATCH] Port to PCRE2 (#141). --- debian/changelog | 5 ++ debian/control | 2 +- debian/patches/pcre2.patch | 130 + debian/patches/series | 1 + 4 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 debian/patches/pcre2.patch diff --git a/debian/changelog b/debian/changelog index 081dbec..7c78336 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,13 @@ ganglia (3.7.2-7) UNRELEASED; urgency=medium + [ Marcos Fouces ] * Remove Stuart from uploaders as he changed to the Emeritus status. (Closes: #1011995). + [ Yavor Doganov ] + * debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #141). + * debian/control (Build-Depends): Replace libpcre3-dev with libpcre2-dev. + -- Marcos Fouces Sun, 29 May 2022 23:53:57 +0200 ganglia (3.7.2-6) unstable; urgency=medium diff --git a/debian/control b/debian/control index 406ff30..40ade70 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: net Priority: optional Maintainer: Marcos Fouces Homepage: http://ganglia.info/ -Build-Depends: debhelper-compat (=13), librrd-dev, libapr1-dev, libexpat1-dev, libconfuse-dev, po-debconf, libxml2-dev, libdbi0-dev, libpcre3-dev, gperf, rsync, libkvm-dev [kfreebsd-any], pkg-config, libz-dev, libtirpc-dev +Build-Depends: debhelper-compat (=13), librrd-dev, libapr1-dev, libexpat1-dev, libconfuse-dev, po-debconf, libxml2-dev, libdbi0-dev, libpcre2-dev, gperf, rsync, libkvm-dev [kfreebsd-any], pkg-config, libz-dev, libtirpc-dev Standards-Version: 4.6.0 Vcs-Git: https://salsa.debian.org/debian/ganglia.git Vcs-Browser: https://salsa.debian.org/debian/ganglia diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch new file mode 100644 index 000..54ecaa0 --- /dev/null +++ b/debian/patches/pcre2.patch @@ -0,0 +1,130 @@ +Description: Port to PCRE2. +Bug-Debian: https://bugs.debian.org/141 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-12-05 +--- + +--- ganglia.orig/configure.ac ganglia/configure.ac +@@ -520,14 +520,20 @@ + echo "Added -L$libpcrepath/${LIB_SUFFIX} to LDFLAGS" + fi + if test x"$libpcre" == xyes ; then +- AC_CHECK_HEADERS([pcre/pcre.h pcre.h]) +- AC_CHECK_LIB(pcre, pcre_compile) +- if test x"$ac_cv_lib_pcre_pcre_compile" = xyes; then +-echo "Found a suitable pcre library" +- else +-echo "libpcre not found, specify --with-libpcre=no to build without PCRE support" +-exit 1; +- fi ++ AC_CHECK_HEADERS([pcre2.h], [], [], [[#define PCRE2_CODE_UNIT_WIDTH 8]]) ++ LIBS="$LIBS -lpcre2-8" ++ AC_MSG_CHECKING([for pcre2_match_data_create in -lpcre2-8]) ++ AC_LINK_IFELSE( ++[AC_LANG_PROGRAM([[#define PCRE2_CODE_UNIT_WIDTH 8 ++ #include ++ ]], ++ [[pcre2_match_data *md; ++ md = pcre2_match_data_create (16, NULL);]])], ++[AC_DEFINE([HAVE_LIBPCRE], [1], [Define if the PCRE2 library is available]) ++ AC_MSG_RESULT([yes]) ++ AC_MSG_RESULT([Found a suitable pcre library])], ++[AC_MSG_RESULT([no]) ++ AC_MSG_FAILURE([libpcre not found, specify --with-libpcre=no to build without PCRE support], [1])]) + else + echo "building without PCRE support" + fi +--- ganglia.orig/gmond/gmond.c ganglia/gmond/gmond.c +@@ -38,11 +38,8 @@ + #include + + #ifdef HAVE_LIBPCRE +-#if defined (HAVE_PCRE_PCRE_H) +-#include +-#else +-#include +-#endif ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include + #endif + + #include "cmdline.h" /* generated by cmdline.sh which runs gengetopt */ +@@ -2650,10 +2647,11 @@ + + if(name_match != NULL) + { +- pcre *pcre_re; +- const char *pcre_err_ptr; +- int pcre_err_offset; +- int pcre_ovector[PCRE_OVECCOUNT]; ++ pcre2_code *pcre_re; ++ pcre2_match_data *pcre_md; ++ int pcre_e
Bug#1000044: ccze: depends on obsolete pcre3 library
Axel Beckert wrote: > A local test on my /var/log/syslog immediately ran into a segfault, > though, so I guess, that's one of the plugins you couldn't test. I tested it but I guess results depend on the contents of the log; apparently my log didn't trigger this code. > Culprit is this line, actually the first line in my current > /var/log/syslog: > > Dec 3 06:38:28 c6 syslog-ng[26651]: Configuration reload request > received, reloading configuration; Many thanks for the reproducer. Attached is patch that fixes it for me. I suspect there are other issues like these; in fact my pathethic patch introduces a few memory leaks (I should have told you that in advance). The problem is that ccze code manipulates strings obtained with pcre_get_substring, and assumes it can always use "free" to free them. That assumption is fine in the case with the old pcre, because the definition of pcre_free_substring is just a wrapper around free (src:pcre3: pcre_get.c:655): void pcre_free_substring(const char *pointer) { (PUBL(free))((void *)pointer); } So ccze code always uses "free". However, in pcre2, the equivalent function is different (src:pcre2: src/pcre2_substring.c:240): void pcre2_substring_free(PCRE2_UCHAR *string) { if (string != NULL) { pcre2_memctl *memctl = (pcre2_memctl *)((char *)string - sizeof(pcre2_memctl)); memctl->free(memctl, memctl->memory_data); } } Attempting to use "free" to free a string obtained with pcre2_subtring_get_by* results in SIGABRT with invalid pointer, while using pcre2_substring_free on a string obtained with strdup or some other standard (glibc) string manipulation functions results in SIGSEGV. Attached are two equivalent minimalistic programs that demonstrate this: foo.c uses pcre2 and if you exchange the free functions at the end for date and dup, you will observe exactly what I wrote above. The other program, bar.c, uses the old pcre and it doesn't make any difference if you swap them or use only "free" as ccze does. I guess I need to revisit my patch and find some way to fix this. It's up to you whether to upload the memleaky patch now or wait for me to find a solution. Sorry about this. diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch index 6b60dc8..2723ff8 100644 --- a/debian/patches/pcre2.patch +++ b/debian/patches/pcre2.patch @@ -2455,26 +2455,32 @@ Last-Update: 2023-12-03 } if (process) -@@ -87,12 +87,13 @@ +@@ -60,7 +60,7 @@ + + pid = strndup ([1], (size_t)(t2 - t - 1)); + tmp = strndup (process, (size_t)(t - process)); +-free (process); ++pcre2_substring_free (process); + process = tmp; + } + } +@@ -87,11 +87,11 @@ else toret = strdup (send); - free (date); - free (host); - free (send); -- free (process); -- free (msg); + pcre2_substring_free (date); + pcre2_substring_free (host); + pcre2_substring_free (send); -+ pcre2_substring_free (process); + pcre2_substring_free (msg); + free (process); +- free (msg); free (pid); -+ free (tmp); return toret; - } -@@ -100,33 +101,34 @@ +@@ -100,33 +100,34 @@ static void ccze_syslog_setup (void) { #define PCRE2_CODE_UNIT_WIDTH 8 #include #include #include int main (void) { pcre2_code *pcre; pcre2_match_data *md; int error; size_t errptr, l; char *date = NULL, *dup; const char *str = "Dec 3 06:38:28 c6 syslog-ng[26651]: Configuration " "reload request received, reloading configuration;"; pcre = pcre2_compile ("^(\\S*\\s{1,2}\\d{1,2}\\s\\d\\d:\\d\\d:\\d\\d)" "\\s(\\S+)\\s+((\\S+:?)\\s(.*))$", PCRE2_ZERO_TERMINATED, 0, , , NULL); md = pcre2_match_data_create (99, NULL); pcre2_match (pcre, str, PCRE2_ZERO_TERMINATED, 0, 0, md, NULL); pcre2_substring_get_bynumber (md, 1, (unsigned char **), ); if (date) { printf ("%s\n", date); dup = strdup (date); } pcre2_substring_free (date); free (dup); return 0; } #include #include #include int main (void) { pcre *pcre; int md[99]; const char *error; int errptr, match; char *date = NULL, *dup; const char *str = "Dec 3 06:38:28 c6 syslog-ng[26651]: Configuration " "reload request received, reloading configuration;"; pcre = pcre_compile ("^(\\S*\\s{1,2}\\d{1,2}\\s\\d\\d:\\d\\d:\\d\\d)" "\\s(\\S+)\\s+((\\S+:?)\\s(.*))$", 0, , , NULL); match = pcre_exec (pcre, NULL, str, strlen (str), 0, 0, md, 99); pcre_get_substring (str, md, match, 1, (const char **)); if (date) { printf ("%s\n", date); dup = strdup (date); } pcre_free_substring (date); free (dup); return 0; }
Bug#1000044: ccze: depends on obsolete pcre3 library
Control: tags -1 + patch Please find a patch attached (I was not able to test all plugins). >From 1b55bb243cb69c8f1ce006f237187eca7fb47793 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Sun, 3 Dec 2023 20:13:33 +0200 Subject: [PATCH] Port to PCRE2 (#144) --- debian/changelog |7 + debian/control |2 +- debian/patches/pcre2.patch | 2807 debian/patches/series |1 + 4 files changed, 2816 insertions(+), 1 deletion(-) create mode 100644 debian/patches/pcre2.patch diff --git a/debian/changelog b/debian/changelog index 9e9de97..95eb7a5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +ccze (0.2.1-8) UNRELEASED; urgency=medium + + * debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #144). + * debian/control (Build-Depends): Replace libpcre3-dev with libpcre2-dev. + + -- Yavor Doganov Sun, 03 Dec 2023 20:00:06 +0200 + ccze (0.2.1-7) unstable; urgency=medium * Update debian/watch AGAIN with regards to Github changes. diff --git a/debian/control b/debian/control index 895d45e..2b67dd6 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,7 @@ Maintainer: Axel Beckert Standards-Version: 4.6.0 Build-Depends: debhelper-compat (= 13), libncurses5-dev, - libpcre3-dev + libpcre2-dev Vcs-Git: https://salsa.debian.org/debian/ccze.git Vcs-Browser: https://salsa.debian.org/debian/ccze Homepage: https://github.com/madhouse/ccze diff --git a/debian/patches/pcre2.patch b/debian/patches/pcre2.patch new file mode 100644 index 000..6b60dc8 --- /dev/null +++ b/debian/patches/pcre2.patch @@ -0,0 +1,2807 @@ +Description: Port to PCRE2. +Bug-Debian: https://bugs.debian.org/144 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-12-03 +--- + +--- ccze.orig/configure.ac ccze/configure.ac +@@ -102,14 +102,14 @@ + AC_CHECK_FUNC(getopt_long, [], [AC_CHECK_LIB(gnugetopt, getopt_long)]) + + if test -z "${PCRE_CONFIG}"; then +- AC_PATH_PROG(PCRE_CONFIG, pcre-config, no) ++ AC_PATH_PROG(PCRE_CONFIG, pcre2-config, no) + fi + AC_MSG_CHECKING(for PCRE) + if test "${PCRE_CONFIG}" = "no"; then + AC_ERROR(PCRE not found) + fi + PCRE_CFLAGS=$($PCRE_CONFIG --cflags) +-PCRE_LIBS=$($PCRE_CONFIG --libs) ++PCRE_LIBS=$($PCRE_CONFIG --libs8) + AC_SUBST(PCRE_CFLAGS) + AC_SUBST(PCRE_LIBS) + AC_MSG_RESULT(found) +--- ccze.orig/src/ccze-wordcolor.c ccze/src/ccze-wordcolor.c +@@ -29,9 +29,9 @@ + #include "ccze-private.h" + #include "ccze-compat.h" + +-static pcre *reg_pre, *reg_post, *reg_host, *reg_mac, *reg_email; +-static pcre *reg_uri, *reg_size, *reg_ver, *reg_time, *reg_addr; +-static pcre *reg_num, *reg_sig, *reg_email2, *reg_hostip, *reg_msgid; ++static pcre2_code *reg_pre, *reg_post, *reg_host, *reg_mac, *reg_email; ++static pcre2_code *reg_uri, *reg_size, *reg_ver, *reg_time, *reg_addr; ++static pcre2_code *reg_num, *reg_sig, *reg_email2, *reg_hostip, *reg_msgid; + + static char *words_bad[] = { + "warn", "restart", "exit", "stop", "end", "shutting", "down", "close", +@@ -71,33 +71,31 @@ + void + ccze_wordcolor_process_one (char *word, int slookup) + { +- size_t wlen; +- int offsets[99]; ++ size_t wlen, l; + ccze_color_t col; +- int match, printed = 0; ++ int printed = 0; + char *pre = NULL, *post = NULL, *tmp, *lword; ++ pcre2_match_data *offsets; + + col = CCZE_COLOR_DEFAULT; + ++ offsets = pcre2_match_data_create (99, NULL); ++ + /** prefix **/ +- if ((match = pcre_exec (reg_pre, NULL, word, strlen (word), 0, 0, +- offsets, 99)) >= 0) ++ if (pcre2_match (reg_pre, word, strlen (word), 0, 0, offsets, NULL) >= 0) + { +- pcre_get_substring (word, offsets, match, 1, (const char **)); +- pcre_get_substring (word, offsets, match, 2, (const char **)); +- free (word); ++ pcre2_substring_get_bynumber (offsets, 1, (unsigned char **), ); ++ pcre2_substring_get_bynumber (offsets, 2, (unsigned char **), ); + word = tmp; + } + else + pre = NULL; + + /** postfix **/ +- if ((match = pcre_exec (reg_post, NULL, word, strlen (word), 0, 0, +- offsets, 99)) >= 0) ++ if (pcre2_match (reg_post, word, strlen (word), 0, 0, offsets, NULL) >= 0) + { +- pcre_get_substring (word, offsets, match, 1, (const char **)); +- pcre_get_substring (word, offsets, match, 2, (const char **)); +- free (word); ++ pcre2_substring_get_bynumber (offsets, 1, (unsigned char **), ); ++ pcre2_substring_get_bynumber (offsets, 2, (unsigned char **), ); + word = tmp; + } + else +@@ -107,45 +105,45 @@ + lword = _stolower (word); + + /** Host **/ +- if (pcre_exec (reg_host, NULL, lword, wlen, 0, 0, offsets, 99) >= 0) ++ if (pcre2_match (reg_host, lword, wlen, 0, 0, offsets, NULL) >= 0) + col = CCZE_COLOR_HOST;
Bug#1057281: RFS: parser/3.4.6-4 [QA] [RC] -- HTML-embedded scripting language
Package: sponsorship-requests Severity: important Dear mentors, I'm looking for a sponsor for the orphaned package "parser": * Package name : parser Version : 3.4.6-4 Upstream contact : Art Lebedev Studio * URL : http://www.parser.ru/en/ * License : other, GPL-2+, LGPL-2+, other-1, GPL-3, University-of-Illinois-Open-Source-License * Vcs : https://salsa.debian.org/debian/parser Section : web The source builds the following binary packages: parser3 - Parser 3, HTML-embedded scripting language (metapackage) parser3-common - Common files for packages built from the Parser 3 source parser3-cgi - Parser 3, HTML-embedded scripting language (CGI binary) libapache2-mod-parser3 - Parser 3, HTML-embedded scripting language (Apache2 module) parser3-dev - Files for Parser 3 module development To access further information about this package, please visit the following URL: https://mentors.debian.net/package/parser/ Alternatively, you can download the package with 'dget' using this command: dget -x https://mentors.debian.net/debian/pool/main/p/parser/parser_3.4.6-4.dsc Changes since the last upload: parser (3.4.6-4) unstable; urgency=medium . * QA upload. * debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #106). * debian/control (Build-Depends): Replace libpcre3-dev with libpcre2-dev. Remove apache2-dev version constraint, satisfiable even in jessie. (Rules-Requires-Root): Set to "no". (Standards-Version): Bump to 4.6.2; no changes needed. * rules: Drop --with autoreconf; it's the default. * debian/watch: Upgrade to version 4. * debian/source.lintian-overrides: Rename as... * debian/source/lintian-overrides: ...and add license-problem-convert-utf-code (false positive). Rename debian-watch-may-check-gpg-signature to debian-watch-does-not-check-openpgp-signature. * debian/copyright: Update copyright years, add more holders. Add University of Illinois license. Fix superfluous and redundant patterns; remove tabs in license text.
Bug#1056386: RFS: awffull/3.10.2-9 [QA] [RC] -- web server log analysis program
Package: sponsorship-requests Severity: important Dear mentors, I am looking for a sponsor for the orphaned package "awffull". I would also appreciate if someone can add me (yavor-guest) as member of the Salsa project so that I can push the changes to the git repository. * Package name : awffull Version : 3.10.2-9 Upstream contact : Stephen McInerney * URL : http://www.stedee.id.au/awffull/ * License : LGPL-2+, ISC, GPL-3+ * Vcs : https://salsa.debian.org/debian/awffull Section : web The source builds the following binary package: awffull - web server log analysis program To access further information about this package, please visit the following URL: https://mentors.debian.net/package/awffull/ Alternatively, you can download the package with 'dget' using this command: dget -x https://mentors.debian.net/debian/pool/main/a/awffull/awffull_3.10.2-9.dsc Changes since the last upload: awffull (3.10.2-9) unstable; urgency=medium . * QA upload. * debian/patches/autoreconf.patch: New; fix autoreconf. * debian/patches/pcre2.patch: New; port to PCRE2 (Closes: #127). * debian/patches/compiler-warnings.patch: New; fix some warnings. * debian/patches/fix-spelling-errors.patch: Fix more errors. * debian/control (Build-Depends): Switch to the debhelper-compat mechanism; bump compat level to 13. Remove autotools-dev. Replace libpcre3-dev with libpcre2-dev. Remove libfreetype6 and libfreetype6-dev; completely unnecessary. (Rules-Requires-Root): Set to "no". (Standards-Version): Claim compliance with 4.6.2. * debian/rules: Drop --parallel. Enable hardening. Include /usr/share/dpkg/info/pkg-info.mk, needed for $(DEB_VERSION). (CFLAGS): Rename as... (DEB_CFLAGS_MAINT_APPEND): ...and drop -Wl,-z,defs. (LDFLAGS): Rename as... (DEB_LDFLAGS_MAINT_APPEND): ...and drop -Wl,--as-needed. Also move -Wl,-z,defs here where it belongs. (override_dh_autoreconf): New override; run upstream's bootstrap script. (override_dh_auto_configure): Remove handling of config.{guess,sub}. (override_dh_auto_clean): Likewise. Remove unnecessary commands. Delete *.gmo files. Adjust awffull_history_regen extension. (override_dh_auto_install): Use standard install command. (override_dh_installman): Install awffull_history_regen in sec 8. Avoid dpkg-parsechangelog usage. (override_dh_strip): Remove override; useless. * debian/compat: Delete. * debian/awffull.lintian-overrides: Strip context to eliminate context mismatch, leading to unused override. * debian/awffull_history_regen.pl.1: Delete; useless AFAICT. * debian/awffull.timer: New file; fixes lintian warning missing-systemd-timer-for-cron-script. * debian/awffull.service: Likewise; needed by awffull.timer. * debian/awffull.cron.daily: Skip job on systemd systems if it is invoked by cron; the systemd timer should be triggered instead. * debian/watch: Replace with a dummy one as upstream's site is gone.
Bug#1055981: wmforecast: Does not retrieve data; shows error
Package: wmforecast Version: 1.9.0-1 Severity: grave X-Debbugs-Cc: Yavor Doganov Since some time (about 2 weeks, but I'm not entirely sure) wmforecast displays an image with a question mark along with the text "ERROR". The following message(s) appear on the console: $ LC_ALL=C wmforecast GWeather-Message: 11:51:41.964: Failed to get weather.gov point data: [status: 404] Not Found GWeather-Message: 11:52:41.353: Failed to get weather.gov point data: [status: 404] Not Found GWeather-Message: 11:53:41.349: Failed to get weather.gov point data: [status: 404] Not Found (process:179771): GWeather-WARNING **: 11:54:40.649: Failed to get METAR data: HTTP/2 Error: NO_ERROR My ~/GNUstep/Defaults/wmforecast: , | { | longitude = "27,91108"; | interval = 60; | text = "#20b2aa"; | icondir = "/usr/share/wmforecast"; | units = c; | background = "#00"; | latitude = "43,211375"; | } ` -- System Information: Debian Release: trixie/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386, x32 Kernel: Linux 6.5.0-4-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages wmforecast depends on: ii ca-certificates 20230311 ii libc62.37-12 ii libgeoclue-2-0 2.7.1-1 ii libglib2.0-0 2.78.1-4 ii libgweather-4-0 4.4.0-1 ii libwings30.96.0-2+b1 ii libwraster6 0.96.0-2+b1 ii libwutil50.96.0-2+b1 ii libx11-6 2:1.8.7-1 wmforecast recommends no packages. wmforecast suggests no packages. -- no debconf information
Bug#1040372: edenmath.app: Aborts with stack smashing when calculation result is large enough
Package: edenmath.app Version: 1.1.1a-8+b5 Severity: important Type "40", then press the button "10^x" (second button from right to left on the lowest row); EdenMath aborts with: *** stack smashing detected *** terminated. Backtrace: Program received signal SIGABRT, Aborted. __pthread_kill_implementation (threadid=, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 44 ./nptl/pthread_kill.c: Няма такъв файл или директория. (gdb) bt #0 __pthread_kill_implementation (threadid=, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 #1 0x76ea815f in __pthread_kill_internal (signo=6, threadid=) at ./nptl/pthread_kill.c:78 #2 0x76e5a472 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x76e444b2 in __GI_abort () at ./stdlib/abort.c:79 #4 0x76e451ed in __libc_message (fmt=fmt@entry=0x76fb7543 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:150 #5 0x76f362c5 in __GI___fortify_fail (msg=msg@entry=0x76fb752b "stack smashing detected") at ./debug/fortify_fail.c:24 #6 0x76f362b0 in __stack_chk_fail () at ./debug/stack_chk_fail.c:24 #7 0xd0a6 in -[EMController updateDisplay] (self=, _cmd=) at ./EMController.m:227 #8 0x77a5dabe in -[NSApplication sendAction:to:from:] (self=, _cmd=, aSelector=0x557edf20, aTarget=, sender=0x56e18050) at ./Source/NSApplication.m:2273 #9 0x77a8f313 in -[NSButton sendAction:to:] (self=0x56e18050, _cmd=, theAction=0x557edf20, theTarget=0x56e2ff30) at ./Source/NSButton.m:588 #10 0x77a9b01d in -[NSCell trackMouse:inRect:ofView:untilMouseUp:] (self=self@entry=0x56e1f690, _cmd=_cmd@entry=0x77da0d50 <_OBJC_SELECTOR_TABLE+1712>, theEvent=, theEvent@entry=0x56e23a30, cellFrame=..., controlView=controlView@entry=0x56e18050, flag=0 '\000') at ./Source/NSCell.m:1807 #11 0x77abd56b in -[NSControl mouseDown:] (self=0x56e18050, _cmd=, theEvent=) at ./Source/NSControl.m:931 #12 0x77bfd354 in -[NSWindow sendEvent:] (self=0x568b4480, _cmd=, theEvent=0x56e23a30) at ./Source/NSWindow.m:4154 #13 0x77a63f5e in -[NSApplication run] (self=0x55808a40, _cmd=) at ./Source/NSApplication.m:1585 #14 0x77a43ec9 in NSApplicationMain (argc=, argv=) at ./Source/Functions.m:119 #15 0x76e456ca in __libc_start_call_main (main=main@entry=0xb1f0 , argc=argc@entry=1, argv=argv@entry=0x7fffead8) at ../sysdeps/nptl/libc_start_call_main.h:58 #16 0x76e45785 in __libc_start_main_impl (main=0xb1f0 , argc=1, argv=0x7fffead8, init=, fini=, rtld_fini=, stack_end=0x7fffeac8) at ../csu/libc-start.c:360 #17 0xb231 in _start () Cannot be reproduced when built with -fno-stack-protector. I guess the culprit is a buffer overflow in -[EMController updateDisplay] where buffer size is limited to 32 bytes. -- System Information: Debian Release: trixie/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386, x32 Kernel: Linux 6.3.0-1-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages edenmath.app depends on: ii gnustep-back0.30 0.30.0-2 ii gnustep-base-runtime 1.29.0-4 ii gnustep-gui-runtime 0.30.0-3 ii libc6 2.37-3 ii libgnustep-base1.29 1.29.0-4 ii libgnustep-gui0.300.30.0-3 ii libobjc4 13.1.0-7 Versions of packages edenmath.app recommends: ii helpviewer.app 0.4-1+b1 edenmath.app suggests no packages. -- no debconf information
Bug#1040335: transition: gnustep-sqlclient
Package: release.debian.org Severity: normal User: release.debian@packages.debian.org Usertags: transition X-Debbugs-Cc: gnustep-sqlcli...@packages.debian.org Control: affects -1 + src:gnustep-sqlclient Control: forwarded -1 https://release.debian.org/transitions/html/auto-gnustep-sqlclient.html We would like to have release team's permission to update the gnustep-sqlclient library (libsqlclient1.8 -> 1.9). The only rdep is adun.app, it builds fine and can be safely binNMUed. Thanks.
Bug#929738: gnumail.app: gnumail freezes when i click 'info > preferences'
Hi Svetlana, On Thu, May 30, 2019 at 07:36:41AM +1000, Svetlana Tkachenko wrote: > Package: gnumail.app > Version: 1.3.0-1+b1 > Severity: normal > >* What exactly did you do (or not do) that was effective (or > ineffective)? > click info>preferences >* What was the outcome of this action? > it stays highlighted this menu item and does not open preferences If you have the chance, could you please try gnumail.app/1.4.0-1 available in unstable (a.k.a. sid) and testing (a.k.a. trixie) and see if this bug, as well as #929737, are fixed? I could not reproduce either of them but this new version fixes a lot of problems (albeit some still remain). Thanks in advance.
Bug#1039875: transition: gnustep-performance
Package: release.debian.org Severity: normal User: release.debian@packages.debian.org Usertags: transition X-Debbugs-Cc: gnustep-performa...@packages.debian.org Control: affects -1 + src:gnustep-performance Control: forwarded -1 https://release.debian.org/transitions/html/auto-gnustep-performance.html We (GNUstep team) would like to update gnustep-performance (libperformance0.5 -> 0.6). The new version is sitting in experimental and the sole reverse dependency gnustep-sqlclient builds fine against it. Thanks.
Bug#1038996: transition: pantomime
Package: release.debian.org Severity: normal User: release.debian@packages.debian.org Usertags: transition X-Debbugs-Cc: pantom...@packages.debian.org, pkg-gnustep-maintain...@lists.alioth.debian.org Control: affects -1 + src:pantomime Control: block -1 with 1032830 On behalf of the GNUstep team I'd like to request a transition slot for pantomime (libpantomime1.3 > 1.4). Out of the two rdeps lusernet.app builds successfully while gnumail will require a sourceful upload due to incompatible API changes (#1032830). The automatically generated Ben tracker [1] looks fine. Thanks for your work. [1] https://release.debian.org/transitions/html/auto-pantomime.html
Bug#1038734: src:gnumail: FTBFS with pantomime/1.4.0: MailboxManagerController.m:801:33: error: ‘struct CWFolder’ has no member named ‘allMessages’
Source: gnumail Version: 1.3.0-1 Severity: important Tags: ftbfs sid trixie User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: pantomime1.4-transition gnustep-transition This package fails to build with pantomime/1.4.0+dfsg-1 from experimental: gcc MailboxManagerController.m -c \ -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-import -I/usr/kerberos/include -I/usr/local/ssl/include -fconstant-string-class=NSConstantString -I. -I./derived_src -I. -I/usr/local/include/GNUstep -I/usr/include/GNUstep \ -o obj/GNUMail.obj/MailboxManagerController.m.o MailboxManagerController.m: In function ‘-[MailboxManagerController outlineView:acceptDrop:item:childIndex:]’: MailboxManagerController.m:801:33: error: ‘struct CWFolder’ has no member named ‘allMessages’; did you mean ‘_allMessages’? 801 | [aSourceFolder->allMessages objectAtIndex: | ^~~ | _allMessages ... make[5]: *** [/usr/share/GNUstep/Makefiles/rules.make:521: obj/GNUMail.obj/MailboxManagerController.m.o] Error 1 ... make[1]: *** [debian/rules:31: override_dh_auto_build] Error 25 The severity of this bug will be raised to "serious" as soon as pantomime/1.4.0 is uploaded to unstable.
Bug#1028579: src:sope: FTBFS with gnustep-base/1.29.0
On Fri, Jan 13, 2023 at 09:39:04AM +0200, Yavor Doganov wrote: > On Fri, Jan 13, 2023 at 09:28:11AM +0200, Yavor Doganov wrote: > > Tags: patch > > Here it is. It looks like I made a mistake; please find attached the correct one. >From e3d7ed13d3b764c834dc25776a8f845756f820f0 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Fri, 13 Jan 2023 09:18:57 +0200 Subject: [PATCH] Fix FTBFS with gnustep-base/1.29.0. --- debian/control | 2 +- debian/patches/base-1.29.patch | 25 + debian/patches/series | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 debian/patches/base-1.29.patch diff --git a/debian/control b/debian/control index f361674..172a89f 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Uploaders: Jeroen Dekkers , Build-Depends: debhelper-compat (= 13), gnustep-make, gobjc, - libgnustep-base-dev, + libgnustep-base-dev (>= 1.29), libxml2-dev, libldap2-dev, libpq-dev, diff --git a/debian/patches/base-1.29.patch b/debian/patches/base-1.29.patch new file mode 100644 index 000..b111a31 --- /dev/null +++ b/debian/patches/base-1.29.patch @@ -0,0 +1,25 @@ +Description: Fix FTBFS with gnustep-base/1.29.0 +Bug-Debian: https://bugs.debian.org/1028579 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-01-13 +--- + +--- sope-5.8.0.orig/sope-mime/NGMime/NGMimeType.m sope-5.8.0/sope-mime/NGMime/NGMimeType.m +@@ -125,13 +125,13 @@ + encoding = NSKoreanEUCStringEncoding; + } + else if ([charset isEqualToString:@"big5"]) { +-encoding = NSBIG5StringEncoding; ++encoding = NSBig5StringEncoding; + } + else if ([charset isEqualToString:@"iso-2022-jp"]) { + encoding = NSISO2022JPStringEncoding; + } + else if ([charset isEqualToString:@"gb2312"]) { +-encoding = NSGB2312StringEncoding; ++encoding = NSHZ_GB_2312StringEncoding; + } + else if ([charset isEqualToString:@"koi8-r"]) { + encoding = NSKOI8RStringEncoding; diff --git a/debian/patches/series b/debian/patches/series index 68fbd93..381749b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 0001-do-not-build-json.patch 0002-Do-not-build-xmlrpc-and-stxsaxdriver.patch 0003-Unset-MAKEFLAGS-and-MFLAGS-in-configure.patch +base-1.29.patch -- 2.39.0
Bug#1022256: upgrade-reports: gnustep-base-common blocks upgrade from bullseye to bookworm because of version dependencies
Control: tags -1 moreinfo unreproducible Please accept my apologies that it took me so long to react. On Sun, 23 Oct 2022 09:55:58 +0300, Paul Gevers wrote: > On 22-10-2022 22:06, Daniel Savi wrote: > > My previous release is: bullseye > > I am upgrading to: bookworm > > Archive date: unknown > > Upgrade date: 10-22-22 > > > > - Did any packages fail to upgrade? > > gnustep-base-common could not be upgraded due to a versioning > > conflict. Happened on two independent systems. The upgrade to > > bookworm failed for that reason. Removing gnustep-base-common > > prior to the upgrade helped. Unfortunately I could not reproduce this on an i386 machine. I made a fresh standard install of bullseye and then installed the "gnustep" package. Afterwards I upgraded to bookworm with the usual procedure (apt upgrade; apt full-upgrade) -- everything went smoothly. Daniel, could you please provide logs and/or more information, perhaps some unusual setup or specific combination of installed packages that triggers the problem?
Bug#1032830: gnumail: FTBFS with pantomime/1.4.0
Source: gnumail Version: 1.3.0-1 Severity: important Tags: ftbfs trixie sid User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: pantomime1.4-transition gnustep-transition This package fails to build with pantomime/1.4.0+dfsg-1 from experimental: gcc MailboxManagerController.m -c \ -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-import -I/usr/kerberos/include -I/usr/local/ssl/include -fconstant-string-class=NSConstantString -I. -I./derived_src -I. -I/usr/local/include/GNUstep -I/usr/include/GNUstep \ -o obj/GNUMail.obj/MailboxManagerController.m.o MailboxManagerController.m: In function ‘-[MailboxManagerController outlineView:acceptDrop:item:childIndex:]’: MailboxManagerController.m:801:33: error: ‘struct CWFolder’ has no member named ‘allMessages’; did you mean ‘_allMessages’? 801 | [aSourceFolder->allMessages objectAtIndex: | ^~~ | _allMessages ... make[5]: *** [/usr/share/GNUstep/Makefiles/rules.make:521: obj/GNUMail.obj/MailboxManagerController.m.o] Error 1 make[5]: *** Waiting for unfinished jobs make[4]: *** [/usr/share/GNUstep/Makefiles/Instance/framework.make:617: internal-framework-run-compile-submake] Error 2 make[3]: *** [/usr/share/GNUstep/Makefiles/Master/rules.make:297: GNUMail.all.framework.variables] Error 2 make[3]: Leaving directory '/<>/Framework/GNUMail' make[2]: *** [/usr/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53: internal-all] Error 2 make[2]: Leaving directory '/<>' The severity of this bug will be raised to "serious" as soon as pantomime/1.4.0 is uploaded to unstable.
Bug#1031442: gnustep-base: FTBFS: dh_auto_test: error: make -j8 check "TESTSUITEFLAGS=-j8 --verbose" VERBOSE=1 messages=yes returned exit code 2
Lucas Nussbaum wrote: > Source: gnustep-base > Version: 1.28.1+really1.28.0-5 > Severity: serious > Justification: FTBFS > During a rebuild of all packages in sid, your package failed to build > on amd64. Thanks for the report; I believe this is due to tzdata #1031395. I cannot reproduce with tzdata/2022g-6 where the removal of /etc/timezone has been reverted. I'm unsure whether to reassign this bug or just close it when tzdata/2022g-6 migrates to testing.
Bug#1030386: gnustep-dl2: FTBFS with TeXInfo 7.0.x
reassign 1030386 src:gnustep-make 2.9.1-1 merge 1030387 1030386 affects 1030387 + src:gnustep-dl2 thanks On Fri, 03 Feb 2023 23:16:13 +0200, Hilmar Preusse wrote: > Unfortunately I didn't find the makeinfo call in your source > package, hence I can't provide a patch. That's because gnustep-dl2 uses gnustep-make as build system. It builds successfully with a fixed gnustep-make package using the patch you kindly provided at #1030387, so I'm merging the bugs. AFAICT there are no other GNUstep packages affected.
Bug#1030387: Bug#1030387: gnustep-make: FTBFS with TeXInfo 7.0.x
Control: tags -1 + pending Hilmar Preuße wrote: > Am 06.02.2023 um 22:45 teilte Richard Frith-Macdonald mit: > > FYI I implemented the suggested change in gnustep-make trunk in the > > git repository, after having tried it out with TeXinfo 5 and 6 > > I can't find your changes on salsa. ;-( Richard is a GNUstep upstream developer so he has committed the change to the gnustep-make upstream repository. I'll take care to update the Debian package; thanks.
Bug#1028602: transition: gnustep-base, gnustep-gui
Sebastian Ramacher wrote: > On 2023-01-13 15:15:10 +0200, Yavor Doganov wrote: > > I realise we are already late and in all likelihood we've missed > > the last bookworm train, which is rather unpleasant for us and > > GNUstep users but entirely our fault. > > I am not quite sure what you mean with unpleasant. What would be > unpleasant for GNUstep users? I meant that in case the transition is postponed to trixie, bookworm will ship with old releases of core GNUstep. It happened for bullseye when I missed to inform upstream about Debian's freeze/release schedule. This time the upstream releases were made in time but we failed to meet the deadline again.
Bug#1028602: transition: gnustep-base, gnustep-gui
Package: release.debian.org Severity: normal User: release.debian@packages.debian.org Usertags: transition X-Debbugs-Cc: pkg-gnustep-maintain...@lists.alioth.debian.org Control: affects -1 + src:gnustep-base src:gnustep-gui Dear Release team, We would like your permission to carry out a GNUstep transition (two libraries simultaneously with one round of binNMUs): libgnustep-base1.28 -> 1.29 libgnustep-gui0.29 -> 0.30 I realise we are already late and in all likelihood we've missed the last bookworm train, which is rather unpleasant for us and GNUstep users but entirely our fault. In case it's not possible to do it now (after tiff/poppler) then please have us in mind for the early stages of the trixie development cycle. gnustep-base/1.29.0-1 is available in experimental, not yet built on mipsen, ppc64el and s390x. But note that 1.28.1-2 was built in unstable on all release architectures; 1.29.0 is essentially the same except the version bump (the damage done was corrected; see #1028189). gnustep-gui/0.30.0-1 is also available in experimental, not yet built on ppc64el and s390x but I do not expect any problems there. While build-testing all rdeps on amd64, the following problems were observed: agenda.app #1028185 gnustep-gui bug, will be fixed with next upload gnustep-dl2 #1028577 fixed locally; needs a sourceful upload pantomime#1028578 likewise sope #1028579 patch sent to the BTS; needs a sourceful upload In addition, gnustep-back will require a sourceful upload (that is always the case). The automatic ben trackers at release.d.o look fine.
Bug#1028579: src:sope: FTBFS with gnustep-base/1.29.0
On Fri, Jan 13, 2023 at 09:28:11AM +0200, Yavor Doganov wrote: > Tags: patch Here it is. >From e3d7ed13d3b764c834dc25776a8f845756f820f0 Mon Sep 17 00:00:00 2001 From: Yavor Doganov Date: Fri, 13 Jan 2023 09:18:57 +0200 Subject: [PATCH] Fix FTBFS with gnustep-base/1.29.0. --- debian/control | 2 +- debian/patches/base-1.29.patch | 25 + debian/patches/series | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 debian/patches/base-1.29.patch diff --git a/debian/control b/debian/control index f361674..172a89f 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Uploaders: Jeroen Dekkers , Build-Depends: debhelper-compat (= 13), gnustep-make, gobjc, - libgnustep-base-dev, + libgnustep-base-dev (>= 1.29), libxml2-dev, libldap2-dev, libpq-dev, diff --git a/debian/patches/base-1.29.patch b/debian/patches/base-1.29.patch new file mode 100644 index 000..b111a31 --- /dev/null +++ b/debian/patches/base-1.29.patch @@ -0,0 +1,25 @@ +Description: Fix FTBFS with gnustep-base/1.29.0 +Bug-Debian: https://bugs.debian.org/1028579 +Author: Yavor Doganov +Forwarded: no +Last-Update: 2023-01-13 +--- + +--- sope-5.8.0.orig/sope-mime/NGMime/NGMimeType.m sope-5.8.0/sope-mime/NGMime/NGMimeType.m +@@ -125,13 +125,13 @@ + encoding = NSKoreanEUCStringEncoding; + } + else if ([charset isEqualToString:@"big5"]) { +-encoding = NSBIG5StringEncoding; ++encoding = NSBig5StringEncoding; + } + else if ([charset isEqualToString:@"iso-2022-jp"]) { + encoding = NSISO2022JPStringEncoding; + } + else if ([charset isEqualToString:@"gb2312"]) { +-encoding = NSGB2312StringEncoding; ++encoding = NSChineseEUCStringEncoding; + } + else if ([charset isEqualToString:@"koi8-r"]) { + encoding = NSKOI8RStringEncoding; diff --git a/debian/patches/series b/debian/patches/series index 68fbd93..381749b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 0001-do-not-build-json.patch 0002-Do-not-build-xmlrpc-and-stxsaxdriver.patch 0003-Unset-MAKEFLAGS-and-MFLAGS-in-configure.patch +base-1.29.patch -- 2.39.0
Bug#1028579: src:sope: FTBFS with gnustep-base/1.29.0
Source: sope Version: 5.8.0-1 Severity: important Tags: patch User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: gnustep-base1.29-transition gnustep-transition This package fails to build with gnustep-base/1.29.0-1 from experimental: gcc NGMimeType.m -c \ -MMD -MP -DLIBRARY_MAJOR_VERSION=4 -DLIBRARY_MINOR_VERSION=9 -DLIBRARY_SUBMINOR_VERSION=3 -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -g -O2 -ffile-prefix-map=/build/sope-5.8.0=. -fstack-protector-strong -Wformat -Werror=format-security -O0 -g -frecord-gcc-switches -fconstant-string-class=NSConstantString -I.. -I../.. -I../../sope-core/NGStreams/ -I../../sope-core/NGExtensions/ -I../../sope-core -I. -I/usr/local/include/GNUstep -I/usr/include/GNUstep \ -o obj/NGMime.obj/NGMimeType.m.o NGMimeType.m: In function '+[NGMimeType stringEncodingForCharset:]': NGMimeType.m:128:16: error: 'NSBIG5StringEncoding' undeclared (first use in this function); did you mean 'NSBig5StringEncoding'? 128 | encoding = NSBIG5StringEncoding; |^~~~ |NSBig5StringEncoding NGMimeType.m:128:16: note: each undeclared identifier is reported only once for each function it appears in NGMimeType.m:134:16: error: 'NSGB2312StringEncoding' undeclared (first use in this function); did you mean 'NSHZ_GB_2312StringEncoding'? 134 | encoding = NSGB2312StringEncoding; |^~ |NSHZ_GB_2312StringEncoding make[7]: *** [/usr/share/GNUstep/Makefiles/rules.make:521: obj/NGMime.obj/NGMimeType.m.o] Error 1 The severity of this bug will be raised to "serious" once gnustep-base/1.29.0 is uploaded to unstable.
Bug#1028577: src:gnustep-dl2: FTBFS with gnustep-base/1.29.0
Source: gnustep-dl2 Version: 1.12.0-15.1 Severity: important Tags: sid bookworm User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: gnustep-base1.29-transition gnustep-transition This package fails to build with gnustep-base/1.29.0-1 from experimental: gcc EOAdaptor.m -c \ -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -g -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -g -O2 -ffile-prefix-map=/build/gnustep-dl2-0.12.0=. -fstack-protector-strong -Wformat -Werror=format-security -DDEBUG -fconstant-string-class=NSConstantString -I../EOControl/. -I.. -I. -I/usr/local/include/GNUstep -I/usr/include/GNUstep \ -o obj/EOAccess.obj/EOAdaptor.m.o EOAdaptor.m:132:39: error: 'NSGB2312StringEncoding' undeclared here (not in a function); did you mean 'NSHZ_GB_2312StringEncoding'? 132 | { @"NSGB2312StringEncoding",NSGB2312StringEncoding }, | ^~ | NSHZ_GB_2312StringEncoding EOAdaptor.m:135:39: error: 'NSBIG5StringEncoding' undeclared here (not in a function); did you mean 'NSBig5StringEncoding'? 135 | { @"NSBIG5StringEncoding", NSBIG5StringEncoding }, | ^~~~ | NSBig5StringEncoding make[6]: *** [/usr/share/GNUstep/Makefiles/rules.make:521: obj/EOAccess.obj/EOAdaptor.m.o] Error 1 The severity of this bug will be raised to "serious" once gnustep-base/1.29.0 is uploaded to unstable.
Bug#1028578: src:pantomime: FTBFS with gnustep-base/1.29.0
Source: pantomime Version: 1.3.0+dfsg1-3 Severity: important Tags: sid bookworm User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: gnustep-base1.29-transition gnustep-transition This package fails to build with gnustep-base/1.29.0-1 from experimental: gcc NSString+Extensions.m -c \ -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -g -O2 -ffile-prefix-map=/build/pantomime-1.3.0+dfsg1=. -fstack-protector-strong -Wformat -Werror=format-security -DHAVE_ICONV -Wall -Wno-import -fconstant-string-class=NSConstantString -I.. -I./derived_src -I. -I/usr/local/include/GNUstep -I/usr/include/GNUstep \ -o obj/Pantomime.obj/NSString+Extensions.m.o NSString+Extensions.m: In function '+[NSString(PantomimeStringExtensions) encodingForCharset:convertToNSStringEncoding:]': NSString+Extensions.m:243:23: error: 'NSBIG5StringEncoding' undeclared (first use in this function); did you mean 'NSBig5StringEncoding'? 243 | {@"big5" ,NSBIG5StringEncoding ,NO}, | ^~~~ | NSBig5StringEncoding NSString+Extensions.m:243:23: note: each undeclared identifier is reported only once for each function it appears in NSString+Extensions.m:244:23: error: 'NSGB2312StringEncoding' undeclared (first use in this function); did you mean 'NSHZ_GB_2312StringEncoding'? 244 | {@"gb2312" ,NSGB2312StringEncoding,NO}, | ^~ | NSHZ_GB_2312StringEncoding NSString+Extensions.m: At top level: NSString+Extensions.m:504:2: warning: #warning return Charset instead? [-Wcpp] 504 | #warning return Charset instead? | ^~~ make[5]: *** [/usr/share/GNUstep/Makefiles/rules.make:521: obj/Pantomime.obj/NSString+Extensions.m.o] Error 1 The severity of this bug will be raised to "serious" once gnustep-base/1.29.0 is uploaded to unstable.
Bug#1028189: gnustep-base/1.28.1-2 should not migrate to testing
Source: gnustep-base Version: 1.28.1-1 Severity: serious Justification: API/ABI break Filing this bug to block migration to testing. This upload will be reverted as it introduced silent API/ABI break.
Bug#1028185: src:agenda.app: FTBFS with gnustep-gui/0.30.0
Source: agenda.app Version: 0.46-2 Severity: important Tags: sid bookworm ftbfs User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: gnustep-gui0.30-transition gnustep-transition This package fails to build with gnustep-gui/0.30.0-1 from experimental: gcc SoundBackend.m -c \ -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -g -O2 -ffile-prefix-map=/build/agenda.app-0.46=. -fstack-protector-strong -Wformat -Werror=format-security -fconstant-string-class=NSConstantString -I. -I/usr/local/include/GNUstep -I/usr/include/GNUstep \ -o obj/SimpleAgenda.obj/SoundBackend.m.o In file included from SoundBackend.m:1: /usr/include/GNUstep/AppKit/NSSound.h:58:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'interface' 58 | @interface NSSound : NSObject | ^~ make[5]: *** [/usr/share/GNUstep/Makefiles/rules.make:521: obj/SimpleAgenda.obj/SoundBackend.m.o] Error 1 That's certainly a gnustep-gui bug, trivial to fix. I'll reassign and fix accordingly.
Bug#1019472: RM: mknfonts.tool -- ROM; obsolete
Package: ftp.debian.org Severity: normal X-Debbugs-Cc: pkg-gnustep-maintain...@lists.alioth.debian.org This package is obsolete and now completely unnecessary following the removal of the GNUstep art backend. Please remove; thanks.
Bug#1017818: elpa-jabber: Fails to compile with Emacs 28: Error: Wrong number of arguments: make-obsolete, 2
Package: elpa-jabber Version: 0.8.92+git98dc8e-7 Severity: serious The upgrade from Emacs 27 to 28 aborts because byte-compilation of elpa-jabber fails with the following error(s): | In toplevel form: | jabber-vcard.el:67:1: Error: Wrong number of arguments: make-obsolete, 2 The full log is: Install elpa-jabber for emacs install/jabber-0.8.92: Handling install of emacsen flavor emacs install/jabber-0.8.92: byte-compiling for emacs In toplevel form: fsm.el:108:1: Warning: Package cl is deprecated fsm.el:131:1: Warning: ‘defmacro*’ is an obsolete alias (as of 27.1); use ‘cl-defmacro’ instead. In define-state-machine: fsm.el:166:18: Warning: ‘destructuring-bind’ is an obsolete alias (as of 27.1); use ‘cl-destructuring-bind’ instead. fsm.el:183:1: Warning: ‘defmacro*’ is an obsolete alias (as of 27.1); use ‘cl-defmacro’ instead. fsm.el:214:1: Warning: ‘defmacro*’ is an obsolete alias (as of 27.1); use ‘cl-defmacro’ instead. fsm.el:233:1: Warning: ‘defmacro*’ is an obsolete alias (as of 27.1); use ‘cl-defmacro’ instead. In define-fsm: fsm.el:255:29: Warning: ‘loop’ is an obsolete alias (as of 27.1); use ‘cl-loop’ instead. In fsm-goodbye-cruel-world: fsm.el:283:8: Warning: ‘remprop’ is an obsolete function (as of 27.1); use ‘cl-remprop’ instead. fsm.el:283:21: Warning: ‘remprop’ is an obsolete function (as of 27.1); use ‘cl-remprop’ instead. In fsm-update: fsm.el:333:12: Warning: ‘destructuring-bind’ is an obsolete alias (as of 27.1); use ‘cl-destructuring-bind’ instead. In fsm-send-sync: fsm.el:374:30: Warning: ‘destructuring-bind’ is an obsolete alias (as of 27.1); use ‘cl-destructuring-bind’ instead. In hexrgb-read-color: hexrgb.el:349:14: Warning: ‘interactive-p’ is an obsolete function (as of 23.2); use ‘called-interactively-p’ instead. In hexrgb-complement: hexrgb.el:373:10: Warning: ‘interactive-p’ is an obsolete function (as of 23.2); use ‘called-interactively-p’ instead. In hexrgb-hsv-to-rgb: hexrgb.el:497:25: Warning: ‘case’ is an obsolete alias (as of 27.1); use ‘cl-case’ instead. In end of data: hexrgb.el:332:35: Warning: the function ‘eyedrop-background-at-mouse’ is not known to be defined. hexrgb.el:328:35: Warning: the function ‘eyedrop-foreground-at-mouse’ is not known to be defined. hexrgb.el:326:66: Warning: the function ‘eyedrop-background-at-point’ is not known to be defined. ../../elpa-src/jabber-0.8.92/jabber-util.el: Warning: ‘return’ is an obsolete alias (as of 27.1); use ‘cl-return’ instead. ../../elpa-src/jabber-0.8.92/jabber-util.el: Warning: ‘loop’ is an obsolete alias (as of 27.1); use ‘cl-loop’ instead. ../../elpa-src/jabber-0.8.92/jabber-util.el: Warning: ‘loop’ is an obsolete alias (as of 27.1); use ‘cl-loop’ instead. ../../elpa-src/jabber-0.8.92/jabber-util.el: Warning: ‘return’ is an obsolete alias (as of 27.1); use ‘cl-return’ instead. ../../elpa-src/jabber-0.8.92/jabber-util.el: Warning: ‘case’ is an obsolete alias (as of 27.1); use ‘cl-case’ instead. ../../elpa-src/jabber-0.8.92/jabber-util.el: Warning: ‘return’ is an obsolete alias (as of 27.1); use ‘cl-return’ instead. ../../elpa-src/jabber-0.8.92/jabber-util.el: Warning: ‘destructuring-bind’ is an obsolete alias (as of 27.1); use ‘cl-destructuring-bind’ instead. ../../elpa-src/jabber-0.8.92/jabber-util.el: Warning: ‘do’ is an obsolete alias (as of 27.1); use ‘cl-do’ instead. ../../elpa-src/jabber-0.8.92/jabber-xml.el: Warning: ‘loop’ is an obsolete alias (as of 27.1); use ‘cl-loop’ instead. ../../elpa-src/jabber-0.8.92/jabber-xml.el: Warning: ‘return’ is an obsolete alias (as of 27.1); use ‘cl-return’ instead. In toplevel form: jabber-activity.el:42:1: Warning: Package tls is deprecated jabber-activity.el:42:1: Warning: Package starttls is deprecated ../../elpa-src/jabber-0.8.92/srv.el: Warning: ‘incf’ is an obsolete alias (as of 27.1); use ‘cl-incf’ instead. ../../elpa-src/jabber-0.8.92/srv.el: Warning: ‘return’ is an obsolete alias (as of 27.1); use ‘cl-return’ instead. ../../elpa-src/jabber-0.8.92/jabber-conn.el: Warning: ‘labels’ is an obsolete macro (as of 24.3); use ‘cl-labels’ instead. ../../elpa-src/jabber-0.8.92/jabber-conn.el: Warning: ‘labels’ is an obsolete macro (as of 24.3); use ‘cl-labels’ instead. ../../elpa-src/jabber-0.8.92/jabber-conn.el: Warning: ‘case’ is an obsolete alias (as of 27.1); use ‘cl-case’ instead. ../../elpa-src/jabber-0.8.92/fsm.el: Warning: ‘destructuring-bind’ is an obsolete alias (as of 27.1); use ‘cl-destructuring-bind’ instead. ../../elpa-src/jabber-0.8.92/fsm.el: Warning: ‘loop’ is an obsolete alias (as of 27.1); use ‘cl-loop’ instead. ../../elpa-src/jabber-0.8.92/fsm.el: Warning: ‘destructuring-bind’ is an obsolete alias (as of 27.1); use ‘cl-destructuring-bind’ instead. ../../elpa-src/jabber-0.8.92/fsm.el: Warning: ‘destructuring-bind’ is an obsolete alias (as of 27.1); use ‘cl-destructuring-bind’ instead. ../../elpa-src/jabber-0.8.92/jabber-core.el: Warning: ‘destructuring-bind’ is
Bug#1012857: libpopplerkit0: Please update for Poppler 22.06
On Wed, 15 Jun 2022 19:21:46 +0300, Nathan Pratta Teodosio wrote: > Package: libpopplerkit0 > Tags: patch > Since Poppler 22.06 made its way into experimental, Libpopplerkit0 > will need the compatibility changes present in the attached debdiff. Thanks for the patch. I am currently rather busy; please feel free to make a NMU at your earliest convenience in case popplerkit.framework is a blocker for the forthcoming poppler transition. TIA.
Bug#885786: gnustep-back: Please drop art backend package
tags 885786 + pending thanks Bastian Germann wrote: > Please drop the art backend package. dia is in the process of being > adopted and will also drop its art dependency, so we should make > this happen as soon as possible so that bookworm can come without > libart. Will do in a few weeks; in any case it'll definitely happen well before the freeze for the bookworm release.
Bug#1009066: pcre2: FTBFS on hurd-i386: error: ‘PATH_MAX’ undeclared
Source: pcre2 Version: 10.39-1 Severity: important Tags: patch ftbfs User: debian-h...@lists.debian.org Usertags: hurd This packages fails to build on hurd-i386 as of version 10.39-1; from the last build log for 10.39-3 [1]: | gcc -DHAVE_CONFIG_H -I. -I./src "-I./src" -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Dregcomp=PCRE2regcomp -Dregexec=PCRE2regexec -Dregerror=PCRE2regerror -Dregfree=PCRE2regfree -c -o src/pcre2grep-pcre2grep.o `test -f 'src/pcre2grep.c' || echo './'`src/pcre2grep.c | src/pcre2grep.c: In function ‘grep_or_recurse’: | src/pcre2grep.c:3365:25: error: ‘PATH_MAX’ undeclared (first use in this function) | 3365 | char resolvedpath[PATH_MAX]; | | ^~~~ | src/pcre2grep.c:3365:25: note: each undeclared identifier is reported only once for each function it appears in | Makefile:2574: recipe for target 'src/pcre2grep-pcre2grep.o' failed [1] https://buildd.debian.org/status/fetch.php?pkg=pcre2=hurd-i386=10.39-3=1637168178=0 Attached is a simplistic patch. --- pcre2-10.39.orig/src/pcre2grep.c +++ pcre2-10.39/src/pcre2grep.c @@ -3362,19 +3362,25 @@ if (isdirectory(pathname)) #ifdef HAVE_REALPATH { - char resolvedpath[PATH_MAX]; + char *resolvedpath; BOOL isSame; size_t rlen; - if (realpath(childpath, resolvedpath) == NULL) + if ((resolvedpath = realpath(childpath, NULL)) == NULL) continue; /* This path is invalid - we can skip processing this */ isSame = strcmp(pathname, resolvedpath) == 0; - if (isSame) continue;/* We have a recursion */ + if (isSame) +{ + free(resolvedpath); + continue;/* We have a recursion */ +} rlen = strlen(resolvedpath); - if (rlen++ < sizeof(resolvedpath) - 3) + rlen++; { BOOL contained; +resolvedpath = (char *)realloc(resolvedpath, rlen + 1); strcat(resolvedpath, "/"); contained = strncmp(pathname, resolvedpath, rlen) == 0; +free(resolvedpath); if (contained) continue;/* We have a recursion */ } }
Bug#1001537: gtamsanalyzer.app: Crashes when closing project window
Package: gtamsanalyzer.app Version: 0.42-7+b8 Severity: important Tags: sid bookworm User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: gnustep-gui0.29-transition gnustep-transition The program segfaults on exit or when closing the project window: (gdb) bt #0 0x77176d55 in objc_msg_lookup (receiver=0x55a7b790, op=0x77de0240 <_OBJC_SELECTOR_TABLE+4064>) at /build/gcc-11-RMIFfM/gcc-11-11.2.0/src/libobjc/sendmsg.c:442 #1 0x77ae8dbb in -[NSApplication targetForAction:to:from:] (self=, _cmd=, theAction=0x56f9e800, theTarget=0x55a7b790, sender=) at ./Source/NSApplication.m:2294 #2 0x77baab68 in -[NSMenu _autoenableItem:] (self=, _cmd=, item=0x56542300) at ./Source/NSMenu.m:1179 #3 0x77bafd37 in -[NSMenu update] (self=0x56541c50, _cmd=) at ./Source/NSMenu.m:1255 #4 0x77bd55e1 in -[NSPopUpButtonCell setMenuItem:] (self=0x565420e0, _cmd=, item=0x0) at ./Source/NSPopUpButtonCell.m:640 #5 0x77bd5dec in -[NSPopUpButtonCell synchronizeTitleAndSelectedItem] (self=0x565420e0, _cmd=) at ./Source/NSPopUpButtonCell.m:842 #6 0x77bd6a1b in -[NSPopUpButtonCell dealloc] (self=0x565420e0, _cmd=) at ./Source/NSPopUpButtonCell.m:152 #7 0x77b421c1 in -[NSControl dealloc] (self=0x56541f30, _cmd=) at ./Source/NSControl.m:125 #8 0x77c5dbdc in -[NSView removeSubview:] (self=0x56168120, _cmd=, aView=) at ./Source/NSView.m:965 #9 0x77c6cb70 in -[NSView dealloc] (self=, _cmd=) at ./Source/NSView.m:745 #10 0x77c5dbdc in -[NSView removeSubview:] (self=0x561669e0, _cmd=, aView=) at ./Source/NSView.m:965 #11 0x77c6cb70 in -[NSView dealloc] (self=, _cmd=) at ./Source/NSView.m:745 #12 0x77c79266 in -[NSWindow dealloc] (self=0x56ec7720, _cmd=) at ./Source/NSWindow.m:908 #13 0x773abebb in -[GSArray dealloc] (self=0x56168a90, _cmd=) at ./Source/GSArray.m:140 #14 0x7740c325 in -[NSAutoreleasePool emptyPool] (self=0x55880f00, _cmd=) at ./Source/NSAutoreleasePool.m:525 #15 0x7740c630 in -[NSAutoreleasePool dealloc] (self=0x55880f00, _cmd=0x77774eb0 <_OBJC_SELECTOR_TABLE+240>) at ./Source/NSAutoreleasePool.m:571 #16 0x77ae824e in -[NSApplication run] (self=0x5599aac0, _cmd=) at ./Source/NSApplication.m:1601 #17 0x77ac7ef7 in NSApplicationMain (argc=, argv=) at ./Source/Functions.m:119 #18 0x76fcbe4a in __libc_start_main (main=0x555c3280 , argc=1, argv=0x7fffe868, init=, fini=, rtld_fini=, stack_end=0x7fffe858) at ../csu/libc-start.c:314 #19 0x555c34fa in _start () -- System Information: Debian Release: bookworm/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386, x32 Kernel: Linux 5.15.0-2-amd64 (SMP w/2 CPU threads) Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages gtamsanalyzer.app depends on: ii gnustep-back0.29 0.29.0-2 ii gnustep-base-runtime 1.28.0-4 ii gnustep-gui-runtime 0.29.0-2 ii libc6 2.32-5 ii libgnustep-base1.28 1.28.0-4 ii libgnustep-gui0.290.29.0-2 ii libobjc4 11.2.0-12 ii libpcre3 2:8.39-13 Versions of packages gtamsanalyzer.app recommends: ii graphviz 2.42.2-5+b1 ii gv1:3.7.4-2+b1 gtamsanalyzer.app suggests no packages. -- no debconf information
Bug#1000982: transition: gnustep-base, gnustep-gui
Package: release.debian.org Severity: normal User: release.debian@packages.debian.org Usertags: transition X-Debbugs-Cc: pkg-gnustep-maintain...@lists.alioth.debian.org We would like the Release Team's permission to carry out a GNUstep transition, namely libgnustep-base1.27 -> 1.28 libgnustep-gui0.28 -> 0.29 As usual, it's better to be done simultaneously (only one round binNMUs for both libraries) since everything that depends on -gui also depends on -base. As always, gnustep-back will need a sourceful upload and should not be binNMUed. I have build-tested all rdeps and no problems were observed, at least on amd64. The auto tracker(s) at release.d.o is/are correct.
Bug#997986: RFS: gnomint/1.3.0-4 [QA] [RC] -- X.509 Certification Authority management tool for GNOME
Package: sponsorship-requests Severity: important Dear mentors, I'm looking for a sponsor for the orphaned package "gnomint": * Package name: gnomint Version : 1.3.0-4 Upstream Author : David Marin Carreno * URL : http://gnomint.sourceforge.net/ * License : GPL-3+ * Vcs : N/A Section : gnome It builds this binary package: gnomint - X.509 Certification Authority management tool for GNOME To access further information about this package, please visit the following URL: https://mentors.debian.net/package/gnomint/ Alternatively, one can download the package with dget using this command: dget -x https://mentors.debian.net/debian/pool/main/g/gnomint/gnomint_1.3.0-4.dsc Changes since the last upload: gnomint (1.3.0-4) unstable; urgency=medium . * QA upload. * debian/patches/glib-2.70.patch: New; fix FTBFS with glib/2.70 (Closes: #997198). * debian/patches/series: Update. * debian/rules (override_dh_auto_configure): Remove alpha bits, it looks like the build failure was transient. * debian/control (Standards-Version): Bump to 4.6.0; no changes needed.
Bug#995007: gnustep-base ftbfs with updated autoconf/automake
On Sat, 02 Oct 2021 16:01:45 +0300, Peter Green wrote: > I see a fix for this issue has been uploaded to mentors, do you want > me to sponsor it? I'd be very grateful, thanks in advance! My usual sponsor is not answering...
Bug#963081: src:camera.app: Please switch to using pkg-config for libgphoto2
Sudip Mukherjee wrote: > On Fri, Jun 19, 2020 at 09:41:22PM +0300, Yavor Doganov wrote: > > wf...@niif.hu wrote: > > > Yavor Doganov writes: > > > > Thanks; I'll fix this shortly -- the upload will depend on my sponsor > > > > though. Meanwhile, feel free to upload libgphoto2 whenever you like > > > > and raise the severity of this bug to serious. > > > > > > Did so, thanks. I'm willing to sponsor your upload fixing this issue if > > > needed. > > > > It has a bunch of other changes so I'm not sure you'll be comfortable > > reviewing them. And I've already contacted my sponsor... Anyway, the > > updated package is available at mentors.d.n and also on Salsa. > > Fixing the FTBFS is fairly simple and the attached patch is sufficient. > Might be worth doing the NMU as it has been removed from testing. I've already pushed Ferenc's fix plus some other changes so please don't NMU it. Pinging my sponsor again (sorry to disturb you, Peter).
Bug#963535: RFS: grdesktop/0.23+d040330-7 [QA] -- GNOME frontend for the rdesktop client
Package: sponsorship-requests Severity: normal Dear mentors, I'm looking for a sponsor for a QA upload of the package "grdesktop". * Package name: grdesktop Version : 0.23+d040330-7 Upstream Author : Thorsten Sauter * URL : http://www.nongnu.org/grdesktop/ * License : GPL-2+ * Vcs : None Section : x11 It builds this binary package: grdesktop - GNOME frontend for the rdesktop client To access further information about this package, please visit the following URL: https://mentors.debian.net/package/grdesktop Alternatively, one can download the package with dget using this command: dget -x https://mentors.debian.net/debian/pool/main/g/grdesktop/grdesktop_0.23+d040330-7.dsc Changes since the last upload: * QA upload. * debian/patches/11_gcc-10.diff: New; fix FTBFS with GCC 10 (Closes: #957308). * debian/patches/series: Update. * debian/control (Build-Depends): Switch to debhelper-compat; bump compat level to 13. * debian/compat: Delete.
Bug#963529: RFS: gnomint/1.3.0-3 [QA] -- X.509 Certification Authority management tool for GNOME
Package: sponsorship-requests Severity: normal Dear mentors, I am looking for a sponsor for the orphaned package "gnomint". * Package name: gnomint Version : 1.3.0-3 Upstream Author : David Marin Carreno (and others) * URL : http://gnomint.sourceforge.net/ * License : GPL-3+ * Vcs : None Section : gnome It builds this binary package: gnomint - X.509 Certification Authority management tool for GNOME To access further information about this package, please visit the following URL: https://mentors.debian.net/package/gnomint Alternatively, one can download the package with dget using this command: dget -x https://mentors.debian.net/debian/pool/main/g/gnomint/gnomint_1.3.0-3.dsc Changes since the last upload: * QA upload. * debian/patches/gcc-10.patch: New; fix FTBFS with GCC 10 (Closes: #957287). * debian/patches/series: Update. * debian/control (Build-Depends): Switch to debhelper-compat; bump compat level to 13. (Standards-Version): Claim compliance with 4.5.0; no changes needed. * debian/compat: Delete. * debian/rules (override_dh_auto_configure): Attempt to get some clues regarding the FTBFS on alpha.
Bug#963478: gworkspace.app: Crashes on startup
Package: gworkspace.app Version: 0.9.4-2+b1 Severity: grave User: pkg-gnustep-maintain...@lists.alioth.debian.org Usertags: gnustep-gui0.28-transition gnustep-transition (gdb) r Starting program: /usr/bin/GWorkspace [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 2020-06-22 10:08:32.852 GWorkspace[771743:771743] styleoffsets ... guessing offsets 2020-06-22 10:08:32.855 GWorkspace[771743:771743] styleoffsets ... guessing offsets [Detaching after vfork from child process 771748] [Detaching after vfork from child process 771750] 2020-06-22 10:08:36.914 fswatcher[771750:771750] register client 2 2020-06-22 10:08:37.373 GWorkspace[771743:771743] Selected non-scalable font. 2020-06-22 10:08:38.471 GWorkspace[771743:771743] Setting unknown encoding 1 Program received signal SIGSEGV, Segmentation fault. 0x77126981 in objc_msg_lookup ( receiver=0x77344f90 <+[NSArray arrayWithObjects:]>, op=0x776a19f0 <_OBJC_SELECTOR_TABLE+208>) at /build/gcc-10-JUVXRb/gcc-10-10.1.0/src/libobjc/sendmsg.c:442 442 /build/gcc-10-JUVXRb/gcc-10-10.1.0/src/libobjc/sendmsg.c: Няма такъв файл или директория. (gdb) bt #0 0x77126981 in objc_msg_lookup (receiver=0x77344f90 <+[NSArray arrayWithObjects:]>, op=0x776a19f0 <_OBJC_SELECTOR_TABLE+208>) at /build/gcc-10-JUVXRb/gcc-10-10.1.0/src/libobjc/sendmsg.c:442 #1 0x772e639e in -[GSInlineArray initWithObjects:count:] (self=0x5a734200, _cmd=, objects=0x7fffdda0, count=35) at GSArray.m:420 #2 0x773450d9 in +[NSArray arrayWithObjects:] (self=, _cmd=, firstObject=0x77e38a10 <_OBJC_INSTANCE_155>) at NSArray.m:266 #3 0x77aaf3f6 in iterate_reps_for_types (imageReps=, method=method@entry=0x77d617c0 <_OBJC_SELECTOR_TABLE+4512>) at NSImage.m:2197 #4 0x77aaf6fa in +[NSImage imagePasteboardTypes] (self=, _cmd=) at NSImage.m:2165 #5 0x77efc067 in -[IconView setInspector:] (self=0x5a741470, _cmd=, insp=) at IconView.m:35 #6 0x77ef2984 in -[Attributes initForInspector:] (self=0x5a53c620, _cmd=, insp=0x5a71f320) at Attributes.m:91 #7 0x77eefa88 in -[Inspector init] (self=0x5a71f320, _cmd=) at Inspector.m:90 #8 0x555ec6c9 in -[GWorkspace applicationWillFinishLaunching:] (self=0x5578a770, _cmd=, aNotification=) at GWorkspace.m:496 #9 0x7740a604 in -[NSNotificationCenter _postAndRelease:] (self=0x558c6d10, _cmd=, notification=0x55ad1de0) at NSNotificationCenter.m:1198 #10 0x77a18285 in -[NSApplication finishLaunching] (self=0x55abe5f0, _cmd=) at NSApplication.m:1016 #11 0x77a1c7b1 in -[NSApplication run] (self=0x55abe5f0, _cmd=) at NSApplication.m:1561 #12 0x555e0775 in main (argc=, argv=, env=) at main.m:38 -- System Information: Debian Release: bullseye/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386, x32 Kernel: Linux 5.6.0-2-amd64 (SMP w/2 CPU cores) Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8), LANGUAGE=bg_BG.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages gworkspace.app depends on: ii gnustep-back0.28 0.28.0-2 ii gnustep-base-runtime 1.27.0-3 ii gnustep-gui-runtime 0.28.0-2 ii gworkspace-common 0.9.4-2 ii libc6 2.30-8 ii libgcc-s1 10.1.0-4 ii libgnustep-base1.27 1.27.0-3 ii libgnustep-gui0.280.28.0-2 ii libobjc4 10.1.0-4 ii libpopplerkit00.0.20051227svn-8+b3 ii libsqlite3-0 3.32.3-1 Versions of packages gworkspace.app recommends: ii cynthiune.app 1.0.0-2+b3 ii price.app 1.3.0-4+b1 ii systempreferences.app 1.2.0-2+b6 ii textedit.app 5.0-2+b2 ii viewpdf.app1:0.2dfsg1-7+b1 ii zipper.app 1.5-3+b1 Versions of packages gworkspace.app suggests: ii gworkspace-apps-wrappers 0.9.4-2 -- no debconf information
Bug#963081: src:camera.app: Please switch to using pkg-config for libgphoto2
wf...@niif.hu wrote: > Yavor Doganov writes: > > > Thanks; I'll fix this shortly -- the upload will depend on my sponsor > > though. Meanwhile, feel free to upload libgphoto2 whenever you like > > and raise the severity of this bug to serious. > > Did so, thanks. I'm willing to sponsor your upload fixing this issue if > needed. It has a bunch of other changes so I'm not sure you'll be comfortable reviewing them. And I've already contacted my sponsor... Anyway, the updated package is available at mentors.d.n and also on Salsa. P.S. I noticed that libgphoto2/2.5.25-1 FTBFS almost everywhere, you might want to take a look.
Bug#963081: src:camera.app: Please switch to using pkg-config for libgphoto2
Ferenc Wágner wrote: > Package: src:camera.app > Version: 0.8.0-12 > Severity: normal > > I plan to upload libgphoto2 2.5.25 without the config scripts, > which upstream considers obsolete and hurt the multi-arch effort. > It's easy to switch to using pkg-config instead, see the attached > debdiff. Thanks; I'll fix this shortly -- the upload will depend on my sponsor though. Meanwhile, feel free to upload libgphoto2 whenever you like and raise the severity of this bug to serious.