From ee01555a5783684df4060bbec7d99b2740ff4567 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 29 Nov 2023 14:54:20 +0100 Subject: initial package, version 8.0.53 --- php-tecnickcom-tc-lib-pdf.spec | 252 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 php-tecnickcom-tc-lib-pdf.spec (limited to 'php-tecnickcom-tc-lib-pdf.spec') diff --git a/php-tecnickcom-tc-lib-pdf.spec b/php-tecnickcom-tc-lib-pdf.spec new file mode 100644 index 0000000..b6f6abb --- /dev/null +++ b/php-tecnickcom-tc-lib-pdf.spec @@ -0,0 +1,252 @@ +# remirepo/fedora spec file for php-tecnickcom-tc-lib-pdf +# +# Copyright (c) 2023 Remi Collet +# License: CC-BY-SA-4.0 +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit ff6a98586d852dc82c9caa4b57a2f1b66c111b8c +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global c_vendor tecnickcom +%global gh_owner tecnickcom +%global gh_project tc-lib-pdf +%global php_project %{_datadir}/php/Com/Tecnick/Pdf +%bcond_without tests + +Name: php-%{gh_owner}-%{gh_project} +Version: 8.0.53 +Release: 1%{?dist} +Summary: PHP PDF Library + +License: LGPL-3.0-or-later +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}-%{?gh_short}.tar.gz + +BuildArch: noarch +%if %{with tests} +# For tests +%global phpunit %{_bindir}/phpunit10 +BuildRequires: phpunit10 >= 10.1.2 +BuildRequires: php(language) >= 8.0 +# remirepo:1 +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 +BuildRequires: (php-composer(%{c_vendor}/tc-lib-barcode) >= 2.1 with php-composer(%{c_vendor}/tc-lib-barcode) < 3) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-color) >= 2.0 with php-composer(%{c_vendor}/tc-lib-color) < 3) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-pdf-image) >= 2.0 with php-composer(%{c_vendor}/tc-lib-pdf-image) < 3) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-pdf-font) >= 2.0 with php-composer(%{c_vendor}/tc-lib-pdf-font) < 3) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-file) >= 2.0 with php-composer(%{c_vendor}/tc-lib-file) < 3) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-pdf-encrypt) >= 2.0 with php-composer(%{c_vendor}/tc-lib-pdf-encrypt) < 3) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-unicode-data) >= 2.0 with php-composer(%{c_vendor}/tc-lib-unicode-data) < 3) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-unicode) >= 2.0 with php-composer(%{c_vendor}/tc-lib-unicode) < 3) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-pdf-page) >= 4.0 with php-composer(%{c_vendor}/tc-lib-pdf-page) < 5) +BuildRequires: (php-composer(%{c_vendor}/tc-lib-pdf-graph) >= 2.0 with php-composer(%{c_vendor}/tc-lib-pdf-graph) < 3) +# remirepo:22 +%else +BuildRequires: php-composer(%{c_vendor}/tc-lib-barcode) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-barcode) >= 2.1 +BuildRequires: php-composer(%{c_vendor}/tc-lib-color) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-color) >= 2.0 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-image) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-image) >= 2.0 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-font) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-font) >= 2.0 +BuildRequires: php-composer(%{c_vendor}/tc-lib-file) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-file) >= 2.0 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-encrypt) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-encrypt) >= 2.0 +BuildRequires: php-composer(%{c_vendor}/tc-lib-unicode-data) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-unicode-data) >= 2.0 +BuildRequires: php-composer(%{c_vendor}/tc-lib-unicode) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-unicode) >= 2.0 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-page) < 5 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-page) >= 4.0 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-graph) < 3 +BuildRequires: php-composer(%{c_vendor}/tc-lib-pdf-graph) >= 2.0 +%endif +BuildRequires: php-date +BuildRequires: php-openssl +BuildRequires: php-pcre +# Optional but required for test +BuildRequires: php-pecl-imagick +%endif +BuildRequires: php-fedora-autoloader-devel + +# From composer.json, "require": { +# "php": ">=8.0", +# "ext-date": "*", +# "ext-pcre": "*", +# "tecnickcom/tc-lib-barcode": "^2.1", +# "tecnickcom/tc-lib-color": "^2.0", +# "tecnickcom/tc-lib-pdf-image": "^2.0", +# "tecnickcom/tc-lib-pdf-font": "^2.0", +# "tecnickcom/tc-lib-file": "^2.0", +# "tecnickcom/tc-lib-pdf-encrypt": "^2.0", +# "tecnickcom/tc-lib-unicode-data": "^2.0", +# "tecnickcom/tc-lib-unicode": "^2.0", +# "tecnickcom/tc-lib-pdf-page": "^4.0", +# "tecnickcom/tc-lib-pdf-graph": "^2.0" +Requires: php(language) >= 8.0 +Requires: php-date +Requires: php-pcre +# remirepo:1 +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 +Requires: (php-composer(%{c_vendor}/tc-lib-barcode) >= 2.1 with php-composer(%{c_vendor}/tc-lib-barcode) < 3) +Requires: (php-composer(%{c_vendor}/tc-lib-color) >= 2.0 with php-composer(%{c_vendor}/tc-lib-color) < 3) +Requires: (php-composer(%{c_vendor}/tc-lib-pdf-image) >= 2.0 with php-composer(%{c_vendor}/tc-lib-pdf-image) < 3) +Requires: (php-composer(%{c_vendor}/tc-lib-pdf-font) >= 2.0 with php-composer(%{c_vendor}/tc-lib-pdf-font) < 3) +Requires: (php-composer(%{c_vendor}/tc-lib-file) >= 2.0 with php-composer(%{c_vendor}/tc-lib-file) < 3) +Requires: (php-composer(%{c_vendor}/tc-lib-pdf-encrypt) >= 2.0 with php-composer(%{c_vendor}/tc-lib-pdf-encrypt) < 3) +Requires: (php-composer(%{c_vendor}/tc-lib-unicode-data) >= 2.0 with php-composer(%{c_vendor}/tc-lib-unicode-data) < 3) +Requires: (php-composer(%{c_vendor}/tc-lib-unicode) >= 2.0 with php-composer(%{c_vendor}/tc-lib-unicode) < 3) +Requires: (php-composer(%{c_vendor}/tc-lib-pdf-page) >= 4.0 with php-composer(%{c_vendor}/tc-lib-pdf-page) < 5) +Requires: (php-composer(%{c_vendor}/tc-lib-pdf-graph) >= 2.0 with php-composer(%{c_vendor}/tc-lib-pdf-graph) < 3) +# remirepo:22 +%else +Requires: php-composer(%{c_vendor}/tc-lib-barcode) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-barcode) >= 2.1 +Requires: php-composer(%{c_vendor}/tc-lib-color) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-color) >= 2.0 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-image) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-image) >= 2.0 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-font) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-font) >= 2.0 +Requires: php-composer(%{c_vendor}/tc-lib-file) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-file) >= 2.0 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-encrypt) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-encrypt) >= 2.0 +Requires: php-composer(%{c_vendor}/tc-lib-unicode-data) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-unicode-data) >= 2.0 +Requires: php-composer(%{c_vendor}/tc-lib-unicode) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-unicode) >= 2.0 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-page) < 5 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-page) >= 4.0 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-graph) < 3 +Requires: php-composer(%{c_vendor}/tc-lib-pdf-graph) >= 2.0 +%endif +# From phpcompatinfo report for version 8.0.53 +Requires: php-openssl +Requires: php-composer(fedora/autoloader) + +# Composer +Provides: php-composer(%{c_vendor}/%{gh_project}) = %{version} +# Upstream package name +Provides: php-%{gh_project} = %{version} + + +%description +PHP library for generating PDF documents on-the-fly. + +Main Features: +* no external libraries are required for the basic functions; +* all standard page formats, custom page formats, custom margins and units of measure; +* UTF-8 Unicode and Right-To-Left languages; +* TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 and CID-0 fonts; +* font subsetting; +* methods to publish some XHTML + CSS code, Javascript and Forms; +* images, graphic (geometric figures) and transformation methods; +* supports JPEG, PNG and SVG images natively, all images supported by GD + (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported + via ImagMagick (http://www.imagemagick.org/script/formats.php) +* 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, + USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits + UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, + RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), + KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, + USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, + QR-Code, PDF417; +* JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Pdfs and Transparencies; +* automatic page header and footer management; +* document encryption up to 256 bit and digital signature certifications; +* transactions to UNDO commands; +* PDF annotations, including links, text and file attachments; +* text rendering modes (fill, stroke and clipping); +* multiple columns mode; +* no-write page regions; +* bookmarks, named destinations and table of content; +* text hyphenation; +* text stretching and spacing (tracking); +* automatic page break, line break and text alignments including justification; +* automatic page numbering and page groups; +* move and delete pages; +* page compression (requires php-zlib extension); +* XOBject Templates; +* Layers and object visibility. +* PDF/A-1b support. + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +: Sanity check +grep -q '^%{version}$' VERSION + +: Fix the examples +sed -e 's:^require:////require:' \ + -e 's:^//require:require:' \ + -e 's:../vendor/tecnickcom/tc-lib-pdf-font/target/fonts/:/usr/share/php-tecnickcom-tc-lib-pdf-font/:' \ + -e '/OUTPUT_FILE/s:../target/:./:' \ + -e 's:../vendor/tecnickcom/tc-lib-pdf-image/test/images:/usr/share/doc/php-tecnickcom-tc-lib-pdf-image/images:' \ + -i examples/*php + + +%build +phpab --template fedora --output src/autoload.php src +cat << 'EOF' | tee -a src/autoload.php +\Fedora\Autoloader\Dependencies::required([ + '%{_datadir}/php/Com/Tecnick/Barcode/autoload.php', + '%{_datadir}/php/Com/Tecnick/Color/autoload.php', + '%{_datadir}/php/Com/Tecnick/File/autoload.php', + '%{_datadir}/php/Com/Tecnick/Pdf/Image/autoload.php', + '%{_datadir}/php/Com/Tecnick/Pdf/Font/autoload.php', + '%{_datadir}/php/Com/Tecnick/Pdf/Encrypt/autoload.php', + '%{_datadir}/php/Com/Tecnick/Pdf/Page/autoload.php', + '%{_datadir}/php/Com/Tecnick/Pdf/Graph/autoload.php', + '%{_datadir}/php/Com/Tecnick/Unicode/autoload.php', + '%{_datadir}/php/Com/Tecnick/Unicode/Data/autoload.php', +]); +EOF + + +%install +mkdir -p $(dirname %{buildroot}%{php_project}) +cp -pr src %{buildroot}%{php_project} + + +%check +%if %{with tests} +mkdir vendor +cat << 'EOF' | tee vendor/autoload.php + - 8.0.53-1 +- initial package, version 8.0.53 -- cgit