# 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-%{c_vendor}-tc-lib-barcode < 3 BuildRequires: php-%{c_vendor}-tc-lib-barcode >= 2.1 BuildRequires: php-%{c_vendor}-tc-lib-color < 3 BuildRequires: php-%{c_vendor}-tc-lib-color >= 2.0 BuildRequires: php-%{c_vendor}-tc-lib-pdf-image < 3 BuildRequires: php-%{c_vendor}-tc-lib-pdf-image >= 2.0 BuildRequires: php-%{c_vendor}-tc-lib-pdf-font < 3 BuildRequires: php-%{c_vendor}-tc-lib-pdf-font >= 2.0 BuildRequires: php-%{c_vendor}-tc-lib-file < 3 BuildRequires: php-%{c_vendor}-tc-lib-file >= 2.0 BuildRequires: php-%{c_vendor}-tc-lib-pdf-encrypt < 3 BuildRequires: php-%{c_vendor}-tc-lib-pdf-encrypt >= 2.0 BuildRequires: php-%{c_vendor}-tc-lib-unicode-data < 3 BuildRequires: php-%{c_vendor}-tc-lib-unicode-data >= 2.0 BuildRequires: php-%{c_vendor}-tc-lib-unicode < 3 BuildRequires: php-%{c_vendor}-tc-lib-unicode >= 2.0 BuildRequires: php-%{c_vendor}-tc-lib-pdf-page < 5 BuildRequires: php-%{c_vendor}-tc-lib-pdf-page >= 4.0 BuildRequires: php-%{c_vendor}-tc-lib-pdf-graph < 3 BuildRequires: php-%{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-%{c_vendor}-tc-lib-barcode < 3 Requires: php-%{c_vendor}-tc-lib-barcode >= 2.1 Requires: php-%{c_vendor}-tc-lib-color < 3 Requires: php-%{c_vendor}-tc-lib-color >= 2.0 Requires: php-%{c_vendor}-tc-lib-pdf-image < 3 Requires: php-%{c_vendor}-tc-lib-pdf-image >= 2.0 Requires: php-%{c_vendor}-tc-lib-pdf-font < 3 Requires: php-%{c_vendor}-tc-lib-pdf-font >= 2.0 Requires: php-%{c_vendor}-tc-lib-file < 3 Requires: php-%{c_vendor}-tc-lib-file >= 2.0 Requires: php-%{c_vendor}-tc-lib-pdf-encrypt < 3 Requires: php-%{c_vendor}-tc-lib-pdf-encrypt >= 2.0 Requires: php-%{c_vendor}-tc-lib-unicode-data < 3 Requires: php-%{c_vendor}-tc-lib-unicode-data >= 2.0 Requires: php-%{c_vendor}-tc-lib-unicode < 3 Requires: php-%{c_vendor}-tc-lib-unicode >= 2.0 Requires: php-%{c_vendor}-tc-lib-pdf-page < 5 Requires: php-%{c_vendor}-tc-lib-pdf-page >= 4.0 Requires: php-%{c_vendor}-tc-lib-pdf-graph < 3 Requires: php-%{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