# Fedora Core 4 Release Notes

Copyright © 2005 Red Hat, Inc.

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/licenses/fdl.html.

This document may be copied and distributed in any medium, either commercially or noncommercially, provided that the GNU Free Documentation License (FDL), the copyright notices, and the license notice saying the GNU FDL applies to the document are reproduced in all copies, and that you add no other conditions whatsoever to those of the GNU FDL.

Garrett LeSage created the admonition graphics (note, tip, important, caution, and warning). Tommy Reynolds `<Tommy.Reynolds@MegaCoder.com>` created the callout graphics. They all may be freely redistributed with documentation produced for the Fedora Project.

RELEASE-NOTES-FC4 (2005-05-30-T16:20-0700)

Red Hat, Red Hat Network, the Red Hat "Shadow Man" logo, RPM, Maximum RPM, the RPM logo, Linux Library, PowerTools, Linux Undercover, RHmember, RHmember More, Rough Cuts, Rawhide and all Red Hat-based trademarks and logos are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries.

Linux is a registered trademark of Linus Torvalds.

Motif and UNIX are registered trademarks of The Open Group.

Intel and Pentium are registered trademarks of Intel Corporation. Itanium and Celeron are trademarks of Intel Corporation.

AMD, AMD Athlon, AMD Duron, and AMD K6 are trademarks of Advanced Micro Devices, Inc.

Windows is a registered trademark of Microsoft Corporation.

SSH and Secure Shell are trademarks of SSH Communications Security, Inc.

FireWire is a trademark of Apple Computer Corporation.

All other trademarks and copyrights referred to are the property of their respective owners.

## 1. Welcome to Fedora Core 4

Fedora Core is a completely free, user friendly, and secure general purpose platform based on Linux. The Fedora Project is an open source project that pioneers leading edge technology and concepts sponsored by Red Hat and supported by the Fedora community.

| New Installation Guide
New for this release is the Fedora Core 4 Installation Guide. This guide is useful for users of all levels and can be found at this URL: http://fedora.redhat.com/docs/fedora-install-guide-en/

Refer to these webpages to find out more information about Fedora:

- Section 1.1, “New in Fedora Core 4”

- Section 2, “Introduction and Technical Release Notes” — Technical release notes

