Bug 524066

Summary: pdftk has a large dependency chain
Product: [Fedora] Fedora Reporter: Jonathan Underwood <jonathan.underwood>
Component: itextAssignee: Orcan Ogetbil <oget.fedora>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: dbhole, jochen, oget.fedora
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 2.1.7-5.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-10-27 07:17:39 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jonathan Underwood 2009-09-17 18:38:19 UTC
Description of problem:
pdftk seems to pull in a huge number of dependencies, I wonder if they're really necessary:


# yum install pdftk
Loaded plugins: fastestmirror, merge-conf, refresh-packagekit, remove-with-leaves, verify
Loading mirror speeds from cached hostfile
updates/metalink                                                                    |  22 kB     00:00     
 * fedora: mirror.sov.uk.goscomb.net
 * updates: mirror.sov.uk.goscomb.net
adobe-linux-i386                                                                    |  951 B     00:00     
updates                                                                             | 4.4 kB     00:00     
updates/primary_db                                                                  | 4.8 MB     00:00     
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package pdftk.x86_64 0:1.41-21.fc11 set to be updated
adobe-linux-i386/filelists                                                          | 138 kB     00:00     
fedora/filelists_db                                                                 |  15 MB     00:01     
updates/filelists_db                                                                | 7.4 MB     00:00     
--> Processing Dependency: itext >= 2.1.7-1 for package: pdftk-1.41-21.fc11.x86_64
--> Processing Dependency: /usr/lib64/gcj/itext/itext-2.1.7.jar.so for package: pdftk-1.41-21.fc11.x86_64
--> Running transaction check
---> Package itext.x86_64 0:2.1.7-1.fc11 set to be updated
--> Processing Dependency: pdf-renderer for package: itext-2.1.7-1.fc11.x86_64
--> Processing Dependency: bouncycastle-tsp for package: itext-2.1.7-1.fc11.x86_64
--> Processing Dependency: dom4j for package: itext-2.1.7-1.fc11.x86_64
--> Running transaction check
---> Package bouncycastle-tsp.x86_64 0:1.43-3.fc11 set to be updated
--> Processing Dependency: bouncycastle-mail = 1.43 for package: bouncycastle-tsp-1.43-3.fc11.x86_64
--> Processing Dependency: junit4 for package: bouncycastle-tsp-1.43-3.fc11.x86_64
---> Package dom4j.noarch 0:1.6.1-4.fc11 set to be updated
--> Processing Dependency: jaxp = 1.2 for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: jaxen-bootstrap >= 1.1-0.b7 for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: isorelax for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: xpp2 for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: bea-stax for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: relaxngDatatype for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: bea-stax-api for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: msv-xsdlib for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: ws-jaxme for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: xpp3 for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: xerces-j2 for package: dom4j-1.6.1-4.fc11.noarch
--> Processing Dependency: msv-msv for package: dom4j-1.6.1-4.fc11.noarch
---> Package pdf-renderer.x86_64 0:0-0.5.20090405cvs.fc11 set to be updated
--> Running transaction check
---> Package bea-stax.x86_64 0:1.2.0-0.4.rc1.fc11 set to be updated
---> Package bea-stax-api.x86_64 0:1.2.0-0.4.rc1.fc11 set to be updated
---> Package bouncycastle-mail.x86_64 0:1.43-2.fc11 set to be updated
--> Processing Dependency: bouncycastle = 1.43 for package: bouncycastle-mail-1.43-2.fc11.x86_64
--> Processing Dependency: javamail for package: bouncycastle-mail-1.43-2.fc11.x86_64
---> Package isorelax.noarch 1:0-0.3.release20050331.fc11 set to be updated
---> Package jaxen.noarch 0:1.1.1-2.1.fc11 set to be updated
--> Processing Dependency: xom for package: jaxen-1.1.1-2.1.fc11.noarch
---> Package junit4.x86_64 0:4.5-4.1.fc11 set to be updated
--> Processing Dependency: hamcrest for package: junit4-4.5-4.1.fc11.x86_64
---> Package msv-msv.x86_64 1:1.2-0.2.20050722.3.4.fc10 set to be updated
--> Processing Dependency: xml-commons-resolver for package: 1:msv-msv-1.2-0.2.20050722.3.4.fc10.x86_64
--> Processing Dependency: servlet for package: 1:msv-msv-1.2-0.2.20050722.3.4.fc10.x86_64
---> Package msv-xsdlib.x86_64 1:1.2-0.2.20050722.3.4.fc10 set to be updated
---> Package relaxngDatatype.noarch 0:1.0-4.2.fc11 set to be updated
---> Package ws-jaxme.noarch 0:0.5.1-3.4.fc11 set to be updated
--> Processing Dependency: log4j for package: ws-jaxme-0.5.1-3.4.fc11.noarch
--> Processing Dependency: xmldb-api-sdk for package: ws-jaxme-0.5.1-3.4.fc11.noarch
--> Processing Dependency: junit for package: ws-jaxme-0.5.1-3.4.fc11.noarch
--> Processing Dependency: xmldb-api for package: ws-jaxme-0.5.1-3.4.fc11.noarch
--> Processing Dependency: antlr for package: ws-jaxme-0.5.1-3.4.fc11.noarch
--> Processing Dependency: jakarta-commons-codec for package: ws-jaxme-0.5.1-3.4.fc11.noarch
--> Processing Dependency: hsqldb for package: ws-jaxme-0.5.1-3.4.fc11.noarch
---> Package xerces-j2.x86_64 0:2.7.1-11.3.fc11 set to be updated
---> Package xml-commons-apis12.x86_64 0:1.2.04-2.5.fc11 set to be updated
---> Package xpp2.noarch 0:2.1.10-7.2.fc11 set to be updated
---> Package xpp3.noarch 0:1.1.3.8-2.2.fc11 set to be updated
--> Running transaction check
---> Package antlr.x86_64 0:2.7.7-5.fc11 set to be updated
---> Package bouncycastle.x86_64 0:1.43-3.fc11 set to be updated
---> Package classpathx-mail.x86_64 0:1.1.1-8.1.fc11 set to be updated
--> Processing Dependency: jaf >= 1.0 for package: classpathx-mail-1.1.1-8.1.fc11.x86_64
---> Package hamcrest.x86_64 0:1.1-8.1.fc11 set to be updated
--> Processing Dependency: qdox for package: hamcrest-1.1-8.1.fc11.x86_64
---> Package hsqldb.x86_64 1:1.8.0.10-2.fc11 set to be updated
--> Processing Dependency: servletapi5 for package: 1:hsqldb-1.8.0.10-2.fc11.x86_64
--> Processing Dependency: servletapi5 for package: 1:hsqldb-1.8.0.10-2.fc11.x86_64
---> Package jakarta-commons-codec.x86_64 0:1.3-10.4.fc11 set to be updated
---> Package junit.x86_64 0:3.8.2-5.4.fc11 set to be updated
---> Package log4j.x86_64 0:1.2.14-5.3.fc11 set to be updated
---> Package tomcat6-servlet-2.5-api.noarch 0:6.0.18-9.2.fc11 set to be updated
---> Package xml-commons-resolver.x86_64 0:1.1-3.15.fc11 set to be updated
---> Package xmldb-api.x86_64 1:0.1-0.3.20011111cvs.1.3.fc11 set to be updated
---> Package xmldb-api-sdk.x86_64 1:0.1-0.3.20011111cvs.1.3.fc11 set to be updated
---> Package xom.noarch 0:1.0-4.5.fc11 set to be updated
--> Processing Dependency: icu4j for package: xom-1.0-4.5.fc11.noarch
--> Running transaction check
---> Package classpathx-jaf.x86_64 0:1.0-14.3.fc11 set to be updated
---> Package icu4j.x86_64 0:3.8.1-5.fc11 set to be updated
---> Package qdox.x86_64 0:1.6.1-6.2.fc11 set to be updated
---> Package tomcat5-servlet-2.4-api.noarch 0:5.5.27-6.2.fc11 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================
 Package                        Arch          Version                                 Repository      Size
