[Citadel Development] (no subject)
Bypassing IMAP for that purpose would be quite nice. :)
[Citadel Development] (no subject)
Note to all: I've bumped the version number in the tree up to 6.70. This is being done because I have to get a new release out in order to publish the journaling code, which was commissioned by a customer.
[Citadel Development] Re: Bug Report and possible fix
.h? is broken. Possible fix: In citserver.c around line 485 add That worked very nicely. Thank you!
[Citadel Development] Re:New Webcit, and message headers
I am curious, though...is there anything in the works to be able to view full headers, in the case of externally generatedemails?What you see is all of what we have stored. There isn't any more than that.
[Citadel Development] (no subject)
Ok then, here comes a sample message generated by the new code:
[Citadel Development] (no subject)
Is there anyway to get this baby to generate a coredump so I can at least post mortem it? ulimit -c unlimited That ought to allow core dumps, although it seems that you've figured that out already. As for your problem, is it reliably repeatable? Does it always crash on the same message? If so, it's certainly possible that you've got some sort of magic message that's just wacky enough to cause a memory allocation problem. If it is one particular message, and you've got port 504 open, you could log in from the BBS client and move or copy that message to a public room -- and then I could point my own copy of WebCit at your Citadel server and see if it crashes for me too. If so, it's a garden-variety memory allocation bug; if not, it's something local to your host system.
[Citadel Development] (no subject)
WebCit maintains a stateful connection to the Citadel server for each user session. Naturally, we use cookies to maintain a session with the client browser, and there's enough information stored in the cookie to re-create the back end Citadel session if it times out. While it is true that a stateless connection (or a small pool of them) directly to the data store would be faster, that would cause it to lose the whole Who is online now nature of Citadel, which is a big part of what makes it a unique product. (It would also require implementing a way to give such clients very escalated privileges, which would put lots of holes in our security model, which currently makes the assumption that all clients are untrusted.)
[Citadel Development] (no subject)
Oh, and if you're going to be doing XML output... Be sure to check out the GroupDAV code. Please pay attention to the following functions: groupdav_common_headers() begin_burst() end_burst() If you use these functions, the WebCit API gives you a Content-length: header *and* zlib compression without any effort on your part. I see that you're using wDumpContent(), which doesn't really buy you anything unless you've also done output_headers(), which you haven't.
[Citadel Development] (no subject)
Also, whats the odds of getting an RSS feed out of a calendar. I've been scratching my head over how to get calendar data off the system onto a website. We ought to have some way to publish a calendar. IO's proposed anonymous mode would help.
[Citadel Development] (no subject)
It sounds like he's using citmail as a sendmail replacement, which does work, but you have to setuid it.
[Citadel Development] (no subject)
Now.. onto other matter of threading. How does citadel's theading work. I've noticed that (predictably), if I start a long running script from one connection, then try and start python from another connection, the server barfs on a threading gotchya. Aparently Sorry I missed this question earlier. citserver uses a worker thread model. We have a pool of threads that sit around waiting for something to do. A mutex is used to make sure only one thread wakes up at a time; it blocks on select() and waits for something to happen on the network. The thread is then bound to a Citadel session (a record of type struct CitContext) and it goes off and does its thing. Usually this binding lasts for the duration of a single server command. This could be a very quick command (such as NOOP) or a long-running command (such as CHAT). When the command completes, the thread is unbound from the session and goes back into the pool. As you've probably discovered, the macro CC is used to point to the session which this thread is bound to right now.
[Citadel Development] (no subject)
Subject: pictures just gifs? isn't that a bad practice? because of most displays use 24 bit color scheme? When the image support was written (1996) there wasn't a lot of support for PNG yet, and JPG doesn't have transparent backgrounds... and I only wanted to support one format. Multi-format would probably be a good idea now.
[Citadel Development] (no subject)
Oops. I hadn't thought of that.
[Citadel Development] (no subject)
That is very, very cool. Now what does the memory management situation look like? Are we going to have to spend some time checking for memory leaks?
[Citadel Development] (no subject)
matt: what other changes did you have to make to the server core to enable your module? Presumably you added an NNTP data pointer to struct CitContext, and called an init function from initialize_server_extensions() in serv_extensions.c? Anything else?
[Citadel Development] (no subject)
ig, what should i do about the segfault? dothebart: I've checked some code into CVS to make functions like imap_fetch_internaldate() return quietly with no output, if they are given a NULL message pointer. Please test it. It might work, or it might crash somewhere else. Let me know if it works. Everyone else: sorry for the delay in responding to some of your messages; I'm going through a busy period at work ... I'll get to all of this stuff soon. Keep hacking! :)
[Citadel Development] (no subject)
Also, I'm wondering if it'd be prudent to perhaps not keep passwd as plaintext, and perhaps use a crypt or md5 function on it? The problem there is that there exist certain auth mechanisms which require the server to know the plaintext of the password. One-way encryption rules out some types of auth.
[Citadel Development] (no subject)
ok, ig, this works. on index view mutt shows the sender of the message, after i've viewed it, anymore. shouldn't there be any further actions taken? i.e. mail to aide? or better an instant message (instead of the actual mail?)? That depends. Is it just one message? It could have simply been a bad message that arrived, and got badly translated. If it's happening regularly, though, then it's something which should be looked closer at. besides, how do i best recover my database inconsistency? This starts struggling me as I rely on my mails :[ I understand, and if it is happening frequently then we need to have a closer look. If it's just the one message, though, I would suggest that you simply delete it.
[Citadel Development] (no subject)
I just thought of a really good use for the scripting module. One of these days I'm going to need to build a project management system using Citadel as the base groupware platform. If the module works I could do the whole thing in Python, using scripts to build the underlying logic.
[Citadel Development] (no subject)
The user agent string was chosen in order to boost Firefox's perceived market share in the target server's logs. If it's causing an operational problem you can change it. The CVS module is called 'rss2ctdl'.
[Citadel Development] (no subject)
True ... I've really got a bad feeling about that whole trapping thing. I'm willing to split up any cmd_ function you want, into frontend/backend pairs.
[Citadel Development] (no subject)
Yeah, I've known it was the wrong way for a while now, but after getting on that track I wasn't inclined to change it. The move to SVN is a good opportunity to make it right.
[Citadel Development] (no subject)
Idget: that's really cool, I'm looking forward to seeing the CD.
[Citadel Development] (no subject)
Shayne: sorry to do this, as I know it'll probably be a minor annoyance to you, but I had to make another API change. CtdlSetSeen() now accepts a list of message numbers instead of just a single message number. This API call is somewhat expensive, so I want to be able to manipulate a whole bunch of messages in one shot instead of calling it over and over again.
[Citadel Development] (no subject)
IMPORTANT: The default for autologin is now DISABLED. If you are maintaining a site where some users are authenticating against accounts on the host operating system, you must ./configure --enable-autologin in order for this to continue working. This was a painful decision to make, but the default of enabling autologin is confusing more people than it's helping.
[Citadel Development] (no subject)
dothebart: I believe I may have found someone to maintain libical. Omar Kilani [EMAIL PROTECTED] has taken libical 0.24RC4 and folded in all the changes and bugfixes from several forks of the library, resulting in what he is calling 0.26.3-aurore. He told me that he'd be willing to take ownership of the upstream project, but he doesn't know how to go about doing that. Have you talked to anyone from the libical project lately, or should we just start blasting out emails to anyone mentioned there?
[Citadel Development] (no subject)
Thought I should copy in the room, here. Seems more like a feature request for WebCit...the ability to define your day's start and stop times. Ok, that has been added. Unfortunately, in the process of adding this I've discovered some weirdness issues with the calendar itself...
[Citadel Development] (no subject)
..and fixed them. :)
[Citadel Development] (no subject)
Umm... yeah, a couple of weeks ago we moved all of the Citadel code from a CVS repository to a Subversion repository. It seems to be what most people want to see these days, and I must admit it does seem to run a little smoother.
[Citadel Development] (no subject)
You could also try ./configure --without-libical
[Citadel Development] (no subject)
http://www.webdevelopersjournal.com/articles/jsevents3/jsevents3.html Events And _javascript_: Part 3 - The Event Object - The Web Developer\'s Journal
[Citadel Development] (no subject)
That's what it says, but I figured I'd try it in Firefox and ... it works! More testing will of course be necessary. Evidently the Mozilla people went ahead and implemented those event parameters, which is good, because I'm implementing a multi select list and I'd rather detect the Ctrl and Shift keys in one line of code than go through a screenful of wacky browser detect crapola. This is for the mailbox view in WebCit. The little checkboxes are going away. Already I have it setting the silly little highlight bar on the selected message, and now I've got ctrl-click working for multiselect; and of course for single selects it goes ahead and de-selects any messages that were selected before... At this point it's just a matter of writing some simple glue code to handle a click of the Delete button (and, of course, the Delete *key*) and have it do a dynamic delete of the selected rows, and send an ajax transaction to the server to have it delete those messages. All without reloading the page. After that's done ... then comes the fun part: drag and drop, to move selected messages to another room. Now that'll be interesting.
[Citadel Development] (no subject)
Which version of FF? It didn't work for me on windows FF 1.0.6. I'm using Linux FF 1.0.6 and it works fine, and for something like this, the operating system shouldn't matter ... what did you code up? Or were you trying to multi-select on Uncensored? I don't have that code running here yet.
[Citadel Development] (no subject)
Not sure what you mean exactly.. but punctuation actually -isn't- supposed to be in quotes, if it's trailing punctuation... I know I'm really late in answering this, and it's not really important to our development process, but here goes anyway... Correct grammar dictates that when a quote appears at the end of a phrase or sentence, the punctuation must appear inside the quotes. It really does. Ask any English teacher. I tend to break this rule in program output, or when conveying computer-related information to people, because I don't want the punctuation to be mistaken as part of the string.
[Citadel Development] (no subject)
IG: I tried all the examples from that page, none of them worked -- and I've now tried it on my machine @ home, same result. Again 1.0.6 on XP. For those of you following along at home ... :) This morning, Mono and I ran some tests using my new multi-select code for the WebCit mailbox view, and it worked fine on his Firefox 1.0.6 browser. We have concluded that the event model shown on that web site I cited earlier is ok for cross-browser use (at least it works in Firefox, IE, and Konqueror) but their examples are broken.
[Citadel Development] (no subject)
i'm missing the admin-name in in the environment docs... and DISABLE_OTHER_MTA should better be ACT_AS_MTA or that should be there too, Ok, done. It's ACT_AS_MTA now, and you can set the system administrator name using SYSADMIN_NAME.
[Citadel Development] (no subject)
0xb7d0e4c0 in strcasecmp () from /lib/tls/libc.so.6 Ok, I've found and replaced some more absolute url's. Try it again. By the way, it looks like this technique is *not* going to be usable for GroupDAV or for the mailing list subscription stuff. Both of these modules require absolute knowledge of their URL paths...
[Citadel Development] (no subject)
All: if you get a chance, and want to see something cool, grab the latest svn of WebCit, clear your browser cache, and try out the webmail. Click to select, ctrl-click to multi select, both the delete button and the delete key on your keyboard work for deleting selected messages, and the table header no longer scrolls with the table. I even went the extra mile and made it work in Internet Explorer, so windows users who don't have a web browser can use it too. :) There is still much to be done, but I'm happy that I finally am starting to grok the whole JavaScript thing about capturing events and using them to manipulate document elements.
[Citadel Development] (no subject)
wouldn't it be a suitable way to add a 'basepath-extension' to the config done by setup? that the links realy go to /webcit ? That's not a bad idea ... if I could get it to ignore a prefix of /webcit in any URL's, then you could just pass through any URL's that start with /webcit, /listsub, and /groupdav -- without changing them.
[Citadel Development] (no subject)
dothebart: I've worked on this a bit tonight and I think I may have something you can work with. WebCit now strips away the string /webcit if it is prepended. So, if you can figure out how to get Apache to just pass along any URL's that start with: /webcit /listsub /groupdav *Without changing them* ... then WebCit should handle it. (This is of course in the current svn tree.)
[Citadel Development] (no subject)
dothebart: thanks for testing! I think we've got something good now :) * the /listsub header doesn't set the right content type header, the html gets displayed as plaintext in the browser. Fixed. the 'who is online' just displays the ip of the proxy apache. webcit should examine the headers apache adds for that purpose: X-Forwarded-For: 192.168.1.1, 192.168.2.1 Good idea! I have added a new -f command line option that tells WebCit to honor the X-Forwarded-For: header if one is present. When this option is in effect, the host name displayed will be the last host in this header instead of the host on the other end of the HTTP socket (which is, of course, the address of the proxy server, which is useless to us). Thanks for pushing me to get this working. I think it's going to be very useful for a lot of people.
[Citadel Development] (no subject)
serv_inetcfg_init calls get_mm, which is only enabled reading the control file, i've tried swapping them,seems to work, and control file is created. Thanks for the patch. I have applied it.
[Citadel Development] (no subject)
Simply put...how often, in seconds, do you want your network sessions to run. Take the number of minutes you want between network sessions, multiply them by 60,and put that number in. (ie 15 minutes X 60 seconds = 900 seconds...if you want to network every 15 minutes, you put 900 into the Network Run Frequency field. To clarify this a little bit... A network session consists of TWO activities: 1. Searching the networked rooms for messages which need to be sent to other nodes 2. Polling other nodes and exchanging data We also have to examine the spoolin/ directory to see if any messages arrived from other nodes, but we do that once every minute.
[Citadel Development] (no subject)
Zimbra's web interface is super slick; they've done a fabulous job with it. Underneath the covers, though, it's quite ugly: its 150+ MB footprint carries along an entire Java runtime, an entire Tomcat runtime, an entire copy of MySQL, and a bunch of other stuff. That's how they got it to market so quickly. We're still waiting for Bynari for our Outlook connector. They keep telling me that ical/vcard support is coming soon, but it keeps getting pushed back. Once it's done, though, we'll have a very compelling solution for organizations that need to connect to Citadel from legacy desktops. dothebart: sorry to say this, but I had to tend to an emergency at work tonight and didn't get to touch Citadel at all. (It's 2:00am here on the east coast of the US and I just got home a few minutes ago.) This means that putting the German translation online got pushed back another day or two. I promise I will make it a priority.
[Citadel Development] (no subject)
de.po has been checked in, but I'm still having some trouble understanding how to get gettext to actually *use* the translation. Hopefully I'll get it right in the next day or two. More good news: another translator has volunteered to help out, so when we get this going, we will have WebCit available in English, German, and French.
[Citadel Development] (no subject)
** IMPORTANT ** Anyone experimenting with the new technique for connecting to WebCit via Apache at /webcit, please remove the line which says ProxyRequests On from the configuration. It isn't needed -- and it turns your server into an OPEN PROXY.
[Citadel Development] Re:Attack of unique message ids and rooms.
Does Citadel provide an ID for a message relevant to the room its in - which will stick with the message forever? NNTP differs from IMAP, POP3 etc. in that each message in a grouphas a unique article ID used when fetching and client-side processing. It is safe to use the message numbers that are native to the Citadel message store, i.e. the numeric key you use to fetch each message. They're guaranteed to be unique, persistent, and strictly ascending.They're also guaranteed to be persistent even if a message is moved or copied to another room, although I don't really know of any way you could take advantage of that in NNTP.
[Citadel Development] (no subject)
My FreeBSD box is running 6.0
[Citadel Development] (no subject)
Cool, that's exactly what we need, to have the browser tell WebCit what language to use. I see that you're using setlocale(). You're going to have to find out whether the effects of setlocale() are thread-local. I don't think it is. There appears to be something called uselocale(3) that sets the per-thread locale. I don't know how it works or how widely it's supported. It does look like you're doing the right thing, though, by calling your new function httplang_to_locale() after an HTTP transaction begins, because it's already running in a thread-specific context at that point.
[Citadel Development] (no subject)
Erg... why are *new* messages getting repeated?
[Citadel Development] Re: messages.c line 128
as this is verry oldschool c, and doxygen doesn't understand it ;) Wow, some old KR C still stuck in there. It's safe to change it to ANSI.
[Citadel Development] (no subject)
This might be worth doing. Can you go into greater detail about those other fields and how they're supposed to look? In other news, I've begun implementing a Wiki View in Citadel. As I had anticipated, the core functionality was ridiculously easy to get running, because the pages in a Wiki room are actually messages whose Exclusive ID are set to the page name. This is where our everything is a message data model really shines -- I didn't have to implement a whole new module for this. Just a few relatively clean hacks to things like link handling, and where to go after posting a message. I still have a few other things to do, such as eliminating the display of message headers, and adding in a way to do revision history and rollback. I'll probably store diffs in a hidden MIME part or something. When completed, this will help to make Citadel a powerful intranet tool, especially when you remember that this type of room will replicate across a network just as easily as any other. I wouldn't go as far as calling it a Notes killer but it will be able to do a lot of the same things.
[Citadel Development] (no subject)
I've copied the List-Post message to my todo list. Hopefully I can find time to implement it soon.
[Citadel Development] (no subject)
Quick poll for those of you who are copyright holders of any portion of the Citadel system: Do you have an opinion regarding GPLv2 vs. GPLv3 at this point? I noticed that the Linux kernel appears to be destined to stay on GPLv2. The alternative is of course the any later version clause. I don't yet have an opinion on this and am willing to go along with the concensus of the group.
[Citadel Development] (no subject)
Any changes that would affect the ability to combine GPL, LGPL, and MIT licensed code in the same package? We currently do that with WebCit, due to the need to include three third-party JavaScript libraries. So far, I've taken an attitude of STFU RMS, it's a bundle, not linked code attitude.
[Citadel Development] (no subject)
I must be thinking of something else then. Apache license maybe?
[Citadel Development] (no subject)
In other news, the Notes view in WebCit is no longer useless. You can now click on a note to edit it, and the Add new note button now inserts a new note directly into the page. Both operations are done ajax-style without reloading the page.
[Citadel Development] (no subject)
I always submit releases to newsforge.com. They tend to appear in the newsvac section.
[Citadel Development] (no subject)
I don't know why, but it appears that many of the short month names are simply *missing* from the de.po file.
[Citadel Development] (no subject)
if i have an apache proxying it seems as if the groupdav urls built just contain 127.0.0.1 as hostname. Fixed. When we have WebCit sitting behind an Apache proxy, we already require the -f option to be specified, which causes it to honor the X-Forwarded-For: header. Now we honor the X-Forwarded-Host: header as well.
[Citadel Development] (no subject)
Unfortunately this is probably a bug in the KDE GroupDAV resource. If possible we will try to find a way to work around it. Right now I just want to focus on making sure we get a *working* GroupDAV back onto the download site.
[Citadel Development] (no subject)
I think I've got a handle on the remaining shigerugo problem. Take a look at this: Content-Type: text/html Content-Language: big5 Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by newsletter2.chinatimes.com id k12MMd1n027277 !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN html head title=A4=A4=AE=C9=C0H=BF=EF=B9q=A4l=B3=F8/title meta http-equiv=3DContent-Type content=3Dtext/html; charset=3Dbig5 As you can see, the charset is being declared in the embedded HTML instead of in the MIME headers. As far as I know, this is illegal, but since most graphical MUA's have mini web browsers built into them, it just happens to work anyway.
[Citadel Development] (no subject)
zwoelf: yes, that'll take care of it. For a calendar room you need to set the message's content-type as text/calendar. Also be sure to put a UID in the iCalendar object. Citadel will *automatically* delete any existing calendar items that contain the same UID as the one you're uploading. If you use the Citadel protocol instead of IMAP, you can also tell the server to automatically mail out invitations to the attendees listed for your calendar event. The server has some very rich functionality behind the scenes that you can take advantage of.
[Citadel Development] (no subject)
svn log ChangeLog
[Citadel Development] (no subject)
zwoelf: there are two problems with your ICAL object that I can see initially: 1. DTEND:200610209T200054Z is an invalid timestamp. You've got too many characters in the date portion of the field. libical barfs on this, telling us X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:Can't parse as DATE-TIME value in DTEND property. Removing entire property: 200610209T200054Z. 2. The string Go, eat fish with Florian is also illegal. The comma needs to be escaped with a backslash.
[Citadel Development] (no subject)
Isn't there a larger issue with RFC2047 format subject lines? If the charset declaration was unrecognized, wasn't the server attempting to render the base64-encoded text as if it encoded a Unicode string? Ah, but the questionable messages do not *have* RFC2047 format subject lines. The last few messages shigerugo had trouble with, had the subject lines written out as raw Big5 (or maybe some other character set) *instead* of being encoded in RFC2047 format. If it were RFC2047 and our iconv simply didn't have a conversion on file for the declared charset, that would be a different story. We could provide a place for the site operator to add more aliases, and things would probably be ok.
[Citadel Development] (no subject)
Heh. The Citadel accounts are still created, of course, but they're directly tied to corresponding host system accounts (and authenticated as such). Simply build Citadel using ./configure --enable-autologin. By the way, you should be using the current sources in svn if you want to do this. It did work before, but mixed mode authentication was a bit on the cranky side, so in recent weeks we've ditched it and are now forcing site operators to choose between one or the other.
[Citadel Development] (no subject)
When running in autologin mode, Citadel joins to the numeric UID, not the login name. You will, however, have a different problem: Citadel uses the display name as the primary key to identify users, so when jdodson logs in, she'll still be logged in to Citadel as Jane Doe.
[Citadel Development] (no subject)
Ok, it's time to start leading up to a new release of both Citadel and WebCit packages. Are there any showstopper type issues that we need to correct first? I know that dothebart and radaquii are going to be working on some HTML/CSS cleanup in a couple of days, so we can wait for that... we can also get .po files out to the translators... after that, we ought to get a 6.72 out onto the download sites so people can take advantage of the numerous fixes and improvements we've put in over the last couple of weeks.
[Citadel Development] (no subject)
Yes.
[Citadel Development] (no subject)
Oh you mean *that* page blocking bug. It hasn't been fixed. :) I thought you were referring to the problem with not getting paged in WebCit because of popup blockers. *That* we fixed. Uhmm... fleeb, have you verified that this bug exists when someone other than Aahz is paging you?
[Citadel Development] (no subject)
room_ops.c, line 1852. You should be able to hack that to test for either sufficient access *or* running as an internal program. Try to test a couple of different use cases if you make the change.
[Citadel Development] (no subject)
That's great! I'm looking forward to testing it tomorrow.
[Citadel Development] (no subject)
Problems building citadel gaim plugin: acancro$ ./pm gcc -g -O0 -Wall -fPIC -shared -I. -I/usr/include/gaim -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/lua50 -DLUA_USE_POSIX -c -o .pm-cache/1-citadel.o citadel.c citadel.c: In function `citadel_login': citadel.c:267: error: `GAIM_CONNECTION_NO_IMAGES' undeclared (first use in this function) citadel.c:267: error: (Each undeclared identifier is reported only once citadel.c:267: error: for each function it appears in.) citadel.c: At top level: citadel.c:499: error: `gaim_normalize_nocase' undeclared here (not in a function) citadel.c:499: error: initializer element is not constant citadel.c:499: error: (near initialization for `protocol.normalize') rm -f .pm-cache/1-citadel.o pm: object 'cfile', defined at pmfile:25, failed to build with return code 256
[Citadel Development] (no subject)
Unfortunately I have already published v6.72 tarballs of both Citadel and WebCit. I know that I keep saying that I really want to make our next release the all-singing, all-dancing 7.00 version, but at this point it appears increasingly likely that we will continue along with maintenance releases. We can just keep the big new features disabled in those maintenance releases until they're fully developed. dothebart: if you could tell me what are the *most* *important* things you need worked on for your users, I can try to spend some time on them. Maybe your two or three biggest issues.
[Citadel Development] Re: Gaim-Citadel 0.3.1
I'm now running gaim-citadel 0.3.1 (or whatever is in SVN this morning) on my desktop computer at the office. Everyone's a buddy mode appears to work now. When additional users log in, they appear in the Uncensored group on my buddy list. I do seem to notice, though, that buddies are not removed when they log out. The list just keeps growing, and it will even let me try to send messages to users who are not logged in anymore (which fails, of course). Even with that bug, though, this is looking better and better. I'm still very excited about seeing Gaim plugged directly into a Citadel server. :)
[Citadel Development] (no subject)
I don't want to sound like I'm nitpicking. It really is a righteous hack.
[Citadel Development] (no subject)
It would be helpful if I had some way of getting to tucholsky other than just webcit. I don't need root on the box or anything like that, but if I could hit those calendars with several different protocols, it could provide some additional data. Also the exact version of Kontact/Korganizer/KDE/K-whatever the problem users are running.
[Citadel Development] (no subject)
dothebart: which room on tucholsky was the one that caused WebCit to get out of sync with the server when you went to that room? I went in there tonight to try to find the problem and I couldn't locate the trouble room. Did you delete the messages since then?
[Citadel Development] (no subject)
IMPORTANT - When we rolled back to an old version of our GroupDAV service, one of the things that got destroyed was the new version of locate_message_by_uid() which uses the server-side index. I have once again put in a version that uses the index. IN CASE this was part of what caused the problems before, I have left BOTH versions in the source code, with one commented out. In groupdav_propfind.c, around lines 38 through 56, you will see sections marked *** THE NEW WAY *** and *** THE OLD WAY *** When testing, please see if any of the old problems came back. If they did, try moving the comment blocks so as to reactivate the old way and see if it changes. I need to know whether this affects anyone's systems.
[Citadel Development] (no subject)
I think we may have discussed this before... but if Citadel is your target server, you'll get better performance if your client connects directly to the Citadel server instead of going through GroupDAV. Depends on your target and desired scope, I guess. I still think CalDAV is a bad idea, but it's gaining momentum so we have to follow along. And now I'm seeing noise about something called CardDAV for address books. Again this demonstrates GroupDAV's superiority, because GroupDAV can already handle multiple types of groupware items.
[Citadel Development] (no subject)
Nuclear bombs dropped on Provo and Boston (or have the Bad People moved to Waltham?) would be a good start.
[Citadel Development] (no subject)
Those logs are kind of hard to read. I have a copy of Ethereal here -- I'd like to be able to just load up a tcpdump file and hit Follow TCP Stream
[Citadel Development] (no subject)
Status update: bubble tooltip library has been downloaded and heavily modified for our use. I didn't like the fact that all it could show was an alternate representation of the title attribute of a link, so I gave it a custom attribute and added the ability to do HTML as well as plain text. It's been integrated into the WebCit framework now, and all of the links on the calendar month view are hot -- I just need to spend another half hour or so writing the code that generates the HTML content of the bubbles. I think this will end up being one of those wow factor features. As simple titles, the bubbles are cool but gratuitous. With actual extended information in them, they really will kick the usability level up.
[Citadel Development] (no subject)
matt: you might want to get onto irc.citadel.org #citadel and chat with dothebart about this -- he's in there right now making changes to file and pathname locations. If it's affecting your system then the two of you need to talk, because it could be affecting other systems too. I'd like to publish a new version of the Citadel server code soon, so we ought to make sure any pathname bugs are ironed out. The other thing holding that up is the IANA -- I'm still waiting for them to assign us a private enterprise number for our LDAP schema. We're still using Kolab's numbers and that just won't fly in the real world. But it looks like we've been approved and will get a number within the next week or two. I think this was the other issue that zwoelf was contending with -- LDAP setup. This will make it work flawlessly with the latest version of OpenLDAP.
[Citadel Development] (no subject)
dothebart: In the Citadel server ... 'mkinstalldirs' needs to chown all directories it creates to the citadel user, otherwise many server operations will fail. The most obvious is that it can't read the contents of messages/ and help/ banners, but it'll probably also cause images and bios and network stuff to fail.
[Citadel Development] (no subject)
setup.c had a mkdir() and a chmod() for each directory; I've added a chown() to each one. That appears to have fixed the problem.
[Citadel Development] (no subject)
Bubble pop-ups for the calendar month view are now complete. I made a bunch of changes to the original code (a public domain posting to a web design web site, but I did make sure to give the guy credit in the readme)... * The original code was only capable of re-rendering the TITLE attribute of a link. I created a custom attribute that is capable of handling HTML markup. * The image has been resized so that larger bubbles are now possible. * The bubble now drops to the left instead of to the right, so it doesn't run off the screen when you hover over a Saturday event. (The left side is less critical because the icon bar provides extra space.) * I worked around a bug that would cause Internet Explorer to crash under certain situations. I'm really happy about this. It's a simple little thing, and it only took a little while to implement, but it's one of those things that carries a lot of wow! factor -- at least I think it conveys the look of a really polished modern web application.
[Citadel Development] (no subject)
You can receive it as a mailing list but because it's a semi-private room there's no self-service subscription page. Email me with your info (email address and whether you'd like it in digest or regular format) and I'll hook you up.
[Citadel Development] Re: Citadel development
I would appreciate some feedback on tools others may be using for development here. I come form the windoz world (no flames please) I'm sort of a luddite when it comes to development. vi, gcc, and make. :) dothebart is currently dragging me kicking-and-screaming into the 21st century. Some more modern tools are starting to get used. But it'll be a cold day in hell before I use emacs. :)
[Citadel Development] (no subject)
There's probably a *lot* more that I could do with gdb, but all I ever use it for is to print a stack trace when a program crashes.
[Citadel Development] (no subject)
dothebart: Here's the output of webcit autogen.sh when I attempted to run it on FreeBSD 6.0: /autogen.sh: line 4: intltoolize: command not found configure.in:8: error: possibly undefined macro: AC_PROG_LIBTOOL If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. autoreconf: /usr/local/bin/autoconf259 failed with exit status: 1 Any ideas?
[Citadel Development] (no subject)
And here's what happens when I bootstrap webcit with autogen.sh on a Linux system, and then run ./configure on FreeBSD: checking whether NLS is requested... yes checking for GNU gettext in libc... no checking for iconv... no, consider installing GNU libiconv checking for GNU gettext in libintl... no checking whether to use NLS... no checking for perl... /usr/bin/perl checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool
[Citadel Development] (no subject)
There is a slight possibility that I may be getting a handle on some of the weird connectivity and performance problems with Citadel on FreeBSD. fleeb and others ... check your logs for the following message: client_write() failed: resource temporarily unavailable It appears to have something to do with non-blocking sockets and EAGAIN and... uh... something. I'm going to tinker a bit on my FreeBSD dev box and see if I can make it change its undesirable behavior.
[Citadel Development] (no subject)
Actually, the R in resource is capitalized. buzzwang sent me some sample messages, and I was able to use one of them to reliably produce a problem every single time -- a call to write() on the socket produced EAGAIN, which made the client barf. Presumably an IMAP client would do the same thing. A fix is checked in. I am now going to head over to the WebCit sources and see if the same problem needs to be fixed there.
[Citadel Development] (no subject)
ok ... WebCit doesn't have the same problem because the network listener is structured a little bit differently. In the Citadel server, we put in a call to fcntl() to set all master listening sockets to non-blocking, in order to deal with a rare situation in which select() told us about activity on the socket but accept() didn't return, thereby locking up the server until another connection arrived. This caused the individual session sockets to be set to non-blocking as well. Subsequently setting the individual session sockets back to blocking seems to have corrected the problem I was seeing on FreeBSD. I don't know why FreeBSD gives us EAGAIN on write() in some situations, where Linux and Solaris don't ... but the change does fix it. This is irrelevant for WebCit because the WebCit listener blocks on accept() instead of select() while waiting for activity.
[Citadel Development] (no subject)
The IANA has assigned the following Private Enterprise Number to citadel.org (the Citadel groupware project): 25404 Please see the following for your assignment in the registry: http://www.iana.org/assignments/enterprise-numbers Ok, so we got our enterprise number. I think that's the only thing holding up the release of Citadel 6.80.
[Citadel Development] (no subject)
Cool. What about the configure.in:8: error: possibly undefined macro: AC_PROG_LIBTOOL and autoreconf: /usr/local/bin/autoconf259 failed with exit status: 1 errors from autogen.sh ? Did you bootstrap on Linux and then configure on FreeBSD?
[Citadel Development] (no subject)
I'm surprised that it tried to start the services. Do you have a bogus /etc/inittab in your filesystem, perhaps? If it sees /etc/inittab then it assumes you have SysV init.
[Citadel Development] (no subject)
Here's some good news. I just received a status update from the folks who are developing our Outlook connector. It's finally moving along and I may actually receive an alpha test version within a month.