This file documents the instructions for upgrading to Slackware 12.1, the
packages added, removed, renamed, and/or split during the development cycle
from Slackware 12.0 through 12.1, and some potential "gotchas" that users
can avoid by arming themselves with a little knowledge.
*** INSTRUCTIONS FOR UPGRADING FROM 12.0 ***
Follow the instructions detailed in the UPGRADE.TXT located in this
directory. Note that upgrading from a Slackware version earlier
than 12.0 is NOT supported at all and will almost certainly lead
to breakage.
*** PACKAGE ADDITIONS SINCE 12.0 ***
a/inotify-tools: Added.
a/ntfs-3g: Added ntfs-3g with full read-write support for ntfs filesystems.
a/util-linux-ng: Added (replaced util-linux).
ap/foomatic-filters: Added foomatic-filters; this is required to
print using gutenprint and HPLIP with CUPS.
ap/ghostscript: Replaces espgs (ESP Ghostscript).
ap/gutenprint: Added gutenprint, which replaces gimp-print.
ap/ntfsprogs: Added (without ntfsmount - that's handled by ntfs-3g).
l/dbus-python: Added.
l/fuse: Added.
l/icon-naming-utils: Added.
l/libaio: Added.
l/libcddb: Added (needed by audacious-plugins).
l/libcdio: Added (needed by audacious-plugins).
l/libmcs: Added (renamed from l/mcs).
l/libmowgli: Added libmowgli, which is needed by Audacious.
l/libwnck: Added the Window Navigation Control Kit library.
l/pycairo: Added.
l/pygobject: Added.
l/pygtk: Added.
l/pyrex: Added.
l/tango-icon-theme: Added Tango icon theme.
l/tango-icon-theme-extras: Added Tango theme extra icons.
l/wavpack: Added wavpack (needed by audacious).
n/ipw2100-fw: Added ipw2100 firmware.
n/ipw2200-fw: Added ipw2200 firmware.
n/iwlwifi-3945-ucode: Added Intel 3945 wireless firmware.
n/iwlwifi-4965-ucode: Added Intel 4965 wireless firmware.
n/rt61-firmware: Added rt61 firmware.
n/rt71w-firmware: Added rt71w firmware.
n/zd1211-firmware: Added zd1211 firmware.
x/* - Upgraded to X.Org 7.3 release
x/anthy-9100e: Added.
x/dejavu-fonts-ttf: Renamed from dejavu-ttf.
x/liberation-fonts-ttf: Added the liberation ttf fonts.
x/libhangul: Added.
x/libpciaccess: Added.
x/m17n-lib: Added.
x/pixman: Added.
x/sazanami-fonts-ttf: Added.
x/scim: Added.
x/scim-anthy: Added.
x/scim-bridge: Added.
x/scim-hangul: Added.
x/scim-m17n: Added.
x/scim-pinyin: Added.
x/scim-tables: Added.
x/sinhala_lklug-font-ttf: Added.
x/tibmachuni-font-ttf: Added.
x/wqy-zenhei-font-ttf: Added.
x/xbacklight: Added.
x/xcompmgr: Added.
x/xf86-input-citron: Added.
x/xf86-input-dynapro: Added.
x/xf86-input-elo2300: Added.
x/xf86-video-geode: Added.
x/xf86-input-microtouch: Added.
x/xf86-input-penmount: Added.
x/xf86-video-radeonhd: Added.
x/xinput: Added.
*** PACKAGE REMOVALS SINCE 12.0 ***
a/util-linux: Removed (replaced by util-linux-ng).
ap/espgs: Removed. This is replaced by ghostscript.
ap/gimp-print: Removed. This is replaced by gutenprint.
e/emacs-info: Removed (this is now included in the monolithic emacs package).
e/emacs-leim: Removed (this is now included in the monolithic emacs package).
e/emacs-lisp: Removed (this is now included in the monolithic emacs package).
e/emacs-misc: Removed (this is now included in the monolithic emacs package).
e/emacs-nox: Removed (this is now included in the monolithic emacs package).
l/libmusicbrainz: Removed.
l/libtunepimp: Removed.
l/mcs: Removed (renamed to l/libmcs).
x/dejavu-ttf: Renamed to x/dejavu-fonts-ttf.
x/xorg-server-xdmx: Removed. This is unmaintained upstream.
extra/ham: Removed due to lack of maintenance.
extra/intel-wlan-ipw3945/*: Removed; support for these devices is included
in the kernel now.
extra/linux-wlan-ng: This does not compile on 2.6.24.x kernels.
extra/ntfsprogs: Upgraded and moved to the AP seires.
extra/xf86-video-ati-6.6.3: Removed.
pasture/gcc-3.4.6/: Removed.
*** OTHER NOTABLE CHANGES AND HINTS ***
Use one of the provided generic kernels for daily use. Do not report
bugs until/unless you have reproduced them using one of the stock
generic kernels. You will need to create an initrd in order to boot
the generic kernels - see /boot/README.initrd for instructions.
udev was upgraded - don't forget to move/merge all of the associated *.new
files into place or you will have problems. We are now using as much of
the upstream udev rules as possible (and efforts are underway to further
unify us with other distributions), so you'll notice a lot more udev rules
files in that directory. Be sure to heed the warnings about not editing
the included rules files, as they will be overwritten if/when the udev
package is upgraded.
If you have more than one network card and have been using the
75-network-devices.rules file, it is now called 70-persistent-net.rules
(and is generated from 75-persistent-net-generator.rules).
Rules for optical devices are now located in 70-persistent-cd.rules (and
are generated from 75-cd-aliases-generator.rules).
You will need to remove the old rules files (75-optical-devices.rules and
75-network-devices.rules) so that they don't conflict.
As stated above, Slackware's udev implementation will automatically create
rules files for your optical devices and network interfaces on first boot.
If you add/remove/replace any of this hardware, and/or you "clone" a system
to another hard drive for deployment, you will need to either remove these
two rules files (so that udev will regenerate them to reflect the new or
changed hardware) or edit them accordingly.
The pcspkr module is no longer loaded by default in /etc/rc.d/rc.modules,
and there are many other changes to rc.modules, including commented options
to load various acpi modules (although many of these should automatically
load if needed in 2.6.24.x kernels). A trick many people don't know is that
if you have modules that you always need loaded in rc.modules, you can
'hide' the modprobe commands in /etc/rc.d/rc.netdevice and nobody will ever
be the wiser (you might need to create that file and make it executable).
The version of module-init-tools in 12.1 now fully respects the blacklisted
modules in /etc/modprobe.d/blacklist, even if there are aliases pointing
to them, so pcspkr should not be autoloaded any more against the wishes
of /etc/modprobe.d/blacklist.
The psmouse module is no longer blacklisted by default; instead, it is loaded
with the imps protocol per /etc/modprobe.d/psmouse -- if you need/want a
different protocol, edit that file. Note that options declarations have
no bearing on *if* a module is loaded - they only affect *how* it is loaded.
In other words, the module should now be loaded automatically (since it's no
longer blacklisted), and the options in /etc/modprobe.d/psmouse are the ones
applied when loading it.
The /etc/modprobe.d/blacklist file has been changed significantly; be sure to
move/merge the /etc/modprobe.d/blacklist.new file in its place. Also, you
must NOT leave a backup of the old blacklist file (such as blacklist.orig)
in /etc/modprobe.d/ -- ALL files in that directory are checked, so if a
module is blacklisted in *any* of them, it won't be loaded.
As stated earlier, it is recommended that you use one of the generic kernels
rather than the huge kernels; the huge kernels are primarily intended as
"installer" and "emergency" kernels in case you forget to make an initrd.
For most systems, you should use the generic SMP kernel if it will run,
even if your system is not SMP-capable. Some newer hardware needs the
local APIC enabled in the SMP kernel, and theoretically there should not be
a performance penalty with using the SMP-capable kernel on a uniprocessor
machine, as the SMP kernel tests for this and makes necessary adjustments.
Furthermore, the kernel sources shipped with Slackware are configured for
SMP usage, so you won't have to modify those to build external modules
(such as NVidia or ATI proprietary drivers) if you use the SMP kernel.
If you decide to use one of the non-SMP kernels, you will need to follow the
instructions in /extra/linux-2.6.24.5-nosmp-sdk/README.TXT to modify your
kernel sources for non-SMP usage. Note that this only applies if you are
using the Slackware-provided non-SMP kernel - if you build a custom kernel,
the symlinks at /lib/modules/$(uname -r)/{build,source} will point to the
correct kernel source so long as you don't (re)move it.
If you decide to use one of the huge kernels anyway, you will encounter
errors like this:
kobject_add failed for uhci_hcd with -EEXIST, don't try to register
These occur because the respective drivers are compiled statically into the
huge kernels but udev tries to load them anyway. These errors should be safe
to ignore, but if you really don't want them to appear, you can blacklist the
modules that try to load in /etc/modprobe.d/blacklist. However, make sure you
remove them from the blacklist if you ever decide to use the (recommended)
generic kernels.
Note that the kernel parameters for Speakup have changed.
What was speakup_synth= is now speakup.synth=
The new 2.6.24.x kernels default to use a UTF8 console. This might break some
things, so if you prefer the "old" default, you'll need to add this to your
kernel's lilo stanza: append = "vt.default_utf8=0"
The provided kernels are now compiled with CONFIG_SCSI_MULTI_LUN=y so there
should be no need for the /etc/rc.d/rc.scanluns script (it should now be
deleted, as it's not included in the sysvinit-scripts package any more).
If this configuration causes a problem with any real SCSI drives, then you
should add this to your kernel's lilo stanza: append = "max_luns=1"
All php extensions built in /usr/lib/php/extensions are activated by default;
if you don't want any of them, comment them out in /etc/httpd/php.ini
HPLIP no longer requires daemons to be started at boot time, so any
/etc/rc.d/rc.hplip script should be removed.
There is a minor problem with the HPLIP and CUPS versions in Slackware 12.1;
hp-toolbox will not work unless LC_ALL is set to a UTF8 locale.
An easy workaround is to start it with "LC_ALL=$LANG.UTF8 hp-toolbox" if
you're not using a UTF8 locale. Also, your user account must be a member
of the "lp" group for hp-toolbox to work properly, and to use the scanner
portion of some (all?) HP print/scan/copy units, you'll need to be a member
of the "lp" group. This is due to the fact that hplip's udev rules set
the device with group "lp" ownership.
If you notice Xfce's Terminal and perhaps some other applications being drawn
very slowly in X, then you should try explicitly disabling the Composite
extension in /etc/X11/xorg.conf, or set XLIB_SKIP_ARGB_VISUALS=1 in your
environment prior to starting X. For more information on this, see:
http://bugzilla.xfce.org/show_bug.cgi?id=2792
If you notice extremely long wait times when formatting partitions in the
installer, and you're installing on a Thinkpad that has a SATA drive, it's
possible that the wrong driver is being used, which disables DMA on the drive
(and could happen on other machines). A bit more detail about it is here:
http://www.thinkwiki.org/wiki/Problems_with_SATA_and_Linux#No_DMA_on_system_hard_disk
Try passing "hda=noprobe" to the kernel when booting the installer, and it
should use the correct libata driver.
If you have an older machine (with a BIOS released prior to 2001) and it will
not power off on shutdown, try adding this to your kernel's lilo stanza:
append = "acpi=force"
HAL is not new anymore, but here are a few notes related to it:
1. User accounts with permission to mount removable devices must be in at
least the plugdev group, and the power group is also recommended to
allow shutdown and reboot via HAL methods.
2. HAL will honor settings in /etc/fstab if a device is present there, so
you could technically have removable devices defined in /etc/fstab, but
if the fstab settings do not allow normal users to mount them (with the
"user" or "users" option), then HAL/dbus will not allow them to be
mounted either. In other words, for example, if your fstab line for the
cdrom/dvd drive includes the "owner" option, you will not be able to
mount it as a normal user.
3. If you find a need for modified fdi files, those should be placed in the
relevant directories in /etc/hal/ instead of /usr/share/hal/
Versions of the linux kernel less than 2.6.16 will not work - the lowest
kernel version that glibc supports is 2.6.16, so don't bother trying anything
older than that. If you use hal, then you'll need at least a 2.6.19 kernel.
The MySQL version in Slackware 12.1 includes a potentially incompatible change
for some databases which might require some work on them, so be sure to read
the release notes for mysql-5.0.51 (the version which introduced the change)
at
http://dev.mysql.com/doc/refman/5.0/en/releasenotes-cs-5-0-51.html
Input methods for complex characters (CJK, which is shorthand for Chinese,
Japanese, Korean) and other non-latin character sets have been added. These
input methods use the SCIM (Smart Common Input Method) platform.
The environment variables for SCIM support are set in /etc/profile.d/scim.sh
The requirements for getting SCIM input methods to work in your X session
are as follows:
(1) Use a UTF-8 locale. Look in /etc/profile.d/lang.sh for setting your
language to (for instance) en_US.UTF-8. As a word of warning: maybe you
should leave root with a non-UTF-8 locale because you don't want root's
commands to be misinterpreted. You can add the following line to your
~/.profile file to enable UTF-8 just for yourself:
export LANG=en_US.UTF-8
(2) Make the scim profile scripts executable. These will setup your
environment correctly for the use of scim with X applications. Run:
chmod +x /etc/profile.d/scim.*
(3) Start the scim daemon as soon as your X session starts. The scim daemon
must be active before any of your X applications. In KDE, you can add a
shell script to the ~/.kde/Autostart folder that runs the command
"scim -d". In XFCE you can add "scim -d" to the Autostarted Applications.
If you boot your computer in runlevel 4 (the graphical XDM/KDM login)
you can simply add the line "scim -d" to your ~/.xprofile file.
This gives you a Desktop Environment independent way of starting scim.
When scim is running, you will see a small keyboard icon in your system tray.
Right-click it to enter SCIM Setup. In 'Global Setup' select your keyboard
layout, and you are ready to start entering just about any language
characters you wish! Press the magical key combo <Control><Space>
in order to activate or deactivate SCIM input. The SCIM taskbar in the
desktop's corner allows you to select a language. As you type, SCIM will show
an overview of applicable character glyphs (if you are inputting complex
characters like Japanese).
If you are using the pinentry-gtk2 interface (for entering passphrases with
gpg-agent), be aware that there is a bug in the way scim-bridge and the
pinentry-gtk2 interact. The result is that keyboard input does not register
with pinentry-gtk2. For the time being, either change the /usr/bin/pinentry
symlink to use the qt or curses frontend, or don't use scim.
If you have set up an encrypted root partition, you will need to have access
to your keyboard in order to type the passphrase. This may require you to
add the uhci-hcd and usbhid modules to your initrd image if you have a USB
keyboard. Also note that if you are using a non-US keyboard, you can use the
'-l' parameter to the 'mkinitrd' command in order to add support for this
keyboard to your initrd.
People using network boot (PXE) for their Slackware installations will notice
that there is no longer a file 'initrd.img' in the /usb-and-pxe-installers
directory. Now that the initrd.img files used for the bootable CDROM and for
the PXE boot have been made identical, there is no more need for two copies.
Please use /isolinux/initrd.img as the initrd file for your PXE server.
If you have permission errors when attempting to burn a cdrom or dvd image,
such as the following:
/usr/bin/cdrecord: Operation not permitted. Cannot send SCSI cmd via ioctl
then cdrecord almost certainly needs root privileges to work correctly.
One potential solution is to make the cdrecord and cdrdao binaries suid root,
but this has possible security implications. The safest way to do that is
to make those binaries suid root, owned by a specific group, and executable
by only root and members of that group. For most people, the example below
will be sufficient (but adjust as desired depending on your specific needs):
chown root:cdrom /usr/bin/cdrecord /usr/bin/cdrdao
chmod 4750 /usr/bin/cdrecord /usr/bin/cdrdao
If you don't want all members of the 'cdrom' group to be able to execute the
two suid binaries, then create a special group (such as 'burning' which is
recommended by k3b), use it instead of 'cdrom' in the line above, and add
to it only the users you wish to have access to cdrecord and cdrdao.