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.1 through 12.2, and some potential "gotchas" that users 
can avoid by arming themselves with a little knowledge.


*** INSTRUCTIONS FOR UPGRADING FROM 12.1 ***

Follow the instructions detailed in the UPGRADE.TXT located in this
  directory.  Note that upgrading from a Slackware version earlier 
  than 12.1 is NOT supported at all and will almost certainly lead 
  to breakage.


*** PACKAGE ADDITIONS SINCE 12.1 ***

a/kernel-firmware: Added.  This is architecture-independent firmware for
  devices (mostly sound cards), which was previously embedded into the
  kernel image.
ap/gphoto2: Added.
ap/libx86: Added.
ap/pm-utils: Added.
ap/radeontool: Added.
ap/slackpkg: Added (moved from /extra).
ap/sqlite: Added.
ap/vbetool: Added.
d/dev86: Added. Replaces d/bin86.
l/beecrypt: Added.
l/enchant: Added (moved from /testing/packages/kde4/deps/).
l/gtkspell: Added.
l/gstreamer: Added.
l/gst-plugins-base: Added.
l/intltool: Added.
l/libcap: Added.
l/libgphoto2: Added.
l/liboil: Added.
l/libraw1394: Added (moved from /testing/packages/kde4/deps/).
l/libvisual-plugins: Added.
l/parted. Moved from /extra.
n/alpine: Added. Replaces n/pine.
n/iwlwifi-5000-ucode: Added.
x/dri2proto: Added.
x/xdg-utils: Added.
x/xf86-input-acecad: Added.
x/xf86-input-dmc: Added.
x/xf86-input-synaptics: Added.  See note below.
x/xf86-input-void: Added.
x/xf86-video-mach64: Added.
x/xf86-video-openchrome: Added.
x/xf86-video-r128: Added.
xap/xmms: Added (again) :-)
/extra/wicd: Added.


*** PACKAGE REMOVALS SINCE 12.1 ***

d/bin86: Removed. Replaced by d/dev86.
n/pine: Removed. Replaced by n/alpine.
extra/parted: Moved to l/ series.
extra/slackpkg: Moved to ap/ series.


*** OTHER NOTABLE CHANGES AND HINTS ***

n/imapd has been upgraded to the version shipped with alpine.

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.

As usual, there are changes in udev packaging that need mentioning...
  First, be sure to move the /etc/rc.d/rc.udev.new over - the old
  /etc/rc.d/rc.udev will not work with the new udev package (and the new
  one won't work with the old udev package).
  The system udev rules now reside in /lib/udev/rules.d/ instead of
  /etc/udev/rules.d/ in older versions.  There should never be a reason
  to edit anything in /lib/udev/rules.d/, so if you think you have a case
  where this is required, either you're wrong or it needs to be addressed
  in the upstream source.  However, you can override default rules by
  placing one with an identical name inside /etc/udev/rules.d/  
  The rules files in /etc/udev/rules.d/ are still intended to (maybe) be 
  edited as needed by local system administrators, and as such, the rules
  for optical and network devices will still be placed there.

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.27.7-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.

HP multifunction printer/scanners require that your user account be a member 
  of the "lp" group for hp-toolbox to work properly, and to use the scanner
  portion of some (all?) units, you'll need to be a member of the "lp" group.
  This is because 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 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/

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.

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.

If you have compilation errors that look something like this:
  /usr/include/asm-generic/fcntl.h:117: error: redefinition of 'struct flock'
  /usr/include/bits/fcntl.h:142: error: previous definition of 'struct flock'
  /usr/include/asm-generic/fcntl.h:140: error: redefinition of 'struct flock64'
  /usr/include/bits/fcntl.h:157: error: previous definition of 'struct flock64'
  See http://patchwork.ozlabs.org/patch/316/ for information on fixing it.

On many systems, the xf86-input-synaptics driver requires the psmouse kernel
kernel module be loaded without any special options.  This poses a problem on a 
default Slackware installation, as /etc/modprobe.d/psmouse causes the psmouse 
module to load with the imps protocol.  This is easily fixed though :-)
  First, edit /etc/modprobe.d/psmouse so that it looks like this (note 
  that we're simply commenting out the last line):
    # PS/2 mouse support:
    # The default options when the psmouse module is loaded will completely
    # break the mouse if you change consoles with several models of KVM
    # switches.  Therefore, we'll have it use the imps protocol here, which
    # is a more basic protocol that is less likely to cause problems with
    # the mouse.  If you'd rather use the kernel default options, just
    # comment out the line below.  If you'd rather choose your own options,
    # then edit the line below as desired.
    #options psmouse proto=imps
  Next, unload and reload the psmouse module (do this as root):
    modprobe -r psmouse
    modprobe psmouse

Due to the gutenprint upgrade, any printers that use gutenprint drivers via 
  cups will have to be reinstalled.