Tag search

Patching exuberant-ctags for better PHP5 support in vim

by Sander Marechal

Thanks to the taglist vim plugin, vim users have access to a decent tag browser. A tag browser allows you to view a list of all variables, functions and classes and quickly jump to their definitions. Taglist is built on exuberant ctags so it support a large amount of languages. Unfortunately however, when the exuberant ctags people replaced their old PHP lexer with a brand new regexp-based parser the quality of parsing PHP code decreased dramatically. Ctags suddenly could not distinguish real class and function declarations from mere mentions of the words “class” and “function” in multi-line comments. This is because the ctags regular expression parses is inherently line oriented.

In this article I have two patches that greatly improve PHP support in exuberant-ctags. I will also show you how you can apply these patches on a Debian-based system.

Update 2009-07-07: David Mudrak has written an updated patch for Gentoo. I have ported his improvements back to my patch here. It fixed a problem with old-style functions without a visibility declaration and it applied the same trick to interfaces as well.

Package Management Sudoku

Russell Coker recently wrote a post entitled “Ownership of the Local SE Linux Policy”. This post has nothing to do with the substance of his post, which is a discussion of how distributions should configure SELinux by default. I know nothing about SELinux, but something that Russell said in passing caught my attention:

I am not aware of the Debian package dependencies (or those of any other distribution) being about to represent that the postfix package depends on selinux-policy-default-postfix if and only if the selinux-policy-default package is installed. Please note that I am not suggesting that we add support for such things, a package management system that can solve Sudoku based on package dependency rules is not something that I think would be useful or worth having.

As it happens, a little-known fact about the Debian packaging system is that you can, in fact, describe Sudoku puzzles in it!

From: Daniel Burrows’ Blog.

Ubuntu package repositories removed

The package repository at http://packages.jejik.com is no more. I created it way back in 2006 to host packages for gnome-hearts for Ubuntu Dapper Drake because the initial gnome-hearts release came too late to get into the universe repository at that time. Starting with Ubuntu Edgy gnome-hearts has always been in the Universe repositories for Ubuntu. It␂s been over two years since Dapper Drake so it’ time to retire the old repositories.

In the unlikely case that you are still running Dapper Drake or use a machine that was upgraded from Dapper Drake, please remove http://packages.jejik.com from your apt sources list.

Configuring Debian/etch on a Dell Latitude D520

by Sander Marechal

A new job brings new toys :-) My new employer has supplied me with a Dell Latitude D520 laptop for programming. It came loaded with Windows XP professional which—ofcourse—had to go. Nothing inhibits productivity quite like Windows—except perhaps for the pool table and game consoles in the lunch room. Basic installation of Debian/etch went without a hitch as expected. I used the official 4.0 netinstall ISO using a cable instead of relying on wireless. After the reboot I did find a few small problems though. I'll describe them here, and what I did to fix it, so I can hopefully save other people the headaches.

Setting up and managing an APT repository with reprepro

by Sander Marechal

If you are writing software for Debian GNU/Linux or deratives like Ubuntu then setting up an APT repository is a very useful thing to do. Setting up an APT repository for your users makes it very easy for them to keep up-to-date with the latest version of your software, far easier than providing .deb's as downloads on your website.

This tutorial will show you how to do just that with reprepro. Reprepro makes it very easy to set up APT repositories that use a common /pool directory to store all the package files. In this regard, reprepro is superior to APT tools such as apt-ftparchive. I am going to assume that you are already familliar with the basic workings of an APT repository.

Secure-APT Repository opened

by Sander Marechal

We have created an Secure-APT repository with unofficial binaries for our software to make it easier for you to keep up-to-date with our latest releases. At the moment it only contains gnome-hearts for Ubuntu Dapper Drake 6.06, since it is impossible to get gnome-hearts backported to the official Ubuntu Dapper backports repositories.

To use the repository, you should add the following lines to your /etc/apt/sources.list file:

## Lone Wolves APT Repository
deb http://packages.jejik.com/ubuntu dapper main
deb-src http://packages.jejik.com/ubuntu dapper main

You will also need to install my public key, or you will get authentication warnings when installing software from this repository. You can import the sander.marechal.asc file, or get public key ID 019D48B7 from your nearest gpg keyserver. You can use the following commands to import the key:

gpg --import sander.marechal.asc
gpg --export --armor 019D48B7 | sudo apt-key add -