SUSE versus Mailman

I'm trying to set up Mailman on our gnome-ev.de server, so we can have some mailing lists. It's not quite working though.

I installed mailman with yast. It's meant to use the web cgi stuff from /usr/lib/mailman/cgi-bin automatically, but suexec doesn't allow that, leaving a message in /etc/apache2/suexec.log saying "command not in docroot".

So I copied the cgi files to our html directory instead. I had to change their ownership because they seem to be run as our web10 user instead of the mailman or nobody user. Furthermore, mailman likes to know what user it is running as and complains when run as a different user. Changing /etc/sysconfig/mailman should be enough, but only hacking the GID directly into mailmain.cgi-gid seemed to work for me. So now the "WANTED gid 66534 GOT gid 102" web page error is gone.

However, every time we use the mailman cgi pages to change a mailing list it rewrites the files as owned by mailman, making it impossible for the mailman cgi to use them again. So somehow it's running the cgi as web10 while also running them as mailman, or giving file ownership to mailman.

In summary, SUSE is a pain, as usual. Stuff really should just work.

Once again, if you know of any reasonably priced hosters in Germany please do leave a comment. I don't want to maintain a server (I don't want to be a sysadmin) and I don't really want to pay the huge dedicated-server prices.

GUADEC Hotels – book today

A last warning for the stragglers: Today is the last day of the special prices for the GUADEC Hotels. It'll probably cost more after today.

I'm in the Hansa hotel. The youth hostel is much cheaper but I'm a light sleeper and even more grumpy when tired. I'll arrive in Stuttgart early on Saturday morning, for the GNOME Foundation board meeting, and stay around on Wednesday for the Advisory Board meeting.

Yes, until I can get my Palm Zire 31 working with Fedora Core 3, my blog is my calendar.

GUDAEC Registration

The GUADEC registration page is now online, finally. We're lucky that Fernando San Martin Woerner quickly put together a plan B at the last moment. Yes, we only have PayPal. Yes, you should help to create a better permanent system for next year.

This is a good time to remind you that donations help developers who otherwise could not go to GUADEC (and the U.S. summits). I always feel guilty that I don't find time to hack much on the GNOME desktop itself, so I've just donated 200 Dollars to help people who do. I suggest you do the same – it's a good deal.

Glom logo?

As Glom gradually becomes usable, gaining most of the features that most people need from it, I'm thinking about how I'll promote it to regular users. It would be nice if some creative type created a logo/icon for it, maybe vaguely expressing its functionality.

Yes, I'm open to a name change too.

Debian in Munich

Yesterday I met some of the local Debian people in Munich at Pasta & Basta. There were lots of people, encouraged by Munich Council’s choice of a Debian-based solution for their LiMux project.

img_0230I recently read Florian Schießl’s Limux slides (German) from his talk at Chemnitz LinuxTag a few weeks ago. I’m pleasantly surprised by how sanely and pragmatically they are planning the project. I think this is going to work out. And I really like that they want to encourage local Open Source businesses.

Update: Michael Banck has more details.

GNOME Member Logo

The GNOME Foundation Board thought it would be nice to have an official "Member of the GNOME Foundation" logo for people to put on their visiting/address cards, but usually not business cards. This is all part of making it easy for the right people to use the GNOME trademark.

James Bowes did an example of a card with the logo. Anyone should feel free to improve on this and tell the marketing-list about it. In particular, Inkscape does not give much control over text yet, but maybe there's another way to make the text line up properly.

Glom: Reports/Printing

Printing/Reports is the last big task for Glom before it's
fundamentally usable, I think. It's also the perfect thing for other people to hack on, because it doesn't need much knowledge of the existing code. The Document object can tell you about the database structure and you can get the data directly from Postgres itself, using the existing GlomConversion functions to display the values appropriately in the locale.

I don't plan to muck around with libgnomeprint, considering that cairo should replace it somehow within the foreseeable future. So I'm happy just to ouput HTML and let the browser take care of printing it. We'd need HTML output anyway.

I already coded a proof of concept. Choosing File|Print in the Details view does the following:

  • Creates an XML document, in memory
  • Transforms the XML to HTML, in memory, using an installed XSLT file.
  • Saves the HTML to a temporary file and shows it in the browser.

The output is ugly but any non-hacker can improve it by editing the XSLT file and/or adding a stylesheet.

However, people will want to create custom printouts for Details, such as Invoice printouts, and they will want to create grouped List reports. For the reports, they will need to specify (optional) parts like:

  • Headers – e.g. “Staff Payroll Summary”
  • Group-By sub-titles (repeated, nested) – e.g. “Departments:”
  • Record Details (repeated) – e.g. Bob McBob, Sales, EUR 99.999
  • Group-By Summary (repeated) – e.g. Number of staff: 5, Total salary: 888,888
  • Footers – e.g. “Page ??. Confidential.”

The UI for adding and arranging these parts to a layout might use a TreeView, or maybe a canvas. It's worth looking at FileMaker, but layout is very fiddly with FileMaker, and people find the print layout UI very unintuitive.

I don't know of any existing report generators for Linux, but maybe there's a good one. I'm happy to cooperate and reuse code wherever the license allows.

Glom: calculated fields – related records

I've improved Glom's python syntax for calculated fields, and added the ability to get values from related records. For instance:

record.related["contacts"]["name_first"]

I'm quite pleased with that. Now I'll try to get some summary calculations working, such as

record.related["invoice_lines"].sum("total_price")