[Qt-creator] QT Creator with chroots or dockers

Tobias Hunger tobias.hunger at theqtcompany.com
Tue Jan 13 12:08:02 CET 2015


Hi Ray,

Yes, I am one of the people working on the build infrastructure, but 
actually Daniel is the maintainer of that area (see 
https://qt-project.org/wiki/Maintainers).


There is (at least) one flavors of Qt Creator that support building in 
a VM (sailfish OS SDK) and ubuntu seems to be working on building in 
chroots or something (ubuntu touch SDK). Unfortunately the contact to 
those projects is sporadic at best (at least at this time) and I do not 
know what these projects are up to in detail. Maybe they even have 
changed their approach completely in the meantime. There might also be 
more Qt Creator flavors doing similar things that I do not know about.

So while this apparently is possible, we do not have any infrastructure 
in Qt Creator to help with handling chroots. Adding it would require 
some involved changes, since we would need to consistently map 
information from "in chroot paths" to "out-of-chroot paths" in a 
reliable way. This is necessary for e.g. the code model to find the 
right headers, etc. Obviously such a change also needs intense testing 
as the code paths touched are used by all existing platforms we have.

Docker might be even more challenging. Don't you need to set the 
command the container runs in the container configuration? So can you 
even use the same container to build, debug and run your code? Getting 
access to files in the container will also be interesting: There are 
several on disk formats for containers. The filesystem image being set 
up in layers that overlay each other does not make this any easier.

Maybe the easiest approach to support docker would be to require 
ssh/gdbserver running in the docker image and use the existing remote 
desktop machinery for the run/debug part. That way we would only need 
to support "remote build" via SSH in addition to what we already have. 
But then I admit I have not thought about docker support much yet.


If you need chroot support fast, then one hackish approach is to 
provide wrapper scripts around make/qmake/etc. that do the path name 
mapping *outside* creator. That can get you some way. I did that for a 
while, but nowadays I just install Qt Creator into the chroots and 
build "locally" in those chroots. That works well for me: I work on Qt 
Creator, so I need all the Qt Creator dependencies inside the chroot 
anyway. Unfortunately it also requires me to switch Creators whenever I 
switch chroots, but so far I did not have to switch often: Almost all 
the bugs that I had to reproduce on Linux have been distribution 
agnostic:-)


This is a feature I would love to work on, but unfortunately I do not 
expect to find the time for this anytime soon.

Best Regards,
Tobias

--
Tobias Hunger, Senior Software Engineer | The Qt Company

Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja Sitz der 
Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 
144331 B

Email: tobias.hunger at theqtcompany.com | Phone: +49 30 63 92 3255 
www.qt.io | Qt Blog: http://blog.qt.digia.com/ | Twitter: @QtbyDigia, 
@Qtproject | Facebook: www.facebook.com/qt

On Mo, Jan 12, 2015 at 11:36 , Scheufler Ray M 
<ScheuflerRayM at JohnDeere.com> wrote:
> I am working on setting up a development environment for cross 
> compilation and I want to use chroot or docker to isolate my cross 
> libraries.  I have seen mentions of doing this on the qt forums but I 
> can’t find any documentation on how to do this.  I am able to 
> manage my environments outside of the IDE but I much prefer having an 
> IDE to aid development.
> 
> It appears that Tobias Hunger is doing this so I was hoping for a 
> nudge in the correct direction.
> 
> I would like to be able to run QT Creator in the host and delegate 
> all actions to a docker container.
> 
> http://qt-project.org/forums/viewthread/33751
> http://qt-project.org/forums/viewthread/832
> 
> 
> Ray Scheufler
> 
> 




More information about the Qt-creator mailing list