Cavewhere / cavewhere

3D Cave Mapping Software
https://cavewhere.com
GNU General Public License v3.0
34 stars 8 forks source link

Build debian package for cavewhere #84

Open jlillest opened 9 years ago

jlillest commented 9 years ago

The plan is to get cavewhere packages that can be installed on debian-based systems (e.g. Ubuntu, Mint).

I've got cavewhere building from the command line, so from there I see it as follows:

jlillest commented 9 years ago

Saving travis documentation link for later (installing build dependencies): http://docs.travis-ci.com/user/installing-dependencies/

jlillest commented 9 years ago

Egad, lots of extra shared libs to add to the package. Package builds and installs, but need to find and load the other dependencies.

From test install on ubuntu vagrant box:

vagrant@precise64:~$ ldd /usr/local/cavewhere/Cavewhere linux-vdso.so.1 => (0x00007fffe55ff000) libQMath3d.so => /usr/local/lib/libQMath3d.so (0x00007f543cc8a000) libGL.so.1 => not found libQt5Concurrent.so.5 => not found libQt5OpenGL.so.5 => not found libQt5Widgets.so.5 => not found libQt5Quick.so.5 => not found libQt5Gui.so.5 => not found libQt5Qml.so.5 => not found libQt5Network.so.5 => not found libQt5Sql.so.5 => not found libQt5Xml.so.5 => not found libQt5Core.so.5 => not found libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f543ca69000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f543c769000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f543c46e000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f543c258000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f543be9b000) /lib64/ld-linux-x86-64.so.2 (0x00007f543ce9e000) libQt5Core.so.5 => not found libQt5Gui.so.5 => not found

Need to make sure I can require libQt* and libGL, will work on this next chance I get.

Looks like libqt5* is not available through aptitude on Ubuntu12. I need to either add a ppa for forward version of qt for my test box or I need to find a Ubuntu14 image to test on. Mote later.

jlillest commented 9 years ago

Ok, have a very crude makefile that builds, moves binaries to package and builds the package. From there, I have the basics of the package working, and it installs and runs on a virtualbox with Ubuntu14.

For now I can provide the package to people that want it. Philip, can I put it on cavewhere.com?

Later I'd like to be able to automate the build using Travis, but I'm having trouble figuring out how to get qt set up so we can compile using qbs. Qbs has no binary package available for linux and it doesn't want to build for me from the source on github.

vpicaver commented 9 years ago

Cool! That would be great to get it up on cavewhere.com. If you send me the binary, I'll upload it.

On Tue, Oct 20, 2015 at 11:23 PM, jl notifications@github.com wrote:

Ok, have a very crude makefile that builds, moves binaries to package and builds the package. From there, I have the basics of the package working, and it installs and runs on a virtualbox with Ubuntu14.

For now I can provide the package to people that want it. Philip, can I put it on cavewhere.com?

Later I'd like to be able to automate the build using Travis, but I'm having trouble figuring out how to get qt set up so we can compile using qbs. Qbs has no binary package available for linux and it doesn't want to build for me from the source on github.

— Reply to this email directly or view it on GitHub https://github.com/Cavewhere/cavewhere/issues/84#issuecomment-149770340.

vpicaver commented 9 years ago

Wow, travis works on mac too! Thats cool! Do you have a branch I could checkout?

On Wed, Oct 21, 2015 at 8:35 AM, Philip Schuchardt vpicaver@gmail.com wrote:

Cool! That would be great to get it up on cavewhere.com. If you send me the binary, I'll upload it.

On Tue, Oct 20, 2015 at 11:23 PM, jl notifications@github.com wrote:

Ok, have a very crude makefile that builds, moves binaries to package and builds the package. From there, I have the basics of the package working, and it installs and runs on a virtualbox with Ubuntu14.

For now I can provide the package to people that want it. Philip, can I put it on cavewhere.com?

Later I'd like to be able to automate the build using Travis, but I'm having trouble figuring out how to get qt set up so we can compile using qbs. Qbs has no binary package available for linux and it doesn't want to build for me from the source on github.

— Reply to this email directly or view it on GitHub https://github.com/Cavewhere/cavewhere/issues/84#issuecomment-149770340 .

jlillest commented 9 years ago

I've got my work here: https://github.com/jlillest/cavewhere/tree/travis

Important notes:

This creates a very basic debian package, it's nowhere near being accepted by a ppa. If you find anyone with helpful hints, have them make an issue or get in touch.

Feel free to play with it, but I'll get my vm running it and test it before I try to run it on travis. I'm surprised by the lack of info on automated builds using travis for qt projects. Let me know if you find something.

jlillest commented 9 years ago

The latest build is here: https://drive.google.com/file/d/0B_mWQeXJKt3vb083eUZxQ043S3c/view?usp=sharing

It's based off the travis branch, which came from the dewalls2 branch. I haven't worked on master in a while so it may not be what you intended. Still in testing, so call it unstable for now.

vpicaver commented 9 years ago

Cool, I'm testing the deb file right now.

vpicaver commented 9 years ago

screen shot 2015-10-31 at 5 48 45 pm screen shot 2015-10-31 at 5 50 40 pm

I run into the following issues...

vpicaver commented 9 years ago

