From d0f52a2b1c3756cd70832f7a5a4e877438962c14 Mon Sep 17 00:00:00 2001 From: Saibotk Date: Tue, 2 Apr 2024 02:46:58 +0200 Subject: [PATCH] !refactor(php-extensions): use shivammathur/extensions tap Fixes annoying pecl update issues & swoole build failures by using the prebuilt tap. This also properly manages updates & enables the extensions via files in conf.d instead. Very clean. And it finally properly installs all extensions for all php versions, pecl has issues with properly installing for other php versions. --- install-mac.sh | 16 ---------------- macos/Brewfile | 20 +++++++++++++++++--- macos/bin/pkg-update | 9 --------- 3 files changed, 17 insertions(+), 28 deletions(-) diff --git a/install-mac.sh b/install-mac.sh index 80a61b6..26cb1ec 100755 --- a/install-mac.sh +++ b/install-mac.sh @@ -28,22 +28,6 @@ brew bundle --file ${DOTFILES}/macos/Brewfile # gnupg is not really needed but marked as a dependency for pass brew unlink gnupg -# Paths to openssl to build pecl extensions (swoole) -export PATH="${HOMEBREW_PREFIX}/opt/openssl@3/bin:$PATH" -export LDFLAGS="-L${HOMEBREW_PREFIX}/opt/openssl@3/lib" -export CPPFLAGS="-I${HOMEBREW_PREFIX}/opt/openssl@3/include" -export PKG_CONFIG_PATH="${HOMEBREW_PREFIX}/opt/openssl@3/lib/pkgconfig" - -# Install PHP extensions with PECL -yes | pecl install imagick igbinary msgpack redis - -# Symlink pcre2, so pecl can find it when installing / building (needed for swoole) -sudo mkdir -p /usr/local/include -sudo ln -s ${HOMEBREW_PREFIX}/include/pcre2.h /usr/local/include/ - -# Install swoole with all features -yes | pecl install swoole - # Install global Composer packages ${HOMEBREW_PREFIX}/bin/composer global require laravel/installer laravel/valet tightenco/takeout diff --git a/macos/Brewfile b/macos/Brewfile index 729da5b..241f981 100644 --- a/macos/Brewfile +++ b/macos/Brewfile @@ -4,6 +4,7 @@ tap 'homebrew/cask-versions' tap 'homebrew/bundle' tap 'oven-sh/bun' tap 'withgraphite/tap' +tap 'shivammathur/extensions' # Binaries brew 'awscli' @@ -36,6 +37,8 @@ brew 'poppler' # PDF manipulation brew 'qpdf' brew 'rename' brew 'git-delta' +brew 'imagemagick' +brew 'nginx' # Spatie Medialibrary brew 'jpegoptim' @@ -45,12 +48,23 @@ brew 'svgo' brew 'gifsicle' # Development -brew 'php' +brew 'php@8.3' +brew 'shivammathur/extensions/xdebug@8.3' +brew 'shivammathur/extensions/redis@8.3' +brew 'shivammathur/extensions/imagick@8.3' +brew 'shivammathur/extensions/swoole@8.3' brew 'php@8.2' +brew 'shivammathur/extensions/xdebug@8.2' +brew 'shivammathur/extensions/redis@8.2' +brew 'shivammathur/extensions/imagick@8.2' +brew 'shivammathur/extensions/swoole@8.2' brew 'php@8.1' +brew 'shivammathur/extensions/xdebug@8.1' +brew 'shivammathur/extensions/redis@8.1' +brew 'shivammathur/extensions/imagick@8.1' +brew 'shivammathur/extensions/swoole@8.1' + brew 'composer' -brew 'imagemagick' -brew 'nginx' brew 'node' brew 'deno' brew 'bun' diff --git a/macos/bin/pkg-update b/macos/bin/pkg-update index 4779f94..89235cf 100755 --- a/macos/bin/pkg-update +++ b/macos/bin/pkg-update @@ -6,15 +6,6 @@ brew upgrade # Fixes gnupg link conflicts with GPGSuite brew unlink gnupg -echo "\n > Upgrading pecl packages...\n" -# Paths to openssl to build pecl extensions (swoole) -export PATH="${HOMEBREW_PREFIX}/opt/openssl@3/bin:$PATH" -export LDFLAGS="-L${HOMEBREW_PREFIX}/opt/openssl@3/lib" -export CPPFLAGS="-I${HOMEBREW_PREFIX}/opt/openssl@3/include" -export PKG_CONFIG_PATH="${HOMEBREW_PREFIX}/opt/openssl@3/lib/pkgconfig" - -yes | pecl upgrade - echo "\n > Upgrading global composer packages...\n" composer global upgrade