XMPP Module - Week 2

Events happening in the community are now at Drupal community events on www.drupal.org.
mxk's picture

Not whole lot of new things to report as far as my project goes. I started reading over the relevant RFCs, I'm still in the processes of setting up the servers that I need to write and test this project, and I spent most of today playing around with a new version control system that I found called Mercurial. Other SoC students who would like to keep track of their projects in another location besides the Drupal CVS might want to take a look at it. More info on my development site.

I'm not sure how detailed the guys at Drupal would like these weekly reports to be, but what I think I'll do is post the more technical things on my own site, and general overviews of how the project is going here. Those who are interested in this project would probably want to visit that site anyway, since that's where all the testing will be done, and those who have zero interest wouldn't be flooded with useless information. Right now my plan is to start working on the client side of things (the jabber client that is), and have something that can send simple messages working by sometime next week. After the client is finished I'm still deciding if I want to write the server part next, or to create the Drupal module with just the client part and require an external server for the time. Will probably have an answer to that once a few parts of the client are written.

-Max

Comments

Yay, more distributed revision control

jpetso's picture

Mercurial is my next target, I'll be examining that one tomorrow or on Tuesday. From what I've heard, it sounds like it really kicks ass.

As for git, that's most definitely an issue of improper packaging, when your package includes one or two unneeded packages (or the ones that are just used by some needless side script, not the main program) and that package then draws in all the really annoying packages like docbook and bash. Git certainly doesn't rely on them, I can tell by looking at those few scripts that it brings to tell you that there's a proper #!/bin/sh shebang.

I don't know much of packaging on FreeBSD (apart from having used Gentoo's portage as an offspring of ports), but it's certainly possible to create packages without this dependency hell, and it would be wrong to bash git for your package's shortcoming.

As for Linus, yes, he's at least arrogant, maybe the asshole that you call him. Nevertheless, "Don't Bash Competing Open Source Products." does not list an exception, and that's for a good reason. A FreeBSD guy bashing Linux is just as bad as a Linux guy bashing FreeBSD, keep that in mind.

Appendix: a proper git package

jpetso's picture

I recalled that there's actually a way to look up dependencies in my distribution's package manager. Here's what git requires on my system:

  • perl-modules, libdigest-sha1-perl, liberror-perl
  • zlib, libexpat, curl, libcurl3-gnutls
  • libc6

Doesn't exactly look like an all too big moth of Linux dependencies. Also, you could argue that Python programs have an easier time with dependencies than C code and all its libraries have.

Running linux?

mxk's picture

Does your system come with bash by default? That would probably explain it, but again, that wasn't really my point.

Git

mxk's picture

I don't know if it is required, but the bash dependency comes from xmlto. The ports system is separate from packages, and the general rule for a port is that an unmodified installation is the minimum needed to have that software working. If you want extra features, you use WITH_X knobs to add additional things and recompile the software with those features. I have never run into a situation where a port would install something that truly wasn't needed, but maybe this is a first. My guess is that xmlto is there for a reason. The point was just that I prefer small and self-contained software, and the difference between Git and Mercurial was a good example of what I meant. To be honest though, even subversion has fewer dependencies, and it's a rather heavy project at this point.

As for my comments about Linus, fair enough, but I would point out that there is a difference between saying I don't like Linux, and saying that Subversion is the most pointless project ever created. Not liking it is one thing, I don’t think you can fault me for that, but Linus was suggesting that Subversion shouldn't exist, which is a bit of a stretch. I would say that both CVS and SVN were essential to simply getting Linux to where it is today, so for such a major figure in Linux development to say that these projects are just terrible is a bit odd IMHO. But nevertheless, sorry if that offended anyone.

Oh and I wasn't bashing, I was tcshing :)

More on Linus and dependencies.

jpetso's picture

As for my comments about Linus, fair enough, but I would point out that there is a difference
between saying I don't like Linux, and saying that Subversion is the most pointless project ever created.
Not liking it is one thing, I don’t think you can fault me for that, but Linus was suggesting
that Subversion shouldn't exist, which is a bit of a stretch.

I'm sorry, that was my misunderstanding then, not having watched the video myself yet (but I will). I got that in a way that you wanted "permission" to bash Linus, but instead you were upset that he does it all the time, which is true and totally right to be upset about. Even if Linus is a major figure in Linux development, he certainly hasn't got the decency to be sensible where he needs to. (He's also not alone with that, see Theo de Raadt as an even better example.) I dislike him more for for being absolutely indifferent to freedom issues, and I think he does a lot of things wrong, apart from doing a lot of things right with leading Linux kernel development itself.

Then again, it's generally a good idea for open source developers to grow a thick skin for critizism from outside, and most people by now got it that when I say "In my personal opinion, GNOME is a bit too simplistic" and Linux says "That brainfucked way how GNOME does things is INSANE" it essentially means the same thing, only expressed in a different way. Just don't take him for his exact word, and get down to the essence of what he would have said if he hadn't got that tendency to piss off people.

I have never run into a situation where a port would install something that truly wasn't needed, but maybe this is a first.

Maybe that comes from the situation that the package is split into multiple parts on my system (git-core, git-doc, gitk, gitweb, etc.) which all belong to the "standard" git distribution and probably come with a wider range of dependencies than git-core itself. Nevertheless, this really is a packaging issue, and I believe git is not to blame. No, bash is not assumed to be a fixed dependency on Kubuntu, although it's installed by default.

And as I said, it's kinda unfair to compare a Python project's packaging with a that of a C project. The former doesn't need any build system and has all kinds of features built into the language's core libraries, while the latter depends on both build systems and a multitude of libraries that are needed because the language itself doesn't provide them. But ok, I agree that the outcome is what matters in the end :-}

Mid-week Update

mxk's picture

Just post a rather lengthy update to my development site, mostly to organize my own ideas and explain the client API. For anyone who might be interested in later doing some development using my XMPP library (be it for Drupal or something totally separate), now is an excellent time to make any requests or suggestions for the way you'd like it to work.

-Max

SoC 2007

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: