From e62d2240dd3103dd922a21a5beb31e28f856ee9a Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 12 Mar 2023 02:03:53 +0800 Subject: [PATCH 01/18] Fix Nginx compile script --- ansible/playbooks.go | 3 +++ ansible/playbooks/ubuntu/13-nginx-compile.yml | 2 ++ ansible/playbooks/ubuntu/scripts/compile-nginx.sh | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ansible/playbooks.go b/ansible/playbooks.go index 6a05e7d..4ab95e6 100644 --- a/ansible/playbooks.go +++ b/ansible/playbooks.go @@ -2,6 +2,7 @@ package ansible import ( "LeoOnTheEarth/GearBox/configuration" + "bytes" "crypto/md5" "embed" "errors" @@ -123,6 +124,8 @@ func installPlaybookFile(f *file, installDir string) (result *InstallResult, err return result, err } + content = bytes.Replace(content, []byte{'\r', '\n'}, []byte{'\n'}, -1) + if err = os.WriteFile(targetPath, content, 0644); nil != err { return result, err } else { diff --git a/ansible/playbooks/ubuntu/13-nginx-compile.yml b/ansible/playbooks/ubuntu/13-nginx-compile.yml index dc97d39..47773c0 100644 --- a/ansible/playbooks/ubuntu/13-nginx-compile.yml +++ b/ansible/playbooks/ubuntu/13-nginx-compile.yml @@ -76,7 +76,9 @@ group: root loop: - /etc/nginx/conf.d + - /usr/lib/nginx/modules - /var/cache/nginx + - /var/log/nginx - name: Compiling Nginx source files command: '{{ playbook_dir }}/scripts/compile-nginx.sh {{ nginx_source_dir }}' diff --git a/ansible/playbooks/ubuntu/scripts/compile-nginx.sh b/ansible/playbooks/ubuntu/scripts/compile-nginx.sh index bf36f23..3760e29 100644 --- a/ansible/playbooks/ubuntu/scripts/compile-nginx.sh +++ b/ansible/playbooks/ubuntu/scripts/compile-nginx.sh @@ -44,7 +44,7 @@ cd "$NGINX_SOURCE_DIR" --with-stream_realip_module \ --with-stream_ssl_module \ --with-stream_ssl_preread_module \ - --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' \ + --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC -Wno-error -Wno-deprecated-declarations' \ --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' make From 40189530d9e401e0eb8ec801c364a9ad4091fe86 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 12 Mar 2023 02:04:43 +0800 Subject: [PATCH 02/18] Update sqlsrv max version for PHP7.4 --- ansible/playbooks/ubuntu/11-php.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ansible/playbooks/ubuntu/11-php.yml b/ansible/playbooks/ubuntu/11-php.yml index dea2594..ef2ef84 100644 --- a/ansible/playbooks/ubuntu/11-php.yml +++ b/ansible/playbooks/ubuntu/11-php.yml @@ -55,14 +55,14 @@ become: true vars: php_sqlsrv_extensions: - '7.0': { name: 'sqlsrv-5.3.0', dir: '/usr/lib/php/20151012' } - '7.1': { name: 'sqlsrv-5.6.1', dir: '/usr/lib/php/20160303' } - '7.2': { name: 'sqlsrv-5.8.1', dir: '/usr/lib/php/20170718' } - '7.3': { name: 'sqlsrv-5.9.0', dir: '/usr/lib/php/20180731' } - '7.4': { name: 'sqlsrv', dir: '/usr/lib/php/20190902' } - '8.0': { name: 'sqlsrv', dir: '/usr/lib/php/20200930' } - '8.1': { name: 'sqlsrv', dir: '/usr/lib/php/20210902' } - '8.2': { name: 'sqlsrv', dir: '/usr/lib/php/20220829' } + '7.0': { name: 'sqlsrv-5.3.0', dir: '/usr/lib/php/20151012' } + '7.1': { name: 'sqlsrv-5.6.1', dir: '/usr/lib/php/20160303' } + '7.2': { name: 'sqlsrv-5.8.1', dir: '/usr/lib/php/20170718' } + '7.3': { name: 'sqlsrv-5.9.0', dir: '/usr/lib/php/20180731' } + '7.4': { name: 'sqlsrv-5.10.1', dir: '/usr/lib/php/20190902' } + '8.0': { name: 'sqlsrv', dir: '/usr/lib/php/20200930' } + '8.1': { name: 'sqlsrv', dir: '/usr/lib/php/20210902' } + '8.2': { name: 'sqlsrv', dir: '/usr/lib/php/20220829' } tasks: - name: 'Install Microsoft ODBC drivers and unixODBC development headers' apt: From 49e9370c735f020bcd8cea07cbecb2e465232dd1 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 12 Mar 2023 02:05:59 +0800 Subject: [PATCH 03/18] Add a new support WSL distribution "Ubuntu-22.04" --- wsl/wsl.go | 1 + 1 file changed, 1 insertion(+) diff --git a/wsl/wsl.go b/wsl/wsl.go index 3a2d3a0..cc38250 100644 --- a/wsl/wsl.go +++ b/wsl/wsl.go @@ -15,6 +15,7 @@ var playbookNames = map[string]string{ "Ubuntu": "ubuntu", "Ubuntu-18.04": "ubuntu", "Ubuntu-20.04": "ubuntu", + "Ubuntu-22.04": "ubuntu", } type WSL struct { From 865847f1be5d0f6028b6cd8ecb63f315b7545196 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 12 Mar 2023 02:07:30 +0800 Subject: [PATCH 04/18] Update version to v0.11.0 --- CHANGELOG.md | 6 ++++++ version/latest | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fd8cf2..5dc1ab4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ CHANGELOG ========= +## v0.11.0 + +- Fix Nginx compile script +- Update sqlsrv max version for PHP7.4 +- Add a new support WSL distribution "Ubuntu-22.04" + ## v0.10.1 - Show supported versions in "phpvm" command diff --git a/version/latest b/version/latest index aedc9dd..e88c34f 100644 --- a/version/latest +++ b/version/latest @@ -1 +1 @@ -v0.10.1 \ No newline at end of file +v0.11.0 \ No newline at end of file From 0e02b0448ca012350deaa98e8993845d186902f6 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 12 Mar 2023 02:18:47 +0800 Subject: [PATCH 05/18] Update package versions --- README.md | 5 ++++- ansible/playbooks/ubuntu/12-nodejs.yml | 2 +- configuration/configuration.go | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a9f4839..b803d88 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,13 @@ GearBox helps to easily create the same web development environment in Windows(W - Ubuntu 2. Install packages: - PHP - - Install multiple versions of PHP, v5.6 ~ v8.1 + - Install multiple versions of PHP, v5.6 ~ v8.2 - Provide a `phpvm` command to switch PHP versions. Usage: ``` Usage: phpvm use + + Supported versions: 5.6, 7.2, 7.4, 8.2 + Example1: phpvm use 5.6 then run "php --version" will get "PHP 5.6.x" Example2: phpvm use 7.4 diff --git a/ansible/playbooks/ubuntu/12-nodejs.yml b/ansible/playbooks/ubuntu/12-nodejs.yml index 62b7d27..eacc2a2 100644 --- a/ansible/playbooks/ubuntu/12-nodejs.yml +++ b/ansible/playbooks/ubuntu/12-nodejs.yml @@ -3,7 +3,7 @@ vars: version: '{{ nodejs.version|default("lts")|lower }}' version_text: "{% if 'lts' == version %}LTS{% else %}v{{ version }}{% endif %}" - nvm_version: '{{ nodejs.nvm_version|default("0.39.1") }}' + nvm_version: '{{ nodejs.nvm_version|default("0.39.3") }}' tasks: - name: 'Install nvm v{{ nvm_version }}' shell: 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v{{ nvm_version }}/install.sh | bash' diff --git a/configuration/configuration.go b/configuration/configuration.go index 338327b..27ff9b2 100644 --- a/configuration/configuration.go +++ b/configuration/configuration.go @@ -112,7 +112,7 @@ func New() *Configuration { }, GoLang: confGoLang{ Install: false, - Version: "1.19.5", + Version: "1.19.7", }, Nginx: confNginx{ Install: true, From a09df2f61a97a29354e4771ea0e21634186eec7d Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 12 Mar 2023 02:19:27 +0800 Subject: [PATCH 06/18] Update supported WSL distribution list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b803d88..be642ae 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ GearBox helps to easily create the same web development environment in Windows(W - Ubuntu - Ubuntu-18.04 - Ubuntu-20.04 + - Ubuntu-22.04 - Linux distributions: - Ubuntu 2. Install packages: From 499d9d17a78abf209a7155a3670e8f6cf86601f9 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 12 Mar 2023 02:22:00 +0800 Subject: [PATCH 07/18] Update version to v0.11.1 --- CHANGELOG.md | 7 +++++++ version/latest | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dc1ab4..cf84bed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ CHANGELOG ========= +## v0.11.1 + +- Update installed package versions + - GoLang: 1.19.7 + - nvm: 0.39.3 + - PHP: 8.2 + ## v0.11.0 - Fix Nginx compile script diff --git a/version/latest b/version/latest index e88c34f..a5de145 100644 --- a/version/latest +++ b/version/latest @@ -1 +1 @@ -v0.11.0 \ No newline at end of file +v0.11.1 \ No newline at end of file From 84fc8e230d1009bf9236c8806f0747465553aa04 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 12 Mar 2023 02:27:32 +0800 Subject: [PATCH 08/18] Update GitHub action scripts --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4fe7c4c..38e6684 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: with: go-version: '>=1.9' - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build GearBox binaries run: | mkdir -p dist From 6a8fa4d9fbaa769ae7d430b6a3c6623d3efaa189 Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 7 Aug 2023 17:49:06 +0800 Subject: [PATCH 09/18] Update composer install script --- ansible/playbooks/ubuntu/11-php.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbooks/ubuntu/11-php.yml b/ansible/playbooks/ubuntu/11-php.yml index ef2ef84..396475f 100644 --- a/ansible/playbooks/ubuntu/11-php.yml +++ b/ansible/playbooks/ubuntu/11-php.yml @@ -106,7 +106,7 @@ - name: Install Composer shell: | php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" - php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" + php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" From df93d500aaa9c7944551aed6697a7eb5c2a6107e Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 7 Aug 2023 17:49:36 +0800 Subject: [PATCH 10/18] Update version to v0.11.2 --- CHANGELOG.md | 4 ++++ version/latest | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf84bed..7e51ec0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ CHANGELOG ========= +## v0.11.2 + +- Update composer install script + ## v0.11.1 - Update installed package versions diff --git a/version/latest b/version/latest index a5de145..1554d9b 100644 --- a/version/latest +++ b/version/latest @@ -1 +1 @@ -v0.11.1 \ No newline at end of file +v0.11.2 \ No newline at end of file From 4a6ad9f43bd9274df0672d9bca8e3fed1186a70e Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 7 Aug 2023 17:58:18 +0800 Subject: [PATCH 11/18] Update composer install script --- ansible/playbooks/ubuntu/11-php.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/ansible/playbooks/ubuntu/11-php.yml b/ansible/playbooks/ubuntu/11-php.yml index 396475f..3732227 100644 --- a/ansible/playbooks/ubuntu/11-php.yml +++ b/ansible/playbooks/ubuntu/11-php.yml @@ -105,10 +105,19 @@ - name: Install Composer shell: | + EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" - php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" - php composer-setup.php - php -r "unlink('composer-setup.php');" + ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" + + if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ] + then + >&2 echo 'ERROR: Invalid installer checksum' + rm composer-setup.php + exit 1 + fi + + php composer-setup.php --quiet + rm composer-setup.php mv composer.phar /usr/local/bin/composer args: From 81e6efd390b9c75a06a6092ea433daf82441f21a Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 7 Aug 2023 18:00:59 +0800 Subject: [PATCH 12/18] Update version to v0.11.3 --- CHANGELOG.md | 4 ++++ version/latest | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e51ec0..c9cd28e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ CHANGELOG ========= +## v0.11.3 + +- Update composer install script (get checksum from remote URL) + ## v0.11.2 - Update composer install script diff --git a/version/latest b/version/latest index 1554d9b..1417ff6 100644 --- a/version/latest +++ b/version/latest @@ -1 +1 @@ -v0.11.2 \ No newline at end of file +v0.11.3 \ No newline at end of file From caf45103abb402997e41b217192824f257d244c9 Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 7 Aug 2023 18:33:01 +0800 Subject: [PATCH 13/18] Update composer install script - Add composer22 for PHP < 7.2.5 --- ansible/playbooks/ubuntu/11-php.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ansible/playbooks/ubuntu/11-php.yml b/ansible/playbooks/ubuntu/11-php.yml index 3732227..4d1d3eb 100644 --- a/ansible/playbooks/ubuntu/11-php.yml +++ b/ansible/playbooks/ubuntu/11-php.yml @@ -124,6 +124,18 @@ creates: /usr/local/bin/composer when: not composer_stat_result.stat.exists + - name: 'Check composer22 is installed' + stat: + path: '/usr/local/bin/composer22' + register: composer22_stat_result + + - name: Install Composer 2.2.x for PHP < 7.2.5 + get_url: + url: https://getcomposer.org/download/latest-2.2.x/composer.phar + dest: /usr/local/bin/composer22 + mode: '+x' + when: not composer22_stat_result.stat.exists + - name: Install Blackfire Agent and PHP extensions hosts: localhost become: true From c930538a20cc7877b5431d80148d80b30e743515 Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 7 Aug 2023 18:34:53 +0800 Subject: [PATCH 14/18] Update version to v0.11.4 --- CHANGELOG.md | 5 +++++ version/latest | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9cd28e..7c8e832 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +## v0.11.4 + +- Update composer install script + - Add command `composer22` (composer `v2.2.x`) for PHP < `7.2.5` + ## v0.11.3 - Update composer install script (get checksum from remote URL) diff --git a/version/latest b/version/latest index 1417ff6..edf6d96 100644 --- a/version/latest +++ b/version/latest @@ -1 +1 @@ -v0.11.3 \ No newline at end of file +v0.11.4 \ No newline at end of file From 947da71b378dd843c9abfbc5b0cbc34e3c9a20b7 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 24 Apr 2024 13:39:45 +0800 Subject: [PATCH 15/18] Fix sqlsrv version for PHP8.0 --- ansible/playbooks/ubuntu/11-php.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbooks/ubuntu/11-php.yml b/ansible/playbooks/ubuntu/11-php.yml index 4d1d3eb..5abb50c 100644 --- a/ansible/playbooks/ubuntu/11-php.yml +++ b/ansible/playbooks/ubuntu/11-php.yml @@ -60,7 +60,7 @@ '7.2': { name: 'sqlsrv-5.8.1', dir: '/usr/lib/php/20170718' } '7.3': { name: 'sqlsrv-5.9.0', dir: '/usr/lib/php/20180731' } '7.4': { name: 'sqlsrv-5.10.1', dir: '/usr/lib/php/20190902' } - '8.0': { name: 'sqlsrv', dir: '/usr/lib/php/20200930' } + '8.0': { name: 'sqlsrv-5.11.1', dir: '/usr/lib/php/20200930' } '8.1': { name: 'sqlsrv', dir: '/usr/lib/php/20210902' } '8.2': { name: 'sqlsrv', dir: '/usr/lib/php/20220829' } tasks: From d93ccf874ac1aab9afa2712393785cacea024a51 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 24 Apr 2024 13:40:17 +0800 Subject: [PATCH 16/18] Update version to v0.11.5 --- version/latest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version/latest b/version/latest index edf6d96..73a7527 100644 --- a/version/latest +++ b/version/latest @@ -1 +1 @@ -v0.11.4 \ No newline at end of file +v0.11.5 \ No newline at end of file From 3bdf34dba953804de152f427a9d313ff9024a948 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 24 Apr 2024 13:42:56 +0800 Subject: [PATCH 17/18] Update CHANGELOG.md --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c8e832..43fcaa4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,15 @@ CHANGELOG ========= +## v0.11.5 + +- Update sqlsrv max version for PHP8.0 + ## v0.11.4 - Update composer install script - Add command `composer22` (composer `v2.2.x`) for PHP < `7.2.5` - + ## v0.11.3 - Update composer install script (get checksum from remote URL) From c225c0cf5811bc82f7405c283048eb2731f72a31 Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 22 Jul 2024 11:46:29 +0800 Subject: [PATCH 18/18] Add PHP sqlite3 support --- CHANGELOG.md | 4 ++++ ansible/playbooks/ubuntu/tasks/php.yml | 1 + version/latest | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43fcaa4..4a1122d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ CHANGELOG ========= +## v0.12.0 + +- Add PHP sqlite3 support + ## v0.11.5 - Update sqlsrv max version for PHP8.0 diff --git a/ansible/playbooks/ubuntu/tasks/php.yml b/ansible/playbooks/ubuntu/tasks/php.yml index 5970b79..cf779de 100644 --- a/ansible/playbooks/ubuntu/tasks/php.yml +++ b/ansible/playbooks/ubuntu/tasks/php.yml @@ -26,6 +26,7 @@ - 'php{{ php_version }}-mysql' - 'php{{ php_version }}-odbc' - 'php{{ php_version }}-pgsql' + - 'php{{ php_version }}-sqlite3' - 'php{{ php_version }}-redis' - 'php{{ php_version }}-snmp' - 'php{{ php_version }}-soap' diff --git a/version/latest b/version/latest index 73a7527..3061e9e 100644 --- a/version/latest +++ b/version/latest @@ -1 +1 @@ -v0.11.5 \ No newline at end of file +v0.12.0 \ No newline at end of file