===========================================================================================================
Installing:
 pdftk                          x86_64        1.41-21.fc11                            updates         91 k
Installing for dependencies:
 antlr                          x86_64        2.7.7-5.fc11                            fedora         1.4 M
 bea-stax                       x86_64        1.2.0-0.4.rc1.fc11                      fedora         404 k
 bea-stax-api                   x86_64        1.2.0-0.4.rc1.fc11                      fedora          59 k
 bouncycastle                   x86_64        1.43-3.fc11                             updates        4.7 M
 bouncycastle-mail              x86_64        1.43-2.fc11                             updates        802 k
 bouncycastle-tsp               x86_64        1.43-3.fc11                             updates        146 k
 classpathx-jaf                 x86_64        1.0-14.3.fc11                           updates        109 k
 classpathx-mail                x86_64        1.1.1-8.1.fc11                          fedora         1.2 M
 dom4j                          noarch        1.6.1-4.fc11                            fedora         294 k
 hamcrest                       x86_64        1.1-8.1.fc11                            fedora         356 k
 hsqldb                         x86_64        1:1.8.0.10-2.fc11                       fedora         2.1 M
 icu4j                          x86_64        3.8.1-5.fc11                            fedora         4.0 M
 isorelax                       noarch        1:0-0.3.release20050331.fc11            fedora          70 k
 itext                          x86_64        2.1.7-1.fc11                            updates        3.4 M
 jakarta-commons-codec          x86_64        1.3-10.4.fc11                           fedora         106 k
 jaxen                          noarch        1.1.1-2.1.fc11                          fedora         203 k
 junit                          x86_64        3.8.2-5.4.fc11                          fedora         322 k
 junit4                         x86_64        4.5-4.1.fc11                            fedora         381 k
 log4j                          x86_64        1.2.14-5.3.fc11                         fedora         763 k
 msv-msv                        x86_64        1:1.2-0.2.20050722.3.4.fc10             fedora         1.2 M
 msv-xsdlib                     x86_64        1:1.2-0.2.20050722.3.4.fc10             fedora         280 k
 pdf-renderer                   x86_64        0-0.5.20090405cvs.fc11                  fedora         917 k
 qdox                           x86_64        1.6.1-6.2.fc11                          fedora         223 k
 relaxngDatatype                noarch        1.0-4.2.fc11                            fedora          15 k
 tomcat5-servlet-2.4-api        noarch        5.5.27-6.2.fc11                         fedora         116 k
 tomcat6-servlet-2.5-api        noarch        6.0.18-9.2.fc11                         fedora          85 k
 ws-jaxme                       noarch        0.5.1-3.4.fc11                          fedora         1.2 M
 xerces-j2                      x86_64        2.7.1-11.3.fc11                         fedora         9.7 M
 xml-commons-apis12             x86_64        1.2.04-2.5.fc11                         fedora         260 k
 xml-commons-resolver           x86_64        1.1-3.15.fc11                           fedora         164 k
 xmldb-api                      x86_64        1:0.1-0.3.20011111cvs.1.3.fc11          fedora          25 k
 xmldb-api-sdk                  x86_64        1:0.1-0.3.20011111cvs.1.3.fc11          fedora          60 k
 xom                            noarch        1.0-4.5.fc11                            fedora         183 k
 xpp2                           noarch        2.1.10-7.2.fc11                         fedora         246 k
 xpp3                           noarch        1.1.3.8-2.2.fc11                        fedora         296 k

