5.2. Software Changes from Version to Version

The individual aspects changed from version to version are outlined in the following in detail. This summary indicates, for example, whether basic settings have been completely reconfigured, whether configuration files have been moved to other places, or whether common applications have been significantly changed. The modifications that affect the daily use of the system at either the user level or the administrator level are mentioned below.

5.2.1.  From SLES8 to SLES9

5.2.1.1. Upgrading to Kernel 2.6

SUSE LINUX is now based entirely on kernel 2.6. The predecessor version 2.4 should no longer be used, as the enclosed applications may not work with kernel 2.4. Moreover, note the following details:

  • The loading of modules is now configured by means of the file /etc/modprobe.conf. The file /etc/modules.conf is obsolete. YaST will try to convert the file (see also script /sbin/generate-modprobe.conf).

  • Modules now have the suffix .ko.

  • The module ide-scsi is no longer needed for burning CDs.

  • The prefix snd_ has been removed from the ALSA sound module options.

  • sysfs now complements the /proc file system.

  • Power management (especially ACPI) has been improved and can now be configured by means of a YaST module.

5.2.1.2. Mounting VFAT Partitions

When mounting VFAT partitions, the parameter code= must be changed to codepage=. If you have difficulties mounting a VFAT partition, check if the file /etc/fstab contains the old parameter name.

5.2.1.3. Native POSIX Thread Library and glibc 2.3.x

Applications linked against NGPT (Next Generation POSIX Threading) do not work with glibc 2.3.x. All affected applications that are not shipped with SUSE LINUX must be compiled with linuxthreads or with NPTL (Native POSIX Thread Library). NPTL is preferred, as this is the standard for the future.

If NPTL causes difficulties, the older linuxthreads implementation can be used by setting the following environment variable (replace kernel-version with the version number of the respective kernel):

LD_ASSUME_KERNEL=kernel-version

The following version numbers are possible:

2.2.5 (i386, i586):

linuxthreads without floating stacks

2.4.1 (AMD64, IPF, s390x, i586, i686):

linuxthread with floating stacks

Notes regarding the kernel and linuxthreads with floating stacks: Applications using errno, h_errno, and _res must include the header files (errno.h, netdb.h, and resolv.h) with #include. For C++ programs with multithread support that use thread cancellation, the environment variable LD_ASSUME_KERNEL=2.4.1 must be used to prompt the use of the linuxthreads library.

5.2.1.4. Adaptions for Native POSIX Thread Library

NPTL (Native POSIX Thread Library) is included as the thread package. NPTL is binary-compatible with the older linuxthreads library. However, areas in which linuxthreads violates the POSIX standard require NPTL adaptions. This includes the following: signal handling, getpid returns the same value in all threads, and thread handlers registered with pthread_atfork do not work if vfork is used.

5.2.1.5. Network Interface Configuration

The configuration of the network interface has changed. Formerly, the hardware was initialized following the configuration of a nonexistent interface. Now, the system searches for new hardware and initializes it immediately, enabling the configuration of the new network interface.

New names have been introduced for the configuration files. As the name of a network interface is generated dynamically and the use of hotplug devices is increasing steadily, a name like ethX is no longer suitable for configuration purposes. For this reason, unique designations, like the MAC address or the PCI slot, are now used for naming interface configurations. Of course, you can use interface names as soon as they appear. Commands like ifup eth0 or ifdown eth0 are still possible.

The device configurations are located in /etc/sysconfig/hardware. The interfaces provided by these devices are usually located in /etc/sysconfig/network (with different names). See the detailed description in /usr/share/doc/packages/sysconfig/README.

5.2.1.6. Top-Level Domain .local as “link-local” Domain

The resolver library treats the top-level domain .local as “link-local” domain and sends multicast DNS queries to the multicast address 224.0.0.251, port 5353, instead of normal DNS queries. This is an incompatible change. If the domain .local is already used in the name server configuration, use a different domain name. For more information about multicast DNS, see http://www.multicastdns.org.

5.2.1.7. Systemwide UTF-8 Encoding

Currently, the default encoding for the system is UTF-8. Thus, when performing a standard installation, a locale is set with .UTF-8 encoding (e.g., en_US.UTF-8). For more information, see http://www.suse.de/~mfabian/suse-cjk/locales.html.

5.2.1.8. Converting File Names to UTF-8

Files in previously created file systems do not use UTF-8 encoding for the file names (unless specified otherwise). If these files names contain non-ASCII characters, they will be garbled. To correct this, use the convmv script which converts the encoding of file names to UTF-8.

