Development
Version Control with GNU Arch
There was a time when there were only a few open source version control systems: CVS and RCS were the most prominent examples and there was little else. Since the late 1990s a huge number of Source Code Management (SCM) systems have come into existence. GNU Arch, Subversion and Monotone are some of the more prominent projects, but there seems to be no consensus as to what constitutes a good approach to Source Code Management. As a result, open source SCMs fill a huge number of niches, although - as Larry McVoy has pointed out a while ago - except for systems that scale well for hundreds of users, there is little money to be made from consultancy or support. Famously, Linus Torvalds uses Larry's commercial package BitKeeper.
Architecture and Features
GNU Arch is a distributed version control management system, i.e. it allows the "cloning" of a tree containing the source or binary files stored at a local or remote repository. The word "directory" is used advisedly here, since Arch creates new repositories and archives by creating new directories inside ftp, sftp or WebDav servers. There is no underlying database or special file format underlying GNU Arch; as the documentation points out, "remote archives do not require an Arch specific server." GNU Arch setup is therefore remarkably simple. Tom Lord designed and wrote GNU Arch. In keeping with the fractious history of open source SCM tools, GNU Arch spawned its own secessionist project named ArX, which was written in C++ and is being led by Walter Landry.Tom Lord started the GNU Arch project as a shell script collection to avoid having to use CVS; CVS uses a client-server model and does not support certain types of merge operations, among other things. Since each branch has its own version of the source tree, and all commands work across local and remote version of the source tree, it is perfectly possible for someone with read access to a remote source branch to merge the changes committed by a different user at the remote branch with her own source tree: no centralized server is necessary.
Commits are always accomplished atomically on source trees; the changesets in Arch handle a huge variety of data, for instance symbolic link additions, directory changes, and very importantly, renames. Revisions are always uniquely and globally identifiable. It is perfectly possible to remove and add the same changes to permit experimentation with the code. The merging process will forgive such cruelty, recording the change history and even making the subsets of changes viewable by other developers.
Atomic commits make it possible for changes to propagate to all repositories. If the commiter is working from an http repository, the remote user can only accept changes. The commiter cannot write the changes to the remote repository. If all users of GNU Arch use ftp, sftp or WebDav, the commiter can work from whatever repository he chooses, since he is likely to have cloned the master repository. Once he is finished working, he can propagate the changes to the master repository, or he can just make them available to all members of the project.
It helps that GNU Arch is built on standard Unix utilities, since the files Arch is working with essentially consist of a number of tar files saved in a Unix directory tree with a few control files thrown in for good measure. All commits and imports just send compressed tar files to the remote repository. This, as Tom Lord elaborates on in some depth, could lead to performance problems. GNU Arch is trying to transfer the performance load mostly onto client side machines and it is also taking advantage of the fact that disk space is a lot cheaper (in terms of cost and performance) than bandwidth.
In short, there are several mechanisms to cope with this problem: one is cached revisions. The user is able to choose a reasonably spaced interval at which a cached revision is going to be stored in the master or local repository. This avoids the problem of sucking down dozens of change sets during a major update, and having to live with the concomitant strong network bandwidth burden. After comparing the size of the compressed source tree revision and the number and size of changesets, a caching policy can be chosen by the user. This is not always considered an advantage by some users, and high-traffic developmental sites might find this feature problematic.
Another policy consists in using so-called read-only archive mirrors. It is perfectly possible to store revisions and changesets at special archive mirror locations. This can lessen the load on the master repository, and simplify the work for a developer who is making all and sundry changes.
A final - and completely client-side - feature of GNU arch configuration is called a revision library. Again, by using local disk space, pre-built copies of read-only source tree revisions are stored locally, but files that have been left unmodified during changes are shared between revisions. It uses some file-linking magic that makes new changesets that are not shared with previous source incarnations private to the newly patched tree.
Other features make GNU arch truly shine, in particular in with regard to merging, although it has to be said that low-level work with GNU Arch can be demanding. It has an extremely complex command set, allowing a level of control and granularity that is unusual, even for source code management professionals.
It is not easy to compare GNU Arch to other OSS version control management systems, unless one is willing to compare it to other distributed architectures. Neither CVS nor Subversion fall into that category. For anyone migrating from CVS or Subversion, it is possible to feel at home, since the base command sets are similar. It is useful to budget some time for the migration, since GNU Arch documentation is not entirely comprehensive. But in all, it is a very fast, very powerful version control management system perfectly suited to the distributed world of open source development.
System Applications
Audio Projects
Planet CCRMA Changes
The latest changes from the Planet CCRMA audio utility packaging project include new versions of Ardour, Liblo, and Iemlib.
Database Software
PostgreSQL Weekly News
The February 25, 2005 edition of the PostgreSQL Weekly News is online with the week's PostgreSQL database news.DBD::Pg 1.40 released
Version 1.40 of DBD::Pg, the DBI PostgreSQL interface for Perl, has been announced. "This version has many changes from 1.32, including support for server-side prepares, SQLSTATE codes, a last_insert_id function, and improved Win32 support."
Filesystem Utilities
Lustre 1.2.4 released
Version 1.2.4 of Lustre, a cluster filesystem, is now available as open-source software. "Lustre 1.2.4 was first released to our customers in July 2004, and contains a number of improvements over the previous public release".
Interoperability
Samba 3.0.12pre1 Available for Download
Version 3.0.12 pre-1 of Samba is available. "This release is *not* intended for production servers. However, there have been several bug fixes and new features added since 3.0.11 that we feel are important to make available to the Samba community for wider testing."
Libraries
FreeImage 3.6.1 released (SourceForge)
Version 3.6.1 of FreeImage, a cross-platform library with support for popular image formats, is out. "This maintenance release fixes a memory leak occuring in the metadata API. As this also affects bitmap loading, upgrade is highly recommended."
Announcing Poppler
A new PDF rendering library called Poppler has been announced. "A couple of weeks ago there was some discussion about forking xpdf into a pdf rendering library. The thread sort of died, but it's an important issue, so I've gone ahead a created this thing and called it poppler."
Networking Tools
moodss 19.7 (stable) released (SourceForge)
Stable version 19.7 of Moodss, a modular GUI application for monitoring systems, networks, and databases, is available. "In this version, an annoying bug that prevented database browsing was fixed. The title areas of displayed data tables now change color to reflect the states of the corresponding modules. A standard deviation column was added to the statistics table."
Printing
accsnmp 1.0 released
Version 1.0 of accsnmp is available for CUPS, the project description states: "A Perl backend wrapper that accounts for jobs by querying the printer over SNMP for its pagecount before and after the job. Built-in support for job and user blacklisting. Simple accounting function stores user pagecounts in text files. Easily customizable."
Web Site Development
GrokLaw News Picks Plugin Released (Groklaw)
The News Picks feature from the GrokLaw site has been released as open-source code. "I just wanted to let you know that stevem's code for our News Picks feature has been accepted by Geeklog, and it's downloadable as a plugin on Geeklog's website. So now anyone who wishes can use this new feature on their websites too. Enjoy. It's under the GPL, naturally. So, Son of Groklaw and Bride of Groklaw websites and everyone else too: Have at it. : )"
Desktop Applications
Data Visualization
Grace 5.1.18 released
Version 5.1.18 of Grace, a WYSIWYG 2D plotting tool, has been announced. "This is a maintenance release of the 5.1 series; an upgrade is recommended."
Desktop Environments
Announcing KDE 3.4 Release Candidate
The first release candidate for KDE 3.4 is now available for source download. "We want to have this tested as much as often, so we can't wait for vendor binaries, so please test the sources if you have experience in this." Click below for additional information on using konstruct to help build the RC1 from sources.
GNOME Software Announcements
The following new GNOME software has been announced this week:- Beagle 0.0.7 (multiple enhancements)
- Epiphany 1.5.7 (bug fixes and other improvements)
- Epiphany 1.5.8 (miscellaneous changes)
- Epiphany Extensions 1.5.8 (multiple enhancements)
- Evince 0.1.5 (bug fixes and interface improvements)
- Evince 0.1.6 (poppler pdf viewer support)
- Evolution 2.1.6 (bug fixes and translation work)
- Gaim 1.1.4 (bug fix)
- GLib 2.6.3 (bug fixes, documentation and translation work)
- gcalctool v5.5.40 (bug fixes and translation work)
- gedit 2.9.7 (bug fixes and translation work)
- gnome-games 2.9.7 (bug fixes, documentation and translation work)
- gnome-panel 2.9.92 (bug fixes and other improvements)
- GnomePython 2.9.5 (unstable) (bug fixes)
- Gnome System Tools 1.1.92 (bug fixes and translation work)
- System Tools Backends 1.1.92 (FC3 support, bug fixes, new features)
- GNOME Terminal 2.9.3 (bug fixes and translation work)
- gnome-utils 2.9.9 (unstable development release)
- GNOME War Pad 0.3.6 (new features and bug fixes)
- gnubiff 2.1.1 (bug fixes and other improvements)
- gNumExp 0.10 (bug fixes and other improvements)
- GTK+ 2.6.3 (bug fixes and other improvements)
- GTK+ 2.6.4 (bug fixes and translation work)
- gtkmm 2.5.7 and glibmm 2.5.6 (bug fixes and documentation improvements)
- Gtk2-Perl 2.9.92 (bug fix)
- GtkSourceView 1.1.93 (bug fixes)
- Java-GNOME 2.9.92 (2.10 RC1) (bug fixes and build improvements)
- libgtk-java 2.6.0 (new features and bug fixes)
- libgtkmozembed-1.7.0 (initial release)
- libxklavier 2.0 (xmodmap support added)
- Metacity 2.9.34 (unstable testing release)
- Pyphany 0.1.2 (API resync, documentation improvements)
KDE Software Announcements
The following new KDE software has been announced this week:- amaroK 1.2.1 (bug fixes and new features)
XFree86 4.4.99 Release Candidate 2
Release Candidate 2 of XFree86 4.4.99 has been announced. "Well it seems that the last candidate has some, ehem, problems and so our Release Engineer David Dawes has rolled another Candidate. This puts us squarely into the midst of the xtest. phase of our Release cycle. All the source and the particular notes for xtest are included with the Candidate, so this is very much One-Stop Shopping."
Electronics
XCircuit 3.3.10 released
Version 3.3.10 of XCircuit, an electronic schematic drawing package, is available with several bug fixes.
GUI Packages
wxWidgets 2.5.4 released
Version 2.5.4 of wxWidgets, a cross-platform GUI package, is available. "This is a development snapshot; we intend to make one more snapshot release (2.5.5) and then make the stable 2.6 release in March. Please let us have feedback and patches based on your experience on 2.5.4!"
Medical Applications
OpenVistA VivA FOIA Gold 20050212 available (LinuxMedNews)
LinuxMedNews has announced the availablilty of OpenVistA VivA FOIA Gold 20050212, an electronic medical records system. "OpenVistA VivA FOIA Gold 20050212 is available as is OpenVistA SemiVivA FOIA Gold 20050212. Effective this release, release numbers will reflect the date of the VistA release on the US Department of Veterans Affairs FTP site; in this case, Feb 12, 2005."
Music Applications
System exclusive librarian for Roland SC88
The initial release of sc88sysex, a MIDI system exclusive data utility for the Roland SC-88 synthesizer, is out.liblo 0.17 announced
Version 0.17 of liblo, a library that implements the Open Sound Control protocol, is out with bug fixes and new features.
Office Suites
OpenOffice.org Newsletter
Volume 02, Issue 8 of the OpenOffice.org Newsletter is online with the latest OpenOffice.org project information.ooo-build-1.9.79 released
Version 1.9.79 of the ooo-build OpenOffice.org fork has been released. This version includes numerous bug fixes, some documentation improvements, and more.
Video Applications
Video for jack: xjadeo 0.1.0 released
Version 0.1.0 of xjadeo has been announced. "xjadeo is a rather featureless video player (it understands just one single video encoding) that displays the video frame corresponding to jack's timebase. Its purpose is to make possible visual feedback when working on the soundtrack of a video clip."
Web Browsers
Firefox 1.0.1 released
The Mozilla Foundation has announced the availability of Firefox 1.0.1. This release contains a number of security fixes, including a patch for the IDN spoofing vulnerability. See the release notes for the details.Mozilla 1.8 Beta 1 Released (MozillaZine)
Version 1.8 Beta 1 of the Mozilla browser has been announced. "Web developers may be interested to hear that this release has partial support for ECMAScript for XML (E4X), which adds native XML support to JavaScript." See the change log for details.
Mozilla Foundation reaches an agreement with AOL on DevEdge content (MozillaZine)
MozillaZine covers an agreement between the Mozilla Foundation and AOL. "Mozilla Foundation has reached an agreement with America Online, which allows them to host and improve former Netscape DevEdge Content. Mitchell Baker posted a blog entry informing that Deb Richardson would join Mozilla Foundation as a technical editor and project manager of DevMo. DevMo is the new community based project focussed on developer documentation and resources."
Minutes of the mozilla.org Staff Meeting (MozillaZine)
MozillaZine has announced the minutes from the February 22, 2005 mozilla.org Staff Meeting. "Issues discussed include Mozilla Firefox 1.0.1, Mozilla 1.8 Beta, Spread Firefox, update.mozilla.org and the international domain name Punycode spoofing issue.
Languages and Tools
C++
C++ exception-handling tricks for Linux (IBM developerWorks)
Sachin O. Agrawal covers C++ exception-handling on IBM developerWorks. "Handling exceptions in C++ has a few implicit restrictions at the language level, but you can get around them in some instances. Learn ways to make exceptions work for you so you can produce more reliable applications."
Caml
Caml Weekly News
The February 22 - March 1, 2005 edition of the Caml Weekly News is online with the latest Caml language articles.
Java
IBM Helps Drive Open Source Development (SourceForge)
SourceForge has announced a contribution of over 30 open-source projects from IBM. The IBM Jikes Compiler for the Java Language and several other Java-based projects are part of the release.Internationalization, Part 2 (O'ReillyNet)
O'Reilly has published part two in an excerpt series on internationalization under Java. "Part one of this two-part excerpt from Java Examples in a Nutshell, 3rd Edition covered the first two steps to internationalization in Java: using Unicode character encoding and handling local customs. This week deals with the third step in the process: localizing user-visible messages."
JSP
The JSF application lifecycle (IBM developerWorks)
Rick Hightower discusses the JSF application lifecycle on IBM developerWorks. "In this second article in his four-part JSF for nonbelievers series, Rick Hightower introduces the major phases of the JavaServer Faces (JSF) request processing lifecycle. Using a sample application, he walks you through the six phases of a request process. Along the way, he shows you how to combine JSF with JavaScript technology for immediate event handling and completes your introduction to the JSF component model with a first look at many of the components that ship with JSF."
Lisp
Foil - Foreign Object Interface for Lisp
The Foil project has been announced. "Rich Hickey has announced on Feb 24, 2005 the availability of Foil (Foreign Object Interface for Lisp). It "[...] consists of a protocol and a set of libraries that facilitate access to popular object runtimes, such as the JVM and the CLI/CLR, and their libraries [...]" from Common Lisp."
Perl
The Perl Review, Spring 2005 (use Perl)
use Perl has announced the Spring 2005 edition of The Perl Review. Articles include: Hashes with History, Test::Number::Delta, 9-Block Quilt Patterns in Perl, Packet Sniffing with Perl, Serious Perl, Barcodes from Perl, and more.Pugs Apocryphon 1 released (use Perl)
Use Perl has announced the availabilty of the document Pugs Apocryphon 1, a description of Pugs. "Started in February 2005, Pugs is an implementation of the Perl 6 language. Autrijus Tang is responsible for the design and development of Pugs with help from a group of committers and contributors."
This Fortnight in Perl 6
The February 9-22, 2005 edition of This Fortnight in Perl 6 is online with the latest Perl 6 news.
PHP
PHP Weekly Summary for January 24, 2005
The PHP Weekly Summary for January 24, 2005 is out. Topics include: auto_globals_jit, build issues, stream_socket_accept(), unwanted fixes, win32 freetds support, PHP-GTK 2 on a roll, and --prefer-non-pic fixed.PHP Weekly Summary for January 31, 2005
The PHP Weekly Summary for January 31, 2005 is out. Topics include: More PHP-GTK 2 development, checking for installed modules, superglobals and variable variables, build issues continued, uploading files and ext/mbstring, commits to stable branch, and SPL-based exceptions.PHP Weekly Summary for February 7, 2005
The PHP Weekly Summary for February 7, 2005 is out. Topics include: Referencing superglobals, planning PHP 5.1, PHP-GTK 2 development (continued), shared resources between extensions, moving to PECL, and Call for Papers: ApacheCon Europe.Access an enterprise application from a PHP script
Caroline Maynard, Graham Charters, and Matthew Peters use PHP for business logic on IBM developerWorks. "Many Web developers enjoy the versatility and ease of use of PHP, but sometimes they need to access existing business logic in a J2EE application server. In this article and through code examples, learn how to use the new SOAP extension in PHP 5 to access a J2EE application using Web services, without having to leave the PHP environment or learn a new programming model."
PostScript
GSview 4.62 beta release
Beta version 4.62 of GSview, a PostScript viewing application, has been announced, it features multiple bug fixes and other improvements.
Python
Dr. Dobb's Python-URL!
The February 24, 2005 edition of Dr. Dobb's Python-URL! is out with links to numerous Python language articles and resources.Dr. Dobb's Python-URL!
The March 1, 2005 edition of Dr. Dobb's Python-URL! is online with the latest Python language news and resources.python-dev Summary
The January 16-31, 2005 edition of the python-dev Summary is online with a summary of traffic on the python-dev mailing list.
Ruby
Ruby Weekly News
The February 27, 2005 edition of the Ruby Weekly News is available with the latest news and discussion from the ruby-talk mailing list.
Tcl/Tk
Dr. Dobb's Tcl-URL!
The February 28, 2005 edition of Dr. Dobb's Tcl-URL! is online with the latest Tcl/Tk news and resources.
XML
Sarissa to the Rescue (O'Reilly)
Emmanouil Batsis explores Sarissa on O'Reilly. "Client-side XML processing. Today's browsers do cover the basics and some of them go even further, offering support for XHTML, SVG, XSLT, XPath , XLink, validation using W3C XML Schema, and more. This article will introduce you to basic cross-browser XML development with the aid of Sarissa, an ECMAScript library designed to stop those nasty incompatibilities before they get too close."
The xml:id Conundrum (O'Reilly)
Rich Salz covers the benefits and shortcomings of xml:id on O'Reilly. "XML attributes whose type is ID are very important. They are the only fundamental way to identify a piece of XML. While we have XPath, XPointer, and so on, the only identification mechanism that every XML parser, and therefore every XML application, must understand is ID attributes."
IDEs
Some Eclipse releases
EclipseCon 2005 is happening this week, with the result that a number of announcements have been made. One is the release of a set of tools for "business intelligence and reporting," created by Actuate Corporation. This is a developer release; the 1.0 release is expected within the next few months. Also announced is the first developer release from the Web Tools Platform project.
Page editor: Forrest Cook
Next page:
Linux in the news>>