Transaction Summary
===========================================================================================================
Install     36 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 36 M



Version-Release number of selected component (if applicable):
pdftk.x86_64 0:1.41-21.fc11

Comment 1 Orcan Ogetbil 2009-09-17 19:58:10 UTC
(In reply to comment #0)
> Description of problem:
> pdftk seems to pull in a huge number of dependencies, I wonder if they're
> really necessary:
> 

Yes, they are.

Most deps come through itext. There is not much we can do about it. Jochen, any opinions?

Comment 2 Jochen Schmitt 2009-09-20 17:25:34 UTC
Because the most depedencies are coming from itext I have reassign the bug to itext.

I'm wondering, why we have junit as a dependencies for itext. So I think any research may be helpful.

Comment 3 Orcan Ogetbil 2009-09-21 07:19:11 UTC
There was a junit4 dependency that came through bouncycastle which got removed recently. New bouncycastle packages without junit4 dependency should be in updates-testing by now. This will shave off a few (2-3) dependencies from pdftk's chain, unless there is something else along the way that requires junit4.

On the other hand, the major part of the above deps comes through the junit side. junit dependency comes through the 
    itext->dom4j->ws-jaxme->xmldb-api-sdk->xmldb-api->junit 
chain.

I don't have control on this chain including and beyond dom4j. dom4j itself is pulling 29 packages. 

I am passing the ball to the dom4j maintainer.

Comment 4 Orcan Ogetbil 2009-10-02 05:18:22 UTC
I'm reassigning the bug to myself. 

After doing a deeper research, I noticed that itext separates its dom4j&pdf-renderer dependent modules into different jar files. By throwing these modules into subpackages, we will get rid of the large dependency chain from the main itext package and hence from pdftk (and everything that depends on the main itext package.) 

I made a scratch build on koji:
   http://koji.fedoraproject.org/koji/taskinfo?taskID=1721924

I tested this with pdftk and tuxguitar and it works as expected. I am going to submit this build now.

Comment 5 Fedora Update System 2009-10-03 19:45:14 UTC
itext-2.1.7-5.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/itext-2.1.7-5.fc11

Comment 6 Fedora Update System 2009-10-06 10:01:06 UTC
itext-2.1.7-5.fc11 has been pushed to the Fedora 11 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update itext'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-10253

Comment 7 Orcan Ogetbil 2009-10-22 02:35:13 UTC
No complaints. I sent this to stable.

Comment 8 Fedora Update System 2009-10-27 07:17:13 UTC
itext-2.1.7-5.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.