Archive for the ‘Arch Linux’ Category

D-Bus threading issues

1st June 2010

There are some annoying issues and crashes in KDE 4 (and particularly in KRunner and Nepomuk) that are related to the thread-safety (or, rather, thread-non-safety) of libdbus-1.  kde-core-devel has seen some discussion about this recently.

There is a patch that fixes the issue, but it won’t make it into D-Bus before dbus-1.4, due to the fact that it changes the library behaviour and could potentially break bindings.  Thiago has confirmed that the change doesn’t break the Qt bindings, and (from the bug report), no-one has found any other bindings it breaks.

This is all just background on why, if you are running Arch Linux, you might want to check out the dbus-core-mt package on the AUR.  It’s dbus-core-1.2.24, as found in core, but with the afformentioned patch applied.  Note, however, that you use it at your own risk – it should improve KDE, but it may well break other stuff.

Twice as Good

11th December 2008

I’ve decided to go 64-bit, to make full use of the 4Gb of RAM I recently bought. So I have no KDE until it’s finished compiling again.

*idly wonders if he’ll have the same bugs in trunk when it’s done*

Open Hardware

1st November 2008

Being a hacker, the part of free and open-source software that really appeals to me is being able to tinker.  This is why I use Arch Linux rather than its more polished compatriots.  But I’m also interested in the way volunteer communities largely composed of hoobyists and enthusiasts can be leveraged to solve problems that are normally very expensive.

Even after only working in the software industry for a couple of months, I can already see how writing software is an expensive business for companies like Microsoft.  Developers’ time is not cheap, and it takes a lot of time to produce a product of any complexity.

But you only have to look at Linux or KDE or GNU to see the levels of complexity that can be reached by people working essentially for free.  Sure, there are people being paid to work on all of those areas, but even then the fruits of their labour are being given away for free.  They can’t even do what Qt Software does and simultaneously sell a commercial version and give away a free one, because they don’t own the copyright to the whole codebase and hence can’t dual-license it.

All this is why I was interested to read about how the ideas of open source are being applied to hardware.  It’s a fascinating read for anyone interested in the mechanics and economies of open source.

Music in the Air

31st October 2008

I upgraded the Archlinux AUR mysqle package (an easy way to satisfy the most annoying dependency for Amarok 2) to 5.0.70, from 5.0.60.  I’m not sure why it was 5.0.60 in the first place, since 5.0.68 was out when I made the build script.  I blame the fact that 0 looks quite similar to 8 on a console…

Having a new job has meant that my KDE involvement has taken a dip over the last couple of months.  I realised today that I’d completely missed the hard freeze to get MPD support into the Now Playing dataengine for Plasma.  It will be in for 4.3, I promise.  I might even have pluggable backends by then, and a shared library between Now Playing and Kopete.

Speaking of Now Playing, the applet needs some serious work.  It works, providing you have it on the desktop, but it’s not as pretty as it could be.  Trying to put it on the panel seems to quite successfully screw up Plasma.  Which is a pity, really, because that’s where it’s most useful.  I will endeavour to fix this before the 4.2 is released, but help would be very much appreciated.  I don’t get on with user interface design.

Another pet project that never really got off the ground is my reimplementing of the slideshow screensaver.  Ever since I started using it (in KDE 3), the fact that it occasionally gets stuck has annoyed me.  I believe this is down to a design issue – it depends on the paint event being called to create a timer for changing the picture, but Qt compresses paint events and so it may happen that the timer never gets started.  I also don’t like the way effects are implemented.  But I haven’t even got it to a state when I think I can reasonably commit it to playground yet.

Life will calm down eventually, and I have plenty of stuff to do when it does.

/me hates my DVD drive

3rd October 2008

I’ve finally given up on my DVD drive.  For a long time, VLC has been the only thing that would countenance even trying to play DVDs on it, and even that occasionally claimed that there was an audio CD in the drive until it was removed and put in again.

Now, after upgrading libdvdcss and unplugging a harddrive from the IDE channel my DVD drive is on, trying to play dvds gets me:

export DVDCSS_VERBOSE=2 && vlc /dev/dvd

