Merge remote-tracking branch 'origin/pristine'
* origin/pristine: (396 commits) irc/anope-devel: hook to build devel/jujutsu: upgrade to version 0.31.0 dns/py-dnspython: Refactor www/py-wsaccel: Set EXPIRATION_DATE 2025-08-03 www/py-autobahn: Remove ACCELERATE OPTION deskutils/birdtray: Return to pool security/snort3: Update version 3.9.0.0=>3.9.1.0 devel/libthreadar: Update version 1.5.2=>1.6.0 devel/cirrus-cli: Update version 0.137.4=>0.138.0 databases/freetds-devel: Update version 1.5.97=>1.5.99 comms/libmodbus: Update version 3.1.10=>3.1.11 net/gnome-online-accounts: Update to 3.54.4 devel/jsonrpc-glib: Update to 3.44.2 devel/rubygem-test-unit: Update to 3.6.9 devel/rubygem-google-apis-iam_v1: Update to 0.71.0 www/py-notebook: Update to 7.4.4 www/py-django52: Update to 5.2.4 german/mythes: Update to 2025.06.29 www/rubygem-selenium-webdriver: Update to 4.34.0 www/rubygem-jwt: Update to 2.10.2 ...
This commit is contained in:
@@ -1773,6 +1773,7 @@ devel/bitkeeper
|
|||||||
devel/blitz
|
devel/blitz
|
||||||
devel/bugzilla44
|
devel/bugzilla44
|
||||||
devel/bugzilla50
|
devel/bugzilla50
|
||||||
|
devel/bustle
|
||||||
devel/cargo-depgraph
|
devel/cargo-depgraph
|
||||||
devel/cc65
|
devel/cc65
|
||||||
devel/cervisia
|
devel/cervisia
|
||||||
@@ -9697,6 +9698,7 @@ x11-themes/numix-icon-theme-circle
|
|||||||
x11-themes/openbox-arc-theme
|
x11-themes/openbox-arc-theme
|
||||||
x11-themes/oxygen-icons
|
x11-themes/oxygen-icons
|
||||||
x11-themes/papirus-icon-theme
|
x11-themes/papirus-icon-theme
|
||||||
|
x11-themes/plasma6-aurorae
|
||||||
x11-themes/plasma6-breeze
|
x11-themes/plasma6-breeze
|
||||||
x11-themes/plasma6-breeze-gtk
|
x11-themes/plasma6-breeze-gtk
|
||||||
x11-themes/plasma6-kde-gtk-config
|
x11-themes/plasma6-kde-gtk-config
|
||||||
@@ -10083,6 +10085,7 @@ x11-wm/picom
|
|||||||
x11-wm/piewm
|
x11-wm/piewm
|
||||||
x11-wm/plasma6-kdecoration
|
x11-wm/plasma6-kdecoration
|
||||||
x11-wm/plasma6-kwin
|
x11-wm/plasma6-kwin
|
||||||
|
x11-wm/plasma6-kwin-x11
|
||||||
x11-wm/pwm
|
x11-wm/pwm
|
||||||
x11-wm/qtile
|
x11-wm/qtile
|
||||||
x11-wm/ratpoison
|
x11-wm/ratpoison
|
||||||
|
|||||||
@@ -4616,8 +4616,8 @@ devel/py-openapi-codec|devel/py-openapi-core|2025-06-30|Has expired: Upstream ar
|
|||||||
devel/linenoise-ng||2025-06-30|Has expired: Upstream repo archived Oct 28, 2020
|
devel/linenoise-ng||2025-06-30|Has expired: Upstream repo archived Oct 28, 2020
|
||||||
devel/libflatarray||2025-06-30|Has expired: Last activity from upstream 5 years ago and last release in 2016
|
devel/libflatarray||2025-06-30|Has expired: Last activity from upstream 5 years ago and last release in 2016
|
||||||
devel/bogofilter-bdb||2025-06-30|Has expired: The Berkeley DB interface is obsolete. Read UPDATING and use one of the other devel/bogofilter* ports instead
|
devel/bogofilter-bdb||2025-06-30|Has expired: The Berkeley DB interface is obsolete. Read UPDATING and use one of the other devel/bogofilter* ports instead
|
||||||
misc/e2fsprogs-libuuid||2025-06-30|Use misc/libuuid (from util-linux) instead
|
misc/e2fsprogs-libuuid|misc/libuuid|2025-06-30|Replaced by util-linux based libuuid
|
||||||
filesystems/e2fsprogs-libblkid||2025-06-30|Use filesystems/libblkid (from util-linux) instead
|
filesystems/e2fsprogs-libblkid|filesystems/libblkid|2025-06-30|Replaced by util-linux based libblkid
|
||||||
graphics/rigsofrods-pagedgeometry|graphics/pagedgeometry|2025-06-30|Switch to the upstream version
|
graphics/rigsofrods-pagedgeometry|graphics/pagedgeometry|2025-06-30|Switch to the upstream version
|
||||||
net/net6||2025-06-30|Has expired: Abandoned upstream, repo archived Nov 26, 2020
|
net/net6||2025-06-30|Has expired: Abandoned upstream, repo archived Nov 26, 2020
|
||||||
devel/py-coreapi|devel/py-openapi-core|2025-06-30|Has expired: Upstream archived the repository. Please use devel/py-openapi-core instead
|
devel/py-coreapi|devel/py-openapi-core|2025-06-30|Has expired: Upstream archived the repository. Please use devel/py-openapi-core instead
|
||||||
@@ -4641,3 +4641,9 @@ devel/rubygem-aws-sdk-nimblestudio||2025-06-30|Remove obsoleted port
|
|||||||
devel/rubygem-aws-sdk-privatenetworks||2025-06-30|Remove obsoleted port
|
devel/rubygem-aws-sdk-privatenetworks||2025-06-30|Remove obsoleted port
|
||||||
devel/rubygem-aws-sdk-ssooidc||2025-06-30|Remove obsoleted port
|
devel/rubygem-aws-sdk-ssooidc||2025-06-30|Remove obsoleted port
|
||||||
devel/rubygem-aws-sdk-worklink||2025-06-30|Remove obsoleted port
|
devel/rubygem-aws-sdk-worklink||2025-06-30|Remove obsoleted port
|
||||||
|
lang/linux-dotnet11-sdk||2025-07-01|Removed: Depends on expired lang/linux-dotnet11-runtime, MASTER_SITES gone
|
||||||
|
lang/linux-dotnet10-runtime||2025-07-01|Has expired: Ancient version, no practical use
|
||||||
|
lang/linux-dotnet11-runtime||2025-07-01|Has expired: Ancient version, no practical use
|
||||||
|
lang/linux-dotnet-sdk||2025-07-01|Removed: Depends on expired lang/linux-dotnet-runtime, MASTER_SITES gone
|
||||||
|
lang/linux-dotnet-runtime||2025-07-01|Has expired: Ancient version, no practical use
|
||||||
|
lang/linux-dotnet-cli||2025-07-01|Removed, depends on removed lang/linux-dotnet-runtime
|
||||||
|
|||||||
@@ -17,6 +17,5 @@ SSP_Include_MAINTAINER= portmgr@ServBSD.org
|
|||||||
# Overridable as a user may want to use -fstack-protector-all
|
# Overridable as a user may want to use -fstack-protector-all
|
||||||
SSP_CFLAGS?= -fstack-protector-strong
|
SSP_CFLAGS?= -fstack-protector-strong
|
||||||
CFLAGS+= ${SSP_CFLAGS}
|
CFLAGS+= ${SSP_CFLAGS}
|
||||||
LDFLAGS+= ${SSP_CFLAGS}
|
|
||||||
. endif
|
. endif
|
||||||
.endif
|
.endif
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
# the 3 implementations of readelf we can use have different output, but they all have a similarity
|
# the 3 implementations of readelf we can use have different output, but they all have a similarity
|
||||||
# for the .gnu.version_d section they all have the symbol version in last element of their output
|
# for the .gnu.version_d section they all have the symbol version in last element of their output
|
||||||
|
|||||||
+1
-1
@@ -97,7 +97,7 @@ WRKSRC_crate_${_crate}= ${WRKDIR}/${_wrksrc}
|
|||||||
|
|
||||||
CARGO_BUILDDEP?= yes
|
CARGO_BUILDDEP?= yes
|
||||||
. if ${CARGO_BUILDDEP:tl} == "yes"
|
. if ${CARGO_BUILDDEP:tl} == "yes"
|
||||||
BUILD_DEPENDS+= ${RUST_DEFAULT}>=1.87.0:lang/${RUST_DEFAULT}
|
BUILD_DEPENDS+= ${RUST_DEFAULT}>=1.88.0:lang/${RUST_DEFAULT}
|
||||||
. elif ${CARGO_BUILDDEP:tl} == "any-version"
|
. elif ${CARGO_BUILDDEP:tl} == "any-version"
|
||||||
BUILD_DEPENDS+= ${RUST_DEFAULT}>=0:lang/${RUST_DEFAULT}
|
BUILD_DEPENDS+= ${RUST_DEFAULT}>=0:lang/${RUST_DEFAULT}
|
||||||
. endif
|
. endif
|
||||||
|
|||||||
+1
-1
@@ -37,7 +37,7 @@ _MLT_NODEPEND= yes
|
|||||||
. endif
|
. endif
|
||||||
|
|
||||||
# Library dependencies
|
# Library dependencies
|
||||||
_MLT7_VERSION= 7.30.0
|
_MLT7_VERSION= 7.32.0
|
||||||
_MLT7_PORTNAME= mlt7
|
_MLT7_PORTNAME= mlt7
|
||||||
_MLT7_LIB= libmlt-7.so
|
_MLT7_LIB= libmlt-7.so
|
||||||
_MLT7_MELT= ${LOCALBASE}/bin/melt-7
|
_MLT7_MELT= ${LOCALBASE}/bin/melt-7
|
||||||
|
|||||||
+6
-2
@@ -110,7 +110,7 @@ DIST_SUBDIR= PECL
|
|||||||
|
|
||||||
PHPBASE?= ${LOCALBASE}
|
PHPBASE?= ${LOCALBASE}
|
||||||
|
|
||||||
_ALL_PHP_VERSIONS= 81 82 83 84
|
_ALL_PHP_VERSIONS= 81 82 83 84 85
|
||||||
|
|
||||||
# Make the already installed PHP the default one.
|
# Make the already installed PHP the default one.
|
||||||
. if exists(${PHPBASE}/etc/php.conf)
|
. if exists(${PHPBASE}/etc/php.conf)
|
||||||
@@ -179,7 +179,10 @@ PHP_VER= ${FLAVOR:S/^php//}
|
|||||||
(${FLAVOR:Mphp[0-9][0-9]} && ${FLAVOR} != ${FLAVORS:[1]})
|
(${FLAVOR:Mphp[0-9][0-9]} && ${FLAVOR} != ${FLAVORS:[1]})
|
||||||
# When adding a version, please keep the comment in
|
# When adding a version, please keep the comment in
|
||||||
# Mk/bsd.default-versions.mk in sync.
|
# Mk/bsd.default-versions.mk in sync.
|
||||||
. if ${PHP_VER} == 84
|
. if ${PHP_VER} == 85
|
||||||
|
PHP_EXT_DIR= 20240925
|
||||||
|
PHP_EXT_INC= hash json openssl pcre random spl
|
||||||
|
. elif ${PHP_VER} == 84
|
||||||
PHP_EXT_DIR= 20240924
|
PHP_EXT_DIR= 20240924
|
||||||
PHP_EXT_INC= hash json openssl pcre random spl
|
PHP_EXT_INC= hash json openssl pcre random spl
|
||||||
. elif ${PHP_VER} == 83
|
. elif ${PHP_VER} == 83
|
||||||
@@ -387,6 +390,7 @@ _USE_PHP_VER81= ${_USE_PHP_ALL}
|
|||||||
_USE_PHP_VER82= ${_USE_PHP_ALL}
|
_USE_PHP_VER82= ${_USE_PHP_ALL}
|
||||||
_USE_PHP_VER83= ${_USE_PHP_ALL}
|
_USE_PHP_VER83= ${_USE_PHP_ALL}
|
||||||
_USE_PHP_VER84= ${_USE_PHP_ALL}
|
_USE_PHP_VER84= ${_USE_PHP_ALL}
|
||||||
|
_USE_PHP_VER85= ${_USE_PHP_ALL}
|
||||||
|
|
||||||
bcmath_DEPENDS= math/php${PHP_VER}-bcmath
|
bcmath_DEPENDS= math/php${PHP_VER}-bcmath
|
||||||
bitset_DEPENDS= math/pecl-bitset@${PHP_FLAVOR}
|
bitset_DEPENDS= math/pecl-bitset@${PHP_FLAVOR}
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ PERL5_DEFAULT:= ${_PERL5_FROM_BIN:R}
|
|||||||
. endif
|
. endif
|
||||||
# Possible values: 13, 14, 15, 16, 17
|
# Possible values: 13, 14, 15, 16, 17
|
||||||
PGSQL_DEFAULT?= 17
|
PGSQL_DEFAULT?= 17
|
||||||
# Possible values: 8.1, 8.2, 8.3, 8.4
|
# Possible values: 8.1, 8.2, 8.3, 8.4, 8.5
|
||||||
PHP_DEFAULT?= 8.3
|
PHP_DEFAULT?= 8.3
|
||||||
# Possible values: rust, legacy
|
# Possible values: rust, legacy
|
||||||
. if empty(ARCH:Naarch64:Namd64:Narmv7:Ni386:Npowerpc64:Npowerpc64le:Npowerpc:Nriscv64)
|
. if empty(ARCH:Naarch64:Namd64:Narmv7:Ni386:Npowerpc64:Npowerpc64le:Npowerpc:Nriscv64)
|
||||||
|
|||||||
+2
-31
@@ -1171,14 +1171,6 @@ _OSVERSION_MAJOR= ${OSVERSION:C/([0-9]?[0-9])([0-9][0-9])[0-9]{3}/\1/}
|
|||||||
. if !defined(_PKG_VERSION)
|
. if !defined(_PKG_VERSION)
|
||||||
_PKG_VERSION!= ${PKG_BIN} -v
|
_PKG_VERSION!= ${PKG_BIN} -v
|
||||||
. endif
|
. endif
|
||||||
# XXX hack for smooth transition towards pkg 1.17
|
|
||||||
_PKG_BEFORE_PKGEXT!= ${PKG_BIN} version -t ${_PKG_VERSION:C/-.*//g} 1.17.0
|
|
||||||
. if ${_PKG_BEFORE_PKGEXT} == "<"
|
|
||||||
_PKG_TRANSITIONING_TO_NEW_EXT= yes
|
|
||||||
_EXPORTED_VARS+= _PKG_TRANSITIONING_TO_NEW_EXT
|
|
||||||
WARNING+= "It is strongly recommended to upgrade to a newer version of pkg first"
|
|
||||||
. endif
|
|
||||||
# XXX End of hack
|
|
||||||
_PKG_STATUS!= ${PKG_VERSION} -t ${_PKG_VERSION:C/-.*//g} ${MINIMAL_PKG_VERSION}
|
_PKG_STATUS!= ${PKG_VERSION} -t ${_PKG_VERSION:C/-.*//g} ${MINIMAL_PKG_VERSION}
|
||||||
. if ${_PKG_STATUS} == "<"
|
. if ${_PKG_STATUS} == "<"
|
||||||
IGNORE= pkg(8) must be version ${MINIMAL_PKG_VERSION} or greater, but you have ${_PKG_VERSION}. You must upgrade the ${PKG_ORIGIN} port first
|
IGNORE= pkg(8) must be version ${MINIMAL_PKG_VERSION} or greater, but you have ${_PKG_VERSION}. You must upgrade the ${PKG_ORIGIN} port first
|
||||||
@@ -2131,20 +2123,11 @@ TMPPLIST?= ${WRKDIR}/.PLIST.mktmp
|
|||||||
_PLIST?= ${WRKDIR}/.PLIST
|
_PLIST?= ${WRKDIR}/.PLIST
|
||||||
|
|
||||||
# backward compatibility for users
|
# backward compatibility for users
|
||||||
. if defined(_PKG_TRANSITIONING_TO_NEW_EXT)
|
. if defined(PKG_SUFX)
|
||||||
. if defined(PKG_NOCOMPRESS)
|
|
||||||
PKG_SUFX?= .tar
|
|
||||||
. else
|
|
||||||
PKG_SUFX?= .txz
|
|
||||||
. endif
|
|
||||||
PKG_COMPRESSION_FORMAT?= ${PKG_SUFX:S/.//}
|
|
||||||
. else
|
|
||||||
. if defined(PKG_SUFX)
|
|
||||||
PKG_COMPRESSION_FORMAT?= ${PKG_SUFX:S/.//}
|
PKG_COMPRESSION_FORMAT?= ${PKG_SUFX:S/.//}
|
||||||
WARNING+= "PKG_SUFX is defined, it should be replaced with PKG_COMPRESSION_FORMAT"
|
WARNING+= "PKG_SUFX is defined, it should be replaced with PKG_COMPRESSION_FORMAT"
|
||||||
. endif
|
|
||||||
PKG_SUFX= .pkg
|
|
||||||
. endif
|
. endif
|
||||||
|
PKG_SUFX= .pkg
|
||||||
. if defined(PKG_NOCOMPRESS)
|
. if defined(PKG_NOCOMPRESS)
|
||||||
PKG_COMPRESSION_FORMAT?= tar
|
PKG_COMPRESSION_FORMAT?= tar
|
||||||
. else
|
. else
|
||||||
@@ -3365,18 +3348,6 @@ _EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTFILE}
|
|||||||
${PKGLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY}
|
${PKGLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY}
|
||||||
${INSTALL} -l rs ${PKGFILE} ${PKGLATESTFILE}
|
${INSTALL} -l rs ${PKGFILE} ${PKGLATESTFILE}
|
||||||
|
|
||||||
. if !defined(_PKG_TRANSITIONING_TO_NEW_EXT) && ${PKG_COMPRESSION_FORMAT} == txz
|
|
||||||
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGOLDLATESTFILE} ${PKGOLDSIGFILE}
|
|
||||||
|
|
||||||
${PKGOLDLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY}
|
|
||||||
${INSTALL} -l rs ${PKGFILE} ${PKGOLDLATESTFILE}
|
|
||||||
|
|
||||||
# Temporary workaround to be deleted once every supported version of FreeBSD
|
|
||||||
# have a bootstrap which handles the pkg extension.
|
|
||||||
|
|
||||||
${PKGOLDSIGFILE}: ${PKGLATESTREPOSITORY}
|
|
||||||
${INSTALL} -l rs pkg.pkg.sig ${PKGOLDSIGFILE}
|
|
||||||
. endif
|
|
||||||
. endif
|
. endif
|
||||||
|
|
||||||
. endif
|
. endif
|
||||||
|
|||||||
@@ -137,6 +137,10 @@
|
|||||||
SUBDIR += php84-phar
|
SUBDIR += php84-phar
|
||||||
SUBDIR += php84-zip
|
SUBDIR += php84-zip
|
||||||
SUBDIR += php84-zlib
|
SUBDIR += php84-zlib
|
||||||
|
SUBDIR += php85-bz2
|
||||||
|
SUBDIR += php85-phar
|
||||||
|
SUBDIR += php85-zip
|
||||||
|
SUBDIR += php85-zlib
|
||||||
SUBDIR += pigz
|
SUBDIR += pigz
|
||||||
SUBDIR += pixz
|
SUBDIR += pixz
|
||||||
SUBDIR += plakar
|
SUBDIR += plakar
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= ouch
|
PORTNAME= ouch
|
||||||
DISTVERSION= 0.6.1
|
DISTVERSION= 0.6.1
|
||||||
PORTREVISION= 1
|
PORTREVISION= 2
|
||||||
CATEGORIES= archivers
|
CATEGORIES= archivers
|
||||||
|
|
||||||
MAINTAINER= yuri@FreeBSD.org
|
MAINTAINER= yuri@FreeBSD.org
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= archivers
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -bz2
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= archivers
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -phar
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
--- config.m4.orig 2025-07-01 21:58:05 UTC
|
||||||
|
+++ config.m4
|
||||||
|
@@ -32,8 +32,4 @@ if test "$PHP_PHAR" != "no"; then
|
||||||
|
PHP_ADD_EXTENSION_DEP(phar, spl)
|
||||||
|
PHP_ADD_MAKEFILE_FRAGMENT
|
||||||
|
|
||||||
|
- AC_CONFIG_FILES([
|
||||||
|
- $ext_dir/phar.1
|
||||||
|
- $ext_dir/phar.phar.1
|
||||||
|
- ])
|
||||||
|
fi
|
||||||
@@ -0,0 +1,241 @@
|
|||||||
|
--- phar_path_check.c.orig 2025-07-02 12:00:06 UTC
|
||||||
|
+++ phar_path_check.c
|
||||||
|
@@ -0,0 +1,238 @@
|
||||||
|
+/* Generated by re2c 3.1 */
|
||||||
|
+/*
|
||||||
|
+ +----------------------------------------------------------------------+
|
||||||
|
+ | phar php single-file executable PHP extension |
|
||||||
|
+ +----------------------------------------------------------------------+
|
||||||
|
+ | 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. |
|
||||||
|
+ +----------------------------------------------------------------------+
|
||||||
|
+ | Authors: Marcus Boerger <helly@php.net> |
|
||||||
|
+ +----------------------------------------------------------------------+
|
||||||
|
+*/
|
||||||
|
+
|
||||||
|
+#include "phar_internal.h"
|
||||||
|
+
|
||||||
|
+phar_path_check_result phar_path_check(char **s, size_t *len, const char **error)
|
||||||
|
+{
|
||||||
|
+ const unsigned char *p = (const unsigned char*)*s;
|
||||||
|
+ const unsigned char *m;
|
||||||
|
+
|
||||||
|
+ if (*len == 1 && *p == '.') {
|
||||||
|
+ *error = "current directory reference";
|
||||||
|
+ return pcr_err_curr_dir;
|
||||||
|
+ } else if (*len == 2 && p[0] == '.' && p[1] == '.') {
|
||||||
|
+ *error = "upper directory reference";
|
||||||
|
+ return pcr_err_up_dir;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#define YYCTYPE unsigned char
|
||||||
|
+#define YYCURSOR p
|
||||||
|
+#define YYLIMIT p+*len
|
||||||
|
+#define YYMARKER m
|
||||||
|
+#define YYFILL(n) do {} while (0)
|
||||||
|
+
|
||||||
|
+loop:
|
||||||
|
+
|
||||||
|
+{
|
||||||
|
+ YYCTYPE yych;
|
||||||
|
+ unsigned int yyaccept = 0;
|
||||||
|
+ if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
|
||||||
|
+ yych = *YYCURSOR;
|
||||||
|
+ if (yych <= '[') {
|
||||||
|
+ if (yych <= ')') {
|
||||||
|
+ if (yych <= '\f') {
|
||||||
|
+ if (yych >= 0x01) goto yy1;
|
||||||
|
+ } else {
|
||||||
|
+ if (yych <= '\r') goto yy3;
|
||||||
|
+ if (yych <= 0x19) goto yy1;
|
||||||
|
+ goto yy4;
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ if (yych <= '/') {
|
||||||
|
+ if (yych <= '*') goto yy6;
|
||||||
|
+ if (yych <= '.') goto yy4;
|
||||||
|
+ goto yy7;
|
||||||
|
+ } else {
|
||||||
|
+ if (yych == '?') goto yy8;
|
||||||
|
+ goto yy4;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ if (yych <= 0xEC) {
|
||||||
|
+ if (yych <= 0xC1) {
|
||||||
|
+ if (yych <= '\\') goto yy9;
|
||||||
|
+ if (yych <= 0x7F) goto yy4;
|
||||||
|
+ goto yy1;
|
||||||
|
+ } else {
|
||||||
|
+ if (yych <= 0xDF) goto yy10;
|
||||||
|
+ if (yych <= 0xE0) goto yy11;
|
||||||
|
+ goto yy12;
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ if (yych <= 0xF0) {
|
||||||
|
+ if (yych <= 0xED) goto yy13;
|
||||||
|
+ if (yych <= 0xEF) goto yy12;
|
||||||
|
+ goto yy14;
|
||||||
|
+ } else {
|
||||||
|
+ if (yych <= 0xF3) goto yy15;
|
||||||
|
+ if (yych <= 0xF4) goto yy16;
|
||||||
|
+ goto yy1;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+ {
|
||||||
|
+ if (**s == '/') {
|
||||||
|
+ (*s)++;
|
||||||
|
+ (*len)--;
|
||||||
|
+ }
|
||||||
|
+ if ((p - (const unsigned char*)*s) - 1 != *len)
|
||||||
|
+ {
|
||||||
|
+ *error ="illegal character";
|
||||||
|
+ return pcr_err_illegal_char;
|
||||||
|
+ }
|
||||||
|
+ *error = NULL;
|
||||||
|
+ return pcr_is_ok;
|
||||||
|
+ }
|
||||||
|
+yy1:
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+yy2:
|
||||||
|
+ {
|
||||||
|
+ *error ="illegal character";
|
||||||
|
+ return pcr_err_illegal_char;
|
||||||
|
+ }
|
||||||
|
+yy3:
|
||||||
|
+ yych = *++YYCURSOR;
|
||||||
|
+ if (yych == '\n') goto yy1;
|
||||||
|
+ goto yy2;
|
||||||
|
+yy4:
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+yy5:
|
||||||
|
+ {
|
||||||
|
+ goto loop;
|
||||||
|
+ }
|
||||||
|
+yy6:
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+ {
|
||||||
|
+ *error = "star";
|
||||||
|
+ return pcr_err_star;
|
||||||
|
+ }
|
||||||
|
+yy7:
|
||||||
|
+ yyaccept = 0;
|
||||||
|
+ yych = *(YYMARKER = ++YYCURSOR);
|
||||||
|
+ if (yych <= '-') goto yy5;
|
||||||
|
+ if (yych <= '.') goto yy17;
|
||||||
|
+ if (yych <= '/') goto yy19;
|
||||||
|
+ goto yy5;
|
||||||
|
+yy8:
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+ {
|
||||||
|
+ if (**s == '/') {
|
||||||
|
+ (*s)++;
|
||||||
|
+ }
|
||||||
|
+ *len = (p - (const unsigned char*)*s) -1;
|
||||||
|
+ *error = NULL;
|
||||||
|
+ return pcr_use_query;
|
||||||
|
+ }
|
||||||
|
+yy9:
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+ {
|
||||||
|
+ *error = "back-slash";
|
||||||
|
+ return pcr_err_back_slash;
|
||||||
|
+ }
|
||||||
|
+yy10:
|
||||||
|
+ yych = *++YYCURSOR;
|
||||||
|
+ if (yych <= 0x7F) goto yy2;
|
||||||
|
+ if (yych <= 0xBF) goto yy4;
|
||||||
|
+ goto yy2;
|
||||||
|
+yy11:
|
||||||
|
+ yyaccept = 1;
|
||||||
|
+ yych = *(YYMARKER = ++YYCURSOR);
|
||||||
|
+ if (yych <= 0x9F) goto yy2;
|
||||||
|
+ if (yych <= 0xBF) goto yy20;
|
||||||
|
+ goto yy2;
|
||||||
|
+yy12:
|
||||||
|
+ yyaccept = 1;
|
||||||
|
+ yych = *(YYMARKER = ++YYCURSOR);
|
||||||
|
+ if (yych <= 0x7F) goto yy2;
|
||||||
|
+ if (yych <= 0xBF) goto yy20;
|
||||||
|
+ goto yy2;
|
||||||
|
+yy13:
|
||||||
|
+ yyaccept = 1;
|
||||||
|
+ yych = *(YYMARKER = ++YYCURSOR);
|
||||||
|
+ if (yych <= 0x7F) goto yy2;
|
||||||
|
+ if (yych <= 0x9F) goto yy20;
|
||||||
|
+ goto yy2;
|
||||||
|
+yy14:
|
||||||
|
+ yyaccept = 1;
|
||||||
|
+ yych = *(YYMARKER = ++YYCURSOR);
|
||||||
|
+ if (yych <= 0x8F) goto yy2;
|
||||||
|
+ if (yych <= 0xBF) goto yy21;
|
||||||
|
+ goto yy2;
|
||||||
|
+yy15:
|
||||||
|
+ yyaccept = 1;
|
||||||
|
+ yych = *(YYMARKER = ++YYCURSOR);
|
||||||
|
+ if (yych <= 0x7F) goto yy2;
|
||||||
|
+ if (yych <= 0xBF) goto yy21;
|
||||||
|
+ goto yy2;
|
||||||
|
+yy16:
|
||||||
|
+ yyaccept = 1;
|
||||||
|
+ yych = *(YYMARKER = ++YYCURSOR);
|
||||||
|
+ if (yych <= 0x7F) goto yy2;
|
||||||
|
+ if (yych <= 0x8F) goto yy21;
|
||||||
|
+ goto yy2;
|
||||||
|
+yy17:
|
||||||
|
+ yych = *++YYCURSOR;
|
||||||
|
+ if (yych <= 0x00) goto yy22;
|
||||||
|
+ if (yych <= '-') goto yy18;
|
||||||
|
+ if (yych <= '.') goto yy23;
|
||||||
|
+ if (yych <= '/') goto yy22;
|
||||||
|
+yy18:
|
||||||
|
+ YYCURSOR = YYMARKER;
|
||||||
|
+ if (yyaccept == 0) {
|
||||||
|
+ goto yy5;
|
||||||
|
+ } else {
|
||||||
|
+ goto yy2;
|
||||||
|
+ }
|
||||||
|
+yy19:
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+ {
|
||||||
|
+ *error = "double slash";
|
||||||
|
+ return pcr_err_double_slash;
|
||||||
|
+ }
|
||||||
|
+yy20:
|
||||||
|
+ yych = *++YYCURSOR;
|
||||||
|
+ if (yych <= 0x7F) goto yy18;
|
||||||
|
+ if (yych <= 0xBF) goto yy4;
|
||||||
|
+ goto yy18;
|
||||||
|
+yy21:
|
||||||
|
+ yych = *++YYCURSOR;
|
||||||
|
+ if (yych <= 0x7F) goto yy18;
|
||||||
|
+ if (yych <= 0xBF) goto yy20;
|
||||||
|
+ goto yy18;
|
||||||
|
+yy22:
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+ {
|
||||||
|
+ *error = "current directory reference";
|
||||||
|
+ return pcr_err_curr_dir;
|
||||||
|
+ }
|
||||||
|
+yy23:
|
||||||
|
+ yych = *++YYCURSOR;
|
||||||
|
+ if (yych <= 0x00) goto yy24;
|
||||||
|
+ if (yych != '/') goto yy18;
|
||||||
|
+yy24:
|
||||||
|
+ ++YYCURSOR;
|
||||||
|
+ {
|
||||||
|
+ *error = "upper directory reference";
|
||||||
|
+ return pcr_err_up_dir;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= archivers
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -zip
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= archivers
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -zlib
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
--- zlib.c.orig 2023-06-06 15:54:29 UTC
|
||||||
|
+++ zlib.c
|
||||||
|
@@ -1380,6 +1380,7 @@ static PHP_MSHUTDOWN_FUNCTION(zlib)
|
||||||
|
/* {{{ PHP_RINIT_FUNCTION */
|
||||||
|
static PHP_RINIT_FUNCTION(zlib)
|
||||||
|
{
|
||||||
|
+ ZLIBG(output_compression) = 0;
|
||||||
|
ZLIBG(compression_coding) = 0;
|
||||||
|
if (!ZLIBG(handler_registered)) {
|
||||||
|
ZLIBG(output_compression) = ZLIBG(output_compression_default);
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= cramjam
|
PORTNAME= cramjam
|
||||||
PORTVERSION= 2.10.0
|
PORTVERSION= 2.10.0
|
||||||
PORTREVISION= 1
|
PORTREVISION= 2
|
||||||
CATEGORIES= archivers python
|
CATEGORIES= archivers python
|
||||||
MASTER_SITES= PYPI
|
MASTER_SITES= PYPI
|
||||||
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= ebur128
|
PORTNAME= ebur128
|
||||||
DISTVERSION= 0.1.10
|
DISTVERSION= 0.1.10
|
||||||
PORTREVISION= 5
|
PORTREVISION= 6
|
||||||
CATEGORIES= audio
|
CATEGORIES= audio
|
||||||
|
|
||||||
MAINTAINER= diizzy@FreeBSD.org
|
MAINTAINER= diizzy@FreeBSD.org
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
PORTNAME= lewton
|
PORTNAME= lewton
|
||||||
DISTVERSION= 0.10.2
|
DISTVERSION= 0.10.2
|
||||||
PORTREVISION= 37
|
PORTREVISION= 38
|
||||||
CATEGORIES= audio
|
CATEGORIES= audio
|
||||||
|
|
||||||
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
|
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
|
||||||
PATCHFILES+= 05f96f6e6976.patch:-p1 # https://github.com/RustAudio/lewton/pull/97
|
PATCHFILES+= 05f96f6e6976.patch:-p1 # https://github.com/RustAudio/lewton/pull/97
|
||||||
|
|
||||||
MAINTAINER= jbeich@FreeBSD.org
|
MAINTAINER= ports@FreeBSD.org
|
||||||
COMMENT= Rust vorbis decoder
|
COMMENT= Rust vorbis decoder
|
||||||
WWW= https://github.com/RustAudio/lewton
|
WWW= https://github.com/RustAudio/lewton
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
PORTNAME= libdiscid
|
PORTNAME= libdiscid
|
||||||
PORTVERSION= 0.6.4
|
PORTVERSION= 0.6.5
|
||||||
PORTREVISION= 1
|
|
||||||
CATEGORIES= audio
|
CATEGORIES= audio
|
||||||
MASTER_SITES= https://github.com/metabrainz/${PORTNAME}/releases/download/v${PORTVERSION}/ \
|
MASTER_SITES= https://github.com/metabrainz/${PORTNAME}/releases/download/v${PORTVERSION}/ \
|
||||||
http://ftp.osuosl.org/pub/musicbrainz/${PORTNAME}/ \
|
http://ftp.osuosl.org/pub/musicbrainz/${PORTNAME}/ \
|
||||||
http://ftp.eu.metabrainz.org/pub/musicbrainz/${PORTNAME}/
|
http://ftp.eu.metabrainz.org/pub/musicbrainz/${PORTNAME}/
|
||||||
|
|
||||||
PATCH_SITES= https://github.com/metabrainz/libdiscid/commit/
|
|
||||||
PATCHFILES= b89c14599fd8798eef64431bb05e8705aaaea683.patch:-p1 #Fix pkgconfig file (PR: 269990)
|
|
||||||
|
|
||||||
MAINTAINER= jhale@FreeBSD.org
|
MAINTAINER= jhale@FreeBSD.org
|
||||||
COMMENT= Library for creating MusicBrainz DiscIDs
|
COMMENT= Library for creating MusicBrainz DiscIDs
|
||||||
WWW= https://musicbrainz.org/doc/libdiscid
|
WWW= https://musicbrainz.org/doc/libdiscid
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
TIMESTAMP = 1678126118
|
TIMESTAMP = 1751063727
|
||||||
SHA256 (libdiscid-0.6.4.tar.gz) = dd5e8f1c9aead442e23b749a9cc9336372e62e88ad7079a2b62895b0390cb282
|
SHA256 (libdiscid-0.6.5.tar.gz) = 72dbb493e07336418fe2056f0ebc7ce544eedb500bb896cc1cc04bd078c2d530
|
||||||
SIZE (libdiscid-0.6.4.tar.gz) = 393070
|
SIZE (libdiscid-0.6.5.tar.gz) = 396307
|
||||||
SHA256 (b89c14599fd8798eef64431bb05e8705aaaea683.patch) = d4ada5e46557aeebed18e7e1350227907ce7efd6880360ac195a61746c981b45
|
|
||||||
SIZE (b89c14599fd8798eef64431bb05e8705aaaea683.patch) = 1048
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
include/discid/discid.h
|
include/discid/discid.h
|
||||||
lib/libdiscid.so
|
lib/libdiscid.so
|
||||||
lib/libdiscid.so.0
|
lib/libdiscid.so.0
|
||||||
lib/libdiscid.so.0.6.4
|
lib/libdiscid.so.0.6.5
|
||||||
libdata/pkgconfig/libdiscid.pc
|
libdata/pkgconfig/libdiscid.pc
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= mmtc
|
PORTNAME= mmtc
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 0.3.2
|
DISTVERSION= 0.3.2
|
||||||
PORTREVISION= 20
|
PORTREVISION= 21
|
||||||
CATEGORIES= audio
|
CATEGORIES= audio
|
||||||
|
|
||||||
MAINTAINER= yuri@FreeBSD.org
|
MAINTAINER= yuri@FreeBSD.org
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= netease-music-tui
|
PORTNAME= netease-music-tui
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 0.1.5
|
DISTVERSION= 0.1.5
|
||||||
PORTREVISION= 22
|
PORTREVISION= 23
|
||||||
CATEGORIES= audio
|
CATEGORIES= audio
|
||||||
|
|
||||||
MAINTAINER= yuri@FreeBSD.org
|
MAINTAINER= yuri@FreeBSD.org
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= spotifyd
|
PORTNAME= spotifyd
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 0.4.1
|
DISTVERSION= 0.4.1
|
||||||
PORTREVISION= 2
|
PORTREVISION= 3
|
||||||
CATEGORIES= audio
|
CATEGORIES= audio
|
||||||
|
|
||||||
MAINTAINER= rodrigo@FreeBSD.org
|
MAINTAINER= rodrigo@FreeBSD.org
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
PORTNAME= taglib
|
PORTNAME= taglib
|
||||||
DISTVERSION= 2.1
|
DISTVERSION= 2.1.1
|
||||||
CATEGORIES= audio
|
CATEGORIES= audio
|
||||||
MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/v${DISTVERSION}/ \
|
MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/v${DISTVERSION}/ \
|
||||||
https://taglib.org/releases/
|
https://taglib.org/releases/
|
||||||
@@ -20,11 +20,13 @@ USES= cmake:testing compiler:c++17-lang cpe pathfix
|
|||||||
USE_LDCONFIG= yes
|
USE_LDCONFIG= yes
|
||||||
|
|
||||||
CMAKE_ARGS= -DCMAKE_CXX_VISIBILITY_PRESET=hidden
|
CMAKE_ARGS= -DCMAKE_CXX_VISIBILITY_PRESET=hidden
|
||||||
CMAKE_OFF= BUILD_TESTING
|
|
||||||
CMAKE_ON= VISIBILITY_HIDDEN
|
CMAKE_ON= VISIBILITY_HIDDEN
|
||||||
|
CMAKE_OFF= BUILD_TESTING
|
||||||
|
|
||||||
CMAKE_TESTING_TARGET= check
|
CMAKE_TESTING_TARGET= check
|
||||||
|
|
||||||
|
PLIST_SUB= SHLIB_VERSION=${DISTVERSION}
|
||||||
|
|
||||||
OPTIONS_DEFINE= STATIC
|
OPTIONS_DEFINE= STATIC
|
||||||
OPTIONS_SUB= yes
|
OPTIONS_SUB= yes
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1748765137
|
TIMESTAMP = 1751585437
|
||||||
SHA256 (taglib-2.1.tar.gz) = 95b788b39eaebab41f7e6d1c1d05ceee01a5d1225e4b6d11ed8976e96ba90b0c
|
SHA256 (taglib-2.1.1.tar.gz) = 3716d31f7c83cbf17b67c8cf44dd82b2a2f17e6780472287a16823e70305ddba
|
||||||
SIZE (taglib-2.1.tar.gz) = 1485749
|
SIZE (taglib-2.1.1.tar.gz) = 1522929
|
||||||
|
|||||||
@@ -123,10 +123,10 @@ lib/cmake/taglib/taglib-targets.cmake
|
|||||||
%%STATIC%%lib/libtag.a
|
%%STATIC%%lib/libtag.a
|
||||||
%%NO_STATIC%%lib/libtag.so
|
%%NO_STATIC%%lib/libtag.so
|
||||||
%%NO_STATIC%%lib/libtag.so.2
|
%%NO_STATIC%%lib/libtag.so.2
|
||||||
%%NO_STATIC%%lib/libtag.so.2.1.0
|
%%NO_STATIC%%lib/libtag.so.%%SHLIB_VERSION%%
|
||||||
%%STATIC%%lib/libtag_c.a
|
%%STATIC%%lib/libtag_c.a
|
||||||
%%NO_STATIC%%lib/libtag_c.so
|
%%NO_STATIC%%lib/libtag_c.so
|
||||||
%%NO_STATIC%%lib/libtag_c.so.2
|
%%NO_STATIC%%lib/libtag_c.so.2
|
||||||
%%NO_STATIC%%lib/libtag_c.so.2.1.0
|
%%NO_STATIC%%lib/libtag_c.so.%%SHLIB_VERSION%%
|
||||||
libdata/pkgconfig/taglib.pc
|
libdata/pkgconfig/taglib.pc
|
||||||
libdata/pkgconfig/taglib_c.pc
|
libdata/pkgconfig/taglib_c.pc
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= hyperfine
|
PORTNAME= hyperfine
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 1.19.0
|
DISTVERSION= 1.19.0
|
||||||
PORTREVISION= 3
|
PORTREVISION= 4
|
||||||
CATEGORIES= benchmarks
|
CATEGORIES= benchmarks
|
||||||
|
|
||||||
MAINTAINER= pizzamig@FreeBSD.org
|
MAINTAINER= pizzamig@FreeBSD.org
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= inferno
|
PORTNAME= inferno
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 0.12.2
|
DISTVERSION= 0.12.2
|
||||||
PORTREVISION= 2
|
PORTREVISION= 3
|
||||||
CATEGORIES= benchmarks
|
CATEGORIES= benchmarks
|
||||||
|
|
||||||
MAINTAINER= yuri@FreeBSD.org
|
MAINTAINER= yuri@FreeBSD.org
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= libmodbus
|
PORTNAME= libmodbus
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 3.1.8
|
DISTVERSION= 3.1.11
|
||||||
CATEGORIES= comms
|
CATEGORIES= comms
|
||||||
|
|
||||||
MAINTAINER= bofh@FreeBSD.org
|
MAINTAINER= bofh@FreeBSD.org
|
||||||
@@ -26,10 +26,10 @@ OPTIONS_SUB= yes
|
|||||||
MANPAGES_BUILD_DEPENDS= go-md2man:textproc/go-md2man
|
MANPAGES_BUILD_DEPENDS= go-md2man:textproc/go-md2man
|
||||||
|
|
||||||
post-install-MANPAGES-on:
|
post-install-MANPAGES-on:
|
||||||
go-md2man -in docs/index.md | gzip > ${STAGEDIR}${PREFIX}/share/man/man7/libmodbus.7.gz
|
go-md2man -in docs/index.md | ${GZIP_CMD} > ${STAGEDIR}${PREFIX}/share/man/man7/libmodbus.7.gz
|
||||||
for files in `${FIND} ${WRKSRC}/docs -type f -name 'modbus*.md'`; do \
|
for files in `${FIND} ${WRKSRC}/docs -type f -name 'modbus*.md'`; do \
|
||||||
basefiles=`basename $${files} .md`; \
|
basefiles=`basename $${files} .md`; \
|
||||||
go-md2man -in $${files} | gzip > ${STAGEDIR}${PREFIX}/share/man/man3/$${basefiles}.3.gz; \
|
go-md2man -in $${files} | ${GZIP_CMD} > ${STAGEDIR}${PREFIX}/share/man/man3/$${basefiles}.3.gz; \
|
||||||
done
|
done
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
.include <bsd.port.mk>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1751271066
|
TIMESTAMP = 1751555493
|
||||||
SHA256 (stephane-libmodbus-v3.1.8_GH0.tar.gz) = 4cabc5dc01b2faab853474c5d9db6386d04f37a476f843e239bff25480310adb
|
SHA256 (stephane-libmodbus-v3.1.11_GH0.tar.gz) = 8a750452ef86a53de6cec6fbca67bd5be08d0a1e87278a422fbce3003fd42d99
|
||||||
SIZE (stephane-libmodbus-v3.1.8_GH0.tar.gz) = 201697
|
SIZE (stephane-libmodbus-v3.1.11_GH0.tar.gz) = 207911
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
--- src/modbus-tcp.c.orig 2025-07-03 21:07:28 UTC
|
||||||
|
+++ src/modbus-tcp.c
|
||||||
|
@@ -257,7 +257,7 @@ static int _modbus_tcp_set_ipv4_options(int s)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#ifndef OS_WIN32
|
||||||
|
+#if !defined(OS_WIN32) && !defined(__FreeBSD__)
|
||||||
|
/**
|
||||||
|
* Cygwin defines IPTOS_LOWDELAY but can't handle that flag so it's
|
||||||
|
* necessary to workaround that problem.
|
||||||
@@ -8,6 +8,8 @@ lib/libmodbus.so.5.1.0
|
|||||||
libdata/pkgconfig/libmodbus.pc
|
libdata/pkgconfig/libmodbus.pc
|
||||||
%%MANPAGES%%share/man/man3/modbus_close.3.gz
|
%%MANPAGES%%share/man/man3/modbus_close.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_connect.3.gz
|
%%MANPAGES%%share/man/man3/modbus_connect.3.gz
|
||||||
|
%%MANPAGES%%share/man/man3/modbus_disable_quirks.3.gz
|
||||||
|
%%MANPAGES%%share/man/man3/modbus_enable_quirks.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_flush.3.gz
|
%%MANPAGES%%share/man/man3/modbus_flush.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_free.3.gz
|
%%MANPAGES%%share/man/man3/modbus_free.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_get_byte_from_bits.3.gz
|
%%MANPAGES%%share/man/man3/modbus_get_byte_from_bits.3.gz
|
||||||
@@ -46,6 +48,7 @@ libdata/pkgconfig/libmodbus.pc
|
|||||||
%%MANPAGES%%share/man/man3/modbus_rtu_set_rts_delay.3.gz
|
%%MANPAGES%%share/man/man3/modbus_rtu_set_rts_delay.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_rtu_set_serial_mode.3.gz
|
%%MANPAGES%%share/man/man3/modbus_rtu_set_serial_mode.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_send_raw_request.3.gz
|
%%MANPAGES%%share/man/man3/modbus_send_raw_request.3.gz
|
||||||
|
%%MANPAGES%%share/man/man3/modbus_send_raw_request_tid.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_set_bits_from_byte.3.gz
|
%%MANPAGES%%share/man/man3/modbus_set_bits_from_byte.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_set_bits_from_bytes.3.gz
|
%%MANPAGES%%share/man/man3/modbus_set_bits_from_bytes.3.gz
|
||||||
%%MANPAGES%%share/man/man3/modbus_set_byte_timeout.3.gz
|
%%MANPAGES%%share/man/man3/modbus_set_byte_timeout.3.gz
|
||||||
@@ -72,6 +75,5 @@ libdata/pkgconfig/libmodbus.pc
|
|||||||
%%MANPAGES%%share/man/man3/modbus_write_registers.3.gz
|
%%MANPAGES%%share/man/man3/modbus_write_registers.3.gz
|
||||||
%%MANPAGES%%share/man/man7/libmodbus.7.gz
|
%%MANPAGES%%share/man/man7/libmodbus.7.gz
|
||||||
%%PORTDOCS%%%%DOCSDIR%%/AUTHORS
|
%%PORTDOCS%%%%DOCSDIR%%/AUTHORS
|
||||||
%%PORTDOCS%%%%DOCSDIR%%/MIGRATION
|
|
||||||
%%PORTDOCS%%%%DOCSDIR%%/NEWS
|
%%PORTDOCS%%%%DOCSDIR%%/NEWS
|
||||||
%%PORTDOCS%%%%DOCSDIR%%/README.md
|
%%PORTDOCS%%%%DOCSDIR%%/README.md
|
||||||
|
|||||||
@@ -1,21 +1,22 @@
|
|||||||
PORTNAME= hid
|
PORTNAME= hid
|
||||||
DISTVERSION= 1.0.7
|
DISTVERSION= 1.0.8
|
||||||
PORTREVISION= 1
|
|
||||||
CATEGORIES= comms python
|
CATEGORIES= comms python
|
||||||
MASTER_SITES= PYPI
|
MASTER_SITES= PYPI
|
||||||
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
||||||
|
|
||||||
MAINTAINER= nxjoseph@protonmail.com
|
MAINTAINER= nxjoseph@protonmail.com
|
||||||
COMMENT= Ctypes bindings to comms/hidapi
|
COMMENT= ctypes bindings for hidapi
|
||||||
WWW= https://github.com/apmorton/pyhidapi
|
WWW= https://github.com/apmorton/pyhidapi
|
||||||
|
|
||||||
LICENSE= MIT
|
LICENSE= MIT
|
||||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||||
|
|
||||||
RUN_DEPENDS= hidapi>0:comms/hidapi
|
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
|
||||||
|
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
|
||||||
|
RUN_DEPENDS= hidapi>=0:comms/hidapi
|
||||||
|
|
||||||
USES= python
|
USES= python
|
||||||
USE_PYTHON= autoplist concurrent distutils
|
USE_PYTHON= autoplist concurrent pep517
|
||||||
|
|
||||||
NO_ARCH= yes
|
NO_ARCH= yes
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1739656219
|
TIMESTAMP = 1751375043
|
||||||
SHA256 (hid-1.0.7.tar.gz) = 3f809e292ab52c4435ad1442c8ef205be4c9ca4eeb80fb47c7d98e0c75527b2a
|
SHA256 (hid-1.0.8.tar.gz) = 5ca129a7b9434ace5e3e429c1092a16792feffaf067a46b666e9c586872cdcfe
|
||||||
SIZE (hid-1.0.7.tar.gz) = 4897
|
SIZE (hid-1.0.8.tar.gz) = 4967
|
||||||
|
|||||||
@@ -123,6 +123,8 @@
|
|||||||
SUBDIR += php83-mbstring
|
SUBDIR += php83-mbstring
|
||||||
SUBDIR += php84-iconv
|
SUBDIR += php84-iconv
|
||||||
SUBDIR += php84-mbstring
|
SUBDIR += php84-mbstring
|
||||||
|
SUBDIR += php85-iconv
|
||||||
|
SUBDIR += php85-mbstring
|
||||||
SUBDIR += psiconv
|
SUBDIR += psiconv
|
||||||
SUBDIR += py-bencode.py
|
SUBDIR += py-bencode.py
|
||||||
SUBDIR += py-bencoder
|
SUBDIR += py-bencoder
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= converters
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -iconv
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= converters
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -mbstring
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= yj
|
PORTNAME= yj
|
||||||
DISTVERSION= 1.2.0
|
DISTVERSION= 1.2.0
|
||||||
PORTREVISION= 31
|
PORTREVISION= 32
|
||||||
CATEGORIES= converters textproc
|
CATEGORIES= converters textproc
|
||||||
PKGNAMESUFFIX= -${GH_ACCOUNT}
|
PKGNAMESUFFIX= -${GH_ACCOUNT}
|
||||||
|
|
||||||
|
|||||||
@@ -576,6 +576,18 @@
|
|||||||
SUBDIR += php84-pdo_sqlite
|
SUBDIR += php84-pdo_sqlite
|
||||||
SUBDIR += php84-pgsql
|
SUBDIR += php84-pgsql
|
||||||
SUBDIR += php84-sqlite3
|
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 += phpliteadmin
|
||||||
SUBDIR += phpminiadmin
|
SUBDIR += phpminiadmin
|
||||||
SUBDIR += phpmyadmin
|
SUBDIR += phpmyadmin
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
PORTNAME= cego
|
PORTNAME= cego
|
||||||
PORTVERSION= 2.52.10
|
PORTVERSION= 2.52.12
|
||||||
|
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
MASTER_SITES= http://www.lemke-it.com/
|
MASTER_SITES= http://www.lemke-it.com/
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1750582416
|
TIMESTAMP = 1751547684
|
||||||
SHA256 (cego-2.52.10.tar.gz) = ab9b568f5a875f28b78941b7e6fe4b46fad3036d5f246f310c8946dd575359c4
|
SHA256 (cego-2.52.12.tar.gz) = a48a8d6f05a660be56cd7c96a63264806f7388384711a1d84d0eb1a32afd2162
|
||||||
SIZE (cego-2.52.10.tar.gz) = 3321878
|
SIZE (cego-2.52.12.tar.gz) = 3380495
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
PORTNAME= diesel
|
PORTNAME= diesel
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 2.2.11
|
DISTVERSION= 2.2.11
|
||||||
|
PORTREVISION= 1
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
PKGNAMESUFFIX= -cli
|
PKGNAMESUFFIX= -cli
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= frece
|
PORTNAME= frece
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 1.0.6
|
DISTVERSION= 1.0.6
|
||||||
PORTREVISION= 22
|
PORTREVISION= 23
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
|
|
||||||
MAINTAINER= yuri@FreeBSD.org
|
MAINTAINER= yuri@FreeBSD.org
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
PORTNAME= freetds
|
PORTNAME= freetds
|
||||||
DISTVERSION= 1.5.3
|
DISTVERSION= 1.5.4
|
||||||
PORTEPOCH= 1
|
PORTEPOCH= 1
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
MASTER_SITES= https://www.freetds.org/files/stable/ \
|
MASTER_SITES= https://www.freetds.org/files/stable/ \
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1751266117
|
TIMESTAMP = 1751442687
|
||||||
SHA256 (freetds-1.5.3.tar.bz2) = 5cb66c46a60a83b8a2855e466148b6fa27962c7fd1dcb3f6e5d0ab17ec5ff6dd
|
SHA256 (freetds-1.5.4.tar.bz2) = 1d024ef418d74a3a8f2cca82f10f1561f1dde28dc3d6f65c815f07764d4f7ea8
|
||||||
SIZE (freetds-1.5.3.tar.bz2) = 2439435
|
SIZE (freetds-1.5.4.tar.bz2) = 2440514
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= gobang
|
PORTNAME= gobang
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 0.1.0-alpha.5
|
DISTVERSION= 0.1.0-alpha.5
|
||||||
PORTREVISION= 23
|
PORTREVISION= 24
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
|
|
||||||
MAINTAINER= yuri@FreeBSD.org
|
MAINTAINER= yuri@FreeBSD.org
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= mongodb
|
PORTNAME= mongodb
|
||||||
DISTVERSIONPREFIX= r
|
DISTVERSIONPREFIX= r
|
||||||
DISTVERSION= 7.0.21
|
DISTVERSION= 7.0.21
|
||||||
PORTREVISION= 1
|
PORTREVISION= 2
|
||||||
CATEGORIES= databases net
|
CATEGORIES= databases net
|
||||||
PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}
|
PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= mongodb
|
PORTNAME= mongodb
|
||||||
DISTVERSIONPREFIX= r
|
DISTVERSIONPREFIX= r
|
||||||
DISTVERSION= 8.0.10
|
DISTVERSION= 8.0.10
|
||||||
PORTREVISION= 1
|
PORTREVISION= 2
|
||||||
CATEGORIES= databases net
|
CATEGORIES= databases net
|
||||||
PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}
|
PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= ods2sql
|
PORTNAME= ods2sql
|
||||||
DISTVERSION= 0.4.0
|
DISTVERSION= 0.4.0
|
||||||
PORTREVISION= 42
|
PORTREVISION= 43
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
|
|
||||||
MAINTAINER= yuri@FreeBSD.org
|
MAINTAINER= yuri@FreeBSD.org
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ WWW= https://www.doctrine-project.org/
|
|||||||
LICENSE= MIT
|
LICENSE= MIT
|
||||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||||
|
|
||||||
|
DEPRECATED= Upstream no longer serves through PEAR channel and has been moved to Composer
|
||||||
|
EXPIRATION_DATE= 2025-08-04
|
||||||
|
|
||||||
USES= pear
|
USES= pear
|
||||||
PEAR_CHANNEL= doctrine
|
PEAR_CHANNEL= doctrine
|
||||||
NO_ARCH= yes
|
NO_ARCH= yes
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ WWW= https://www.doctrine-project.org/
|
|||||||
LICENSE= MIT
|
LICENSE= MIT
|
||||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||||
|
|
||||||
|
DEPRECATED= Upstream no longer serves through PEAR channel and has been moved to Composer
|
||||||
|
EXPIRATION_DATE= 2025-08-03
|
||||||
|
|
||||||
RUN_DEPENDS= ${PEARDIR}/Doctrine/Common/Version.php:databases/pear-DoctrineCommon@${PHP_FLAVOR} \
|
RUN_DEPENDS= ${PEARDIR}/Doctrine/Common/Version.php:databases/pear-DoctrineCommon@${PHP_FLAVOR} \
|
||||||
${PEARDIR}/Symfony/Component/Console/Application.php:devel/pear-Symfony_Component_Console@${PHP_FLAVOR}
|
${PEARDIR}/Symfony/Component/Console/Application.php:devel/pear-Symfony_Component_Console@${PHP_FLAVOR}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -dba
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -mysqli
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -odbc
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -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], [
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -pdo
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -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;
|
||||||
|
+}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -pdo_dblib
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
PORTREVISION= 0
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -pdo_firebird
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -pdo_mysql
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -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;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -pdo_odbc
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -pdo_pgsql
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -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;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -pdo_sqlite
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -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;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -pgsql
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
CATEGORIES= databases
|
||||||
|
|
||||||
|
MASTERDIR= ${.CURDIR}/../../lang/php85
|
||||||
|
|
||||||
|
PKGNAMESUFFIX= -sqlite3
|
||||||
|
|
||||||
|
.include "${MASTERDIR}/Makefile"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= promscale
|
PORTNAME= promscale
|
||||||
PORTVERSION= 0.8.0
|
PORTVERSION= 0.8.0
|
||||||
PORTREVISION= 21
|
PORTREVISION= 22
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
PKGNAMEPREFIX= postgresql${PGSQL_VER:S/.//}-
|
PKGNAMEPREFIX= postgresql${PGSQL_VER:S/.//}-
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
PORTNAME= sqlframe
|
PORTNAME= sqlframe
|
||||||
PORTVERSION= 3.36.0
|
PORTVERSION= 3.36.1
|
||||||
CATEGORIES= databases python
|
CATEGORIES= databases python
|
||||||
MASTER_SITES= PYPI
|
MASTER_SITES= PYPI
|
||||||
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1751208150
|
TIMESTAMP = 1751375045
|
||||||
SHA256 (sqlframe-3.36.0.tar.gz) = c6966b56559ce63e08d8eacd73ab6fb3070651b25cb3c62a44882c7ade586e77
|
SHA256 (sqlframe-3.36.1.tar.gz) = ef29ddb94182edf08d41a3df2e2db25ba87a11b97212f509a73c66cfd410921a
|
||||||
SIZE (sqlframe-3.36.0.tar.gz) = 29480398
|
SIZE (sqlframe-3.36.1.tar.gz) = 29480454
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
PORTNAME= sqlglotrs
|
PORTNAME= sqlglotrs
|
||||||
PORTVERSION= 0.6.1
|
PORTVERSION= 0.6.1
|
||||||
|
PORTREVISION= 1
|
||||||
CATEGORIES= databases python
|
CATEGORIES= databases python
|
||||||
MASTER_SITES= PYPI
|
MASTER_SITES= PYPI
|
||||||
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= sqloxide
|
PORTNAME= sqloxide
|
||||||
PORTVERSION= 0.1.48
|
PORTVERSION= 0.1.48
|
||||||
PORTREVISION= 6
|
PORTREVISION= 7
|
||||||
CATEGORIES= databases python
|
CATEGORIES= databases python
|
||||||
MASTER_SITES= PYPI
|
MASTER_SITES= PYPI
|
||||||
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
PORTNAME= unqlite
|
PORTNAME= unqlite
|
||||||
DISTVERSION= 0.9.8
|
DISTVERSION= 0.9.9
|
||||||
CATEGORIES= databases python
|
CATEGORIES= databases python
|
||||||
MASTER_SITES= PYPI
|
MASTER_SITES= PYPI
|
||||||
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1738990510
|
TIMESTAMP = 1751442862
|
||||||
SHA256 (unqlite-0.9.8.tar.gz) = 182c1764616f0f3a5caa52ca3bdeac3d44cce7a56b2801c4fcaf79eb2b6f30be
|
SHA256 (unqlite-0.9.9.tar.gz) = 63a79975d67e3896af269c1885c2cc363fb646ff26e58541365fb5fb9e645691
|
||||||
SIZE (unqlite-0.9.8.tar.gz) = 634010
|
SIZE (unqlite-0.9.9.tar.gz) = 633945
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ PORTNAME= quake
|
|||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 0.5.1-57
|
DISTVERSION= 0.5.1-57
|
||||||
DISTVERSIONSUFFIX= -gbb8ae55
|
DISTVERSIONSUFFIX= -gbb8ae55
|
||||||
PORTREVISION= 12
|
PORTREVISION= 13
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
PKGNAMESUFFIX= -framework
|
PKGNAMESUFFIX= -framework
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= redisjson
|
PORTNAME= redisjson
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 2.0.8
|
DISTVERSION= 2.0.8
|
||||||
PORTREVISION= 28
|
PORTREVISION= 29
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
|
|
||||||
MAINTAINER= ports@FreeBSD.org
|
MAINTAINER= ports@FreeBSD.org
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
PORTNAME= sqlite3
|
PORTNAME= sqlite3
|
||||||
PORTVERSION= 2.7.0
|
PORTVERSION= 2.7.1
|
||||||
CATEGORIES= databases rubygems
|
CATEGORIES= databases rubygems
|
||||||
MASTER_SITES= RG
|
MASTER_SITES= RG
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
TIMESTAMP = 1750188162
|
TIMESTAMP = 1751375073
|
||||||
SHA256 (rubygem/sqlite3-2.7.0.gem) = dab87a41172e2397909847a9d6251c6251ac1e9942a026569af17e77d645ebf0
|
SHA256 (rubygem/sqlite3-2.7.1.gem) = 848668acba4c6829331459180d6ca8c589e583bbfacf25ab4528f59fcaba1aa2
|
||||||
SIZE (rubygem/sqlite3-2.7.0.gem) = 3238400
|
SIZE (rubygem/sqlite3-2.7.1.gem) = 3238912
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
% sed -i .orig 's|, "ports/[^"]*".freeze||g; /mini_portile2/d' sqlite3.gemspec
|
% sed -i .orig 's|, "ports/[^"]*".freeze||g; /mini_portile2/d' sqlite3.gemspec
|
||||||
|
|
||||||
--- sqlite3.gemspec.orig 2025-06-18 03:45:42 UTC
|
--- sqlite3.gemspec.orig 2025-07-01 13:37:46 UTC
|
||||||
+++ sqlite3.gemspec
|
+++ sqlite3.gemspec
|
||||||
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
||||||
s.description = "Ruby library to interface with the SQLite3 database engine (http://www.sqlite.org). Precompiled\nbinaries are available for common platforms for recent versions of Ruby.\n".freeze
|
s.description = "Ruby library to interface with the SQLite3 database engine (http://www.sqlite.org). Precompiled\nbinaries are available for common platforms for recent versions of Ruby.\n".freeze
|
||||||
s.extensions = ["ext/sqlite3/extconf.rb".freeze]
|
s.extensions = ["ext/sqlite3/extconf.rb".freeze]
|
||||||
s.extra_rdoc_files = ["CHANGELOG.md".freeze, "README.md".freeze, "ext/sqlite3/aggregator.c".freeze, "ext/sqlite3/backup.c".freeze, "ext/sqlite3/database.c".freeze, "ext/sqlite3/exception.c".freeze, "ext/sqlite3/sqlite3.c".freeze, "ext/sqlite3/statement.c".freeze]
|
s.extra_rdoc_files = ["CHANGELOG.md".freeze, "README.md".freeze, "ext/sqlite3/aggregator.c".freeze, "ext/sqlite3/backup.c".freeze, "ext/sqlite3/database.c".freeze, "ext/sqlite3/exception.c".freeze, "ext/sqlite3/sqlite3.c".freeze, "ext/sqlite3/statement.c".freeze]
|
||||||
- s.files = [".gemtest".freeze, "CHANGELOG.md".freeze, "CONTRIBUTING.md".freeze, "FAQ.md".freeze, "INSTALLATION.md".freeze, "LICENSE".freeze, "README.md".freeze, "dependencies.yml".freeze, "ext/sqlite3/aggregator.c".freeze, "ext/sqlite3/aggregator.h".freeze, "ext/sqlite3/backup.c".freeze, "ext/sqlite3/backup.h".freeze, "ext/sqlite3/database.c".freeze, "ext/sqlite3/database.h".freeze, "ext/sqlite3/exception.c".freeze, "ext/sqlite3/exception.h".freeze, "ext/sqlite3/extconf.rb".freeze, "ext/sqlite3/sqlite3.c".freeze, "ext/sqlite3/sqlite3_ruby.h".freeze, "ext/sqlite3/statement.c".freeze, "ext/sqlite3/statement.h".freeze, "ext/sqlite3/timespec.h".freeze, "lib/sqlite3.rb".freeze, "lib/sqlite3/constants.rb".freeze, "lib/sqlite3/database.rb".freeze, "lib/sqlite3/errors.rb".freeze, "lib/sqlite3/fork_safety.rb".freeze, "lib/sqlite3/pragmas.rb".freeze, "lib/sqlite3/resultset.rb".freeze, "lib/sqlite3/statement.rb".freeze, "lib/sqlite3/value.rb".freeze, "lib/sqlite3/version.rb".freeze, "lib/sqlite3/version_info.rb".freeze, "ports/archives/sqlite-autoconf-3500100.tar.gz".freeze]
|
- s.files = [".gemtest".freeze, "CHANGELOG.md".freeze, "CONTRIBUTING.md".freeze, "FAQ.md".freeze, "INSTALLATION.md".freeze, "LICENSE".freeze, "README.md".freeze, "dependencies.yml".freeze, "ext/sqlite3/aggregator.c".freeze, "ext/sqlite3/aggregator.h".freeze, "ext/sqlite3/backup.c".freeze, "ext/sqlite3/backup.h".freeze, "ext/sqlite3/database.c".freeze, "ext/sqlite3/database.h".freeze, "ext/sqlite3/exception.c".freeze, "ext/sqlite3/exception.h".freeze, "ext/sqlite3/extconf.rb".freeze, "ext/sqlite3/sqlite3.c".freeze, "ext/sqlite3/sqlite3_ruby.h".freeze, "ext/sqlite3/statement.c".freeze, "ext/sqlite3/statement.h".freeze, "ext/sqlite3/timespec.h".freeze, "lib/sqlite3.rb".freeze, "lib/sqlite3/constants.rb".freeze, "lib/sqlite3/database.rb".freeze, "lib/sqlite3/errors.rb".freeze, "lib/sqlite3/fork_safety.rb".freeze, "lib/sqlite3/pragmas.rb".freeze, "lib/sqlite3/resultset.rb".freeze, "lib/sqlite3/statement.rb".freeze, "lib/sqlite3/value.rb".freeze, "lib/sqlite3/version.rb".freeze, "lib/sqlite3/version_info.rb".freeze, "ports/archives/sqlite-autoconf-3500200.tar.gz".freeze]
|
||||||
+ s.files = [".gemtest".freeze, "CHANGELOG.md".freeze, "CONTRIBUTING.md".freeze, "FAQ.md".freeze, "INSTALLATION.md".freeze, "LICENSE".freeze, "README.md".freeze, "dependencies.yml".freeze, "ext/sqlite3/aggregator.c".freeze, "ext/sqlite3/aggregator.h".freeze, "ext/sqlite3/backup.c".freeze, "ext/sqlite3/backup.h".freeze, "ext/sqlite3/database.c".freeze, "ext/sqlite3/database.h".freeze, "ext/sqlite3/exception.c".freeze, "ext/sqlite3/exception.h".freeze, "ext/sqlite3/extconf.rb".freeze, "ext/sqlite3/sqlite3.c".freeze, "ext/sqlite3/sqlite3_ruby.h".freeze, "ext/sqlite3/statement.c".freeze, "ext/sqlite3/statement.h".freeze, "ext/sqlite3/timespec.h".freeze, "lib/sqlite3.rb".freeze, "lib/sqlite3/constants.rb".freeze, "lib/sqlite3/database.rb".freeze, "lib/sqlite3/errors.rb".freeze, "lib/sqlite3/fork_safety.rb".freeze, "lib/sqlite3/pragmas.rb".freeze, "lib/sqlite3/resultset.rb".freeze, "lib/sqlite3/statement.rb".freeze, "lib/sqlite3/value.rb".freeze, "lib/sqlite3/version.rb".freeze, "lib/sqlite3/version_info.rb".freeze]
|
+ s.files = [".gemtest".freeze, "CHANGELOG.md".freeze, "CONTRIBUTING.md".freeze, "FAQ.md".freeze, "INSTALLATION.md".freeze, "LICENSE".freeze, "README.md".freeze, "dependencies.yml".freeze, "ext/sqlite3/aggregator.c".freeze, "ext/sqlite3/aggregator.h".freeze, "ext/sqlite3/backup.c".freeze, "ext/sqlite3/backup.h".freeze, "ext/sqlite3/database.c".freeze, "ext/sqlite3/database.h".freeze, "ext/sqlite3/exception.c".freeze, "ext/sqlite3/exception.h".freeze, "ext/sqlite3/extconf.rb".freeze, "ext/sqlite3/sqlite3.c".freeze, "ext/sqlite3/sqlite3_ruby.h".freeze, "ext/sqlite3/statement.c".freeze, "ext/sqlite3/statement.h".freeze, "ext/sqlite3/timespec.h".freeze, "lib/sqlite3.rb".freeze, "lib/sqlite3/constants.rb".freeze, "lib/sqlite3/database.rb".freeze, "lib/sqlite3/errors.rb".freeze, "lib/sqlite3/fork_safety.rb".freeze, "lib/sqlite3/pragmas.rb".freeze, "lib/sqlite3/resultset.rb".freeze, "lib/sqlite3/statement.rb".freeze, "lib/sqlite3/value.rb".freeze, "lib/sqlite3/version.rb".freeze, "lib/sqlite3/version_info.rb".freeze]
|
||||||
s.homepage = "https://github.com/sparklemotion/sqlite3-ruby".freeze
|
s.homepage = "https://github.com/sparklemotion/sqlite3-ruby".freeze
|
||||||
s.licenses = ["BSD-3-Clause".freeze]
|
s.licenses = ["BSD-3-Clause".freeze]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= sqlx
|
PORTNAME= sqlx
|
||||||
DISTVERSIONPREFIX= v
|
DISTVERSIONPREFIX= v
|
||||||
DISTVERSION= 0.8.5
|
DISTVERSION= 0.8.5
|
||||||
PORTREVISION= 1
|
PORTREVISION= 2
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
PKGNAMESUFFIX= -cli
|
PKGNAMESUFFIX= -cli
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
PORTNAME= xls2txt
|
PORTNAME= xls2txt
|
||||||
DISTVERSION= 1.0.1
|
DISTVERSION= 1.0.1
|
||||||
PORTREVISION= 41
|
PORTREVISION= 42
|
||||||
CATEGORIES= databases textproc
|
CATEGORIES= databases textproc
|
||||||
|
|
||||||
MAINTAINER= yuri@FreeBSD.org
|
MAINTAINER= yuri@FreeBSD.org
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PORTNAME= xtrabackup80
|
PORTNAME= xtrabackup80
|
||||||
PORTVERSION= 8.0.35
|
PORTVERSION= 8.0.35
|
||||||
DISTVERSIONSUFFIX= -30
|
DISTVERSIONSUFFIX= -30
|
||||||
PORTREVISION= 8
|
PORTREVISION= 9
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
MASTER_SITES= https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-30/source/tarball/:percona \
|
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
|
SF/boost/boost/${BOOST_VERSION}:boost
|
||||||
|
|||||||
@@ -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();
|
||||||
@@ -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));
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -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) ||
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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;
|
|
||||||
+11
@@ -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;
|
||||||
@@ -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() {
|
|
||||||
@@ -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}
|
|
||||||
|
|
||||||
-17
@@ -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. */
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user