From 399ab79d14f924c7ef041951604a60672b359e47 Mon Sep 17 00:00:00 2001 From: Shivam Mathur Date: Mon, 22 Feb 2021 18:40:19 +0530 Subject: [PATCH] Improve support for couchbase, pdo_firdbird, pdo_oci and phalcon3 Downgrade husky to 4.x --- dist/index.js | 16 +- package-lock.json | 397 +++++++++++++++++++++++++++++++++-- package.json | 2 +- src/extensions.ts | 20 +- src/scripts/common.sh | 9 + src/scripts/ext/couchbase.sh | 10 +- src/scripts/ext/firebird.ps1 | 20 ++ src/scripts/ext/firebird.sh | 46 ++++ src/scripts/ext/oci.ps1 | 4 +- src/scripts/ext/oci.sh | 18 +- src/scripts/ext/phalcon.sh | 9 +- 11 files changed, 488 insertions(+), 63 deletions(-) create mode 100644 src/scripts/ext/firebird.ps1 create mode 100644 src/scripts/ext/firebird.sh diff --git a/dist/index.js b/dist/index.js index 3ab32e4c3..038bb4a52 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1823,15 +1823,13 @@ async function addExtensionDarwin(extension_csv, version) { return; // match 5.3blackfire...8.0blackfire // match 5.3blackfire-(semver)...8.0blackfire-(semver) - // match pdo_oci, oci8, http, pecl_http + // match couchbase, pdo_oci, oci8, http, pecl_http // match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos // match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4 - // match 5.6couchbase...7.4couchbase case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension): - case /^pdo_oci$|^oci8$|^http|^pecl_http/.test(extension): + case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(extension): case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension): case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension): - case /^5\.6couchbase$|^7\.[0-4]couchbase$/.test(version_extension): add_script += await utils.customPackage(ext_name, 'ext', extension, 'darwin'); return; // match pre-release versions. For example - xdebug-beta @@ -1898,7 +1896,7 @@ async function addExtensionWindows(extension_csv, version) { // match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4 // match 7.1pecl_http...8.0pecl_http and 7.1http...8.0http case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension): - case /^pdo_oci$|^oci8$/.test(extension): + case /^pdo_oci$|^oci8$|^pdo_firebird$/.test(extension): case /^5\.[3-6]ioncube$|^7\.[0-4]ioncube$/.test(version_extension): case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension): case /^(7\.[1-4]|8\.0)(http|pecl_http)$/.test(version_extension): @@ -1979,17 +1977,17 @@ async function addExtensionLinux(extension_csv, version) { // match 5.3blackfire...8.0blackfire // match 5.3blackfire-(semver)...8.0blackfire-(semver) // match 5.3pdo_cubrid...7.2php_cubrid, 5.3cubrid...7.4cubrid - // match pdo_oci, oci8, http, pecl_http + // match couchbase, pdo_oci, oci8, http, pecl_http // match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos // match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4 - // match 5.6gearman...7.4gearman, 5.6couchbase...7.4couchbase + // match 5.6gearman...7.4gearman case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension): case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(version_extension): - case /^pdo_oci$|^oci8$|^http|^pecl_http/.test(extension): + case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(extension): case /^(5\.6|7\.[0-4]|8\.0)intl-[\d]+\.[\d]+$/.test(version_extension): case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension): case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension): - case /^((5\.6)|(7\.[0-4]))(gearman|couchbase)$/.test(version_extension): + case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension): add_script += await utils.customPackage(ext_name, 'ext', extension, 'linux'); return; // match pre-release versions. For example - xdebug-beta diff --git a/package-lock.json b/package-lock.json index 89bfefc63..973ce3b52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "eslint-plugin-import": "^2.22.1", "eslint-plugin-jest": "^24.1.5", "eslint-plugin-prettier": "^3.3.1", - "husky": "^5.1.0", + "husky": "^4.3.8", "jest": "^26.6.3", "jest-circus": "^26.6.3", "prettier": "^2.2.1", @@ -1022,6 +1022,12 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, "node_modules/@types/prettier": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.1.tgz", @@ -1975,6 +1981,12 @@ "node": ">= 0.8" } }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -2020,6 +2032,40 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "node_modules/cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3148,6 +3194,21 @@ "node": ">=8" } }, + "node_modules/find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "dev": true, + "dependencies": { + "semver-regex": "^3.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -3579,26 +3640,106 @@ } }, "node_modules/husky": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-5.1.0.tgz", - "integrity": "sha512-Os0EY2haOO+59YZSwMiUDsHY43RFwBVIRStHcnnT8/kvA+sFfaA/YS4uLFRiymXYgQl6E6TQTt3y4v/Z2ctEtw==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", + "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/typicode" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/husky" - } - ], "hasInstallScript": true, + "dependencies": { + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^7.0.0", + "find-versions": "^4.0.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, "bin": { - "husky": "lib/bin.js" + "husky-run": "bin/run.js", + "husky-upgrade": "lib/upgrader/bin.js" }, "engines": { - "node": ">= 10" + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/husky" + } + }, + "node_modules/husky/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/iconv-lite": { @@ -5447,6 +5588,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true, + "bin": { + "opencollective-postinstall": "index.js" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -5720,6 +5870,15 @@ "node": ">=4" } }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -6595,6 +6754,24 @@ "node": ">=10" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "node_modules/semver-regex": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", + "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -7838,6 +8015,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "node_modules/which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -7924,6 +8107,15 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -7967,6 +8159,18 @@ "engines": { "node": ">=6" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } }, "dependencies": { @@ -8834,6 +9038,12 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, "@types/prettier": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.1.tgz", @@ -9539,6 +9749,12 @@ "delayed-stream": "~1.0.0" } }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -9578,6 +9794,33 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "dependencies": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + } + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -10471,6 +10714,15 @@ "path-exists": "^4.0.0" } }, + "find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "dev": true, + "requires": { + "semver-regex": "^3.1.2" + } + }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -10797,10 +11049,70 @@ "dev": true }, "husky": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-5.1.0.tgz", - "integrity": "sha512-Os0EY2haOO+59YZSwMiUDsHY43RFwBVIRStHcnnT8/kvA+sFfaA/YS4uLFRiymXYgQl6E6TQTt3y4v/Z2ctEtw==", - "dev": true + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", + "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^7.0.0", + "find-versions": "^4.0.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "requires": { + "find-up": "^5.0.0" + } + } + } }, "iconv-lite": { "version": "0.4.24", @@ -12229,6 +12541,12 @@ "mimic-fn": "^2.1.0" } }, + "opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -12426,6 +12744,15 @@ } } }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -13083,6 +13410,18 @@ "lru-cache": "^6.0.0" } }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "semver-regex": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", + "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", + "dev": true + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -14082,6 +14421,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -14148,6 +14493,12 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true + }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -14184,6 +14535,12 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", "integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==", "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 89e4aced3..02411dc21 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "eslint-plugin-import": "^2.22.1", "eslint-plugin-jest": "^24.1.5", "eslint-plugin-prettier": "^3.3.1", - "husky": "^5.1.0", + "husky": "^4.3.8", "jest": "^26.6.3", "jest-circus": "^26.6.3", "prettier": "^2.2.1", diff --git a/src/extensions.ts b/src/extensions.ts index 376fc333d..5a6b672b8 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -26,17 +26,17 @@ export async function addExtensionDarwin( return; // match 5.3blackfire...8.0blackfire // match 5.3blackfire-(semver)...8.0blackfire-(semver) - // match pdo_oci, oci8, http, pecl_http + // match couchbase, pdo_oci, oci8, http, pecl_http // match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos // match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4 - // match 5.6couchbase...7.4couchbase case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test( version_extension ): - case /^pdo_oci$|^oci8$|^http|^pecl_http/.test(extension): + case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test( + extension + ): case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension): case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension): - case /^5\.6couchbase$|^7\.[0-4]couchbase$/.test(version_extension): add_script += await utils.customPackage( ext_name, 'ext', @@ -136,7 +136,7 @@ export async function addExtensionWindows( case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test( version_extension ): - case /^pdo_oci$|^oci8$/.test(extension): + case /^pdo_oci$|^oci8$|^pdo_firebird$/.test(extension): case /^5\.[3-6]ioncube$|^7\.[0-4]ioncube$/.test(version_extension): case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension): case /^(7\.[1-4]|8\.0)(http|pecl_http)$/.test(version_extension): @@ -246,21 +246,23 @@ export async function addExtensionLinux( // match 5.3blackfire...8.0blackfire // match 5.3blackfire-(semver)...8.0blackfire-(semver) // match 5.3pdo_cubrid...7.2php_cubrid, 5.3cubrid...7.4cubrid - // match pdo_oci, oci8, http, pecl_http + // match couchbase, pdo_oci, oci8, http, pecl_http // match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos // match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4 - // match 5.6gearman...7.4gearman, 5.6couchbase...7.4couchbase + // match 5.6gearman...7.4gearman case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test( version_extension ): case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test( version_extension ): - case /^pdo_oci$|^oci8$|^http|^pecl_http/.test(extension): + case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test( + extension + ): case /^(5\.6|7\.[0-4]|8\.0)intl-[\d]+\.[\d]+$/.test(version_extension): case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension): case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension): - case /^((5\.6)|(7\.[0-4]))(gearman|couchbase)$/.test(version_extension): + case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension): add_script += await utils.customPackage( ext_name, 'ext', diff --git a/src/scripts/common.sh b/src/scripts/common.sh index 418f1d085..e8a66db2c 100644 --- a/src/scripts/common.sh +++ b/src/scripts/common.sh @@ -262,6 +262,15 @@ php_semver() { php"$version" -v | grep -Eo -m 1 "[0-9]+\.[0-9]+\.[0-9]+" | head -n 1 } +# Function to get the tag for a php version. +php_src_tag() { + php_src_tag='master' + if ! [[ ${version:?} =~ $nightly_versions ]]; then + php_src_tag="php-$semver" + fi + echo "$php_src_tag" +} + # Function to install extension from a GitHub repository add_extension_from_github() { extension=$1 diff --git a/src/scripts/ext/couchbase.sh b/src/scripts/ext/couchbase.sh index a671421de..a3321fe5f 100644 --- a/src/scripts/ext/couchbase.sh +++ b/src/scripts/ext/couchbase.sh @@ -1,7 +1,7 @@ # Function to install libraries required by couchbase add_couchbase_libs() { if [ "$(uname -s)" = "Linux" ]; then - if [[ ${version:?} =~ 5.6|7.[0-1] ]]; then + if [[ ${version:?} =~ 5.[3-6]|7.[0-1] ]]; then trunk="http://packages.couchbase.com/ubuntu" list="deb $trunk ${DISTRIB_CODENAME:?} ${DISTRIB_CODENAME:?}/main" else @@ -14,7 +14,7 @@ add_couchbase_libs() { sudo apt-get update ${apt_install:?} libcouchbase-dev else - if [[ ${version:?} =~ 5.6|7.[0-1] ]]; then + if [[ ${version:?} =~ 5.[3-6]|7.[0-1] ]]; then brew install libcouchbase@2 brew link --overwrite --force libcouchbase@2 else @@ -30,9 +30,11 @@ add_couchbase() { if check_extension "couchbase"; then add_log "${tick:?}" "couchbase" "Enabled" else - if [[ ${version:?} =~ 5.6|7.[0-1] ]]; then + if [[ "${version:?}" =~ ${old_versions:?} ]]; then + pecl_install couchbase-2.2.3 >/dev/null 2>&1 + elif [[ "${version:?}" =~ 5.6|7.[0-1] ]]; then pecl_install couchbase-2.6.2 >/dev/null 2>&1 - elif [[ ${version:?} =~ 7.2 ]]; then + elif [[ "${version:?}" =~ 7.2 ]]; then pecl_install couchbase-3.0.4 >/dev/null 2>&1 else pecl_install couchbase >/dev/null 2>&1 diff --git a/src/scripts/ext/firebird.ps1 b/src/scripts/ext/firebird.ps1 new file mode 100644 index 000000000..9b9734b32 --- /dev/null +++ b/src/scripts/ext/firebird.ps1 @@ -0,0 +1,20 @@ +Function Add-Choco() { + try { + if($null -eq (Get-Command -Name choco.exe -ErrorAction SilentlyContinue)) { + # Source: https://docs.chocolatey.org/en-us/choco/setup + Set-ExecutionPolicy Bypass -Scope Process -Force + [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 + Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) + } + } catch { } +} + +Function Add-Firebird() { + Add-Choco > $null 2>&1 + choco install firebird -params '/ClientAndDevTools' -y --force > $null 2>&1 + if((Get-ChildItem $env:ProgramFiles\**\**\fbclient.dll | Measure-Object).Count -eq 1) { + Add-Extension pdo_firebird + } else { + Add-Log $cross pdo_firebird "Could not install pdo_firebird on PHP $( $installed.FullVersion )" + } +} \ No newline at end of file diff --git a/src/scripts/ext/firebird.sh b/src/scripts/ext/firebird.sh new file mode 100644 index 000000000..2b2ac5ce9 --- /dev/null +++ b/src/scripts/ext/firebird.sh @@ -0,0 +1,46 @@ +add_firebird_client_darwin() { + pkg_name=$(get -s -n "" https://github.com/FirebirdSQL/firebird/releases/latest | grep -Eo "Firebird-.*.pkg" | head -n 1) + get -q -e "/tmp/firebird.pkg" https://github.com/FirebirdSQL/firebird/releases/latest/download/"$pkg_name" + sudo installer -pkg /tmp/firebird.pkg -target / + sudo mkdir -p /opt/firebird/include /opt/firebird/lib + sudo find /Library/Frameworks/Firebird.framework -name '*.h' -exec cp "{}" /opt/firebird/include \; + sudo find /Library/Frameworks/Firebird.framework -name '*.dylib' -exec cp "{}" /opt/firebird/lib \; +} + +add_firebird_helper() { + firebird_dir=$1 + tag="$(php_src_tag)" + get -s -n "" https://github.com/php/php-src/archive/"$tag".tar.gz | tar -xzf - -C /tmp + ( + cd /tmp/php-src-"$tag"/ext/pdo_firebird || exit + if [[ "${version:?}" =~ ${old_versions:?} ]]; then + sudo sed -i '' '/PHP_CHECK_PDO_INCLUDES/d' config.m4 2>/dev/null || sudo sed -i '/PHP_CHECK_PDO_INCLUDES/d' config.m4 + fi + sudo phpize + sudo ./configure --with-pdo-firebird="$firebird_dir" + sudo make -j"$(nproc 2>/dev/null || sysctl -n hw.ncpu)" + sudo make install + enable_extension pdo_firebird extension + ) +} + +add_firebird() { + enable_extension pdo_firebird + if ! check_extension pdo_firebird; then + if [ "$(uname -s)" = "Linux" ]; then + if [[ "${version:?}" =~ 5.3|${nightly_versions:?} ]]; then + lib_arch=$(gcc -dumpmachine) + install_packages firebird-dev >/dev/null 2>&1 + sudo ln -sf /usr/lib/"$lib_arch"/libfbclient.so.2 /usr/lib/libfbclient.so >/dev/null 2>&1 + sudo ln -sf /usr/lib/"$lib_arch"/libib_util.so /usr/lib/ >/dev/null 2>&1 + add_firebird_helper /usr >/dev/null 2>&1 + else + add_pdo_extension firebird >/dev/null 2>&1 + fi + else + add_firebird_client_darwin >/dev/null 2>&1 + add_firebird_helper /opt/firebird >/dev/null 2>&1 + fi + add_extension_log pdo_firebird "Installed and enabled" + fi +} diff --git a/src/scripts/ext/oci.ps1 b/src/scripts/ext/oci.ps1 index 1da4acb3b..ec7b57628 100644 --- a/src/scripts/ext/oci.ps1 +++ b/src/scripts/ext/oci.ps1 @@ -37,11 +37,13 @@ Function Add-Oci() { } else { if(-not(Test-Path $ext_dir\php_oci8.dll)) { $status = 'Installed and enabled' - $ociVersion = '2.2.0' + $ociVersion = Get-PeclPackageVersion oci8 -MinimumStability stable -MaximumStability stable | Select-Object -First 1 if ($version -eq '7.0') { $ociVersion = '2.1.8' } elseif ($version -lt '7.0') { $ociVersion = '2.0.12' + } elseif ($version -lt '8.0') { + $ociVersion = '2.2.0' } $ociUrl = Get-PeclArchiveUrl oci8 $ociVersion $installed Invoke-WebRequest -Uri $ociUrl -OutFile $php_dir\oci8.zip diff --git a/src/scripts/ext/oci.sh b/src/scripts/ext/oci.sh index 41a993ce4..cddaa590e 100644 --- a/src/scripts/ext/oci.sh +++ b/src/scripts/ext/oci.sh @@ -7,17 +7,6 @@ add_license_log() { echo "::endgroup::" } -# Function to get the tag for a php version. -get_tag() { - tag='master' - if ! [[ ${version:?} =~ $nightly_versions ]]; then - tag="php-$(php -v | head -n 1 | cut -f 2 -d ' ' | cut -f 1 -d '-')" - elif [ "${version:?}" = '8.0' ]; then - tag="PHP-8.0" - fi - echo "$tag" -} - # Function to install instantclient and SDK. add_client() { sudo mkdir -p -m 777 "$oracle_home" @@ -49,7 +38,7 @@ get_php() { # Function to get phpize location on darwin. get_phpize() { - if [[ "$version" =~ 5.[3-5] ]]; then + if [[ "${version:?}" =~ 5.[3-5] ]]; then echo '/opt/local/bin/phpize' else echo "/usr/local/bin/$(readlink /usr/local/bin/phpize)" @@ -94,14 +83,14 @@ add_oci_helper() { if ! [ -e "${ext_dir:?}/$ext.so" ]; then status='Installed and enabled' phpize_orig=$(get_phpize) - tag=$(get_tag) + tag=$(php_src_tag) get_php patch_phpize ( cd "/opt/oracle/php-src-$tag/ext/$ext" || exit 1 [ "$ext" = "pdo_oci" ] && patch_pdo_oci_config sudo phpize && ./configure --with-php-config="$(command -v php-config)" --with-"${ext/_/-}"=instantclient,"$oracle_client" - sudo make -j"$(nproc)" + sudo make -j"$(nproc 2>/dev/null || sysctl -n hw.ncpu)" sudo cp ./modules/* "$ext_dir/" ) restore_phpize @@ -116,7 +105,6 @@ add_oci() { oracle_home='/opt/oracle' oracle_client=$oracle_home/instantclient os=$(uname -s) - nightly_versions='8.[0-1]' add_client >/dev/null 2>&1 add_dependencies >/dev/null 2>&1 add_oci_helper >/dev/null 2>&1 diff --git a/src/scripts/ext/phalcon.sh b/src/scripts/ext/phalcon.sh index b11fb7a40..52f3a3e20 100644 --- a/src/scripts/ext/phalcon.sh +++ b/src/scripts/ext/phalcon.sh @@ -6,14 +6,15 @@ add_phalcon_helper() { if [ "$extension" = "phalcon4" ]; then ${apt_install:?} "php${version:?}-psr" "php${version:?}-$extension" else - ${apt_install:?} "php${version:?}-$extension" + get -q -e /tmp/phalcon.deb "https://packagecloud.io/phalcon/stable/packages/ubuntu/bionic/php${version:?}-phalcon_3.4.5-1+php${version:?}_amd64.deb/download.deb" + sudo dpkg -i /tmp/phalcon.deb fi else sed -i '' '/extension.*psr/d' "${ini_file:?}" - brew tap shivammathur/homebrew-phalcon + add_brew_tap shivammathur/homebrew-phalcon brew install phalcon@"${version:?}"_"$extension_major_version" - sudo cp /usr/local/opt/psr@"${version:?}"/psr.so "${ext_dir:?}" - sudo cp /usr/local/opt/phalcon@"${version:?}"_"$extension_major_version"/phalcon.so "${ext_dir:?}" + sudo cp "${brew_prefix:?}"/opt/psr@"${version:?}"/psr.so "${ext_dir:?}" + sudo cp "${brew_prefix:?}"/opt/phalcon@"${version:?}"_"$extension_major_version"/phalcon.so "${ext_dir:?}" fi }