Subject Re: [Firebird-Java] Building the libjaybird2.so on Linux
Author William L. Thomson Jr.
On Fri, 2005-12-16 at 20:14 +0100, Roman Rokytskyy wrote:
> > In the ebuild I am copying and passing the cpptasks.jar as a lib to the
> > native ant.
>
> Well, something goes wrong here. The build_native.xml contains definition of
> custom tasks for C++ builds and the error messages show that ant failed to
> find them.

Luckily nothing goes wrong, and it all compiles as expected. :)

> > The Gentoo way is to not used packaged jars like ant, and xalan, etc. They
> > should be available locally or natively on the system and hopefully more
> > up to date than packaged ones.
>
> The sources of cpptasks.jar can be found on SourceForge.net, I think project
> is called "ant-contrib".

Right on, will find out now. More than likely I will have to make an
ebuild for that as well, and compile/install on system before JayBird.

> Frankly I'm surprised to see Jaybird build in Gentoo,

Well glad to have surprised you :)

> though I agree that it
> makes sense to build libjaybird.so there from scratch.

Granted from a binary point of view compiling the java stuff does not
make much sense. However from an open source view it does, and from a
this is how we do it on Gentoo, it makes sense. Gentoo is a source based
ports distro.

> On the other hand for
> me this seems not that easy, since you have to add dependency on Firebird
> (easy) and on JDK. Considering that Sun or IBM JDKs cannot be part of Gentoo
> distro, you have to depend on some GPLed JDK .... Or do I miss something and
> this will work?

It's not easy and can cause all kinds of problems. The user can choose
jvm, and attempt to compile a given package. We do not bind to a
particular jdk/jvm and let the user decided and deal with the problems.
Which is either reported to the project and they resolve. If it can't be
resolve, we make it depend on a particular jdk/jvm.

Also keep in mind any jars that JayBird uses will have to be compiled
and installed on the system.

> > Now aside from the native stuff, is there anything else special I need
> > to do to compile a JDBC 2 driver instead of JDBC 3?
>
> No. Our ant files detect the Java version and include corresponding sources
> in the build. Also, now there should be no difference between drivers, since
> I have defined all JDBC 3.0 methods in our FirebirdXXX interfaces to make
> them available also for JDBC 2.0 users. So there should be no difference
> here at all except the byte code version (48.0 for JDK 1.4.x and 49.0 for
> JDK 5.0, no idea about JDK 1.3.x)

Yeah there was comment that they did not like that aspect. I explained
it had to be that way, and all is. Just wanted to make sure I was not
missing something. Since I only use JDBC 3, not 2. Did not want someone
trying to use it for JDBC 2 to not have what they need.

> > ATM I am only passing jars to ant, javadocs, and etc are invoked via use
> > flags.
>
> Should be enough.

Great. Finishining off the ebuilds now, and they should be in portage
~x86 within a few days, and hopefully in stable x86 within a week or the
month at latest.

Also if possible can the ant stuff build the jars less a version #?
Makes it easier to link and not break links when installing a different
version.

Thanks for all your hard work Roman.

--
Sincerely,
William L. Thomson Jr.
Obsidian-Studios, Inc.
http://www.obsidian-studios.com