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.