Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#25181 closed update (fixed)

stellarium 0.10.5

Reported by: mf2k (Frank Schima) Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: michaelld (Michael Dickens), raimue (Rainer Müller)
Port: stellarium

Description

Please update stellarium to version 0.10.5.

Attachments (3)

stellarium_Portfile.diff (3.1 KB) - added by michaelld (Michael Dickens) 10 years ago.
Diffs to upgrade stellarium Portfile from 0.10.4 to 0.10.5; still won't compile, but getting closer.
stellarium-Portfile_0_10_4.diff (1.5 KB) - added by michaelld (Michael Dickens) 10 years ago.
Patch to upgrade Stellarium portfile such that 0.10.4 compiles cleanly, but does not execute.
stellarium-Portfile_0_10_5.diff (3.8 KB) - added by michaelld (Michael Dickens) 10 years ago.
Patch to upgrade Stellarium portfile such that 0.10.5 compiles cleanly, but does not execute.

Download all attachments as: .zip

Change History (22)

comment:1 Changed 10 years ago by mf2k (Frank Schima)

A simple version bump did not work for me.

comment:2 Changed 10 years ago by raimue (Rainer Müller)

Status: newassigned

Yes, I noticed. But I have not investigated yet why the new version fails.

comment:3 Changed 10 years ago by michaelld (Michael Dickens)

Cc: michaelld@… added

Cc Me!

comment:4 Changed 10 years ago by michaelld (Michael Dickens)

Two items on the upgrade:

(1) watching 'configure' do it's thing: zlib and iconv end up being those provided by OSX, and should instead be those provided by MacPorts.

(2) At least for me (MacBook Pro early 2009, 10.5.8 latest, XCode 3.1.3, MacPorts 1.9.0 using dports from SVN): I get the errors:

[ 70%] Building CXX object src/CMakeFiles/stellarium.dir/main.cpp.o
Linking CXX executable stellarium
ld warning: in /opt/local/libexec/qt4-mac/lib/QtOpenGL.framework/QtOpenGL, file is not of required architecture
ld warning: in /opt/local/libexec/qt4-mac/lib/QtScript.framework/QtScript, file is not of required architecture
ld warning: in /opt/local/libexec/qt4-mac/lib/QtGui.framework/QtGui, file is not of required architecture
ld warning: in /opt/local/libexec/qt4-mac/lib/QtSql.framework/QtSql, file is not of required architecture
ld warning: in /opt/local/libexec/qt4-mac/lib/QtNetwork.framework/QtNetwork, file is not of required architecture
ld warning: in /opt/local/libexec/qt4-mac/lib/QtCore.framework/QtCore, file is not of required architecture
ld warning: in /opt/local/lib/libintl.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libintl.dylib, file is not of required architecture
ld: in /opt/local/lib/libxml2.2.dylib, file is not of required architecture for architecture ppc
collect2: ld returned 1 exit status
Undefined symbols for architecture i386:
  "QGLContext::deleteTexture(unsigned long)", referenced from:
      StelTexture::~StelTexture()in StelTexture.cpp.o
      StelTexture::~StelTexture()in StelTexture.cpp.o
  "QGLFramebufferObject::QGLFramebufferObject(QSize const&,
          QGLFramebufferObject::Attachment, unsigned long, unsigned long)", referenced from:
      StelAppGraphicsWidget::initBuffers()       in StelAppGraphicsWidget.cpp.o
      StelAppGraphicsWidget::initBuffers()       in StelAppGraphicsWidget.cpp.o
  "QGLContext::bindTexture(QImage const&, unsigned long, long,
          QFlags<QGLContext::BindOption>)", referenced from:
      StelTexture::glLoad()      in StelTexture.cpp.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
lipo: can't open input file: /var/tmp//cc9DTlnj.out (No such file or directory)

so, something is going wrong with the architecture detection, in patching (by the Portfile) or elsewhere. I'm looking into it, since I have time today & I enjoy using Stellarium. No promises.

comment:5 Changed 10 years ago by michaelld (Michael Dickens)

Looks like:

(1) "cmake" is also finding the OSX-installed opensll instead of that of MacPorts -- outputs for this and the above in (1) follow; I'm trying to figure out the correct arguments to 'cmake' to get it to use the correct version:

-- Found OpenSSL: /usr/lib/libssl.dylib;/usr/lib/libcrypto.dylib
-- Found ZLIB: /usr/lib/libz.dylib
-- Found Iconv: /usr/lib/libiconv.dylib

