Tasty calamares in Gentoo

First of all it’s nothing to eat. So what is it then? This is the introduction by upstream:

Calamares is an installer framework. By design it is very customizable, in order to satisfy a wide variety of needs and use cases. Calamares aims to be easy, usable, beautiful, pragmatic, inclusive and distribution-agnostic. Calamares includes an advanced partitioning feature, with support for both manual and automated partitioning operations. It is the first installer with an automated “Replace Partition” option, which makes it easy to reuse a partition over and over for distribution testing. Got a Linux distribution but no system installer? Grab Calamares, mix and match any number of Calamares modules (or write your own in Python or C++), throw together some branding, package it up and you are ready to ship!

I have just added newest release version (1.1.2) to the tree and in my dev overlay a live version (9999). The underlaying technology stack is mainly Qt5, KDE Frameworks, Python3, YAML and systemd. It’s picked up and of course in evaluation process by several Linux distributions.

You may asking why i have added it to Gentoo then where we have OpenRC as default init system?! You are right at the moment it is not very useful for Gentoo. But for example Sabayon as a downstream of us will (maybe) use it for the next releases, so in the first place it is just a service for our downstreams.

The second reason, there is a discussion on gentoo-dev mailing list at the moment to reboot the Gentoo installer. Instead of creating yet another installer implementation, we have two potential ways to pick it up, which are not mutual exclusive:

1. Write modules to make it work with sysvinit aka OpenRC
2. Solve Bug #482702 – Provide alternative stage3 tarballs using sys-apps/systemd

Have fun!

[1] https://calamares.io/about/
[2] johu dev overlay
[3] gentoo-dev ml – Rebooting the Installer Project
[4] Bug #482702 – Provide alternative stage3 tarballs using sys-apps/systemd

Gentoo’s road to Wayland in KDE

KWin in KDE SC 4.11 will include experimental support for Wayland, as you can read in the official 4.11 Beta 1 announcement:

KWin and Path to Wayland—Intial experimental support for Wayland was added to KWin. KWin also got many OpenGL improvements including support being added for creating an OpenGL 3.1 core context and robustness from using the new functionality provided by the GL_ARB_robustness extension. Numerous KWin optimizations are aimed at reducing CPU and memory overhead in the OpenGL backend. Some desktop effects have been re-written in JavaScript to ease maintenance.

As the Beta 1 is already available in the gentoo kde overlay you may ask what the current state is. You are right it is time to talk about it. I will try to serve you the facts.

Current state

Wayland is already packaged in portage (dev-libs/wayland), thanks to the x11 herd.

johu@elia ~ $ eix -s wayland
[I] dev-libs/wayland
     Available versions:  (~)0.95.0 (~)1.0.6 (~)1.1.0 {doc static-libs}
     Installed versions:  1.1.0(21:54:08 05.06.2013)(-doc -static-libs)
     Homepage:            http://wayland.freedesktop.org/
     Description:         Wayland protocol libraries

KWin 4.11 Beta 1 + KWin master (4.8.10 + 9999 ) has already a build option (USE flag) for wayland.

johu@elia ~ $ eix -s kwin
[I] kde-base/kwin
     Available versions:  (4) 4.10.3 (~)4.10.4 **4.10.49.9999^m[1] [M](~)4.10.80^m[1] (**)9999^m[1]
       {aqua debug gles opengl wayland}
     Installed versions:  9999(4)^m[1](22:14:15 18.06.2013)(gles opengl wayland -aqua -debug)
     Homepage:            http://www.kde.org/
     Description:         KDE window manager

It builds and links already successfully against it.

johu@elia ~ $ scan kwin
dev-libs/wayland-1.1.0
dev-qt/qtcore-4.8.4-r5
dev-qt/qtdbus-4.8.4
dev-qt/qtdeclarative-4.8.4
dev-qt/qtgui-4.8.4-r1
dev-qt/qtscript-4.8.4
kde-base/kactivities-9999
kde-base/kdelibs-9999
kde-base/kwin-9999
kde-base/libkworkspace-9999
kde-base/liboxygenstyle-9999
media-libs/mesa-9.1.3
sys-devel/gcc-4.7.3
sys-libs/glibc-2.17
x11-libs/libICE-1.0.8-r1
x11-libs/libSM-1.2.1-r1
x11-libs/libX11-1.6.0
x11-libs/libxcb-1.9.1
x11-libs/libXcursor-1.1.13-r1
x11-libs/libXdamage-1.1.4-r1
x11-libs/libXext-1.3.2
x11-libs/libXrandr-1.4.1
x11-libs/libXxf86vm-1.1.3
x11-libs/xcb-util-image-0.3.9
x11-libs/xcb-util-keysyms-0.3.9
x11-libs/xcb-util-wm-0.3.9

