Author: baggins Date: Sun Jul 17 10:33:29 2011 GMT Module: packages Tag: HEAD ---- Log message: - added patches from FC
---- Files affected: packages/pdftk: pdftk.spec (1.20 -> 1.21) , pdftk-classpath.patch (NONE -> 1.1) (NEW), pdftk-use-internal-itext.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/pdftk/pdftk.spec diff -u packages/pdftk/pdftk.spec:1.20 packages/pdftk/pdftk.spec:1.21 --- packages/pdftk/pdftk.spec:1.20 Tue Jun 28 21:58:38 2011 +++ packages/pdftk/pdftk.spec Sun Jul 17 12:33:23 2011 @@ -3,11 +3,13 @@ Summary(pl.UTF-8): pdftk - Zestaw narzędzi dla plików PDF Name: pdftk Version: 1.44 -Release: 2 +Release: 2.1 License: GPL Group: Applications/Publishing Source0: http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/%{name}-%{version}-src.zip # Source0-md5: 9eb50fffcd621a627d387750c60982b4 +Patch0: %{name}-use-internal-itext.patch +Patch1: %{name}-classpath.patch URL: http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ BuildRequires: binutils BuildRequires: dos2unix @@ -46,11 +48,11 @@ %prep %setup -q -n %{name}-%{version}-dist -#patch0 -p1 -#dos2unix java_libs/com/lowagie/text/pdf/PdfDate.java -#patch1 -p1 -#find -name Makefile | xargs dos2unix -#patch2 -p1 +%patch0 -p1 +%patch1 -p1 + +# remove bundled libraries from source tree +%{__rm} -r java %build unset CLASSPATH @@ -78,6 +80,9 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.21 2011/07/17 10:33:23 baggins +- added patches from FC + Revision 1.20 2011/06/28 19:58:38 arekm - just jar ================================================================ Index: packages/pdftk/pdftk-classpath.patch diff -u /dev/null packages/pdftk/pdftk-classpath.patch:1.1 --- /dev/null Sun Jul 17 12:33:29 2011 +++ packages/pdftk/pdftk-classpath.patch Sun Jul 17 12:33:23 2011 @@ -0,0 +1,47 @@ +--- pdftk/pdftk.cc 2009-04-09 18:07:27.000000000 +0100 ++++ pdftk.old/pdftk.cc 2009-04-09 18:09:20.000000000 +0100 +@@ -2669,6 +2669,44 @@ + strcmp( argv[ii], "-h" )== 0 ); + } + ++ { ++ // Set up CLASSPATH so that we can find property files in ++ // itext.jar. Do this the official way, calling build-classpath. ++ ++ char new_classpath[4096]; ++ char itext_classpath[1024]; ++ char *environ_classpath = getenv ("CLASSPATH"); ++ ++ FILE *p = popen ("/usr/bin/build-classpath itext bcprov bcmail bctsp", "r"); ++ if (!p) ++ { ++ perror ("Can't popen /usr/bin/build-classpath itext bcprov bcmail bctsp"); ++ exit (1); ++ } ++ ++ char *s = fgets(itext_classpath, sizeof itext_classpath, p); ++ if (!s) ++ { ++ perror ("Can't get ouput from /usr/bin/build-classpath itext bcprov bcmail bctsp"); ++ exit (1); ++ } ++ ++ char *nl = strchr (itext_classpath, '\n'); ++ if (nl) ++ *nl = 0; ++ ++ pclose (p); ++ ++ strcpy (new_classpath, "CLASSPATH="); ++ strncat (new_classpath, itext_classpath, sizeof new_classpath); ++ if (environ_classpath) ++ { ++ strncat (new_classpath, ":", sizeof new_classpath); ++ strncat (new_classpath, environ_classpath, sizeof new_classpath); ++ } ++ putenv (new_classpath); ++ } ++ + if( help_b ) { + describe_full(); + } ================================================================ Index: packages/pdftk/pdftk-use-internal-itext.patch diff -u /dev/null packages/pdftk/pdftk-use-internal-itext.patch:1.1 --- /dev/null Sun Jul 17 12:33:29 2011 +++ packages/pdftk/pdftk-use-internal-itext.patch Sun Jul 17 12:33:23 2011 @@ -0,0 +1,343 @@ +diff -rupN pdftk-1.44-dist.old/pdftk/attachments.cc pdftk-1.44-dist/pdftk/attachments.cc +--- pdftk-1.44-dist.old/pdftk/attachments.cc 2010-10-27 15:16:19.000000000 -0400 ++++ pdftk-1.44-dist/pdftk/attachments.cc 2011-01-09 15:19:32.000000000 -0500 +@@ -56,7 +56,10 @@ + + #include "com/lowagie/text/Document.h" + #include "com/lowagie/text/Rectangle.h" ++// Ewww, PdfName has a field called NULL. ++#undef NULL + #include "com/lowagie/text/pdf/PdfName.h" ++#define NULL __null + #include "com/lowagie/text/pdf/PdfString.h" + #include "com/lowagie/text/pdf/PdfNumber.h" + #include "com/lowagie/text/pdf/PdfArray.h" +@@ -151,8 +154,8 @@ TK_Session::attach_files + + itext::Rectangle* crop_box_p= + input_reader_p->getCropBox( m_input_attach_file_pagenum ); +- float corner_top= crop_box_p->top()- margin; +- float corner_left= crop_box_p->left()+ margin; ++ float corner_top= crop_box_p->getTop()- margin; ++ float corner_left= crop_box_p->getLeft()+ margin; + + itext::PdfArray* annots_p= (itext::PdfArray*) + input_reader_p->getPdfObject( page_p->get( itext::PdfName::ANNOTS ) ); +@@ -190,11 +193,11 @@ TK_Session::attach_files + string filename= drop_path(*vit); + + // wrap our location over page bounds, if needed +- if( crop_box_p->right() < corner_left+ trans ) { +- corner_left= crop_box_p->left()+ margin; ++ if( crop_box_p->getRight() < corner_left+ trans ) { ++ corner_left= crop_box_p->getLeft()+ margin; + } +- if( corner_top- trans< crop_box_p->bottom() ) { +- corner_top= crop_box_p->top()- margin; ++ if( corner_top- trans< crop_box_p->getBottom() ) { ++ corner_top= crop_box_p->getTop()- margin; + } + + itext::Rectangle* annot_bbox_p= +diff -rupN pdftk-1.44-dist.old/pdftk/Makefile.Base pdftk-1.44-dist/pdftk/Makefile.Base +--- pdftk-1.44-dist.old/pdftk/Makefile.Base 2010-10-28 17:19:18.000000000 -0400 ++++ pdftk-1.44-dist/pdftk/Makefile.Base 2011-01-09 15:24:09.000000000 -0500 +@@ -16,7 +16,7 @@ + + export JAVALIBPATH= ../java + +-JAVALIB= $(JAVALIBPATH)/java_lib.o ++JAVALIB= $(LIBDIR)/gcj/itext/itext-$(ITEXTVERS).jar.so + + ifdef USE_LOCAL_LIBGCJ + # passed on to next makefile +@@ -29,7 +29,7 @@ endif + # + CPPFLAGS+= -DPDFTK_VER=\"1.44\" + +-all : javalib pdftk ++all : pdftk + + javalib : + $(MAKE) -f Makefile -iC $(JAVALIBPATH) all +diff -rupN pdftk-1.44-dist.old/pdftk/Makefile.Redhat pdftk-1.44-dist/pdftk/Makefile.Redhat +--- pdftk-1.44-dist.old/pdftk/Makefile.Redhat 2010-09-16 14:23:20.000000000 -0400 ++++ pdftk-1.44-dist/pdftk/Makefile.Redhat 2011-01-09 17:00:40.000000000 -0500 +@@ -72,9 +72,9 @@ export RMFLAGS= -vf + # only effects libraries following option on the command line + # + # +-export CPPFLAGS= -DPATH_DELIM=0x2f -DASK_ABOUT_WARNINGS=false -DUNBLOCK_SIGNALS -fdollars-in-identifiers +-export CXXFLAGS= -Wall -Wextra -Weffc++ -O2 +-export GCJFLAGS= -Wall -Wextra -O2 ++export CPPFLAGS= -DPATH_DELIM=0x2f -DASK_ABOUT_WARNINGS=false -DUNBLOCK_SIGNALS -fdollars-in-identifiers ${CFLAGS} -fpic ++export CXXFLAGS= -Wall -Wextra -Weffc++ -O2 ${CFLAGS} -fpic ++export GCJFLAGS= -Wall -Wextra -O2 ${CFLAGS} -fpic + export GCJHFLAGS= -force + export LDLIBS= -lgcj + +diff -rupN pdftk-1.44-dist.old/pdftk/pdftk.cc pdftk-1.44-dist/pdftk/pdftk.cc +--- pdftk-1.44-dist.old/pdftk/pdftk.cc 2010-10-28 17:18:31.000000000 -0400 ++++ pdftk-1.44-dist/pdftk/pdftk.cc 2011-01-09 18:28:28.000000000 -0500 +@@ -59,7 +59,10 @@ + + #include "com/lowagie/text/Document.h" + #include "com/lowagie/text/Rectangle.h" ++// Ewww, PdfName has a field called NULL. ++#undef NULL + #include "com/lowagie/text/pdf/PdfName.h" ++#define NULL __null + #include "com/lowagie/text/pdf/PdfString.h" + #include "com/lowagie/text/pdf/PdfNumber.h" + #include "com/lowagie/text/pdf/PdfArray.h" +@@ -193,15 +196,20 @@ TK_Session::add_reader( InputPdf* input_ + // store in this java object so the gc can trace it + g_dont_collect_p->addElement( reader ); + +- input_pdf_p->m_authorized_b= ( !reader->encrypted || reader->passwordIsOwner ); ++ input_pdf_p->m_authorized_b= reader->isOpenedWithFullPermissions(); + if( !input_pdf_p->m_authorized_b ) { + open_success_b= false; + } + } + catch( java::io::IOException* ioe_p ) { // file open error +- if( ioe_p->getMessage()->equals( JvNewStringUTF( "Bad password" ) ) ) { ++ if( ioe_p->getMessage()->equals( JvNewStringUTF( "Bad user password" ) ) ) { + input_pdf_p->m_authorized_b= false; + } ++ else { ++ cerr << string((const char*) elements(ioe_p->getMessage()->getBytes()), ++ (int) ioe_p->getMessage()->getBytes()->length) ++ << endl; ++ } + open_success_b= false; + } + catch( java::lang::Throwable* t_p ) { // unexpected error +@@ -2182,14 +2190,14 @@ TK_Session::create_output() + output_doc_p->addCreator( jv_creator_p ); + + // un/compress output streams? +- if( m_output_uncompress_b ) { +- writer_p->filterStreams= true; +- writer_p->compressStreams= false; +- } +- else if( m_output_compress_b ) { +- writer_p->filterStreams= false; +- writer_p->compressStreams= true; +- } ++// if( m_output_uncompress_b ) { ++// writer_p->filterStreams= true; ++// writer_p->compressStreams= false; ++// } ++// else if( m_output_compress_b ) { ++// writer_p->filterStreams= false; ++// writer_p->compressStreams= true; ++// } + + // encrypt output? + if( m_output_encryption_strength!= none_enc || +@@ -2198,7 +2206,7 @@ TK_Session::create_output() + { + // if no stregth is given, default to 128 bit, + // (which is incompatible w/ Acrobat 4) +- bool bit128_b= ++ jboolean bit128_b= + ( m_output_encryption_strength!= bits40_enc ); + + writer_p->setEncryption( output_user_pw_p, +@@ -2222,7 +2230,8 @@ TK_Session::create_output() + input_reader_p->getPdfObject( trailer_p->get( itext::PdfName::ID ) ); + if( file_id_p && file_id_p->isArray() ) { + +- writer_p->setFileID( file_id_p ); ++ // Absent from itext-2.1.7 ++// writer_p->setFileID( file_id_p ); + } + } + +@@ -2328,12 +2337,14 @@ TK_Session::create_output() + + // un/compress output streams? + if( m_output_uncompress_b ) { +- writer_p->filterStreams= true; +- writer_p->compressStreams= false; ++ // Absent from itext-2.1.7 ++// writer_p->filterStreams= true; ++// writer_p->compressStreams= false; + } + else if( m_output_compress_b ) { +- writer_p->filterStreams= false; +- writer_p->compressStreams= true; ++ // Absent from itext-2.1.7 ++// writer_p->filterStreams= false; ++// writer_p->compressStreams= true; + } + + // encrypt output? +@@ -2343,7 +2354,7 @@ TK_Session::create_output() + { + // if no stregth is given, default to 128 bit, + // (which is incompatible w/ Acrobat 4) +- bool bit128_b= ++ jboolean bit128_b= + ( m_output_encryption_strength!= bits40_enc ); + + writer_p->setEncryption( output_user_pw_p, +@@ -2589,13 +2600,15 @@ TK_Session::create_output() + // un/compress output streams? + if( m_output_uncompress_b ) { + add_marks_to_pages( input_reader_p ); +- writer_p->filterStreams= true; +- writer_p->compressStreams= false; ++ // Absent from itext-2.1.7 ++// writer_p->filterStreams= true; ++// writer_p->compressStreams= false; + } + else if( m_output_compress_b ) { + remove_marks_from_pages( input_reader_p ); +- writer_p->filterStreams= false; +- writer_p->compressStreams= true; ++ // Absent from itext-2.1.7 ++// writer_p->filterStreams= false; ++// writer_p->compressStreams= true; + } + + // encrypt output? +@@ -2606,7 +2619,7 @@ TK_Session::create_output() + + // if no stregth is given, default to 128 bit, + // (which is incompatible w/ Acrobat 4) +- bool bit128_b= ++ jboolean bit128_b= + ( m_output_encryption_strength!= bits40_enc ); + + writer_p->setEncryption( output_user_pw_p, +@@ -2621,8 +2634,10 @@ TK_Session::create_output() + { + itext::AcroFields* fields_p= writer_p->getAcroFields(); + fields_p->setGenerateAppearances( true ); // have iText create field appearances +- if( ( fdf_reader_p && fields_p->setFields( fdf_reader_p ) ) || +- ( xfdf_reader_p && fields_p->setFields( xfdf_reader_p ) ) ) ++ if( fdf_reader_p ) ++ fields_p->setFields( fdf_reader_p ); ++ if( xfdf_reader_p ) ++ fields_p->setFields( xfdf_reader_p ); + { // Rich Text input found + + // set the PDF so that Acrobat will create appearances; +@@ -2688,16 +2703,16 @@ TK_Session::create_output() + doc_page_size_p= doc_page_size_p->rotate(); + } + +- jfloat h_scale= doc_page_size_p->width() / mark_page_size_p->width(); +- jfloat v_scale= doc_page_size_p->height() / mark_page_size_p->height(); ++ jfloat h_scale= doc_page_size_p->getWidth() / mark_page_size_p->getWidth(); ++ jfloat v_scale= doc_page_size_p->getHeight() / mark_page_size_p->getHeight(); + jfloat mark_scale= (h_scale< v_scale) ? h_scale : v_scale; + +- jfloat h_trans= (jfloat)(doc_page_size_p->left()- mark_page_size_p->left()* mark_scale + +- (doc_page_size_p->width()- +- mark_page_size_p->width()* mark_scale) / 2.0); +- jfloat v_trans= (jfloat)(doc_page_size_p->bottom()- mark_page_size_p->bottom()* mark_scale + +- (doc_page_size_p->height()- +- mark_page_size_p->height()* mark_scale) / 2.0); ++ jfloat h_trans= (jfloat)(doc_page_size_p->getLeft()- mark_page_size_p->getLeft()* mark_scale + ++ (doc_page_size_p->getWidth()- ++ mark_page_size_p->getWidth()* mark_scale) / 2.0); ++ jfloat v_trans= (jfloat)(doc_page_size_p->getBottom()- mark_page_size_p->getBottom()* mark_scale + ++ (doc_page_size_p->getHeight()- ++ mark_page_size_p->getHeight()* mark_scale) / 2.0); + + com::lowagie::text::pdf::PdfContentByte* content_byte_p= + ( background_b ) ? writer_p->getUnderContent( ii ) : writer_p->getOverContent( ii ); +@@ -2714,20 +2729,20 @@ TK_Session::create_output() + 0, -1* mark_scale, + mark_scale, 0, + h_trans, +- v_trans+ mark_page_size_p->height()* mark_scale ); ++ v_trans+ mark_page_size_p->getHeight()* mark_scale ); + } + else if( mark_page_rotation== 180 ) { + content_byte_p->addTemplate( mark_page_p, + -1* mark_scale, 0, + 0, -1* mark_scale, +- h_trans+ mark_page_size_p->width()* mark_scale, +- v_trans+ mark_page_size_p->height()* mark_scale ); ++ h_trans+ mark_page_size_p->getWidth()* mark_scale, ++ v_trans+ mark_page_size_p->getHeight()* mark_scale ); + } + else if( mark_page_rotation== 270 ) { + content_byte_p->addTemplate( mark_page_p, + 0, mark_scale, + -1* mark_scale, 0, +- h_trans+ mark_page_size_p->width()* mark_scale, v_trans ); ++ h_trans+ mark_page_size_p->getWidth()* mark_scale, v_trans ); + } + } + } +@@ -2739,7 +2754,7 @@ TK_Session::create_output() + } + + // done; write output +- writer_p->close(); ++ writer_p->close(NULL); + } + break; + +@@ -2903,15 +2918,15 @@ Bug-Debian: http://bugs.debian.org/56059 + JvCreateJavaVM(NULL); + JvAttachCurrentThread(NULL, NULL); + +- JvInitClass(&java::System::class$); +- JvInitClass(&java::util::ArrayList::class$); +- JvInitClass(&java::util::Iterator::class$); +- +- JvInitClass(&itext::PdfObject::class$); +- JvInitClass(&itext::PdfName::class$); +- JvInitClass(&itext::PdfDictionary::class$); +- JvInitClass(&itext::PdfOutline::class$); +- JvInitClass(&itext::PdfBoolean::class$); ++// JvInitClass(&java::System::class$); ++// JvInitClass(&java::util::ArrayList::class$); ++// JvInitClass(&java::util::Iterator::class$); ++ ++// JvInitClass(&itext::PdfObject::class$); ++// JvInitClass(&itext::PdfName::class$); ++// JvInitClass(&itext::PdfDictionary::class$); ++// JvInitClass(&itext::PdfOutline::class$); ++// JvInitClass(&itext::PdfBoolean::class$); + + TK_Session tk_session( argc, argv ); + +diff -rupN pdftk-1.44-dist.old/pdftk/report.cc pdftk-1.44-dist/pdftk/report.cc +--- pdftk-1.44-dist.old/pdftk/report.cc 2010-10-27 16:09:41.000000000 -0400 ++++ pdftk-1.44-dist/pdftk/report.cc 2011-01-09 15:19:32.000000000 -0500 +@@ -55,8 +55,11 @@ + + #include "com/lowagie/text/Document.h" + #include "com/lowagie/text/Rectangle.h" ++// Ewww, PdfName has a field called NULL. ++#undef NULL + #include "com/lowagie/text/pdf/PdfObject.h" + #include "com/lowagie/text/pdf/PdfName.h" ++#define NULL __null + #include "com/lowagie/text/pdf/PdfString.h" + #include "com/lowagie/text/pdf/PdfNumber.h" + #include "com/lowagie/text/pdf/PdfArray.h" +@@ -1363,11 +1366,12 @@ ReplaceXmp( itext::PdfReader* reader_p, + if( xmp_str_p ) { + xmp_str_p->put( itext::PdfName::TYPE, itext::PdfName::METADATA ); + xmp_str_p->put( itext::PdfName::SUBTYPE, itext::PdfName::XML ); +- +- itext::PdfIndirectReference* xmp_str_ref_p= +- (itext::PdfIndirectReference*)reader_p->getPRIndirectReference( xmp_str_p ); + +- catalog_p->put( itext::PdfName::METADATA, xmp_str_ref_p ); ++ // FIXME: PdfReader.getPRIndirectReference is absent from itext-2.1.7 ++// itext::PdfIndirectReference* xmp_str_ref_p= ++// (itext::PdfIndirectReference*)reader_p->getPRIndirectReference( xmp_str_p ); ++ ++// catalog_p->put( itext::PdfName::METADATA, xmp_str_ref_p ); + } + else { + ret_val_b= false; ================================================================ ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/pdftk/pdftk.spec?r1=1.20&r2=1.21&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
