Product SiteDocumentation Site

5. Changes in Fedora for Developers

5.1. Development Tools

5.1.1. Ada

Ada is a modern programming language designed for large, long-lived applications – and embedded systems in particular – where reliability and efficiency are essential. It was originally developed in the early 1980s (this version is generally known as Ada 83) by a team led by Dr. Jean Ichbiah at CII-Honeywell-Bull in France. The language was revised and enhanced in an upward compatible fashion in the early 1990s, under the leadership of Mr. Tucker Taft from Intermetrics in the U.S. The resulting language, Ada 95, was the first internationally standardized (ISO) Object-Oriented Language. Under the auspices of ISO, a further (minor) revision was completed as an amendment to the standard; this version of the language is known as Ada 2005. Work is currently in progress on some additional features (including support for program annotations) and is expected to be completed in 2012.
Fedora 16 includes the latest open-source Ada development tools.
  • Fedora 16 includes full stack of tools for Ada Development: Compiler (gcc-gnat), Project Builder (gprbuild), IDE (GPS) and some others
  • Ada bindings for most popular tools such as: GTK, Qt, zeromq, Databases (PostgreSQL, MySQL and SQLite) etc

5.1.2. autoconf-archive

The GNU Autoconf Archive is a collection of more than 450 macros for GNU Autoconf that have been contributed as free software by friendly supporters of the cause from all over the Internet. Version 2011.04.12 is now included in Fedora 16. Refer to for the project details.

5.1.3. be

Bugs Everywhere is a “distributed bugtracker”, designed to complement distributed revision control systems. By using distributed revision control as a backend for bug state, we gain several convenient features:
  • Bugs and code that live on branches are tracked together—when a branch is merged, both the code changes and bug changes that the branch contains are merged alongside each other. We no longer have to be confused about whether a fix that is applied to the development branch but not yet present in the production branch means that our bug is “fixed”.
  • Users can fully modify bug state while offline, unlike with many centralized bugtrackers.
  • When a user checks out your source code, she gets the current bug state for free.
  • We can still provide access to a friendly web interface for users—in this model, a web interface becomes just another client that merges with the main repository.
Fedora 16 includes version 1.0.1.

5.1.4. btparser

btparser is a backtrace parser and analyzer, which works with backtraces produced by the GNU Project Debugger. It can parse a text file with a backtrace to a tree of C structures, allowing the developer to analyze the threads and frames of the backtrace and work with them. The project's trac page may be found at

5.1.5. caribou-devel

Caribou is a text entry and UI navigation application being developed as an alternative to the Gnome On-screen Keyboard. The overarching goal for Caribou is to create a usable solution for people whose primary way of accessing a computer is a switch device.
The initial goal is to make an in-place on-screen keyboard suitable for people who can use a mouse but not a hardware keyboard. This on-screen keyboard may also be useful for touch screen or tablet users.

5.1.6. cddlib-static

cddlib is a C library implementing of the Double Description Method of Motzkin et al. for generating all vertices (i.e. extreme points) and extreme rays of a general convex polyhedron.

5.1.7. D2

The D2 programming language is available in Fedora 16. D is a modern language with high performance near C/C++ with an easy syntax. C/C++ and Java developers can easily migrate to D.
Additonal details are available on the Feature Page. Information on the D language may be found at

5.1.8. emacs-ecb

emacs-ecb is an Emacs-based code browser. It displays a number of informational windows that allow for easy source code navigation and overview:
  • A directory tree,
  • a list of source files in the current directory (with full support and display of the VC-state),
  • a list of functions/classes/methods/... in the current file, (ECB uses the CEDET-semantic, or Imenu, or etags, for getting this list so all languages supported by any of these tools are automatically supported by ECB too)
  • a history of recently visited files (groupable by several criteria),
  • a direct and auto-updated ecb-window for the semantic-analyzer for some intellisense,
  • the Speedbar
  • output from compilation (the compilation window) and other modes like help, grep etc. or whatever a user defines to be displayed in this window.
More information may be found at

5.1.9. frama-c

frama-c is a C source code analysis tool, which may be used standalone, or integrated with Emacs. frama-c includes a source browser, and can calculate simple metrics such as sloc, call depth and cyclomatic complexity for a project. It can also generate simple call graphs. Various assertions about the code may be tested, and the code may be validated against a number of theorems. frama-c accepts user written plugins for additional custom analyses. More information on frama-c may be found at

5.1.10. GCC Python Plugins

GCC plugins that embed Python 2 and Python 3 are now available, enabling developers to more easily hook into GCC's inner workings (e.g. to add new compiler warnings). See the Feature Page for more details.

5.1.11. jruby

jruby is a Java implementation of the Ruby language, offering Ruby programmers the platform independence of Java. Version 1.6.2 of jruby is new to Fedora 16. The project page may be found at

5.1.12. libpipeline

libpipeline provides a set of functions for manipulating pipelines of subprocesses in a flexible and convenient way.

5.1.13. osm-gps-map-devel

osm-gps-map-devel, a GTK+ widget (and Python bindings) that when given GPS co-ordinates, draws a GPS track, and points of interest on a moving map display. Downloads map data from a number of websites, including

5.1.14. Perl 5.14

Fedora 16 ships with Perl 5.14, which boasts Unicode version 6 compatibility, more reliable and consistent exception handling, improved IPV6 support, and performance and memory handling improvements. For the full list of changes (including syntax changes), please see the official Perl documentation:

5.1.15. qwtpolar-devel

qwtpolar-devel is a library for plotting polar graphs.

5.1.16. shunit2

shunit2 is a unit test framework for shell scripts similar to PyUnit or JUnit.

5.1.17. Static Analysis of CPython Extensions

Fedora now ships with a gcc-with-cpychecker variant of GCC, which adds additional compile-time checks to Python extension modules written in C, detecting various common problems (e.g. reference counting mistakes).

5.1.18. why-emacs

why-emacs is an Emacs add on for the Why software verification tool. Why supports a number of theorem provers including Ergo, haRVey and Zenon, as well as a number of others.

5.1.19. wso2

New to Fedora 16, the WSO2 Web Services Framework for C++ is an enterprise grade C++ library for providing and consuming Web Services in C++. Fedora includes version 2.1.0 of the framework. Documentation may be found at

5.2. Haskell

5.2.1. GHC

ghc has been updated to 7.0.4 with lots of bugfixes.

5.2.2. Haskell Platform

haskell-platform has been updated to the latest stable 2011.2.0.1 release.

5.2.3. New packages

New packages include cabal-dev, leksah, and various new libraries.