Bug 12541 - sweethome3d does not start since a new fresh install of mageia 4
Summary: sweethome3d does not start since a new fresh install of mageia 4
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 4
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: has_procedure advisory MGA4-32-OK MGA...
Keywords: Triaged, validated_update
Depends on:
Blocks:
 
Reported: 2014-02-02 22:53 CET by David GEIGER
Modified: 2014-03-12 17:34 CET (History)
7 users (show)

See Also:
Source RPM: sweethome3d-4.3-1.mga4.src.rpm
CVE:
Status comment:


Attachments
rpm -qa (mga4 Official) (65.66 KB, text/plain)
2014-02-04 20:27 CET, David GEIGER
Details
rpm -qa (mga4 Cauldron) (56.13 KB, text/plain)
2014-02-04 20:29 CET, David GEIGER
Details
spec with fix_sweethome3d_start.patch (337 bytes, patch)
2014-02-06 22:33 CET, David GEIGER
Details | Diff

Description David GEIGER 2014-02-02 22:53:51 CET
hi,

Since a new fresh install of Mageia 4 for x86_64 (full DVD) sweethome3d does not start, here the log:

Real hw mga4(Official) for x86_64 (Full DVD) :
$ sweethome3d 
Java virtual machine used: /usr/lib/jvm/java/bin/java
classpath used: /usr/share/java/sweethome3d/SweetHome3D-4.3.jar:/usr/share/java/sweethome3d/jmf.jar:/usr/share/java/sweethome3d/freehep-vectorgraphics-svg-2.1.1b.jar:/usr/share/java/sweethome3d/Furniture.jar:/usr/share/java/sweethome3d/SweetHome3D.jar:/usr/share/java/sweethome3d/Help.jar:/usr/share/java/sweethome3d/Textures.jar:/usr/share/java/batik-all.jar:/usr/share/java/java3d/j3dutils-1.5.2.jar:/usr/share/java/java3d/j3dutils.jar:/usr/share/java/java3d/j3dcore-1.5.2.jar:/usr/share/java/java3d/j3dcore.jar:/usr/share/java/java3ds-fileloader.jar:/usr/share/java/janino/commons-compiler.jar:/usr/share/java/janino/janino.jar:/usr/share/java/janino/commons-compiler-jdk.jar:/usr/share/java/sunflow.jar:/usr/share/java/itext.jar:/usr/share/java/vecmath.jar:/usr/share/java-1.5.0/../icedtea-web/netx.jar
main class used: com.eteks.sweethome3d.SweetHome3D
flags used: 
options used: -Djava.library.path=/usr/lib64:/usr/lib
arguments used: 
3D [dev] 1.5.2-build4-experimental 21 Oct 2013 22:57:42 GMT

Exception in thread "main" java.lang.NoClassDefFoundError: javax.media.j3d.X11NativeConfigTemplate3D
   at java.lang.Class.initializeClass(libgcj.so.14)
   at java.lang.Class.forName(libgcj.so.14)
   at javax.media.j3d.NativeConfigTemplate3D$1.run(NativeConfigTemplate3D.java:79)
   at java.security.AccessController.doPrivileged(libgcj.so.14)
   at javax.media.j3d.NativeConfigTemplate3D.createNativeConfigTemplate3D(NativeConfigTemplate3D.java:74)
   at javax.media.j3d.NativePipeline.initialize(NativePipeline.java:127)
   at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:170)
   at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:965)
   at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:299)
   at java.lang.Class.initializeClass(libgcj.so.14)
   at javax.media.j3d.GraphicsConfigTemplate3D.getBestConfiguration(GraphicsConfigTemplate3D.java:321)
   at java.awt.GraphicsDevice.getBestConfiguration(libgcj.so.14)
   at com.eteks.sweethome3d.j3d.Component3DManager.<init>(Unknown Source)
   at com.eteks.sweethome3d.j3d.Component3DManager.getInstance(Unknown Source)
   at com.eteks.sweethome3d.SweetHome3D.addComponent3DRenderingErrorObserver(Unknown Source)
   at com.eteks.sweethome3d.SweetHome3D.init(Unknown Source)
   at com.eteks.sweethome3d.SweetHome3D.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: sun.awt.X11GraphicsDevice not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/share/java/sweethome3d/SweetHome3D-4.3.jar,file:/usr/share/java/sweethome3d/jmf.jar,file:/usr/share/java/sweethome3d/freehep-vectorgraphics-svg-2.1.1b.jar,file:/usr/share/java/sweethome3d/Furniture.jar,file:/usr/share/java/sweethome3d/SweetHome3D.jar,file:/usr/share/java/sweethome3d/Help.jar,file:/usr/share/java/sweethome3d/Textures.jar,file:/usr/share/java/batik-all.jar,file:/usr/share/java/java3d/j3dutils-1.5.2.jar,file:/usr/share/java/java3d/j3dutils.jar,file:/usr/share/java/java3d/j3dcore-1.5.2.jar,file:/usr/share/java/java3d/j3dcore.jar,file:/usr/share/java/java3ds-fileloader.jar,file:/usr/share/java/janino/commons-compiler.jar,file:/usr/share/java/janino/janino.jar,file:/usr/share/java/janino/commons-compiler-jdk.jar,file:/usr/share/java/sunflow.jar,file:/usr/share/java/itext.jar,file:/usr/share/java/vecmath.jar,file:/usr/share/java-1.5.0/../icedtea-web/netx.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.14)
   at java.lang.ClassLoader.loadClass(libgcj.so.14)
   at java.lang.ClassLoader.loadClass(libgcj.so.14)
   at java.lang.Class.forName(libgcj.so.14)
   at java.lang.Class.initializeClass(libgcj.so.14)
   ...16 more