libdvdnav: Using dvdnav version 0.1.10 from http://dvd.sf.net
libdvdread: Using libdvdcss version 1.2.9 for DVD access
libdvdcss debug: opening target `/dev/dvd'
libdvdcss debug: using libc for access
libdvdcss debug: disc is scrambled
libdvdcss debug: requesting AGID
libdvdcss error: drive would not authenticate
libdvdread: Could not open /dev/dvd with libdvdcss.
libdvdread: Can't open /dev/dvd for reading
libdvdnav: vm: faild to open/read the DVD

Epic fail.  Other people have had this problem with AOpen drives, so I think it’s high time I got a new DVD rewriter.  Preferably one that can write double-layer DVDs (which mine currently can’t).

The main reason I’m posting this is because, after I googled for problems with DVD playback, I discovered that almost no-one knows about the DVDCSS_VERBOSE environment variable.  There’s a corresponding one (DVDREAD_VERBOSE) for libdvdread, although I couldn’t get that to do anything.  I only found out about these debug variables by looking through the source code trying to debug the problem (after libdvdread claimed it couldn’t open /dev/dvd, but dd if=/dev/dvd of=/dev/null count=200 had no problems).

Oh, and strace is really cool.  That was one of my debug steps, and one I’d never have thought of until I saw someone’s blog about it a few weeks ago.

Maybe I’ll finally be able to use Dragon player (which has a cool icon) when I get my new drive.

[edit] At Spanner‘s suggestion, I fixed it by setting the region with regionset.  Now Dragon Player works too! [/edit]

A Journey

20th September 2008

I’ve been a Linux user, on and off, for some eight years now. My system has been single-boot Linux for between four and five years. And I contribute to one of the biggest user-visible projects in the free software world, KDE. So, how did I get here?

To start at the beginning, the first computer I remember was my mother’s BBC Micro B. My parents only actually threw that out about a year ago. It was like a large keyboard, with a flat block at the back that contained the actual processor and so forth. And what was essentially a small TV screen for a monitor. It had a word processor (which was my mum’s use for it), BBC BASIC (my first, disappointing and short-lived, foray into programming) and an amazing collection of games, including one called Wizalong that involved two witches on a see-saw. All this on a few giant, low-capacity floppy discs (5 1/4″, I believe).

From there we went straight to an IBM 486 with Windows 3.1. It was a whole 33MHz! Here we got the magic new 3 1/2″ floppy drive with a whole 1.44Mb storage. It had pictures, icons and WYSIWYG office applications. But no Wizalong. So, as an 8-year-old (or there abouts) the box it came in was far more entertaining.

The last shop/factory-built PC we got was a Pentium I 166MHz machine with Windows 95. A fancy new interface, and even some games (I think my favourite that came with the computer was Gizmos and Gadgets). I still remember that the odd game involved exiting to DOS in order to run it. And running just about any game involved, for the best experience, using the task manager to terminate everything but explorer.exe and rundll32.exe.

Now, there were a few forays into other machines and systems here. I bought a Commodore 64 for £5 at a sale, which had one of the best games I’ve ever played on it: Paper Boy. But my interest in that machine soon waned, helped along by the tapes only loading about one time in four.

School had two main types of machine. The computer club used RM Nimbuses, hooked up to a Winchester server via coaxial cable. These had such classic games (you don’t think we did anything else on them, did you?) as Sopwith Camel, Star Wars and Tea Shop (which, if you set the price of a cup of tea to over about 50p, would complain that “not even British Rail charge that much!”).

IT lessons were on Apple Mac LCIIIs. These were essentially typing lessons in Mavis Beacon, and the occasional use of ClarisWorks (one of the best office suites I’ve used, except for the lack of tables). These were networked via AppleTalk in order to share printers. This meant, of course, that the curious among us could poke around other people’s computers, although there wasn’t much to do on them.

There were other odd machines around. Design Technology had an Archimedes. The library had a couple of 386 machines and a PowerPC, and later got an iMac. When the new PC network came in (with Windows 2000, I think), the LC IIIs and 386s went out the window (or, rather, on the skip), although the others lived on. A few of the LC III machines even survived the cull, making their way into technology classrooms. After that, of course, IT lessons turned into internet fests (a twin 128K ISDN line serving the entire school), although we were supposed to be learning the joys (!) of Microsoft Office. Ironically, the new network manager for the Windows network was a complete Mac geek.

Meanwhile, at home, my dad had built a machine himself, with me watching, and after that I was hooked and took over playing with machines. I’ve built every computer for me and my family since (with the exception of my laptop). Those were the days of memory at £1 per megabyte (dropping quickly to 50p), computer fairs, computer magazines and dubiously acquired software. We went through a whirlwind of Windows 98 SE (crap), Windows ME (flashier crap), Windows 2000 (half-decent), Windows XP (two-minute log-on times) and back to Windows 2000.

My brief obsession with computer magazines led to a stack of freeware on the CDs on the front (this was in the days when we had AOL dialup with 19.2, 33.6 and finally 56K modems, so downloading this stuff wasn’t reasonable). One of these came with Corel Linux, which I briefly installed and didn’t get on with. But this whole Linux thing had me intrigued. Along came Redhat (5? 6?) on another magazine cover, and I tried that. No dice. It was complicated, and not in a fun way.

Then I found Linux From Scratch. I was at 6th form at the time, and I downloaded the necessary packages in Computing (Delphi and Object-Pascal ftw), loaded them onto a memory stick and took them home (where we were still on dialup, although no longer with AOL). I was hooked. My curiosity with how things work is pretty much insatiable, and here I could build up an entire operating system myself. What was there not to like?

Well, the maintenance for one thing. I was, and still am, a bleeding-edge-junkie and it was hard working keeping up with new versions. I tried DIY-Linux, but that was still a lot of work. Eventually I settled on Gentoo. Once at university (with a second-hand IBM Thinkpad with 128Mb RAM and a 900MHz processor, but more importantly a 10Mb link to the internet), I would go out to lectures leaving emerge running. And come back to find some part of the build had broken because of some problem that apparently only occurred with my particular choice of USE flags (which had taken me most of a day to decide on).

In the holidays, where I had two machines (my laptop and my desktop), I tried OpenBSD, NetBSD and FreeBSD. I liked the philosophy of OpenBSD (yeah, I’m a bit of security nut), but GNU did a damn good job on their tools, and the BSD ones had little quirks that I didn’t like.

I suppose I should point out that at this time I was a console junkie. Mutt, MPD and e-Links were my applications of choice. I would occasionally boot up X with WindowMaker if I needed something graphical, like a website with pictures. But the console was my realm. By this time I’d discovered the magic of 6 VTs (it took me a long time to learn that CTRL+ALT+F[1-6] did useful things). GPM did what I wanted with copy and paste. I even dallied with screen, although it struggled with a couple of programs like e-Links.

By second year, I had ditched the laptop (except as a useful spare computer) and taken my desktop to university with a shiny new LCD monitor. I decided that living on VTs was too much, and instead wanted something graphical. But what to choose? My minimalist side said XFCE, or Fluxbox, or just stick with WindowMaker. But I didn’t just want something for me. I wanted to impress people. I had the Linux bug, and even if I couldn’t outright convert people, I didn’t want them to dismiss it. So I wanted something pretty. But something that would satisfy the control freak side of me. To my mind, only KDE fit that bill. So on it went.

This led me to a world of graphical interfaces. A world containing the best file-browser image gallery plugin (Gwenview’s slideshow view). A world containing Amarok (well, after I’d weaned myself off MPD) and KMail (as powerful as Mutt, but nicer looking). A world of a slightly tacky plasticy look-and-feel. Oh, well, you can’t have everything, right?

Gentoo didn’t satisfy me, though. Those compile times. The build failures. What was I to do about it? Time for some more distro-shopping.

Ubuntu was the new kid on the block. It wasn’t bare-bones enough for me. I want to fiddle. If I wanted to point-and-click, I’d get a Mac. I want to poke things in /etc, and not find unrelated stuff breaks because some magic system configuration thingy. Hell, that’s why we all hate the Windows registry, right? The same went for most other distros. OpenSUSE is very nice (I’ve put it on my parents’ backup computer), but not my cup of tea.

But I found something amazing. Arch. It’s basically my perfect distribution. No waiting around for things to compile (well, unless you want something relatively obscure). Bare-bones, sort-yourself-out configuration, although most things work out of the box. I find there’s something slightly distasteful about BSD init scripts (although they’re better than System V ones), but that’s a rant for another time. Oh, and Arch has a fantasticly simple package manager and build system. And my discovery of yaourt has made package administration doubly easy.

So, I have my perfect distro, and a damn good desktop. What next? Well, I decided I wanted to hack on KDE. I’d picked up C from poking at various things over the years, but KDE’s architecture and object-orientated design using a real OO language (one of my Gnomie friends asked “who doesn’t love GObject?” Well, wjt, that would be me) was one of the reasons I chose it in the first place. Programs should be beautiful, right? C++ may not be beautiful, but it beats C any day of the week.

I chose Christmas 2006 to start delving into the world of KDE developers, beginning with the dot and Aaron Seigo’s blog. I found the planet soon after. KDE 4 development was in full swing, so I learned C++ and a bit of Qt 4, and dove in to the EBN, wading through the issues it picked up with KDElibs code. Seeing the numbers go down and knowing you did it is great, and it’s a nice way in for a newcomer.

Shortly after, aseigo’s Plasma project got under way, so I jumped in there. And recently, I started doing a bit of Amarok bugfixing, having been led there by my attempts to get my Now Playing Plasma data engine to work with it.

So, that’s a bit of personal history about how I got to where I am. I’m hooked on UNIX, hooked on Linux, hooked on Free Software. I’m hooked on KDE, and not letting go any time soon.

25 Years of GNU

6th September 2008

Stephen Fry wishes GNU a happy 25th birthday.

“GNU and Linux are the twin pillars of the free software community”.  I’m sure the BSD folk would have something to say about that…

KDE 4.1 in Arch Linux

29th July 2008

Now that KDE 4.1 has been officially announced, I don’t feel I’ll be stealing any thunder to tell you that Arch Linux has had KDE 4.1 in [extra] (the main repository for non-essential software) since yesterday evening.

The KDE 3 desktop has gone (the maintainer of the KDE packages has no wish to attempt to support both), but kdelibs 3.5 has moved to kdelibs3 and several KDE 3 applications (such as Konversation and K3b) that have no stable KDE 4 releases or equivalents yet are still available.

One of the main advantages of Arch’s “rolling updates” system means that, once a stable and usable version of a piece of software is released and has been tested, it can become a part of the distribution immediately without having to wait for the next scheduled release.

Personally, I’m running trunk (and have been since plasma was vaguely usable sometime last Autumn), but it will be useful to have a basically vanilla 4.1 release to test bug reports on.  And it also means I have fewer dependencies to compile myself.

So: much thanks to Pierre Schmitz for his work packaging KDE 4.1 in time for its release.  This is one reason why I love Arch so much.

[edit] See comments for info on kdemod [/edit]

KDE 4.1 in Arch Linux