build-tool

Build-Tool Recipe Update: KDEPIM Google Resource

As you probably read kdepim-runtime has gained some new optional dependencies for akonadi google resources and a overhauled kolab resource. I just added them to the build-tool recipe.

The origin announcement is this email from allen winter.

Mike

Build Tool Recipe Update: KDE Multimedia Migration

The migration of the KDE Multimedia sources to git.kde.org is finally done. I just pushed the required changes to the build-tool recipe.

All moved modules compile for me. The only one in multimedia that does not is Amarok and that is only to remind me to finally fix the FindMySQL.cmake mess we made.

Before you update your recipe remove the old kdemultimedia checkout completely. Make sure you do not have local changes / commits you would miss.

  1. # Remove the old checkout and build dir
  2. $ kde-build module cleanup --rm-both kdemultimedia
  3. [...]
  4. # Update the recipe (one step this time: )
  5. $ kde-build recipe incoming --rebase --fetch
  6. [...]
  7. # Check the new state of multimedia
  8. $ kde-build lsfeat multimedia
  9. [...]
  10. # Enable / Disable stuff and build it

The next recipe changes will be pim related. I noticed that part of the recipe did not receive much love recently.

Build-Tool Recipe Update: Telepathy

Since telepathy went beta i think it really is time to add it to the recipe. Which i have done now. To make it work i had to move two modules from the "kdesupport/" feature to the "kdeqt" feature. Automoc and qt-gstreamer have been moved because the later one provides QtGLib which is required by some of the telepathy qt bindings.

So before rebasing your recipe remove the old build and source dirs (or move the source dir).

The new feature contains quite some modules. Most of them are enabled by default. telepathy-qt and telepathy-logger-qt are disabled by default because some of you probably use a distro provided qt and prefer to use distro packages for these.

  1. [ bash : 1016 ] $ kde-build lsfeat network/telepathy
  2. network/telepathy : 
  3. Active : A (Parent network: A)
  4.  
  5. Modules
  6. ====================================================
  7. IS qt/telepathy/telepathy-qt           : Qt Wrapper around telepathy.
  8. I? qt/telepathy/telepathy-logger-qt    : Qt Wrapper around TpLogger client library.
  9. A? network/telepathy/ktp-common-internals : Git submodule containing re-used KDE Telepathy Parts.
  10. A? network/telepathy/ktp-accounts-kcm  : KCM Module for configuring Telepathy Instant Messaging Accounts.
  11. A? network/telepathy/ktp-contact-list  : Telepathy contact list application.
  12. A? network/telepathy/ktp-contact-applet : Telepathy contact list applet.
  13. A? network/telepathy/ktp-contact-runner : Telepathy krunner integration.
  14. A? network/telepathy/ktp-text-ui       : Telepathy handler for Text Chats.
  15. A? network/telepathy/ktp-approver      : KDE Channel Approver for Telepathy.
  16. A? network/telepathy/ktp-kded-module   : KDE System integration.
  17. A? network/telepathy/ktp-auth-handler  : UI/KWallet Integration For Passwords and SSL Errors on Account Connect.
  18. A? network/telepathy/ktp-presence-applet : Plasma applet for managing your Telepathy account presence.
  19. A? network/telepathy/ktp-filetransfer-handler : Telepathy file transfer handler.
  20. A? network/telepathy/ktp-send-file     : File manager plugin to launch a file transfer job with a specified contact.
  21. A? network/telepathy/ktp-call-ui       : Voice/Video Call UI for Telepathy.

For me the state is that all of them compile except telepathy-logger-qt because my distro (opensuse) has one to old prerequisite that is successfully found and accepted. It is just missing some include files. That in turn means ktp-call-ui is uncompilable for me too.

The rest does and works like a charm and shows much promise. Even if i have not installed it into /usr. The telepathy page on Community.kde.org says it should not work, but it does here. But perhaps some obscure bugs can happen under this setup.

Build-Tool Recipe Update: Quanta

After the work on kdevelop i noticed there is a bit of duplication between quanta and kdevelop. I therefore merged the two. Which means the webdev feature is no more. The parts are available as kdevelop plugins now.

I moved quanta to kdevelop/quanta. It is kind of unmaintained as far as i know so it is disabled by default. Unless you want to work on it i think it makes no sense to build it either. If you disagree please complain in the comments and i will update that post accordingly.

Do not forget to remove all old directories before rebasing your recipe. As usual (learning by repetition) the update cycle should be

  1. # Fetch the newest changes and review the comments.
  2. $ recipe incoming -f
  3. [....]
  4. # Make the required migration steps
  5. $ module cleanup --rm-both webdev/
  6. # Rebase your recipe
  7. $ recipe incoming -r
  8. [....]
  9. # Enable new feature or modules, build ....