-------------------------------------------------------------------------------

The most unlikely is that on my mageia 4 (Cauldron in VB, i586 and x86_64) it starts and runs perfectly, see log :

Virtualbox mga4(Cauldron) for x86_64 (live_DVD_KDE):
$ sweethome3d 
Java virtual machine used: /usr/lib/jvm/java/bin/java
classpath used: /usr/share/java/sweethome3d/SweetHome3D-4.3.jar:/usr/share/java/sweethome3d/Textures.jar:/usr/share/java/sweethome3d/freehep-vectorgraphics-svg-2.1.1b.jar:/usr/share/java/sweethome3d/SweetHome3D.jar:/usr/share/java/sweethome3d/jmf.jar:/usr/share/java/sweethome3d/Furniture.jar:/usr/share/java/sweethome3d/Help.jar:/usr/share/java/batik-all.jar:/usr/share/java/java3d/j3dutils.jar:/usr/share/java/java3d/j3dutils-1.5.2.jar:/usr/share/java/java3d/j3dcore-1.5.2.jar:/usr/share/java/java3d/j3dcore.jar:/usr/share/java/java3ds-fileloader.jar:/usr/share/java/janino/janino.jar:/usr/share/java/janino/commons-compiler-jdk.jar:/usr/share/java/janino/commons-compiler.jar:/usr/share/java/sunflow.jar:/usr/share/java/itext.jar:/usr/share/java/vecmath.jar:/usr/share/java-1.7.0/../icedtea-web/netx.jar
main class used: com.eteks.sweethome3d.SweetHome3D
flags used: 
options used: -Djava.library.path=/usr/lib64:/usr/lib
arguments used: 
3D [dev] 1.5.2-build4-experimental 21 Oct 2013 22:57:42 GMT
----------------------------------------------------------------------------

One of the only differences I see is: 

-:/usr/share/java-1.5.0/ = does not start

-:/usr/share/java-1.7.0/ = start ok


Reproducible: 

Steps to Reproduce:
Manuel Hiebel 2014-02-03 17:51:19 CET

Keywords: (none) => Triaged
CC: (none) => dmorganec, joequant
Version: 4 => Cauldron

Comment 1 Joseph Wang 2014-02-04 09:08:22 CET
Can you attach the "rpm -qa" for both a working and a non-working system.

It's very, very odd that the non-working system is trying to pull in libgcj, so this suggests that the wrong java is getting pulled in.
Comment 2 David GEIGER 2014-02-04 20:27:05 CET
Created attachment 4927 [details]
rpm -qa (mga4 Official)


Here the result on mga4 (Official), sweethome3d doesn't start and doesn't work
Comment 3 David GEIGER 2014-02-04 20:29:12 CET
Created attachment 4928 [details]
rpm -qa (mga4 Cauldron)


Here the result on mga4 (Cauldron), sweethome3d start and work.
Comment 4 David GEIGER 2014-02-06 21:58:42 CET
Ok found the problem :

on spec file is a missing requires package, and it is java-1.7.0-openjdk-devel.

