%global alternate_name iText Name: itext4 Version: 4.2.0 Release: 1%{?dist} Summary: A Free Java-PDF library # src/toolbox/com/itextpdf/toolbox/Versions.java is MPLv1.1 or MIT # src/toolbox/com/itextpdf/toolbox/plugins/XML2Bookmarks.java is MPLv1.1 or LGPLv2+ # src/rups/com/itextpdf/rups/Rups.java is LGPLv2+ # src/rups/com/itextpdf/rups/view/icons/ are under CC-BY # src/core/com/itextpdf/text/xml/XmlDomWriter.java is under ASL 2.0 # src/core/com/itextpdf/text/pdf/LZWDecoder.java is under BSD # src/core/com/itextpdf/text/pdf/fonts/cmaps/CodespaceRange.java is under BSD # src/core/com/itextpdf/text/pdf/fonts are under APAFML # src/core/com/itextpdf/text/pdf/codec/TIFFConstants.java is under libtiff License: (LGPLv2+ or MPLv1.1) and ASL 2.0 and BSD and LGPLv2+ and (MPLv1.1 or MIT) and CC-BY and APAFML and libtiff URL: https://github.com/ymasory/iText-4.2.0 # sh itext4-create-tarball.sh 1c4576857d9db79efe7d058d13b173007899f4f7 4.2.0 Source0: itext4-%{version}.tar.xz Source3: itext4-rups.sh Source4: itext4-rups.desktop Source5: itext4-toolbox.sh Source6: itext4-toolbox.desktop Source10: itext4-OSGi.bnd Source11: itext4-rtf-OSGi.bnd Source12: itext4-rups-OSGi.bnd Source13: itext4-toolbox-OSGi.bnd Source20: itext4-create-tarball.sh Patch0: itext-4.2.0-pdftk.patch # Maven's Doxia plugin explicitly requires these XML output interfaces # of iText. They were removed in iText 1.4.4 [1]. iText versions prior # to 1.5.x had questionable licensing [2] so rather than try to create # an itext1 package, I have forward-ported these classes. The doxia # developers have told me on IRC on 2009-08-27 that the iText dependency # will likely be deprecated meaning we won't have to keep these forever. # # I've opened a bug with iText: # # https://sourceforge.net/tracker/?func=detail&aid=2846427&group_id=15255&atid=365255 # # and commented on the Doxia but related to this: # # http://jira.codehaus.org/browse/DOXIA-53 # # -- Andrew Overholt, 2009-08-28 # # [1] # http://www.1t3xt.com/about/history.php?branch=history.10&node=14 # [2] # https://bugzilla.redhat.com/show_bug.cgi?id=236309 Patch1: itext-4.2.0-xmloutput.patch Patch2: itext-4.2.0-remove-unmappable.patch Patch3: itext-4.2.0-poms.patch Patch4: itext-4.2.0-Port-to-bouncycastle-1.50.patch Patch5: itext-4.2.0-Port-to-bouncycastle-1.52.patch BuildRequires: ant BuildRequires: aqute-bnd BuildRequires: bouncycastle-mail BuildRequires: bouncycastle-pkix BuildRequires: desktop-file-utils BuildRequires: dom4j BuildRequires: ImageMagick BuildRequires: javapackages-local BuildRequires: pdf-renderer Requires: %{name}-core = %{version}-%{release} BuildArch: noarch %description iText is a library that allows you to generate PDF files on the fly. The iText classes are very useful for people who need to generate read-only, platform independent documents containing text, lists, tables and images. The library is especially useful in combination with Java(TM) technology-based Servlets: The look and feel of HTML is browser dependent; with iText and PDF you can control exactly how your servlet's output will look. %package core Summary: The core iText Java-PDF library %description core The core package contains the main iText library and the related maven POM files. %package rtf Summary: Library to output Rich Text Files License: MPLv1.1 or LGPLv2+ %description rtf The RTF package is an extension of the iText library and allows iText to output Rich Text Files in addition to PDF files. These files can then be viewed and edited with RTF viewers such as OpenOffice.org Writer. %package rups Summary: Reading/Updating PDF Syntax License: LGPLv2+ and CC-BY # This package dont provides maven metadata Requires: pdf-renderer %description rups iText RUPS is a tool that combines SUN's PDF Renderer (to view PDF documents), iText's PdfReader (to inspect the internal structure of a PDF file), and iText's PdfStamper to manipulate a PDF file. %package toolbox Summary: Some %{alternate_name} tools License: MPLv1.1 or MIT %description toolbox iText is a free open source Java-PDF library released on SF under the MPL/LGPL; iText comes with a simple GUI: the iText toolbox. The original developers of iText want to publish this toolbox as a separate project under the more permissive MIT license. This is a utility that allows you to use a number of iText tools. %package javadoc Summary: Javadoc for %{alternate_name} %description javadoc API documentation for the %{alternate_name} package. %prep %setup -q -c -T -a 0 %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %if %{?fedora} > 22 %patch5 -p1 %endif # Remove preshipped binaries find . -name "*.jar" -delete # Fix encoding issues sed 's/\r//' src/rups/com/itextpdf/rups/view/icons/copyright_notice.txt > tmpfile touch -r src/rups/com/itextpdf/rups/view/icons/copyright_notice.txt tmpfile mv -f tmpfile src/rups/com/itextpdf/rups/view/icons/copyright_notice.txt mkdir lib build-jar-repository -s -p lib bcprov bcmail bcpkix pdf-renderer dom4j # Remove jdk & version numbers from classpath entries for file in src/ant/{*,.ant*}; do for jarname in bcmail bcprov dom4j; do sed -i "s|$jarname-.*\.jar|$jarname.jar|" $file done done for file in src/ant/{*,.ant*}; do sed -i "s|bctsp-.*\.jar|bcpkix.jar|" $file done sed -i "s|bctsp|bcpkix|" src/ant/pom.xml # Setting debug="on" on javac part of the build script. sed -i 's|destdir|debug="on" destdir|g' src/ant/compile.xml sed -i 's|debug="true"||g' src/ant/compile.xml # Specify encoding, otherwise javadoc blows sed -i 's|author|Encoding="ISO-8859-1" author|' src/ant/site.xml # and set max memory higher or we run out sed -i 's|maxmemory="128m"|maxmemory="512m"|' src/ant/site.xml #cp -p %SOURCE21 src/ant/site.xml # Disable jnlp sed -i '/release.jnlp/d' src/build.xml # Remove classpath from manifest sed -i '/Class-Path/d' src/ant/compile.xml # Change artifacts final name, for a simplified installation sed -i 's|iText|itext|' src/ant/.ant.properties %build export CLASSPATH=$(build-classpath bcprov bcmail bcpkix pdf-renderer dom4j) pushd src ant -Ditext.jdk.core=1.6 \ -Ditext.jdk.rups=1.6 \ -Ditext.jdk.toolbox=1.6 \ jar jar.rups jar.rtf jar.toolbox # javadoc # generate pom files ant -f ant/release.xml \ -Dbc.version=1.52 \ -Dbc.jdk=jdk15on \ release.maven popd # Customize pom file %pom_add_dep dom4j:dom4j:1.6.1 build/release/maven/itext-rups-pom.xml for p in itext-rtf itext-rups itext-toolbox; do %pom_add_dep com.itextpdf:itext:'${project.version}' build/release/maven/${p}-pom.xml done cp -p %SOURCE10 %SOURCE11 %SOURCE12 %SOURCE13 . sed -i "s|@VERSION@|%{version}|" itext4-OSGi.bnd itext4-rtf-OSGi.bnd itext4-rups-OSGi.bnd itext4-toolbox-OSGi.bnd # OSGify manifest bnd wrap -p itext4-OSGi.bnd -o itext.jar lib/itext.jar bnd wrap -p itext4-rtf-OSGi.bnd -o itext-rtf.jar lib/itext-rtf.jar bnd wrap -p itext4-rups-OSGi.bnd -o itext-rups.jar lib/itext-rups.jar bnd wrap -p itext4-toolbox-OSGi.bnd -o itext-toolbox.jar lib/itext-toolbox.jar # javadoc task seem broken cp -pr src/rtf/com src/core/ cp -pr src/rups/com src/core/ cp -pr src/toolbox/com src/core/ mkdir -p build/docs %javadoc -Xdoclint:none -d build/docs $(find src/core/ -name "*.java") %install for f in itext itext-rtf itext-rups itext-toolbox; do # %% mvn_file com.itextpdf:${f} ${f} %mvn_artifact build/release/maven/${f}-pom.xml ${f}.jar %mvn_package com.itextpdf:${f} ${f} done #%% mvn_alias com.itextpdf: itext: com.lowagie: %mvn_install -J build/docs mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_datadir}/applications # rups stuff install -pm 755 %{SOURCE3} %{buildroot}%{_bindir}/%{name}-rups desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE4} # toolbox stuff install -pm 755 %{SOURCE5} %{buildroot}%{_bindir}/%{name}-toolbox desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE6} # icon for rups and toolbox mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps convert -resize 128x128 src/toolbox/com/itextpdf/toolbox/1t3xt.gif %{name}.png cp -a %{name}.png \ %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{name}-rups.png cp -a %{name}.png \ %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{name}-toolbox.png %post rups touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %postun rups if [ $1 -eq 0 ] ; then touch --no-create %{_datadir}/icons/hicolor &>/dev/null gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi %posttrans rups gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post toolbox touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %postun toolbox if [ $1 -eq 0 ] ; then touch --no-create %{_datadir}/icons/hicolor &>/dev/null gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi %posttrans toolbox gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files %license build/bin/com.itextpdf/text/{apache_license,lgpl,misc_licenses,MPL-1.1}.txt %files core -f .mfiles-itext %license build/bin/com.itextpdf/text/{apache_license,lgpl,misc_licenses,MPL-1.1}.txt %files rtf -f .mfiles-itext-rtf %license build/bin/com.itextpdf/text/{lgpl,misc_licenses,MPL-1.1}.txt %files rups -f .mfiles-itext-rups %license src/rups/com/itextpdf/rups/view/icons/copyright_notice.txt %{_bindir}/%{name}-rups %{_datadir}/applications/%{name}-rups.desktop %{_datadir}/icons/hicolor/128x128/apps/%{name}-rups.png %files toolbox -f .mfiles-itext-toolbox %license build/bin/com.itextpdf/text/{misc_licenses,MPL-1.1}.txt %doc src/toolbox/com/itextpdf/toolbox/tools.txt %{_bindir}/%{name}-toolbox %{_datadir}/applications/%{name}-toolbox.desktop %{_datadir}/icons/hicolor/128x128/apps/%{name}-toolbox.png %files javadoc -f .mfiles-javadoc %license build/bin/com.itextpdf/text/{apache_license,lgpl,misc_licenses,MPL-1.1}.txt %changelog * Mon Jul 27 2015 gil cattaneo 4.2.0-1 - initial rpm