(2) "cmake" is setting "CMAKE_OSX_ARCHITECTURES:STRING=" (i.e., to nothing), instead of to a specific architecture. This might be causing it to try to compile for PPC instead of i386 (in my case, since I'm using 10.5.8).

Still investigating.

comment:6 Changed 10 years ago by michaelld (Michael Dickens)

The file "CMakeLists.txt" changed between releases, and that messed up the Portfile reinplace. I've figured out how to augment the Portfile for this change, as well as to use the MacPorts-provided opensll, zlib, and iconv. Even with those, I'm still getting the same "undefined symbols" as before.

comment:7 Changed 10 years ago by michaelld (Michael Dickens)

I'm still working on this issue, but I think (right now) it has to do with the way Qt4-Mac is installed. I'm attaching a Portfile diff if anyone else wants to help debug (from 0.10.4 to 0.10.5, with all the changes listed above).

Changed 10 years ago by michaelld (Michael Dickens)

Attachment: stellarium_Portfile.diff added

Diffs to upgrade stellarium Portfile from 0.10.4 to 0.10.5; still won't compile, but getting closer.

comment:8 Changed 10 years ago by michaelld (Michael Dickens)

Still trying, as time allows. I -think- the issue is that qt4-mac was compiled such that, if you look at qt4-mac/include/QtOpenGL/qgl.h:87, the 'compat' features are not used ... but, for some reason stellarium -is- trying to use them, which creates conflicting method signatures between the library (uses 'int') and stellarium (uses 'long').

comment:9 Changed 10 years ago by michaelld (Michael Dickens)

I think I know the issue now. qt4-mac is (I'm betting) compiled with the 10.5 SDK; stellarium is trying to use the 10.4 SDK. 10.4 defines "GLuint" as "long" while 10.5 defines it as "int", which are not library compatible. So, I'm now searching for how to specify the SDK to use for cmake.

comment:10 Changed 10 years ago by michaelld (Michael Dickens)

More notes:

  • Upgrading the SDK to 10.5 does indeed result in the port successfully compiling and installing, but the resulting executable does not work properly. Trying to execute it results in a dialog box that says "You can't open the application 'Stellarium.app' because it is not supported on this architecture. Showing the contents and starting the MacOS executable results in Stellarium running correctly, just the UI being very slow (responses being on the order of seconds, not "almost instantaneously" as the normal .app does).
  • The current Portfile (for 0.10.4) also doesn't work with the current qt4-mac (4.6.2_2); it produces the same linker issues as my augmented port (via the attached diff) -- so, it, too has issues with the chosen SDK (10.4).

Given the above, I believe the problem is actually an interface issue between Qt4 and OSX (including OpenGL), not Stellarium per se. I'm updating the attached Portfile diff to my latest version, which does compile fully on 10.5 i386, but otherwise I don't know what else to do to make this port work; clearly, the downloadable .app does work, so there is a way to make it do so.

Changed 10 years ago by michaelld (Michael Dickens)

Patch to upgrade Stellarium portfile such that 0.10.4 compiles cleanly, but does not execute.

Changed 10 years ago by michaelld (Michael Dickens)

Patch to upgrade Stellarium portfile such that 0.10.5 compiles cleanly, but does not execute.

comment:11 Changed 10 years ago by michaelld (Michael Dickens)

< http://stellarium.org/wiki/index.php/Compilation_on_Macosx > implies that we're supposed to use the 10.4u SDK. Maybe that really makes a difference?

comment:12 Changed 10 years ago by michaelld (Michael Dickens)

< http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x > states that 4.6.3 for Cocoa is meant for 10.5 or 10.6 only, so no 10.4 support any longer -- 10.4 support for the Carbon version only now. I wonder if the Stellarium folks know about this change, and if it means any code changes for them (beyond changing the few 10.4 oriented variables for CMake)?

comment:13 Changed 10 years ago by michaelld (Michael Dickens)

Reading the stellarium.org wiki link again, they certainly do know. Still no idea why this doesn't "just work" ...

comment:14 Changed 10 years ago by michaelld (Michael Dickens)

Another data point: I can confirm that if I (1) download Qt mac cocoa 4.6.3 precompiled & install that (goes into /Developer/ and /usr ); (2) edit the CMakeLists.txt for stellarium to use 10.5 (10.4u does not work correctly; I've tried it); (3) do 'cmake', 'make', 'make install' as usual; then (4) edit the created Stellarium.app's contents to be inline with MacOS X expectations ... then the resulting .app does work correctly, but only when executed from within (via runnning 'Contents/MacOS/stellarium'). The .app itself still claims not the correct architecture.

comment:15 Changed 10 years ago by michaelld (Michael Dickens)

Following up on the previous post: If I recreate what the Portfile does by hand, and just include or not the "-DQT_QMAKE_EXECUTABLE" part, then I find that the version that does include it (which uses the MacPorts' installed Qt) behaves exactly as I've documented above and just isn't functional; the one which doesn't include it (uses the one I installed from download), works as described above. I'm trying upgrading qt4-mac to 4.6.3 to see if that's the issue.

comment:16 Changed 10 years ago by michaelld (Michael Dickens)

Upgrading to Qt4-Mac 4.6.3 at least allows the internal executable to function. I'm investigating how to get the external .app to register the architecture correctly now.

comment:17 Changed 10 years ago by michaelld (Michael Dickens)

Owner: changed from raimue@… to michaelld@…
Status: assignednew

comment:18 Changed 10 years ago by michaelld (Michael Dickens)

Resolution: fixed
Status: newclosed

Fixed in [68848].

comment:19 Changed 10 years ago by raimue (Rainer Müller)

Cc: raimue@… added
Note: See TracTickets for help on using tickets.