-Install java-1.7.0-openjdk-devel package 
-try to start sweethome3d 
-bingo !! sweethome3d start and work.

Joseph Wang can you review the spec file and add java-1.7.0-openjdk-devel package as a Requires ?

Thank you in advance.
Comment 5 David GEIGER 2014-02-06 22:33:43 CET
Created attachment 4954 [details]
spec with fix_sweethome3d_start.patch
Comment 6 Joseph Wang 2014-02-06 23:29:20 CET
Thanks.  I'll fix the file and submit it to backports also.
Comment 7 Joseph Wang 2014-02-09 14:26:15 CET
I put in the requires as

java-devel >= 1.7.0

It's been submitted to cauldron.  Once it works there, I'll push it back to 4.
Comment 8 David GEIGER 2014-02-09 14:49:38 CET
Hi joequant,

You have added 'java-devel >= 1.7.0' as a BuildRequires but not as a Requires

Can you do it again?

Requires: java-devel >= 1.7.0


http://svnweb.mageia.org/packages/cauldron/sweethome3d/current/SPECS/sweethome3d.spec?r1=587090&r2=587089&pathrev=587090
David GEIGER 2014-02-09 14:58:48 CET

Version: Cauldron => 4

Comment 9 Joseph Wang 2014-02-09 15:06:43 CET
ok added that there
Comment 10 Nicolas Lécureuil 2014-02-09 15:42:27 CET
i think this is a bad idea as this will pull a lot of devel packages. This is better to find which package is really missing.

We are talking of this on irc right now. And so i tested to start it => it works and java-devel is not installed.

CC: (none) => mageia

Comment 11 Pascal Terjan 2014-02-09 17:47:38 CET
About the java-devel, sweethome3d requires janino which (for no good reason) requires ant which requires java-devel >= 0:1.5.0.

In order to satisfy the 'java-devel[>= 0:1.5.0]' dependency, one of the following packages is needed:
 1- java-1.7.0-openjdk-devel-1.7.0.60-2.4.4.2.mga4.x86_64: OpenJDK Development Environment (to install)
 2- java-1.5.0-gcj-devel-1.5.0.0-17.1.29.mga4.x86_64: JPackage development scripts for GCJ (to install)

Uninstalling (with nodeps) java-1.5.0-gcj-devel and ant also allows it to start.

So it seems sweethome3d doesn't really need java-1.7.0-openjdk-devel at runtime but if installed it prevents from using the broken java-1.5.0-gcj-devel.

CC: (none) => pterjan

Comment 12 David GEIGER 2014-02-09 18:41:46 CET
Bingo Pascal Terjan,

Without 'ant' and 'java-1.5.0-gcj-devel' (and 'java-1.7.0-openjdk-devel' too) sweethome3d start and work.
Comment 13 David GEIGER 2014-02-11 20:51:41 CET
In conclusion:

package, which is at fault, is "janino", a Requires for sweethome3d.

Is it really needed for the operation of sweethome3d ?

If yes,

should then review the build package "janino" to create a package named "janino" with only janino.jar file and not devel package in Requires.
And another package named "ant-janino" used for build with packages devel in Requires.

If not,

Then simply remove "janino" package of Requires for sweethome3d, and remove "janino" too of sweethome3d-4.3-script on line 6 (BASE_JARS=.....).

What do you think? is it feasible? is this correct?
Comment 14 David GEIGER 2014-03-05 16:42:52 CET
Ok,

now is fixed on Cauldron (.mga5) with a new release for sweethome3d-4.3-4.mga5 and also a new release for sunflow-0.07.3-3.mga5.

With this new release we have drop the 'janino' package as a Requires on both packages.

janino is not needed for sweethome3d and sunflow too.

'janino' is rather necessary for building packages for itself requires 'ant' package.


Now with the new release we have a considerable number of less Requires:

# LC_ALL=C urpmi sweethome3d-textures
To satisfy dependencies, the following packages are going to be installed:
  Package                        Version      Release       Arch    