Shouldn't Cavewhere executable be installed in /usr/local/bin/Cavewhere instead of /usr/local/cavewhere/Cavewhere?

jlillest commented 9 years ago

Oops, forgot the symbolic link in the postinst script. Adding that now.

Also forgot to build with fakeroot, that should take care of the aptitude problems.

jlillest commented 9 years ago

I'm looking into the symbol error, but I suspect it has something to do with this line from lintian:

E: cavewhere: binary-or-shlib-defines-rpath usr/local/lib/libQMath3d.so /opt/Qt/5.5/gcc_64/lib

It appears that libQMath3d is dependent on my install, need to figure out how to fix that.

vpicaver commented 9 years ago

Cool! Sounds good. I'll keep testing it out :D

On Sun, Nov 1, 2015 at 11:13 AM, jl notifications@github.com wrote:

I'm looking into the symbol error, but I suspect it has something to do with this line from lintian:

E: cavewhere: binary-or-shlib-defines-rpath usr/local/lib/libQMath3d.so /opt/Qt/5.5/gcc_64/lib

It appears that libQMath3d is dependent on my install, need to figure out how to fix that.

— Reply to this email directly or view it on GitHub https://github.com/Cavewhere/cavewhere/issues/84#issuecomment-152840924.

jlillest commented 9 years ago

Here's the new link: (v0.07-54 based off the travis branch) https://drive.google.com/file/d/0B_mWQeXJKt3vZGhLV3VCWjhIV0U/view?usp=sharing

Spoiler alert: it will install, but won't run.

I've added the vagrant config files to hopefully allow everyone running linux to test the installation process of the package. It will require the install of virtual box and vagrant, but should run ok beyond that. This will allow me (or anyone else) to test the installation of cavewhere.

Still trying to figure out the rpath issue.

jlillest commented 9 years ago

By running qbs with the debug functionality I can see exactly what compiler commands are being run. I mean to grab a screenshot, but I've confirmed that qbs is running clang with the rpath set to my install of qt. I'll keep digging to see why this is.

Eliminating the rpath will allow LD_LIB_PATH to do it's magic with the ubuntu supplied qt libraries.

jlillest commented 8 years ago

So, apparently there's a QT platform env that needs to be set: http://stackoverflow.com/a/25437758

I think I have all the libs figured out. Hope to get something more tonight.

vpicaver commented 8 years ago

Cool!

On Monday, December 7, 2015, jl notifications@github.com wrote:

So, apparently there's a QT platform env that needs to be set: http://stackoverflow.com/a/25437758

I think I have all the libs figured out. Hope to get something more tonight.

— Reply to this email directly or view it on GitHub https://github.com/Cavewhere/cavewhere/issues/84#issuecomment-162569146.

Phi|ip

Sent from Gmail Mobile

jlillest commented 8 years ago

It's looking like I'll have to deploy the libs from Qt5.5 with the package. The qt5 libs rely on newer versions of underlying libs than are available from the debian package repositories. Will get this working and then I'll work on trimming it down.

I'll keep working on the static lib stuff, but that's looking like I'll need to play with build files and I just haven't gotten around to it.

Here's some links for me to look at later: https://stackoverflow.com/questions/1011197/qt-static-linking-and-deployment http://doc.qt.io/qt-5/linux-deployment.html

jlillest commented 8 years ago

I've had some setbacks, but am getting closer. Ran into this recently: http://stackoverflow.com/questions/31103808/qxcbintegration-cannot-create-platform-opengl-context-neither-glx-nor-egl-are

Apparently vagrant may not support OpenGL, so need to find another VM I can test on.

Now I'm running into Qt Library problems on my own computer. Qt seems to be both a blessing and a curse in the same package.

vpicaver commented 8 years ago

Cool. Let me know if I can help out an anyway.

On Friday, February 19, 2016, jl notifications@github.com wrote:

I've had some setbacks, but am getting closer. Ran into this recently:

http://stackoverflow.com/questions/31103808/qxcbintegration-cannot-create-platform-opengl-context-neither-glx-nor-egl-are

Apparently vagrant may not support OpenGL, so need to find another VM I can test on.

Now I'm running into Qt Library problems on my own computer. Qt seems to be both a blessing and a curse in the same package.

— Reply to this email directly or view it on GitHub https://github.com/Cavewhere/cavewhere/issues/84#issuecomment-186510398.

Phi|ip

Sent from Gmail Mobile

balister commented 7 years ago

I've built it on fedora with only minimal fighting with QBs, so you be possible if Debian has recent qt5

jlillest commented 7 years ago

Does it require using the SDK downloaded from QT? If not, can you get me a list of package dependencies and I'll give a quick run through as time allows. I'm able to build using the SDK, but not from just from a package manager.

I'm still on an older ubuntu system, but last I checked Ubuntu 16 or 17 was slated to get the bleeding edge qt versions that sauce bumped up to.

jlillest commented 6 years ago

It looks like the next LTS release of Ubuntu will have QT 5.9.3 support with standard packages: https://packages.ubuntu.com/bionic/qt5-default

Ubuntu bionic is slated for release in April of this year: https://en.wikipedia.org/wiki/Ubuntu_(operating_system)#Releases