The USE flag is globally masked for stable systems. As a side note, i realy like the stable use mask feature in EAPI 5.

Next steps

1) We need to package the Wayland compositor aka Weston in portage tree, to start a full blown Wayland session.  This task is already in progress (bug #445736), an ebuild is available in the gentoo x11 overlay. Will be finished soon hopefully.

2) Add a wayland build option (USE flag) for the KDE start script (kde-base/startkde). The USE flag will allow us to ship a modified version of it, so that we can tell KWin to use weston/wayland when starting.

So I am realy sure you will be able to play around with Wayland in starting August when KDE SC 4.11.0 is released and hit the portage tree by simply enabling a USE flag. Are you excited? You should!

Have fun!

Disabling semantic-desktop at runtime

Today we bumped  KDE SC 4.11 beta 1 (4.10.80) in the gentoo kde overlay. The semantic-desktop use flag is dropped in >=kde-base/4.10.80, as you may already noticed or read in dilfridges blog post. So if your hardware is not powerful enough or you just don’t want to use the feature you can easily disable it at runtime.

1. Go to the “System Settings” and search for “Desktop Search”

System Settings

 

2. Uncheck at least the file and email indexer. You can also disable the “Nepomuk Semantic Desktop”.

Desktop Search Settings

Have fun!

 

Update

If you want to disable Akonadi you can check out this blog post.

 

Gentoo Qt Team March 2012 meeting

Date: 25 March 2012
Time: 1300 UTC
Place: #gentoo-meetings @freenode

The full meeting log can be found here. Meeting summary is written by kensington.

1) Roll call
hwoarang, johu, pesa, tampakrap, wired, yngwin

2) Qt 5
* pesa is working on it locally, and started a new eclass from scratch. He’ll
push to the overlay once upstream settles down, probably after a packaged alpha
is released (note that binary compatibility is not guaranteed with the final
release).

* Upstream is planning split tarballs for later releases, and we’re going to
follow that except for qtbase, which will probably be split the same as in Qt 4
– qt-{core,gui,sql,dbus}.

* Need to handle slotting of qmake. Any ebuild calling qmake directly should be
fixed to use eqmake{4,5}. Autotools etc. is sometimes used to detect qmake which
shouldn’t be broken. qmake{4,5} will probably suffice, but we should watch
upstreams / other distros to see what they do, and revisit the issue later.

3) qt4.eclass deprecation
* wired maintains a list of ebuilds still using the class:
http://dev.gentoo.org/~wired/checks/qt4.eclass.html and there are about 60 left
in the tree

* We should try to clear out the ebuilds in testing first. Since there is a
repoman warning, we can start filing bugs / stable requests to get them fixed.

4) Unmaintained/obsolete packages
* qgtkstyle – this is duplicated in qt-gui[gtkstyle]. hwoarang will lastrite it
so it can be treecleaned.

* qvfb – it is stuck at 4.6.3 and nothing in the tree uses it, so we don’t care
about it. Since is has no bugs there’s no need to remove it, so hwoarang will
set it to maintainer-needed.

5) Get eclass translation handling into official tree
* The code in the overlay covers enough cases to make it worth merging it to the
tree. pesa will submit the code to the dev mailing list for review before it it
is merged into qt4-r2.

* With regards to eclass development in the future, we want to change the
workflow to match how the KDE herd does it. That is, replace qt4-edge with
qt4-r2 and use the overlay as a staging area.