(medium "Core Release (distrib1)")
  batik                          1.8          0.1.svn12308> noarch  
  bouncycastle-mail              1.46         9.mga4        noarch  
  bouncycastle-tsp               1.46         8.mga4        noarch  
  icedtea-web                    1.4.2        1.mga5        x86_64  
  itext-core                     2.1.7        18.mga4       noarch  
  jai-imageio-core               1.2          0.9.20100217> noarch  
  java3d                         1.5.2        6.mga4        x86_64  
  java3ds-fileloader             1.2          2.mga4        noarch  
  javamail                       1.5.0        3.mga4        noarch  
  mozilla-filesystem             1.9          3.mga4        x86_64  
  sac                            1.3          17.mga4       noarch  
  sunflow                        0.07.3       3.mga5        noarch  
  sweethome3d                    4.3          4.mga5        noarch  
  sweethome3d-textures           4.3          4.mga5        noarch  
  vecmath                        1.6.0        0.1.20130710> noarch  
  xalan-j2                       2.7.1        6.mga4        noarch  
  xerces-j2                      2.11.0       10.mga4       noarch  
  xml-commons-resolver           1.2          13.mga4       noarch  
53MB of additional disk space will be used.
30MB of packages will be retrieved.
Proceed with the installation of the 18 packages? (Y/n) y

installing sweethome3d-textures-4.3-4.mga5.noarch.rpm sweethome3d-4.3-4.mga5.noarch.rpm from /var/cache/urpmi/rpms
Preparing...                     #############################################
    17/18: sweethome3d           #############################################
    18/18: sweethome3d-textures  #############################################
    
-------------------------------------------------------------------------------

And sweethome3d starts and works fine :

$ sweethome3d
Java virtual machine used: /usr/lib/jvm/jre/bin/java
classpath used: /usr/share/java/sweethome3d/Furniture.jar:/usr/share/java/sweethome3d/Textures.jar
:/usr/share/java/sweethome3d/jmf.jar:/usr/share/java/sweethome3d/SweetHome3D-4.3.jar
:/usr/share/java/sweethome3d/jnlp.jar:/usr/share/java/sweethome3d/Help.jar
:/usr/share/java/sweethome3d/SweetHome3D.jar:/usr/share/java/sweethome3d/freehep-vectorgraphics-svg-2.1.1b.jar
:/usr/share/java/batik-all.jar:/usr/share/java/java3d/j3dutils-1.5.2.jar
:/usr/share/java/java3d/j3dcore-1.5.2.jar:/usr/share/java/java3d/j3dutils.jar
:/usr/share/java/java3d/j3dcore.jar:/usr/share/java/java3ds-fileloader.jar
:/usr/share/java/sunflow.jar:/usr/share/java/itext.jar:/usr/share/java/vecmath.jar
:/usr/share/java-1.7.0/../icedtea-web/netx.jar
main class used: com.eteks.sweethome3d.SweetHome3D
flags used: 
options used: -Djava.library.path=/usr/lib64:/usr/lib
arguments used: 
3D [dev] 1.5.2-build4-experimental 21 Oct 2013 22:57:42 GMT

Java 3D: implicit antialiasing enabled
-----------------------------------------------------------------------------


If it's good for others users, then we can push an update for mga4 too.
Comment 15 David GEIGER 2014-03-10 20:00:22 CET
Advisory:
========================

On a fresh install of Mageia 4 we found that sweethome3d package does not launch after its installation.
This is due to dependencies not necessary for its operation but that are installed relative to other packages. Especially the offending package is 
'java-1.5.0-gcj-devel'.
A dependency problem in chain has been corrected in janino to avoid installing 'java-1.5.0-gcj-devel'.

To fix this problem we removed the package 'janino' of required to'sweethome3d' and 'sunflow' packages too, and we added a conflict package on 'java-1.5.0-gcj-devel' to make sure that this one is not installed on the system.	

========================

Packages in 4/core/updates_testing:
========================

sweethome3d-4.3-1.2.mga4.noarch.rpm
sweethome3d-3dmodels-4.3-1.2.mga4.noarch.rpm
sweethome3d-javadoc-4.3-1.2.mga4.noarch.rpm
sunflow-0.07.3-2.1.mga4.noarch.rpm
sunflow-javadoc-0.07.3-2.1.mga4.noarch.rpm

Source RPM: 
========================

sweethome3d-4.3-1.2.mga4.src.rpm
sunflow-0.07.3-2.1.mga4.src.rpm

How to test this update request:
========================

Important:

During the installation of sweethome3d if 'urpmi' or 'drakrpm' asks you to choose between 'java-1.5.0-gcj-devel' and 'java-1.7.0-openjdk-devel', choose 'java-1.5.0-gcj-devel' to reproduce this bug.

Test procedure:

