Summary: | dev-java/javahelp-2.0.05_p63 failed Could not find servlet-api.jar | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Vadim Kuznetsov (RETIRED) <vadimk> |
Component: | Current packages | Assignee: | Java team <java> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | mlspamcb |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 356183 |
Description
Vadim Kuznetsov (RETIRED)
2011-04-15 19:04:14 UTC
* Package: dev-java/javahelp-2.0.05_p63 * Repository: gentoo * Maintainer: java@gentoo.org * USE: amd64 consolekit elibc_glibc kernel_linux multilib policykit userland_GNU * FEATURES: sandbox * Using: sun-jdk-1.6 removed `javax/help/plaf/basic/BasicNativeContentViewerUI.java' * ERROR: dev-java/javahelp-2.0.05_p63 failed (compile phase): * Could not find servlet-api.jar in servlet-api-2.4 * * Call stack: * ebuild.sh, line 56: Called src_compile * environment, line 4249: Called _eant 'release' * environment, line 375: Called java-pkg_getjar '--virtual' 'servlet-api-2.4' 'servlet-api.jar' * environment, line 2974: Called die * The specific snippet of code: * die "Could not find ${target_jar} in ${pkg}"; * * If you need support, post the output of 'emerge --info =dev-java/javahelp-2.0.05_p63', * the complete build log and the output of 'emerge -pqv =dev-java/javahelp-2.0.05_p63'. !!! When you file a bug report, please include the following information: GENTOO_VM=sun-jdk-1.6 CLASSPATH="" JAVA_HOME="/opt/sun-jdk-1.6.0.24" JAVACFLAGS="-source 1.4 -target 1.4" COMPILER="" and of course, the output of emerge --info * The complete build log is located at '/var/tmp/portage/dev-java/javahelp-2.0.05_p63/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-java/javahelp-2.0.05_p63/temp/environment'. * S: '/var/tmp/portage/dev-java/javahelp-2.0.05_p63/work/javahelp2-2.0.05_svn63/' # emerge javahelp >>> Verifying ebuild manifests >>> Emerging (1 of 1) dev-java/javahelp-2.0.05_p63::gentoo >>> Failed to emerge dev-java/javahelp-2.0.05_p63, Log file: >>> '/var/log/portage/dev-java:javahelp-2.0.05_p63:20171214-100716.log' * Package: dev-java/javahelp-2.0.05_p63 * Repository: gentoo * Maintainer: java@gentoo.org * USE: abi_x86_64 amd64 elibc_glibc kernel_linux policykit userland_GNU * FEATURES: preserve-libs sandbox userpriv usersandbox * Using: oracle-jdk-bin-1.8 removed 'javax/help/plaf/basic/BasicNativeContentViewerUI.java' Rewriting attributes Rewriting ./javahelp_nbproject/build.xml Rewriting ./JSearchIndexer_nbproject/build.xml Rewriting ./JSearchClient_nbproject/build.xml * ERROR: dev-java/javahelp-2.0.05_p63::gentoo failed (compile phase): * Could not find servlet-api.jar in servlet-api-2.4 * * Call stack: * ebuild.sh, line 124: Called src_compile * environment, line 3978: Called _eant 'release' * environment, line 280: Called java-pkg_getjar '--virtual' 'servlet-api-2.4' 'servlet-api.jar' * environment, line 2549: Called die * The specific snippet of code: * die "Could not find ${target_jar} in ${pkg}"; * * If you need support, post the output of `emerge --info '=dev-java/javahelp-2.0.05_p63::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-java/javahelp-2.0.05_p63::gentoo'`. !!! When you file a bug report, please include the following information: GENTOO_VM=oracle-jdk-bin-1.8 CLASSPATH="" JAVA_HOME="/opt/oracle-jdk-bin-1.8.0.152" JAVACFLAGS="-source 1.4 -target 1.4" COMPILER="" and of course, the output of emerge --info =javahelp-2.0.05_p63 * The complete build log is located at '/var/log/portage/dev-java:javahelp-2.0.05_p63:20171214-100716.log'. * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-java/javahelp-2.0.05_p63/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-java/javahelp-2.0.05_p63/temp/environment'. * Working directory: '/var/tmp/portage/dev-java/javahelp-2.0.05_p63/work/javahelp2-2.0.05_svn63/javahelp_nbproject' * S: '/var/tmp/portage/dev-java/javahelp-2.0.05_p63/work/javahelp2-2.0.05_svn63/' * * The following package has failed to build, install, or execute postinst: * * (dev-java/javahelp-2.0.05_p63:0/0::gentoo, ebuild scheduled for merge), Log file: * '/var/log/portage/dev-java:javahelp-2.0.05_p63:20171214-100716.log' * reinstall of virtual servlet.api didn't work out either: # locate servlet-api.jar /usr/share/resin-servlet-api-2.4/lib/resin-servlet-api.jar /usr/share/tomcat-servlet-api-3.0/lib/servlet-api.jar [N] dev-java/glassfish-servlet-api (3.1.1(3.1.1)): Glassfish reference implementation of Servlet API 2.5 and JSP API 2.1 [U] dev-java/resin-servlet-api (3.0.25(2.4)@13-12-17 -> 3.0.25(2.4) 3.1.12(2.5) 4.0.26(3.0)): Resin Servlet API 3.0/JSP API 2.1 implementation [U] dev-java/tomcat-servlet-api (7.0.82(3.0)@03-12-17 -> 3(2.2) 4.1.36(2.3) 5.5.27-r1(2.4) 6.0.44-r1(2.5) 7.0.82(3.0) 8.5.23(3.1)): Tomcat's Servlet API 4.0/JSP API 2.4?/EL API 3.1? implementation [U] java-virtuals/servlet-api (2.4(2.4)@11-12-17 3.0-r2(3.0)@02-12-17 -> 2.2(2.2) 2.3(2.3) 2.4(2.4) 2.5-r2(2.5) 3.0-r2(3.0) 3.1-r1(3.1)): Virtual for servlet api despite the java-virtuals/servlet-api-2.4 being available it cannot use the resin servlet-api.jar. When installing tomcat-servlet-api-2.4 and reinstalling java-virtuals/servlet-api makes javahelp install. So either resin-serlvlet-api is failing to install the right file or javahelp isn't looking for the right files... (or java-virtuals/servlet-api isn;t that virtual). The virtuals concept was an experiment and some what a failed one at that. I think it is best to not use them and grab directly what you need. Which really is just tomcat-serlvet-api. Resin has not been maintained for sometime and likely will be removed. The only other was glassfish serlvet api. Which only had a slot or two. That is also not being maintained, and most all tend to us tomcat. Unless their project ships their own. I am stopping use of virtual/servlet-api in place of tomcat-servlet-api. There really are not alternatives. If one exists, it would be specific for that usage, resin for use with resin, glassfish for use with glassfish etc. The idea with virtuals was maybe one performs better than the other. Allowing people to swap them out and test. That was a utopian outlook. Not realizing API or other difference, missing files, etc. Could literally cause breakage as you have discovered. It was a noble idea, but the reality is not practical. It seems to just increase potential for issues more so than making it better. I also go one step further and versions need to use the versions they ship with. Tomcat version x.y.z, should depend on tomcat-servlet-api-x.y.z. So you are not miss matching versions. That is handled better now. Not really related to virtuals. Hard to say if other virtuals are truely. For common javax stuff they maybe. But I tend to see things requiring a given implementation. There isn't as much choice these days. This came from a time there were different JDKs JVMs, and many were duplicating work. That has changed some over the years. Not sure the virtual concept should remain for Java or not beyond JVM. Completely acceptable solution. In the problem you ran into, its simply a name issue. One aspect of virtuals concept completely omitted. The packages may not provide the same name for the jar files. * ERROR: dev-java/javahelp-2.0.05_p63 failed (compile phase): * Could not find servlet-api.jar in servlet-api-2.4 Of course it could not because for resit its resin-servlet-api.jar. If that was named servlet-api.jar it likely would work. You can make a symlink and/or rename to test. Seems that aspect was totally omitted. That goes in addition to the other issues I pointed out :) Think more an eclass bug/issue than java-config. Eclass jar functions lack ability to handle virtuals with jars named differently. Maybe other issues as well. Seems this has been known since bug 212922 Affected version has gone. Closing. |