6) Open bugs
* Bug #398885 – x11-libs/qt-assistant-4.7.4 qdoc3 loops forever on arm & ppc
This is blocking 4.7.4 stabilising on arm and is therefore a high priority. ppc
already stabilised, so the bug might only affect certain machines. We should
retry the out-of-portage build (see comment #1) and investigate further.

* Bug #367583 – x11-libs/qt-dbus-4.7.2 –
../../include/QtCore/../../src/corelib/arch/qatomic_generic.h:197: error:
invalid conversion from ‘const void*’ to ‘void*’
We have two candidate patches to choose from – one eclass, one code. pesa will
try to get an opinion from upstream about the code patch.

* Bug #401557 – x11-libs/qt-core-4.8 –
hint: qt-4.8 : add a ewarn to recompile cairo *after* qt-4.8
wired will add a warning to either qt-core or qt-gui.

* Bug #398497 – /usr/include/qt4/Gentoo/gentoo-qconfig.h should be under package
manager control
This bug is probably the result of an oversight by the original eclass authors,
and we agree that the file should indeed be under package manager control.

* Bug #372721 – [qt overlay] x11-libs/libmeegotouch-9999 doesn’t compile
Nobody cares about this package, so pesa will remove it from the overlay and
mark it WONTFIX.

* Bug #388551 – x11-libs/qt-gui should depend on gnome-base/libgnomeui-2 when
USE=”gtkstyle” is enabled
During the last meeting we decided to add an elog, but nobody actually did it.

* Bug #285743 – “webkit” USE flag standardization
We decided to do this 2 years ago, but never got around to it. The flag mostly
has two meanings: (1) add support for HTML rendering and (2) build bindings for
WebKit. wired will propose (1) to the dev mailing list: “Enable support for the
WebKit html rendering engine”, and (2) can be a local flag description.

* Bug #404283 – media-gfx/imagemagick – convert: unable to close module `SVG’:
/usr/lib64/qt4/libQtGui.so.4: undefined symbol:
_ZN11QMetaObject11removeGuardEPP7QObject @
warning/module.c/UnregisterModule/1605.
wired will request more information from the reporter.

Gentoo KDE Team March 2012 meeting

Date: 22 March 2012
Time: 2000 UTC
Place: #gentoo-meetings @freenode

The full meeting log can be found here. Meeting summary is written by dastergon.

1) Roll call

alexxy, dilfridge, johu, mschiff, scarabeus, tampakrap

2) Electing a new team leader

nominees:

Accepted: dilfridge, johu
Refused: tampakrap, scarabeus

results:
johu -> dilfridge
dilfridge -> johu
tampakrap -> dilfridge
alexxy -> dilfridge
mschiff -> dilfridge
scarabeus -> dilfridge
———————-
dilfridge:5 – johu:1
———————-
dilfridge is the new KDE team leader with the majority of votes.
Congratulations!!!

3) Dropping RPATH from installed binaries

Add a RPATH entry for every library dir that is not in the system library
directories in ld.conf are not automatically considered as system library
dirs, but only some static list of dirs.
Everyone agreed on RPATH removal. We will introduce a patch with KDE SC 4.8.2
to remove the RPATH and move it to the main tree.

4) Bugs

* Remove hard dep on media-libs/phonon from kde-base/kdelibs
https://bugs.gentoo.org/show_bug.cgi?id=356681
https://bugs.gentoo.org/show_bug.cgi?id=388041
Upstream says “technically you can replace phonon with qt-phonon, but that’s
just stupid because you lose functionality”. Another argument against it, is
that qt-phonon will be removed with qt5. We wont fix the bug and keep phonon as
hard dep. johu will take care of the bug after meeting summary is available.

* Eclass problem with handbook without LINGUAS.
https://bugs.gentoo.org/show_bug.cgi?id=372457
The handbook eclass code is pretty confusing for all in meeting present
members. It was written by reavertm. We decided that we will mail reveartm to
fix handbook eclass code, because he has the most knowledge in it. dilfridge
will take care of contacting him, it’s his first lead task.

* Revise the change “semantic-desktop? -> semantic-desktop=”.
https://bugs.gentoo.org/show_bug.cgi?id=396491
Some packages rely on semantic-desktop capabilities in other ones. tampakrap
is volunteers to take care of the bug.

5) Open floor

* KDE 4.8 stabilization
KWin does not build anymore without opengl support. kde-base/kmail-4.8.1
crashes, but upstream patch can be backported. KDE SC 4.8.1 has tons of
bugfixes, compared to to 4.8.0. The majority votes for KDE 4.8.1 as stable
candidate. johu will prepare stabilization.

* Test failures
creffett brought up dbus-related test failures. johu recommended to get
virtual-dbus eclass running. dilfridge suggested if one or two test fails
or restrict. The problems with virtual-dbus is that you can’t run bash
commands in it’s environment. creffett will be responsible for this.

* New members
Welcome to three new members of the project: creffett, kensington and
dastergon. They are in the process to become gentoo developer and mentored by
tampakrap. creffett and kensington have already open ‘new developer’ bug.
dastergon doesn’t have an open bug yet.