- Install 'sweethome3d' from core/release and accept all dependencies.
- Try to launch 'sweethome3d' (normally it should not launch and run and you should have same message as Comment 0).
- Install now 'sweethome3d' and 'sunflow' packages from core/updates_testing.
- He asks you to uninstall 'java-1.5.0-gcj-devel' and proposes to install 
'java-1.7.0-openjdk-devel' as a replacement, then accept it.
(Check especially that the package 'java-1.5.0-gcj-devel' is uninstalled, he is the traitor. :) )
- Try again to launch 'sweethome3d', now it should start and run.


If you want clean your system with old packages required by sweethome3d(it is not mandatory):

- You can remove orphaned packages (because now there must be in the list), You can use this command: "urpme --auto-orphans".
- You should have the following packages (this list can be different depending on what you have already installed on your system):
  
  ant-1.9.2-2.mga4.noarch
  gcc-java-4.8.2-3.mga4.x86_64 / gcc-java-4.8.2-3.mga4.i586
  janino-2.6.1-5.mga4.noarch
  java_cup-0.11a-15.mga4.noarch
  gcj-tools-4.8.2-3.mga4.x86_64 / gcj-tools-4.8.2-3.mga4.i586
  java-1.5.0-gcj-5.0.0-17.1.29.mga4.x86_64 / java-1.5.0-gcj-5.0.0-17.1.29.mga4.i586
  lib64gcj14-4.8.2-3.mga4.x86_64 / libgcj14-4.8.2-3.mga4.i586
  lib64gcj_bc1-4.8.2-3.mga4.x86_64 / libgcj_bc1-4.8.2-3.mga4.i586
  libgcj14-base-4.8.2-3.mga4.x86_64 / libgcj14-base-4.8.2-3.mga4.i586
  lib64gcj-devel-4.8.2-3.mga4.x86_64 / lib64gcj-devel-4.8.2-3.mga4.i586
  lib64zlib-devel-1.2.8-3.mga4.x86_64 / lib64zlib-devel-1.2.8-3.mga4.i586
  sinjdoc-0.5-4.10.mga4.x86_64 / sinjdoc-0.5-4.10.mga4.i586
  itext-2.1.7-18.mga4.x86_64 / itext-2.1.7-18.mga4.i586

Assignee: bugsquad => qa-bugs

David GEIGER 2014-03-10 20:01:32 CET

Whiteboard: (none) => has_procedure

Comment 16 Marc Lattemann 2014-03-10 20:50:05 CET
could reproduce error message. After activating testing repos:
[root@localhost marc]# urpmi sweethome3d
The following package has to be removed for others to be upgraded:
java-1.5.0-gcj-devel-1.5.0.0-17.1.29.mga4.i586
 (due to conflicts with sweethome3d-4.3-1.2.mga4.noarch) (y/N) y
To satisfy dependencies, the following packages are going to be installed:
  Package                        Version      Release       Arch    
(medium "Core Release")
  java-1.7.0-openjdk-devel       1.7.0.60     2.4.4.2.mga4  i586    
(medium "Core Updates Testing")
  sweethome3d                    4.3          1.2.mga4      noarch  
35MB of additional disk space will be used.
20MB of packages will be retrieved.
Proceed with the installation of the 2 packages? (Y/n)

after update sweethome3d starts fine. Tested for MGA4 32bit.

CC: (none) => marc.lattemann
Whiteboard: has_procedure => has_procedure MGA4-32-OK

Comment 17 Marc Lattemann 2014-03-10 20:59:42 CET
tested successfully for MGA4 64bit as well. 

After upload advisory from comment #15 it can be validated and pushed to core_updates.

Whiteboard: has_procedure MGA4-32-OK => has_procedure MGA4-32-OK MGA4-64-OK

Comment 18 claire robinson 2014-03-11 15:24:36 CET
Advisory uploaded. Validating.

Could sysadmin please push to updates

Thanks

Keywords: (none) => validated_update
Whiteboard: has_procedure MGA4-32-OK MGA4-64-OK => has_procedure advisory MGA4-32-OK MGA4-64-OK
CC: (none) => sysadmin-bugs

Comment 19 Thomas Backlund 2014-03-12 17:34:03 CET
Update pushed:
http://advisories.mageia.org/MGAA-2014-0081.html

Status: NEW => RESOLVED
CC: (none) => tmb
Resolution: (none) => FIXED


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