I'm not sure when I write to right list, please correct me if no.
I just tried build RPM package for beta version of program calamaris
( http://cord.de/tools/squid/calamaris/calamaris-18.104.22.168.tar.gz )
RPM package was built successfully, but when I tried install it,
rpm fail with message
"perl(ident) is needed by calamaris-22.214.171.124-2.fc13.noarch"
"rpm -qp --requires" output:
config(calamaris) = 126.96.36.199-2.fc13
perl >= 0:5.002
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rpmlib(PayloadIsXz) <= 5.2-1
And "repoquery --whatprovides 'perl(ident)'" give me no output.
I tried build & install this package both on Fedora 12 and Fedora 13,
with same result. Although "rpm -U --nodeps ..." force install it and
it will probably work, I would know why RPM want this capability and
how it may be solved.
Some my searching on Bugzilla on Internet wasn't successfull, my SPEC
file contain only this "Requires" line:
Requires: squid perl(NetAddr::IP) perl(GD::Graph) perl(GD::Graph3d)
but result is same when this line isn't present. Probably rpmbuild
has some mechanism for finding Perl package dependencies and list
of required capabilities is created automatically.
Of course, in calamaris programs isn't referenced any 'ident' object.
Know someone how solve this problem?
Thank in advance,
GCJ AOT bits are mandatory parts of any Java packages according to current
guidelines. There are at least 2 reasons to not require them:
1. GCJ has stagnated at Java 1.5 level and gcj bits require having GCJ
installed even in cases when the package requires Java >= 1.6. Resulting in an
installed but unusable for the given package JVM
2. GCJ AOT bits makes every package an arch specific one (when they are noarch
in general)- resulting in slower package build, slower install/uninstall,
bigger packages and etc.
There are other benefits like - much more readable RPM spec files, using less
resources on Fedora infrastructure. But the main benefit is for the users - we
do not have to force them to install something they will never use. E.g
installing eclipse-jdt drags gcj in but upstream is not supporting it and
there is even a warning added to indicate that you're running gcj and it may
not work as expected but gcj is still installed because of eclipse
dependencies that have the gcj bits.
This mail is by no means saying that there is no value in gcj. But gcj has a
different usecases and shouldn't be thrown at every user. GCJGuidelines should
be changed in such a way that they should indicate that you may add GCJ AOT
bits to your package but this should not result in mandatory installation of
GCJ (e.g. by making the gcj aot bits a separate subpackage auto-generated like
the debug packages, but this is up to the people interested in gcj to solve).
We simply don't have to force users to install a non-default and less feature
full JVM in order to use our packages with another JVM.
I have an rpm package for installation. Before I install I should display
the License Agreement and when the user accepts it then I should install the
package. I know we don't have user interaction in rpm, what I am looking at
is how to create an wrapper so that I can present this license agreement and
then ask the user to agree it and if he says "Yes" or "y" I can continue to
I have seen programs like "jdk-6u18-linux-i586-rpm.bin" and other which are
able to do this. We will just change the file to exectable and then run it.
Can someone help me on how to do that or any pointers?