European Bob's Hula Hoopla!

Thu, 03 Nov 2005

Last update :(

So, this will be the last ever update to this blog... shed a tear

No, I'm not going anyway, but I'm changing URLs. I'm moving from my ISP's domain to one I control: both will work for now, but the new one will be the one updated. This is basically because a week today I'm moving house, and will be changing ISP.

So if you're currently using my packages, you need to change the apt source line (more details on my new site) in order to continue to receive updates.

Fri, 21 Oct 2005

r654 is The Business

Again, new packages. I still found I was getting problems with the Indexer with the last lot, but Peter seems to have fixed it now :) I still suffered from stale locks though - so, if you have files like:

/tmp/lucene-1f90313e5849e5c2ab12d9f723836364-write.lock

(The number could be all sorts of things)

... you'll want to remove them. Stop Hula, rm /tmp/lucene* and be on your merry way.

Other bugs:

You should find that you're able to connect, add events and stuff like that, though. Please let me know if you have any trouble; it's likely that the packages still aren't quite right about getting things up and running for everyone.

New Hotness Again

I just uploaded my r641 packages. These will automatically upgrade your schema when you install it, and if you install the new .NET agents it will use mdbtool to automatically add the Agents to your tree. It pretty much now mostly works for me; Sunbird is behaving with it fairly well. But, there are some gotchas. Here's what I learned:

Thu, 20 Oct 2005

New Hotness Arrives! r630

So, all the new cool calendar stuff we've been drooling about waiting for has landed in SVN. It's all written for mono, and hence isn't going to run on some systems, but I've packaged it up.

If you're on Debian testing/unstable, or Ubuntu breezy (maybe hoary too), you'll find that you can apt-get install hula-cil-agents to grab the new stuff. However, it won't work automatically. This is because there is no schema update yet - version 6 of the schema will come soon, but not yet ;o)

So, how to try it out? Take a copy of /var/lib/hula, maybe move it somewhere safe. Re-run hulasetup (you might need to mkdir /var/lib/hula; chown mail:mail /var/lib/hula ), and you'll find on startup your Hula Web Administrator has some new agents:

None of these are configurable, except for the DAV server (you can turn it on and off ;), so don't worry about that. But, if you have them, you should find that ps aux shows a couple of new processes, both of which are run by mono. (Portions struck out above are corrected from my original entry; couple of mistakes there :)

Congrats, you're up and running!

Well, kinda. I downloaded a Mozilla Sunbird nightly - this has CalDAV support built in (unlike the 0.2 release). You should be able to add a new calendar of the CalDAV type, and it should kinda work.

Except, it doesn't, for me. First, I'm not totally sure what I should enter for the account! I currently have set http://<server>:8081/dav/<username>/calendar/Personal, but this might not be right. I'm also getting an error message from the DAV server:

** (/usr/lib/hula/HulaWeb.exe:17188): WARNING **: Missing method get_CipherStrength in assembly /usr/lib/hula/Mono.WebServer.dll, type Mono.Security.Protocol.Tls.SslStreamBase
System.NullReferenceException: Object reference not set to an instance of an object
in <0x00000> 
in <0x00023> Mono.WebServer.XSPWorker:Run (System.Object state)

I have no doubt that this probably means these packages currently don't run for anyone properly, although it might be related to the version of mono installed, or the mono libraries required.

If you have tried these and got them working, please let me know! Drop by on #hula on irc.freenode.net :)

Wed, 12 Oct 2005

r587 is up

This is the first rev from the 5xx series I've written about, and at the speed we're going will also be the last - scary.

The last couple of revs had the new 'document' interface in NMAP, which is going to be used for a couple of useful things. But, it requires AUTOINCREMENT in SQLite - which, as proby rightly noted on IRC, is a SQLite 3.1+ feature. This gives us a slight problem: Ubuntu Hoary doesn't have that available. So, from now on, these packages won't work on Hoary unless you pull in a better libsqlite3-0 package.

This isn't as bad as it sounds: Breezy is out tomorrow, and is fine, and you can pull the single libsqlite3-0 package from there if you like. So, it should be a pretty temporary problem.

Fri, 07 Oct 2005

LinuxExpo London 2005 over

Expo this year was mildly suprising for a number of reasons; mostly, it was a lot busier than last year (maybe even busier than a couple of years ago). Nice to see old friends again, and also meet some new ones.

Hula attracted a fair amount of attention. I'm going to send a slightly longer write-up to the lists, because there was a lot of feedback that kept getting repeated by lots of people: not terribly large jobs in the most part, but specific use cases and features that seem pretty commonly needed.

Lots of people stopped by the booth, users I've seen on the lists or on IRC, lovely to see Michael Meeks even if it was a short visit. Other Novell employees visited; knowledge of Hula varied interestingly. Also, I was a little surprised by the number of people who didn't know what Hula is - since there isn't a "proper" release yet this shouldn't be surprising, but lots of people don't know it exists yet. 1.0 will probably bring a flood of users, I imagine. Debian's Phil Hands did a great job of redirecting people enquiring about mail/groupware options from their stand, and the general confusion about what was happening with Open Exchange at RedHat (and Novell mostly talking about Groupwise) both contributed to people coming to check out the "community alternative".