* Comeback
scarabeus re-joined KDE herd. Welcome back!!!

* Reduced work time
mschiff mentioned that he will not have much time for the KDE herd due to
real life priorities, he will be back in may. tampakrap will spent most of his
time for gentoo infra team.

Meeting bits

Yesterday (2012/01/16 20:00 UTC) we had the first Gentoo KDE team meeting this year. The meeting happened in #gentoo-meetings on freenode.

  • Participants: alexxy, dilfridge, jmbsvicetto, johu, mschiff, tampakrap, Thev00d00
  • Agenda
  • Log
  • Lead election is delayed, because 12 months not over
  • We keep kdepim-4.4 in tree as long as it works and provide kdepim-l10n package
  • Kdeenablefinal build feature will be removed today
  • Phonon xine backend will be removed in 15 days
  • We expect no big issues with Qt 4.8,  only kdenlive is not building at the moment
  • eselect boost vs. latest boost is not a Gentoo KDE scope only issue, we will move the discussion to the gentoo-dev mailing list
  • … read log 😛 or wait for the full summary by tampakrap
  • My netbook had a kernel panic while the meeting  :-/
After the meeting i joined the Gentoo Qt team.

From beginner to Gentoo developer

This is my first step in blogging universe. I did that never before and hope my english isn’t to bad. The reason, why i decided to blog from now on, is that i reached the Gentoo developer state. Which gives me the chance to get a central theme to write. My personal goal is at least one post per month, maybe a little bit more if there is something i want to share. For sure the content of this blog won’t be Gentoo only related.

Lets talk about the way i became a Gentoo developer. I get  in touch with Linux in the end  of 2001. The reason why i tried out linux was that i want to discover something new in the computer world. New in the meaning of gain experience. So the first distribution was SuSe linux. Followed up by Debian, Red Hat, Mandrake and some other that i forgot in the meantime. None of these really satisfyed me. In 2003 i heard about a Linux distribution with a very good package manager, a good written installation handbook and all packages build from source. The name of the distrubution was Gentoo, as you may have already guessed. I was really enthusiastic about it, started the installation and felt in love. In the first years of using it, i had tried out other distributions  on seperate partions from time to time. But whenever i have done this, the partion is faster deleted as you can count to three.

While my time as Gentoo user i tried out several window manager/desktop environments. First was Gnome which i had have no longer than 1 week. It was to slow (yeah my former pc was not that good) and i didn’t like the handling at all. So i decided to take a light weight window manager. I tested White-, Black-, Open- and Fluxbox, choosen the last mentioned finally. After several time and new hardware i wanted something new and found XFCE. I liked it very much and sticked with it a long time. A friend convinced me to have a look at KDE 3.5, but after short testing period i had the feeling that XFCE is much better and switched back. With one exception to the other window manager/desktop environments experiences: didn’t unmerge it, because i used a lot of KDE apps from this time on and wanted to give KDE a chance with newer versions. As KDE 4.0 was released, i know that this would be my next desktop environmet and finally switched over with KDE 4.1.

I used IRC all the time, but with KDE my old IRC client XChat felt not so integrated into the desktop, so i searched for a new one and found Quassel. After some time i started to contribute to this opensource project (bug triaging, wiki & code contributions) and got an core account, which gaves me the posibility to idle in several gentoo related channels and of course one them was #gentoo-kde. In July this year i made some contributions to the kde overlay. The Gentoo KDE project lead tampakrap gave me write access to the overlay and asked me very quickly, if I want to become a Gentoo developer and that he would mentor me. I was surprised and honored, so my fast answer was “why not?”. After some weeks i started the ebuild quiz and finished it in September and started with the end quiz in mid October. While the end quiz we decided to switch over to the Gentoo recruiters web application (the usability is not so good at the moment) and  he created the “New Developer” bug. In the start of November all questions were approved by him, so the waiting period for a recruiter started. On 2011-12-01 the Gentoo recruiter hwoarang picked me up. The recruiting process was finished on 2011-12-07, after the third & final review session.  The official mailing list announcement was done  one day later on 2011-12-08.

My special thank goes to my mentor Theo “tampakrap” Chatzimichos. He has done his job as mentor wonderful. I have no comparison to other mentors, but i can say that he is the best :). If he make the offer to mentor you, i can truly say, just do it™. And of course i want to thank  all the members out of the Gentoo KDE project for the support and my recruiter hwoarang for pick me up & recruiting me finally.