[fedora-java] libvirt-java bindings

Benjamin Reed ranger at opennms.org
Tue Jul 1 16:42:18 UTC 2008


David Walluck wrote:

> Also, there are macros that should be used when refering to the JDK so
> that you pick up the default JDK used for building and not the current
> default alternative (e.g., %{java_home}, %{java}, %{javac}, %{jar}).

Aha, I was not aware of these defines.

> Unfortunately, there are recent packages passing the Fedora review that
> directly specify java-1.6.0-openjdk-devel as the JDK and I personally
> don't like this.
> 
> I think that this comes from two schools of thought: one group wants to
> tie the Fedora package even more tightly to Fedora and the other wants
> to leave the options open. Since Fedora more-or-less has only one JDK
> (or two counting GCJ which is optional), this benefit is mostly
> theoretical, but you can see from the current discussion that it can be
> useful. Similarly, since Fedora can force the default JDK setup at build
> time through the build system, although the packages are technically not
> as flexible as they could be, it's never really a problem in practice.

My main issue is that as a package maintainer, if I want to support 
Fedora officially *and* other RPM-based distributions (through our own 
yum repository) I have doubled my workload since I need to make packages 
that use fedora-style dependencies for fedora, and package that use 
sun-jdk-style dependencies for everyone else.  Right now I depend on 
"jdk" and everything works peachy everywhere, we make a .noarch.rpm and 
it runs on every supported RPM platform on the planet.

Depending on java-1.6.0-openjdk-devel is the worst of the options, from 
a 3rd-party-packager point of view.  However, now that I know about the 
fedora %{java_home} macros, perhaps a better option is to provide 
fallback macros for various compatibility levels.

IE, for building my generic everyone-but-fedora packages I would have a 
"sun-java-macros" set (in ~/.rpmmacros?) that would set %{java_home} to 
/usr/java/jdk1.6.0_05, %{jdk} to jdk (the sun package name) 
%{jdk_version} to 2000:1.6.0_05 and so on, and do:

Requires: %{jre} >= %{jre_version}
BuildRequires: %{jdk} >= %{jdk_version}

%build
JAVA_HOME=%{java_home} mvn install assembly:directory-inline


...and on fedora, it would fill those macros in to use the 
openjdk-provided deps, or if someone needs something specific, they can 
set %{jre} or %{jdk} to a specific package name.

It still wouldn't leave me with a universal "opennms.noarch.rpm" which 
would be best, but it would simplify generating distro-specific rpms.

Not that I can't generate spec files to work with fedora with a script 
or something, it just seems really lame to have to special case "fc9" vs 
"!fc9" specifically.  =)

-- 
Benjamin Reed
The OpenNMS Group
http://www.opennms.org/


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/fedora-devel-java-list/attachments/20080701/2830586b/attachment.sig>


More information about the fedora-devel-java-list mailing list