Tue, 04 Oct 2005

mdbtool available for testing :)

So, the new debs have been uploaded, and contain my mdbtool. This allows you to munge around your mdb store without playing with the files. Objects can be added and removed, and you can get basic information and attributes from them. I would be interested to hear from those who use it.

Sun, 02 Oct 2005

MDBTool fixed up :D

Thanks to the help of fatpelt, my problems in the previous post (and a post I made a while ago) are now fixed. The segfault was caused by incorrect argument order, which I should have noticed. The bug getting the right result back was caused by passing an object reference where I should have passed NULL - with a reference, MDB was trying to create a relative name or something. Whatever it was trying to do, it was failing.

So, I've updated the mdbtool source. The manual page is current unwritten, but would look something like:


mdbtool [command] [options]

  getattrs [object] [attribute name]
  
    Example: mdbtool getattrs \\Tree\\Context\\Server netmail:messagingserver
    
    Dumps the value of the attribute for a given object. Double-slashes are
    used to name the object for shell reasons. The result is of the format:
    
    [attribute name]::[value]
    
    This format may change, given values could contain carriage returns.
    
  setattr [object] [attribute name] [new value]
  
    Example: mdbtool setattr \\Tree\\Context\\test Sname newname
    
    Sets the value of an attribute of the object. Attribute names are prefixed
    with 'S' (for attributes that contain strings) or 'D' (for attributes that
    contain the names of objects).
    
  addobject [object] [class] [attr1=value1 attr2=value2 ...]
  
    Example: mdbtool addobject \\Tree\\Context\\test User Sname=foo
    
    Creates a new object of any given type, and initialises some of the 
    attributes. Attribute naming requires 'S'/'D' prefixes (see setattr), 
    you can have as many initial attributes as you like.
    
  setpassword [object]
  
    Example: mdbtool setpassword \\Tree\\Context\\Admin hula
    
    Set the password for any given object; usually used for User objects. The
    example given above resets the password of the admin user.

I have plans for a fair few other commands - we're missing object (re)move, and tree/object introspection in particular - but it seems at least some commands will require work to MDB and the various drivers in order to actually work. Some schema stuff will also be needed at some point. The main thing I next want to achieve is dumping and re-creating complete trees, because I think that's one thing users will really like.

MDBReadEx() segfaults :(

And I can't figure out why, so hopefully lazyweb will help me. So, I have this code:


#include <stdio.h>
#include <stdlib.h>
#include "mdbtool.h"  /* this just pulls in mdb.h */

void leave(char *excuse) { printf("ERROR: %s", excuse); exit(1); }

int main (int argc, char *argv[]) {
	const unsigned char *attrval;
	const unsigned char *object = "\\Tree\\Context\\Server";
	const unsigned char *attr = "netmail:messagingserver";
	
	if (!MemoryManagerOpen("mdbtool"))
		leave("Could not start memory manager\n");
	
	if (!MDBInit()) leave("Could not initialise MDB\n");
	
	MDBHandle *h = MDBAuthenticate("Hula", NULL, NULL);
	if (h == NULL) leave("Could not authenticate to MDB\n");

	MDBValueStruct *vs = MDBCreateValueStruct(h, object);
	MDBEnumStruct *es = MDBCreateEnumStruct(vs);
	
	while ((attrval = MDBReadEx(object, attr, vs, es)) != NULL) {
		printf ("Attribute: %s\n", attrval);
	}
	
	MDBDestroyEnumStruct(es, vs);
	MDBDestroyValueStruct(vs);
	return 0;
}

I run it, and it segfaults:


(gdb) r
Starting program: /home/alex/mdbtool/simple
[Thread debugging using libthread_db enabled]
[New Thread -1210911040 (LWP 28415)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1210911040 (LWP 28415)]
0xb7fccfb9 in MDBReadEx () from /usr/lib/libhulamdb.so.0
(gdb) bt
#0  0xb7fccfb9 in MDBReadEx () from /usr/lib/libhulamdb.so.0
#1  0x080487dc in main (argc=1, argv=0xbf9f48b4) at simple.c:23

According to the API docs, I don't think I'm doing anything particularly wrong. Also, I can't make it work with MDBRead() either - doing something like:


	long l = MDBRead(object, attr, vs);
	
	for (i=0; i<l; i++) {
		printf ("Attr: %s\n", vs->Value[i]);
	}

... returns values, but cut off in bizarre places. Am I doing something remarkably silly, or is there some voodoo dance I need to do?. Frustrating :(

Tue, 27 Sep 2005

Hula now under the GPL!

I shall be the first to praise whoever it was at Novell who decided that Hula would be better off being straight GPL. No longer the MPL/LGPL/GPL (with the MPL being noticably missing from files) triumvirate, it's plain and simple. Woo.