GNU Status Reports: January 2011

maintainers@gnu.org

GNU Status Reports: January 2011
Copyright c 2011 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and thisnotice are preserved.

GNU Status Reports: January 2011

Table of Contents
GNU Status Reports: January 2011 . . . . . . . . . . . . . . . 1
Binutils (http://www.gnu.org/software/binutils) . . 1
Coreutils (http://www.gnu.org/software/coreutils) . . 2
Electric (http://www.gnu.org/software/electric) . . 3
Freefont (http://www.gnu.org/software/freefont) . . 3
Gawk (http://www.gnu.org/software/gawk) . . . . . . . . 3
GCC (http://www.gnu.org/software/gcc) . . . . . . . . . . 4
GNUCOMM (http://www.gnu.org/software/gnucomm) . . 5
GNUtrition(http://www.gnu.org/software/gnutrition) . . . . . . 5
Grep (http://www.gnu.org/software/grep) . . . . . . . . . 5
GSASL (http://www.gnu.org/software/gsasl) . . . . . 6
GSEGrafix (http://www.gnu.org/software/gsegrafix) . . 6
GSL (http://www.gnu.org/software/gsl) . . . . . . . . . . . 7
GSRC (http://www.gnu.org/software/gsrc) . . . . . . . . 7
Guile (http://www.gnu.org/software/guile) . . . . . . . . 8
Hello (http://www.gnu.org/software/hello) . . . . . . . . 8
Hurd (http://www.gnu.org/software/hurd) . . . . . . . . . 9
Texinfo (http://www.gnu.org/software/texinfo) . . 10
XBoard (http://www.gnu.org/software/xboard) . . 11iGNU Status Reports: January 20111

GNU Status Reports: January 2011
This document collects status reports for GNU packages.
This is a revival of the GNU Status Reports from the historical GNU’s Bulletins, http://
www.gnu.org/bulletins. The goal is to provide GNU-wide news and information fromtime to time, from as many packages as possible.
This report includes items for only a few of the hundreds of GNU packages; we hopemore will be represented in future installments. http://www.gnu.org/manual lists all GNU
packages, with links to online manuals and home pages. All GNU packages can be accessedon the web via ‘http://www.gnu.org/software/pkgname’, as shown in the headings here.
See also http://planet.gnu.org, which aggregates the individual GNU news items
posted on Savannah (http://savannah.gnu.org).
See also the info-gnu@gnu.org mailing list, where announcements of new GNU releases
are posted. Subscribe or view the archives at http://lists.gnu.org/mailman/listinfo/
info-gnu.
The aim of the present report is to be somewhat higher-level and more general than theothers, although there is inevitably some overlap.
Questions, comments, and suggestions about this document in general are welcome;please email maintainers@gnu.org. Issues for specific packages should of course be addressed via their usual routes.

Binutils (http://www.gnu.org/software/binutils)
From Nick Clifton: The GNU Binary Utilities project (binutils to its friends) is continuing
active development. Version 2.21 has just been released containing many bug fixes and some
new features:• Support has been added for the TMS320C6000 (TI C6X) processor family and Renesas
RX processor families.
• Support has been added for the Alpha VMS target.
• The linker option --add-needed has been renamed to --copy-dt-needed-entries inorder to avoid confusion with the --as-needed option.
• The linker’s .def file syntax has been extended by allowing the syntax == id for imports
and exports. This allows aliases of the import/export table names to written in PE
image.
• The objcopy program now supports a --interleave-width option to allow copying a
range of bytes from the input to the output with the --interleave option.
• The readelf tool can now display ARM unwind tables using the --unwind option. It
can also display dynamic symbol tables with the --dyn-syms option.
• A new tool elfedit has been added to directly manipulate ELF format binaries.
• The addr2line tool now accepts an --addresses option to display the address before
function name or source filename. It also accepts --pretty-print to have a morehuman readable output.
• gas now understands an extended syntax in the .section directive flags for COFF
targets that allows the section’s alignment to be specified.

GNU Status Reports: January 20112

• gas also has a new command line option --compress-debug-sections, which requests
compression of DWARF debug information sections in the relocatable output file. Compressed debug sections are supported by readelf, objdump, and gold, but not currently
by GNU ld.
• The gold linker now supports MEMORY regions in linker scripts.
Meanwhile work continues on ld to add support for plugins and compressed debug
sections. gold is improving and soon will be able to replace ld for linking important
projects like the Linux kernel.
The next release of the binutils is expected in the middle of 2011.

Coreutils (http://www.gnu.org/software/coreutils)
From Jim Meyering and Pádraig Brady: We’ve just released coreutils-8.9, which fixes
a number of relatively important bugs (http://savannah.gnu.org/forum/forum.php?
forum_id=6662 for 8.8, http://savannah.gnu.org/forum/forum.php?forum_id=6679
for 8.9). Most were in sort and were introduced via the parallelization support that wasadded in coreutils-8.6.
The only significant non-bug-fix change was to add a useful set of features to split thatlets you split input into n roughly-equal pieces, with options to split on line boundaries ornot, and, when honoring line boundaries, to distribute lines in a round-robin fashion or not.
See the manual via ‘info split’ for details and examples, or online at http://www.gnu.
org/software/coreutils/manual/html_node/split-invocation.html.
Some of the hardest work on coreutils is knowing what to reject and providing appropriate justification to the contributors. The contributions below all came in recently, andwhile good ideas, they were not included for various reasons detailed on the mailing list.
test -ed

Using stat in a shell function was deemed sufficient.

touch -R‘find . -exec touch -am {} +‘ is more general.

df autoscale
df -h was thought good enough.
df/ls --blocksize={decimal,binary}Though more correct, it was deemed overkill.
sha1sum --raw | base64.
‘openssl dgst -sha1 -binary $file | openssl enc -base64‘ was deemedavailable enough.
command --examples
This would need to be accepted into the GNU Coding Standards first.
On the upcoming front, we should soon resume work on getting the FIEMAP (efficientsparse copying) code into the master development branch http://git.savannah.gnu.
org/cgit/coreutils.git/log/?h=fiemap-copy.

GNU Status Reports: January 2011

3

Electric (http://www.gnu.org/software/electric)
From Stuart Rubin: The Electric VLSI Design System is a complete CAD package for
integrated-circuit design. It lets you draw schematics, draw IC layout, and even use textual
hardware-description-languages. It has many tools for analysis and synthesis, and caninterface to many more.
Electric has been free software from the Free Software Foundation for 12 years now andcontinues to be developed and distributed. Currently, the Electric development team is
employed by Oracle, and they have just released version 9.00.

Freefont (http://www.gnu.org/software/freefont)
From Steve White: In GNU FreeFont release 20100919, several language scripts were added:• Cherokee, Osmanya, Unified Canadian Aboriginal Syllabics, Tifinagh, Armenian(serif), Vai, Kayah Li.
• Coptic, Glagolitic.
• Buginese and Persian were patched.
• Many characters were added to old Cyrillic ranges.
In addition, Sinhala was replaced by a version taken from the TEX font sinh by Yannis
Haralambous.
Several of the symbol ranges were expanded, and a few glyphs were corrected.
Several technical improvements were made to font tables, some of which should improve
display.
For more information, see https: / / savannah . gnu . org / forum / forum . php ?
forum_id=6518.

Gawk (http://www.gnu.org/software/gawk)
From Arnold Robbins: Gawk has been seeing lots of progress recently. A major new releaseis in the works and should be ready within a few more months. New stuff includes:• New internals, providing along with them a debugger!
• Built-in file inclusion• Indirect function calls• BEGINFILE and ENDFILE patterns• FPAT variable for content-based field splitting• IPv6 support• Arrays of arrays• Lots of code cleanup and doc clean up too• Other features and changes, see NEWS in the git repo
• Moved from CVS to GIT

GNU Status Reports: January 2011

4

GCC (http://www.gnu.org/software/gcc)
From Gerald Pfeifer: The last couple of months have seen several GCC (GNU Compiler
Collection) releases, first GCC 4.4.5 in October, then GCC 4.5.2 in December and we areworking full steam to brush up the first release in the 4.6 series (http://gcc.gnu.org/
gcc-4.6/changes.html).
GCC 4.6 will bring support for the Xilinx MicroBlaze softcore processor on the backend
and a new frontend (and run-time library) for the Go language, plus many new Objective-C
features, such as declared and synthesized properties, dot syntax, fast enumeration, optional protocol methods, method/protocol/class attributes, class extensions, and a new
GNU Objective-C runtime API.
GCC 4.6 is also adding a new optimization level -Ofast that is -O3 with options that canaffect standards compliance but result in better optimized code. The link-time optimizations(LTO) we introduced with GCC 4.5 have been improved, stabilized and reduced in termsof resource consumption which allows GCC to build itself or Mozilla Firefox with LTO. As
a user you can control how many compilations to execute via -flto=N. Inlining heuristics
and interprocedural optimizations have been tuned heavily, too.
Back to frontends, stack checking for Ada has been tightened and now detects all
overflows on several platforms; experimental support for the upcoming C1X standard has
been added, new function attributes leaf and callee_pop_aggregate, and a new warning-Wdouble-promote. Support for the upcoming C++0x standard has seen a lot of love andcare and C++ code generation can be tuned more finely (cf. new options -fstrict-enums
and -fnothrow-opt).
On systems supporting the new libquadmath library, GNU Fortran now also supports aquad-precision, kind=16 floating-point data type (REAL(16), COMPLEX(16)). The -fwholefile command-line option is now enabled by default which improves code generation anddiagnostics, and both Fortran 2003 and Fortran 2008 support have seen their fair dose ofenhancements.
In terms of platform enhancements, -march=core2 (and -mtune=core2) provides support for Intel Core 2, -march=corei7 for Intel i3/i5/i7 and -march=btver1 gives you support for AMD Bobcat (family 14). Darwin, FreeBSD, MinGW and Cygwin now all support__float128 on 32-bit x86 targets. MIPS now supports the Loongson 3A processor ands390x added full support for the zEnterprise z196 processor with a number of new instructions facilities.
As far as operating systems go, GCC provides a convenient way of building native
libraries and applications for the Android platform and on Windows #pragma push_macro& #pragma pop_macro, decimal floating point and more have been added.
Should you find any issue testing this forthcoming release, or any other, please make useof our updated Bugzilla at http://gcc.gnu.org/bugzilla.

GNU Status Reports: January 20115

GNUCOMM(http://www.gnu.org/software/gnucomm)
From David Sugar: GNUCOMM is the umbrella name for the GNU Telephony system.
It includes several packages: Bayonne, Sipwitch, and supporting libraries ccAudio, ccRTP,
ccScript, and CommonCPP.
The ZRTP communication protocol is spreading as a free (as in freedom) means tocommunicate privately with GNU GPL licensed software. We are close to releasing ZRTP
for Android (libcppzrtp already builds on the Android NDK), along with a complete
Android client built off of CSipSimple for Android.
We of course continue to maintain full compatibility and interoperability with the emerging IETF ZRTP draft standards, and with ZRTP for Android will now cover even moreusers. Previously we saw GNU ZRTP4J, which is used in SIP Communicator (a crossplatform Java client for GNU/Linux, OS/X, Windows, and others), as well as Twinkle (aQT ZRTP agent), so ZRTP for Android will extend this reach further.
In GNU uCommon, there is also greater emphasis on secure communication and crytographic practices in application development, using a new secure library which was introduced earlier this year. It also acts as a generic wrapper for either GNUTLS or OpenSSL(with a configure preference for the former). This is still evolving. It fits into our overall effort in developing secure communications and promoting privacy in application development
by default by making it easier to do so, an overall goal for GNU Telephony.

GNUtrition(http://www.gnu.org/software/gnutrition)
From Jason Self: I’m working to rewrite GNUtrition in C with SQLite instead of dependingon an external SQL server, a modern UI, and some extra features. I plan to unveil the newversion at LibrePlanet in March.
The food database is being upgraded. The current version of GNUtrition uses a very
old version (from 1999) so it’s time to upgrade. This means more information on more
foods—2,000 or so new food items.

Grep (http://www.gnu.org/software/grep)
From Jim Meyering: Grep saw several maintenance releases in 2010. There have been a few
minor bug fixes since the last release, and there’s at least one pending, unfixed bug that istriggered when performing a case-insensitive search that finds a match on a line containinga Turkish upper-case I (http://thread.gmane.org/gmane.comp.gnu.grep.bugs/3413/
focus=3417. Once that is fixed, I expect to make another release.

GNU Status Reports: January 2011

6

GSASL (http://www.gnu.org/software/gsasl)
From Simon Josefsson: GSASL is the GNU Simple Authentication and Security Layerlibrary. During December 2010 a new stable release (1.6.0) was published, which includes
support for the two most recent SASL mechanisms: SCRAM and GS2. These are the newgeneration of SASL mechanisms, intended to replace (over time) the older CRAM-MD5,
DIGEST-MD5 and GSS-API mechanisms.
The development series for the next stable branch has been started already, and plansinclude improved GS2 support for non-Kerberos mechanisms, support for the two SAML
mechanisms that are discussed in the IETF, and more. Now is a good time to join themailing list and contribute to the project!

GSEGrafix(http://www.gnu.org/software/gsegrafix)
From Spencer Buckner: GSEGrafix is a GNOME application which uses an anti-aliased
GNOME canvas for creating scientific and engineering plots. The program is written in C
and reads ASCII parameter files and data files. The parameter files contain keywords andcorresponding arguments for specifying plot parameters (such as data file names, data fileformats, plot type, plot style, axis type, axis labels, and more). Eleven example plots, corresponding examples of Octave code or C code for creating the data files, and corresponding
parameter files are included. The program can be run from a terminal window or from agraphical user interface.
The current version is gsegrafix-1.0.5. Version 1.0.5 added data files for Examples 1
and 7, for use in becoming familiar with the program. There are links to each of these files
in the corresponding example descriptions. The program includes an HTML help file, andan XML help file was added in this version.
Version 1.0.6 is under development and includes two additional keywords: background_color and background_image. The former enables the background color of the plot window
to be specified as either white, the default, or black. If black is chosen, the plot box, tickmarks, axis labels, title, and text are white. The keyword background image enables abackground image, such as a map, to be displayed in the plot box. The image can be scaledin four different ways by specifying one of the parameter values: center, fill, scale, orzoom.

GNU Status Reports: January 20117

GSL (http://www.gnu.org/software/gsl)
From Brian Gough: The GNU Scientific Library is a numerical library written in C. It
provides a large collection of mathematical routines such as random number generators,
special functions, fourier transforms and least-squares fitting. There are over 1000 routines
in total with an extensive test suite.
The role of the project is to provide an alternative to the well-known proprietary numerical libraries, which hinder scientific cooperation by preventing the sharing of scientificsoftware.
The project has been in stable release for 10 years, and has maintained API stability
throughout that time. Ongoing work continues on bug-fixing, particularly improving thestability of special functions, and a 1.14 maintenance release was made earlier this year.
Currently the project does not have sufficient contributors to tackle major developments,
and is limited to bug fixing. A good knowledge of numerical methods is needed to workon the project—anyone interested in helping should contact bug-gsl@gnu.org for more
information.

GSRC (http://www.gnu.org/software/gsrc)
From Brian Gough: The GNU Source Release Collection (GSRC) is a build system for GNU
packages. The goal is to make it easy to install the latest GNU releases from source in yourhome directory on an existing distribution.
GSRC simplifies this process by automatically downloading and building packages andtheir dependencies. You only need a single ./configure && make to get everything, as
usual.
For those familiar with BSD systems, this is similar to BSD Ports. GSRC uses GAR,
a build system written in GNU Make by Nick Moffit, and GARstow by Adam Sampson.
GSRC is also similar to the GARNOME system for GNOME.
There are currently 136 GNU packages in GSRC which build and install successfully,
including GCC, Guile, GnuPG, Emacs, coreutils, GnuTLS and many others. Packages are
updated several times a week, as new releases come up.
The whole collection is also built regularly on the GCC compile farm and a weekly
report posted on http://planet.gnu.org with the current build status of all GNU packages(http://chapters.gnu.org/~bjg/gsrc/summary/), you can also check the complete build
logs there.
Goals for the project are to support the remaining GNU packages—particularly thosewith complex dependencies, such as Gnash and GnuCash, and to also make the latest alphareleases available as well (this has already been done for a few projects). Additional help
from people familiar with those packages is welcome.

GNU Status Reports: January 20118

Guile (http://www.gnu.org/software/guile)
From Ludovic Courtès: GNU Guile is an implementation of the Scheme programming
language that can be embedded in applications to allow users to extend them. Extensibility
empowers users to leverage software freedom by making it easier to start making changes.
Just as Emacs Lisp allowed unanticipated applications to be written within the Emacs
environment, Guile should do the same for other GNU applications. It should spread theEmacs nature to the rest of GNU.
Guile has undergone major changes over the last couple of years, resulting in 15 prereleases—labeled 1.9.x. This will lead to the 2.0 stable series, scheduled for release in the firstquarter of 2011. The 1.8 stable series was released in 2006. It offered many improvements
such as support for exact rational numbers, multi-threading, and a better C programming
interface.
Guile 2.0 is a breakthrough in Guile’s history. First and foremost, it is based on acompiler and a virtual machine, and comes with a powerful read-eval-print loop (REPL)
and debugger. The compiler compiles Scheme code to bytecode, applying well-known optimizations. As a result, Scheme code runs noticeably faster with Guile 2.0. Compilation
can occur transparently: when the compiled form of a module is not found in cache, it isautomatically compiled before being run.
In addition, Guile 2.0 has a wealth of exciting new features. Hygienic macros are supported natively and well integrated with the module system—they are what makes Scheme
itself extensible. It supports Unicode, as well as most of R6RS, the latest revision of the
Scheme programming language.
A dynamic foreign function interface (FFI) is provided, allowing bindings to C libraries
to be written entirely in Scheme. Also new in 2.0 is support for composable continuations(a.k.a. “prompts”), a novel control flow mechanism. New modules include web tools for
HTTP and URIs, XML/SXML, pattern matching, LALR parsing, purely functional hashlists, and code coverage, to name a few.
While Guile 2.0 remains primarily an implementation of Scheme, its compiler comes witha front-end for ECMAScript—one more choice for users seeking to extend their applications.
An Emacs Lisp front-end is also available. It is the result of work towards the unificationof Guile and Emacs, the flagships of extensibility in GNU.
2011 promises to be another exciting year for Guile. We believe Guile 2.0 is a great tool
to push extensibility further and enhance software freedom!

Hello (http://www.gnu.org/software/hello)
From Karl Berry: GNU Hello remains a complete example package, attempting to exemplify
some best practices for GNU packages. For example, it uses Automake for configuration,
Gettext for internationalization, Help2man to avoid maintaining separate man pages, andGnulib to share common sources.
For examples in other programming languages, please see Gettext. The Automake manual also contains several examples worked from scratch.

GNU Status Reports: January 20119

Hurd (http://www.gnu.org/software/hurd)
From Olaf Buddenhagen, Arne Babenhauserheide, Thomas Schwinge: Yeah, that’s quite
right: this project is still alive!
According to our mission statement, the goal is creating a general-purpose kernel suitable for the GNU operating system, which is viable for everyday use, and gives users andprograms as much control over their computing environment as possible. It has a uniquemulti-server microkernel-based architecture—bringing advanced operating system research
to the mainstream. More concretely, it’s a collection of user-space server processes that run
on the GNU Mach microkernel.
The Hurd doesn’t fully deliver on the everyday usability goal yet, but it is seeing continuous improvement—and 2010 has been no exception. Let’s take a look at the progress
throughout the year.
• Apart from having done a lot of other work, Samuel Thibault, our Jack of all trades,
merged his development branch that added Xen domU support to GNU Mach, whichmakes it possible to run a GNU/Hurd system as a Xen guest. Development of thisstarted in 2007, and since then it has been heavily tested by using it for the Debian
GNU/Hurd build servers, most of our public GNU/Hurd systems, http://www.gnu.
org / software / hurd / public_hurd_boxen . html, and the Hurd project’s wiki web
server.
• We had Zheng Da work on a new hardware device driver framework, which is based on
the Dresden L4 (Fiasco) group’s DDE project, and allows running modern Linux kernel
drivers as user-space server processes. Many network cards already work perfectly withthis new framework. (It has not yet been integrated into the mainstream Hurd code
base, so it needs to be compiled and set up by hand.) Other driver classes, such as
hard disk controllers, will require further work.
• As in the previous years, we again participated in the Google Summer of Code 2010.
Olaf Buddenhagen is our main guy for organizing this.
Jérémie Koenig ported the modern Debian Installer to Debian GNU/Hurd. Installation images using the new installer are replacing the previous CD images, whichwere using an installer based on the old Debian boot floppies (and running under theLinux kernel)—Philip Charles has been maintaining these single-handedly for almost
ten years! The new installer images are available from http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/.
Emilio Pozuelo Monfort was investigating specific compatibility problems exposed by
the extensive test suites coming with some software packages. Emilio’s analysis uncovered a number of programming errors in the Hurd code, and he fixed several of them. As
these typically affected other programs too, this improved stability and compatibility
in general.
• Jérémie Koenig created a new implementation of a procfs translator, which is considerably more robust and efficient than the previous one. Tools such as top can now be
used without problems.
Some other translators (gopherfs, netio, tarfs) which have been created by external
contributors in the past have been fixed up by Manuel Menal, and packaged in Debian.
Thus, some of the results of Hurd’s extensible architecture are now easier to access,and these updated translators can serve as examples for other developers to implement
their own ideas.

GNU Status Reports: January 201110

• In addition to various general stability, compatibility, and portability fixes, several
people (Samuel Thibault, Pino Toscano, Emilio Pozuelo Monfort, and others) havebeen working on fixing issues with specific Debian packages. So far, about 68% of all
Debian packages are also available for Debian GNU/Hurd.
• Michael Walker started the Arch Hurd distribution, and together with other enthusiastic Arch developers (Allan McRae, Matthias Lanzinger, Alexander Preisinger, Stephen
Gilles, Diego Nieto Cid) they got it working in an amazingly short amount of time,
both as an installable system, and a live CD. So now there is a choice between two
well-featured distributions for the Hurd. These new people of course also help forwarding Hurd development in general—Diego in particular contributed various patches tothe Hurd console and other components.
• Carl Fredrik Hammar finished and presented his thesis, “Generalizing mobility for the
Hurd”, http://lists.gnu.org/archive/html/bug-hurd/2010-01/msg00078.html,
and passed with distinction.
This is a very short digest of what happened in the last year. You can read our regular “Month of the Hurd” at http://www.gnu.org/software/hurd/news.html, or by
subscribing to our RSS feed at http://www.gnu.org/software/hurd/index.rss.
If you are interested, for example, in doing a university project on a multi-server
microkernel-based operating system, or if you are interested in contributing to Hurddevelopment in general, please see http://www.gnu.org/software/hurd/contributing.
html. Or just talk to us at bug-hurd@gnu.org or the #hurd IRC channel on freenode.

Texinfo (http://www.gnu.org/software/texinfo)
From Karl Berry: We hope the next major release of Texinfo will be made in 2011, after
several years of development. Thanks to my colleague Patrice Dumas, the Makeinfo program
has been completely rewritten in Perl while retaining essentially complete compatibility.
The new program is based on and is as compatible as possible with texi2html. It will
provide vastly better support for HTML customization, Unicode, additional back-ends, andso on. If you want to try it now, it’s in the development sources.
texinfo.tex, as a separable file, has been updated separately on an ongoing basis. The
current version is available from http: / / ftpmirror . gnu . org / texinfo / texinfo . tex(and from Gnulib), and we encourage you to always get the current version when making a
release.

GNU Status Reports: January 2011

11

XBoard (http://www.gnu.org/software/xboard)
From Arun Persaud: XBoard is a graphical user interface to chess in all its major forms(and many others). Over the last year XBoard development has seen three new releases
fixing lots of bugs and including many new features with another major release just aroundthe corner. We now support many more variations of chess (xiangqi, shogi, makruk, aswell as better support for variations like crazyhouse, bughouse and many more). Also, thesupport for computer chess has been improved.
An ongoing effort is to merge the code of XBoard and its so-called “Winboard” companion back into one code base and adapt it to use GTK for the GUI front end. If you areinterested in this and are willing to help, feel free to contact us at xboard-devel@gnu.org.
We can always use more help! You can of course also contact us to discuss other issues/ideas
too.