Build-Tool Recipe Update: KDevelop

The kdevelop support got quite some changes.

Obsolete Modules

The kdevelop git plugin is not needed anymore. It is part of kdevelop core. The same goes for the okteta plugin. So clean them up before rebasing your recipe:

  1. $ module cleanup --rm-both kdevelop/plugins/git kdevelop/plugins/okteta

Feature PHP Language Support

KDevelop has good support for php development. I added the required plugins as a feature.

  1. [ bash : 1008 ] $ kde-build lsfeat kdevelop/plugins/php
  2. kdevelop/plugins/php : PHP language support for kdevelop/quanta
  3. Active : A (Parent plugins: A)
  4.  
  5. Modules
  6. ====================================================
  7. A? kdevelop/php/kdev-php               : PHP language plugin for kdevelop/quanta.
  8. A? kdevelop/php/kdev-php-docs          : PHP documentation plugin for kdevelop/quanta.
  9. A? kdevelop/php/kdev-xdebug            : KDevelop debugger plugin for php using xdebug.

The executebrowser plugins is needed too. So the commands required to build this stuff are:

  1. [ bash : 1010 ] $ kde-build module enable  kdevelop/plugins/kdev-executebrowser
  2. #### Checking for obstacles
  3. finished:      100% ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Time: 00:00:00
  4.  
  5. #### Module kdevelop/plugins/kdev-executebrowser (1/1)
  6. kdevelop/plugins/kdev-executebrowser: enabled explicitely.
  7. #### Module kdevelop/plugins/kdev-executebrowser finished
  8.  
  9. #### Finished without errors
  10.  
  11. [ bash : 1009 ] $ kde-build feature enable kdevelop/plugins/php
  12. php                                : enabled explicitely.

KDevelop VCS Support

I added a feature with additional kdevelop version control related modules (mercurial, perforce and bazaar).

  1. [ bash : 1011 ] $ kde-build lsfeat kdevelop/plugins/vcs
  2. kdevelop/plugins/vcs : VCS support for kdevelop
  3. Active : A (Parent plugins: A)
  4.  
  5. Modules
  6. ====================================================
  7. I? kdevelop/vcs/kdev-mercurial         : Mercurial support for kdevelop.
  8. I? kdevelop/vcs/kdev-perforce          : Perforce support for kdevelop.
  9. I? kdevelop/vcs/kdev-bazaar            : Bazaar support for kdevelop.

Enable what you need/want

Ruby Language Support

The ruby plugin moved to git.kde.org. Probably month ago. I do not like the idea of git-svn to fail silently if the subversion path it follows is removed. Anyway. Remove the old build and source directory and rebuild from scratch. I took the opportunity to rename it from ruby to kdev-ruby to match the name used on projects.kde.org.

Build-Tool Recipe Update: Reviewboard

KDE automatically adds a entry in KDE Git Reviewboard for all git project repositories hosted on projects.kde.org.

On techbase there is a tutorial that describes how to use reviewboard with git.kde.org. The recommended setup with post-review requires a a locally set git config variable. I changed the recipe so that build-tool will do that for you.

Build Tool Recipe Updated

Module finance/kraft removed

I removed finance/kraft because it never compiled for me. In case you miss it complain.

Scripting/Binding Stuff consolidated<

The bindings stuff was kind of messy because when i did it i had no real clue about it. I took the time to clean up. But that makes it necessary to move some stuff around if you compile it currently.

