bookmark_borderHorde Updates: Base module 3.3.10 RPMs for SLES and OpenSUSE

New Horde Version available as OpenSUSE package

Horde just released version 3.3.10 of their base application along with some minor updates to imp and dimp. After 3.3.9 had some regressions that caused trouble editing preferences, I decided to upgrade the horde RPMs for OpenSUSE and SLES 11 to the new release. This also removed the dependency on PHP versions lower than 5.3 as the package is now working with the default openSUSE 11.3 php package.

Splitting  into vanilla horde and Kolab patched version

Releases of the horde rpm and some application packages contained some dated patches for working together with the Kolab groupware server. I asked upstream Kolab author Gunnar Wrobel and he suggest a clean split between a standard and a kolab version of the horde package. Beginning with the next updates of the package I will implement this split offering two conflicting versions.

Turba LDAP driver patch

The LDAP backend driver for the Turba Contact Manager makes some optimistic assumptions on the privileges (ACLs) 0f the binding LDAP user. By default, it assumes it can add new contacts (which is not true for typical company addressbooks) and if you have ACLs to only some attributes of an entry, for example your own work phone but not your name or job title, Turba tries to write the whole entry.
I submitted a patch for the Turba LDAP driver which makes Turba only try to write attributes which have actually changed.

bookmark_borderHorde 3.3.9 SLES 11SP1 and OpenSUSE RPMs

Horde has been in Suse Linux for many years, but recently the packages were outdated, some even missing.

I have taken over the horde packages in the OpenSUSE and SLES 11 PHP applications repository.  Currently Horde has been updated to 3.3.9, but also mimp, mnemo, turba, and kronolith have been updated to recent versions. The dynamic ajax webmail interface dimp and the file manager gollem have been added as new packages in their current version.

While I am actively testing and using these packages, these packages come with no sort of guarantee.

The packages have a dependency on PHP < 5.3 as there are some known issues with horde 3.3.9 Alarms under PHP 5.3. While SUSE Linux Enterprise Server 11 SP1 comes with PHP 5.2, users of OpenSUSE 11.3 need to get PHP < 5.3 from another repository. I am currently trying to find out if I can easily patch this to work with PHP 5.3 and up.

One note for new users: These packages do not install mysql, php-mysql or the  php5-pear-mdb2_driver_mysqli package, which you probably want to install when using horde with mysql.

Stay tuned for more packaged horde apps, framework components and patches.

bookmark_borderHorde DIMP Portal: Let Dimp use classic Horde Portal settings

When you use DIMP, the AJAX frontend to Horde Groupware‘s widely used IMP webmailer, you usually want to hide the classic horde sidebar and the horde portal itself. Though DIMP provides its own portal page to display Horde Blocks, it does not provide any configuration tool for them but provides one static set for all users. One way around this is to make use of the user’s existing classic Horde Portal settings. This is how it works: Edit dimp/config/portal.php and add the following lines:

$horde_portal_layout = @unserialize($prefs->getValue(‘portal_layout’));
/* Format is
[row]
[column] empty or array app
[column]
[app] (string registry app identifier)
[height] (integer rows)
[width] (integer columns)
[params] (array)
[type] string block type identifier
[params] array, specific to block type*/