- Help and Support (http://fedora.redhat.com/participate/communicate/)

- Participate in the Fedora Project (http://fedora.redhat.com/participate/)

- About the Fedora Project (http://fedora.redhat.com/about/)

### 1.1. New in Fedora Core 4

Fedora Core 4 is the latest version of the free and popular Fedora Core platform with a number of unique features and significant improvements over previous versions. This section provides an overview of the major highlights in this release.

- Desktop Enhancements — The Fedora desktop brings to you the latest software such as GNOME 2.10 and KDE 3.4 with a new look and feel. GNOME has the new simple and elegant Clearlooks default theme that is inspired by the classic Red Hat Bluecurve theme.

  [D]

- Improved Productivity

  - Evince (http://www.gnome.org/projects/evince/) is a document viewer for multiple document formats such as pdf, postscript, and many others. Evince replaces a whole category of document viewers with a single simple application.

  - OpenOffice.org 2.0 (http://www.openoffice.org/product2/index.html) is an office productivity suite. This latest version includes several enhancements such as improved Microsoft Office compatibility, completely revamped Impress presentation software, and native support for the OpenDocument format. This version also introduces Base, a fully integrated database management software. You can find the extensive list of new features at http://marketing.openoffice.org/2.0/featureguide.html.

  - Eclipse 3.1 is an open and extensible platform and Integrated Development Environment (IDE) that can be used to develop software in any language.

- Support for PowerPC (PPC) Architecture — Refer to Section 3.4, “PPC Hardware Requirements” and Section 5.1, “PPC Installation Notes”.

- Improved Security — SELinux is a security architecture that protects applications and uses through finely grained security controls. The targeted policy that has been active since Fedora Core 3 has been improved to cover dozens of more daemons. You can read more in the technical release notes Section 4, “Overview of This Release”.

- Integrated Clustering Technology — Global File System (GFS) is an open source clustering file system that allows a cluster of Linux servers to share a common storage pool. Fedora Core 4 has integrated GFS within the system to manage your storage in an efficient way. You can read more at http://www.redhat.com/software/rha/gfs/.

- Built-in Virtualization — Xen is a virtual machine that can securely run multiple operating systems in their own sandboxed domains. Xen has been integrated into Fedora Core to work in a seamless fashion. You can read more about Xen at http://fedora.redhat.com/projects/virtualization/.

- Solid Platform — Fedora Core 4 includes and integrates the latest 4.0 version of GNU Compiler Collection which has a rewritten optimisation infrastructure and improved support for a native Free Java software stack. This includes parts of OpenOffice.org 2.0., Eclipse, and Apache Jakarta, among others.

## 2. Introduction and Technical Release Notes

The Fedora Project is an openly-developed project designed by Red Hat, open for general participation, led by a meritocracy, and following a set of project objectives. The results from this project include Fedora Core, a complete, general-purpose operating system built exclusively from open source software.

| Note
Fedora Core is a community supported project. Fedora Core is not a commercially supported product of Red Hat, Inc..

For more information, refer to Section 4, “Overview of This Release”.

Additional important information about this release may be made available at http://fedora.redhat.com/docs/release-notes/. Users are advised to check this link regularly for updates.

For reporting errors or other requests about these release notes, file a bug report using this pre-filled bugzilla template:

https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?assigned_to=relnotes%40fedoraproject.org&blocked=151189&bug_file_loc=http%3A%2F%2Ffedoraproject.org%2Fwiki%2FDocsProject%2FReleaseNotes%2FProcess&bug_severity=normal&bug_status=NEW&cc=kwade%40redhat.com&comment=Description%20of%20problem%2C%20bug%2C%20incorrect%20information%2C%20or%20enhancement%20request%3A%0D%0A%0D%0A%0D%0AVersion%20of%20release%20notes%20this%20bug%20refers%20to%3A%0D%0A%0D%0AFedora%20Core%204%20final%20release&component=fedora-docs&contenttypeentry=&contenttypemethod=list&contenttypeselection=text%2Fplain&data=&dependson=&description=&estimated_time=0.0&estimated_time_presets=0.0&ext_bz_bug_id=&ext_bz_id=0&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Linux&priority=normal&product=Fedora%20Core&rep_platform=All&short_desc=Describe%20problem%2C%20fix%2C%20or%20request%20for%20release%20notes&version=devel&GoAheadAndLogIn=Login

This http://tinyurl.com/al5g4 will take you to the same pre-filled bugzilla template.

## 3. Hardware Requirements

The following information represents the minimum hardware requirements necessary to successfully install Fedora Core 4.

| Note
The compatibility/availability of other hardware components (such as video and network cards) may be required for specific installation modes and/or post-installation usage.

### 3.1. CPU Requirements

This section lists the CPU specifications required by Fedora Core 4.

| Note
The following CPU specifications are stated in terms of Intel processors. Other processors (notably, offerings from AMD, Cyrix, and VIA) that are compatible with and equivalent to the following Intel processors may also be used with Fedora Core.

- Minimum: Pentium-class — Fedora Core 4 is optimized for Pentium 4 CPUs, but also supports earlier CPUs (such as Pentium, Pentium Pro, Pentium II, Pentium III, and including AMD and VIA variants). This approach has been taken because Pentium-class optimizations actually result in reduced performance for non-Pentium-class processors, and Pentium 4 scheduling is sufficiently different (while making up the bulk of today's processors) to warrant this change.

- Recommended for text-mode: 200 MHz Pentium-class or better

- Recommended for graphical: 400 MHz Pentium II or better

- AMD64 processors (both Athlon64 and Opteron)

- Intel processors with Intel® Extended Memory 64 Technology (Intel® EM64T)

### 3.2. Hard Disk Space Requirements

This section lists the disk space required to install Fedora Core 4.

| Note
The disk space requirements listed below represent the disk space taken up by Fedora Core 4 after the installation is complete. However, additional disk space is required during the installation to support the installation environment. This additional disk space corresponds to the size of `/Fedora/base/stage2.img` (on CD-ROM 1) plus the size of the files in `/var/lib/rpm` on the installed system. In practical terms, this means that as little as an additional 90MB can be required for a minimal installation, while as much as an additional 175MB can be required for an "everything" installation. Also, keep in mind that additional space will be required for any user data, and at least 5% free space should be maintained for proper system operation.

This list is for 32-bit x86 systems:

- Custom Installation (Minimal): 620MB

- Server: 1.1GB

- Personal Desktop: 2.3GB

- Workstation: 3.0GB

- Custom Installation (Everything): 6.9GB

This list is for 64-bit x86_64 systems:

- Custom Installation (Minimal): 900MB

- Server: 1.5GB

- Personal Desktop: 2.7GB

- Workstation: 3.4GB

- Custom Installation: (Everything) 7.5GB

### 3.3. Memory Requirements

This section lists the memory required to install Fedora Core 4.

This list is for 32-bit x86 systems:

- Minimum for text-mode: 64MB

- Minimum for graphical: 192MB

- Recommended for graphical: 256MB

This list is for 64-bit x86_64 systems:

- Minimum for text-mode: 128MB

- Minimum for graphical: 256MB

- Recommended for graphical: 512MB

### 3.4. PPC Hardware Requirements

This section lists the minimum PowerPC (PPC) hardware needed to install Fedora Core 4.

- Minimum: PowerPC G3 / POWER4

- Fedora Core 4 supports only the “New World” generation of Apple® Power Macintosh, shipped circa 1999 onwards. It also supports the 64-bit G5 processor and, POWER processors in IBM® eServer™ pSeries™. Currently 32-bit IBM® RS/6000™ machines are not supported.

- Recommended for text-mode: 233 MHz G3 or better

- Recommended for graphical: 400 MHz G3 or better

## 4. Overview of This Release

The following list includes brief summaries of some of the more significant aspects of Fedora Core 4:

- Fedora Core 4 contains the following changes:

  - Support for the PowerPC (PPC) architecture.

  - GCC 4.0

  - GNOME 2.10

  - KDE 3.4 — includes new accessibility features. You can manage these new features in KDS Control Center Regional & Accessibility Accessibility.

  - Native Eclipse 3.1M6 (part of a free Java stack)

  - MySQL 4.1

  - PHP 5.0

  - Xen 2 (virtualization to run multiple versions of an OS)

  - GFS 6.1-0.pre22 (cluster file system)

  - Evince 0.2.1 (universal document viewer)

  - GDM 2.6 - Includes early login capability

  - SELinux — This release includes coverage for 80 new daemons by the targeted policy. There are changes to the handling of Booleans. The targeted policy is enabled by default. For more information, refer to:

    http://fedora.redhat.com/docs/selinux-faq/

    For This is the complete list of daemons covered by the targeted policy:

    - NetworkManager

    - amanda

    - apache

    - apmd

    - arpwatch

    - auditd

    - bluetooth

    - canna

    - cardmgr

    - checkpolicy

    - chkpwd

    - compat

    - comsat

    - consoletype

    - cpucontrol

    - cpuspeed

    - crond

    - cups

    - cvs

    - cyrus

    - dbskkd

    - dbusd

    - dhcpc

    - dhcpd

    - dictd

    - dmidecode

    - dovecot

    - fingerd

    - fsadm

    - ftpd

    - getty

    - hald

    - hostname

    - hotplug

    - howl

    - hwclock

    - i18n_input

    - ifconfig

    - inetd

    - init

    - initrc

    - innd

    - kerberos

    - klogd

    - ktalkd

    - kudzu

    - ldconfig

    - load_policy

    - login

    - lpd

    - mailman

    - modutil

    - mta

    - mysqld

    - named

    - netutils

    - nscd

    - ntpd

    - portmap

    - postgresql

    - ppd

    - privoxy

    - radius

    - radvd

    - restorecon

    - rlogind

    - rpcd

    - rpm

    - rshd

    - rsync

    - samba

    - saslauthd

    - sendmail

    - setfiles

    - slapd

    - snmpd

    - squid

    - ssh

    - stunnel

    - syslogd

    - telnetd

    - tftpd

    - udev

    - updfstab

    - uucpd

    - webalizer

    - winbind

    - xdm

    - ypbind

    - ypserv

    - zebra

## 5. Installation-Related Notes

This section outlines those issues that are related to Anaconda (the Fedora Core installation program) and installing Fedora Core 4 in general.

| Note
If you intend to download the Fedora Core 4 DVD ISO image, keep in mind that not all file downloading tools can accommodate files larger than 2GB in size. For example, wget will exit with a `File size limit exceeded` error. The curl and ncftpget file downloading tools do not have this limitation, and can successfully download files larger than 2GB. Bittorrent is another method for downloading large files. For information about obtaining and using the torrent file refer to this website: http://torrent.fedoraproject.org/

### 5.1. PPC Installation Notes

The DVD or first CD of the installation set of Fedora Core is set to be bootable on the Apple® Macintosh and should boot the appropriate 32-bit or 64-bit installer. In addition, bootable CD images can be found in the `images/` directory of the DVD or first CD. Choose the appropriate `boot.iso` according to the hardware:

- `images/mac/boot.iso` - 32-bit Apple® Macintosh (G3/G4)

- `images/mac64/boot.iso` - 64-bit Apple® Macintosh (G5)

- `images/pseries/boot.iso` - 64-bit IBM® eServer™ pSeries™ (POWER4/POWER5)

- Power management support, including sleep and backlight level management, is present in the apmud package, which is in Fedora Extras. Fedora Extras for Fedora Core is configured by default for yum. Following installation, apmud can be installed by running yum install apmud.

### 5.2. Anaconda Notes

- The Fedora Core installation program has the ability to test the integrity of the installation media. It works with the CD, DVD, hard drive ISO, and NFS ISO installation methods. Red Hat recommends that you test all installation media before starting the installation process, and before reporting any installation-related bugs (many of the bugs reported are actually due to improperly-burned CDs). To use this test, type linux mediacheck at the `boot:` prompt.

  The mediacheck function is highly sensitive, and may report some usable discs as faulty. This result is often caused by disc writing software that does not include padding when creating discs from ISO files. For best results with the mediacheck, boot with the option:

      linux ide=nodma

  Use the sha1sum utility to verify discs before carrying out an installation. This test accurately identifies discs that are not valid or identical to the ISO image files.

- Memory testing may be performed prior to installing Fedora Core by entering memtest86 at the `boot:` prompt. This causes the Memtest86 standalone memory testing software to run. Memtest86 memory testing continues until the Esc key is pressed.

  NOTE: You must boot from CD-ROM 1 (or a rescue CD-ROM) in order to use this feature.

- Fedora Core 4 supports graphical FTP and HTTP installations. However, due to the necessity of containing the installer image in RAM, only systems with more than 128MB of RAM (or systems booted from CD-ROM 1, which contains the installer image) can use the graphical installer. Systems with 128MB or less will continue to use the text-based installer.

### 5.3. Installation-Related Issues

- Certain hardware configurations (particularly those with LCD displays) may experience problems while starting the Fedora Core installation program. In these instances, restart the installation, and add the "nofb" option to the boot command line.

  | Note
  Chinese, Japanese, and Korean graphical installations started using the "nofb" option will start in English, and then switch to the appropriate language once the graphical phase of the installation process begins.

- Some Sony VAIO® notebook systems may experience problems installing Fedora Core from CD-ROM. If this happens, restart the installation process and add the following option to the boot command line:

  pci=off ide1=0x180,0x386

  This option allows the installation to proceed normally; any devices not detected due to the use of this option will be configured the first time Fedora Core is booted.

- Serial mice are known to be inoperative during installation. However, there are indications that serial mice work properly in X after the installation has completed. Refer to bug 119474 for more information:

  http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=119474

- There have been issues observed when upgrading Red Hat Linux 7.`<x>`, 8.0, 9, and Fedora Core 1, 2, and 3 systems where third party packages are installed that conflict with packages provided by Fedora Project. One example is Ximian GNOME.

  The issue with Ximian GNOME is caused by version overlap between the official Red Hat Linux RPMs (or the ones from the Fedora Project) and the Ximian RPMs. This configuration is not supported. You have several choices in resolving this particular issue:

  1. 1) You may remove Ximian GNOME from your system prior to upgrading to Fedora Core.

  2. 2) You may upgrade your system, and then immediately reinstall Ximian GNOME.

  3. 3) You may upgrade your system, and then immediately remove all remaining Ximian RPMs, replacing them with the corresponding Fedora Core RPMs.

  You must resolve the version overlap using one of the above choices. Failure to do so will result in an unstable GNOME configuration.

## 6. Package-Specific Notes

The following sections contain information regarding packages that have undergone significant changes for Fedora Core 4. For easier access, they are organized using the same groups used in Anaconda.

### 6.1. Basic Components

This section contains information related to basic system components.

#### 6.1.1. Fedora Extras Repository

Fedora Extras is part of the larger Fedora Project and is a volunteer-based community effort to create a repository of packages that compliment Fedora Core. The Fedora Extras repository is enabled by default from Fedora Core 4 onwards.

You can lean more about Fedora Extras from:

http://fedoraproject.org/wiki/Extras

If you would like to install any software available from Fedora extras you can use yum.

yum install `<packagename>`

Where `<packagename>` is the name of the package you want to install. For example, if you wanted to install the `abiword` package, the command yum install abiword automatically installs the package and all dependencies.

#### 6.1.2. Audit Daemon auditd and Log Files

The audit daemon, auditd, is now enabled by default. When auditd is running, the kernel directs audit messages to /var/log/audit/audit.log. The location of this file is specified in /etc/auditd.conf.

AVC messages for SELinux are sent using the audit infrastructure. These messages are now in /var/log/audit/audit.log.

When auditd is not running, the kernel passes audit messages to syslog. These logs are typically kept in /var/log/messages and are viewable using dmesg.

Audit extensions are now compiled into PAM. All programs that do grant entry to the system or change user account attributes will generate an audit message.

To enable auditing within the kernel, you must pass the parameter audit=1 to the kernel during boot. Otherwise, you can use this command to enable auditing during run time:

auditctl -e 1

#### 6.1.3. LinuxThreads versus NPTL

As the next step in removing support for the obsolete LinuxThreads library, code compiled and linked on Fedora Core 4 now automatically uses the NPTL headers and libraries.

In previous releases since Red Hat Linux 9, the default threading was LinuxThreads since the interface is mostly forward compatible. The advantages of the NPTL interface is that the cancellation handling is faster (when `-fexception` is used, even in C code) and that the additional interfaces are now available without special compiler and linker parameters. In other words, you do not need to use `-I/usr/include/nptl` and `-L/usr/lib{,64}/nptl` any longer. Note that `lib{,64}` is to be interpreted as lib64 on platforms which place DSOs in `lib64/` directories, and `lib/` otherwise.

In Fedora Core 4 it is still possible to create code using the LinuxThreads definitions. For this the `linuxthreads-devel` package must be installed and

`-I/usr/include/linuxthreads -L/usr/lib{,64}/linuxthreads`

must be passed to the compiler.

Previously, you could select the version of glibc and the libpgthread DSH using run time environment variables. You now need to also specify this variable in the environment:

`LD_LIBRARY_PATH=/lib{,64}/obsolete/linuxthreads`

This additional variables is required because the run/time libraries have been moved out of the way. There might programs that will not work if the program uses an unfortunate DT_RPATH (which overwrites the LD_LIBRARY_PATH setting).

All this makes it more cumbersome to run programs which depend on LinuxThreads. But this is intentional.

| Important
FC5 will not have LinuxThreads support and all programs have to be converted to use NPTL by then.

In general, conversion to using NPTL has not been an issue.

#### 6.1.4. Enabling the `slocate` Database

The database needed by the locate utility is no longer created by default. Enable the database creation by setting `DAILY_UPDATE` to `yes` in `/etc/updatedb.conf` if you want to use locate.

#### 6.1.5. Stricter Controls in `openssh`

The version of OpenSSH in Fedora Core 4 is based on OpenSSH 3.9 and includes strict permission and ownership checks for the user configuration file `~/.ssh/config`. If this file does not have appropriate ownership and permissions, ssh will exit.

Check that `~/.ssh/config` is owned by the owner of `~/`, and that its permissions are set to mode 600.

    ls -l ~/.ssh/config
    -rw-------  1 username username 400 May  5 18:44 /home/username/.ssh/config

The directory `~/` is command-line shorthand for the logged in user's home directory, usually `/home/username/`.

In addition, OpenSSH is no longer configured to request X11 forwarding by default when connecting to servers. To enable X11 forwarding, the `-X` or `-Y` option must be specified, or the `ForwardX11` option must be enabled in the `~/.ssh/config` file.

The behavior of ssh clients that are invoked with the `-X` option has changed. In OpenSSH 3.8 and later, X11 forwarding is performed in a way that applications run as untrusted clients by default. Previously, X11 forwarding was performed so that applications always ran as trusted clients. Some applications may not function properly when run as untrusted clients. To forward X11 so that applications are run as trusted clients, invoke ssh with the `-Y` option instead of the `-X` option, or set `ForwardX11Trusted` in the `~/.ssh/config` file.

#### 6.1.6. Perl Binary Compat Symlinks

Binary compat symlinks for `perl-5.8.0`, `perl-5.8.1`, and `perl-5.8.2` have been removed. If you have perl modules built with those older versions of perl, you need to rebuild using the `perl-5.8.6` contained in Fedora Core 4.

#### 6.1.7. Server and System Configuration Tools

This section highlights changes and additions to the various GUI server and system configuration tools in Fedora Core.

##### 6.1.7.1. system-config-lvm

The new LVM tool system-config-lvm assists you in managing logical volumes.

#### 6.1.8. Java Package Recommendations

Fedora Core 4 users are advised not to use the Java RPM provided by Sun. It contains `Provides` that conflict with names used in packages provided as part of Fedora Core 4. Because of this, Sun Java might disappear from an installed system during package upgrade operations.

Fedora Core 4 users should use either the RPM from jpackage.org or manually install the Sun Java tarball into /opt``. Sun Java 1.5+ is recommended for stability purposes.

### 6.2. Core

This section contains the most elemental components of Fedora Core, including the kernel.

#### 6.2.1. yum

The sqllite database is now used by yum, and makes performance noticeably faster.

The Fedora Extras repository is now enabled by default.

#### 6.2.2. Linux Kernel

##### 6.2.2.1. Version

The Fedora Core is based on a 2.6.11 kernel. Fedora Core may include additional patches for improvements, bug fixes, or additional features. For this reason, the Fedora Core kernel may not be line-for-line equivalent to the so-called vanilla kernel from the `kernel.org` web site.

You may obtain a list of any such patches by using the command on the Fedora Core package:

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

##### 6.2.2.2. Kernel Flavors

Fedora Core includes the following kernel builds:

- Native kernel, in both uniprocessor and SMP varieties.

  Configured sources are available in the `kernel-devel-``<version>``.``<arch>``.rpm` package.

- Virtual kernel for use with the XEN emulator package.

  Configured sources are available in the `kernel-xen0-devel-``<version>``.``<arch>``.rpm` package.

Sources for both kernel flavors may be installed at the same time. The files will be installed into the `/usr/src/kernels/``<version>`[`-xen0`]`-``<arch>``/` tree. Use the command:

    # rpm -Uvh kernel-devel[-xen0]-<version>.<arch>.rpm

as appropriate.

| Following Generic Textbooks
Many of the tutorials, examples, and textbooks about Linux kernel development assume the kernel sources are installed under the `/usr/src/linux` directory. If you make a symbolic link, as shown below, you should be able to use those learning materials with the Fedora Core packages. Install the appropriate kernel sources, as shown earlier, and then:
    # ln -s /usr/src/kernels/kernel-<all-the-rest> /usr/src/linux

##### 6.2.2.3. Preparing for Kernel Development

Fedora Core 4 does not include the `kernel-source` package provided by older versions. Instead, configured sources are available as described in Section 6.2.2.2, “Kernel Flavors”. Users that require access to Fedora Core original kernel sources can find them in the `kernel` `.src.rpm` package. To create an exploded source tree from this file, perform the following steps:

| These Instructions Refer The Currently-running Kernel!
To simplify the following directions, we have assumed that you want to configure the kernel sources to match your currently-running kernel. In the steps below, you must understand that the phrase <version> refers to the kernel version shown by the:
    $ uname -r
command.

1. Obtain the `kernel-`<version>`.src.rpm` file from one of the following sources:

   - The `SRPMS` directory on the appropriate SRPMS CD `iso` image.

   - The FTP site where you got the kernel package.

   - By running the following command:

         # up2date --get-source kernel

2. Install `kernel-`<version>`.src.rpm` using the command:

       # rpm -Uvh kernel-<version>.src.rpm

   This writes the RPM contents into `/usr/src/redhat/SOURCES` and `/usr/src/redhat/SPECS`.

3. Prepare the kernel sources using the commands:

       # cd /usr/src/redhat/SPECS
       # rpmbuild -bp --target $(arch) kernel.spec

   The kernel source tree will be located in the `/usr/src/redhat/BUILD/kernel-``<version>` directory. It is common practice to move the resulting `linux-``<version>` directory to the `/usr/src` tree; while not strictly necessary, we suggest that you do this to match the generally-available documentation.

       # cd /usr/src/redhat/BUILD/kernel-<version> /usr/src/
       # mv linux-<version> /usr/src/
       # cd /usr/src
       # ln -s ./linux-<version> linux
       # cd /usr/src/linux

4. The configurations for the specific kernels shipped in Fedora Core 4 are in the `configs/` directory. For example, the i686 SMP configuration file is named `configs/kernel-`<version>`-i686-smp.config`. Issue the following command to place the desired configuration file in the proper place for building:

       # cp configs/<desired-config-file> .config

5. Issue the following command:

       # make oldconfig

You can then proceed as usual.

##### 6.2.2.4. Building Only Kernel Modules

An exploded source tree is not required to build a kernel module, such as your own device driver, against the currently in-use kernel.

For example, to build the `foo.ko` module, create the following `Makefile` in the directory containing the `foo.c` file:

    obj-m := foo.o

    KDIR  := /lib/modules/$(shell uname -r)/build
    PWD   := $(shell pwd)

    default:
        $(MAKE) -C $(KDIR) M=$(PWD) modules

Issue the make command to build the `foo.ko` module.

##### 6.2.2.5. Userspace Dependancies on the Kernel

Fedora Core adds support for clustered systems. This requires a special kernel that works in conjunction with some user-space utilities, such as management daemons. Consequently, to remove such a kernel, perhaps after an update, you cannot simply use the rpm -e kernel-`<version>` command as in earlier distributions because these userspace packages depend on the kernel package. You may either list both the kernel package and its userspace dependant packages on the rpm -e command, or you may wish to use the yum remove kernel-`<version>` command instead since yum automatically removes dependant packages if necesssary.

#### 6.2.3. Security

This section highlights various security items from Fedora Core.

##### 6.2.3.1. Digital Certificates Consolidated

Digital certificates are now centralised in directories under `/etc/pki/`. Users performing an upgrade must relocate their digital certificates.

OpenSSL: the `/usr/share/ssl` contents have moved to `/etc/pki/tls` and `/etc/pki/CA`.

Dovecot: A `dovecot-openssl.cnf` file is automatically installed in `/etc/pki/dovecot/`.

### 6.3. Development Tools

#### 6.3.1. GCC Compiler Collection

Fedora Core 4 has been built using GCC 4.0, which is included with the distribution.

Caveats

- GDB 6.1 or newer is needed to debug binaries unless compiled using the `-fno-var-tracking` compilation option.

- The `-fwritable-strings` option is no longer accepted.

- English-language diagnostic messages now use Unicode quotes; if you cannot read this, set your `LC_CTYPE` environment variable to "`C`" or change your terminal emulator.

- The `specs` file is no longer installed on most systems. Ordinary users will not notice, but developers who need to alter the file can use the `-dumpspecs` option to generate the file for editing.

Code Generation

- The SSA code optimizer is now included and brings with it better constant propagation; partial redundancy elimination; load and store code motion; strength reduction; dead storage elimination; better detection of unreachable code; and tail recursion by accumulation.

- Autovectorization is supported. This technique achieves higher performance for repetitive loop code, in some circumstances.

Language Extentions

- A `sentinel` attribute has been added so that the compiler will now issue a warning if a function such as `execl(char *path, const char *arg, ...)`, which requires a `NULL` list terminator is missing the `NULL`.

- The cast-as-lvalue, conditional-expression-as-lvalue, and compund-expression-as-lvalue extentions have been removed.

- The `#pragma pack()` semantics have been brought closer to those used by other compilers.

- Taking the address of a variable declared with the `register` modifier now generates an error instead of a warning.

- Arrays of incomplete element types now generate an error. This implies no forward reference to structure definitions.

- The basic compiler, without any optimization (`-O0`), has been measured as much as 25% faster in real-world code.

- Libraries may now contain function-scope static variables in multi-threaded programs. The `-fno-threadsafe-statics` can be used by embedded developers to turn off this feature, but ordinary users should never do this.

Java

- To avoid naming conflicts: `rmic` is now `grmic`; `rmiregistry` is now `grmiregistry`; and `jar` is now `fastjar`.

- The GCJ compiler can now be used as a just-in-time (JIT) tool by using the `gnu.jit` facilities.

- More support of the AWT and SWING packages have been added.

FORTRAN

- The GNU FORTRAN 77 front end has been replaced by a new FORTRAN 90/95 recognizer.

Eclipse Development Environment

- Eclipse 3.1M6 has been compiled as a native application.

- The C Development Tool (CDT) has been included.

### 6.4. Language Support

This section includes information related to the support of various languages under Fedora Core.

#### 6.4.1. The IIIMF Input System

IIIMF is the Internet/Intranet Input Method Framework. In Fedora Core 4 the `iiimf` package is updated to version 12.2.

File Path Changes

  The names and locations of some files in the `iiimf` packages have changed.

  The IIIMF server has been renamed from `/usr/sbin/htt` to `/usr/bin/iiimd`, and the XIM bridge client renamed from `httx` to `iiimx`. The `init.d` script name has not changed: it is still called `iiim`. All the global system configuration files are now located under `/etc/iiim/`.

  Language Engine (LE) developers should note that LE modules and their data now live under `${libdir}/iiim/le/`<LE_NAME>`/`, while runtime data is stored under `/var/lib/iiim/le/`<LE_NAME>`/`.

  For more information on the exact path and file location changes, please refer to Fedora IIIMF FAQ:

  http://www.fedora.redhat.com/projects/i18n/iiimf-faq.html.

Hotkeys

  Trigger keys, such as Ctrl-Space used to activate Input Methods, are now configurable with the command-line tool iiimf-le-tools. This feature is only supported by GTK2 applications currently. For other applications using XIM the trigger key can be changed using an X resource. Refer to the IIIMF FAQ at http://www.fedora.redhat.com/projects/i18n/iiimf-faq.html for more details on how to change trigger hotkeys.

  Note that the keyname refers to the X key symbol name. For example, if you want to activate with Ctrl-@, you need to specify '<Control>at' as the keyname not '<Control>@'.

  The per-user configuration of hotkeys does not work currently with SELinux in enforcing mode due to lack of SELinux policy. In this case, the hotkey can only be changed in the system-wide configuration.

Qt Support

  A Qt immodule for `iiimf` is now included. This immodule works but lacks a status window and is considered experimental. Therefore, the default for Qt applications is to continue using XIM for IIMF input.

  If you wish to try the immodule in a Qt application, first install the `iiimf-qt` package, start the application, then click mouse button-3 in an input area and select iiimqcf from the Select Input Method' submenu.

### 6.5. Multimedia

This section contains information related to multimedia applications.

### 6.6. Web Servers

This section contains information on Web-related applications.

#### 6.6.1. `mod_perl`

The RC5 release of mod_perl 2.0 is now included. The API provided by this release is incompatible with previous 1.99_xx releases. Please refer to the following document for a discussion of how to adapt code to use the new API:

http://perl.apache.org/docs/2.0/rename.html

#### 6.6.2. `php`

Version 5.0 of PHP is now included, which includes a number of changes to the language along with significant performance improvements. Please refer to the PHP documentation for more information on migrating from PHP 4.3 to PHP 5.0:

http://www.php.net/manual/en/migration5.php

The `/usr/bin/php` binary is now built using the CLI command-line SAPI, rather than the CGI SAPI. Use `/usr/bin/php-cgi` for CGI SAPI. The php-cgi also includes FastCGI support.

The following extensions have been added:

- The mysqli extension, a new interface designed specifically for MySQL 4.1. This is included in the `php-mysql` package.

- The soap extension, for implementing SOAP clients and servers.

The following extensions are now available as optional loadable extensions, rather than being built in to the PHP binaries:

- The dba extension, now available in the `php-dba` package

- The bcmath extension, now available in the `php-bcmath` package

### 6.7. Samba (Windows Compatibility)

This section contains information related to Samba, the suite of software that enables Linux to interact with Microsoft Windows systems.

Browsing of Windows shares (also known as SMB browsing) fails on Fedora Core 4 systems that have the standard firewall configured. This is most easily noticed in the failure of the desktop to display shares.

The firewall disrupts the broadcast mode of SMB browsing, which is the default. There are two workarounds:

- Configure a WINS server on the network, and set the "wins server" option in smb.conf to the address of the WINS server.

- Disable the firewall.

| Disabling the firewall may make your system vulnerable
Make sure you fully understand the risks before undertaking this step.

For additional information, refer to the following bug report:

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

### 6.8. X Window System (Graphics)

This section contains information related to the X Window System implementation provided with Fedora Core.

#### 6.8.1. `xorg-x11`

Users new to the X.org X11 implementation should take note of a few differences between it and the XFree86.org X11 implementation which shipped in previous Red Hat operating systems. In particular, the names of some files have changed:

X Server Binary:

- XFree86 X11: `XFree86`

- X.org X11: `Xorg`

X Server Configuration File:

- XFree86 X11: `/etc/X11/XF86Config`

- X.org X11: `/etc/X11/xorg.conf`

X Server Log File:

- XFree86 X11: `/var/log/XFree86.`$DISPLAY`.log`

- X.org X11: `/var/log/Xorg.`$DISPLAY`.log`

When configuring or troubleshooting your X server configuration, be sure that you are using the correct files.

There has been some confusion regarding font-related issues under the X Window System in recent versions of Fedora Core (and versions of Red Hat Linux before it.) At the present time, there are two font subsystems, each with different characteristics:

- The original (15+ year old) subsystem is referred to as the "core X font subsystem". Fonts rendered by this subsystem are not anti-aliased, are handled by the X server, and have names like: `-misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1`

- The newer font subsystem is known as "fontconfig", and allows applications direct access to the font files. Fontconfig is often used along with the Xft library, which allows applications to render fontconfig fonts to the screen with antialiasing. Fontconfig uses more human-friendly names such as: `Luxi Sans-10`

Over time, fontconfig and Xft will replace the core X font subsystem. At the present time, applications using the Qt 3 or GTK 2 toolkits (which would include KDE and GNOME applications) use the fontconfig and Xft font subsystem; most everything else uses the core X fonts.

In the future, Fedora Core may support only fontconfig/Xft in place of the XFS font server as the default local font access method.

| Note
An exception to the font subsystem usage outlined above is OpenOffice.org (which uses its own font rendering technology).

If you wish to add new fonts to your Fedora Core 4 system, you must be aware that the steps necessary depend on which font subsystem is to use the new fonts. For the core X font subsystem, you must:

1. Create the `/usr/share/fonts/local/` directory (if it doesn't already exist):

       mkdir /usr/share/fonts/local/

2. Copy the new font file into `/usr/share/fonts/local/`

3. Update the font information by issuing the following commands (note that, due to formatting restrictions, the following commands may appear on more than one line; in use, each command should be entered on a single line):

       ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale
       mkfontdir /usr/share/fonts/local/

4. If you had to create `/usr/share/fonts/local/`, you must then add it to the X font server (xfs) path:

       chkfontpath --add /usr/share/fonts/local/

Adding new fonts to the fontconfig font subsystem is more straightforward; the new font file only needs to be copied into the `/usr/share/fonts/` directory (individual users can modify their personal font configuration by copying the font file into the `~/.fonts/` directory).

After the new font has been copied, use fc-cache to update the font information cache:

    fc-cache <directory>

(Where `<directory>` would be either the `/usr/share/fonts/` or `~/.fonts/` directories.)

Individual users may also install fonts graphically, by browsing fonts:/// in Nautilus, and dragging the new font files there.

| Note
If the font filename ends with "`.gz`", it has been compressed with gzip, and must be decompressed (with the gunzip command) before the fontconfig font subsystem can use the font.

Due to the transition to the new font system based on fontconfig/Xft, GTK+ 1.2 applications are not affected by any changes made via the Font Preferences dialog. For these applications, a font can be configured by adding the following lines to the file `~/.gtkrc.mine`:

    style "user-font" {
    fontset = "<font-specification>"
    }
    widget_class "*" style "user-font"

(Where `<font-specification>` represents a font specification in the style used by traditional X applications, such as "`-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*`".)

## 7. Packages Movement

### 7.1. Packages Moved to Fedora Extras

These are some of the packages that have moved from Core to Fedora Extras. These are active packages that are maintained and supported by the Fedora Project. If you are looking for information about Extras, refer to this URL:

http://fedoraproject.org/wiki/Extras

| List is Incomplete
This list highlights some of the major packages that moved from Core to Extras between Fedora Core 3 and Fedora Core 4. This is not a complete list.

- abiword

- aiksaurus

- balsa

- bzflag

- cyrus-imapd

- dbh

- dietlibc

- exim

- freeciv

- gnuchess

- gnumeric

- grip

- jed

- lapack

- libgda

- libgnomedb

- libtabe

- libxfce4mcs

- libxfce4util

- libxfcegui

- Maelstrom

- ncftp

- ots

- recode

- SDL_image

- SDL_mixer

- SDL_net

- sylpheed

- system-switch-im

- xboard

- xcin

- xemacs

- xemacs-sumo

- xfce4-iconbox

- xfce4-panel

- xfce4-systray

- xfce-mcs-manager

- xfce-mcs-plugins

- xfce-utils

- xfdesktop

- xffm

- xffm-icons

- xfprint

- xfwm4

- xmms

## 8. An Overview of the Fedora Project

The goal of the Fedora Project is to work with the Linux community to build a complete, general-purpose operating system exclusively from open source software. Development is done in a public forum. The project produces time-based releases of Fedora Core approximately 2-3 times a year, with a public release schedule. The Red Hat engineering team will continue to participate in building Fedora Core and will invite and encourage more outside participation than was possible in the past. By using this more open process, we hope to provide an operating system more in line with the ideals of free software and more appealing to the open source community.

For more information, refer to the Fedora Project website:

http://fedora.redhat.com/

In addition to the website, the following mailing lists are available:

- fedora-list@redhat.com — For users of Fedora Core releases

- fedora-test-list@redhat.com — For testers of Fedora Core test releases

- fedora-devel-list@redhat.com — For developers, developers, developers

- fedora-docs-list@redhat.com — For participants of the docs project

To subscribe to any of these lists, send an email with the word "subscribe" in the subject to ``<listname>`-request` (where ``<listname>`` is one of the above list names.)

Alternately, you can subscribe through the Web interface:

http://www.redhat.com/mailman/listinfo/

If you have subscribed in the past to rhl-list, rhl-beta-list, rhl-devel-list, or rhl-docs-list, your subscriptions have been retained.

The Fedora Project also includes an IRC (Internet Relay Chat) channel. IRC is a real-time, text-based form of communication. With it, you can have conversations with multiple people in an open channel or chat with someone privately one-on-one.

To talk with other Fedora Project participants via IRC, access freenode IRC network. Initially, you can use `irc.freenode.net` as the IRC server, although you may decide to select a server that is geographically closer to you. Refer to the freenode website (http://www.freenode.net/) for more information. Fedora Project participants frequent the `#fedora` channel, while Fedora Project developers can often be found on the `#fedora-devel` channel. Some of the larger projects may have their own channels as well; this information can be found on the project pages.

In order to talk on the `#fedora` channel, you will need to register your nickname (nick). Instructions are given when you /join the channel.

| Note
Red Hat has no control over the Fedora Project IRC channels or their content.