5.2.1.9. Shell Tools Compatible with POSIX Standard of 2001

In the default setting, shell tools from the coreutils package (tail, chown, head, sort, etc.) no longer comply with the POSIX standard of 1992 but with the POSIX standard of 2001 (Single UNIX Specification, version 3 == IEEE Std 1003.1-2001 == ISO/IEC 9945:2002). The old behavior can be forced with an environment variable:

_POSIX2_VERSION=199209

The new value is 200112 and is used the default for _POSIX2_VERSION. The SUS standard can be reviewed at the following URL (free of charge, but registration is required):

http://www.unix.org

Table 5.1. Comparison POSIX 1992 vs. POSIX 2001

POSIX 1992POSIX 2001
chown tux.userschown tux:users
tail +3tail -n +3
head -1head -n 1
sort +3sort -k +3
nice -10nice -n 10
split -10split -l 10
[Tip]Tip

Third-party software may not yet comply with the new standard. In this case, set the environment variable as described above: _POSIX2_VERSION=199209.

5.2.1.10. /etc/gshadow Obsolete

/etc/gshadow has been abandoned and removed, as this file is superfluous for the following reasons:

  • It is not supported by glibc.

  • There is no official interface for this file; even the shadow suite does not contain such an interface.

  • Most tools that check the group password do not support the file and ignore it for the said reasons.

5.2.1.11. OpenLDAP

As the database format has changed, the databases must be regenerated. During the update, the system attempts to perform this conversion automatically. However, there will certainly be cases in which the conversion fails.

The schema check has undergone substantial improvement. Therefore, a number of (non-standard compliant) operations that were possible with the former LDAP server are no longer possible.

The syntax of the configuration file has partly changed with a view to ACLs. Following the installation, further information regarding the update is available in the file /usr/share/doc/packages/openldap2/README.update.

5.2.1.12. Apache 1.3 Replaced with Apache 2

The Apache web server (version 1.3) has been replaced with Apache 2. On a system with an HTTP server installation, an update will remove the Apache package and install Apache 2. Subsequently, the system must be adapted with YaST or manually. The configuration files in /etc/httpd are now located in /etc/apache2. Apache 2 needs the apache2-prefork package (recommended for stability) or the apache2-worker package.

5.2.1.13. From Samba~2.x to Samba~3.x

Following the update from Samba~2.x to Samba~3.x, winbind authentication is no longer available. The other authentication methods can continue to be used. For this reason, the following programs have been removed:

/usr/sbin/wb_auth
/usr/sbin/wb_ntlmauth
/usr/sbin/wb_info_group.pl

See also http://www.squid-cache.org/Doc/FAQ/FAQ-23.html#ss23.5.

5.2.1.14. OpenSSH Update (Version 3.8p1)

gssapi support has been replaced with gssapi-with-mic to prevent potential MITM attacks. These two versions are not compatible. This means that you cannot authenticate with Kerberos tickets from older distributions, as other authentication methods are used.

5.2.1.15. SSH and Terminal Applications

When establishing a connection from a remote host (especially via SSH, telnet, and RSH) between version 9 (standard configuration with activated UTF-8) and older systems (SLES, SLES 8, or SUSE LINUX 9.0 and earlier versions in which UTF-8 is not activated by default or not supported), terminal applications may display faulty characters.

This is because OpenSSH does not forward local settings. Therefore, the default system settings that may not match the remote terminal settings are used. This affects YaST in text mode and applications executed from a remote host as a normal user (not root). The applications started by root are only affected if the user changes the standard locales for root (only LC_CTYPE is set by default).

5.2.1.16. libiodbc Discarded

Users of FreeRADIUS must now link against unixODBC, as libiodbc has been discarded.

5.2.1.17. XML Resources in /usr/share/xml

FHS (see Section 10.1.2. “File System Hierarchy Standard (FHS)”) now requires XML resources (DTDs, stylesheets, etc.) to be installed in /usr/share/xml. Therefore, some directories are no longer available in /usr/share/sgml. If you encounter problems, modify your scripts or makefiles or use the official catalogs (especially /etc/xml/catalog or /etc/sgml/catalog).

5.2.1.18. Removable Media with subfs

Removable media are now integrated with subfs. Media no longer need to be mounted manually with mount. The command cd /media/* launches the automatic mounting process. Media cannot be ejected as long as they are accessed by a program.

5.2.1.19. Printer Configuration

Information about the changes in the print system is available in Section 13.1. “Updating, Upgrading, and Migrating the Print System”.