initCommon(); $template->displayHeader(); ?>

7. What is New for Developers

7.1. Runtime

7.1.1. Python NSS bindings

Python bindings for NSS/NSPR allow Python programs to utilize the NSS cryptographic libraries for SSL/TLS and PKI certificate management. The python-nss package provides a Python binding to the NSS and NSPR support libraries.

Network Security Services (NSS) is a set of libraries supporting security-enabled client and server applications. Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates and other security standards. NSS has received FIPS 140 validation from NIST.

7.2. Java

7.2.1. Best of breed free software Java implementation

Fedora includes multiple best of breed free software Java(TM) implementations, obtained through active adoption of innovative technology integrations produced by Fedora and others within upstream projects. The implementations integrated into Fedora are based on OpenJDK (http://openjdk.java.net/) and the IcedTea GNU/Linux distribution integration project (http://icedtea.classpath.org/), or based on alternatives such as the GNU Compiler for Java (GCJ - http://gcc.gnu.org/java and the GNU Classpath core class libraries (http://www.gnu.org/software/classpath/). All Fedora innovations are pushed upstream to get the widest possible integration of the technologies in general Java implementations.

The implementation of OpenJDK 6 included in Fedora 10 uses the HotSpot virtual machine runtime compiler on x86, x86_64, and SPARC. On PowerPC (PPC) it uses the zero interpreter, which is slower. On all architectures an alternative implementation based on GCJ and GNU Classpath is included that includes an ahead-of-time compiler to produce native binaries.

Fedora binaries for selected architectures (currently only x86 and x86_64 based on OpenJDK) are tested against the Java Compatibility Kit (JCK) by Red Hat to guarantee 100% compatibility with the Java Specification (JDK 1.6 at this time).

7.2.2. Handling Java Applets and web start applications

In Fedora 10 gcjwebplugin has been replaced by IcedTeaPlugin, which runs untrusted applets safely in a Web browser and works on any architecture. You can see which Applet Plugin is installed by typing about:plugins in Firefox. The new plugin adds support for the JavaScript bridge (LiveConnect) that was missing from earlier versions. For more details on the bytecode-to-JavaScript bridge (LiveConnect), refer to the bug report:

https://bugzilla.redhat.com/show_bug.cgi?id=304021

Feedback on the security policy is appreciated. If you suspect the security policy may be too restrictive to enable restricted applets, follow this procedure:

  • Run the firefox -g command in a terminal window to see what is being restricted.

  • Then grant the restricted permission in the /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/security/java.policy file.

  • File a bug report, so your exception can be included in the packaged security policy. Packaging these exceptions allows system owners to avoid having to hack the policy file in the future.

Experimental Web Start (javaws) support via NetX has been added to the IcedTea repository. When a Java Network Launching Protocol (.jnlp) file is embedded on a web page you can open it with the IcedTea Web Start (/usr/bin/javaws). For more information on NetX, refer to:

http://jnlp.sourceforge.net/

7.2.3. New integration with other Fedora technologies

Through the IcedTea project, OpenJDK has been integrated with several new technologies that are also part of Fedora 10.

7.2.3.1. VisualVM integration through the NetBeans framework

VisualVM (jvisualvm) provides a graphical overview of any local or remotely running Java application, letting you monitor all running threads, classes, and objects allocated by the application by taking thread dumps, heap dumps, and other lightweight profiling tools.

7.2.3.2. PulseAudio integration for javax.sound

PulseAudio integrations provides all the benefits of PulseAudio to any java application using the javax.sound package.

7.2.3.3. Integration of Mozilla Rhino - JavaScript

Rhino is a pure-Java JavaScript implementation from Mozilla providing an easy mixing of Java and JavaScript for developers using the javax.script package.

7.2.3.4. Other improvements

Also in Fedora 10 Java cryptography (javax.crypto) is fully supported without any (regional) restrictions.

7.2.4. Fedora and JPackage

Fedora 10 includes many packages derived from the JPackage Project.

http://jpackage.org

Some of these packages are modified in Fedora to remove proprietary software dependencies, and to make use of GCJ's ahead-of-time compilation feature. Use the Fedora repositories to update these packages, or use the JPackage repository for packages not provided by Fedora. Refer to the JPackage website for more information about the project and the software it provides.

[Warning] Mixing Packages from Fedora and JPackage

Research package compatibility before you install software from both the Fedora and JPackage repositories on the same system. Incompatible packages may cause complex issues.

7.2.5. Note on upgrading from Fedora 8 - OpenJDK Replaces IcedTea

Since Fedora 9 the packages called java-1.7.0-icedtea* in Fedora 8 have been renamed to java-1.6.0-openjdk*. The Fedora 8 IcedTea packages tracked the unstable OpenJDK 7 branch, whereas the java-1.6.0-openjdk* packages track the stable OpenJDK 6 branch. All the upstream IcedTea sources are included in the java-1.6.0-openjdk SRPM.

If you are upgrading from a system based on Fedora 8 that still has IcedTea installed, the package changeover does not happen automatically. The packages related to IcedTea based on OpenJDK 7 must first be erased, then the new OpenJDK 6 packages installed.

      su -c 'yum erase java-1.7.0-icedtea{,-plugin}' su -c 'yum install java-1.6.0-openjdk{,-plugin}'
    

Upgrading from Fedora 9 does not require special action.

7.3. Tools

This section covers various development tools and features.

7.3.1. Eclipse

This release of Fedora includes Fedora Eclipse, based on the Eclipse SDK version 3.4. The 3.4 series of releases has a "What's New in 3.4" page:

http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html

Release notes specific to 3.4 are also available.

http://www.eclipse.org/eclipse/development/readme_eclipse_3.4.html

Some of the notable features in 3.4 include a number of improvements in handling bookmarks, easier ways to find and install plug-ins, and additional help with refactoring.

7.3.1.1. Additional plugins

This release of Fedora includes plugins for C/C++ (eclipse-cdt), RPM specfile editing (eclipse-rpm-editor), PHP (eclipse-phpeclipse), Subversion (eclipse-subclipse), SELinux (eclipse-slide) and (eclipse-setools), regular expression testing (eclipse-quickrex), Fortran (eclipse-photran), Bugzilla integration (eclipse-mylyn), Git (eclipse-egit), Perl (eclipse-epic), Checkstyle (eclipse-checkstyle), and Python (eclipse-pydev).

7.3.1.2. Translations from the Babel project - eclipse-nls

This release also includes the Babel language packs, which provide translations for Eclipse and Eclipse plugins in a number of languages. Note that some of the languages have very low coverage: even if you have the translations installed, you will probably still see many strings in English. The Babel project accepts contributions if you would like to help their translation efforts.

http://www.eclipse.org/babel/

7.3.1.3. Upgrading from Fedora 9

Users upgrading from Eclipse 3.3 will need to migrate any plug-ins they have installed from sources other than RPMs. The simplest way to do this is to re-install. For plug-in developers migrating from 3.3, refer to the "Plug-in Migration Guide":

http://help.eclipse.org/ganymede/nav/2_3

7.3.2. Emacs

Fedora 10 includes Emacs 22.2.

In addition to many bugfixes, Emacs 22.2 includes new support for the Bazaar, Mercurial, Monotone, and Git version control systems, new major modes for editing CSS, Vera, Verilog, and BibTeX style files, and improved scrolling support in Image mode.

For a detailed description of the changes see the Emacs news for the release (http://www.gnu.org/software/emacs/NEWS.22.2).

7.3.3. GCC Compiler Collection

This release of Fedora has been built with GCC 4.3.2, which is included with the distribution.

For more information on GCC 4.3, refer to:

http://gcc.gnu.org/gcc-4.3/

7.3.3.1. Target-specific improvements
7.3.3.1.1. IA-32 x86-64

ABI changes

  • Starting with GCC 4.3.1, decimal floating point variables are aligned to their natural boundaries when they are passed on the stack for i386.

Command-line changes

  • Starting with GCC 4.3.1, the -mcld option has been added to automatically generate a cld instruction in the prologue of functions that use string instructions. This option is used for backward compatibility on some operating systems and can be enabled by default for 32-bit x86 targets by configuring GCC with the --enable-cld configure option.

7.3.4. Improved Haskell support

Fedora 10 introduces better support for Haskell. With a new set of packaging guidelines and tools, it is incredibly easy to support any Haskell program using the Glasgow Haskell Compiler. Package creation and deployment, leveraging Fedora's quality tools plus a few new friends has never been easier. As support for Haskell grows there will be continued development for Haskell as more libraries are introduced.

Package creation is quite simple. Haskell already provides the infrastructure for compiling and deploying packages consistently. Setting up a package for Fedora takes very little time, meaning code that works in Haskell works in Fedora too.

Fedora also provides tools for enterprise deployment of Fedora packages. With the inclusion of Haskell in Fedora, the developer is now free to write enterprise level applications in Haskell and feel secure knowing the code can be used in Fedora.

https://fedoraproject.org/wiki/Features/GoodHaskellSupport

7.3.5. Extended Objective CAML OCaml Coverage

Fedora 10 contains the OCaml 3.10.2 advanced programming language and a very comprehensive list of packages:

http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora#Package_status

OCaml was available as an update to Fedora 9 but not in the initial release.

7.3.6. NetBeans

This release of Fedora includes NetBeans IDE, version 6.1. NetBeans IDE is an Integrated Development Environment (IDE) for Java, C/C++, Ruby, PHP, etc. Default configuration of the NetBeans IDE (Java SE IDE configuration) supports development of programs for the Java platform, Standard Edition (Java SE), including development of the modules for the NetBeans Platform.

The NetBeans IDE is a modular system and includes facilities for updating and installing plugins. There is a wide spectrum of plugins for the NetBeans IDE that are provided by community members and third-party companies.

7.3.6.1. NetBean resources

7.3.7. AMQP Infrastructure

The AMQP Infrastructure package is a subset of the Red Hat Enterprise MRG. The package allows for development of scalable, interoperable, and high-performance enterprise applications.

More specifically it consists of the following.

  • AMQP (protocol version 0-10) messaging broker/server

  • Client bindings for C++, Python, and Java (using the JMS interface)

  • A set of command line interface configuration/management utilities

  • A high-performance asynchronous message store for durable messages and messaging configuration.

7.3.7.1. AMQP resources

For more information refer to the following resources:

7.3.8. Appliance building tools

Appliances are pre-installed and pre-configured system images. This package includes tools and meta-data that make it easier for ISVs, developers, OEMS, etc. to create and deploy virtual appliances. The two components of this feature are the ACT (Appliance Creation Tool) and the AOS (The Appliance Operating System). Install the appliance-tools package with Add/Remove Software or yum.

7.3.8.1. Appliance Creation Tool

The Appliance Creation Tool is a tool that creates Appliance Images from a kickstart file. This tool uses the Live CD creator API as well as patches to the Live CD API that allow for the creation of multi-partitioned disk images. These disk images can then be booted in a virtual container such as Xen, KVM, and VMware. This tool is included in the appliance-tools package. This package contains tools for building appliance images on Fedora based systems including derived distributions such as RHEL, CentOS, and others.

7.3.8.2. Appliance Operating System

The Appliance Operating System is a scaled down version of Fedora with a small footprint. It contains only the packages necessary to run an appliance. The hardware supported by this spin of Fedora would be limited, primarily focusing on virtual containers such as KVM and VMware. The goal is to create a base on which developers can build their applications, only pulling in packages that their software requires.

7.3.8.3. Appliance building tools resources

Appliance Tool Project Site: http://thincrust.net/

7.4. Linux kernel

[Tip] Deprecated or out of date content?

This content may be deprecated or out of date, it has not been updated since the Fedora 9 release notes.

This section covers changes and important information regarding the 2.6.27 based kernel in Fedora 10.

7.4.1. Version

Fedora may include additional patches to the kernel for improvements, bug fixes, or additional features. For this reason, the Fedora kernel may not be line-for-line equivalent to the so-called vanilla kernel from the kernel.org web site:

http://www.kernel.org/

To obtain a list of these patches, download the source RPM package and run the following command against it:

      rpm -qpl kernel-<version>.src.rpm
    

7.4.2. Changelog

To retrieve a log of changes to the package, run the following command:

      rpm -q --changelog kernel-<version>
    

If you need a user friendly version of the changelog, refer to http://wiki.kernelnewbies.org/LinuxChanges. A short and full diff of the kernel is available from http://kernel.org/git. The Fedora version kernel is based on the Linus tree.

Customizations made for the Fedora version are available from http://cvs.fedoraproject.org.

7.4.3. Kernel flavors

Fedora 10 includes the following kernel builds:

  • Native kernel, for use in most systems. Configured sources are available in the kernel-devel package.

  • The kernel-PAE, for use in 32-bit x86 systems with more than 4GB of RAM, or with CPUs that have a NX (No eXecute) feature. This kernel support both uniprocessor and multi-processor systems. Configured sources are available in the kernel-PAE-devel package.

  • Debugging kernel, for use in debugging some kernel issues. Configured sources are available in the kernel-debug-devel package.

You may install kernel headers for all four kernel flavors at the same time. The files are installed in the /usr/src/kernels/<version>[-PAE|-xen|-kdump]-<arch>/ tree. Use the following command:

      su -c 'yum install kernel{,-PAE,-xen,-kdump}-devel'
    

Select one or more of these flavors, separated by commas and no spaces, as appropriate. Enter the root password when prompted.

[Note] x86 Kernel Includes Kdump

Both the x86_64 and the i686 kernels are relocatable, so they no longer require a separate kernel for kdump capability. PPC64 still requires a separate kdump kernel.

[Note] Kernel Includes Paravirtualization

Both the x86_64 and the i686 kernels contain paravirt_ops support and no longer require a separate kernel for running under a Xen hypervisor. For more information, refer to Section 8.3.1, “Unified kernel image”.

[Note] Default Kernel Provides SMP

There is no separate SMP kernel available for Fedora on i386, x86_64, and ppc64. Multiprocessor support is provided by the native kernel.

[Note] PowerPC Kernel Support

There is no support for Xen or kdump for the PowerPC architecture in Fedora. 32-bit PowerPC still has a separate SMP kernel.

7.4.4. Preparing for kernel development

Fedora 10 does not include the kernel-source package provided by older versions since only the kernel-devel package is required now to build external modules. Configured sources are available, as described in Section 7.4.3, “Kernel flavors”.

[Important] Custom Kernel Building

For information on kernel development and working with custom kernels, refer to http://fedoraproject.org/wiki/Building_a_custom_kernel

7.4.5. Reporting bugs

Refer to http://kernel.org/pub/linux/docs/lkml/reporting-bugs.html for information on reporting bugs in the Linux kernel. You may also use http://bugzilla.redhat.com for reporting bugs that are specific to Fedora.

7.5. Embedded Development

Fedora 10 includes a range of packages to support development of embedded applications on various targets. There is broad support for the AVR and related parts as well as for the Microchip PIC. In addition, there are packages to support development on older, less popular parts such as the Z80, 8051, and others. For a more complete description see http://fedoraproject.org/wiki/Packages_For_Embedded_Development.

7.5.1. avr-binutils

This release includes version 2.18 of avr-binutils. In addition to a large number of bugfixes, this release includes a new tool, windmc, to provide a Windows-compatible message compiler.

7.5.2. dfu-programmer

Version 0.4.6 of dfu-programmer is included in Fedora 10. 4k bootloaders are now supported and eeprom-flash and eeprom-dump are now supported. Release information as well as a forum specific to this version can be found at http://dfu-programmer.sourceforge.net/.

7.5.3. gputils

gputils has been updated to version 0.13.6 which includes support for many more PIC18 processors as well as support for Microchip's new COFF file format. Find details at http://gputils.sourceforge.net/.

7.5.4. piklab

Fedora 10 includes version 3.5.10 of the popular IDE piklab. This version now supports the Microchip ICD2 and PICkit in-circuit debuggers, as well as a number of other improvements. piklab now supports the following toolchains; gputils, C30 and C18, PICC, JAL, BoostC, CCS, MPC and CC5X. Many of the toolchains use Windows executables via Wine. See http://piklab.sourceforge.net/ for complete details.

Note that the executable names for sdcc have changed (see below). Since piklab does not provide for configuring executable names, but does provide for configuring paths, the piklab/sdcc user should copy files beginning with sdcc- from /usr/bin to /usr/local/bin and adjust the paths in piklab until this issue is resolved.

[Note] Windows Directory Names

Microchip has a tendency to have a lot of spaces in their default installation directories. Getting those paths configured in piklab can be quite confusing, so the dual-boot user may choose to copy files to the /usr/local tree rather than simply mounting the Windows drive and directly referencing the files in the Microchip installation. This affects not only executables, but linker scripts, headers and libraries.

7.5.5. sdcc

Version 2.8.0 of the Small Device C Compiler is included in Fedora 10. This version offers a number of improvements to the version in Fedora 9. Some of these changes will result in changes to source code, so users should review the sdcc manual carefully for their target. In addition, due to some conflicts, all the executable names have been prefixed with sdcc-, which will require changes to makefiles. See the sdcc page at http://sdcc.sourceforge.net/ for complete details.

7.6. KDE 3 Development Platform and Libraries

Fedora now features KDE 4, and no longer offers KDE 3 as a full desktop environment. Fedora does provide the following KDE 3.5 library packages to run and build the many existing KDE 3 applications:

  • qt3, qt3-devel (and other qt3-* packages): Qt 3.3.8b

  • kdelibs3, kdelibs3-devel: KDE 3 libraries

  • kdebase3, kdebase3-pim-ioslaves, kdebase3-devel: KDE 3 core files required by some applications

Moreover, the KDE 4 kdebase-runtime package, which provides khelpcenter, also sets up khelpcenter as a service for KDE 3 applications, so help in KDE 3 applications works. The KDE 3 version of khelpcenter is no longer provided, and the KDE 4 version is used instead.

These packages are designed to:

  • comply with the Filesystem Hierarchy Standard (FHS), and

  • be completely safe to install in parallel with KDE 4, including the -devel packages.

In order to achieve this goal, Fedora KDE SIG members have made two changes to the KDE 4 kdelibs-devel packages:

  • The library symlinks are installed to /usr/lib/kde4/devel or /usr/lib64/kde4/devel depending on system architecture.

  • The kconfig_compiler and makekdewidgets tools have been renamed kconfig_compiler4 and makekdewidgets4, respectively.

These changes should be completely transparent to the vast majority of KDE 4 applications that use cmake to build, since FindKDE4Internal.cmake has been patched to match these changes. The KDE SIG made these changes to the KDE 4 kdelibs-devel rather than to kdelibs3-devel because KDE 4 stores these locations in a central place, whereas KDE 3 applications usually contain hardcoded copies of the library search paths and executable names.

Note that kdebase3 does not include the following:

  • A complete KDE 3 desktop (workspace) which could be used instead of KDE 4; in particular, KDE 3 versions of KWin, KDesktop, Kicker, KSplash and KControl are not included.

  • The KDE 3 versions of kdebase applications such as Konqueror and KWrite, which are redundant with the KDE 4 versions and would conflict with them.

  • The libkdecorations library required for KWin 3 window decorations, as those window decorations cannot be used in the KDE 4 version of KWin.

  • The libkickermain library required by some Kicker applets, as there is no Kicker in Fedora 10 and thus Kicker applets cannot be used.

[Poznámka] Developing new software against the legacy API is discouraged.

As with any backwards-compatibility library, you would be developing against a deprecated interface.

displayFooter('$Date: 2009/02/26 02:30:25 $'); ?>