mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-06 22:24:12 -05:00
* Rebuild php83 Signed-off-by: Satadru Pramanik <satadru@gmail.com> * php83-rebuild: Package File Update Run on linux/amd64 container. * php83-rebuild: Package File Update Run on linux/arm/v7 container. --------- Signed-off-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: chromebrew-actions[bot] <chromebrew-actions[bot]@users.noreply.github.com>
205 lines
6.9 KiB
Ruby
205 lines
6.9 KiB
Ruby
require 'package'
|
|
|
|
class Php83 < Package
|
|
description 'PHP is a popular general-purpose scripting language that is especially suited to web development.'
|
|
homepage 'https://www.php.net/'
|
|
version '8.3.28-1'
|
|
license 'PHP-3.01'
|
|
compatibility 'aarch64 armv7l x86_64'
|
|
source_url "https://www.php.net/distributions/php-#{version.split('-').first}.tar.xz"
|
|
source_sha256 '25e3860f30198a386242891c0bf9e2955931f7b666b96c3e3103d36a2a322326'
|
|
binary_compression 'tar.zst'
|
|
|
|
binary_sha256({
|
|
aarch64: '1f3bffdbeff97dc0cdbcedc007db65272d583e012106fe9fd2581027fe7c1b8a',
|
|
armv7l: '1f3bffdbeff97dc0cdbcedc007db65272d583e012106fe9fd2581027fe7c1b8a',
|
|
x86_64: '8f735b1cfd7837d3b3b87f590fd8a4c31076c89bab3501f1819dcbf942483577'
|
|
})
|
|
|
|
depends_on 'aspell' # R
|
|
depends_on 'aspell_en' => :build
|
|
depends_on 'brotli' # R
|
|
depends_on 'bzip2' # R
|
|
depends_on 'c_ares' # R
|
|
depends_on 'curl' # R
|
|
depends_on 'e2fsprogs' # R
|
|
depends_on 'freetype' # R
|
|
depends_on 'gcc_lib' # R
|
|
depends_on 'gdbm' # R
|
|
depends_on 'glibc' # R
|
|
depends_on 'gmp' # R
|
|
depends_on 'icu4c' # R
|
|
depends_on 'jq' # R
|
|
depends_on 'krb5' # R
|
|
depends_on 'libcyrussasl' # R
|
|
depends_on 'libedit' # R
|
|
depends_on 'libffi' # R
|
|
depends_on 'libidn2' # R
|
|
depends_on 'libjpeg_turbo' # R
|
|
depends_on 'libnghttp2' # R
|
|
depends_on 'libnghttp3' # R
|
|
depends_on 'libngtcp2' # R
|
|
depends_on 'libpng' # R
|
|
depends_on 'libpsl' # R
|
|
depends_on 'libsodium' # R
|
|
depends_on 'libssh' # R
|
|
depends_on 'libtool' # R
|
|
depends_on 'libunistring' # R
|
|
depends_on 'libxml2' # R
|
|
depends_on 'libxslt' # R
|
|
depends_on 'libzip' # R
|
|
depends_on 'ncurses' # R
|
|
depends_on 'oniguruma' # R
|
|
depends_on 'openldap' # R
|
|
depends_on 'openssl' # R
|
|
depends_on 'sqlite' # R
|
|
depends_on 'tidy' # R
|
|
depends_on 'unixodbc' # R
|
|
depends_on 'zlib' # R
|
|
depends_on 'zstd' # R
|
|
|
|
no_fhs
|
|
|
|
def self.preflight
|
|
phpver = `php -v 2> /dev/null | head -1 | cut -d' ' -f2`.chomp
|
|
return unless ARGV[0] != 'reinstall' && version != phpver && !phpver.empty?
|
|
|
|
abort "PHP version #{phpver} already installed.".lightgreen
|
|
end
|
|
|
|
def self.patch
|
|
# Configuration
|
|
system "sed -i 's,;pid = run/php-fpm.pid,pid = #{CREW_PREFIX}/tmp/run/php-fpm.pid,' sapi/fpm/php-fpm.conf.in"
|
|
system "sed -i 's,;error_log = log/php-fpm.log,error_log = #{CREW_PREFIX}/log/php-fpm.log,' sapi/fpm/php-fpm.conf.in"
|
|
system "sed -i 's,include=@php_fpm_sysconfdir@/php-fpm.d,include=#{CREW_PREFIX}/etc/php-fpm.d,' sapi/fpm/php-fpm.conf.in"
|
|
system "sed -i 's,^user,;user,' sapi/fpm/www.conf.in"
|
|
system "sed -i 's,^group,;group,' sapi/fpm/www.conf.in"
|
|
system "sed -i 's,@sbindir@,#{CREW_PREFIX}/bin,' sapi/fpm/init.d.php-fpm.in"
|
|
system "sed -i 's,@sysconfdir@,#{CREW_PREFIX}/etc,' sapi/fpm/init.d.php-fpm.in"
|
|
system "sed -i 's,@localstatedir@,#{CREW_PREFIX}/tmp,' sapi/fpm/init.d.php-fpm.in"
|
|
# Set some sane defaults
|
|
system "sed -i 's,post_max_size = 8M,post_max_size = 128M,' php.ini-development"
|
|
system "sed -i 's,upload_max_filesize = 2M,upload_max_filesize = 128M,' php.ini-development"
|
|
system "sed -i 's,;opcache.enable=0,opcache.enable=1,' php.ini-development"
|
|
# Fix cc: error: ext/standard/.libs/type.o: No such file or directory
|
|
# system "sed -i '98303d' configure"
|
|
# system "sed -i '98295,98296d' configure"
|
|
# Fix /usr/bin/file: No such file or directory
|
|
system 'filefix'
|
|
end
|
|
|
|
def self.build
|
|
system "CPPFLAGS+=' -I#{CREW_PREFIX}/include/php/Zend' \
|
|
./configure \
|
|
--prefix=#{CREW_PREFIX} \
|
|
--docdir=#{CREW_PREFIX}/doc \
|
|
--infodir=#{CREW_PREFIX}/info \
|
|
--libdir=#{CREW_LIB_PREFIX} \
|
|
--localstatedir=#{CREW_PREFIX}/var \
|
|
--mandir=#{CREW_MAN_PREFIX} \
|
|
--sbindir=#{CREW_PREFIX}/bin \
|
|
--with-config-file-path=#{CREW_PREFIX}/etc \
|
|
--with-libdir=#{ARCH_LIB} \
|
|
--with-kerberos=#{CREW_LIB_PREFIX} \
|
|
--with-pear=#{CREW_LIB_PREFIX}/php \
|
|
--with-zlib-dir=#{CREW_LIB_PREFIX} \
|
|
--disable-gcc-global-regs \
|
|
--enable-exif \
|
|
--enable-fpm \
|
|
--enable-ftp \
|
|
--enable-gd \
|
|
--enable-mbstring \
|
|
--enable-opcache \
|
|
--enable-pcntl \
|
|
--enable-shared \
|
|
--enable-shmop \
|
|
--enable-sockets \
|
|
--enable-bcmath \
|
|
--enable-calendar \
|
|
--enable-dba=shared \
|
|
--enable-intl \
|
|
--enable-mysqlnd \
|
|
--enable-opcache \
|
|
--enable-soap \
|
|
--enable-sysvmsg \
|
|
--with-zip \
|
|
--with-bz2 \
|
|
--with-curl \
|
|
--with-gettext \
|
|
--with-gmp \
|
|
--with-mysqli \
|
|
--with-openssl \
|
|
--with-pdo-mysql \
|
|
--with-readline \
|
|
--with-tidy \
|
|
--with-unixODBC \
|
|
--with-xsl \
|
|
--with-zlib \
|
|
--with-freetype \
|
|
--with-gdbm \
|
|
--with-jpeg \
|
|
--with-ldap \
|
|
--with-ldap-sasl \
|
|
--with-pspell \
|
|
--with-sodium \
|
|
--with-zip \
|
|
--with-ffi \
|
|
--with-libedit"
|
|
system 'make'
|
|
end
|
|
|
|
def self.check
|
|
# system 'make', 'test'
|
|
end
|
|
|
|
def self.install
|
|
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin"
|
|
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/tmp/run"
|
|
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/etc/bash.d"
|
|
|
|
system 'make', "INSTALL_ROOT=#{CREW_DEST_DIR}", 'install'
|
|
FileUtils.install 'php.ini-development', "#{CREW_DEST_PREFIX}/etc/php.ini", mode: 0o644
|
|
FileUtils.install 'sapi/fpm/init.d.php-fpm.in', "#{CREW_DEST_PREFIX}/etc/init.d/php-fpm", mode: 0o755
|
|
FileUtils.install 'sapi/fpm/php-fpm.conf.in', "#{CREW_DEST_PREFIX}/etc/php-fpm.conf", mode: 0o644
|
|
FileUtils.install 'sapi/fpm/www.conf.in', "#{CREW_DEST_PREFIX}/etc/php-fpm.d/www.conf", mode: 0o644
|
|
FileUtils.ln_s "#{CREW_PREFIX}/etc/init.d/php-fpm", "#{CREW_DEST_PREFIX}/bin/php8-fpm"
|
|
|
|
# Clean up some files created under #{CREW_DEST_DIR}.
|
|
# Check http://pear.php.net/bugs/bug.php?id=20383 for more details.
|
|
FileUtils.mv "#{CREW_DEST_PREFIX}/php/php/fpm", "#{CREW_DEST_LIB_PREFIX}/php"
|
|
FileUtils.mv "#{CREW_DEST_DIR}/.depdb", "#{CREW_DEST_LIB_PREFIX}/php"
|
|
FileUtils.mv "#{CREW_DEST_DIR}/.depdblock", "#{CREW_DEST_LIB_PREFIX}/php"
|
|
FileUtils.rm_rf "#{CREW_DEST_DIR}/.channels"
|
|
FileUtils.rm_rf "#{CREW_DEST_DIR}/.filemap"
|
|
FileUtils.rm_rf "#{CREW_DEST_DIR}/.lock"
|
|
FileUtils.rm_rf "#{CREW_DEST_DIR}/.registry"
|
|
|
|
# Make sure the log file exists.
|
|
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/log"
|
|
FileUtils.touch "#{CREW_DEST_PREFIX}/log/php-fpm.log"
|
|
|
|
# Launch php8-fpm when the bash shell session starts.
|
|
File.write "#{CREW_DEST_PREFIX}/etc/bash.d/01-php8-fpm", <<~EOF
|
|
[ -x #{CREW_PREFIX}/bin/php8-fpm ] && #{CREW_PREFIX}/bin/php8-fpm start
|
|
EOF
|
|
end
|
|
|
|
def self.postinstall
|
|
ExitMessage.add <<~EOF.lightblue
|
|
|
|
To start the php-fpm service, execute:
|
|
php8-fpm start
|
|
|
|
To stop the php-fpm service, execute:
|
|
php8-fpm stop
|
|
|
|
To restart the php-fpm service, execute:
|
|
php8-fpm restart
|
|
|
|
php8-fpm start will execute on login.
|
|
To prevent this, edit or remove #{CREW_PREFIX}/etc/bash.d/01-php8-fpm.
|
|
|
|
EOF
|
|
end
|
|
end
|