Build-Tool Version 0.4.0 Released

Version 0.4.0 is available for update from rubygems.org. Have a look at the changelog

There are two features. Colorized output for better readability and a progressbar when compiling/installing.

The release lays the groundwork to work around the cmake issue with rpath handling when installing in different prefixes i mentioned in my last blog post. I will push the necessary changes to the receipe today. The solution is set -rpath-link correctly. It's done like this (from my setup):

CMAKE_EXE_LINKER_FLAGS
-Wl,-rpath-link,/kde/trunk/support/lib64
CMAKE_MODULE_LINKER_FLAGS
-Wl,-rpath-link,/kde/trunk/support/lib64
CMAKE_SHARED_LINKER_FLAGS
-Wl,-rpath-link,/kde/trunk/support/lib64

Mike

Build-Tool Version 0.3.3 released

I just released the version 0.3.3 of build-tool. Have a look at the changelog.

I'm currently thinking about a new minor version. The next feature i would like to add is to automate the after installation stuff. When building and installing packages as a non root user one often misses out on some important features because of some not as setuid root installed scripts programms. build-tool has currently rudimentary support for it with the finish_installation.sh file. But i would like to have the support more automatic. Like it is currently done with qts syncqt script. Which is automatically called after each rebase.

The idea is to allow for some kind of after installation hooks in recipes. Those should be scripts that are automatically run whenever an installation happened. The script should have two modes. First the "is something to do mode". The script for kdelibs for workspace for example checks if the installed kcheckpass script is setuid root (that one is needed for relogin after locking you screen). build-tool runs all the scripts and collects the ones which signal there is something to do. When all modules were build and installed it will run those with sudo in the 'do it' mode. The reason why it is done at the end is because if not one would have to sit in front of the terminal in case the script wants the admin password.

I even think about installing scripts like /usr/share/xsession/kdetrunk.session from workspaces after installation script. Which would allow for automatic inclusion of the kde trunk session into your existing login manager.

On the recipe front i added kupdateapplet (but there are some merge request pending before it is usable) and dbus. The dbus versions before 1.3 have a bug that makes krunner crash very often. And 1.3 is not available for most distros. So it's now possible to compile dbus yourself and enjoy an more stable kde. But to be on the safe side you would have to reconfigure and recompile most of your self compiled packages. So beware.

On the negative side i found out about a limitation of cmake that makes the setup i currently use in build-tool to build kde not always work (or more preicisely to accidently work). The link interface changes mean that sometimes not all needed directories will be picked up and added to a linker command. Effectively meaning your distro libraries or in case of phonon the qt phonon packages will be picked up instead. In case of additions to the abi that means the linking can fail. The kdesupport phonon for example has a new method added so the qt lib will not satisfy all symbols. To be clear. This is only a problem on linking not on compiling so it is not enough to remove devel packages.

So the minute i found out how to activate the full linker interface again i will push that change. Google did not help me yet.

Build-Tool Version 0.3.2 released

I just released Version 0.3.2. Update as usual with sudo gem update

