diff --git a/SPECS/php-fpdf/php-fpdf.spec b/SPECS/php-fpdf/php-fpdf.spec new file mode 100644 index 0000000000..decd5dd626 --- /dev/null +++ b/SPECS/php-fpdf/php-fpdf.spec @@ -0,0 +1,53 @@ +# SPDX-FileCopyrightText: (C) 2026 Institute of Software, Chinese Academy of Sciences (ISCAS) +# SPDX-FileCopyrightText: (C) 2026 openRuyi Project Contributors +# SPDX-FileContributor: panglars +# +# SPDX-License-Identifier: MulanPSL-2.0 + +%global fpdf_dir %{_datadir}/php/fpdf + +Name: php-fpdf +Version: 1.8.6 +Release: %autorelease +Summary: PHP class to generate PDF files +License: MIT +URL: http://www.fpdf.org +VCS: git:https://github.com/Setasign/FPDF.git +#!RemoteAsset: sha256:7f09cdfc9ef75d53d79bb4d56fc7baefc80a9d87b38284f058fefe845dfe5414 +Source: https://github.com/Setasign/FPDF/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz +BuildArch: noarch +# upstream ships a plain PHP library, no build system + +BuildRequires: php + +Requires: php +Requires: php-gd +Requires: php-zlib + +%description +FPDF is a PHP class that generates PDF files with pure PHP, without using +the PDFlib library. It provides high-level functions for page layout, text, +images, colors, links, font handling, and page compression. + +%prep +%autosetup -n FPDF-%{version} + +%install +install -d -m0755 %{buildroot}%{fpdf_dir} +cp -a fpdf.php composer.json font makefont %{buildroot}%{fpdf_dir}/ + +%check +php -l fpdf.php + +%files +%doc README.md FAQ.htm changelog.htm install.txt doc fpdf.css +%license license.txt +%dir %{_datadir}/php +%dir %{fpdf_dir} +%{fpdf_dir}/composer.json +%{fpdf_dir}/fpdf.php +%{fpdf_dir}/font/ +%{fpdf_dir}/makefont/ + +%changelog +%autochangelog diff --git a/SPECS/php/php.spec b/SPECS/php/php.spec index bfb3b8d20b..0187e5b58a 100644 --- a/SPECS/php/php.spec +++ b/SPECS/php/php.spec @@ -1,6 +1,7 @@ # SPDX-FileCopyrightText: (C) 2026 Institute of Software, Chinese Academy of Sciences (ISCAS) # SPDX-FileCopyrightText: (C) 2026 openRuyi Project Contributors # SPDX-FileContributor: Zephyr Du +# SPDX-FileContributor: panglars # # SPDX-License-Identifier: MulanPSL-2.0 @@ -24,7 +25,16 @@ BuildSystem: autotools BuildOption(conf): --enable-re2c-cgoto BuildOption(conf): --with-config-file-path=%{_sysconfdir}/php -BuildOption(conf): --with-config-file-scan-dir=%{_sysconfdir}/php.d +BuildOption(conf): --with-config-file-scan-dir=%{_sysconfdir}/php/conf.d +BuildOption(conf): --with-curl=shared +BuildOption(conf): --enable-gd=shared +BuildOption(conf): --with-freetype +BuildOption(conf): --with-jpeg +BuildOption(conf): --with-openssl=shared +BuildOption(conf): --enable-pcntl=shared +BuildOption(conf): --with-zip=shared +BuildOption(conf): --with-zlib=shared +BuildOption(conf): EXTENSION_DIR=%{_libdir}/php/extensions BuildOption(build): CFLAGS="$RPM_OPT_FLAGS" BuildOption(build): LDFLAGS="$RPM_LD_FLAGS" BuildOption(install): PREFIX=%{_prefix} @@ -36,11 +46,19 @@ BuildOption(check): REPORT_EXIT_STATUS=1 BuildOption(check): NO_INTERACTION=1 BuildOption(check): SKIP_ONLINE_TESTS=1 BuildOption(check): SKIP_SLOW_TESTS=1 +BuildOption(check): TESTS="-r php-test-list" BuildRequires: re2c BuildRequires: bison +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libzip) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(zlib) %description PHP is a popular general-purpose scripting language that is especially suited @@ -54,16 +72,78 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Includes and definitions for developing with php. +%package curl +Summary: PHP libcurl integration +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description curl +This package provides the PHP extension for libcurl. + +%package gd +Summary: PHP GD graphics extension +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description gd +This package provides the PHP extension for creating and manipulating images +using the GD graphics library. + +%package openssl +Summary: PHP OpenSSL integration +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description openssl +This package provides the PHP extension for OpenSSL cryptography and TLS +stream support. + +%package pcntl +Summary: PHP process control extension +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description pcntl +This package provides the PHP extension for Unix process control functions. + +%package zip +Summary: PHP ZIP archive extension +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description zip +This package provides the PHP extension for reading and writing ZIP archives. + +%package zlib +Summary: PHP zlib compression extension +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description zlib +This package provides the PHP extension for zlib compression support. + +%check -p +# These tests can't run on OBS worker, disabled +find . -type f -name '*.phpt' \ + ! -path './ext/curl/tests/curl_setopt_ssl.phpt' \ + ! -path './ext/opcache/tests/bug78185.phpt' \ + ! -path './ext/opcache/tests/gh16979_check_file_cache_function.phpt' \ + ! -path './ext/openssl/tests/sni_server.phpt' \ + ! -path './ext/openssl/tests/sni_server_key_cert.phpt' \ + ! -path './ext/pcntl/tests/pcntl_cpuaffinity.phpt' \ + ! -path './ext/pcntl/tests/pcntl_getcpu.phpt' \ + ! -path './ext/pdo_pgsql/tests/transations_deprecations.phpt' \ + | sort > php-test-list + %install -a install -D -m644 "php.ini-production" "%{buildroot}/etc/php/php.ini" install -d -m755 "%{buildroot}/etc/php/conf.d/" +for ext in curl gd openssl pcntl zip zlib; do + echo "extension=${ext}.so" > "%{buildroot}%{_sysconfdir}/php/conf.d/20-${ext}.ini" +done rm -r %{buildroot}%{_libdir}/build %files -%license LICENSE %doc README.md NEWS +%license LICENSE %{_bindir}/* %{_datadir}/man/* +%dir %{_libdir}/php +%dir %{_libdir}/php/extensions # main configuration file %{_sysconfdir}/php/php.ini # main configuration directory @@ -73,5 +153,29 @@ rm -r %{buildroot}%{_libdir}/build %files devel %{_includedir}/php/* +%files curl +%config(noreplace) %{_sysconfdir}/php/conf.d/20-curl.ini +%{_libdir}/php/extensions/curl.so + +%files gd +%config(noreplace) %{_sysconfdir}/php/conf.d/20-gd.ini +%{_libdir}/php/extensions/gd.so + +%files openssl +%config(noreplace) %{_sysconfdir}/php/conf.d/20-openssl.ini +%{_libdir}/php/extensions/openssl.so + +%files pcntl +%config(noreplace) %{_sysconfdir}/php/conf.d/20-pcntl.ini +%{_libdir}/php/extensions/pcntl.so + +%files zip +%config(noreplace) %{_sysconfdir}/php/conf.d/20-zip.ini +%{_libdir}/php/extensions/zip.so + +%files zlib +%config(noreplace) %{_sysconfdir}/php/conf.d/20-zlib.ini +%{_libdir}/php/extensions/zlib.so + %changelog %autochangelog