diff --git a/Formula/php@7.0.rb b/Formula/php@7.0.rb deleted file mode 100644 index 45241c1c75..0000000000 --- a/Formula/php@7.0.rb +++ /dev/null @@ -1,484 +0,0 @@ -class PhpAT70 < Formula - desc "General-purpose scripting language" - homepage "https://secure.php.net/" - url "https://php.net/get/php-7.0.32.tar.xz/from/this/mirror" - sha256 "ff6f62afeb32c71b3b89ecbd42950ef6c5e0c329cc6e1c58ffac47e6f1f883c4" - revision 2 - - bottle do - sha256 "690f494debe1a4c0959f9d8ad2e994b805e5ccf599facf7ef6389e49e20a0083" => :mojave - sha256 "c78c6fdf10de0b2c0cf3d513d74248676d421e3a00306cd18db2174bd82058b1" => :high_sierra - sha256 "9f3b8dd88c1dc6bbcd1de60bbaadccd5d28a73043c115a49f9f3e742c647ab83" => :sierra - end - - keg_only :versioned_formula - - depends_on "httpd" => [:build, :test] - depends_on "pkg-config" => :build - depends_on "apr" - depends_on "apr-util" - depends_on "aspell" - depends_on "autoconf" - depends_on "curl-openssl" - depends_on "freetds" - depends_on "freetype" - depends_on "gettext" - depends_on "glib" - depends_on "gmp" - depends_on "icu4c" - depends_on "jpeg" - depends_on "libpng" - depends_on "libpq" - depends_on "libtool" - depends_on "libzip" - depends_on "mcrypt" - depends_on "openldap" - depends_on "openssl" - depends_on "pcre" - depends_on "sqlite" - depends_on "tidy-html5" - depends_on "unixodbc" - depends_on "webp" - - # PHP build system incorrectly links system libraries - # see https://github.com/php/php-src/pull/3472 - patch :DATA - - needs :cxx11 - - def install - # Ensure that libxml2 will be detected correctly in older MacOS - if MacOS.version == :el_capitan || MacOS.version == :sierra - ENV["SDKROOT"] = MacOS.sdk_path - end - - # buildconf required due to system library linking bug patch - system "./buildconf", "--force" - - inreplace "configure" do |s| - s.gsub! "APACHE_THREADED_MPM=`$APXS_HTTPD -V | grep 'threaded:.*yes'`", - "APACHE_THREADED_MPM=" - s.gsub! "APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`", - "APXS_LIBEXECDIR='$(INSTALL_ROOT)#{lib}/httpd/modules'" - s.gsub! "-z `$APXS -q SYSCONFDIR`", - "-z ''" - # apxs will interpolate the @ in the versioned prefix: https://bz.apache.org/bugzilla/show_bug.cgi?id=61944 - s.gsub! "LIBEXECDIR='$APXS_LIBEXECDIR'", - "LIBEXECDIR='" + "#{lib}/httpd/modules".gsub("@", "\\@") + "'" - end - - # Update error message in apache sapi to better explain the requirements - # of using Apache http in combination with php if the non-compatible MPM - # has been selected. Homebrew has chosen not to support being able to - # compile a thread safe version of PHP and therefore it is not - # possible to recompile as suggested in the original message - inreplace "sapi/apache2handler/sapi_apache2.c", - "You need to recompile PHP.", - "Homebrew PHP does not support a thread-safe php binary. "\ - "To use the PHP apache sapi please change "\ - "your httpd config to use the prefork MPM" - - inreplace "sapi/fpm/php-fpm.conf.in", ";daemonize = yes", "daemonize = no" - - # API compatibility with tidy-html5 v5.0.0 - https://github.com/htacg/tidy-html5/issues/224 - inreplace "ext/tidy/tidy.c", "buffio.h", "tidybuffio.h" - - # Required due to icu4c dependency - ENV.cxx11 - - # icu4c 61.1 compatability - ENV.append "CPPFLAGS", "-DU_USING_ICU_NAMESPACE=1" - - config_path = etc/"php/#{php_version}" - # Prevent system pear config from inhibiting pear install - (config_path/"pear.conf").delete if (config_path/"pear.conf").exist? - - # Prevent homebrew from harcoding path to sed shim in phpize script - ENV["lt_cv_path_SED"] = "sed" - - # Each extension that is built on Mojave needs a direct reference to the - # sdk path or it won't find the headers - headers_path = "=#{MacOS.sdk_path_if_needed}/usr" - - args = %W[ - --prefix=#{prefix} - --localstatedir=#{var} - --sysconfdir=#{config_path} - --with-config-file-path=#{config_path} - --with-config-file-scan-dir=#{config_path}/conf.d - --with-pear=#{pkgshare}/pear - --enable-bcmath - --enable-calendar - --enable-dba - --enable-dtrace - --enable-exif - --enable-ftp - --enable-fpm - --enable-intl - --enable-mbregex - --enable-mbstring - --enable-mysqlnd - --enable-opcache-file - --enable-pcntl - --enable-phpdbg - --enable-phpdbg-webhelper - --enable-shmop - --enable-soap - --enable-sockets - --enable-sysvmsg - --enable-sysvsem - --enable-sysvshm - --enable-wddx - --enable-zip - --with-apxs2=#{Formula["httpd"].opt_bin}/apxs - --with-bz2#{headers_path} - --with-curl=#{Formula["curl-openssl"].opt_prefix} - --with-fpm-user=_www - --with-fpm-group=_www - --with-freetype-dir=#{Formula["freetype"].opt_prefix} - --with-gd - --with-gettext=#{Formula["gettext"].opt_prefix} - --with-gmp=#{Formula["gmp"].opt_prefix} - --with-iconv#{headers_path} - --with-icu-dir=#{Formula["icu4c"].opt_prefix} - --with-jpeg-dir=#{Formula["jpeg"].opt_prefix} - --with-kerberos#{headers_path} - --with-layout=GNU - --with-ldap=#{Formula["openldap"].opt_prefix} - --with-ldap-sasl#{headers_path} - --with-libedit#{headers_path} - --with-libxml-dir#{headers_path} - --with-libzip - --with-mcrypt=#{Formula["mcrypt"].opt_prefix} - --with-mhash#{headers_path} - --with-mysql-sock=/tmp/mysql.sock - --with-mysqli=mysqlnd - --with-ndbm#{headers_path} - --with-openssl=#{Formula["openssl"].opt_prefix} - --with-pdo-dblib=#{Formula["freetds"].opt_prefix} - --with-pdo-mysql=mysqlnd - --with-pdo-odbc=unixODBC,#{Formula["unixodbc"].opt_prefix} - --with-pdo-pgsql=#{Formula["libpq"].opt_prefix} - --with-pdo-sqlite=#{Formula["sqlite"].opt_prefix} - --with-pgsql=#{Formula["libpq"].opt_prefix} - --with-pic - --with-png-dir=#{Formula["libpng"].opt_prefix} - --with-pspell=#{Formula["aspell"].opt_prefix} - --with-sqlite3=#{Formula["sqlite"].opt_prefix} - --with-tidy=#{Formula["tidy-html5"].opt_prefix} - --with-unixODBC=#{Formula["unixodbc"].opt_prefix} - --with-webp-dir=#{Formula["webp"].opt_prefix} - --with-xmlrpc - --with-xsl#{headers_path} - --with-zlib#{headers_path} - ] - - system "./configure", *args - system "make" - system "make", "install" - - # Allow pecl to install outside of Cellar - extension_dir = Utils.popen_read("#{bin}/php-config --extension-dir").chomp - orig_ext_dir = File.basename(extension_dir) - inreplace bin/"php-config", lib/"php", prefix/"pecl" - inreplace "php.ini-development", %r{; ?extension_dir = "\./"}, - "extension_dir = \"#{HOMEBREW_PREFIX}/lib/php/pecl/#{orig_ext_dir}\"" - - config_files = { - "php.ini-development" => "php.ini", - "sapi/fpm/php-fpm.conf" => "php-fpm.conf", - "sapi/fpm/www.conf" => "php-fpm.d/www.conf", - } - config_files.each_value do |dst| - dst_default = config_path/"#{dst}.default" - rm dst_default if dst_default.exist? - end - config_path.install config_files - - unless (var/"log/php-fpm.log").exist? - (var/"log").mkpath - touch var/"log/php-fpm.log" - end - end - - def post_install - pear_prefix = pkgshare/"pear" - pear_files = %W[ - #{pear_prefix}/.depdblock - #{pear_prefix}/.filemap - #{pear_prefix}/.depdb - #{pear_prefix}/.lock - ] - - %W[ - #{pear_prefix}/.channels - #{pear_prefix}/.channels/.alias - ].each do |f| - chmod 0755, f - pear_files.concat(Dir["#{f}/*"]) - end - - chmod 0644, pear_files - - # Custom location for extensions installed via pecl - pecl_path = HOMEBREW_PREFIX/"lib/php/pecl" - ln_s pecl_path, prefix/"pecl" unless (prefix/"pecl").exist? - extension_dir = Utils.popen_read("#{bin}/php-config --extension-dir").chomp - php_basename = File.basename(extension_dir) - php_ext_dir = opt_prefix/"lib/php"/php_basename - - # fix pear config to install outside cellar - pear_path = HOMEBREW_PREFIX/"share/pear@#{php_version}" - cp_r pkgshare/"pear/.", pear_path - { - "php_ini" => etc/"php/#{php_version}/php.ini", - "php_dir" => pear_path, - "doc_dir" => pear_path/"doc", - "ext_dir" => pecl_path/php_basename, - "bin_dir" => opt_bin, - "data_dir" => pear_path/"data", - "cfg_dir" => pear_path/"cfg", - "www_dir" => pear_path/"htdocs", - "man_dir" => HOMEBREW_PREFIX/"share/man", - "test_dir" => pear_path/"test", - "php_bin" => opt_bin/"php", - }.each do |key, value| - value.mkpath if key =~ /(? - SetHandler application/x-httpd-php - - - Finally, check DirectoryIndex includes index.php - DirectoryIndex index.php index.html - - The php.ini and php-fpm.ini file can be found in: - #{etc}/php/#{php_version}/ - EOS - end - - def php_version - version.to_s.split(".")[0..1].join(".") - end - - plist_options :manual => "php-fpm" - - def plist; <<~EOS - - - - - KeepAlive - - Label - #{plist_name} - ProgramArguments - - #{opt_sbin}/php-fpm - --nodaemonize - - RunAtLoad - - WorkingDirectory - #{var} - StandardErrorPath - #{var}/log/php-fpm.log - - - EOS - end - - test do - assert_match /^Zend OPcache$/, shell_output("#{bin}/php -i"), - "Zend OPCache extension not loaded" - # Test related to libxml2 and - # https://github.com/Homebrew/homebrew-core/issues/28398 - assert_includes MachO::Tools.dylibs("#{bin}/php"), - "#{Formula["libpq"].opt_lib}/libpq.5.dylib" - system "#{sbin}/php-fpm", "-t" - system "#{bin}/phpdbg", "-V" - system "#{bin}/php-cgi", "-m" - # Prevent SNMP extension to be added - assert_no_match /^snmp$/, shell_output("#{bin}/php -m"), - "SNMP extension doesn't work reliably with Homebrew on High Sierra" - begin - require "socket" - - server = TCPServer.new(0) - port = server.addr[1] - server_fpm = TCPServer.new(0) - port_fpm = server_fpm.addr[1] - server.close - server_fpm.close - - expected_output = /^Hello world!$/ - (testpath/"index.php").write <<~EOS - - SetHandler application/x-httpd-php - - EOS - - (testpath/"fpm.conf").write <<~EOS - [global] - daemonize=no - [www] - listen = 127.0.0.1:#{port_fpm} - pm = dynamic - pm.max_children = 5 - pm.start_servers = 2 - pm.min_spare_servers = 1 - pm.max_spare_servers = 3 - EOS - - (testpath/"httpd-fpm.conf").write <<~EOS - #{main_config} - LoadModule mpm_event_module lib/httpd/modules/mod_mpm_event.so - LoadModule proxy_module lib/httpd/modules/mod_proxy.so - LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so - - SetHandler "proxy:fcgi://127.0.0.1:#{port_fpm}" - - EOS - - pid = fork do - exec Formula["httpd"].opt_bin/"httpd", "-X", "-f", "#{testpath}/httpd.conf" - end - sleep 3 - - assert_match expected_output, shell_output("curl -s 127.0.0.1:#{port}") - - Process.kill("TERM", pid) - Process.wait(pid) - - fpm_pid = fork do - exec sbin/"php-fpm", "-y", "fpm.conf" - end - pid = fork do - exec Formula["httpd"].opt_bin/"httpd", "-X", "-f", "#{testpath}/httpd-fpm.conf" - end - sleep 3 - - assert_match expected_output, shell_output("curl -s 127.0.0.1:#{port}") - ensure - if pid - Process.kill("TERM", pid) - Process.wait(pid) - end - if fpm_pid - Process.kill("TERM", fpm_pid) - Process.wait(fpm_pid) - end - end - end -end - -__END__ -diff --git a/acinclude.m4 b/acinclude.m4 -index 168c465f8d..6c087d152f 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -441,7 +441,11 @@ dnl - dnl Adds a path to linkpath/runpath (LDFLAGS) - dnl - AC_DEFUN([PHP_ADD_LIBPATH],[ -- if test "$1" != "/usr/$PHP_LIBDIR" && test "$1" != "/usr/lib"; then -+ case "$1" in -+ "/usr/$PHP_LIBDIR"|"/usr/lib"[)] ;; -+ /Library/Developer/CommandLineTools/SDKs/*/usr/lib[)] ;; -+ /Applications/Xcode*.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/*/usr/lib[)] ;; -+ *[)] - PHP_EXPAND_PATH($1, ai_p) - ifelse([$2],,[ - _PHP_ADD_LIBPATH_GLOBAL([$ai_p]) -@@ -452,8 +456,8 @@ AC_DEFUN([PHP_ADD_LIBPATH],[ - else - _PHP_ADD_LIBPATH_GLOBAL([$ai_p]) - fi -- ]) -- fi -+ ]) ;; -+ esac - ]) - - dnl -@@ -487,7 +491,11 @@ dnl add an include path. - dnl if before is 1, add in the beginning of INCLUDES. - dnl - AC_DEFUN([PHP_ADD_INCLUDE],[ -- if test "$1" != "/usr/include"; then -+ case "$1" in -+ "/usr/include"[)] ;; -+ /Library/Developer/CommandLineTools/SDKs/*/usr/include[)] ;; -+ /Applications/Xcode*.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/*/usr/include[)] ;; -+ *[)] - PHP_EXPAND_PATH($1, ai_p) - PHP_RUN_ONCE(INCLUDEPATH, $ai_p, [ - if test "$2"; then -@@ -495,8 +503,8 @@ AC_DEFUN([PHP_ADD_INCLUDE],[ - else - INCLUDES="$INCLUDES -I$ai_p" - fi -- ]) -- fi -+ ]) ;; -+ esac - ]) - - dnl internal, don't use -@@ -2411,7 +2419,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [ - fi - - if test -f $ICONV_DIR/$PHP_LIBDIR/lib$iconv_lib_name.a || -- test -f $ICONV_DIR/$PHP_LIBDIR/lib$iconv_lib_name.$SHLIB_SUFFIX_NAME -+ test -f $ICONV_DIR/$PHP_LIBDIR/lib$iconv_lib_name.$SHLIB_SUFFIX_NAME || -+ test -f $ICONV_DIR/$PHP_LIBDIR/lib$iconv_lib_name.tbd - then - PHP_CHECK_LIBRARY($iconv_lib_name, libiconv, [ - found_iconv=yes