Building Fragmentarium (current) on a Slackware Linux 14.1 machine.
14.1 is Slack's last stable release. It is now ~20 months old - not exactly spring fresh, but not exactly pre-historic either.
[9:13] Sven [s171b58:~] > qmake --version
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib64/qt/lib
Issues:
1)[9:13] Sven [s171b58:~] > qmake-qt4
CORRECT>qmake (y|n|e|a)? no
qmake-qt4: Command not found.
I've encountered this before - did really old systems distinguish the "new" qt4 version like this(?) For the benefit of future readers, it's easily faked by
[9:16] Sven [s171b58:~] > sudo ln -sf /usr/bin/qmake /usr/bin/qmake-qt4
Maybe the build script shouldn't just rely on this link? Ideally it should probably test what version qmake is and just use that if it's good?
2)Fragmentarium/GUI/DisplayWidget.cpp:38:25: error: ‘OpenGL_Version_4_1’ is not a member of ‘QGLFormat’
Fragmentarium/GUI/DisplayWidget.cpp:39:25: error: ‘OpenGL_Version_4_2’ is not a member of ‘QGLFormat’
Fragmentarium/GUI/DisplayWidget.cpp:40:25: error: ‘OpenGL_Version_4_3’ is not a member of ‘QGLFormat’
...
Googling that finds claudeha's changes for Debian Wheezy that were just recently pulled into the main branch. Turns out his fixes work just fine if you simply extend them a little farther than 4.8.2 (to include 4.8.7).
In other words: go here
https://github.com/Syntopia/Fragmentarium/commit/c80923787970663efb070fc0ad7fb940a512d51d open your local source of
Fragmentarium/GUI/DisplayWidget and in the three locations where it tests
QT_VERSION_CHECK(4,8,2) change that to
QT_VERSION_CHECK(4,8,7) (two occurences in the .cpp, one in the .h)
I'm not comfortable syncing the whole shebang with github just to create a pull request to change those three digits -- could someone flow this into the main trunk? Thanks.
3)This now compiles fine and creates a folder
Fragmentarium right inside
Fragmentarium-master/Fragmentarium-Source/Build - Linux/. cd'ing into that folder and executing
./Fragmentarium fires it up and it shows a Mandelbulb and it all appears to work fine.
However there is no such thing as a "make install". Or, more precisely, that part of the Makefile doesn't actually do anything. If I simply copy/move the freshly created folder somewhere else like
cp ./Fragmentarium/ ~/
cd
./Fragmentarium/Fragmentarium the binary fires up just fine, but it fails to load any fragment:
Parse: /home/sven/[not found]/Historical 3D Fractals/Mandelbulb.frag
No vertex shader found!
Could not create vertex shader:
Could not find Center interface widget
Could not find Zoom interface widget
Failed to compile script (25 ms).
This video card supports: OpenGL1.1, OpenGL1.2, OpenGL1.3, OpenGL1.4, OpenGL1.5, OpenGL2.0, OpenGL2.1, OpenGL3.0, OpenGL3.1, OpenGL3.2, OpenGL3.3, OpenGL4.0
Only if I
cd ~/Fragmentarium
./Fragmentariumdoes it find the requisite paths (this is using the default include path that is set to
Examples/Include;This is a bit awkward, since this precludes putting a link into
/usr/bin and calling it from there. Or moving the whole folder to something like
/usr/share or such. Is there a way to make Fragmentarium consider paths relative to the location of the binary, rather than relative to the location of the caller?
I worked around this like this:
[10:06] Sven [s171b58:~] > cat /usr/bin/Fragmentarium
#!/bin/sh
cd /k/Shared/Fragmentarium
./Fragmentarium &> /dev/null
but that seems like a kludge.