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):
Mike
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.
I just released Version 0.3.2. Update as usual with sudo gem update
There are two important bugfixes.
~/.build-tool/*.db files to get going again if you encounter the problem.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.
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.
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.
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.
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.
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.
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.
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
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
Today i made the 0.1.3 release. I consider the script suitable for public use now. See the documentation how to get it.
A week ago i started hacking on a python based kdesvn-build substitution. I did that for two reasons:
Today i proudly present build-tool. It's not nearly feature complete but it does it's job. And i would like to get some feedback. Keep in mind that it's alpha quality. Noone else but me used it until now. So expect some failures.