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