# Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-java/jdbc3-firebird/jdbc3-jaybird-2.0.1.ebuild,v 1.4 2005/07/18 15:42:36 axxo Exp $ inherit java-pkg At="JayBird-${PV}JDK_1.4" DESCRIPTION="JDBC3 driver for Firebird SQL server" HOMEPAGE="http://jaybirdwiki.firebirdsql.org" SRC_URI="mirror://sourceforge/firebird/${At}.zip" LICENSE="LGPL-2" SLOT="0" KEYWORDS="x86 ppc ~sparc amd64" IUSE="doc" DEPEND="app-arch/unzip" RDEPEND=">=virtual/jre-1.4" S=${WORKDIR} src_install() { java-pkg_dojar *.jar java-pkg_doso libjaybird2.so java-pkg_newso libjaybird2.so use doc && java-pkg_dohtml -r docs/ dodoc ChangeLog release_notes.html release_notes.pdf } Reproducible: Always Steps to Reproduce:
I have tested both installation and quality of installed jars. Everything installs as expected. I tested the driver with existing apps that have been using older versions of the driver for years. I also tested with some newer apps, and one in development. I have also tested with apps running in Tomcat on my development server.
Created attachment 74842 [details] jdbc3-jaybird-2.0.1.ebuild New ebuild that compiles from source. ebuild compiles and installs. I tested the resulting binary jar file and the JDBC driver works fine.
Thanks a lot for your contribution! You may not be aware of it, but we are rather strict about wanting to compile all Java code from source. At times, we decide to make exceptions to this rule, especially when it becomes infeasible and the package is well-warranted. In this cases, you will see packages named dev-java/foo-bin. Compilation of native code however, is a strict requirement for any package to be included an maintained by the Java herd. There are several reasons for this. Foremost is the fact that Gentoo is primarily a sourced-based distributions. Second is the issue that the GNU/Linux environment is mostly source-compatible but not necessarily binary compatible, and far too many subtle ways. The GCC/G++ ABI changes come mind. Is there any chance you could revise your ebuild to build the .jar files from the Java source and the .so files from their native C/C++ source code?
I can understand the compile from sources. In that case existing binaries, not named -bin should be masked or removed. I do not think it's good to have old outdate binaries in portage, but up to you all. The last comment I made just before yours was to an ebuild that does compile the Java stuff by default. Being this is a JDBC 3 driver the .so files do not belong to it. That is part of the JDBC 2 JNI requirements and implementation. I am working on an ebuild for a JDBC 2 version of JayBird that will build the .so. However I do not use it, I am just doing it to help out and keep it current. So far I have not been able to directly make the native stuff. Once I get that down I will add it to the ebuild so it builds the jar and the necessary .so file. Not sure if a different .jar file will have to be specified or restricted to a particular jvm. I think the JDBC 2 stuff only wants to build under a 1.3 jdk.
I agree. Existing non-bin packages should indeed either be renamed or dropped. If they work and are rather current, renaming them would be the best option. In this case, we can hopefully replace it seamlessly with a from-source ebuild if you get this stuff working.
Created attachment 74861 [details] jdbc3-jaybird-2.0.1.ebuild removed line that removed a zip file that does not get copied over to the working directory while compiling. Not a functional issue, just anal one.
Created attachment 74893 [details] jdbc3-jaybird-2.0.1.ebuild Added dependenies. Added support for test use flag and feature. Tested all use flags except jikes. Tested resulting binary. Should be final ebuild, unless I missed something and/or a bug is found.
https://svn.gentooexperimental.org/svn/java/gentoo-java-experimental/dev-java/jdbc3-jaybird Added this to the experimental overlay. Still has at least the following problem: use source: zip error: Nothing to do! (/var/tmp/portage/jdbc3-jaybird-2.0.1/temp/jdbc3-jaybird-src.zip) /var/tmp/portage/jdbc3-jaybird-2.0.1/work/client-java/src/jdk1_5/org
Just found out this is really a JDBC type 4 driver. The package name needs to be changed to jdbc4-jaybird.
*** This bug has been marked as a duplicate of 115897 ***