The workflow should be:

  1. # First update the recipe to see the changes.
  2. [ bash : 1079 ] $ kde-build recipe incoming -f
  3. Fetching
  4. commit 65c5bfb491c3a51740b9551f8b840fcdd5050384 (refs/remotes/origin/build-tool-0.6)
  5. Author: Michael Jansen <kde@michael-jansen.biz>
  6. Date:   Mon Apr 16 16:04:37 2012 +0200
  7.  
  8.     Move smoke from feature bindings to bindings/smoke.
  9.  
  10.     NEEDS ACTION: If you compile smoke enable feature bindings/smoke
  11.  
  12. commit 35016bf6b4e323764d327980e196d0ae4c19c0fc
  13. Author: Michael Jansen <kde@michael-jansen.biz>
  14. Date:   Mon Apr 16 15:36:44 2012 +0200
  15.  
  16.     Clean up the scripting/ binding/ mess i made.
  17.  
  18.     The kross-interpreters repository was missing. From now on this is the only one
  19.     in scripting/ . The python stuff was moved to feature "bindings/python" and
  20.     module path python/...
  21.  
  22.     NEEDS ACTION:
  23.  
  24.     If you build that stuff do the following before rebasing your recipe.
  25.  
  26.     # Remove the build directories for stuff that will be moved.
  27.     $ kde-build module clean --rm-bld scripting/ pykde4
  28.  
  29.     # Move the checkouts to the new path
  30.     $ mkdir src/python
  31.     $ mv src/KDE/pykde4 src/python
  32.     # While here remove old packages from src/scripting before moving
  33.     $ mv src/scripting/* src/python
  34.  
  35.     # Enable feature bindings/python
  36.     $ kde-build feature enable bindings/python
  37.  
  38.     # Feature scripting should be enabled already.
  39.  
  40. # Read the comments carefully and if you have to make the required changes that have to be
  41. # done before the recipe is updated (Like removing the builds and checkouts of modules that
  42. # will be removed.). Then rebase your recipe and do those that require the new modules.
  43. [ bash : 1079 ] $ kde-build recipe incoming -r
  44. [...]

So how does that stuff work now?

Feature scripting

This feature only contains the kross module. It is needed to enable in application scripting support. This is used in kate, kdevelop and plasma for example. It is possible to write python scripts for the application with this. The script will not support import PyKDE4. Instead GUI code has to be written using the kross forms module.

You have to build and install the binding to support the import PyKDE4 style of gui handling. Which is necessarily a rather heavy handed requirement for application scripting support.

Feature bindings

This feature has no module but some sub features.

  1. [ bash : 1085 ] $ kde-build lsfeat bindings
  2. bindings : KDE Language Bindings.
  3. Active : A
  4.  
  5. Features
  6. ====================================================
  7. I bindings/perl                       : Perl bindings
  8. A bindings/python                     : Python bindings.
  9. I bindings/ruby                       : Ruby bindings
  10. A bindings/smoke                      : SMOKE is a introspective wrapper around the Qt and KDE frameworks.
  11.  
  12. Modules
  13. ====================================================

Just enable this feature and all required child features to build the bindings you want. Some of them require smoke, some not. Of those i provided only python does not require smoke.

Build Tool Version 0.6.2 released

Just pushed version 0.6.2 to rubygems. For a full changelog see Changelog or read on for an overview.

Bugfixes

Two severe bugs were fixed.

  1. The git-svn code tried to clone the complete history on the initial clone.
  2. module enable MODULE failed to save the changes. Which meant it did not work.

Some other minor bugs were fixed too.

Enhancements

The command module list gained an option --outdated that list the modules sorted by the date of their last successful build.

Features

It is now possible to execute a single command in the build environment. The commands module shell and environment set have a new option -c --command COMMAND. The given shell command COMMAND is executed. The commands return with the return code of the execute command.

The command kde-build module shell -c 'kate' KDE/kdebase/kate starts kate in the build environment of the kate module.

Build Tool Version 0.6.1 released

I just pushed revision 0.6.1 to rubygems. It contains only one bugfix. The qt build-system failed over a missing flags option.

As usual update with gem update build-tool.

Build-Tool Recipe: Plasma Shells added

Most of the newest additions to the kde recipe have a plasma background. Perhaps you saw the recent announcements about Plasma Active and Plasma mediacenter. I did. And i reminded me that there is so much stuff in the plasma world build-tool does not support. So i went to remedy that.

Plasma Mediacenter

Plasma Mediacenter was added as plasma/plasma-mediacenter. It required QtMobility as a runtime dependency so i added that one as qt/mobility too.

It looks like plasma-mediacenter can be run without harm from a plasma-desktop session.

Plasma Active

This one is a different beast. I added it as plasma/plasma-active. When i ran it it i managed to have all my currently running applications closed. So take care when using it. Perhaps first try to find out how it is supposed to used on a desktop.

Allways remember: I only provide the build script. For using it properly and correctly you are responsible yourself.

Scripting Stuff

Some plasmoids are made with python. The requirements to run them are available under the scripting/ prefix if the scripting/python feature is enabled.

Just compile that stuff. It is only a runtime dependency.

Some changes where necessary there. SIP now provides a mercurial repository. So we use that one instead of downloading the source code package. PyQT4 is still only available as a package so i have to adjust the recipe from time to time to download the newest version. If i forget ping me or make a merge request on gitorious.

Just a hint: More plasmoids are available in the module plasma/kdeplasma-addons(part of the plasma feature).

Mike

Recent comments