Building Qt on Debian

I recently followed the advice of @sehurlburt to offer help to other developers. As I work with Qt and embedded Linux on a daily basis, I offered to help. (You should do the same!)

As it is easy to run out of words on Twitter, so here comes a slightly more lengthy explanation on how I build the latest and greatest of Qt for my Debian machine. Notice that there are easier ways to get Qt – you can install it from packages, or use the installer provided from The Qt Company. But if you want to build it yourself for whatever reason, this is how I do it.

First step is to get the build dependencies to your system. This might feel tricky, but apt-get can help you here. To get the dependencies for Qt 5, simply run sudo apt-get build-dep libqt5core5a and you are set.

Next step would be to get the Qt source tarball. You get it by going to https://www.qt.io/download/, select the open source version (unless you hold a commercial license) and then click the tiny View All Downloads link under the large Your download section. There you can find source packages for both Qt and Qt Creator.

Having downloaded and extracted the Qt tarball, enter the directory and configure the build. I usually do something like
./configure -prefix /home/e8johan/work/qt/5.9.0/inst -nomake examples -nomake tests. That should build everything, but skip examples and tests (you can build these later if you want to). The prefix should point to someplace in your home directory. The prefix has had some peculiar behaviour earlier, so I try to make sure not to have a final dash after the path. When the configuration has been run, you can look at the config.summary file (or the a bit higher up in the console output) and you can see a nice summary of what you are about to build. If this list looks odd, you need to look into the dependencies manually. Once you are happy, simply run make. If you want to speed things up, use the -j option with the highest number you dare (usually number of CPU cores plus one). This will parallelize the build.

Once the build is done (this takes a lot of time, expect at least 45 minutes with a decent machine), you need to install Qt. Run make install to do so. As you install Qt to someplace in your home directory, you do not need to use sudo.

The entry point to all of Qt is the qmake tool produced by your build (i.e. prefix/bin/qmake). If you run qmake -query you can see that it knows its version and installation point. This is why you cannot move a Qt installation around to random locations without hacking qmake. I tend to create a link (using ln -s) to this binary to somewhere in my path so that I can run qmake-5.9.0 or qmake-5.6.1 or whatnot to invoke a specific qmake version (caveat: when changing Qt version in a build tree, run qmake-version -recursive from the project root to change all Makefiles to the correct Qt version, otherwise you will get very “interesting” results).

Armed with this knowledge, we can go ahead and build QtCreator. It should be a matter of extracting the tarball, running the appropriate qmake in the root of the extracted code followed by make. QtCreator does not have to be installed, instead, just create a link to the qtcreator binary in the bin/ sub directory.

Running QtCreator, you can add Qt builds under Tools -> Options… -> Build & Run. Here, add a version by pointing at its qmake file, e.g. the qmake-5.9.0 link you just created. Then it is just a matter of picking Qt version for your project and build away.

Disclaimer! This is how I do things, but it might not be the recommended or even the right way to do it.

Posted in KDE, KDE 4, Linux, Qt | Comments closed

foss-gbg gets going again

It is time for foss-gbg to get going again. A week from now Zeeshan will talk about The good kind of Rust. Tickets are free, so if you are in Gothenburg, feel free to drop by for some snacks, the Rust talk and some lighting talks.

foss-gbg is a local group sharing ideas and knowledge around Free and Open Source Software in the Gothenburg area.

Posted in foss-gbg | Comments closed

Alpha APX Details

I just want to share some links. This is the type of articles that makes me follow Raymond Chen.

As he lives outside of the open source space, his blog might be a gem that many have missed.

Posted in Miscellaneous | Comments closed

The Humane Tech Interview

I am in a position where I interview job candidates. What I do is called the tech interview, which is an early vetting before we start discussing money and other contractual details. This is usually between one and two hours over Skype or telephone where I have to judge is a candidate is technically skilled and fits into the team. So, how to go about this?

