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).
In Fedora 10 gcjwebplugin
has been
replaced by IcedTeaPlugin
that 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 "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 very appreciated. If
you suspect the security policy may be too restrictive to enable
restricted applets, 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. If you then file a bug report, your exception could end up
in the packaged security policy and you won't have 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
).
http://jnlp.sourceforge.net/ -- NetX
Through the IcedTea project, OpenJDK has been integrated with several new technologies that are also part of Fedora 10.
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.
PulseAudio integrations provides all the benefits of PulseAudio to any java application using the javax.sound package.
Rhino is a pure-Java JavaScript implementation from Mozilla providing an easy mixing of Java and JavaScript for developers using the javax.script package.
Also in Fedora 10 Java cryptography (javax.crypto) is fully supported without any (regional) restrictions.
Fedora 10 includes many packages derived from the JPackage Project.
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.
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. |
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.
This section covers various development tools and features.
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:
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.
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
.
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.
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":
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:
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.
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.
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.
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.
http://www.netbeans.org/ - Official site of the NetBeans project.
http://wiki.netbeans.org/ - NetBeans Wiki pages.
mailto:linux-packaging@installer.netbeans.org - Mailing list for discussion of the packaging issues.
https://admin.fedoraproject.org/pkgdb/packages/bugs/netbeans - Bug list for the NetBeans IDE.
https://admin.fedoraproject.org/pkgdb/packages/bugs/netbeans-platform8 - Bug list for the NetBeans Platform.
http://www.netbeans.org/issues/ - Issue Tracker of the NetBeans project. Please, use , , to file the issues related to the NetBeans RPMs.
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.
For more information refer to the following resources.
http://www.redhat.com/mrg/resources Red Hat MRG Documentation
http://amqp.org/ AMQP Project Site
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 or
yum.
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.
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 that developers can build their applications on top of, only pulling in packages that their software requires.
http://thincrust.net/ Appliance Tool Project Site
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.
http://people.redhat.com/jdennis/python-nss/doc/api/html/index.html -- Library Documentation
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. The 2.6.27 kernel includes:
The Fedora kernel offers paravirt_ops
support in domU
, as part of the kernel team's
efforts to reduce the work required to produce current Xen
kernels.
Xen fully virtualized guests can directly boot a kernel and
initrd
image and pass kernel boot args. For more details refer to
http://fedoraproject.org/wiki/Features/XenFullvirtKernelBoot
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:
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
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.
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.
Virtualization kernel for use with the Xen emulator package. Configured sources are available in the kernel-xen-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.
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. |
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. |
PowerPC Kernel Support | |
---|---|
There is no support for Xen or kdump for the PowerPC architecture in Fedora. 32-bit PowerPC does still have a separate SMP kernel. |
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 Section 8.3.3, “Kernel flavors”.
Custom Kernel Building | |
---|---|
For information on kernel development and working with custom kernels, refer to http://fedoraproject.org/wiki/Building_a_custom_kernel |
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.
Fedora 10 includes a number of applications to support embedded development on a variety of targets. Included are assemblers, compilers, debuggers, programmers, IDEs and assorted utilities.
AVRDUDE is a program for programming Atmel's AVR CPU's. It can program the Flash and EEPROM, and where supported by the serial programming protocol, it can program fuse and lock bits. AVRDUDE also supplies a direct instruction mode allowing one to issue any programming instruction to the AVR chip regardless of whether AVRDUDE implements that specific feature of a particular chip.
This is a Cross Compiling version of GNU GCC, which can be used to compile for the AVR platform, instead of for the native i386 platform.
This package contains the Cross Compiling version of g++, which can be used to compile c++ code for the AVR platform, instead of for the native i386 platform.
AVR Libc is a free software project with the goal to provide a high quality C library for use with GCC on Atmel AVR microcontrollers.
AVR Libc is licensed under a single unified license. This so-called modified Berkeley license is intended to be compatible with most free software licenses such as the GPL, yet impose as little restrictions as possible for the use of the library in closed-source commercial applications.
This is a Cross Compiling version of GNU binutils, which can be used to assemble and link binaries for the AVR platform, instead of for the native i386 platform.
This is a special version of GDB, the GNU Project debugger, for (remote) debugging AVR binaries. GDB allows you to see what is going on inside another program while it executes or what another program was doing at the moment it crashed.
Program for interfacing the Atmel JTAG ICE to GDB to allow users to debug their embedded AVR target
This is a collection of development tools for Microchip (TM) PIC (TM) microcontrollers. This is ALPHA software: there may be serious bugs in it, and it's nowhere near complete. The gputils package currently only implements a subset of the features available with Microchip's tools. Refer to the documentation for an up-to-date list of what gputils can do.
The gpsim software is a simulator for Microchip (TM) PIC (TM) microcontrollers. It supports most devices in Microchip's 12-bit, 14bit, and 16-bit core families. In addition, gpsim supports dynamically loadable modules such as LED's, LCD's, resistors, and so forth, to extend the simulation environment beyond the PIC.
KTechlab is a development and simulation environment for microcontrollers and electronic circuits, distributed under the GNU General Public License. KTechlab consists of several well-integrated components:
A circuit simulator, capable of simulating logic, linear devices and some nonlinear devices.
Integration with gpsim
, allowing
PICs to be simulated in circuit.
A schematic editor, which provides a rich real-time feedback of the simulation.
A flowchart editor, allowing PIC programs to be constructed visually.
MicroBASIC; a BASIC-like compiler for PICs, written as a companion program to KTechlab.
An embedded Kate part, which provides a powerful editor for PIC programs.
Integrated assembler and disassembler via
gpasm
and
gpdasm
.
PiKdev is a simple IDE dedicated to the development of PIC based applications under KDE. Features:
Integrated editor
Project management
Integrated programming engine for 12, 14 and 16 bits PIC (flash or EPROM technology)
Support for parallel and serial port programmers
KDE compliant look-and-feel
The system administrator must read
README.Fedora
file located in the
/usr/share/doc/pikdev-0.9.2
directory
to complete the full feature installation.
Piklab is a graphic
development environment for PIC and dsPIC microcontrollers.
It interfaces with various toochains for compiling and
assembling and it supports several Microchip and direct
programmers. The system administrator must refer to the
README.Fedora
file located in the
/usr/share/doc/piklab-0.15.0
directory
to complete full feature installation.
PiKLoop generates code to create delays for Microchip PIC microcontrollers. It is a useful companion for Pikdev or Piklab IDE.
A linux based command-line programmer for Atmel chips with a USB bootloader supporting ISP. This is a mostly Device Firmware Update (DFU) 1.0 compliant user-space application. Currently supported chips: 8051, AVR, at89c51snd1c, at90usb1287, at89c5130, at90usb1286, at89c5131, at90usb647, at89c5132, at90usb646, at90usb162, and at90usb82.
The sdcc-2.6.0-12 package for SDCC is a C compiler for 8051 class and similar microcontrollers. The package includes the compiler, assemblers and linkers, a device simulator, and a core library. The processors supported (to a varying degree) include the 8051, ds390, z80, hc08, and PIC.
The uisp
utility is for
downloading/uploading programs to AVR devices. It can also
be used for some Atmel 8051 type devices. In addition,
uisp
can erase the device, write lock
bits, verify and set the active segment. For use with the
following hardware to program the devices: pavr, stk500,
Atmel STK500, dapa, Direct AVR Parallel Access, stk200,
Parallel Starter Kit, STK200, STK300, abb, Altera,
ByteBlasterMV Parallel Port Download Cable, avrisp, Atmel
AVR, bsd, fbprg (parallel), dt006 (parallel), dasa serial
(RESET=RTS SCK=DTR MOSI=TXD MISO=CTS), dasa2 serial
(RESET=!TXD SCK=RTS MOSI=DTR MISO=CTS)
SimCoupe emulates an 8bit Z80 based home computer, released in 1989 by Miles Gordon Technology. The SAM Coupe was largely spectrum compatible, with much improved hardware
SjASM is a two pass macro Z80 cross assembler
The z88dk
program is a Z80 cross
compiler capable of generating binary files for a variety of
Z80 based machines (such as the ZX81, Spectrum, Jupiter Ace,
and some TI calculators).
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.
Developing new software against the legacy API is discouraged. | |
---|---|
As with any backwards-compatibility library, you would be developing against a deprecated interface. |