Bug 1195136 - groovy package with insufficient dependencies
Summary: groovy package with insufficient dependencies
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: groovy
Version: 21
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Michal Srb
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-02-23 08:17 UTC by Aleksandar Kostadinov
Modified: 2015-03-05 16:29 UTC (History)
2 users (show)

Fixed In Version: groovy-1.8.9-16.fc21
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-05 12:34:18 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Aleksandar Kostadinov 2015-02-23 08:17:14 UTC
Description of problem:
Once `groovy` package is installed that's not operational. One needs to also install the groovy18 package. I believe installing groovy should make the system with groovy operational.

Version-Release number of selected component (if applicable):
groovy-1.8.9-15.fc21.noarch

How reproducible:
always

Steps to Reproduce:
1. yum install groovy
2. groovy -version

Actual results:
[avalon@koTapaH scripts]$ groovy -version
/usr/bin/build-classpath: Could not find objectweb-asm3 Java extension for this JVM
/usr/bin/build-classpath: Could not find objectweb-asm3 Java extension for this JVM
/usr/bin/build-classpath: Could not find objectweb-asm3 Java extension for this JVM
/usr/bin/build-classpath: Could not find objectweb-asm3 Java extension for this JVM
/usr/bin/build-classpath: error: Some specified jars were not found
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
	at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/Opcodes
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2663)
	at java.lang.Class.getConstructor0(Class.java:3067)
	at java.lang.Class.newInstance(Class.java:408)
	at org.codehaus.groovy.vmplugin.VMPluginFactory.<clinit>(VMPluginFactory.java:51)
	at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:89)
	at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:61)
	at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:29)
	at groovy.ui.GroovyMain.processArgs(GroovyMain.java:114)
	at groovy.ui.GroovyMain.main(GroovyMain.java:100)
	... 6 more
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Opcodes
	at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 28 more

Expected results:
Groovy Version: 1.8.9 JVM: 1.8.0_31 Vendor: Oracle Corporation OS: Linux

Comment 1 Michal Srb 2015-02-23 10:05:37 UTC
I am not sure what happened there, but I am getting different result:

$ groovy -v
/usr/bin/build-classpath: Could not find jsp Java extension for this JVM
/usr/bin/build-classpath: error: Some specified jars were not found
Groovy Version: 1.8.9 JVM: 1.8.0_31 Vendor: Oracle Corporation OS: Linux

groovy-1.8.9-15.fc21 requires groovy-lib:

$ repoquery --requires groovy
/bin/sh
groovy-lib = 1.8.9-15.fc21
...

and groovy-lib requires objectweb-asm3:

$ repoquery --requires groovy-lib
java-headless
jpackage-utils
mvn(antlr:antlr)
mvn(asm:asm)
mvn(asm:asm-analysis)
mvn(asm:asm-commons)
mvn(asm:asm-tree)
mvn(asm:asm-util)

$ repoquery -q --whatprovides 'mvn(asm:asm)'
objectweb-asm3-0:3.3.1-10.fc21.noarch

I don't see why it shouldn't work. But there was quite a lot of changes around objectweb-asm* packages in F21. Maybe it's just some yum transaction glitch.

How did you install F21 on your machine?

Anyway, I will fix "Could not find jsp Java extension for this JVM" error and add explicit Requires on objectweb-asm3 to groovy package.

Thanks for reporting this problem.

Comment 2 Aleksandar Kostadinov 2015-02-23 10:59:43 UTC
My point was that you can have `groovy` package installed without having `groovy18` package installed. And this can lead to having the groovy command installed (from the groovy package) but no actual groovy installation (that comes from `groovy18`).

Comment 3 Michal Srb 2015-02-23 11:23:03 UTC
The situation around groovy18 package is a bit unfortunate. The initial idea was to create "groovy18" package and then rebase "groovy" package to version 2.x. But we didn't make it to F21. In F22 "groovy" will install groovy 2.4.0, and "groovy18" will install version 1.8.9. But in F21, both packages install version 1.8.9. Installing just "groovy" should work just fine, the package requires all the dependencies it needs. You definitely don't need groovy18 installed. Are you able to reproduce the problem?

Comment 4 Fedora Update System 2015-02-23 12:53:08 UTC
groovy-1.8.9-16.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/groovy-1.8.9-16.fc21

Comment 5 Aleksandar Kostadinov 2015-02-23 13:19:48 UTC
I tried this version and it seems to be working very good. I looked at my console log and realized that groovy18 package worked because it pulled in the objectweb-asm3 package. So I assume previous versions of the `groovy` package did not require objectweb-asm3. But now I see that the new version also requires `objectweb-asm3` so all my concerns are covered. Thank you!

Comment 6 Aleksandar Kostadinov 2015-02-23 13:21:46 UTC
Or as you say, it might have been some unfortunate yum transaction related to objectweb-asm3 that cause the initial issue.

Comment 7 Fedora Update System 2015-02-23 23:28:50 UTC
Package groovy-1.8.9-16.fc21:
* should fix your issue,
* was pushed to the Fedora 21 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing groovy-1.8.9-16.fc21'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-2469/groovy-1.8.9-16.fc21
then log in and leave karma (feedback).

Comment 8 Fedora Update System 2015-03-05 12:34:18 UTC
groovy-1.8.9-16.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.