[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Mach to the rescue – again

Filed under: Hacking — Thomas @ 22:09

2006-06-10
22:09

A few months ago I used mach to upgrade an old Gallery install, taking it from PHP4 to PHP5. Today I wanted to hack on buildbot some more, and when trying it on my local SVN test repository I noticed that the repository was borked. Apparently it was once created with BDB 4.2, while my laptop is now using FC5 with BDB4.3. Gotta love Berkley.

Anyway, here's how I got out of the situation. The last Fedora that shipped with BDB 4.2 was FC3. So I did:

mach -r f3c setup
mach -r f3c yum install subversion
cp -pr /home/svn/test /var/lib/mach/root/fedora-3-i386-core/tmp
mach -r f3c chroot

Then, inside the chroot:

cd /tmp
svndump test > svn.dump
exit

And then, outside the chroot again:

svnadmin create test
svnadmin load test < /var/lib/mach/roots/fedora-3-i386-core/tmp/svn.dump

Apparently, Subversion has switched to using FSFS by default, leaving BDB behind. Sounds like a sane choice to me. But if you run into this problem, remember - mach is there to help.

net mapping code

Filed under: Hacking — Thomas @ 18:48

2006-06-09
18:48

I recently wrote some code that I am planning to use to figure out network topology inside Flumotion, based on the information about TCP connections between two hosts.

In short - every TCP connection has two endpoints, and each endpoint has two IP addresses - the local IP address, and the remote IP address. one endpoint's local address is not necessarily the same as the other endpoint's remote address - NAT will mangle one of the two.

The code I wrote exploits this to figure out where NAT hosts are, and which hosts are behind the same NAT box.

I'm sure there must be similar code out there somewhere - someone must have already thought about these problems, no ? My code is up at https://apestaart.org/thomas/trac/browser/tests/twisted/ten, feel free to take a look and give it a try.

new mach release

Filed under: Hacking,Releases — Thomas @ 18:44

18:44

Threw out a new mach release today. I did some nice fixes over the last two months related to reverting to a clean build state, because I was getting annoyed at various random failure cases. Most of them were happening when packages that are in the build list get an upgrade available, and then of course it tries to remove those. If the update is, say, glibc, oops :)

Lately I've been wondering about project maintenance and version numbering. I'm not getting any younger, and basically in the last ten years I don't think I've ever released any software that made it past 0.x Which, when you think of it, is a little silly, because I've written software that works fine, fulfills my needs, and works for others as well. I mean, really, when you are happy with it and you feel ok with recommending it to other people, 1.x should be fine.

So, given that mach mostly just works, that I'm already writing a next generation of it that's easier to maintain, and that I don't plan any major feature additions anyway to this one, I should be moving it to a 1.0 release. So this release jumped from 0.4.9 to 0.9.0.

I vaguely toyed with the idea of releasing it as 2.0 even (because this is the second generation of mach - the first one was makefile-based), but then I would feel forced to number releases of mach3 with 3.x, and it would feel wrong to have a "new-and-unstable" mach3-2.9 or whatever against a mature stable mach2-2.0.

I don't know why I obsess over these little details. Anyway, I am going to break my self-imposed ban on 1.x versions soon.

I Celebrated the release by packaging the latest Twisted releases, which are now split across several modules, as well as a huge chunk of the divmod stack. It's very satisfying to be able to do

mach build python-*/*.spec

, watch it build 15 src.rpm's, order them correctly, and build one after the other without a hitch...

More on twisted and DivMod later.

Cortado 0.2.0 “Broken Record” released

Filed under: Fluendo,Hacking,Releases — Thomas @ 15:17

2006-05-19
15:17

I've got soul
but I'm not a soldier

A movie paints a thousand stills, so first of all ...

If you didn't see a hairy movie, there are two possibilities. Either your aggregator strips embed tags, in which case go here to see it. Otherwise, you are probably missing a Java plug-in for your browser.

this video was made from photos during Kristien's stay in China.
Thanks to Jan Schmidt for the idea and the hard work.

Cortado is an implementation of the GStreamer 0.10 design, but completely in Java. It has plug-ins for Ogg, Vorbis, Theora, Mulaw, JPEG, Multipart, HTTP and Audio and Video sinks. It can be used to play live streams and on-demand streams. On-demand streams can be seeked in (as you should be able to test in the applet above).

Cortado is completely free and an open project. We welcome other people trying it out and hacking on it. Several sites are already using it in production today. In short, if you want to producer or serve video, all the tools are available to do so in free formats.

For more information about this release, check out the release notes or go to the Cortado home page.

Mach 0.4.9 ‘China’ released

Filed under: Hacking,Releases — Thomas @ 21:30

2006-04-09
21:30

Somehow I always end up delaying releases of mach until a few weeks after a new Fedora Core release, even though I always add the relevant files before the release. This time was no exception. One of the main reasons is because I don't have a smooth release process as I have for GStreamer, and that always annoys me enough to not properly do a release.

Anyway, using the prototype tools I cobbled together over the weekend I sent out the release announcement mail and updated the freshmeat record.

As for mach itself, features in this release include:
- added DOAP file (Thomas)
- added Fedora Core 5 (Thomas)
- fix build ordering when building multiple packages (Thomas)
- always evaluate spec file inside the root (Thomas)
- add an option for md5summing of results (Matthias)
- pass 'buildopts' from a root config to rpmbuild (Thomas)
- add 'excludearch' property to root config,
fixes yum's semi-random behaviour on x86_64 (Thomas)
- store yum cache data per-dist, shared for flavors (Thomas)
- clean up yum metadata for local repositories (Thomas)

Enjoy, and let me know if you run into anyissues.

Meanwhile, the mach3 rewrite is getting functionality added step by step as I have some days off to work on them. I added a bunch more stuff the past weekend, and I now have a working mach binary that can go through all the setup steps. That's probably going to stimulate me more than anything else to go back to hacking on it - even though developing the classes correctly and writing unit tests for them on its own is fun as well, as long as there isn't a mach binary to play with it still feels as if it's years away from completion.

« Previous PageNext Page »
picture