I’ve seen many approaches. You can interrogate the candidate, you can ask about details about every line item on the résumé, you can ask the person about strengths and weaknesses. To me, all of these approaches are defunct – I want to have a conversation, not an interrogation. There does not have to be a right or wrong answer, just an opinion. This usually takes the tension out of the situation and makes the candidate open up. It also allows me to expose my weaknesses to make it more comfortable for the candidate to admit his or hers.

Going in to an interview, I usually make a list of topics that are relevant to the position in question. This can be knowledge about Linux, git, Qt, JIRA, agile, and so on. For each of these questions, I know what we do at Pelagicore, but instead of asking about the candidate’s experience with what we do, the questions from me goes like this:

– So, what kind of source code versioning system have you been using?
– Comparing git to svn, what did change, from your perspective?
– Could you see any situation where svn would be better than git?
– We use git like this, is there anything that you’d like to change with that?

As you can see, the questions are more about opinion that right or wrong. The point is that if you know the technology, you can pick up competence and experience through this discussion instead of asking about very specific details which easily can create a stressful situation for the candidate.

I generally do the same for technologies, e.g. what is your favorite feature of C++11? in what situations does that help you? Kickstarting a discussion instead of an interrogation.

Then we come to what I call the comfort zone questions. What do you as a person like, irregardless of the position being in question?

– Do you like to code drivers, middleware or end-user applications?
– Do you prefer to get a problem and really dig into it – like a complex bug – or do you want to be the generalist that holds the team together and spreads knowledge?
– Do you like to have a predictable day where you pick a task and carry it out, or do you like to work in a more reactive way, close to the customer and the chaos of reality?

There is no right or wrong here, only dimensions that can be discussed. There are lots of why and how and did you experience this in a previous job type of questions to keep the discussion going here.

During the entire interview I try to keep the conversation natural while moving through my checklist. I also try to check for a few basic signs, e.g. I like when the candidate has an opinion that differs to mine about something, I like the candidate to not be a 100% match to the position, I also like for the candidate to admit not knowing or being familiar with something. Nothing of this is dramatic in the context of a conversation, but in my experience it helps sorting out the honest and open candidates from those who try to provide the right answers the whole time.

This is what I try to do to make the interview more humane and less stressful. How do you like to do interviews? How do you like to be interviewed? I’d love to hear back from you.

Posted in Miscellaneous | Comments closed

foss-north 2017 follow-up

On the morning of April 26 I arrived at our venue, preparing for around 120 people to fill the rooms at foss-north 2017.

I’m still in the post-event cleaning up phase, so the visitor questionnaire has not yet been sent out, but the feeling is positive. This year we expanded changed venue and moved from one to two tracks. This led to more administration with two room hosts and double video recordings, so that everyone could see everything. The videos are available online now. You can either find a specific talk from the talks and speakers page, or simply enjoy the entire playlist here:

I’d like to extend a big thank you to everyone who made this possible: Jeena and Johnny helping out recording videos and hosting. All our speakers. Our partners Swedsoft, FSFE and BRG. Our sponsors Semcon, Rebel Alliance, Blackduck Software, Capture Innovation and Qamcom. And all the visitors. Without anyone of these pieces, the puzzle would not come together.

I’m already looking forward to seeing you next year again!

Posted in foss-gbg, foss-north, Linux, Qt | Comments closed

Five days and counting

It is five days left until foss-north 2017, so it is high time to get your ticket! Please notice that tickets can be bought all the way until the night of the 25th (Tuesday), but catering is only included is you get your ticket on the 24th (Monday), so help a poor organizer and get your tickets as soon as possible!

And just to reiterate what’s on the menu. This is a full day conference with two tracks and many interesting speakers from many projects, including Debian, Wikimedia, KDE, systemd, PulseAudio, Nextcloud, PostgreSQL, OpenRISC, flatpak, AsteroidOS and more.

Last year, over 30% of the tickets was sold in the last 48h. This year, we cannot provide catering for the ones buying tickets the last 24h, so hopefully the peak will come earlier. For now, we have 93 persons on the visiting list, but there are chairs for 100 more!

Posted in foss-gbg, foss-north, KDE 4, Linux, Qt | Comments closed

foss-north speaker line-up

I am extremely pleased to have confirmed the entire speaker line-up for foss north 2017. This will be a really good year!

Trying to put together something like this is really hard – you want the best speakers, but you also want a mix of local and international, various technologies, various viewpoints and much, much more. For 2017 we will have open hardware and open software, KDE and Gnome, web and embedded, tech talks and processes, and so on.

The foss north conference is a great excuse to come visit Gothenburg in the spring. Apparently, Sweden’s wildest city!

Posted in Embedded, foss-gbg, foss-north, KDE, Linux, Qt | Comments closed

Just three days left…

The call for papers for foss-north 2017 ends on Sunday. That means that you only have three days to…

  • … get a chance to visit Gothenburg, Sweden, the most sociable city in the world!
  • … speak in front of a great audience of 220 people (if we sell all the tickets – get your’s here).
  • … listen to other awesome speakers. Right now we’ve confirmed Lydia Pintscher, Lennart Poettering, Knut Yrvin and Jos Poortvliet. (There will be more awesome speakers announced when the call for papers is over).

So what are you waiting for – submit your talk proposal and join us at foss-north 2017!

Posted in foss-north, KDE, KDE 4, Linux, Qt | Comments closed

foss-north 2017: Call for Papers

The Call for Papers for foss-north is open for another week (until the 12th). This gives you an opportunity to speak in front of a great crowd. Looking at the results from last year’s questionnaire, more than 90% are users of open source software and more than 50% are contributors. One thing that surprised me, is that more people actually contribute as a part of their profession than as hobbyists. Looking at the professional vs hobbyist proportions, 45% of the visitors stated that they had their ticket paid by their employer/school, while 42% paid them out of their own pocket.

The topic of the conference is free and open source – so anything related is much welcome.We do not even limit ourselves to software – hardware, patents, community and much more is also appreciated topics. Last year we had speakers talking about timing synchronization over vast networks, patent issues, working as a designer, linguistics and must more.

As always with these things, crowd dynamics means that me as an organizer has to work on my stress management abilities. Almost 30% of the tickets to last year’s event was sold in the last two days before the event. The same goes for Call for Papers – nobody registers a talk in good time before the deadline. So if you want to help an ageing developer keeping the pulse under control – submit your talk proposal now! ;-)

Posted in foss-gbg, foss-north, KDE, KDE 4, Linux, Qt, Yocto | Comments closed

kdenlive, audacity and lessons in audio sync

During the last foss-gbg meeting I tried filming the entire event. The idea is to produce videos of each talk and publish them on YouTube. Since I’m lazy, I simply put up a camera on a tripod and recorder the whole event, some 3h and 16 minutes and a few seconds. A few seconds that would cause me quite some pain, it turns out.

All started with me realizing that I can hear the humming sound of the AC system in the video. No problem, simply use ffmpeg to separate the audio from the video and use the noise reduction filter in Audacity. However, when putting it all together I recognized a sound sync drift (after 6h+ of rendering videos, that is).

ffprobe told me that the video is 03:16:07.58 long, while the extracted audio is 03:16:04.03. This means that the video of the last speaker drifts more than 3s – unwatchable. So, googling for a solution, I realized that I will have to try to stretch the audio to the same duration as the video. Audacity has a tempo effect to do this, but I could not get the UI to accept my very small adjustment in tempo (or my insane number of seconds in the clip). Instead, I had to turn to ffmpeg and the atempo filter.

ffmpeg -i filtered.ac3 -filter:a "atempo=0.9996983236995207" -vn slower.ac3

This resulted in an audio clip of the correct length. (By the way, the factor is the difference in length of the audio and video).

Back to kdenlive – I imported the video clip, put it on the time line, separated the audio and video (just a right click away), ungrouped them, removed the audio, added the filtered, slowed down audio, grouped it with the video and everything seems nice. I about 1h43 I will know when the first clip has been properly rendered :-)

Posted in foss-gbg, KDE | Comments closed
  • October 2017
    M T W T F S S
    « Aug    
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031