diff options
Diffstat (limited to 'databases')
117 files changed, 2738 insertions, 972 deletions
diff --git a/databases/Makefile b/databases/Makefile index e320701ff253..ce29492a0960 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -81,8 +81,6 @@ SUBDIR += geoserver-mysql-plugin SUBDIR += gigabase SUBDIR += gmdb2 - SUBDIR += gnats4 - SUBDIR += gnatsweb4 SUBDIR += go-carbon SUBDIR += go-pgweb SUBDIR += gobang @@ -635,6 +633,18 @@ SUBDIR += php84-pdo_sqlite SUBDIR += php84-pgsql SUBDIR += php84-sqlite3 + SUBDIR += php85-dba + SUBDIR += php85-mysqli + SUBDIR += php85-odbc + SUBDIR += php85-pdo + SUBDIR += php85-pdo_dblib + SUBDIR += php85-pdo_firebird + SUBDIR += php85-pdo_mysql + SUBDIR += php85-pdo_odbc + SUBDIR += php85-pdo_pgsql + SUBDIR += php85-pdo_sqlite + SUBDIR += php85-pgsql + SUBDIR += php85-sqlite3 SUBDIR += phpliteadmin SUBDIR += phpminiadmin SUBDIR += phpmyadmin @@ -708,6 +718,14 @@ SUBDIR += postgresql17-plpython SUBDIR += postgresql17-pltcl SUBDIR += postgresql17-server + SUBDIR += postgresql18-client + SUBDIR += postgresql18-contrib + SUBDIR += postgresql18-docs + SUBDIR += postgresql18-pgtcl + SUBDIR += postgresql18-plperl + SUBDIR += postgresql18-plpython + SUBDIR += postgresql18-pltcl + SUBDIR += postgresql18-server SUBDIR += powa-archivist SUBDIR += powa-web SUBDIR += powerarchitect diff --git a/databases/akonadi/Makefile b/databases/akonadi/Makefile index 60f5b9fb2739..8d003ecddac1 100644 --- a/databases/akonadi/Makefile +++ b/databases/akonadi/Makefile @@ -1,5 +1,6 @@ PORTNAME= akonadi DISTVERSION= ${KDE_APPLICATIONS_VERSION} +PORTREVISION= 1 CATEGORIES= databases kde kde-applications MAINTAINER= kde@FreeBSD.org diff --git a/databases/evolution-data-server/Makefile b/databases/evolution-data-server/Makefile index 99d7156d2cff..c52ad0f692df 100644 --- a/databases/evolution-data-server/Makefile +++ b/databases/evolution-data-server/Makefile @@ -1,5 +1,6 @@ PORTNAME= evolution-data-server DISTVERSION= 3.56.2 +PORTREVISION= 1 CATEGORIES= databases gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome @@ -23,7 +24,7 @@ LIB_DEPENDS= libsoup-3.0.so:devel/libsoup3 \ libsecret-1.so:security/libsecret \ libcanberra-gtk3.so:audio/libcanberra-gtk3 \ libcanberra.so:audio/libcanberra \ - libuuid.so:misc/e2fsprogs-libuuid \ + libuuid.so:misc/libuuid \ libvulkan.so:graphics/vulkan-loader \ libgraphene-1.0.so:graphics/graphene diff --git a/databases/freetds-devel/Makefile b/databases/freetds-devel/Makefile index 7d17251b0aa2..eb0a667029d0 100644 --- a/databases/freetds-devel/Makefile +++ b/databases/freetds-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= freetds -DISTVERSION= 1.4.514 +DISTVERSION= 1.5.95 PORTEPOCH= 1 CATEGORIES= databases MASTER_SITES= https://www.freetds.org/files/current/ diff --git a/databases/freetds-devel/distinfo b/databases/freetds-devel/distinfo index f8649dd711fe..e9f6f241ea50 100644 --- a/databases/freetds-devel/distinfo +++ b/databases/freetds-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1748779556 -SHA256 (freetds-dev.1.4.514.tar.bz2) = 072cbbdb5431fbf0440fd9048b4eca6018c079c6e19c473227522c28c70b1602 -SIZE (freetds-dev.1.4.514.tar.bz2) = 2451574 +TIMESTAMP = 1751442770 +SHA256 (freetds-dev.1.5.95.tar.bz2) = f615e4aa226b48f755c9bef84523b05b922317ead761510168d7337a4e4b061c +SIZE (freetds-dev.1.5.95.tar.bz2) = 2452171 diff --git a/databases/freetds/Makefile b/databases/freetds/Makefile index f72d3a762825..3d2da413694a 100644 --- a/databases/freetds/Makefile +++ b/databases/freetds/Makefile @@ -1,5 +1,5 @@ PORTNAME= freetds -DISTVERSION= 1.5.2 +DISTVERSION= 1.5.4 PORTEPOCH= 1 CATEGORIES= databases MASTER_SITES= https://www.freetds.org/files/stable/ \ diff --git a/databases/freetds/distinfo b/databases/freetds/distinfo index c373f55a79d9..9bcef94b2f05 100644 --- a/databases/freetds/distinfo +++ b/databases/freetds/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1748779474 -SHA256 (freetds-1.5.2.tar.bz2) = 7100a723bef1c0866f0a12c7081b410447959c8b9cc7500196c5c5d64042c056 -SIZE (freetds-1.5.2.tar.bz2) = 2439379 +TIMESTAMP = 1751442687 +SHA256 (freetds-1.5.4.tar.bz2) = 1d024ef418d74a3a8f2cca82f10f1561f1dde28dc3d6f65c815f07764d4f7ea8 +SIZE (freetds-1.5.4.tar.bz2) = 2440514 diff --git a/databases/gnats4/Makefile b/databases/gnats4/Makefile deleted file mode 100644 index e0bb5804ba52..000000000000 --- a/databases/gnats4/Makefile +++ /dev/null @@ -1,115 +0,0 @@ -PORTNAME= gnats -PORTVERSION= 4.1.0 -PORTREVISION= 25 -CATEGORIES= databases devel -MASTER_SITES= GNU -PKGNAMESUFFIX= 4 - -MAINTAINER= ports@FreeBSD.org -COMMENT= GNATS, the GNU Problem Report Management System -WWW= https://www.gnu.org/software/gnats/ - -LICENSE= GPLv2 -LICENSE_FILE= ${WRKSRC}/COPYING - -BROKEN_mips= Does not build: error: conflicting types for yy_scan_string -BROKEN_mips64= Does not build: error: conflicting types for yy_scan_string -DEPRECATED= Abandoned upstream, last release in 2015 and last activity about 9 years ago -EXPIRATION_DATE=2025-06-30 - -USES= cpe gettext-runtime gmake -CPE_VENDOR= gnu -USE_GCC= yes - -GNU_CONFIGURE= yes -GNU_CONFIGURE_MANPREFIX=${PREFIX}/share -CONFIGURE_ARGS+= --sharedstatedir=${GNATSDBDIR} - -.ifdef WANT_FREEFALL_CFG -EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-* -GNATSDBDIR= ${DATADIR} -CONFIGURE_ARGS+= --with-gnats-default-db=${GNATSDBDIR}/gnats-db -WITH_SUBMITTER_ID= current-users -WITH_ORGANIZATION= FreeBSD -WITH_GNATSD_SERVICE= support -.endif - -.ifdef WITH_SUBMITTER_ID -CONFIGURE_ARGS+= --with-submitter=${WITH_SUBMITTER_ID} -.endif - -.ifdef WITH_ORGANIZATION -CONFIGURE_ARGS+= --with-organization=${WITH_ORGANIZATION:Q} -.endif - -.ifdef WITH_GNATSD_SERVICE -CONFIGURE_ARGS+= --with-gnats-service=${WITH_GNATSD_SERVICE} -.endif - -USERS= gnats - -PKGINSTALL= ${WRKDIR}/pkg-install -PKGMESSAGE= ${WRKDIR}/pkg-message -INFO= gnats-faq gnats -PLIST_SUB= GNATSDBDIR=${GNATSDBDIR} -PORTDOCS= NEWS UPGRADING - -OPTIONS_DEFINE= DOCS EMACS SERVER -OPTIONS_DEFAULT=SERVER -OPTIONS_SUB= yes - -EMACS_DESC= Install Emacs Lisp support file -SERVER_DESC= Install the gnats server too - -EMACS_USES= emacs -EMACS_CONFIGURE_ON=--with-lispdir=${LOCALBASE}/${EMACS_SITE_LISPDIR} -EMACS_PLIST_SUB_OFF= EMACS_SITE_LISPDIR="@comment " -EMACS_VARS= EMACS_NO_DEPENDS=yes -SERVER_ALL_TARGET_OFF= all-tools -SERVER_INSTALL_TARGET_OFF= install-tools - -GNATSDBDIR?= /var/db/gnats - -.include <bsd.port.options.mk> - -pre-everything:: -.if !defined(PACKAGE_BUILDING) && !defined(WANT_FREEFALL_CFG) - @${ECHO} "=============================================================" - @${ECHO} - @${ECHO} "You can build ${PKGNAME} with the following options:" - @${ECHO} - @${ECHO} "WITH_SUBMITTER_ID=unknown default submitter-id" - @${ECHO} "WITH_ORGANIZATION='unknown' default organization" - @${ECHO} "WITH_GNATSD_SERVICE=support default gnatsd port name" - @${ECHO} - @${ECHO} "=============================================================" - @${ECHO} -.endif - -post-patch: - @${REINPLACE_CMD} -e 's|info man|man|g' ${WRKSRC}/doc/Makefile.in - -pre-configure: - @${ECHO_CMD} 'RELEASE_TAG="\`uname -srm\`"' > ${WRKSRC}/release-info - -post-build: - @for doc in pkg-message pkg-install; do \ - ${SED} -e 's,%%PREFIX%%,${STAGEDIR}${PREFIX},g' \ - -e 's,%%GNATSDBDIR%%,${GNATSDBDIR},g' \ - ${PKGDIR}/$${doc} >${WRKDIR}/$${doc}; \ - done - -pre-install: - @${MKDIR} ${STAGEDIR}${PREFIX}/libexec/gnats - -post-install-SERVER-on: - ${MV} ${STAGEDIR}${ETCDIR}/databases.default \ - ${STAGEDIR}${ETCDIR}/databases.sample - ${MV} ${STAGEDIR}${ETCDIR}/gnatsd.host_access.default \ - ${STAGEDIR}${ETCDIR}/gnatsd.host_access.sample - -post-install-DOCS-on: - @${MKDIR} ${STAGEDIR}${DOCSDIR} - (cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}) - -.include <bsd.port.mk> diff --git a/databases/gnats4/distinfo b/databases/gnats4/distinfo deleted file mode 100644 index 6f65afdc086d..000000000000 --- a/databases/gnats4/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (gnats-4.1.0.tar.gz) = 9e7264f2d049d29e048a9d0965bf5880f9ebd55f9d3feaba72d851db01960934 -SIZE (gnats-4.1.0.tar.gz) = 1221364 diff --git a/databases/gnats4/files/extrapatch-gnats__edit-pr.sh b/databases/gnats4/files/extrapatch-gnats__edit-pr.sh deleted file mode 100644 index f4f7c1aa8015..000000000000 --- a/databases/gnats4/files/extrapatch-gnats__edit-pr.sh +++ /dev/null @@ -1,265 +0,0 @@ ---- gnats/edit-pr.sh.orig Sun May 26 16:32:02 2002 -+++ gnats/edit-pr.sh Sat Dec 6 02:43:44 2003 -@@ -5,6 +5,8 @@ - # Contributed by Jeffrey Osier (jeffrey@cygnus.com). - # Majorly revised by Bob Manson (manson@juniper.net). - # Further improvements by Dirk Bergstrom (dirk@juniper.net). -+# Patches for the FreeBSD Project by Ceri Davies (ceri@FreeBSD.org), -+# based on work by Paul Richards (paul@FreeBSD.org). - # - # This file is part of GNU GNATS. - # -@@ -24,9 +26,12 @@ - - debug_print=false # or echo to get output. - BINDIR=xBINDIRx -+DATE=`LC_TIME=C date` # Some prstats tools rely on this format -+GNATS_ROOT=${GNATS_ROOT:-/usr/local/share/gnats/gnats-db}; export GNATS_ROOT - LIBEXECDIR=xLIBEXECDIRx - GNATS_PORT= - locked= -+rc=0 - version=xVERSIONx - - usage=" -@@ -99,28 +104,23 @@ - - *) - if [ "`echo $1 | grep /`" != "" ]; then -- pr_id=`echo $1 | awk -F"/" '{print $2}' -` -+ pr=`echo $1 | awk -F"/" '{print $2}' -` - else -- pr_id=$1 -+ pr=$1 - fi -+ prs="$prs $pr" - ;; - esac - shift - done - -+chng_tpl="${GNATS_ROOT}/gnats-adm/edit-pr-msg" -+ - # set command here to always pass host and port, and directory if supplied - QUERY_PR="$BINDIR/query-pr $GNATS_HOST $GNATS_PORT $GNATS_DB $EDIT_USER $EDIT_PASSWD" - PR_ADDR="$QUERY_PR --responsible-address" - PR_EDIT="$LIBEXECDIR/gnats/pr-edit $GNATS_HOST $GNATS_PORT $EDIT_USER $EDIT_PASSWD $GNATS_DB" - --# These traps take care of deleting all the /tmp files --trap 'rm -f $new.old $change_msg $fixfil' 0 --# Don't delete $new on error signals --trap 'if [ "$locked" != "" ]; then \ -- $PR_EDIT --unlock $pr_id ; \ -- locked= ; \ -- fi' 1 2 3 13 15 -- - # find a user name - if [ "$USER" != "" ]; then - me=$USER -@@ -138,85 +138,45 @@ - full_me="$me" - fi - -+for pr_id in $prs ; do -+ -+epdir=`mktemp -d /tmp/epXXXXXX || exit 75` -+chng_msg="$epdir/chng.$pr_id.$$" - # new = temp file to use for editing --new="/tmp/ep$$" --newtmp="/tmp/ep$$.tp" --change_msg="/tmp/ep$$.ch" --fixfil="/tmp/ep$$.fx" -+new="$epdir/$pr_id.ep$$" -+change_msg="$epdir/ep$$.$pr_id.ch" -+keepnew= -+ -+# These traps take care of deleting all the /tmp files -+trap 'rm -f $new.old $change_msg chng_msg; rmdir $epdir 2>/dev/null' 0 -+trap 'if [ "$locked" != "" ]; then \ -+ $PR_EDIT --unlock $pr_id ; \ -+ locked= ; \ -+ fi; \ -+ rm -f $new.old $change_msg chng_msg; rmdir $epdir 2>/dev/null' 1 2 3 13 15 -+ - - # lock the pr - $debug_print "Locking $pr_id." --lock=`$PR_EDIT --lock=$full_me --process=$$ $pr_id 2>&1 > $new` -+lock=`$PR_EDIT --lock=$me --process=$$ $pr_id 2>&1 > $new` - locked=t - - if [ "$lock" != "" ] ; then -+ echo "Failed to lock PR $pr_id" - echo $lock -- exit 0 -+ rc=1 -+ rm -r $epdir -+ continue - fi - --rm -f $fixfil -- --# Now add any missing fields, along with a description. -- --$QUERY_PR --list-fields | while read field --do -- grep -i "^>${field}:" "$new" > /dev/null 2>&1 -- if [ $? != 0 ] -- then -- $QUERY_PR --field-flags "$field" | grep -i readonly > /dev/null 2>&1 -- if [ $? != 0 ] -- then -- type="`$QUERY_PR --field-type $field`" -- case $type in -- [Ee][Nn][Uu][Mm]) -- values=`$QUERY_PR --valid-values $field | tr '\n' ' ' | sed 's/ *$//g; s/ / | /g;s/^/[ /;s/$/ ]/;` -- valslen=`echo "$values" | wc -c` -- if [ "$valslen" -gt 160 ] -- then -- desc="<`$QUERY_PR --field-description $field` (one line)>"; -- else -- desc="<${values} (one line)>"; -- fi -- dpat=`echo "$desc" | tr '][*+^$|\()&/' '............'` -- echo "/^>${field}:/ s/${dpat}//" >> $fixfil -- echo "/>${field}: ${desc}" >> $new; -- ;; -- [Mm][Uu][Ll][Tt][Ii][Tt][Ee][Xx][Tt]) -- desc=" <`$QUERY_PR --field-description $field` (multiple lines)>"; -- dpat=`echo "$desc" | tr '][*+^$|\()&/' '............'` -- echo "s/^${dpat}//" >> $fixfil -- echo ">${field}:" >> $new; -- echo "$desc" >> $new; -- ;; -- *) -- desc="<`$QUERY_PR --field-description $field` (one line)>" -- dpat=`echo "$desc" | tr '][*+^$|\()&/' '............'` -- echo "/^>${field}:/ s/${dpat}//" >> $fixfil -- echo ">${field}: ${desc}" >> $new -- ;; -- esac -- else -- prevfld="$field"; -- fi -- fi --done -- - # here's where we actually call the editor. - cp $new $new.old - $VISUAL $new - if cmp -s $new.old $new ; then - echo "edit-pr: PR not changed" - $PR_EDIT --unlock $pr_id -- exit 0 --fi -- --if [ -f $fixfil ] --then -- sed -f $fixfil < $new > $newtmp -- mv $newtmp $new -- sed -f $fixfil < $new.old > $newtmp -- mv $newtmp $new.old -- rm -f $fixfil -+ rm -r $epdir -+ continue - fi - - # error-check output by calling pr-edit --check; if mistakes exist, -@@ -233,7 +193,7 @@ - echo "PR $pr_id not updated: changed file is in $new.changed" - mv $new $new.changed - $PR_EDIT --unlock $pr_id -- exit 0 -+ continue 2 - ;; - esac - $VISUAL $new -@@ -242,24 +202,37 @@ - fi - done - --exec 3<&0 -- - # - # Find out what fields have changed; if the changed field requires a - # change reason, then ask about it. - # --$LIBEXECDIR/gnats/diff-prs $new.old $new | while read field -+ -+changed_fields=`$LIBEXECDIR/gnats/diff-prs $new.old $new` -+for field in $changed_fields - do - flags=`$QUERY_PR --field-flags $field` || echo "edit-pr: Invalid field name $field" 1>&2; - - if echo "$flags" | grep -i "requirechangereason" > /dev/null 2>&1 - then -- echo ">${field}-Changed-Why:" >> $change_msg; -- echo "Why did the $field field change? (Ctrl-D to end)"; -- cat 0<&3 >> $change_msg; -+ $debug_print "Doing $field change." -+ echo ">$field-Changed-Why: " >> $change_msg -+ if [ -e $chng_msg ]; then -+ echo "Re-use last message (y/n)?" -+ read yesno -+ if [ "$yesno" != "y" ]; then -+ sed "s/%%ITEM%%/$field/" $chng_tpl > $chng_msg -+ fi -+ else -+ sed "s/%%ITEM%%/$field/" $chng_tpl > $chng_msg -+ fi -+ $VISUAL $chng_msg -+ sed '/^GNATS:/d' $chng_msg >> $change_msg - fi - done - -+echo "" >> $change_msg -+echo "http://www.FreeBSD.org/cgi/query-pr.cgi?pr=$pr_id" >> $change_msg -+ - if [ -f $change_msg ] - then - cat $change_msg >> $new -@@ -269,12 +242,12 @@ - # Submit the changed PR. - # - while true; do -- if $PR_EDIT --email-addr "$full_me" $pr_id < $new -+ if $PR_EDIT --email-addr "$me" $pr_id < $new - then - echo "Edit successful" - # we need to unlock the PR - $PR_EDIT --unlock $pr_id -- exit 0 -+ break - else - echo "Problems with edit submission." - fi -@@ -284,9 +257,11 @@ - case "$input" in - a*) - echo "Cancelling edit. Changed PR is in $new." -- # we need to ulock the PR no matter what -+ # we need to unlock the PR no matter what - $PR_EDIT --unlock $pr_id -- exit 1 ;; -+ keepnew=y -+ rc=1 -+ break 2 ;; - r*) - break ;; - *) -@@ -296,6 +271,13 @@ - done - done - --rm -f $new -+rm -f $chng_msg $new.old $change_msg -+if [ "$keepnew" != "y" ]; then -+ rm -f $new -+ rmdir $epdir -+fi -+keepnew= -+ -+done # for pr_id in $prs - --exit 0 -+exit $rc diff --git a/databases/gnats4/files/patch-Makefile.in b/databases/gnats4/files/patch-Makefile.in deleted file mode 100644 index 63e93a91e0d9..000000000000 --- a/databases/gnats4/files/patch-Makefile.in +++ /dev/null @@ -1,11 +0,0 @@ ---- Makefile.in.orig Mon Aug 1 14:22:39 2005 -+++ Makefile.in Mon Aug 1 14:22:58 2005 -@@ -48,7 +48,7 @@ - $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' $@ - - install-tools: -- $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' $@ -+ for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done - - uninstall: - for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done diff --git a/databases/gnats4/files/patch-gnats__Makefile.in b/databases/gnats4/files/patch-gnats__Makefile.in deleted file mode 100644 index 2a8b6c4446fe..000000000000 --- a/databases/gnats4/files/patch-gnats__Makefile.in +++ /dev/null @@ -1,124 +0,0 @@ ---- gnats/Makefile.in.orig 2005-02-24 20:35:55 UTC -+++ gnats/Makefile.in -@@ -93,7 +93,7 @@ M4 = @M4@ - - INSTALL = $(srcdir)/../install-sh -c - INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_PROGRAM@ -+INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_DATA = @INSTALL_DATA@ - - SUB_INSTALL = `echo $(INSTALL) | sed 's,^\([^/]\),../\1,'` -@@ -109,6 +109,7 @@ bindir = @bindir@ - libdir = @libdir@ - libexecdir = @libexecdir@ - statedir = @datadir@ -+sharedstatedir = @sharedstatedir@ - sysconfdir = @sysconfdir@ - - program_transform_name = -@@ -162,7 +163,7 @@ all-gnats: all-tools gnatsd queue-pr mai - check-db delete-pr dbconfig gnats-databases gnats-pwconv $(EXTRA_STUFF) - - all-tools: libgnats.a query-pr pr-age pr-edit edit-pr file-pr getclose \ -- config-send-pr mail-agent dbconfig diff-prs -+ mail-agent dbconfig diff-prs - - libgnats.a: $(LIBOBJS) - -rm -f tmplibgnats.a libgnats.a -@@ -368,15 +369,11 @@ install-tools: install-tools-arch-indep - install-tools-arch-dep: install-tools-bin - - install-tools-arch-indep: all-tools -- $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(datadir)/gnats -+ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(sharedstatedir)/gnats - $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(sysconfdir)/gnats/defaults -- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \ -- echo "chown $(GNATS_USER) $(DESTDIR)$(datadir)/gnats" ; \ -- chown $(GNATS_USER) $(DESTDIR)$(datadir)/gnats ; \ -- else \ -- echo "*** Warning: Must chown $(GNATS_USER) $(DESTDIR)$(datadir)/gnats" ; \ -+ @if [ x"$(lispdir)" != x ]; then \ -+ $(INSTALL_DATA) $(srcdir)/gnats.el $(DESTDIR)$(lispdir)/gnats.el ; \ - fi -- $(INSTALL_DATA) $(srcdir)/gnats.el $(DESTDIR)$(lispdir)/gnats.el - for i in categories submitters responsible gnatsd.user_access addresses states classes dbconfig ; do \ - if [ -f "$$i" ] ; then \ - $(INSTALL_DATA) $$i $(DESTDIR)$(sysconfdir)/gnats/defaults/$$i ; \ -@@ -391,17 +388,9 @@ install-tools-bin: all-tools - $(INSTALL_SCRIPT) edit-pr $(DESTDIR)$(bindir)/edit-pr - $(INSTALL_SCRIPT) diff-prs $(DESTDIR)$(libexecdir)/gnats/diff-prs - $(INSTALL_SCRIPT) mail-agent $(DESTDIR)$(libexecdir)/gnats/mail-agent -- $(INSTALL_PROGRAM) file-pr $(DESTDIR)$(libexecdir)/gnats/file-pr -+ $(INSTALL_SCRIPT) file-pr $(DESTDIR)$(libexecdir)/gnats/file-pr - $(INSTALL_PROGRAM) pr-age $(DESTDIR)$(libexecdir)/gnats/pr-age - $(INSTALL_PROGRAM) pr-edit $(DESTDIR)$(libexecdir)/gnats/pr-edit -- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \ -- echo "chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/pr-edit" ; \ -- echo "chmod 4555 $(DESTDIR)$(libexecdir)/gnats/pr-edit" ; \ -- chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/pr-edit ; \ -- chmod 4555 $(DESTDIR)$(libexecdir)/gnats/pr-edit ; \ -- else \ -- echo "*** Warning: Must make pr-edit suid $(DESTDIR)$(GNATS_USER)" ; \ -- fi - - EXTRA_INSTALL = - -@@ -409,33 +398,9 @@ install-gnats: install-gnats-bin install - install-gnats-arch-dep: install-gnats-bin $(EXTRA_INSTALL) - - install-gnats-arch-indep: all-gnats install-tools-arch-indep -- @if [ -f $(DESTDIR)$(GLOBAL_DB_LIST_FILE) ]; then \ -- echo "Not putting gnats-databases file in $(DESTDIR)$(GLOBAL_DB_LIST_FILE), it's already there." ; \ -- true ; \ -- else \ -- if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \ -- $(INSTALL_DATA) -o $(GNATS_USER) gnats-databases \ -- $(DESTDIR)$(GLOBAL_DB_LIST_FILE) ; \ -- else \ -- $(INSTALL_DATA) gnats-databases $(DESTDIR)$(GLOBAL_DB_LIST_FILE) ; \ -- echo "*** Warning: Must chown $(GNATS_USER) $(DESTDIR)$(GLOBAL_DB_LIST_FILE)" ; \ -- fi \ -- fi -- @if [ -f $(DESTDIR)$(GNATSD_HOST_ACCESS_FILE) ]; then \ -- echo "Not putting gnats.host_access file in $(DESTDIR)$(GNATSD_HOST_ACCESS_FILE), it's already there." ; \ -- true ; \ -- else \ -- if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \ -- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/gnatsd.host_access \ -- $(DESTDIR)$(GNATSD_HOST_ACCESS_FILE) ; \ -- else \ -- $(INSTALL_DATA) $(srcdir)/gnatsd.host_access \ -- $(DESTDIR)$(GNATSD_HOST_ACCESS_FILE) ; \ -- echo "*** Warning: Must chown $(GNATS_USER) $(DESTDIR)$(GNATSD_HOST_ACCESS_FILE)" ; \ -- fi \ -- fi -- @echo "*** If you're a first-time user, you'll want to create a new database"; -- @echo "*** with $(libexecdir)/gnats/mkdb." -+ $(INSTALL_DATA) gnats-databases $(DESTDIR)$(GLOBAL_DB_LIST_FILE).default -+ $(INSTALL_DATA) $(srcdir)/gnatsd.host_access \ -+ $(DESTDIR)$(GNATSD_HOST_ACCESS_FILE).default - - install-gnats-bin: all-gnats install-tools-bin - $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(libexecdir)/gnats -@@ -450,20 +415,6 @@ install-gnats-bin: all-gnats install-too - $(INSTALL_PROGRAM) gen-index $(DESTDIR)$(libexecdir)/gnats/gen-index - $(INSTALL_SCRIPT) mail-query $(DESTDIR)$(libexecdir)/gnats/mail-query - $(INSTALL_PROGRAM) gnats-pwconv $(DESTDIR)$(libexecdir)/gnats/gnats-pwconv -- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \ -- echo "chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/queue-pr $(DESTDIR)$(libexecdir)/gnats/file-pr $(DESTDIR)$(libexecdir)/gnats/gen-index" ; \ -- echo "chmod 4555 $(DESTDIR)$(libexecdir)/gnats/queue-pr $(DESTDIR)$(libexecdir)/gnats/file-pr $(DESTDIR)$(libexecdir)/gnats/gen-index" ; \ -- echo "chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/gnatsd" ; \ -- echo "chmod 555 $(DESTDIR)$(libexecdir)/gnats/gnatsd" ; \ -- chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/queue-pr ; \ -- chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/gen-index ; \ -- chmod 4555 $(DESTDIR)$(libexecdir)/gnats/queue-pr ; \ -- chmod 4555 $(DESTDIR)$(libexecdir)/gnats/gen-index ; \ -- chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/gnatsd ; \ -- chmod 555 $(DESTDIR)$(libexecdir)/gnats/gnatsd ; \ -- else \ -- echo "*** Warning: must make queue-pr and gen-index suid $(GNATS_USER)." ; \ -- fi - - # regex.c is pretty badly broken, and I don't feel like fixing it. - regex.o: $(srcdir)/regex.c diff --git a/databases/gnats4/files/patch-gnats__dbconfig.in b/databases/gnats4/files/patch-gnats__dbconfig.in deleted file mode 100644 index d0df474007e9..000000000000 --- a/databases/gnats4/files/patch-gnats__dbconfig.in +++ /dev/null @@ -1,12 +0,0 @@ ---- ./gnats/dbconfig.in.orig 2002-10-31 21:28:52.000000000 +0100 -+++ ./gnats/dbconfig.in 2011-06-12 09:58:06.000000000 +0200 -@@ -756,7 +756,8 @@ - } - # A somewhat convoluted binary format is used when binary-index is set - # to true. -- binary-index true -+ #binary-index true -+ binary-index false - } - - # initial-entry describes which fields should be present on initial entry; diff --git a/databases/gnats4/files/patch-gnats__edit-pr.sh b/databases/gnats4/files/patch-gnats__edit-pr.sh deleted file mode 100644 index 935557ed8a21..000000000000 --- a/databases/gnats4/files/patch-gnats__edit-pr.sh +++ /dev/null @@ -1,11 +0,0 @@ ---- gnats/edit-pr.sh.orig 2011-12-12 13:42:33.000000000 +0200 -+++ gnats/edit-pr.sh 2011-12-12 13:43:51.000000000 +0200 -@@ -169,7 +169,7 @@ - type="`$QUERY_PR --field-type $field`" - case $type in - [Ee][Nn][Uu][Mm]) -- values=`$QUERY_PR --valid-values $field | tr '\n' ' ' | sed 's/ *$//g; s/ / | /g;s/^/[ /;s/$/ ]/;` -+ values=`$QUERY_PR --valid-values $field | tr '\n' ' ' | sed 's/ *$//g; s/ / | /g;s/^/[ /;s/$/ ]/;'` - valslen=`echo "$values" | wc -c` - if [ "$valslen" -gt 160 ] - then diff --git a/databases/gnats4/files/patch-gnats__gnats.h b/databases/gnats4/files/patch-gnats__gnats.h deleted file mode 100644 index 0fa0fe5abe57..000000000000 --- a/databases/gnats4/files/patch-gnats__gnats.h +++ /dev/null @@ -1,12 +0,0 @@ ---- gnats/gnats.h.orig 2013-06-10 10:33:17.000000000 +0300 -+++ gnats/gnats.h 2013-06-10 10:33:26.000000000 +0300 -@@ -137,9 +137,6 @@ - # define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) - #endif - --extern int asprintf (char **buf, const char *fmt, ...); --extern int vasprintf (char **buf, const char *fmt, va_list args); -- - #if ! HAVE_DECL_UNSETENV - extern void unsetenv (const char *name); - #endif diff --git a/databases/gnats4/files/patch-send-pr__Makefile.in b/databases/gnats4/files/patch-send-pr__Makefile.in deleted file mode 100644 index 3c9c686174e6..000000000000 --- a/databases/gnats4/files/patch-send-pr__Makefile.in +++ /dev/null @@ -1,11 +0,0 @@ ---- send-pr/Makefile.in.orig Mon Aug 1 12:54:35 2005 -+++ send-pr/Makefile.in Mon Aug 1 12:53:52 2005 -@@ -55,7 +55,7 @@ - INSTALL = @INSTALL@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_DATA = @INSTALL_DATA@ --INSTALL_SCRIPT = @INSTALL_PROGRAM@ -+INSTALL_SCRIPT = @INSTALL_SCRIPT@ - - CFLAGS = -g - LDFLAGS = -g diff --git a/databases/gnats4/files/patch-send-pr_install-sid.sh b/databases/gnats4/files/patch-send-pr_install-sid.sh deleted file mode 100644 index 8a00e0c2c6a4..000000000000 --- a/databases/gnats4/files/patch-send-pr_install-sid.sh +++ /dev/null @@ -1,11 +0,0 @@ ---- send-pr/install-sid.sh.orig 2008-07-22 12:35:01.000000000 +0300 -+++ send-pr/install-sid.sh 2008-07-22 12:35:11.000000000 +0300 -@@ -27,7 +27,7 @@ - sysconfdir="@sysconfdir@" - - COMMAND=`echo $0 | sed -e 's,.*/,,g'` --function usage() { -+usage() { - cat << __EOF__ >&2 - Usage: $COMMAND [OPTIONS] submitter-id - diff --git a/databases/gnats4/pkg-descr b/databases/gnats4/pkg-descr deleted file mode 100644 index ae86149405b3..000000000000 --- a/databases/gnats4/pkg-descr +++ /dev/null @@ -1,6 +0,0 @@ -GNU GNATS is a set of tools for tracking bugs reported by users to a -central site. It allows problem report management and communication -with users through various means, including e-mail, Web and a network -daemon. GNATS stores all the information about problem reports in its -databases, consisting of plain text files and it provides tools for -querying, editing and maintaining these databases. diff --git a/databases/gnats4/pkg-install b/databases/gnats4/pkg-install deleted file mode 100644 index 13c707fb263c..000000000000 --- a/databases/gnats4/pkg-install +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -ECHO_CMD=echo -GREP=/usr/bin/grep -PW=/usr/sbin/pw - -FTPUSERS=/etc/ftpusers -GNATSDBDIR=%%GNATSDBDIR%% - -case $2 in -PRE-INSTALL) - if [ ! -x ${PW} ]; then - ${ECHO_CMD} "Your system is missing the \`pw' command." - exit 1 - fi - if ${PW} usershow -n gnats >/dev/null 2>&1; then - if [ "`pw usershow -n gnats | awk -F: '{print $9}'`" != "${GNATSDBDIR}" ]; then - ${PW} usermod -n gnats -d "${GNATSDBDIR}" 2>/dev/null - ${ECHO_CMD} "===> Account \`gnats' updated." - fi - else - if ${PW} useradd -n gnats -u 61 -g 1 -d "${GNATSDBDIR}" \ - -c "GNATS database owner" -h -; then - ${GREP} -qs '^gnats$' ${FTPUSERS} || ${ECHO_CMD} gnats >> ${FTPUSERS} - ${ECHO_CMD} "===> Account \`gnats' created." - else - ${ECHO_CMD} - ${ECHO_CMD} "The FreeBSD standard userid for gnats is 61, but this system" - ${ECHO_CMD} "has already a different account with this userid:" - ${ECHO_CMD} - ${PW} usershow -u 61 -P - ${ECHO_CMD} - ${ECHO_CMD} "You can either delete this account (which may be dangerous) with" - ${ECHO_CMD} " ${PW} userdel -u 61" - ${ECHO_CMD} "or add the gnats user with an other userid with" - ${ECHO_CMD} " ${PW} useradd -n gnats -g daemon \\" - ${ECHO_CMD} " -d ${GNATSDBDIR} -c 'GNATS database owner' -h -" - ${ECHO_CMD} "and retry installing this package" - ${ECHO_CMD} - exit 1 - fi - fi - ;; -esac diff --git a/databases/gnats4/pkg-message b/databases/gnats4/pkg-message deleted file mode 100644 index 9bbfcee283f1..000000000000 --- a/databases/gnats4/pkg-message +++ /dev/null @@ -1,26 +0,0 @@ -[ -{ type: install - message: <<EOM -GNATS has been successfully installed. - -If you want to run the GNATS server, enter - - %%PREFIX%%/libexec/gnats/mkdb default - -to create the default database and add - - support stream tcp nowait gnats %%PREFIX%%/libexec/gnats/gnatsd gnatsd - -to inetd.conf(5). Instructions to upgrade from a -GNATS 3.x database are in - - %%PREFIX%%/share/doc/gnats/UPGRADING - -Try `man gnats', `info gnats' and the online manual at - - http://www.gnu.org/software/gnats/gnats_toc.html - -for more information. -EOM -} -] diff --git a/databases/gnats4/pkg-plist b/databases/gnats4/pkg-plist deleted file mode 100644 index 2f5cb3b6325c..000000000000 --- a/databases/gnats4/pkg-plist +++ /dev/null @@ -1,52 +0,0 @@ -@(gnats,,4555) bin/edit-pr -bin/getclose -bin/install-sid -bin/query-pr -bin/send-pr -%%SERVER%%@sample etc/gnats/databases.sample -%%SERVER%%@sample etc/gnats/gnatsd.host_access.sample -etc/gnats/defaults/addresses -etc/gnats/defaults/categories -etc/gnats/defaults/classes -etc/gnats/defaults/dbconfig -etc/gnats/defaults/gnatsd.user_access -etc/gnats/defaults/responsible -etc/gnats/defaults/states -etc/gnats/defaults/submitters -etc/gnats/send-pr.conf -%%SERVER%%libexec/gnats/at-pr -%%SERVER%%libexec/gnats/check-db -%%SERVER%%libexec/gnats/delete-pr -libexec/gnats/diff-prs -libexec/gnats/file-pr -@(gnats,,4555) %%SERVER%%libexec/gnats/gen-index -@(gnats,,4555) %%SERVER%%libexec/gnats/gnatsd -%%SERVER%%libexec/gnats/gnats-pwconv -libexec/gnats/mail-agent -%%SERVER%%libexec/gnats/mail-query -%%SERVER%%libexec/gnats/mkcat -%%SERVER%%libexec/gnats/mkdb -libexec/gnats/pr-age -libexec/gnats/pr-edit -%%SERVER%%libexec/gnats/queue-pr -%%SERVER%%libexec/gnats/rmcat -share/man/man1/edit-pr.1.gz -share/man/man1/query-pr.1.gz -share/man/man1/send-pr.1.gz -share/man/man5/databases.5.gz -share/man/man5/dbconfig.5.gz -share/man/man7/gnats.7.gz -share/man/man8/delete-pr.8.gz -share/man/man8/getclose.8.gz -share/man/man8/file-pr.8.gz -share/man/man8/gen-index.8.gz -share/man/man8/gnatsd.8.gz -share/man/man8/install-sid.8.gz -share/man/man8/mkcat.8.gz -share/man/man8/mkdb.8.gz -share/man/man8/pr-edit.8.gz -share/man/man8/queue-pr.8.gz -share/man/man8/rmcat.8.gz -%%EMACS_SITE_LISPDIR%%/gnats.el -@dir(gnats,,) %%GNATSDBDIR%%/gnats -@dir %%GNATSDBDIR%% diff --git a/databases/gnatsweb4/Makefile b/databases/gnatsweb4/Makefile deleted file mode 100644 index 34b183c027f8..000000000000 --- a/databases/gnatsweb4/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -PORTNAME= gnatsweb -PORTVERSION= 4.00 -PORTREVISION= 7 -CATEGORIES= databases devel www -MASTER_SITES= GNU - -MAINTAINER= ports@FreeBSD.org -COMMENT= Gnatsweb, a GNATS web interface -WWW= https://www.gnu.org/software/gnats/ - -LICENSE= GPLv2+ -LICENSE_FILE= ${WRKSRC}/COPYING - -DEPRECATED= Abandoned upstream, last release in 2015 and no active development in the last 10 years -EXPIRATION_DATE=2025-06-30 - -USES= apache:run perl5 shebangfix -SHEBANG_FILES= gnatsweb.pl -USE_PERL5= run -NO_BUILD= yes -NO_ARCH= yes - -CGI_DIR?= ${WWWDIR}/cgi-bin - -PLIST_SUB= CGI_DIR="${CGI_DIR:S,^${PREFIX}/,,}" - -PORTDOCS= CUSTOMIZE CUSTOMIZE.cb CUSTOMIZE.vars \ - ChangeLog INSTALL NEWS README TROUBLESHOOTING - -PORTEXAMPLES= gnatsweb-site-example.pl - -OPTIONS_DEFINE= DOCS EXAMPLES - -do-install: - @${MKDIR} ${STAGEDIR}${ETCDIR} ${STAGEDIR}${CGI_DIR} \ - ${STAGEDIR}${DOCSDIR} ${STAGEDIR}${EXAMPLESDIR} - ${INSTALL_DATA} ${WRKSRC}/gnatsweb-site.pl \ - ${STAGEDIR}${ETCDIR}/gnatsweb-site.pl.sample - ${INSTALL_SCRIPT} ${WRKSRC}/gnatsweb.pl ${STAGEDIR}${CGI_DIR} - ${LN} -s ${ETCDIR}/gnatsweb-site.pl ${STAGEDIR}${CGI_DIR} - ${INSTALL_DATA} ${WRKSRC}/gnatsweb.html ${STAGEDIR}${CGI_DIR} - -do-install-DOCS-on: -.for doc in ${PORTDOCS} - ${INSTALL_DATA} ${WRKSRC}/${doc} ${STAGEDIR}${DOCSDIR} -.endfor - -do-install-EXAMPLES-on: -.for example in ${PORTEXAMPLES} - ${INSTALL_DATA} ${WRKSRC}/${example} ${STAGEDIR}${EXAMPLESDIR} -.endfor - -.include <bsd.port.mk> diff --git a/databases/gnatsweb4/distinfo b/databases/gnatsweb4/distinfo deleted file mode 100644 index a00e9ccbb814..000000000000 --- a/databases/gnatsweb4/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (gnatsweb-4.00.tar.gz) = ee26aa8739a2e47fdebd174ef21fcd1aed3ec47775a5f2ba52aa1e7a36c8c95f -SIZE (gnatsweb-4.00.tar.gz) = 87656 diff --git a/databases/gnatsweb4/pkg-descr b/databases/gnatsweb4/pkg-descr deleted file mode 100644 index ade5af5334ad..000000000000 --- a/databases/gnatsweb4/pkg-descr +++ /dev/null @@ -1,3 +0,0 @@ -Gnatsweb is a web interface to GNATS, the GNU Problem Report -Management System. It is a Perl CGI script which runs on your -web server. diff --git a/databases/gnatsweb4/pkg-plist b/databases/gnatsweb4/pkg-plist deleted file mode 100644 index 5d99f5af7cdc..000000000000 --- a/databases/gnatsweb4/pkg-plist +++ /dev/null @@ -1,4 +0,0 @@ -@sample %%ETCDIR%%/gnatsweb-site.pl.sample -%%CGI_DIR%%/gnatsweb.pl -%%CGI_DIR%%/gnatsweb-site.pl -%%CGI_DIR%%/gnatsweb.html diff --git a/databases/grass8/Makefile b/databases/grass8/Makefile index 152a89a39c59..18bf9f88e692 100644 --- a/databases/grass8/Makefile +++ b/databases/grass8/Makefile @@ -1,6 +1,6 @@ PORTNAME= grass DISTVERSION= 8.4.1 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= databases geography MASTER_SITES= https://grass.osgeo.org/%SUBDIR%/ \ http://grass.cict.fr/%SUBDIR%/ \ diff --git a/databases/keydb/Makefile b/databases/keydb/Makefile index a638ccd58ae2..dc6d600eef55 100644 --- a/databases/keydb/Makefile +++ b/databases/keydb/Makefile @@ -1,6 +1,7 @@ PORTNAME= keydb DISTVERSIONPREFIX= v DISTVERSION= 6.3.4 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= zi@FreeBSD.org @@ -13,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING BROKEN_i386= assertion failed: static_assert(sizeof(long) == sizeof(long long),"") BROKEN_powerpc= assertion failed: static_assert(sizeof(long) == sizeof(long long),"") -LIB_DEPENDS= libuuid.so:misc/e2fsprogs-libuuid \ +LIB_DEPENDS= libuuid.so:misc/libuuid \ liblz4.so:archivers/liblz4 \ libsnappy.so:archivers/snappy \ libzstd.so:archivers/zstd diff --git a/databases/libgda5-jdbc/Makefile b/databases/libgda5-jdbc/Makefile index 7c4ffcf24df0..56124434faed 100644 --- a/databases/libgda5-jdbc/Makefile +++ b/databases/libgda5-jdbc/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= databases gnome PKGNAMESUFFIX= 5-jdbc diff --git a/databases/libgda5-ldap/Makefile b/databases/libgda5-ldap/Makefile index f7250e2c5061..3970b61f1bf5 100644 --- a/databases/libgda5-ldap/Makefile +++ b/databases/libgda5-ldap/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= databases gnome PKGNAMESUFFIX= 5-ldap diff --git a/databases/libgda5-postgresql/Makefile b/databases/libgda5-postgresql/Makefile index e87277922bed..3355e687a4a0 100644 --- a/databases/libgda5-postgresql/Makefile +++ b/databases/libgda5-postgresql/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= databases gnome PKGNAMESUFFIX= 5-postgresql diff --git a/databases/libgda5-ui/Makefile b/databases/libgda5-ui/Makefile index 60ea296df428..c6b4348a91dc 100644 --- a/databases/libgda5-ui/Makefile +++ b/databases/libgda5-ui/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= databases gnome PKGNAMESUFFIX= 5-ui diff --git a/databases/libgda5/Makefile b/databases/libgda5/Makefile index d824f80236b9..d59f66c9381b 100644 --- a/databases/libgda5/Makefile +++ b/databases/libgda5/Makefile @@ -1,6 +1,6 @@ PORTNAME= libgda DISTVERSION?= 5.2.10 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= databases gnome MASTER_SITES= GNOME PKGNAMESUFFIX?= 5 diff --git a/databases/libgda6/Makefile b/databases/libgda6/Makefile index 81bd5911dcd6..ff8464227af3 100644 --- a/databases/libgda6/Makefile +++ b/databases/libgda6/Makefile @@ -1,5 +1,6 @@ PORTNAME= libgda DISTVERSION= 6.0.1.g${SNAPDATE} +PORTREVISION= 1 CATEGORIES= databases gnome PKGNAMESUFFIX= 6 DIST_SUBDIR= gnome diff --git a/databases/libgdamm5/Makefile b/databases/libgdamm5/Makefile index f2579ce488f7..72c539df497d 100644 --- a/databases/libgdamm5/Makefile +++ b/databases/libgdamm5/Makefile @@ -1,6 +1,6 @@ PORTNAME= libgdamm PORTVERSION= 4.99.11 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= databases gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome diff --git a/databases/mariadb1011-server/Makefile b/databases/mariadb1011-server/Makefile index cd9a634056ef..2a7b81c2d1e7 100644 --- a/databases/mariadb1011-server/Makefile +++ b/databases/mariadb1011-server/Makefile @@ -1,6 +1,6 @@ PORTNAME?= mariadb PORTVERSION= 10.11.13 -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= databases MASTER_SITES= https://mirror.nodesdirect.com/${SITESDIR}/ \ https://mirror.one.com/${SITESDIR}/ \ diff --git a/databases/mariadb105-server/Makefile b/databases/mariadb105-server/Makefile index 93c3741194fb..8a845f4f8d0d 100644 --- a/databases/mariadb105-server/Makefile +++ b/databases/mariadb105-server/Makefile @@ -1,6 +1,6 @@ PORTNAME?= mariadb PORTVERSION= 10.5.29 -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= databases MASTER_SITES= \ https://mirror.nodesdirect.com/${SITESDIR}/ \ diff --git a/databases/mariadb106-server/Makefile b/databases/mariadb106-server/Makefile index 55209c823032..b8a509d8421a 100644 --- a/databases/mariadb106-server/Makefile +++ b/databases/mariadb106-server/Makefile @@ -1,6 +1,6 @@ PORTNAME?= mariadb PORTVERSION= 10.6.22 -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= databases MASTER_SITES= https://mirror.nodesdirect.com/${SITESDIR}/ \ https://mirror.one.com/${SITESDIR}/ \ diff --git a/databases/mariadb114-server/Makefile b/databases/mariadb114-server/Makefile index 5e58466692c5..b55d9d26bf1a 100644 --- a/databases/mariadb114-server/Makefile +++ b/databases/mariadb114-server/Makefile @@ -1,6 +1,6 @@ PORTNAME?= mariadb PORTVERSION= 11.4.7 -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= databases MASTER_SITES= https://mirror.nodesdirect.com/${SITESDIR}/ \ https://mirror.one.com/${SITESDIR}/ \ diff --git a/databases/mariadb118-server/Makefile b/databases/mariadb118-server/Makefile index 5f56cd090ed2..3ee447a4114b 100644 --- a/databases/mariadb118-server/Makefile +++ b/databases/mariadb118-server/Makefile @@ -1,6 +1,6 @@ PORTNAME?= mariadb PORTVERSION= 11.8.2 -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= databases MASTER_SITES= https://mirror.nodesdirect.com/${SITESDIR}/ \ https://mirror.one.com/${SITESDIR}/ \ diff --git a/databases/mydumper/Makefile b/databases/mydumper/Makefile index 77a9a85d2dce..aa39a3a3a86f 100644 --- a/databases/mydumper/Makefile +++ b/databases/mydumper/Makefile @@ -1,6 +1,6 @@ PORTNAME= mydumper DISTVERSIONPREFIX= v -DISTVERSION= 0.19.3-1 +DISTVERSION= 0.19.4-2 CATEGORIES= databases MAINTAINER= sunpoet@FreeBSD.org diff --git a/databases/mydumper/distinfo b/databases/mydumper/distinfo index 3d7748e4880c..8fc2984f3763 100644 --- a/databases/mydumper/distinfo +++ b/databases/mydumper/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1750188002 -SHA256 (mydumper-mydumper-v0.19.3-1_GH0.tar.gz) = e78c2b02b33d5d1092c4782e4841bbba5c0531b024b63038524a3ab25606e2fa -SIZE (mydumper-mydumper-v0.19.3-1_GH0.tar.gz) = 842877 +TIMESTAMP = 1751208120 +SHA256 (mydumper-mydumper-v0.19.4-2_GH0.tar.gz) = b5213e44a755127196a40916484e37d18dfbe304aaac50ec17f9f6aba8d0968e +SIZE (mydumper-mydumper-v0.19.4-2_GH0.tar.gz) = 843293 diff --git a/databases/pgadmin3/Makefile b/databases/pgadmin3/Makefile index 38f6b6177f11..db605f28de27 100644 --- a/databases/pgadmin3/Makefile +++ b/databases/pgadmin3/Makefile @@ -1,5 +1,6 @@ PORTNAME= pgadmin3 DISTVERSION= 1.23.0.20230324 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= vvd@FreeBSD.org diff --git a/databases/pgbackrest/Makefile b/databases/pgbackrest/Makefile index 1a8feab6df19..9c2c3bbbfbcd 100644 --- a/databases/pgbackrest/Makefile +++ b/databases/pgbackrest/Makefile @@ -1,6 +1,7 @@ PORTNAME= pgbackrest DISTVERSIONPREFIX= release/ DISTVERSION= 2.55.1 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= schoutm@gmail.com diff --git a/databases/pgmodeler/Makefile b/databases/pgmodeler/Makefile index ada30cfa48d3..240d7c91adf0 100644 --- a/databases/pgmodeler/Makefile +++ b/databases/pgmodeler/Makefile @@ -1,5 +1,6 @@ PORTNAME= pgmodeler PORTVERSION= 1.1.6 +PORTREVISION= 1 DISTVERSIONPREFIX= v CATEGORIES= databases diff --git a/databases/php85-dba/Makefile b/databases/php85-dba/Makefile new file mode 100644 index 000000000000..764ffd7c7936 --- /dev/null +++ b/databases/php85-dba/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -dba + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-dba/files/patch-config.m4 b/databases/php85-dba/files/patch-config.m4 new file mode 100644 index 000000000000..7449b1a88029 --- /dev/null +++ b/databases/php85-dba/files/patch-config.m4 @@ -0,0 +1,25 @@ +--- config.m4.orig 2024-09-10 16:10:06 UTC ++++ config.m4 +@@ -433,6 +433,14 @@ if test "$PHP_DB4" != "no"; then + THIS_PREFIX=$i + THIS_INCLUDE=$i/include/db5.3/db.h + break ++ elif test -f "$i/include/db5/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db5/db.h ++ break ++ elif test -f "$i/include/db18/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db18/db.h ++ break + elif test -f "$i/include/db5.1/db.h"; then + THIS_PREFIX=$i + THIS_INCLUDE=$i/include/db5.1/db.h +@@ -480,6 +488,7 @@ if test "$PHP_DB4" != "no"; then + db-5.3 + db-5.1 + db-5.0 ++ db-5 + db-4.8 + db-4.7 + db-4.6 diff --git a/databases/php85-mysqli/Makefile b/databases/php85-mysqli/Makefile new file mode 100644 index 000000000000..77bd1f7f8a5d --- /dev/null +++ b/databases/php85-mysqli/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -mysqli + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-odbc/Makefile b/databases/php85-odbc/Makefile new file mode 100644 index 000000000000..415b461599c9 --- /dev/null +++ b/databases/php85-odbc/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -odbc + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-odbc/files/patch-config.m4 b/databases/php85-odbc/files/patch-config.m4 new file mode 100644 index 000000000000..55e3fb3aea0c --- /dev/null +++ b/databases/php85-odbc/files/patch-config.m4 @@ -0,0 +1,92 @@ +--- config.m4.orig 2024-09-10 16:10:06 UTC ++++ config.m4 +@@ -117,7 +117,7 @@ PHP_ARG_WITH([adabas], + PHP_ARG_WITH([adabas], + [for Adabas support], + [AS_HELP_STRING([[--with-adabas[=DIR]]], +- [Include Adabas D support [/usr/local]])]) ++ [Include Adabas D support [/usr/local]])], [no], [no]) + + AS_VAR_IF([PHP_ADABAS], [no], [], [ + AS_VAR_IF([PHP_ADABAS], [yes], [PHP_ADABAS=/usr/local]) +@@ -143,7 +143,7 @@ PHP_ARG_WITH([sapdb], + PHP_ARG_WITH([sapdb], + [for SAP DB support], + [AS_HELP_STRING([[--with-sapdb[=DIR]]], +- [Include SAP DB support [/usr/local]])]) ++ [Include SAP DB support [/usr/local]])], [no], [no]) + + AS_VAR_IF([PHP_SAPDB], [no], [], [ + AS_VAR_IF([PHP_SAPDB], [yes], [PHP_SAPDB=/usr/local]) +@@ -160,7 +160,7 @@ PHP_ARG_WITH([solid], + PHP_ARG_WITH([solid], + [for Solid support], + [AS_HELP_STRING([[--with-solid[=DIR]]], +- [Include Solid support [/usr/local/solid]])]) ++ [Include Solid support [/usr/local/solid]])], [no], [no]) + + AS_VAR_IF([PHP_SOLID], [no], [], [ + AS_VAR_IF([PHP_SOLID], [yes], [PHP_SOLID=/usr/local/solid]) +@@ -184,7 +184,7 @@ PHP_ARG_WITH([ibm-db2], + PHP_ARG_WITH([ibm-db2], + [for IBM DB2 support], + [AS_HELP_STRING([[--with-ibm-db2[=DIR]]], +- [Include IBM DB2 support [/home/db2inst1/sqllib]])]) ++ [Include IBM DB2 support [/home/db2inst1/sqllib]])], [no], [no]) + + AS_VAR_IF([PHP_IBM_DB2], [no], [], [ + AS_VAR_IF([PHP_IBM_DB2], [yes], [ +@@ -222,7 +222,7 @@ PHP_ARG_WITH([empress], + [for Empress support], + [AS_HELP_STRING([[--with-empress[=DIR]]], + [Include Empress support $EMPRESSPATH (Empress Version >= 8.60 +- required)])]) ++ required)])], [no], [no]) + + AS_VAR_IF([PHP_EMPRESS], [no], [], [ + AS_VAR_IF([PHP_EMPRESS], [yes], [ +@@ -246,7 +246,7 @@ PHP_ARG_WITH([empress-bcs], + [for Empress local access support], + [AS_HELP_STRING([[--with-empress-bcs[=DIR]]], + [Include Empress Local Access support $EMPRESSPATH (Empress Version >= +- 8.60 required)])]) ++ 8.60 required)])], [no], [no]) + + AS_VAR_IF([PHP_EMPRESS_BCS], [no], [], [ + AS_VAR_IF([PHP_EMPRESS_BCS], [yes], [ +@@ -290,7 +290,7 @@ PHP_ARG_WITH([custom-odbc], + your include dirs. For example, you should define following for Sybase SQL + Anywhere 5.5.00 on QNX, prior to running this configure script: + CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix +- CUSTOM_ODBC_LIBS="-ldblib -lodbc"])]) ++ CUSTOM_ODBC_LIBS="-ldblib -lodbc"])], [no], [no]) + + AS_VAR_IF([PHP_CUSTOM_ODBC], [no], [], [ + AS_VAR_IF([PHP_CUSTOM_ODBC], [yes], [PHP_CUSTOM_ODBC=/usr/local]) +@@ -309,7 +309,7 @@ PHP_ARG_WITH([iodbc], + PHP_ARG_WITH([iodbc], + [whether to build with iODBC support], + [AS_HELP_STRING([--with-iodbc], +- [Include iODBC support])]) ++ [Include iODBC support])], [no], [no]) + + AS_VAR_IF([PHP_IODBC], [no], [], [ + PKG_CHECK_MODULES([ODBC], [libiodbc]) +@@ -324,7 +324,7 @@ PHP_ARG_WITH([esoob], + PHP_ARG_WITH([esoob], + [for Easysoft ODBC-ODBC Bridge support], + [AS_HELP_STRING([[--with-esoob[=DIR]]], +- [Include Easysoft OOB support [/usr/local/easysoft/oob/client]])]) ++ [Include Easysoft OOB support [/usr/local/easysoft/oob/client]])], [no], [no]) + + AS_VAR_IF([PHP_ESOOB], [no], [], [ + AS_VAR_IF([PHP_ESOOB], [yes], [PHP_ESOOB=/usr/local/easysoft/oob/client]) +@@ -371,7 +371,7 @@ PHP_ARG_WITH([dbmaker], + PHP_ARG_WITH([dbmaker], + [for DBMaker support], + [AS_HELP_STRING([[--with-dbmaker[=DIR]]], +- [Include DBMaker support])]) ++ [Include DBMaker support])], [no], [no]) + + AS_VAR_IF([PHP_DBMAKER], [no], [], [ + AS_VAR_IF([PHP_DBMAKER], [yes], [ diff --git a/databases/php85-pdo/Makefile b/databases/php85-pdo/Makefile new file mode 100644 index 000000000000..82a9d79b6e9d --- /dev/null +++ b/databases/php85-pdo/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo/files/patch-pdo__sql__parser.c b/databases/php85-pdo/files/patch-pdo__sql__parser.c new file mode 100644 index 000000000000..191eea16a3bd --- /dev/null +++ b/databases/php85-pdo/files/patch-pdo__sql__parser.c @@ -0,0 +1,729 @@ +--- pdo_sql_parser.c.orig 2025-07-02 12:59:51 UTC ++++ pdo_sql_parser.c +@@ -0,0 +1,726 @@ ++/* Generated by re2c 3.1 */ ++/* ++ +----------------------------------------------------------------------+ ++ | Copyright (c) The PHP Group | ++ +----------------------------------------------------------------------+ ++ | This source file is subject to version 3.01 of the PHP license, | ++ | that is bundled with this package in the file LICENSE, and is | ++ | available through the world-wide-web at the following url: | ++ | https://www.php.net/license/3_01.txt | ++ | If you did not receive a copy of the PHP license and are unable to | ++ | obtain it through the world-wide-web, please send a note to | ++ | license@php.net so we can mail you a copy immediately. | ++ +----------------------------------------------------------------------+ ++ | Author: George Schlossnagle <george@omniti.com> | ++ +----------------------------------------------------------------------+ ++*/ ++ ++#include "php.h" ++#include "php_pdo_driver.h" ++#include "pdo_sql_parser.h" ++ ++static int default_scanner(pdo_scanner_t *s) ++{ ++ const char *cursor = s->cur; ++ ++ s->tok = cursor; ++ ++ ++ ++{ ++ YYCTYPE yych; ++ unsigned int yyaccept = 0; ++ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy4; ++ case '\'': goto yy6; ++ case '-': goto yy7; ++ case '/': goto yy8; ++ case ':': goto yy9; ++ case '?': goto yy10; ++ default: goto yy2; ++ } ++yy1: ++ YYCURSOR = YYMARKER; ++ switch (yyaccept) { ++ case 0: goto yy5; ++ case 1: goto yy15; ++ default: goto yy19; ++ } ++yy2: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ case '"': ++ case '\'': ++ case '-': ++ case '/': ++ case ':': ++ case '?': goto yy3; ++ default: goto yy2; ++ } ++yy3: ++ { RET(PDO_PARSER_TEXT); } ++yy4: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych >= 0x01) goto yy13; ++yy5: ++ { SKIP_ONE(PDO_PARSER_TEXT); } ++yy6: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy17; ++yy7: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '-': goto yy20; ++ default: goto yy5; ++ } ++yy8: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '*': goto yy22; ++ default: goto yy5; ++ } ++yy9: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case 'A': ++ case 'B': ++ case 'C': ++ case 'D': ++ case 'E': ++ case 'F': ++ case 'G': ++ case 'H': ++ case 'I': ++ case 'J': ++ case 'K': ++ case 'L': ++ case 'M': ++ case 'N': ++ case 'O': ++ case 'P': ++ case 'Q': ++ case 'R': ++ case 'S': ++ case 'T': ++ case 'U': ++ case 'V': ++ case 'W': ++ case 'X': ++ case 'Y': ++ case 'Z': ++ case '_': ++ case 'a': ++ case 'b': ++ case 'c': ++ case 'd': ++ case 'e': ++ case 'f': ++ case 'g': ++ case 'h': ++ case 'i': ++ case 'j': ++ case 'k': ++ case 'l': ++ case 'm': ++ case 'n': ++ case 'o': ++ case 'p': ++ case 'q': ++ case 'r': ++ case 's': ++ case 't': ++ case 'u': ++ case 'v': ++ case 'w': ++ case 'x': ++ case 'y': ++ case 'z': goto yy23; ++ case ':': goto yy25; ++ default: goto yy5; ++ } ++yy10: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '?': goto yy27; ++ default: goto yy11; ++ } ++yy11: ++ { RET(PDO_PARSER_BIND_POS); } ++yy12: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy13: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy14; ++ default: goto yy12; ++ } ++yy14: ++ yyaccept = 1; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '"': goto yy12; ++ default: goto yy15; ++ } ++yy15: ++ { RET(PDO_PARSER_TEXT); } ++yy16: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy17: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy18; ++ default: goto yy16; ++ } ++yy18: ++ yyaccept = 2; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\'': goto yy16; ++ default: goto yy19; ++ } ++yy19: ++ { RET(PDO_PARSER_TEXT); } ++yy20: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy21; ++ default: goto yy20; ++ } ++yy21: ++ { RET(PDO_PARSER_TEXT); } ++yy22: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy28; ++ default: goto yy22; ++ } ++yy23: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case 'A': ++ case 'B': ++ case 'C': ++ case 'D': ++ case 'E': ++ case 'F': ++ case 'G': ++ case 'H': ++ case 'I': ++ case 'J': ++ case 'K': ++ case 'L': ++ case 'M': ++ case 'N': ++ case 'O': ++ case 'P': ++ case 'Q': ++ case 'R': ++ case 'S': ++ case 'T': ++ case 'U': ++ case 'V': ++ case 'W': ++ case 'X': ++ case 'Y': ++ case 'Z': ++ case '_': ++ case 'a': ++ case 'b': ++ case 'c': ++ case 'd': ++ case 'e': ++ case 'f': ++ case 'g': ++ case 'h': ++ case 'i': ++ case 'j': ++ case 'k': ++ case 'l': ++ case 'm': ++ case 'n': ++ case 'o': ++ case 'p': ++ case 'q': ++ case 'r': ++ case 's': ++ case 't': ++ case 'u': ++ case 'v': ++ case 'w': ++ case 'x': ++ case 'y': ++ case 'z': goto yy23; ++ default: goto yy24; ++ } ++yy24: ++ { RET(PDO_PARSER_BIND); } ++yy25: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case ':': goto yy25; ++ default: goto yy26; ++ } ++yy26: ++ { RET(PDO_PARSER_TEXT); } ++yy27: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '?': goto yy27; ++ default: goto yy26; ++ } ++yy28: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy28; ++ case '/': goto yy29; ++ default: goto yy22; ++ } ++yy29: ++ ++YYCURSOR; ++ goto yy21; ++} ++ ++} ++ ++struct placeholder { ++ const char *pos; ++ size_t len; ++ zend_string *quoted; /* quoted value */ ++ int bindno; ++ struct placeholder *next; ++}; ++ ++struct custom_quote { ++ const char *pos; ++ size_t len; ++}; ++ ++static void free_param_name(zval *el) { ++ zend_string_release(Z_PTR_P(el)); ++} ++ ++PDO_API int pdo_parse_params(pdo_stmt_t *stmt, zend_string *inquery, zend_string **outquery) ++{ ++ pdo_scanner_t s; ++ char *newbuffer; ++ ptrdiff_t t; ++ uint32_t bindno = 0; ++ int ret = 0, escapes = 0; ++ size_t newbuffer_len; ++ HashTable *params; ++ struct pdo_bound_param_data *param; ++ int query_type = PDO_PLACEHOLDER_NONE; ++ struct placeholder *placeholders = NULL, *placetail = NULL, *plc = NULL; ++ int (*scan)(pdo_scanner_t *s); ++ struct custom_quote custom_quote = {NULL, 0}; ++ ++ scan = stmt->dbh->methods->scanner ? stmt->dbh->methods->scanner : default_scanner; ++ ++ s.cur = ZSTR_VAL(inquery); ++ s.end = s.cur + ZSTR_LEN(inquery) + 1; ++ ++ /* phase 1: look for args */ ++ while((t = scan(&s)) != PDO_PARSER_EOI) { ++ if (custom_quote.pos) { ++ /* Inside a custom quote */ ++ if (t == PDO_PARSER_CUSTOM_QUOTE && custom_quote.len == s.cur - s.tok && !strncmp(s.tok, custom_quote.pos, custom_quote.len)) { ++ /* Matching closing quote found, end custom quoting */ ++ custom_quote.pos = NULL; ++ custom_quote.len = 0; ++ } else if (t == PDO_PARSER_ESCAPED_QUESTION) { ++ /* An escaped question mark has been used inside a dollar quoted string, most likely as a workaround ++ * as a single "?" would have been parsed as placeholder, due to the lack of support for dollar quoted ++ * strings. For now, we emit a deprecation notice, but still process it */ ++ php_error_docref(NULL, E_DEPRECATED, "Escaping question marks inside dollar quoted strings is not required anymore and is deprecated"); ++ ++ goto placeholder; ++ } ++ ++ continue; ++ } ++ ++ if (t == PDO_PARSER_CUSTOM_QUOTE) { ++ /* Start of a custom quote, keep a reference to search for the matching closing quote */ ++ custom_quote.pos = s.tok; ++ custom_quote.len = s.cur - s.tok; ++ ++ continue; ++ } ++ ++ if (t == PDO_PARSER_BIND || t == PDO_PARSER_BIND_POS || t == PDO_PARSER_ESCAPED_QUESTION) { ++ if (t == PDO_PARSER_ESCAPED_QUESTION && stmt->supports_placeholders == PDO_PLACEHOLDER_POSITIONAL) { ++ /* escaped question marks unsupported, treat as text */ ++ continue; ++ } ++ ++ if (t == PDO_PARSER_BIND) { ++ ptrdiff_t len = s.cur - s.tok; ++ if ((ZSTR_VAL(inquery) < (s.cur - len)) && isalnum(*(s.cur - len - 1))) { ++ continue; ++ } ++ query_type |= PDO_PLACEHOLDER_NAMED; ++ } else if (t == PDO_PARSER_BIND_POS) { ++ query_type |= PDO_PLACEHOLDER_POSITIONAL; ++ } ++ ++placeholder: ++ plc = emalloc(sizeof(*plc)); ++ memset(plc, 0, sizeof(*plc)); ++ plc->next = NULL; ++ plc->pos = s.tok; ++ plc->len = s.cur - s.tok; ++ ++ if (t == PDO_PARSER_ESCAPED_QUESTION) { ++ plc->bindno = PDO_PARSER_BINDNO_ESCAPED_CHAR; ++ plc->quoted = ZSTR_CHAR('?'); ++ escapes++; ++ } else { ++ plc->bindno = bindno++; ++ } ++ ++ if (placetail) { ++ placetail->next = plc; ++ } else { ++ placeholders = plc; ++ } ++ placetail = plc; ++ } ++ } ++ ++ /* did the query make sense to me? */ ++ if (query_type == (PDO_PLACEHOLDER_NAMED|PDO_PLACEHOLDER_POSITIONAL)) { ++ /* they mixed both types; punt */ ++ pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "mixed named and positional parameters"); ++ ret = -1; ++ goto clean_up; ++ } ++ ++ params = stmt->bound_params; ++ if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE && params && bindno != zend_hash_num_elements(params)) { ++ /* extra bit of validation for instances when same params are bound more than once */ ++ if (query_type != PDO_PLACEHOLDER_POSITIONAL && bindno > zend_hash_num_elements(params)) { ++ int ok = 1; ++ for (plc = placeholders; plc; plc = plc->next) { ++ if ((param = zend_hash_str_find_ptr(params, plc->pos, plc->len)) == NULL) { ++ ok = 0; ++ break; ++ } ++ } ++ if (ok) { ++ goto safe; ++ } ++ } ++ pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "number of bound variables does not match number of tokens"); ++ ret = -1; ++ goto clean_up; ++ } ++ ++ if (!placeholders) { ++ /* nothing to do; good! */ ++ return 0; ++ } ++ ++ if (stmt->supports_placeholders == query_type && !stmt->named_rewrite_template) { ++ /* query matches native syntax */ ++ if (escapes) { ++ newbuffer_len = ZSTR_LEN(inquery); ++ goto rewrite; ++ } ++ ++ ret = 0; ++ goto clean_up; ++ } ++ ++ if (query_type == PDO_PLACEHOLDER_NAMED && stmt->named_rewrite_template) { ++ /* magic/hack. ++ * We we pretend that the query was positional even if ++ * it was named so that we fall into the ++ * named rewrite case below. Not too pretty, ++ * but it works. */ ++ query_type = PDO_PLACEHOLDER_POSITIONAL; ++ } ++ ++safe: ++ /* what are we going to do ? */ ++ if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) { ++ /* query generation */ ++ ++ newbuffer_len = ZSTR_LEN(inquery); ++ ++ /* let's quote all the values */ ++ for (plc = placeholders; plc && params; plc = plc->next) { ++ if (plc->bindno == PDO_PARSER_BINDNO_ESCAPED_CHAR) { ++ /* escaped character */ ++ continue; ++ } ++ ++ if (query_type == PDO_PLACEHOLDER_NONE) { ++ continue; ++ } ++ ++ if (query_type == PDO_PLACEHOLDER_POSITIONAL) { ++ param = zend_hash_index_find_ptr(params, plc->bindno); ++ } else { ++ param = zend_hash_str_find_ptr(params, plc->pos, plc->len); ++ } ++ if (param == NULL) { ++ /* parameter was not defined */ ++ ret = -1; ++ pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "parameter was not defined"); ++ goto clean_up; ++ } ++ if (stmt->dbh->methods->quoter) { ++ zval *parameter; ++ if (Z_ISREF(param->parameter)) { ++ parameter = Z_REFVAL(param->parameter); ++ } else { ++ parameter = ¶m->parameter; ++ } ++ if (param->param_type == PDO_PARAM_LOB && Z_TYPE_P(parameter) == IS_RESOURCE) { ++ php_stream *stm; ++ ++ php_stream_from_zval_no_verify(stm, parameter); ++ if (stm) { ++ zend_string *buf; ++ ++ buf = php_stream_copy_to_mem(stm, PHP_STREAM_COPY_ALL, 0); ++ if (!buf) { ++ buf = ZSTR_EMPTY_ALLOC(); ++ } ++ ++ plc->quoted = stmt->dbh->methods->quoter(stmt->dbh, buf, param->param_type); ++ ++ if (buf) { ++ zend_string_release_ex(buf, 0); ++ } ++ if (plc->quoted == NULL) { ++ /* bork */ ++ ret = -1; ++ strncpy(stmt->error_code, stmt->dbh->error_code, 6); ++ goto clean_up; ++ } ++ ++ } else { ++ pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource"); ++ ret = -1; ++ goto clean_up; ++ } ++ } else { ++ enum pdo_param_type param_type = param->param_type; ++ zend_string *buf = NULL; ++ ++ /* assume all types are nullable */ ++ if (Z_TYPE_P(parameter) == IS_NULL) { ++ param_type = PDO_PARAM_NULL; ++ } ++ ++ switch (param_type) { ++ case PDO_PARAM_BOOL: ++ plc->quoted = zend_is_true(parameter) ? ZSTR_CHAR('1') : ZSTR_CHAR('0'); ++ break; ++ ++ case PDO_PARAM_INT: ++ plc->quoted = zend_long_to_str(zval_get_long(parameter)); ++ break; ++ ++ case PDO_PARAM_NULL: ++ plc->quoted = ZSTR_KNOWN(ZEND_STR_NULL); ++ break; ++ ++ default: { ++ buf = zval_try_get_string(parameter); ++ /* parameter does not have a string representation, buf == NULL */ ++ if (EG(exception)) { ++ /* bork */ ++ ret = -1; ++ strncpy(stmt->error_code, stmt->dbh->error_code, 6); ++ goto clean_up; ++ } ++ ++ plc->quoted = stmt->dbh->methods->quoter(stmt->dbh, buf, param_type); ++ } ++ } ++ ++ if (buf) { ++ zend_string_release_ex(buf, 0); ++ } ++ } ++ } else { ++ zval *parameter; ++ if (Z_ISREF(param->parameter)) { ++ parameter = Z_REFVAL(param->parameter); ++ } else { ++ parameter = ¶m->parameter; ++ } ++ plc->quoted = zend_string_copy(Z_STR_P(parameter)); ++ } ++ newbuffer_len += ZSTR_LEN(plc->quoted); ++ } ++ ++rewrite: ++ /* allocate output buffer */ ++ *outquery = zend_string_alloc(newbuffer_len, 0); ++ newbuffer = ZSTR_VAL(*outquery); ++ ++ /* and build the query */ ++ const char *ptr = ZSTR_VAL(inquery); ++ plc = placeholders; ++ ++ do { ++ t = plc->pos - ptr; ++ if (t) { ++ memcpy(newbuffer, ptr, t); ++ newbuffer += t; ++ } ++ if (plc->quoted) { ++ memcpy(newbuffer, ZSTR_VAL(plc->quoted), ZSTR_LEN(plc->quoted)); ++ newbuffer += ZSTR_LEN(plc->quoted); ++ } else { ++ memcpy(newbuffer, plc->pos, plc->len); ++ newbuffer += plc->len; ++ } ++ ptr = plc->pos + plc->len; ++ ++ plc = plc->next; ++ } while (plc); ++ ++ t = ZSTR_VAL(inquery) + ZSTR_LEN(inquery) - ptr; ++ if (t) { ++ memcpy(newbuffer, ptr, t); ++ newbuffer += t; ++ } ++ *newbuffer = '\0'; ++ ZSTR_LEN(*outquery) = newbuffer - ZSTR_VAL(*outquery); ++ ++ ret = 1; ++ goto clean_up; ++ ++ } else if (query_type == PDO_PLACEHOLDER_POSITIONAL) { ++ /* rewrite ? to :pdoX */ ++ const char *tmpl = stmt->named_rewrite_template ? stmt->named_rewrite_template : ":pdo%d"; ++ int bind_no = 1; ++ ++ newbuffer_len = ZSTR_LEN(inquery); ++ ++ if (stmt->bound_param_map == NULL) { ++ ALLOC_HASHTABLE(stmt->bound_param_map); ++ zend_hash_init(stmt->bound_param_map, 13, NULL, free_param_name, 0); ++ } ++ ++ for (plc = placeholders; plc; plc = plc->next) { ++ int skip_map = 0; ++ zend_string *p; ++ zend_string *idxbuf; ++ ++ if (plc->bindno == PDO_PARSER_BINDNO_ESCAPED_CHAR) { ++ continue; ++ } ++ ++ zend_string *name = zend_string_init(plc->pos, plc->len, 0); ++ ++ /* check if bound parameter is already available */ ++ if (zend_string_equals_literal(name, "?") || (p = zend_hash_find_ptr(stmt->bound_param_map, name)) == NULL) { ++ idxbuf = zend_strpprintf(0, tmpl, bind_no++); ++ } else { ++ idxbuf = zend_string_copy(p); ++ skip_map = 1; ++ } ++ ++ plc->quoted = idxbuf; ++ newbuffer_len += ZSTR_LEN(plc->quoted); ++ ++ if (!skip_map && stmt->named_rewrite_template) { ++ /* create a mapping */ ++ zend_hash_update_ptr(stmt->bound_param_map, name, zend_string_copy(plc->quoted)); ++ } ++ ++ /* map number to name */ ++ zend_hash_index_update_ptr(stmt->bound_param_map, plc->bindno, zend_string_copy(plc->quoted)); ++ ++ zend_string_release(name); ++ } ++ ++ goto rewrite; ++ ++ } else { ++ /* rewrite :name to ? */ ++ ++ newbuffer_len = ZSTR_LEN(inquery); ++ ++ if (stmt->bound_param_map == NULL) { ++ ALLOC_HASHTABLE(stmt->bound_param_map); ++ zend_hash_init(stmt->bound_param_map, 13, NULL, free_param_name, 0); ++ } ++ ++ for (plc = placeholders; plc; plc = plc->next) { ++ zend_string *name = zend_string_init(plc->pos, plc->len, 0); ++ zend_hash_index_update_ptr(stmt->bound_param_map, plc->bindno, name); ++ plc->quoted = ZSTR_CHAR('?'); ++ newbuffer_len -= plc->len - 1; ++ } ++ ++ goto rewrite; ++ } ++ ++clean_up: ++ ++ while (placeholders) { ++ plc = placeholders; ++ placeholders = plc->next; ++ if (plc->quoted) { ++ zend_string_release_ex(plc->quoted, 0); ++ } ++ efree(plc); ++ } ++ ++ return ret; ++} diff --git a/databases/php85-pdo_dblib/Makefile b/databases/php85-pdo_dblib/Makefile new file mode 100644 index 000000000000..1861a409bc3c --- /dev/null +++ b/databases/php85-pdo_dblib/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_dblib + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_firebird/Makefile b/databases/php85-pdo_firebird/Makefile new file mode 100644 index 000000000000..2f22894505f4 --- /dev/null +++ b/databases/php85-pdo_firebird/Makefile @@ -0,0 +1,9 @@ +CATEGORIES= databases + +PORTREVISION= 0 + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_firebird + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_mysql/Makefile b/databases/php85-pdo_mysql/Makefile new file mode 100644 index 000000000000..c61de9bbc13d --- /dev/null +++ b/databases/php85-pdo_mysql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_mysql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c b/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c new file mode 100644 index 000000000000..9a6c3b11bb6e --- /dev/null +++ b/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c @@ -0,0 +1,398 @@ +--- mysql_sql_parser.c.orig 2025-07-02 13:18:02 UTC ++++ mysql_sql_parser.c +@@ -0,0 +1,395 @@ ++/* Generated by re2c 3.1 */ ++/* ++ +----------------------------------------------------------------------+ ++ | Copyright (c) The PHP Group | ++ +----------------------------------------------------------------------+ ++ | This source file is subject to version 3.01 of the PHP license, | ++ | that is bundled with this package in the file LICENSE, and is | ++ | available through the world-wide-web at the following url: | ++ | https://www.php.net/license/3_01.txt | ++ | If you did not receive a copy of the PHP license and are unable to | ++ | obtain it through the world-wide-web, please send a note to | ++ | license@php.net so we can mail you a copy immediately. | ++ +----------------------------------------------------------------------+ ++ | Author: Matteo Beccati <mbeccati@php.net> | ++ +----------------------------------------------------------------------+ ++*/ ++ ++ ++#include "php.h" ++#include "ext/pdo/php_pdo_driver.h" ++#include "ext/pdo/pdo_sql_parser.h" ++ ++int pdo_mysql_scanner(pdo_scanner_t *s) ++{ ++ const char *cursor = s->cur; ++ ++ s->tok = cursor; ++ ++ ++ ++{ ++ YYCTYPE yych; ++ unsigned int yyaccept = 0; ++ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy4; ++ case '#': goto yy6; ++ case '\'': goto yy7; ++ case '-': goto yy8; ++ case '/': goto yy9; ++ case ':': goto yy10; ++ case '?': goto yy11; ++ case '`': goto yy13; ++ default: goto yy2; ++ } ++yy1: ++ YYCURSOR = YYMARKER; ++ switch (yyaccept) { ++ case 0: goto yy5; ++ case 1: goto yy17; ++ case 2: goto yy24; ++ default: goto yy36; ++ } ++yy2: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ case '"': ++ case '#': ++ case '\'': ++ case '-': ++ case '/': ++ case ':': ++ case '?': ++ case '`': goto yy3; ++ default: goto yy2; ++ } ++yy3: ++ { RET(PDO_PARSER_TEXT); } ++yy4: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych >= 0x01) goto yy15; ++yy5: ++ { SKIP_ONE(PDO_PARSER_TEXT); } ++yy6: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy5; ++ default: goto yy19; ++ } ++yy7: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy22; ++yy8: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ switch (yych) { ++ case '-': goto yy26; ++ default: goto yy5; ++ } ++yy9: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '*': goto yy27; ++ default: goto yy5; ++ } ++yy10: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case 'A': ++ case 'B': ++ case 'C': ++ case 'D': ++ case 'E': ++ case 'F': ++ case 'G': ++ case 'H': ++ case 'I': ++ case 'J': ++ case 'K': ++ case 'L': ++ case 'M': ++ case 'N': ++ case 'O': ++ case 'P': ++ case 'Q': ++ case 'R': ++ case 'S': ++ case 'T': ++ case 'U': ++ case 'V': ++ case 'W': ++ case 'X': ++ case 'Y': ++ case 'Z': ++ case '_': ++ case 'a': ++ case 'b': ++ case 'c': ++ case 'd': ++ case 'e': ++ case 'f': ++ case 'g': ++ case 'h': ++ case 'i': ++ case 'j': ++ case 'k': ++ case 'l': ++ case 'm': ++ case 'n': ++ case 'o': ++ case 'p': ++ case 'q': ++ case 'r': ++ case 's': ++ case 't': ++ case 'u': ++ case 'v': ++ case 'w': ++ case 'x': ++ case 'y': ++ case 'z': goto yy28; ++ case ':': goto yy30; ++ default: goto yy5; ++ } ++yy11: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '?': goto yy32; ++ default: goto yy12; ++ } ++yy12: ++ { RET(PDO_PARSER_BIND_POS); } ++yy13: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy34; ++yy14: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy15: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy16; ++ case '\\': goto yy18; ++ default: goto yy14; ++ } ++yy16: ++ yyaccept = 1; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '"': goto yy14; ++ default: goto yy17; ++ } ++yy17: ++ { RET(PDO_PARSER_TEXT); } ++yy18: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ if (yych <= 0x00) goto yy1; ++ goto yy14; ++yy19: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy20; ++ default: goto yy19; ++ } ++yy20: ++ { RET(PDO_PARSER_TEXT); } ++yy21: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy22: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy23; ++ case '\\': goto yy25; ++ default: goto yy21; ++ } ++yy23: ++ yyaccept = 2; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\'': goto yy21; ++ default: goto yy24; ++ } ++yy24: ++ { RET(PDO_PARSER_TEXT); } ++yy25: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ if (yych <= 0x00) goto yy1; ++ goto yy21; ++yy26: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '\t': ++ case '\v': ++ case '\f': ++ case '\r': ++ case ' ': goto yy19; ++ default: goto yy1; ++ } ++yy27: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy37; ++ default: goto yy27; ++ } ++yy28: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case 'A': ++ case 'B': ++ case 'C': ++ case 'D': ++ case 'E': ++ case 'F': ++ case 'G': ++ case 'H': ++ case 'I': ++ case 'J': ++ case 'K': ++ case 'L': ++ case 'M': ++ case 'N': ++ case 'O': ++ case 'P': ++ case 'Q': ++ case 'R': ++ case 'S': ++ case 'T': ++ case 'U': ++ case 'V': ++ case 'W': ++ case 'X': ++ case 'Y': ++ case 'Z': ++ case '_': ++ case 'a': ++ case 'b': ++ case 'c': ++ case 'd': ++ case 'e': ++ case 'f': ++ case 'g': ++ case 'h': ++ case 'i': ++ case 'j': ++ case 'k': ++ case 'l': ++ case 'm': ++ case 'n': ++ case 'o': ++ case 'p': ++ case 'q': ++ case 'r': ++ case 's': ++ case 't': ++ case 'u': ++ case 'v': ++ case 'w': ++ case 'x': ++ case 'y': ++ case 'z': goto yy28; ++ default: goto yy29; ++ } ++yy29: ++ { RET(PDO_PARSER_BIND); } ++yy30: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case ':': goto yy30; ++ default: goto yy31; ++ } ++yy31: ++ { RET(PDO_PARSER_TEXT); } ++yy32: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '?': goto yy32; ++ default: goto yy31; ++ } ++yy33: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy34: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '`': goto yy35; ++ default: goto yy33; ++ } ++yy35: ++ yyaccept = 3; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '`': goto yy33; ++ default: goto yy36; ++ } ++yy36: ++ { RET(PDO_PARSER_TEXT); } ++yy37: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy37; ++ case '/': goto yy38; ++ default: goto yy27; ++ } ++yy38: ++ ++YYCURSOR; ++ goto yy20; ++} ++ ++} diff --git a/databases/php85-pdo_odbc/Makefile b/databases/php85-pdo_odbc/Makefile new file mode 100644 index 000000000000..41bf11b6e9b1 --- /dev/null +++ b/databases/php85-pdo_odbc/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_odbc + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_pgsql/Makefile b/databases/php85-pdo_pgsql/Makefile new file mode 100644 index 000000000000..5956ab7c84cf --- /dev/null +++ b/databases/php85-pdo_pgsql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_pgsql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c b/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c new file mode 100644 index 000000000000..e2f535ec545e --- /dev/null +++ b/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c @@ -0,0 +1,528 @@ +--- pgsql_sql_parser.c.orig 2025-07-02 13:28:41 UTC ++++ pgsql_sql_parser.c +@@ -0,0 +1,525 @@ ++/* Generated by re2c 3.1 */ ++/* ++ +----------------------------------------------------------------------+ ++ | Copyright (c) The PHP Group | ++ +----------------------------------------------------------------------+ ++ | This source file is subject to version 3.01 of the PHP license, | ++ | that is bundled with this package in the file LICENSE, and is | ++ | available through the world-wide-web at the following url: | ++ | https://www.php.net/license/3_01.txt | ++ | If you did not receive a copy of the PHP license and are unable to | ++ | obtain it through the world-wide-web, please send a note to | ++ | license@php.net so we can mail you a copy immediately. | ++ +----------------------------------------------------------------------+ ++ | Author: Matteo Beccati <mbeccati@php.net> | ++ +----------------------------------------------------------------------+ ++*/ ++ ++ ++#include "php.h" ++#include "ext/pdo/php_pdo_driver.h" ++#include "ext/pdo/pdo_sql_parser.h" ++ ++int pdo_pgsql_scanner(pdo_scanner_t *s) ++{ ++ const char *cursor = s->cur; ++ ++ s->tok = cursor; ++ ++ ++ ++{ ++ YYCTYPE yych; ++ unsigned int yyaccept = 0; ++ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy4; ++ case '$': goto yy6; ++ case '\'': goto yy7; ++ case '-': goto yy8; ++ case '/': goto yy9; ++ case ':': goto yy10; ++ case '?': goto yy11; ++ case 'E': ++ case 'e': goto yy13; ++ default: goto yy2; ++ } ++yy1: ++ YYCURSOR = YYMARKER; ++ switch (yyaccept) { ++ case 0: goto yy5; ++ case 1: goto yy17; ++ case 2: goto yy23; ++ default: goto yy35; ++ } ++yy2: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ case '"': ++ case '$': ++ case '\'': ++ case '-': ++ case '/': ++ case ':': ++ case '?': ++ case 'E': ++ case 'e': goto yy3; ++ default: goto yy2; ++ } ++yy3: ++ { RET(PDO_PARSER_TEXT); } ++yy4: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych >= 0x01) goto yy15; ++yy5: ++ { SKIP_ONE(PDO_PARSER_TEXT); } ++yy6: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ switch (yych) { ++ case 0x00: ++ case 0x01: ++ case 0x02: ++ case 0x03: ++ case 0x04: ++ case 0x05: ++ case 0x06: ++ case 0x07: ++ case 0x08: ++ case '\t': ++ case '\n': ++ case '\v': ++ case '\f': ++ case '\r': ++ case 0x0E: ++ case 0x0F: ++ case 0x10: ++ case 0x11: ++ case 0x12: ++ case 0x13: ++ case 0x14: ++ case 0x15: ++ case 0x16: ++ case 0x17: ++ case 0x18: ++ case 0x19: ++ case 0x1A: ++ case 0x1B: ++ case 0x1C: ++ case 0x1D: ++ case 0x1E: ++ case 0x1F: ++ case ' ': ++ case '!': ++ case '"': ++ case '#': ++ case '%': ++ case '&': ++ case '\'': ++ case '(': ++ case ')': ++ case '*': ++ case '+': ++ case ',': ++ case '-': ++ case '.': ++ case '/': ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case ':': ++ case ';': ++ case '<': ++ case '=': ++ case '>': ++ case '?': ++ case '@': ++ case '[': ++ case '\\': ++ case ']': ++ case '^': ++ case '`': ++ case '{': ++ case '|': ++ case '}': ++ case '~': ++ case 0x7F: goto yy5; ++ case '$': goto yy18; ++ default: goto yy19; ++ } ++yy7: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy21; ++yy8: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '-': goto yy24; ++ default: goto yy5; ++ } ++yy9: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '*': goto yy26; ++ default: goto yy5; ++ } ++yy10: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case 'A': ++ case 'B': ++ case 'C': ++ case 'D': ++ case 'E': ++ case 'F': ++ case 'G': ++ case 'H': ++ case 'I': ++ case 'J': ++ case 'K': ++ case 'L': ++ case 'M': ++ case 'N': ++ case 'O': ++ case 'P': ++ case 'Q': ++ case 'R': ++ case 'S': ++ case 'T': ++ case 'U': ++ case 'V': ++ case 'W': ++ case 'X': ++ case 'Y': ++ case 'Z': ++ case '_': ++ case 'a': ++ case 'b': ++ case 'c': ++ case 'd': ++ case 'e': ++ case 'f': ++ case 'g': ++ case 'h': ++ case 'i': ++ case 'j': ++ case 'k': ++ case 'l': ++ case 'm': ++ case 'n': ++ case 'o': ++ case 'p': ++ case 'q': ++ case 'r': ++ case 's': ++ case 't': ++ case 'u': ++ case 'v': ++ case 'w': ++ case 'x': ++ case 'y': ++ case 'z': goto yy27; ++ case ':': goto yy29; ++ default: goto yy5; ++ } ++yy11: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '?': goto yy31; ++ default: goto yy12; ++ } ++yy12: ++ { RET(PDO_PARSER_BIND_POS); } ++yy13: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ switch (yych) { ++ case '\'': goto yy32; ++ default: goto yy5; ++ } ++yy14: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy15: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy16; ++ default: goto yy14; ++ } ++yy16: ++ yyaccept = 1; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '"': goto yy14; ++ default: goto yy17; ++ } ++yy17: ++ { RET(PDO_PARSER_TEXT); } ++yy18: ++ ++YYCURSOR; ++ { RET(PDO_PARSER_CUSTOM_QUOTE); } ++yy19: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ case 0x01: ++ case 0x02: ++ case 0x03: ++ case 0x04: ++ case 0x05: ++ case 0x06: ++ case 0x07: ++ case 0x08: ++ case '\t': ++ case '\n': ++ case '\v': ++ case '\f': ++ case '\r': ++ case 0x0E: ++ case 0x0F: ++ case 0x10: ++ case 0x11: ++ case 0x12: ++ case 0x13: ++ case 0x14: ++ case 0x15: ++ case 0x16: ++ case 0x17: ++ case 0x18: ++ case 0x19: ++ case 0x1A: ++ case 0x1B: ++ case 0x1C: ++ case 0x1D: ++ case 0x1E: ++ case 0x1F: ++ case ' ': ++ case '!': ++ case '"': ++ case '#': ++ case '%': ++ case '&': ++ case '\'': ++ case '(': ++ case ')': ++ case '*': ++ case '+': ++ case ',': ++ case '-': ++ case '.': ++ case '/': ++ case ':': ++ case ';': ++ case '<': ++ case '=': ++ case '>': ++ case '?': ++ case '@': ++ case '[': ++ case '\\': ++ case ']': ++ case '^': ++ case '`': ++ case '{': ++ case '|': ++ case '}': ++ case '~': ++ case 0x7F: goto yy1; ++ case '$': goto yy18; ++ default: goto yy19; ++ } ++yy20: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy21: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy22; ++ default: goto yy20; ++ } ++yy22: ++ yyaccept = 2; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\'': goto yy20; ++ default: goto yy23; ++ } ++yy23: ++ { RET(PDO_PARSER_TEXT); } ++yy24: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy25; ++ default: goto yy24; ++ } ++yy25: ++ { RET(PDO_PARSER_TEXT); } ++yy26: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy33; ++ default: goto yy26; ++ } ++yy27: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case 'A': ++ case 'B': ++ case 'C': ++ case 'D': ++ case 'E': ++ case 'F': ++ case 'G': ++ case 'H': ++ case 'I': ++ case 'J': ++ case 'K': ++ case 'L': ++ case 'M': ++ case 'N': ++ case 'O': ++ case 'P': ++ case 'Q': ++ case 'R': ++ case 'S': ++ case 'T': ++ case 'U': ++ case 'V': ++ case 'W': ++ case 'X': ++ case 'Y': ++ case 'Z': ++ case '_': ++ case 'a': ++ case 'b': ++ case 'c': ++ case 'd': ++ case 'e': ++ case 'f': ++ case 'g': ++ case 'h': ++ case 'i': ++ case 'j': ++ case 'k': ++ case 'l': ++ case 'm': ++ case 'n': ++ case 'o': ++ case 'p': ++ case 'q': ++ case 'r': ++ case 's': ++ case 't': ++ case 'u': ++ case 'v': ++ case 'w': ++ case 'x': ++ case 'y': ++ case 'z': goto yy27; ++ default: goto yy28; ++ } ++yy28: ++ { RET(PDO_PARSER_BIND); } ++yy29: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case ':': goto yy29; ++ default: goto yy30; ++ } ++yy30: ++ { RET(PDO_PARSER_TEXT); } ++yy31: ++ ++YYCURSOR; ++ { RET(PDO_PARSER_ESCAPED_QUESTION); } ++yy32: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy34; ++ case '\\': goto yy36; ++ default: goto yy32; ++ } ++yy33: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy33; ++ case '/': goto yy37; ++ default: goto yy26; ++ } ++yy34: ++ yyaccept = 3; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\'': goto yy32; ++ default: goto yy35; ++ } ++yy35: ++ { RET(PDO_PARSER_TEXT); } ++yy36: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ if (yych <= 0x00) goto yy1; ++ goto yy32; ++yy37: ++ ++YYCURSOR; ++ goto yy25; ++} ++ ++} diff --git a/databases/php85-pdo_sqlite/Makefile b/databases/php85-pdo_sqlite/Makefile new file mode 100644 index 000000000000..c18fe80e2621 --- /dev/null +++ b/databases/php85-pdo_sqlite/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_sqlite + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c b/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c new file mode 100644 index 000000000000..5770c5cf3f7f --- /dev/null +++ b/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c @@ -0,0 +1,398 @@ +--- sqlite_sql_parser.c.orig 2025-07-02 13:27:28 UTC ++++ sqlite_sql_parser.c +@@ -0,0 +1,395 @@ ++/* Generated by re2c 3.1 */ ++/* ++ +----------------------------------------------------------------------+ ++ | Copyright (c) The PHP Group | ++ +----------------------------------------------------------------------+ ++ | This source file is subject to version 3.01 of the PHP license, | ++ | that is bundled with this package in the file LICENSE, and is | ++ | available through the world-wide-web at the following url: | ++ | https://www.php.net/license/3_01.txt | ++ | If you did not receive a copy of the PHP license and are unable to | ++ | obtain it through the world-wide-web, please send a note to | ++ | license@php.net so we can mail you a copy immediately. | ++ +----------------------------------------------------------------------+ ++ | Author: Matteo Beccati <mbeccati@php.net> | ++ +----------------------------------------------------------------------+ ++*/ ++ ++ ++#include "php.h" ++#include "ext/pdo/php_pdo_driver.h" ++#include "ext/pdo/pdo_sql_parser.h" ++ ++int pdo_sqlite_scanner(pdo_scanner_t *s) ++{ ++ const char *cursor = s->cur; ++ ++ s->tok = cursor; ++ ++ ++ ++{ ++ YYCTYPE yych; ++ unsigned int yyaccept = 0; ++ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy4; ++ case '\'': goto yy6; ++ case '-': goto yy7; ++ case '/': goto yy8; ++ case ':': goto yy9; ++ case '?': goto yy10; ++ case '[': goto yy12; ++ case '`': goto yy13; ++ default: goto yy2; ++ } ++yy1: ++ YYCURSOR = YYMARKER; ++ switch (yyaccept) { ++ case 0: goto yy5; ++ case 1: goto yy17; ++ case 2: goto yy21; ++ case 3: goto yy33; ++ default: goto yy37; ++ } ++yy2: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ case '"': ++ case '\'': ++ case '-': ++ case '/': ++ case ':': ++ case '?': ++ case '[': ++ case '`': goto yy3; ++ default: goto yy2; ++ } ++yy3: ++ { RET(PDO_PARSER_TEXT); } ++yy4: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych >= 0x01) goto yy15; ++yy5: ++ { SKIP_ONE(PDO_PARSER_TEXT); } ++yy6: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy19; ++yy7: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '-': goto yy22; ++ default: goto yy5; ++ } ++yy8: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '*': goto yy24; ++ default: goto yy5; ++ } ++yy9: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case 'A': ++ case 'B': ++ case 'C': ++ case 'D': ++ case 'E': ++ case 'F': ++ case 'G': ++ case 'H': ++ case 'I': ++ case 'J': ++ case 'K': ++ case 'L': ++ case 'M': ++ case 'N': ++ case 'O': ++ case 'P': ++ case 'Q': ++ case 'R': ++ case 'S': ++ case 'T': ++ case 'U': ++ case 'V': ++ case 'W': ++ case 'X': ++ case 'Y': ++ case 'Z': ++ case '_': ++ case 'a': ++ case 'b': ++ case 'c': ++ case 'd': ++ case 'e': ++ case 'f': ++ case 'g': ++ case 'h': ++ case 'i': ++ case 'j': ++ case 'k': ++ case 'l': ++ case 'm': ++ case 'n': ++ case 'o': ++ case 'p': ++ case 'q': ++ case 'r': ++ case 's': ++ case 't': ++ case 'u': ++ case 'v': ++ case 'w': ++ case 'x': ++ case 'y': ++ case 'z': goto yy25; ++ case ':': goto yy27; ++ default: goto yy5; ++ } ++yy10: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '?': goto yy29; ++ default: goto yy11; ++ } ++yy11: ++ { RET(PDO_PARSER_BIND_POS); } ++yy12: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy31; ++yy13: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy35; ++yy14: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy15: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy16; ++ default: goto yy14; ++ } ++yy16: ++ yyaccept = 1; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy17; ++ case '"': goto yy16; ++ default: goto yy14; ++ } ++yy17: ++ { RET(PDO_PARSER_TEXT); } ++yy18: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy19: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy20; ++ default: goto yy18; ++ } ++yy20: ++ yyaccept = 2; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy21; ++ case '\'': goto yy20; ++ default: goto yy18; ++ } ++yy21: ++ { RET(PDO_PARSER_TEXT); } ++yy22: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy23; ++ default: goto yy22; ++ } ++yy23: ++ { RET(PDO_PARSER_TEXT); } ++yy24: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy38; ++ default: goto yy24; ++ } ++yy25: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case 'A': ++ case 'B': ++ case 'C': ++ case 'D': ++ case 'E': ++ case 'F': ++ case 'G': ++ case 'H': ++ case 'I': ++ case 'J': ++ case 'K': ++ case 'L': ++ case 'M': ++ case 'N': ++ case 'O': ++ case 'P': ++ case 'Q': ++ case 'R': ++ case 'S': ++ case 'T': ++ case 'U': ++ case 'V': ++ case 'W': ++ case 'X': ++ case 'Y': ++ case 'Z': ++ case '_': ++ case 'a': ++ case 'b': ++ case 'c': ++ case 'd': ++ case 'e': ++ case 'f': ++ case 'g': ++ case 'h': ++ case 'i': ++ case 'j': ++ case 'k': ++ case 'l': ++ case 'm': ++ case 'n': ++ case 'o': ++ case 'p': ++ case 'q': ++ case 'r': ++ case 's': ++ case 't': ++ case 'u': ++ case 'v': ++ case 'w': ++ case 'x': ++ case 'y': ++ case 'z': goto yy25; ++ default: goto yy26; ++ } ++yy26: ++ { RET(PDO_PARSER_BIND); } ++yy27: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case ':': goto yy27; ++ default: goto yy28; ++ } ++yy28: ++ { RET(PDO_PARSER_TEXT); } ++yy29: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '?': goto yy29; ++ default: goto yy28; ++ } ++yy30: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy31: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case ']': goto yy32; ++ default: goto yy30; ++ } ++yy32: ++ yyaccept = 3; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy33; ++ case ']': goto yy32; ++ default: goto yy30; ++ } ++yy33: ++ { RET(PDO_PARSER_TEXT); } ++yy34: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy35: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '`': goto yy36; ++ default: goto yy34; ++ } ++yy36: ++ yyaccept = 4; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy37; ++ case '`': goto yy36; ++ default: goto yy34; ++ } ++yy37: ++ { RET(PDO_PARSER_TEXT); } ++yy38: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy38; ++ case '/': goto yy39; ++ default: goto yy24; ++ } ++yy39: ++ ++YYCURSOR; ++ goto yy23; ++} ++ ++} diff --git a/databases/php85-pgsql/Makefile b/databases/php85-pgsql/Makefile new file mode 100644 index 000000000000..429049846f13 --- /dev/null +++ b/databases/php85-pgsql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pgsql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-sqlite3/Makefile b/databases/php85-sqlite3/Makefile new file mode 100644 index 000000000000..a82d71c80d62 --- /dev/null +++ b/databases/php85-sqlite3/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -sqlite3 + +.include "${MASTERDIR}/Makefile" diff --git a/databases/pointcloud/Makefile b/databases/pointcloud/Makefile index 428b8b193ffd..0737a6d9db4e 100644 --- a/databases/pointcloud/Makefile +++ b/databases/pointcloud/Makefile @@ -1,6 +1,7 @@ PORTNAME= pointcloud DISTVERSIONPREFIX= v DISTVERSION= 1.2.5 +PORTREVISION= 1 CATEGORIES= databases geography MAINTAINER= lbartoletti@FreeBSD.org diff --git a/databases/postgis33/Makefile b/databases/postgis33/Makefile index 2771a6783720..7b951527b7f1 100644 --- a/databases/postgis33/Makefile +++ b/databases/postgis33/Makefile @@ -1,6 +1,6 @@ PORTNAME= postgis DISTVERSION= 3.3.8 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= databases geography MASTER_SITES= https://download.osgeo.org/postgis/source/ PKGNAMESUFFIX= 33 diff --git a/databases/postgis34/Makefile b/databases/postgis34/Makefile index fe713c48bd03..4e7c8dfc4d52 100644 --- a/databases/postgis34/Makefile +++ b/databases/postgis34/Makefile @@ -1,6 +1,6 @@ PORTNAME= postgis DISTVERSION= 3.4.4 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= databases geography MASTER_SITES= https://download.osgeo.org/postgis/source/ PKGNAMESUFFIX= 34 diff --git a/databases/postgis35/Makefile b/databases/postgis35/Makefile index a441e8c6eff9..2d4b40eb1575 100644 --- a/databases/postgis35/Makefile +++ b/databases/postgis35/Makefile @@ -1,6 +1,6 @@ PORTNAME= postgis DISTVERSION= 3.5.2 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= databases geography MASTER_SITES= https://download.osgeo.org/postgis/source/ PKGNAMESUFFIX= 35 diff --git a/databases/postgresql13-contrib/Makefile b/databases/postgresql13-contrib/Makefile index ad8a568951ee..7bac5c915b90 100644 --- a/databases/postgresql13-contrib/Makefile +++ b/databases/postgresql13-contrib/Makefile @@ -1,5 +1,5 @@ PORTNAME= postgresql -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= pgsql@FreeBSD.org diff --git a/databases/postgresql13-server/Makefile b/databases/postgresql13-server/Makefile index ae0b013f11c0..df8969e7cece 100644 --- a/databases/postgresql13-server/Makefile +++ b/databases/postgresql13-server/Makefile @@ -1,7 +1,7 @@ DISTVERSION?= 13.21 # PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and # not their own. Probably best to keep it at ?=0 when reset here too. -PORTREVISION?= 0 +PORTREVISION?= 1 MAINTAINER?= pgsql@FreeBSD.org diff --git a/databases/postgresql14-contrib/Makefile b/databases/postgresql14-contrib/Makefile index e60bf88b53b4..f0c2e269585d 100644 --- a/databases/postgresql14-contrib/Makefile +++ b/databases/postgresql14-contrib/Makefile @@ -1,5 +1,5 @@ PORTNAME= postgresql -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= pgsql@FreeBSD.org diff --git a/databases/postgresql14-server/Makefile b/databases/postgresql14-server/Makefile index 4fc3988300f0..d72b1bd1c81b 100644 --- a/databases/postgresql14-server/Makefile +++ b/databases/postgresql14-server/Makefile @@ -1,7 +1,7 @@ DISTVERSION?= 14.18 # PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and # not their own. Probably best to keep it at ?=0 when reset here too. -PORTREVISION?= 0 +PORTREVISION?= 1 MAINTAINER?= pgsql@FreeBSD.org diff --git a/databases/postgresql15-contrib/Makefile b/databases/postgresql15-contrib/Makefile index 8d8803e14f03..029971d32399 100644 --- a/databases/postgresql15-contrib/Makefile +++ b/databases/postgresql15-contrib/Makefile @@ -1,5 +1,5 @@ PORTNAME= postgresql -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= pgsql@FreeBSD.org diff --git a/databases/postgresql15-server/Makefile b/databases/postgresql15-server/Makefile index 09077a1fcb18..1489747d17ec 100644 --- a/databases/postgresql15-server/Makefile +++ b/databases/postgresql15-server/Makefile @@ -1,7 +1,7 @@ DISTVERSION?= 15.13 # PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and # not their own. Probably best to keep it at ?=0 when reset here too. -PORTREVISION?= 0 +PORTREVISION?= 1 MAINTAINER?= pgsql@FreeBSD.org diff --git a/databases/postgresql16-contrib/Makefile b/databases/postgresql16-contrib/Makefile index cd8376580200..e68f712cb309 100644 --- a/databases/postgresql16-contrib/Makefile +++ b/databases/postgresql16-contrib/Makefile @@ -1,5 +1,5 @@ PORTNAME= postgresql -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= pgsql@FreeBSD.org diff --git a/databases/postgresql16-server/Makefile b/databases/postgresql16-server/Makefile index a2258f336743..1e20ce62ed3c 100644 --- a/databases/postgresql16-server/Makefile +++ b/databases/postgresql16-server/Makefile @@ -2,7 +2,7 @@ PORTNAME?= postgresql DISTVERSION?= 16.9 # PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and # not their own. Probably best to keep it at ?=0 when reset here too. -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES?= databases MASTER_SITES= PGSQL/source/v${DISTVERSION} PKGNAMESUFFIX?= ${PORTVERSION:R}${COMPONENT} diff --git a/databases/postgresql17-contrib/Makefile b/databases/postgresql17-contrib/Makefile index 1a55a4cc9a46..001c798933c8 100644 --- a/databases/postgresql17-contrib/Makefile +++ b/databases/postgresql17-contrib/Makefile @@ -1,5 +1,5 @@ PORTNAME= postgresql -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= pgsql@FreeBSD.org diff --git a/databases/postgresql17-server/Makefile b/databases/postgresql17-server/Makefile index 9ffd292e7e70..1513d79a35d9 100644 --- a/databases/postgresql17-server/Makefile +++ b/databases/postgresql17-server/Makefile @@ -2,7 +2,7 @@ PORTNAME?= postgresql DISTVERSION?= 17.5 # PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and # not their own. Probably best to keep it at ?=0 when reset here too. -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES?= databases MASTER_SITES= PGSQL/source/v${DISTVERSION} #DISTFILES+= ${PORTNAME}-${DISTVERSION}-docs.tar.bz:docs diff --git a/databases/proxysql/Makefile b/databases/proxysql/Makefile index 1a1f045d7791..24a1c73b91d3 100644 --- a/databases/proxysql/Makefile +++ b/databases/proxysql/Makefile @@ -1,5 +1,6 @@ PORTNAME= proxysql PORTVERSION= 2.6.6 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= zi@FreeBSD.org @@ -18,10 +19,9 @@ BUILD_DEPENDS= aclocal:devel/automake \ ggrep:textproc/gnugrep \ libgcrypt>0:security/libgcrypt \ libtoolize:devel/libtool \ - e2fsprogs-libuuid>0:misc/e2fsprogs-libuuid \ gnutls>0:security/gnutls +LIB_DEPENDS= libuuid.so:misc/libuuid RUN_DEPENDS= libgcrypt>0:security/libgcrypt \ - e2fsprogs-libuuid>0:misc/e2fsprogs-libuuid \ gnutls>0:security/gnutls USES= compiler:c++11-lang gmake libtool perl5 python:build shebangfix diff --git a/databases/py-fakeredis/Makefile b/databases/py-fakeredis/Makefile index 80ddc7891b6a..fcd77113a829 100644 --- a/databases/py-fakeredis/Makefile +++ b/databases/py-fakeredis/Makefile @@ -1,5 +1,5 @@ PORTNAME= fakeredis -PORTVERSION= 2.30.0 +PORTVERSION= 2.30.1 CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/databases/py-fakeredis/distinfo b/databases/py-fakeredis/distinfo index 96349fe10757..e9cc0c75fe7c 100644 --- a/databases/py-fakeredis/distinfo +++ b/databases/py-fakeredis/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1750188048 -SHA256 (fakeredis-2.30.0.tar.gz) = 77ca04d4925daa0569ff000a960f47e49de15a4bd37facafe4f3f3ecc66bb3ef -SIZE (fakeredis-2.30.0.tar.gz) = 167434 +TIMESTAMP = 1750954166 +SHA256 (fakeredis-2.30.1.tar.gz) = 6489f2926e39815c9bf0fce80751635e0898e333c43a767825adf101180dbc45 +SIZE (fakeredis-2.30.1.tar.gz) = 167724 diff --git a/databases/py-sqlframe/Makefile b/databases/py-sqlframe/Makefile index 4da584bca7e1..12a1482936ec 100644 --- a/databases/py-sqlframe/Makefile +++ b/databases/py-sqlframe/Makefile @@ -1,5 +1,5 @@ PORTNAME= sqlframe -PORTVERSION= 3.35.1 +PORTVERSION= 3.36.0 CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -16,7 +16,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLA ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}prettytable>=0<4:devel/py-prettytable@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}sqlglot>=24.0.0<26.26:databases/py-sqlglot@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sqlglot>=24.0.0<26.32:databases/py-sqlglot@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=0:devel/py-typing-extensions@${PY_FLAVOR} USES= python diff --git a/databases/py-sqlframe/distinfo b/databases/py-sqlframe/distinfo index 362e7b8c0333..237cb50fcbf3 100644 --- a/databases/py-sqlframe/distinfo +++ b/databases/py-sqlframe/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1750188050 -SHA256 (sqlframe-3.35.1.tar.gz) = d7bfca67fa1490aebcbdf49127cfab261590da78976a0ac6570de9bfc46449ec -SIZE (sqlframe-3.35.1.tar.gz) = 29477918 +TIMESTAMP = 1751208150 +SHA256 (sqlframe-3.36.0.tar.gz) = c6966b56559ce63e08d8eacd73ab6fb3070651b25cb3c62a44882c7ade586e77 +SIZE (sqlframe-3.36.0.tar.gz) = 29480398 diff --git a/databases/py-sqlglot/Makefile b/databases/py-sqlglot/Makefile index 98b7069ed3e7..cf511dfac9b1 100644 --- a/databases/py-sqlglot/Makefile +++ b/databases/py-sqlglot/Makefile @@ -1,5 +1,5 @@ PORTNAME= sqlglot -PORTVERSION= 26.25.3 +PORTVERSION= 26.31.0 CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/databases/py-sqlglot/distinfo b/databases/py-sqlglot/distinfo index b9a87f01ef0e..fb751280939a 100644 --- a/databases/py-sqlglot/distinfo +++ b/databases/py-sqlglot/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1750188052 -SHA256 (sqlglot-26.25.3.tar.gz) = ca362b33c030538c8f5c8ae66ac5ae5e6c95be74170c328ad008a428687e2513 -SIZE (sqlglot-26.25.3.tar.gz) = 5322840 +TIMESTAMP = 1751208152 +SHA256 (sqlglot-26.31.0.tar.gz) = e9b8f52d02e21636cd7e463af29db0b86707437b9d468b7b2166b67fa96cdd87 +SIZE (sqlglot-26.31.0.tar.gz) = 5341968 diff --git a/databases/py-unqlite/Makefile b/databases/py-unqlite/Makefile index 55be1c6d00e8..a5a9dc5c24ef 100644 --- a/databases/py-unqlite/Makefile +++ b/databases/py-unqlite/Makefile @@ -1,5 +1,5 @@ PORTNAME= unqlite -DISTVERSION= 0.9.8 +DISTVERSION= 0.9.9 CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/databases/py-unqlite/distinfo b/databases/py-unqlite/distinfo index ca214a83d054..f50cff353b67 100644 --- a/databases/py-unqlite/distinfo +++ b/databases/py-unqlite/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738990510 -SHA256 (unqlite-0.9.8.tar.gz) = 182c1764616f0f3a5caa52ca3bdeac3d44cce7a56b2801c4fcaf79eb2b6f30be -SIZE (unqlite-0.9.8.tar.gz) = 634010 +TIMESTAMP = 1751442862 +SHA256 (unqlite-0.9.9.tar.gz) = 63a79975d67e3896af269c1885c2cc363fb646ff26e58541365fb5fb9e645691 +SIZE (unqlite-0.9.9.tar.gz) = 633945 diff --git a/databases/qof/Makefile b/databases/qof/Makefile index 293cec83b14d..22419f62765b 100644 --- a/databases/qof/Makefile +++ b/databases/qof/Makefile @@ -1,6 +1,6 @@ PORTNAME= qof PORTVERSION= 0.8.8 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= databases MASTER_SITES= DEBIAN_POOL DISTNAME= qof_${PORTVERSION}.orig diff --git a/databases/recutils/Makefile b/databases/recutils/Makefile index d28a59c27cd6..3ce645eb8312 100644 --- a/databases/recutils/Makefile +++ b/databases/recutils/Makefile @@ -1,6 +1,6 @@ PORTNAME= recutils DISTVERSION= 1.9 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= databases MASTER_SITES= GNU @@ -10,7 +10,7 @@ WWW= https://www.gnu.org/software/recutils/ LICENSE= GPLv3+ -LIB_DEPENDS= libuuid.so:misc/e2fsprogs-libuuid +LIB_DEPENDS= libuuid.so:misc/libuuid USES= charsetfix cpe libtool makeinfo pkgconfig readline CPE_VENDOR= gnu diff --git a/databases/rrdtool/Makefile b/databases/rrdtool/Makefile index 4db263ee0466..1279dbec7188 100644 --- a/databases/rrdtool/Makefile +++ b/databases/rrdtool/Makefile @@ -1,5 +1,6 @@ PORTNAME= rrdtool DISTVERSION= 1.9.0 +PORTREVISION= 1 CATEGORIES= databases graphics MASTER_SITES= https://github.com/oetiker/rrdtool-1.x/releases/download/v${DISTVERSION}/ diff --git a/databases/rubygem-flipper-active_record/Makefile b/databases/rubygem-flipper-active_record/Makefile index d41f10d94685..32809d6adbc2 100644 --- a/databases/rubygem-flipper-active_record/Makefile +++ b/databases/rubygem-flipper-active_record/Makefile @@ -1,5 +1,5 @@ PORTNAME= flipper-active_record -PORTVERSION= 1.3.4 +PORTVERSION= 1.3.5 CATEGORIES= databases rubygems MASTER_SITES= RG diff --git a/databases/rubygem-flipper-active_record/distinfo b/databases/rubygem-flipper-active_record/distinfo index 331c9e27b892..00f974fa6be9 100644 --- a/databases/rubygem-flipper-active_record/distinfo +++ b/databases/rubygem-flipper-active_record/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742070490 -SHA256 (rubygem/flipper-active_record-1.3.4.gem) = 8cda954ebf76668ae451915fbff87670939c9178b4cbcc77816aa918c2e8612e -SIZE (rubygem/flipper-active_record-1.3.4.gem) = 12800 +TIMESTAMP = 1751208188 +SHA256 (rubygem/flipper-active_record-1.3.5.gem) = 77867d6226d54fbd66e6fc4646595ba6b9b8305ff5efc58597d7190fde31d5a1 +SIZE (rubygem/flipper-active_record-1.3.5.gem) = 12800 diff --git a/databases/rubygem-redis-client/Makefile b/databases/rubygem-redis-client/Makefile index fffc4a3e9f73..5511f80c6786 100644 --- a/databases/rubygem-redis-client/Makefile +++ b/databases/rubygem-redis-client/Makefile @@ -1,5 +1,5 @@ PORTNAME= redis-client -PORTVERSION= 0.24.0 +PORTVERSION= 0.25.0 CATEGORIES= databases rubygems MASTER_SITES= RG diff --git a/databases/rubygem-redis-client/distinfo b/databases/rubygem-redis-client/distinfo index b7bbbf2fff55..06e17fe381a7 100644 --- a/databases/rubygem-redis-client/distinfo +++ b/databases/rubygem-redis-client/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742070508 -SHA256 (rubygem/redis-client-0.24.0.gem) = ee65ee39cb2c38608b734566167fd912384f3c1241f59075e22858f23a085dbb -SIZE (rubygem/redis-client-0.24.0.gem) = 28160 +TIMESTAMP = 1750954266 +SHA256 (rubygem/redis-client-0.25.0.gem) = 927dfd07a37346fd9111d80cac3199d2a02b4c084c79260acf7a5057bd742910 +SIZE (rubygem/redis-client-0.25.0.gem) = 28160 diff --git a/databases/rubygem-redis-cluster-client/Makefile b/databases/rubygem-redis-cluster-client/Makefile index c70977aeab43..050ff2b86a28 100644 --- a/databases/rubygem-redis-cluster-client/Makefile +++ b/databases/rubygem-redis-cluster-client/Makefile @@ -1,5 +1,5 @@ PORTNAME= redis-cluster-client -PORTVERSION= 0.13.4 +PORTVERSION= 0.13.5 CATEGORIES= databases rubygems MASTER_SITES= RG diff --git a/databases/rubygem-redis-cluster-client/distinfo b/databases/rubygem-redis-cluster-client/distinfo index f150acb0b578..c542d7f7d3cd 100644 --- a/databases/rubygem-redis-cluster-client/distinfo +++ b/databases/rubygem-redis-cluster-client/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742070510 -SHA256 (rubygem/redis-cluster-client-0.13.4.gem) = cb1cfee857116999eebde5a94e1cc38bca348fe855e294054761a7cd646e31c2 -SIZE (rubygem/redis-cluster-client-0.13.4.gem) = 26624 +TIMESTAMP = 1750954268 +SHA256 (rubygem/redis-cluster-client-0.13.5.gem) = 18d6c9598009bcdb47b2a62bd6d00b833444aace740d2a2f00113774b298204c +SIZE (rubygem/redis-cluster-client-0.13.5.gem) = 27136 diff --git a/databases/rubygem-solid_cable-rails72/Makefile b/databases/rubygem-solid_cable-rails72/Makefile index 7c0b3a3cd41a..efc42920b3a2 100644 --- a/databases/rubygem-solid_cable-rails72/Makefile +++ b/databases/rubygem-solid_cable-rails72/Makefile @@ -1,5 +1,5 @@ PORTNAME= solid_cable -PORTVERSION= 3.0.8 +PORTVERSION= 3.0.11 CATEGORIES= databases rubygems MASTER_SITES= RG PKGNAMESUFFIX= -rails72 diff --git a/databases/rubygem-solid_cable-rails72/distinfo b/databases/rubygem-solid_cable-rails72/distinfo index 4b5a62830e85..c60c00fab965 100644 --- a/databases/rubygem-solid_cable-rails72/distinfo +++ b/databases/rubygem-solid_cable-rails72/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747715492 -SHA256 (rubygem/solid_cable-3.0.8.gem) = 71fcc85587c8899d4c145f25ac15e092ed0ecc14477e67c9220f82ae3cdd8c3a -SIZE (rubygem/solid_cable-3.0.8.gem) = 12800 +TIMESTAMP = 1750954270 +SHA256 (rubygem/solid_cable-3.0.11.gem) = b7cb3de7eb65fada32f4a70e47897c7dd3ee4a8d3ad08a278f2340037e07384c +SIZE (rubygem/solid_cable-3.0.11.gem) = 12800 diff --git a/databases/rubygem-solid_cable/Makefile b/databases/rubygem-solid_cable/Makefile index 4c0a940417fd..d9dc359d55b7 100644 --- a/databases/rubygem-solid_cable/Makefile +++ b/databases/rubygem-solid_cable/Makefile @@ -1,5 +1,5 @@ PORTNAME= solid_cable -PORTVERSION= 3.0.8 +PORTVERSION= 3.0.11 CATEGORIES= databases rubygems MASTER_SITES= RG diff --git a/databases/rubygem-solid_cable/distinfo b/databases/rubygem-solid_cable/distinfo index 9998669e5710..c60c00fab965 100644 --- a/databases/rubygem-solid_cable/distinfo +++ b/databases/rubygem-solid_cable/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747715490 -SHA256 (rubygem/solid_cable-3.0.8.gem) = 71fcc85587c8899d4c145f25ac15e092ed0ecc14477e67c9220f82ae3cdd8c3a -SIZE (rubygem/solid_cable-3.0.8.gem) = 12800 +TIMESTAMP = 1750954270 +SHA256 (rubygem/solid_cable-3.0.11.gem) = b7cb3de7eb65fada32f4a70e47897c7dd3ee4a8d3ad08a278f2340037e07384c +SIZE (rubygem/solid_cable-3.0.11.gem) = 12800 diff --git a/databases/spatialite-tools/Makefile b/databases/spatialite-tools/Makefile index d3347d655708..1fae531ad338 100644 --- a/databases/spatialite-tools/Makefile +++ b/databases/spatialite-tools/Makefile @@ -1,6 +1,6 @@ PORTNAME= spatialite-tools PORTVERSION= 5.0.1 -PORTREVISION= 11 +PORTREVISION= 12 CATEGORIES= databases geography MASTER_SITES= http://www.gaia-gis.it/gaia-sins/ diff --git a/databases/spatialite/Makefile b/databases/spatialite/Makefile index 842498ac355d..fc65877bdd56 100644 --- a/databases/spatialite/Makefile +++ b/databases/spatialite/Makefile @@ -1,6 +1,6 @@ PORTNAME= spatialite PORTVERSION= 5.1.0 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= databases geography MASTER_SITES= http://www.gaia-gis.it/gaia-sins/libspatialite-sources/ DISTNAME= lib${PORTNAME}-${PORTVERSION} diff --git a/databases/spatialite_gui/Makefile b/databases/spatialite_gui/Makefile index 6399298ca38b..bcad5147258d 100644 --- a/databases/spatialite_gui/Makefile +++ b/databases/spatialite_gui/Makefile @@ -1,6 +1,6 @@ PORTNAME= spatialite_gui DISTVERSION= 2.1.0 -PORTREVISION= 16 +PORTREVISION= 17 DISTVERSIONSUFFIX= -beta1 CATEGORIES= databases geography MASTER_SITES= http://www.gaia-gis.it/gaia-sins/spatialite-gui-sources/ diff --git a/databases/sqliteodbc/Makefile b/databases/sqliteodbc/Makefile index f17414096a8f..78d65dc75416 100644 --- a/databases/sqliteodbc/Makefile +++ b/databases/sqliteodbc/Makefile @@ -1,5 +1,6 @@ PORTNAME= sqliteodbc PORTVERSION= 0.99991 +PORTREVISION= 1 CATEGORIES= databases MASTER_SITES= http://www.ch-werner.de/sqliteodbc/ diff --git a/databases/xrootd/Makefile b/databases/xrootd/Makefile index d0e4124e86d7..55771760e750 100644 --- a/databases/xrootd/Makefile +++ b/databases/xrootd/Makefile @@ -1,5 +1,6 @@ PORTNAME= xrootd DISTVERSION= 5.6.9 +PORTREVISION= 2 CATEGORIES= databases MASTER_SITES= https://xrootd.slac.stanford.edu/download/v${DISTVERSION}/ @@ -18,7 +19,7 @@ LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPL BUILD_DEPENDS= bash:shells/bash LIB_DEPENDS= libcurl.so:ftp/curl \ libtinyxml.so:textproc/tinyxml \ - libuuid.so:misc/e2fsprogs-libuuid + libuuid.so:misc/libuuid TEST_DEPENDS= cppunit>0:devel/cppunit \ googletest>0:devel/googletest diff --git a/databases/xtrabackup80/Makefile b/databases/xtrabackup80/Makefile index e8db161f55b9..600a5f6b380f 100644 --- a/databases/xtrabackup80/Makefile +++ b/databases/xtrabackup80/Makefile @@ -1,7 +1,7 @@ PORTNAME= xtrabackup80 PORTVERSION= 8.0.35 DISTVERSIONSUFFIX= -30 -PORTREVISION= 8 +PORTREVISION= 9 CATEGORIES= databases MASTER_SITES= https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-30/source/tarball/:percona \ SF/boost/boost/${BOOST_VERSION}:boost diff --git a/databases/xtrabackup80/files/patch-sql_binlog__ostream.cc b/databases/xtrabackup80/files/patch-sql_binlog__ostream.cc new file mode 100644 index 000000000000..870b55e23bf3 --- /dev/null +++ b/databases/xtrabackup80/files/patch-sql_binlog__ostream.cc @@ -0,0 +1,11 @@ +--- sql/binlog_ostream.cc.orig 2023-11-24 10:33:10 UTC ++++ sql/binlog_ostream.cc +@@ -239,7 +239,7 @@ bool IO_CACHE_binlog_cache_storage::setup_ciphers_pass + + /* Generate password, it is a random string. */ + if (my_rand_buffer(password, sizeof(password))) return true; +- password_str.append(password, sizeof(password)); ++ password_str.insert(password_str.end(), password, password + sizeof(password)); + + m_io_cache.m_encryptor->close(); + m_io_cache.m_decryptor->close(); diff --git a/databases/xtrabackup80/files/patch-sql_mdl__context__backup.cc b/databases/xtrabackup80/files/patch-sql_mdl__context__backup.cc new file mode 100644 index 000000000000..0d670ed2d1a2 --- /dev/null +++ b/databases/xtrabackup80/files/patch-sql_mdl__context__backup.cc @@ -0,0 +1,36 @@ +--- sql/mdl_context_backup.cc.orig 2023-11-24 10:33:10 UTC ++++ sql/mdl_context_backup.cc +@@ -159,7 +159,7 @@ bool MDL_context_backup_manager::create_backup(const M + DBUG_TRACE; + + try { +- MDL_context_backup_key key_obj(key, keylen); ++ MDL_context_backup_key key_obj(key, key + keylen); + + /* + Since this method is called as part of THD cleaning up, every XA +@@ -192,7 +192,7 @@ bool MDL_context_backup_manager::create_backup(MDL_req + + bool result = false; + try { +- MDL_context_backup_key key_obj(key, keylen); ++ MDL_context_backup_key key_obj(key, key + keylen); + /* + Check for presence a record with specified key in the collection of + MDL_context_backup elements. It is ok to already have a record with +@@ -238,7 +238,7 @@ bool MDL_context_backup_manager::restore_backup(MDL_co + + MUTEX_LOCK(guard, &m_LOCK_mdl_context_backup); + +- auto result = m_backup_map.find(MDL_context_backup_key(key, keylen)); ++ auto result = m_backup_map.find(MDL_context_backup_key(key, key + keylen)); + if (result != m_backup_map.end()) { + element = result->second.get(); + res = mdl_context->clone_tickets(element->get_context(), MDL_TRANSACTION); +@@ -251,5 +251,5 @@ void MDL_context_backup_manager::delete_backup(const u + const size_t keylen) { + DBUG_TRACE; + MUTEX_LOCK(guard, &m_LOCK_mdl_context_backup); +- m_backup_map.erase(MDL_context_backup_key(key, keylen)); ++ m_backup_map.erase(MDL_context_backup_key(key, key + keylen)); + } diff --git a/databases/xtrabackup80/files/patch-sql_mdl__context__backup.h b/databases/xtrabackup80/files/patch-sql_mdl__context__backup.h new file mode 100644 index 000000000000..3c9fc1e28992 --- /dev/null +++ b/databases/xtrabackup80/files/patch-sql_mdl__context__backup.h @@ -0,0 +1,11 @@ +--- sql/mdl_context_backup.h.orig 2023-11-24 10:33:10 UTC ++++ sql/mdl_context_backup.h +@@ -46,7 +46,7 @@ class MDL_context_backup_manager { + /** + Key for uniquely identifying MDL_context in the MDL_context_backup map. + */ +- typedef std::basic_string<uchar> MDL_context_backup_key; ++ typedef std::vector<uchar> MDL_context_backup_key; + + class MDL_context_backup; + diff --git a/databases/xtrabackup80/files/patch-sql_range__optimizer_index__range__scan__plan.cc b/databases/xtrabackup80/files/patch-sql_range__optimizer_index__range__scan__plan.cc new file mode 100644 index 000000000000..7dda71eef0e1 --- /dev/null +++ b/databases/xtrabackup80/files/patch-sql_range__optimizer_index__range__scan__plan.cc @@ -0,0 +1,39 @@ +--- sql/range_optimizer/index_range_scan_plan.cc.orig 2023-11-24 10:33:10 UTC ++++ sql/range_optimizer/index_range_scan_plan.cc +@@ -1015,11 +1015,11 @@ static bool null_part_in_key(KEY_PART *key_part, const + return false; + } + +-// TODO(sgunders): This becomes a bit simpler with C++20's string_view +-// constructors. +-static inline std::basic_string_view<uchar> make_string_view(const uchar *start, +- const uchar *end) { +- return {start, static_cast<size_t>(end - start)}; ++static inline bool equal(const uchar *start1, const uchar *end1, ++ const uchar *start2, const uchar *end2) { ++ auto diff1 = end1 - start1; ++ auto diff2 = end2 - start2; ++ return diff1 == diff2 && memcmp(start1, start2, diff1) == 0; + } + + /** +@@ -1082,8 +1082,7 @@ static bool get_ranges_from_tree_given_base( + node->next_key_part->type == SEL_ROOT::Type::KEY_RANGE && + node->next_key_part->root->part == part + 1) { + if (node->min_flag == 0 && node->max_flag == 0 && +- make_string_view(min_key, tmp_min_key) == +- make_string_view(max_key, tmp_max_key)) { ++ equal(min_key, tmp_min_key, max_key, tmp_max_key)) { + // This range was an equality predicate, and we have more + // keyparts to scan, so use its range as a base for ranges on + // the next keypart(s). E.g. if we have (a = 3) on this keypart, +@@ -1159,8 +1158,7 @@ static bool get_ranges_from_tree_given_base( + else + flag |= NO_MAX_RANGE; + } +- if (flag == 0 && make_string_view(base_min_key, tmp_min_key) == +- make_string_view(base_max_key, tmp_max_key)) { ++ if (flag == 0 && equal(base_min_key, tmp_min_key, base_max_key, tmp_max_key)) { + flag |= EQ_RANGE; + /* + Note that keys which are extended with PK parts have no diff --git a/databases/xtrabackup80/files/patch-sql_rpl__log__encryption.cc b/databases/xtrabackup80/files/patch-sql_rpl__log__encryption.cc new file mode 100644 index 000000000000..3acbfdd9b46c --- /dev/null +++ b/databases/xtrabackup80/files/patch-sql_rpl__log__encryption.cc @@ -0,0 +1,143 @@ +--- sql/rpl_log_encryption.cc.orig 2023-11-24 10:33:10 UTC ++++ sql/rpl_log_encryption.cc +@@ -212,7 +212,7 @@ bool Rpl_encryption::recover_master_key() { + Rpl_encryption_header::seqno_to_key_id(m_master_key_seqno); + auto master_key = + get_key(m_master_key.m_id, Rpl_encryption_header::get_key_type()); +- m_master_key.m_value.assign(master_key.second); ++ m_master_key.m_value = master_key.second; + /* No keyring error */ + if (master_key.first == Keyring_status::KEYRING_ERROR_FETCHING) goto err1; + } +@@ -289,7 +289,7 @@ bool Rpl_encryption::recover_master_key() { + + if (new_master_key.first == Keyring_status::SUCCESS) { + m_master_key.m_id = new_master_key_id; +- m_master_key.m_value.assign(new_master_key.second); ++ m_master_key.m_value = new_master_key.second; + if (new_master_key_seqno.second > m_master_key_seqno && + new_master_key_seqno.second > old_master_key_seqno.second) { + if (m_master_key_seqno > 0) { +@@ -379,8 +379,8 @@ std::pair<Rpl_encryption::Keyring_status, Key_string> + reinterpret_cast<unsigned char *>(std::get<1>(tuple)); + first[0] = ~(first[0]); + }); +- key_str.append(reinterpret_cast<unsigned char *>(std::get<1>(tuple)), +- std::get<2>(tuple)); ++ auto *first = reinterpret_cast<unsigned char *>(std::get<1>(tuple)); ++ key_str.insert(key_str.end(), first, first + std::get<2>(tuple)); + my_free(std::get<1>(tuple)); + } + +@@ -395,7 +395,7 @@ std::pair<Rpl_encryption::Keyring_status, Key_string> + if (pair.first == Keyring_status::SUCCESS) { + DBUG_EXECUTE_IF("corrupt_replication_encryption_key_size", + { pair.second.resize(key_size / 2); }); +- if (pair.second.length() != key_size) ++ if (pair.second.size() != key_size) + pair.first = Keyring_status::UNEXPECTED_KEY_SIZE; + } + return pair; +@@ -449,7 +449,7 @@ bool Rpl_encryption::enable_for_xtrabackup() { + Rpl_encryption_header::seqno_to_key_id(m_master_key_seqno); + auto master_key = + get_key(m_master_key.m_id, Rpl_encryption_header::get_key_type()); +- m_master_key.m_value.assign(master_key.second); ++ m_master_key.m_value = master_key.second; + /* No keyring error */ + if (master_key.first == Keyring_status::KEYRING_ERROR_FETCHING) res = true; + } +@@ -770,7 +770,7 @@ Rpl_encryption::get_seqno_from_keyring(std::string key + auto fetched_key = get_key(key_id, SEQNO_KEY_TYPE, SEQNO_KEY_LENGTH); + uint32_t seqno = 0; + if (fetched_key.first == Keyring_status::SUCCESS) { +- const void *key = fetched_key.second.c_str(); ++ const void *key = fetched_key.second.data(); + memcpy(&seqno, key, sizeof(seqno)); + seqno = le32toh(seqno); + } +@@ -975,7 +975,7 @@ bool Rpl_encryption::generate_master_key_on_keyring(ui + + /* Store the generated key as the new master key */ + m_master_key.m_id = key_id; +- m_master_key.m_value.assign(pair.second); ++ m_master_key.m_value = pair.second; + + return false; + } +@@ -1078,12 +1078,12 @@ bool Rpl_encryption_header_v1::serialize(Basic_ostream + + assert(m_encrypted_password.length() == PASSWORD_FIELD_SIZE); + *ptr++ = ENCRYPTED_FILE_PASSWORD; +- memcpy(ptr, m_encrypted_password.data(), m_encrypted_password.length()); ++ memcpy(ptr, m_encrypted_password.data(), m_encrypted_password.size()); + ptr += PASSWORD_FIELD_SIZE; + + assert(m_iv.length() == IV_FIELD_SIZE); + *ptr++ = IV_FOR_FILE_PASSWORD; +- memcpy(ptr, m_iv.data(), m_iv.length()); ++ memcpy(ptr, m_iv.data(), m_iv.size()); + + bool res = DBUG_EVALUATE_IF("fail_to_serialize_encryption_header", true, + ostream->write(header, HEADER_SIZE)); +@@ -1138,13 +1138,13 @@ bool Rpl_encryption_header_v1::deserialize(Basic_istre + reinterpret_cast<const unsigned char *>( + reader.ptr(PASSWORD_FIELD_SIZE)); + if (!reader.has_error()) +- m_encrypted_password.assign(password_ptr, PASSWORD_FIELD_SIZE); ++ m_encrypted_password.assign(password_ptr, password_ptr + PASSWORD_FIELD_SIZE); + break; + } + case IV_FOR_FILE_PASSWORD: { + const unsigned char *iv_ptr = + reinterpret_cast<const unsigned char *>(reader.ptr(IV_FIELD_SIZE)); +- if (!reader.has_error()) m_iv.assign(iv_ptr, IV_FIELD_SIZE); ++ if (!reader.has_error()) m_iv.assign(iv_ptr, iv_ptr + IV_FIELD_SIZE); + break; + } + default: +@@ -1204,11 +1204,11 @@ Key_string Rpl_encryption_header_v1::decrypt_file_pass + unsigned char buffer[Aes_ctr::PASSWORD_LENGTH]; + + if (my_aes_decrypt(m_encrypted_password.data(), +- m_encrypted_password.length(), buffer, ++ m_encrypted_password.size(), buffer, + error_and_key.second.data(), +- error_and_key.second.length(), my_aes_256_cbc, ++ error_and_key.second.size(), my_aes_256_cbc, + m_iv.data(), false) != MY_AES_BAD_DATA) +- file_password.append(buffer, Aes_ctr::PASSWORD_LENGTH); ++ file_password.insert(file_password.end(), buffer, buffer + Aes_ctr::PASSWORD_LENGTH); + } + } + #endif +@@ -1239,16 +1239,16 @@ bool Rpl_encryption_header_v1::encrypt_file_password(K + + /* Generate iv, it is a random string. */ + error = my_rand_buffer(iv, Aes_ctr::AES_BLOCK_SIZE); +- m_iv = Key_string(iv, sizeof(iv)); ++ m_iv = Key_string(iv, iv + sizeof(iv)); + + /* Encrypt password */ + if (!error) { +- error = (my_aes_encrypt(password_str.data(), password_str.length(), ++ error = (my_aes_encrypt(password_str.data(), password_str.size(), + encrypted_password, master_key.m_value.data(), +- master_key.m_value.length(), my_aes_256_cbc, iv, ++ master_key.m_value.size(), my_aes_256_cbc, iv, + false) == MY_AES_BAD_DATA); + m_encrypted_password = +- Key_string(encrypted_password, sizeof(encrypted_password)); ++ Key_string(encrypted_password, encrypted_password + sizeof(encrypted_password)); + } + + return error; +@@ -1264,7 +1264,7 @@ Key_string Rpl_encryption_header_v1::generate_new_file + /* Generate password, it is a random string. */ + error = my_rand_buffer(password, sizeof(password)); + if (!error) { +- password_str.append(password, sizeof(password)); ++ password_str.insert(password_str.end(), password, password + sizeof(password)); + } + + if (error || encrypt_file_password(password_str) || diff --git a/databases/xtrabackup80/files/patch-sql_stream__cipher.cc b/databases/xtrabackup80/files/patch-sql_stream__cipher.cc new file mode 100644 index 000000000000..e9b1b0e5a573 --- /dev/null +++ b/databases/xtrabackup80/files/patch-sql_stream__cipher.cc @@ -0,0 +1,11 @@ +--- sql/stream_cipher.cc.orig 2023-11-24 10:33:10 UTC ++++ sql/stream_cipher.cc +@@ -45,7 +45,7 @@ bool Aes_ctr_cipher<TYPE>::open(const Key_string &pass + m_header_size = header_size; + #ifdef HAVE_BYTESTOKEY_SHA512_HANDLING + if (EVP_BytesToKey(Aes_ctr::get_evp_cipher(), Aes_ctr::get_evp_md(), nullptr, +- password.data(), password.length(), 1, m_file_key, ++ password.data(), password.size(), 1, m_file_key, + m_iv) == 0) + return true; + #else diff --git a/databases/xtrabackup80/files/patch-sql_stream__cipher.h b/databases/xtrabackup80/files/patch-sql_stream__cipher.h new file mode 100644 index 000000000000..dfef2c2b2246 --- /dev/null +++ b/databases/xtrabackup80/files/patch-sql_stream__cipher.h @@ -0,0 +1,20 @@ +--- sql/stream_cipher.h.orig 2023-11-24 10:33:10 UTC ++++ sql/stream_cipher.h +@@ -25,7 +25,7 @@ + + #include <openssl/evp.h> + #include <memory> +-#include <string> ++#include <vector> + + /** + @file stream_cipher.h +@@ -34,7 +34,7 @@ + binary log files. + */ + +-typedef std::basic_string<unsigned char> Key_string; ++typedef std::vector<unsigned char> Key_string; + + /** + @class Stream_cipher diff --git a/databases/xtrabackup80/files/patch-storage_innobase_log__log0recv.cc b/databases/xtrabackup80/files/patch-storage_innobase_log__log0recv.cc deleted file mode 100644 index 4f6c96125878..000000000000 --- a/databases/xtrabackup80/files/patch-storage_innobase_log__log0recv.cc +++ /dev/null @@ -1,29 +0,0 @@ ---- storage/innobase/log/log0recv.cc.orig 2023-11-24 13:33:10.000000000 +0300 -+++ storage/innobase/log/log0recv.cc 2024-02-16 15:16:49.528584000 +0300 -@@ -3702,7 +3702,7 @@ - #else /* !UNIV_HOTBACKUP */ - bool meb_scan_log_recs( - #endif /* !UNIV_HOTBACKUP */ -- size_t *max_memory, const byte *buf, size_t len, -+ size_t max_memory, const byte *buf, size_t len, - lsn_t start_lsn, lsn_t *read_upto_lsn, - lsn_t to_lsn) { - const byte *log_block = buf; -@@ -3975,7 +3975,7 @@ - recv_parse_log_recs(); - - #ifndef UNIV_HOTBACKUP -- if (recv_heap_used() > *max_memory) { -+ if (recv_heap_used() > max_memory) { - recv_apply_hashed_log_recs(log, false); - } - #endif /* !UNIV_HOTBACKUP */ -@@ -4161,7 +4161,7 @@ - break; - } - -- finished = recv_scan_log_recs(log, &max_mem, log.buf, end_lsn - start_lsn, -+ finished = recv_scan_log_recs(log, max_mem, log.buf, end_lsn - start_lsn, - start_lsn, &log.m_scanned_lsn, to_lsn); - - start_lsn = end_lsn; diff --git a/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_src_keyring__plugins.cc b/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_src_keyring__plugins.cc new file mode 100644 index 000000000000..5a1124f11f87 --- /dev/null +++ b/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_src_keyring__plugins.cc @@ -0,0 +1,11 @@ +--- storage/innobase/xtrabackup/src/keyring_plugins.cc.orig 2023-11-24 10:33:10 UTC ++++ storage/innobase/xtrabackup/src/keyring_plugins.cc +@@ -890,7 +890,7 @@ bool xb_binlog_password_reencrypt(const char *binlog_f + return (false); + } + +- Key_string file_password(key, Encryption::KEY_LEN); ++ Key_string file_password(key, key + Encryption::KEY_LEN); + header->encrypt_file_password(file_password); + + IO_CACHE_ostream ostream; diff --git a/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_src_utils.cc b/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_src_utils.cc deleted file mode 100644 index 34feee9867f6..000000000000 --- a/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_src_utils.cc +++ /dev/null @@ -1,59 +0,0 @@ ---- storage/innobase/xtrabackup/src/utils.cc.orig 2023-01-30 20:34:34.000000000 +0700 -+++ storage/innobase/xtrabackup/src/utils.cc 2023-02-25 02:50:31.899561000 +0700 -@@ -21,6 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Bos - - #ifdef __APPLE__ - #include <mach/mach_host.h> -+#endif -+#if defined(__APPLE__) || defined(__FreeBSD__) - #include <sys/sysctl.h> - #else - #include <proc/sysinfo.h> -@@ -112,12 +114,14 @@ unsigned long get_version_number(std::string version_s - return major * 10000 + minor * 100 + version; - } - --#ifdef __APPLE__ -+#if defined(__APPLE__) || defined(__FreeBSD__) - unsigned long host_total_memory() { - unsigned long total_mem = sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE); - return total_mem; - } -+#endif - -+#ifdef __APPLE__ - unsigned long host_free_memory() { - unsigned long total_mem = host_total_memory(); - int64_t used_mem; -@@ -138,6 +142,31 @@ unsigned long host_free_memory() { - return total_mem - (unsigned long)used_mem; - } - return 0; -+} -+#elif defined(__FreeBSD__) -+unsigned long host_free_memory() { -+ static int mib_free[2] = { -1, 0 }; -+ static int mib_inactive[2] = { -1, 0 }; -+ size_t miblen = sizeof(mib_free) / sizeof(mib_free[0]); -+ uint32_t free_pages, inactive_pages; -+ size_t sz = sizeof(free_pages); -+ -+ free_pages = inactive_pages = 0; -+ -+ if (mib_free[0] < 0 && -+ sysctlnametomib("vm.stats.vm.v_free_count", mib_free, &miblen) < 0) -+ mib_free[0] = 0; -+ if (mib_inactive[0] < 0 && -+ sysctlnametomib("vm.stats.vm.v_inactive_count", mib_inactive, &miblen) < 0) -+ mib_inactive[0] = 0; -+ -+ if (mib_free[0] && -+ sysctl(mib_free, 2, &free_pages, &sz, NULL, 0) < 0) -+ free_pages = 0; /* should not happen */ -+ if (mib_inactive[0] && sysctl(mib_inactive, 2, &inactive_pages, &sz, NULL, 0) < 0) -+ inactive_pages = 0; /* should not happen, too */ -+ -+ return (free_pages + inactive_pages) * sysconf(_SC_PAGESIZE); - } - #else - unsigned long host_total_memory() { diff --git a/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh b/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh deleted file mode 100644 index 37b1e45afc66..000000000000 --- a/databases/xtrabackup80/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh +++ /dev/null @@ -1,15 +0,0 @@ ---- storage/innobase/xtrabackup/xbcloud_osenv.sh.orig 2020-08-28 21:02:32 UTC -+++ storage/innobase/xtrabackup/xbcloud_osenv.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - - # Copyright (C) 2015 Percona LLC and/or its affiliates. - # This software comes with ABSOLUTELY NO WARRANTY. This is free software, -@@ -105,5 +105,5 @@ fi - - # do it - # shellcheck disable=SC2086,SC2048 --${XBCLOUD_BIN} $* ${XBCLOUD_OS_ENV} -+${XBCLOUD_BIN} "$@" ${XBCLOUD_OS_ENV} - diff --git a/databases/xtrabackup80/files/patch-storage_temptable_include_temptable_lock_free_type.h b/databases/xtrabackup80/files/patch-storage_temptable_include_temptable_lock_free_type.h deleted file mode 100644 index a229da5b0adc..000000000000 --- a/databases/xtrabackup80/files/patch-storage_temptable_include_temptable_lock_free_type.h +++ /dev/null @@ -1,17 +0,0 @@ ---- storage/temptable/include/temptable/lock_free_type.h.orig 2020-06-16 16:31:03 UTC -+++ storage/temptable/include/temptable/lock_free_type.h -@@ -31,6 +31,14 @@ Lock-free type (selection) implementation. */ - - #include "storage/temptable/include/temptable/constants.h" - -+#if defined(__i386__) //&& defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8) -+/* Fix for clang setting __GCC_ATOMIC_LLONG_LOCK_FREE incorrectly for x86 -+ * https://llvm.org/bugs/show_bug.cgi?id=19355 -+ */ -+#undef ATOMIC_LLONG_LOCK_FREE -+#define ATOMIC_LLONG_LOCK_FREE 2 -+#endif -+ - namespace temptable { - - /** Enum class describing alignment-requirements. */ diff --git a/databases/xtrabackup80/files/patch-utils.cc b/databases/xtrabackup80/files/patch-utils.cc new file mode 100644 index 000000000000..7cc27bc79dd7 --- /dev/null +++ b/databases/xtrabackup80/files/patch-utils.cc @@ -0,0 +1,83 @@ +--- storage/innobase/xtrabackup/src/utils.cc.orig 2025-06-26 11:44:12.347914000 +0300 ++++ storage/innobase/xtrabackup/src/utils.cc 2025-06-26 11:47:31.087768000 +0300 +@@ -19,16 +19,6 @@ + #include <my_default.h> + #include <mysqld.h> + +-#ifdef __APPLE__ +-#include <mach/mach_host.h> +-#include <sys/sysctl.h> +-#else +-#ifdef HAVE_PROCPS_V3 +-#include <proc/sysinfo.h> +-#else +-#include <libproc2/meminfo.h> +-#endif // HAVE_PROCPS_V3 +-#endif // __APPLE__ + #include <boost/uuid/uuid.hpp> // uuid class + #include <boost/uuid/uuid_generators.hpp> // generators + #include <boost/uuid/uuid_io.hpp> // streaming operators etc. +@@ -116,62 +106,13 @@ + return major * 10000 + minor * 100 + version; + } + +-#ifdef __APPLE__ + unsigned long host_total_memory() { +- unsigned long total_mem = sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE); +- return total_mem; ++ return 0; + } + + unsigned long host_free_memory() { +- unsigned long total_mem = host_total_memory(); +- int64_t used_mem; +- vm_size_t page_size; +- mach_msg_type_number_t count; +- vm_statistics_data_t vm_stats; +- +- // Get used memory +- mach_port_t host = mach_host_self(); +- count = sizeof(vm_stats) / sizeof(natural_t); +- if (KERN_SUCCESS == host_page_size(host, &page_size) && +- KERN_SUCCESS == +- host_statistics(host, HOST_VM_INFO, (host_info_t)&vm_stats, &count)) { +- used_mem = ((int64_t)vm_stats.active_count + (int64_t)vm_stats.wire_count) * +- (int64_t)page_size; +- +- ut_a(total_mem >= (unsigned long)used_mem); +- return total_mem - (unsigned long)used_mem; +- } + return 0; + } +-#else +-unsigned long host_total_memory() { +-#ifdef HAVE_PROCPS_V3 +- meminfo(); +- return kb_main_total * 1024; +-#else +- struct meminfo_info *mem_info; +- if (procps_meminfo_new(&mem_info) < 0) { +- return 0; +- } +- +- return MEMINFO_GET(mem_info, MEMINFO_MEM_TOTAL, ul_int) * 1024; +-#endif // HAVE_PROCPS_V3 +-} +- +-unsigned long host_free_memory() { +-#ifdef HAVE_PROCPS_V3 +- meminfo(); +- return kb_main_available * 1024; +-#else +- struct meminfo_info *mem_info; +- if (procps_meminfo_new(&mem_info) < 0) { +- return 0; +- } +- +- return MEMINFO_GET(mem_info, MEMINFO_MEM_AVAILABLE, ul_int) * 1024; +-#endif // HAVE_PROCPS_V3 +-} +-#endif + + std::string generate_uuid() { + boost::uuids::uuid uuid = gen(); |