diff options
-rw-r--r-- | .gitignore | 9 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | composer.json | 57 | ||||
-rw-r--r-- | php-tecnickcom-tc-lib-pdf.spec | 252 |
4 files changed, 322 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01f0400 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +clog +package-*.xml +*.tgz +*.tar.bz2 +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..13af741 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..cafcade --- /dev/null +++ b/composer.json @@ -0,0 +1,57 @@ +{ + "name": "tecnickcom/tc-lib-pdf", + "description": "PHP PDF Library", + "type": "library", + "homepage": "http://www.tecnick.com", + "license": "LGPL-3.0-or-later", + "keywords": [ + "tc-lib-pdf", + "TCPDF", + "PDF", + "PDFD32000-2008", + "document" + ], + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + } + ], + "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" + }, + "require-dev": { + "pdepend/pdepend": "2.13.0", + "phpmd/phpmd": "2.13.0", + "phpunit/phpunit": "10.1.2 || 9.6.13", + "squizlabs/php_codesniffer": "3.7.2" + }, + "autoload": { + "psr-4": { + "Com\\Tecnick\\Pdf\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Test\\": "test" + } + }, + "archive": { + "exclude": [ + "/example" + ] + } +} 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 +<?php +require '%{buildroot}%{php_project}/autoload.php'; +\Fedora\Autoloader\Autoload::addPsr4('Test\\', dirname(__DIR__) . '/test'); +EOF + +ret=0 +for cmdarg in "php %{phpunit}" php81 php82 php83; do + if which $cmdarg; then + set $cmdarg + cp phpunit.xml.dist phpunit.xml + $1 ${2:-%{_bindir}/phpunit10} --migrate-configuration || : + $1 ${2:-%{_bindir}/phpunit10} \ + --no-coverage --stderr || ret=1 + fi +done +exit $ret +%else +: Test suite disabled +%endif + + +%files +# remirepo:1 +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc composer.json +%doc *.md examples +%{php_project}/* + + +%changelog +* Wed Nov 29 2023 Remi Collet <remi@remirepo.net> - 8.0.53-1 +- initial package, version 8.0.53 |