Strict Standards: Redefining already defined constructor for class wpdb in /www/htdocs/w006f36b/wp-includes/wp-db.php on line 49

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w006f36b/wp-includes/cache.php on line 35

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /www/htdocs/w006f36b/wp-includes/cache.php on line 400

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 553

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 674

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w006f36b/wp-includes/query.php on line 15

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w006f36b/wp-includes/theme.php on line 505
MauriceK, caught between dev and drums » Haiku

January 26, 2009

Ouch, that late?

Category: General, Music, Spare Time, Development, Haiku — kaldor @ 8:39 am

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w006f36b/wp-includes/formatting.php on line 76

Wow, more than half a year again, between two posts. I won’t start apologizing, things like this loose their impact, when you say them too often.

So, what am I up to currently?

Spare Time:

  • Searching for a band to play drums in Berlin, anyone who wants to play something between Opeth, Arch Enemy and Strapping Young Lad?
  • Still doing my piano lessons
  • Still expanding my DVD collection

Anything coding related?

  • More accidently I kind of contributed here, among other commits and joined the KDE on Windows project. This is mostly work related, but as I am searching for a new audio player on Windows, I have to admit, that amarok2 on windows is really cool. Using Qt 4.5 is still breaking some stuff, this is what I’ll try to investigate on during the coming weeks.
  • Haiku related? Hm… nothing serious to talk about, see this screenshot and try to remember, from where you might know this application:

yay a clock

I think that was basically it. I won’t start telling that I’ll write more often, you know that this won’t happen :D

July 24, 2008

Building Haiku on Windows, Step by Step

Category: Development, Haiku — kaldor @ 12:23 am

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w006f36b/wp-includes/formatting.php on line 76

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w006f36b/wp-includes/formatting.php on line 83

Uhm… this topic sounds familiar, right? But wait, Windows? Yup, so far it was only possible to build Haiku from R5, Linux, FreeBSD, MacOS and sometimes (though these times seem to increase lately) Haiku itself. Karsten and I put some effort in the buildsystem and some other parts of the repository to get Haiku compiling from a Cygwin environment on Windows.

First some notes of what you need to take care about, before you start:

  • You need lots of packages from the Cygwin installer to have Haiku successfully build. Unfortunately I was too lazy and installed a complete package. Thus I suggest you to do the same.
  • On Windows Vista be sure to have the command prompt open as Administrator. Otherwise many operations will fail, you cannot even call ‘ping’ without needing admin rights.
  • Be sure to not have any special characters in your PATH environment like ‘(’ or such. Also spaces inside the path names are invalid on cygwin. Change your environment accordingly.
  • This will only create images for you, you cannot use it to create/update real partitions on your hard-drive.

Ok, after you have taken care of all above points, let us start.

1. Before you are able to checkout the source code, you will need a managed drive. Read here for further details, basically it is to have a case sensitive filesystem on Cygwin. Otherwise the compiler will horribly fail eg. Including string.h and String.h.

mkdir /managed-dir
mount -o managed c:/cygwin/managed-dir /managed-dir
cd /managed-dir/

2. Create the Haiku development directories and get the Haiku built tools source:

mkdir develop
cd develop
mkdir haiku
cd haiku
svn checkout svn://svn.berlios.de/haiku/buildtools/trunk buildtools

3. We will need to patch fileunix.c of jam inside the buildtools directory:

cd buildtools/jam

Index: fileunix.c
===================================================================
--- fileunix.c  (revision 26383)
+++ fileunix.c  (working copy)
@@ -57,6 +57,7 @@
 # include 
 # define STRUCT_DIRENT struct dirent
 # endif
+#include < unistd.h >

 # ifdef OS_COHERENT
 # include 

Note: Some might have seen that the jam Makefile/Jambase have a Cygwin option. Do not use these! The problem is that jam passes -D__cygwin__ to each target. This will break latest, when some 3rd party libraries are supposed to be build, which actually have Cygwin checks included.

4. Now build jam

make
./jam0 install
cd ../..

5. Get the Haiku source (this will take a while): For anonymous check-out:

svn checkout http://svn.berlios.de/svnroot/repos/haiku/haiku/trunk trunk

For an existing Haiku developer:

svn checkout https://developername@svn.berlios.de/svnroot/repos/haiku/haiku/trunk trunk

If there are any errors when checking out above, just cd into the trunk directory and type “svn up” to get any missed files. This also applies when updating the code in the future.

6. Build the cross compiler tool (GCC 4.x):

cd /managed-dir/develop/haiku/trunk
./configure  --build-cross-tools-gcc4 x86 ../buildtools/

Note: This only works with the GCC4 compiler. The GCC2 cross-compiler is generated in a wrong way and the build is broken for this version. Hybrid systems are untested so far.

7. Build the Haiku image:

jam haiku-image

To build for testing in VMWare:

jam haiku-vmware-image

As you can see, most of the steps are identical to the Ubuntu tutorial. The changes needed were more or less minimal, mostly related to minor things not working properly for the host tools. Finally, I’d like to mention that building Haiku takes much longer compared to Linux. My guess is that this is related to gcc being slower and also forking processes takes much longer on the Windows platform. But this is just a personal impression. By the way, you can also use multiple jobs to create the image with the -jx option, where x describes the amount of parallel jobs to run.

Update 1: Changed environment suggestions. You must not have spaces or special characters in your PATH variable

Update 2: Updated note that gcc2 is not supported.

March 29, 2008

Media back in the days…

Category: Spare Time, Development, Haiku — kaldor @ 3:04 am

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w006f36b/wp-includes/formatting.php on line 76

Developing in your spare time is something weird. On the one hand you want to keep your social life ongoing (and we all know how fast you can forget about time while staring at code. Just look at the time I write this article), on the other it helps you so much when you are searching for different challenges than your work can give you.

Next week I’m going to be in Cologne again for a big birthday party, and as I have no children on my own (congratulations to Paradoxon again), I decided to play a little bit around with Cortex again.

Cortex is kind of *the* application when it comes to Multimedia on Haiku. It allows you to display all the things going on in your system regarding media nodes. While we already recognized that it also tends to manipulate the system itself, it still is a great peace of software, horribly to read and get into, but does the user care :)