There are two important bugfixes.

  • Fetching qt failed because it tried to fetch from a pure server url. You need to update your recipe too.
  • SQLite3 obviously starts to enforce foreign key constraints. After updating to OpenSuSE 11.3 build-tool failed for me because the constrained i declared had a typo. Was never a problem before (for me). Remove all ~/.build-tool/*.db files to get going again if you encounter the problem.

Build Tool Version 0.3.1 released

I have just released build-tool v0.3.1. It contains only small changes. The only new feature is qmake support which is needed for qt/qoauth support.

There are many changes to the recipe because of all the svn -> gitorious -> git.kde.org moves. Fetch them with kde-build incoming -f and review them carefully. There is manually intervention needed. Have a preview here kde-trunk-recipe activities. I hope i catched them all but who knows. If someting is not working ping me.

Build-Tool 0.3 Release

I have released version 0.3 of build-tool. As promised last time this release makes it possible to maintain the recipes separately from the code. Build-Tool comes without recipes starting with this release.

Upgrading

To upgrade use sudo gem update build-tool. If you are currently using the kde recipe issue build-tool recipe add git://gitorious.org/build-tool/kde-trunk-recipe.git kde after the update. This will install the kde recipe from the given git repository under the name kde - which is the name it used when bundled with build-tool.

The recipes from now on are just directories under ~/.build-tool/recipes . Check now because you have to manually update the recipe from now on to be up to date. Whenever something changes in kde land i will adapt the recipe and push the changes to gitorious. The command recipe incoming will show you if there are changes available. But you have to update/rebase the recipe manually. You have to carefully review the changes for steps you have to do manually.

To fetch the latest changes to the recipe without making them active issue kde-build recipes incoming -f. This does git fetch origin behind the scene in ~/.build-tool/recipes/kde. An example output:


f70d9c762d9f72c8759cfc32ed882694a9240bbc
Author: Michael Jansen
Date:   Tue Jun 22 15:11:57 2010 +0200

    Konversation moved to git.kde.org.
    
    NEEDS ACTION: Edit .git/config . Change to
    
    ...
    [remote "origin"]
        url = git@git.kde.org:/konversation/konversation.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    ...

commit aaaae3c563ecb022a5bdce7032899ca19194589c
Author: Michael Jansen
Date:   Tue Jun 22 15:10:17 2010 +0200

    Amarok moved to git.kde.org.
    
    NEEDS ACTION: Edit .git/config . Change to
    
    ...
    [remote "origin"]
        url = git@git.kde.org:amarok/amarok.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    ...
.

To just review the pending changes without fetching omit the -f(fetch) option.

To make the changes active go to ~/.build-tool/recipes/kde and issue git rebase origin/master. Make sure you have done all manually needed steps when doing that. Remember this is a developer tool.

Build-Tool 0.2 release

I have just release build-tool version 0.2 . Apart from many changes to the recipe there are some small features added. Have a look at the documentation how to use it.

Here is the list of the supported modules with all features enabled.

qt/qt                          : no description
qt/qimageblitz                 : no description
qt/qca2                        : no description
qt/qtscriptgenerator           : no description
qt/poppler                     : no description
qt/qjson                       : no description
kdesupport/automoc             : no description
kdesupport/polkit-qt           : no description
kdesupport/soprano             : no description
kdesupport/akonadi             : no description
kdesupport/phonon              : no description
kdesupport/dbusmenu-qt         : no description
kdesupport/strigi              : no description
kdesupport/attica              : no description
kdesupport/oscaf               : no description
kdesupport/taglib              : no description
kdesupport/taglib-extras       : no description
scripting/sip                  : no description
scripting/pyqt4                : no description
kdesupport/oxygen-icons        : no description
KDE/kdelibs                    : no description
KDE/kwebkitpart                : no description
KDE/kdepimlibs                 : no description
KDE/pykde4                     : no description
KDE/kdebase/runtime            : no description
KDE/kdebase/workspace          : no description
KDE/kdebase/apps               : no description
KDE/kdepim                     : no description
multimedia/kdemultimedia       : no description
multimedia/k3b                 : no description
multimedia/kaffeine            : no description
multimedia/kmplayer            : no description
multimedia/amarok              : no description
graphics/kdegraphics           : no description
graphics/digikam               : no description
graphics/kipi-plugins          : no description
graphics/kphotoalbum           : no description
graphics/skanlite              : no description
network/kdenetwork             : no description
network/konversation           : no description
network/knemo                  : no description
network/choqok                 : no description
network/libktorrent            : no description
network/ktorrent               : no description
network/kbluetooth             : no description
network/kepas                  : no description
network/rekonq                 : no description
utils/kdeutils                 : no description
utils/yakuake                  : no description
utils/kdiff3                   : no description
utils/krusader                 : no description
plasma/kdeplasma-addons        : no description
plasma/nepomuk-kde             : no description
plasma/dataengines/clipboard   : no description
plasma/dataengines/contacts    : no description
plasma/dataengines/geolocation-wifi : no description
plasma/dataengines/hellanzb    : no description
plasma/dataengines/kiobrowser  : no description
plasma/dataengines/lancelot    : no description
plasma/dataengines/mythtv      : no description
plasma/dataengines/nepomuktags : no description
plasma/dataengines/presence    : no description
plasma/dataengines/publictransport : no description
plasma/dataengines/sensors     : no description
plasma/dataengines/stocksengine : no description
plasma/dataengines/timetracker : no description
plasma/dataengines/translator  : no description
plasma/applets/activewindowcontrol : no description
plasma/applets/adjustableclock : no description
plasma/applets/blackboard      : no description
plasma/applets/cia.vc          : no description
plasma/applets/cmake           : no description
plasma/applets/commandwatch    : no description
plasma/applets/contacts        : no description
plasma/applets/cpufrequency-selector : no description
plasma/applets/crystal         : no description
plasma/applets/darkstat        : no description
plasma/applets/debugapplet     : no description
plasma/applets/desktop         : no description
plasma/applets/embed-win       : no description
plasma/applets/embedded-ivan   : no description
plasma/applets/fancytasks      : no description
plasma/applets/flippoid        : no description
plasma/applets/fortunoid       : no description
plasma/applets/grid            : no description
plasma/applets/groupphoto      : no description
plasma/applets/java            : no description
plasma/applets/kbstateapplet   : no description
plasma/applets/kconfigmenu     : no description
plasma/applets/keren           : no description
plasma/applets/keyboardLeds    : no description
plasma/applets/keystatejs      : no description
plasma/applets/killswitch      : no description
plasma/applets/knowledgebase   : no description
plasma/applets/konsolator      : no description
plasma/applets/kuickquiz       : no description
plasma/applets/lionmail        : no description
plasma/applets/meltdown        : no description
plasma/applets/menubar         : no description
plasma/applets/mid_control     : no description
plasma/applets/miniplayer      : no description
plasma/applets/moodbar         : no description
plasma/applets/nepomuktags     : no description
plasma/applets/network         : no description
plasma/applets/openbrain       : no description
plasma/applets/panelspacer     : no description
plasma/applets/peachydock      : no description
plasma/applets/plasmaboard     : no description
plasma/applets/plasmobiff      : no description
plasma/applets/presence        : no description
plasma/applets/rotator         : no description
plasma/applets/runcommand      : no description
plasma/applets/script          : no description
plasma/applets/serverhotlink   : no description
plasma/applets/slideInSlideOut : no description
plasma/applets/spellcheck      : no description
plasma/applets/stockwidget     : no description
plasma/applets/suspend-applet  : no description
plasma/applets/svgpaneltest    : no description
plasma/applets/systemcommand   : no description
plasma/applets/test            : no description
plasma/applets/timeline        : no description
plasma/applets/timetracker     : no description
plasma/applets/toggle-compositing : no description
plasma/applets/togglepanel     : no description
plasma/applets/train-clock     : no description
plasma/applets/translatoid     : no description
plasma/applets/victorycalendar : no description
plasma/applets/webapp          : no description
plasma/applets/welcome         : no description
plasma/applets/wifi-signal-strength : no description
plasma/applets/windowlist      : no description
plasma/applets/windows-startmenu : no description
devel/kdesdk                   : no description
devel/kde-common               : no description
devel/binspekt                 : no description
devel/icecream                 : no description
devel/icemon                   : no description
kdevelop/kdevplatform          : no description
kdevelop/kdevelop              : no description
kdevelop/plugins/kdevelop-pg-qt : no description
kdevelop/plugins/duchainviewer : no description
kdevelop/plugins/qtdesigner    : no description
kdevelop/plugins/qmake         : no description
kdevelop/plugins/git           : no description
kdevelop/plugins/okteta        : no description
kdevelop/plugins/includemanager : no description
kdevelop/plugins/metrics       : no description
kdevelop/plugins/preprocessor  : no description
kdevelop/plugins/ruby          : no description
kdevelop/plugins/valgrind      : no description
kdevelop/plugins/python        : no description
kdevelop/plugins/sloc          : no description
kdevelop/plugins/executebrowser : no description
kdevelop/plugins/executescript : no description
kdevelop/plugins/gettersetter  : no description
office/koffice                 : no description
office/kile                    : no description
office/tellico                 : no description
kdebindings                    : no description
l10n/scripts                   : no description
webdev/quanta                  : no description
webdev/php                     : no description
webdev/php-docs                : no description
webdev/upload                  : no description
finance/kmymoney               : no description
finance/skrooge                : no description
finance/kraft                  : no description
kdeedu                         : no description
kdegames                       : no description
l10n/de                        : no description
utils/basket                   : no description

I'm running on trunk since about a year with that tool and nearly all of the modules above compiled. You should only try that with appropriate hardware.

The next version will finally split the script from the recipes. The planned use case is

$ build-tool recipe add git@gitorious.org/build-tool/recipe-kde.git | svn+https://.... kde
$ build-tool recipe install kde
$ kde-build build ....
$ .....
$ kde-build recipe status
[Fetches from server and shows a log of all changes made to the recipe]
$ kde-build recipe update
[Rebases your recipe so you are up to date from now on]

It's not planned btw to supply upgrade scripts. You are supposed to carefully check the recipe status for changes that require manual intervention. Like another module moved to some git repo which requires you too remove your old checkout. This is a developer tool.

I will move the script to gitorious for the next release btw.

Build-Tool 0.1.4 released

Adjust the recipe to konversations move to git. No other changes.

If you installed build-tool as a gem just issue sudo gem update build-tool.

The tool does not migrate automatically. To migrate delete ( or move ) the previous konversation checkout, then rebuild konversation with kde-build build -u --from-scratch network/konversation.

Ruby 1.8 required

Build-tool requires ruby 1.8 for now. When i started it ruby 1.9 was still seen unfit for production use and noone was able to estimate how long it would be that way. It doesn't work with 1.9 currently and as long as opensuse doesn't provide a 1.9 package it will stay that way.

Build-Tool Tracker

Just a short notice that i opened the rubyforge tracker for build-tool. You can submit bug reports, feature request and patches for build-tool.

Build Tool Version 0.1.3 released

As some of you out there probably heard i'm developing a ruby based build-tool in the style of kdesvn-build. This is actually the third version i'm currently working on. First was an attempt in python. But my brain is incompatible with python. Then the first attempt in ruby with yaml based configuration files. Which really didn't work. This time with a custom configuration file format with a properly (i hope) done parser.

The script differs from from kdesvn-build in mostly two ways

  • I don't follow the one script rule. The script is released as a rubygem.
  • The script is able to build more than kde. It supports the notion of recipe which tell it what to do.

This time i wrote more or less extensive documentation about the script. If you have problems or find flaws or gaps in the documentation do no hesitate to point it out to me.

The script comes with three recipes included

KDE QT 4.6
A recipe to build qt from the kdeqt repository. The additionaly needed qtscriptgenerator, qca, poppler and qimageblitz can be compiled too.
KDE Trunk
A recipe to build kde from trunk. The list of supported and buildable modules is fairly extensive. Some modules from extragear, playground are available too.
KDE 4.3
A recipe to build the kde 4.3 branches. Only the released modules are part of the recipe.

Today i made the 0.1.3 release. I consider the script suitable for public use now. See the documentation how to get it.

We are done.

We have done it. Just lay back and glow in what we achieved: Kontact/khtml are on par with Outlook/Internet Explorer

That looks SOOOO convincing.

Syndicate content