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.