Today I added some of the additional addons to the build, and well what can I say. The following screenshot starts reminding me where BeOS once was and that possibly Haiku will be there at some point. No I am not talking about opening Chapter 11 :P

Cortex on Haiku

I’d really like to investigate on so much more stuff, Haiku is still missing encoding support. Also all latest hardware technology is currently bypassed. All these are areas I am interested in and have absolute no to some clue about, but then again…

Let’s get social and go to bed.

January 28, 2008

Taking care of other networks…

Category: Development, Haiku — kaldor @ 11:04 pm

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w006f36b/wp-includes/formatting.php on line 76

I couldn’t hesitate to use this topic name, though this is a little bit unrelated to the content of this post…

So, during the last days, I’ve already mentioned that my interest in Haiku is rising. Furthermore there had been a lot of discussions about ProjectConceptor on #beos.de at that time. Project Conceptor is a very promising piece of software, which is at a very early stage of development. Though my interest in actively developing for it is limited, the developers put their latest effort in backporting it from ZETA to BeOS R5.

Using R5 felt completely wrong to me, so I considered making it work for Haiku directly from my linux box, especially my preferred gcc4 version.

Some of you might already know, that I am not one of the biggest fans of Jam. Addtionally I am one kind of developers, who feel extremly annoyed by trying to port something and needing to take care of the build engine in first place. So the logical decision for me was to design a makefile engine, which is capable of building applications crosscompiled for Haiku. Stressing the point of making it easier for developers who are already in the BeOS world, the design of the makefiles have been adopted from what has been there for R5 and ZETA.

So, a classical (helloworld) makefile just looks like this:

NAME = myapp

SRCS = main.cpp

include $(HAIKU_DIR)/makefile-engine
$(HAIKU_DIR) describes the head directory of your checkout of haiku. That one usually will contain the generated directory for your haiku build. The only dependency is to set this variable in your environment and you should be ready to go.

In addition to compiling and linking it appends resources and sets the mimetype. Obviously, these rules have been adopted by the haiku engine and therefore should be compatible.

Oh, and before I forget, in case you want to use it for a gcc2 build, just set the COMPILER_VERSION variable in makefile-vars to 2 and you’re done.

So if you want to try it out, just click here for a download. Feedback is welcomed.

To clarify one thing in the end: This is no intention to replace the jam setup done for the haiku project. It is much superior than what is available here and I guess there has been a lot of research and discussions previously to the core team decided to go for jam. If you are considering to make your projects haiku only, use haiku_jam. If you start a new project for haiku, use haiku_jam. But, if you are just trying to port over an existing R5/ZETA project and want to prioritize the source work over the build engine, then this might be something of your interest.