foreach ($horde_portal_layout as $horde_portal_row) {
foreach ($horde_portal_row as $item) {
if (is_array($item)) {
$dimp_block_list[$collection->getName($item[‘app’], $item[‘params’][‘type’] )] = array( ‘ob’ => $collection->getBlock( $item[‘app’], $item[‘params’][‘type’], $item[‘params’][‘params’] ) );
}
}

This is only a first approach to a complete solution. Dimp allows to add a specific DOM ID to every single block and to load specific JavaScript or template markup. In the default configuration, some blocks like the Ingo Filter’s overview block look odd in dimp portal, which was not in mind when they were originally designed.

Do you need site-specific horde hacks, setups, modules or improvements? Ask B1 Systems GmbH for consulting and development.

bookmark_borderirc.icq.com changes port – IRCQ wechselt Portnummer

AOL ICQ has silently changed the port number of its IRC Service under irc.icq.com from standard oirt 6777 to 7012.

Der beliebte IRC-Chat von ICQ hat eine neue Portnummer bekommen und läuft jetzt unter der altbekannten Adresse irc.icq.com auf Port 7012. Wer vergisst, seine Verbindungsinformationen zu aktualisieren, wird eine Meldung “Connection Refused” bekommen – und draußen bleiben.

bookmark_borderHorde 3.3.5 to 3.3.6 migration patch broken? Alternative Patch!

If you want to patch a Horde 3.3.5 installation pulled from  the official Horde 3.3.5 tarball
using the  official Horde 3.3.6 patch you will notice a lot of patch rejects, which render the patch file essentially broken.

Reason:

The patch assumes that version identifier strings of both 3.3.5 and 3.3.6 use
the dash format for dates like 2009-01-06. The 3.3.5 files shipped with the
horde-3.3.5.tar.gz file use slash format like 2009/01/06 15:22:10.

Horde developer Michael Rubinsky stated on the developer mailing list that this happened when horde repositories moved to a new server with a different version of CVS. Future version upgrades will not be affected by this problem.

When Michael answered, I already made my own patch (click here to download) from 3.3.5 to 3.3.6 which works with the real tarballs.

Users of a 3.3.5 version CVS checkout be warned. Don’t use this patch. Use the official Horde 3.3.6 patch instead.

bookmark_borderperl: rounding KiB values to MiB boundaries

When you have to deal with kilobyte or kibibyte values in today’s real-world computers, you often want extremely similar values to evaluate to “equal”. An easy solution is to round them to full Mebibytes. This can be easily done in every programming language which supports integer division and the modulo operator.

For example in Perl:

sub _rnd_kbval_to_mib_borders {
      my $input  = shift;
      my $base   = $input DIV 1024;
      my $modulo = $input % 1024;
      return ( $modulo < 512 ) ? $base * 1024 : ( $base + 1 ) * 1024;
   }

This approach is trivial but can safe you a lot of headache.

bookmark_borderAbzocker und Spammer in der Kreditkrise – Wer springt ein?

Jeder kennt sicher diese ominösen Websites, wo man irgendwelche fragwürdigen Dienste oder Gewinnspiele angeboten bekommt. Hat man einmal seine Adresse rausgerückt, wird man die Welle der Rechnungen, Mahnungen und Drohungen nicht mehr los, die sich dann ergießt. So mancher ist schnell eingeschüchtert und zahlt, während andere gar nicht reagieren. Genau letzteres machte offenbar einem Veranstalter solcher Projekte Kummer, der mir kürzlich schrieb: Continue reading “Abzocker und Spammer in der Kreditkrise – Wer springt ein?”

bookmark_borderTechnische Probleme bei auxmoney.com

Der Peer-to-Peer-Kreditanbieter Auxmoney.com wirbt mit der Aussage, eine Alternative zur Hausbank zu sein. Anleger investieren auf der Internetplattform ihr Geld in unbesicherte Kredite an Privatleute, die sie lediglich in anonymisierten Projektbeschreibungen kennenlernen. Diese Kreditnehmer haben oftmals zuvor von ihrer Bank keinen Kredit bewilligt bekommen und kaufen den Investoren mit hohen Zinsen ihr Mißtrauen ab. Ergänzend erwerben Kreditnehmer nach eigenem Gutdünken Zertifikationen wie etwa eine durch die Bank geprüfte Haushaltsrechnung oder ein Scoring der Anbieter SCHUFA und ARVATO.
Continue reading “Technische Probleme bei auxmoney.com”

bookmark_borderSymlinks auf network devices per udev festlegen (geht nicht)

Bekanntlich kann man unter Linux ab Kernel 2.6 mit udev bestimmen, wie ein Gerät im /dev/-Baum heißen soll. Ebenso bietet udev die Möglichkeit, einem Gerät zusätzliche symbolische Namen zu geben. So ist es überall dokumentiert. Ebenfalls gut dokumentiert ist, dass man auch Netzwerk-Geräten wie “eth0”, “bond0”, “wlan0″ sprechendere Namen geben kann über eine udev-Regel. Zum Beispiel so:

SUBSYSTEM==”net”, SYSFS{address}==”00:16:3e:00:07:97″, NAME=”firstlan”
SUBSYSTEM==”net”, SYSFS{address}==”00:16:3e:00:07:98″, NAME=”secondlan”
SUBSYSTEM==”net”, SYSFS{address}==”00:16:3e:00:FF:54″, NAME=”wifi-lan”

Nirgendwo steht allerdings etwas dazu, dass die Option “SYMLINK=…” bei Netzwerkgeräten nicht funktioniert. Continue reading “Symlinks auf network devices per udev festlegen (geht nicht)”