Red Hat Bugzilla – Bug 973224
resteasy-base must be split into subpackages to simplify dependencies
Last modified: 2014-06-18 01:16:19 EDT
Description of problem:
Currently resteasy-base pulls in following list of java packages:
apache-mime4j >= 0.7.2-2
glassfish-jaxb >= 2.2.5-2
This dependency chain is *huge* for single package. Resteasy-base contains 28 jar files (half of which are -jandex.jar so I guess we can say 14). That means at least 14 subpackages should be created each with separate set of requires.
That way pki-server would not pull in whole java stack into base repository/composes
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. rpm -q --requires resteasy-base
Package currently uses old Maven packaging style. By using XMvn/%mvn_build/%mvn_install macro with singleton packaging it would be possible to automatically generate subpackage file listing and requires. Good example is maven-surefire spec file http://pkgs.devel.redhat.com/cgit/rpms/maven-surefire/tree/maven-surefire.spec?h=rhel-7.0 (see lines 138-140)
We are going to do this in two phases. In this first phase, I am going to trim down the list of dependencies by reducing the number of modules built to just those used by pki-core, seeing as pki-core is the only project that uses resteasy-base.
This reduces the number of jars considerably to 7 jar files (14 if you count jandex) and drops the Requires list to:
glassfish-jaxb >= 0:2.2.5-2
At tis point, I'm not sure its worthwhile splitting into different subpackages, but we will change to use the new build commands nonetheless.
Created attachment 768323 [details]
srpm for phase 1
srpm for phase 1
Created attachment 768325 [details]
new spec file
Created attachment 771103 [details]
srpm for phase 2
With help from msrb, here is a new srpm which uses the new packaging style and splits everything into separate sub packages.
Created attachment 771104 [details]
new spec file for phase 2
Created attachment 771110 [details]
diff for pki-core spec file
Committed as above.
# rpm -q resteasy-base
]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 Beta (Maipo)
Is this the expected list??
# rpm -q --requires resteasy-base
resteasy-base-atom-provider = 2.3.5-2.el7
resteasy-base-jackson-provider = 2.3.5-2.el7
resteasy-base-jaxb-provider = 2.3.5-2.el7
resteasy-base-jaxrs = 2.3.5-2.el7
resteasy-base-jaxrs-all = 2.3.5-2.el7
resteasy-base-jaxrs-api = 2.3.5-2.el7
resteasy-base-jettison-provider = 2.3.5-2.el7
resteasy-base-providers-pom = 2.3.5-2.el7
resteasy-base-tjws = 2.3.5-2.el7
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
Looks ok to me. There is also a javadoc rpm, but of course thats not required for runtime.
Verified on resteasy-base-2.3.5-2.el7.noarch
This request was resolved in Red Hat Enterprise Linux 7.0.
Contact your manager or support representative in case you have further questions about the request.