Dear Java Team, I am trying to build a recent version of Eclipse. Eclipse requires Tycho Maven Plugin to build, and I have packaged it using suggestions from Fedora packagers: https://mentors.debian.net/package/tycho (currently, we don't use Fedora scripts to build Tycho, we just use patches, maven, and maven-repo-helper)
Then, I have tried to build Eclipse. I have uploaded my trials here: https://anonscm.debian.org/cgit/pkg-java/eclipse.git/tree/debian?h=experimental During the build, Tycho fails with tons of errors. They are attached. Can anyone try to help me? As a minor issue, Tycho requires a recent version of sat4j. I have packaged it here: https://mentors.debian.net/package/sat4j I have already tried to contact the maintainer, however I didn't get any feedback. Regards. Luca
luca@nbvercelli:/src/eclipse-experimental/eclipse-4.6.0$ ./debian/rules build dh build --parallel --buildsystem=maven dh_testdir -O--buildsystem=maven dh_update_autotools_config -O--buildsystem=maven debian/rules override_dh_auto_configure make[1]: ingresso nella directory "/src/eclipse-experimental/eclipse-4.6.0" dh_auto_configure -O--buildsystem=maven -- -Duser.home=/tmp find: ‘/usr/share/maven-repo/org/codehaus/plexus/plexus-compiler/*/*.jar’: File o directory non esistente find: ‘/usr/share/maven-repo/org/codehaus/plexus/plexus-compilers/*/*.jar’: File o directory non esistente find: ‘/usr/share/maven-repo/org/codehaus/plexus/plexus-containers/*/*.jar’: File o directory non esistente mh_patchpoms -peclipse --debian-build --keep-pom-version --maven-repo=/src/eclipse-experimental/eclipse-4.6.0/debian/maven-repo #Tycho requires write access here rm -rf debian/maven-repo/org/eclipse/tycho/tycho-bundles-external/0.25.0 cp -r /usr/share/maven-repo/org/eclipse/tycho/tycho-bundles-external/0.25.0 debian/maven-repo/org/eclipse/tycho/tycho-bundles-external make[1]: uscita dalla directory "/src/eclipse-experimental/eclipse-4.6.0" debian/rules override_dh_auto_build make[1]: ingresso nella directory "/src/eclipse-experimental/eclipse-4.6.0" dh_auto_build -O--buildsystem=maven -- -Duser.home=/tmp package /usr/lib/jvm/default-java/bin/java -noverify -cp /usr/share/maven/boot/plexus-classworlds-2.x.jar:/usr/lib/jvm/default-java/lib/tools.jar -Dmaven.home=/usr/share/maven -Dmaven.multiModuleProjectDirectory=/src/eclipse-experimental/eclipse-4.6.0 -Dclassworlds.conf=/etc/maven/m2-debian.conf org.codehaus.plexus.classworlds.launcher.Launcher -s/etc/maven/settings-debian.xml -Ddebian.dir=/src/eclipse-experimental/eclipse-4.6.0/debian -Dmaven.repo.local=/src/eclipse-experimental/eclipse-4.6.0/debian/maven-repo -Duser.home=/tmp package -DskipTests -Dnotimestamp=true -Dlocale=en_US [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for org.eclipse.swt:org.eclipse.swt.tests:eclipse-test-plugin:3.105.0-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 29, column 15 [WARNING] [WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.http.servlet.tests:eclipse-test-plugin:1.0.100-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 27, column 15 [WARNING] [WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.p2.tests.reconciler.product:eclipse-repository:4.6.0-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-p2-director-plugin is missing. @ line 25, column 12 [WARNING] [WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.p2.tests:eclipse-test-plugin:1.6.100-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 32, column 12 [WARNING] [WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.p2.tests.discovery:eclipse-test-plugin:1.1.0-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 21, column 15 [WARNING] [WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.p2.tests.ui:eclipse-test-plugin:1.1.100-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 34, column 12 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. [WARNING] [WARNING] Error initializing: org.eclipse.tycho.p2.resolver.P2DependencyResolver@78c1372d java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed. at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted(DefaultEquinoxEmbedder.java:312) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.getService(DefaultEquinoxEmbedder.java:286) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.getService(DefaultEquinoxEmbedder.java:280) at org.eclipse.tycho.p2.resolver.P2DependencyResolver.initialize(P2DependencyResolver.java:428) at org.eclipse.sisu.plexus.PlexusLifecycleManager.initialize(PlexusLifecycleManager.java:303) at org.eclipse.sisu.plexus.PlexusLifecycleManager.activate(PlexusLifecycleManager.java:207) at org.eclipse.sisu.bean.BeanScheduler$Pending.activate(BeanScheduler.java:156) at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:185) at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126) at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68) at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63) at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45) at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) at org.eclipse.sisu.inject.Guice4$1.get(Guice4.java:162) at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81) at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51) at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263) at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255) at org.eclipse.tycho.core.resolver.DefaultDependencyResolverFactory.lookupDependencyResolver(DefaultDependencyResolverFactory.java:74) at org.eclipse.tycho.core.resolver.DefaultTychoResolver.setupProject(DefaultTychoResolver.java:95) at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:90) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:266) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at org.apache.maven.cli.MavenCli.main(MavenCli.java:188) at org.debian.maven.Wrapper.main(Wrapper.java:89) 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:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: java.lang.NullPointerException: A null service reference is not allowed. at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:617) at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:307) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.doStart(DefaultEquinoxEmbedder.java:179) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.start(DefaultEquinoxEmbedder.java:67) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted(DefaultEquinoxEmbedder.java:310) ... 38 more [ERROR] Internal error: java.lang.RuntimeException: Could not instantiate required component: com.google.inject.ProvisionException: Unable to provision, see the following errors: [ERROR] [ERROR] 1) Error notifying ProvisionListener org.eclipse.sisu.bean.BeanScheduler$Activator of org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2). [ERROR] Reason: java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed. [ERROR] while locating org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2) [ERROR] [ERROR] 1 error [ERROR] role: org.eclipse.tycho.core.DependencyResolver [ERROR] roleHint: p2 [ERROR] -> [Help 1] org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: Could not instantiate required component at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:121) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at org.apache.maven.cli.MavenCli.main(MavenCli.java:188) at org.debian.maven.Wrapper.main(Wrapper.java:89) 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:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: java.lang.RuntimeException: Could not instantiate required component at org.eclipse.tycho.core.resolver.DefaultDependencyResolverFactory.lookupDependencyResolver(DefaultDependencyResolverFactory.java:76) at org.eclipse.tycho.core.resolver.DefaultTychoResolver.setupProject(DefaultTychoResolver.java:95) at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:90) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:266) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) ... 13 more Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors: 1) Error notifying ProvisionListener org.eclipse.sisu.bean.BeanScheduler$Activator of org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2). Reason: java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed. while locating org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2) 1 error role: org.eclipse.tycho.core.DependencyResolver roleHint: p2 at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:267) at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255) at org.eclipse.tycho.core.resolver.DefaultDependencyResolverFactory.lookupDependencyResolver(DefaultDependencyResolverFactory.java:74) ... 18 more Caused by: com.google.inject.ProvisionException: Unable to provision, see the following errors: 1) Error notifying ProvisionListener org.eclipse.sisu.bean.BeanScheduler$Activator of org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2). Reason: java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed. while locating org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2) 1 error at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025) at org.eclipse.sisu.inject.Guice4$1.get(Guice4.java:162) at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81) at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51) at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263) ... 20 more Caused by: java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed. at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted(DefaultEquinoxEmbedder.java:312) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.getService(DefaultEquinoxEmbedder.java:286) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.getService(DefaultEquinoxEmbedder.java:280) at org.eclipse.tycho.p2.resolver.P2DependencyResolver.initialize(P2DependencyResolver.java:428) at org.eclipse.sisu.plexus.PlexusLifecycleManager.initialize(PlexusLifecycleManager.java:303) at org.eclipse.sisu.plexus.PlexusLifecycleManager.activate(PlexusLifecycleManager.java:207) at org.eclipse.sisu.bean.BeanScheduler$Pending.activate(BeanScheduler.java:156) at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:185) at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126) at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68) at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63) at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45) at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) ... 24 more Caused by: java.lang.NullPointerException: A null service reference is not allowed. at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:617) at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:307) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.doStart(DefaultEquinoxEmbedder.java:179) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.start(DefaultEquinoxEmbedder.java:67) at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted(DefaultEquinoxEmbedder.java:310) ... 38 more [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorException Exception in thread "Equinox Shutdown Hook" java.lang.NoClassDefFoundError: org/eclipse/osgi/storagemanager/ManagedOutputStream at org.eclipse.osgi.storagemanager.StorageManager.getOutputStream(StorageManager.java:793) at org.eclipse.osgi.storage.Storage.save0(Storage.java:1054) at org.eclipse.osgi.storage.Storage.save(Storage.java:1026) at org.eclipse.osgi.internal.framework.StorageSaver$StorageSaverTask.run(StorageSaver.java:28) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.ClassNotFoundException: org.eclipse.osgi.storagemanager.ManagedOutputStream at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) ... 5 more dh_auto_build: /usr/lib/jvm/default-java/bin/java -noverify -cp /usr/share/maven/boot/plexus-classworlds-2.x.jar:/usr/lib/jvm/default-java/lib/tools.jar -Dmaven.home=/usr/share/maven -Dmaven.multiModuleProjectDirectory=/src/eclipse-experimental/eclipse-4.6.0 -Dclassworlds.conf=/etc/maven/m2-debian.conf org.codehaus.plexus.classworlds.launcher.Launcher -s/etc/maven/settings-debian.xml -Ddebian.dir=/src/eclipse-experimental/eclipse-4.6.0/debian -Dmaven.repo.local=/src/eclipse-experimental/eclipse-4.6.0/debian/maven-repo -Duser.home=/tmp package -DskipTests -Dnotimestamp=true -Dlocale=en_US returned exit code 1 debian/rules:23: set di istruzioni per l'obiettivo "override_dh_auto_build" non riuscito make[1]: *** [override_dh_auto_build] Errore 2 make[1]: uscita dalla directory "/src/eclipse-experimental/eclipse-4.6.0" debian/rules:14: set di istruzioni per l'obiettivo "build" non riuscito make: *** [build] Errore 2