Friday, March 23, 2007

Experience Upgrading Slackware-Current

Even though i have used Slackware-Current since 10.1 on my laptop up to now, the upgrade process was never as complicated as this time (Slackware 11.0 to -Current). I have just finished upgrading to -Current just now and i'm so relieved. I know that the process will be more difficult than previous process since the changes are major and there's a lot of changes in many packages, including the toolchain.

As usual, i read the WARNING and CHANGES_AND_HINT note as my primary guide. I also prepare the UPGRADE note since it's also noted in the two previous notes. Other file that i use is the -Current Changelog itself as it has the most detailed information regarding each package changes, so i guess it's mandatory to open the file also.

I followed the instructions given in the CHANGES_AND_HINTS, but i guess the note must be updated a little bit, since i'm having problem while configuring Xorg after the upgrade process, since i didn't have Expat package which is required to do some other process related to configuring the fonts (probably caching and setting the font path) which is done by the Slackware installer script.

The process itself was smooth, except for some small minor problem (i did lost my username account. Luckily the root account was still there, so i just have to re-create my own username and set the home directory to my previous home directory). I didn't know why, but it happened to me while upgrading. It must be my mistake while doing the process, but it's fixed. Next problem came when i wanted to run the graphical desktop. It always gives me an error message:
unable to open default font "fixed"

I thought this was due to lack of Expat package while i was installing the fonts, so i removed the fonts, and reinstalled all the fonts and then the problem was gone. Next problem was the default window manager. I usually used KDE and when i type startx, usually it showed KDE Splash Screen (i used Circular splash screen with Moodin engine), but now it showed an xterm and terminal. That was weird. When i click on the desktop, i realized this was not KDE. It was twm. So i switched to root user and call pkgtool utility to change the default desktop, but it's not working. I wonder why. Next, i tried to issue xwmconfig to change the default desktop using my local account and finally it worked. Now KDE starts up when i ran the startx command.

I still have some TODO list though:
- Compile the kernel with the latest GCC, so i can install NVidia driver (because NVidia installer will only work if i use the same GCC version being used to compile the kernel). I'm still using generic NVidia driver (nv) for now.

- Remove unneeded package (Slackware-Current does remove some package, so i still have to remove unneeded package, for example hotplug, kernel 2.4, pcmcia-cs, xmms). Yes, they decided to remove xmms as it has no progress anymore (the developer are working on xmms2, while we have audacious and amaroK which works also).

- Optimize the new system as it's a combination of packages since Slackware 10.1. This one will take quite some time and i don't know if i will have time to do this.

Upgrading to Slackware-Current is quite complicated, but it's still worthed for me. My advice to those who would like to upgrade to Slackware-Current: BACKUP ALL YOUR DATA FIRST!!! (Did i stress that enough?). Yes, backup is the most critical steps that you will have to take before doing something that have possibility to broke your system. Next is READ THE NOTES!!!. Those notes were made to be read, not to be ignored and it's worthed to read that notes, as you will get a step by step instructions on how to complete the process.

Remember, Slackware-Current will have the most updated packages, but it's not for people who would like to have stable system, as it might broke your system while upgrading. It's better for you to stick to Slackware 11.0 and wait for the final release before making the upgrades.

At least, i will have nice weekend as i don't have to tackle with serious problem due to the upgrade process :D

UPDATE (15:30): I have compile the latest kernel (2.6.20.3) and installed NVidia driver, but the NVidia logo didn't showed up, i wonder why. Perhaps it's because of the usage of new GCC version. Well, that's ok for now. At least i have the same kernel version with the GCC being used to compile the kernel.

UPDATE (16:30): I have removed all removed packages in Slackware-Current, including kernel 2.4.x, xmms, byacc, glut, gnet, gdk-pixbuf.

UPDATE (26 March 2007 09:15): I have solved the Moodin problem. Previously, the Splash screen that requires Moodin plugin won't work, since Moodin was compiled against KDE and now KDE's prefix has been changed from /opt/kde to /usr, so it will need to be rebuild, and thanks to Eric Hameleers for the updates of the SlackBuilds script. After recompiling the source, everything is back to normal again.

I also found a solution for the NVidia driver from LQ Forums. Some people had the same problem as i did and one of member posted a solution to work on this one, but i haven't tried yet. I will try to do this when i got home later on. If you are having the same problem as i did, try this sh NVIDIA-xxx.run --x-prefix=/usr --x-module-path=/usr/lib/xorg/modules (assuming that you are running Slackware-Current with new Xorg).

I also had a annoying error message at the startup about DBUS. I tried to reproduce by executing from root user and here goes the error messages:
root@laptop:/etc/dbus-1# dbus-uuidgen
dbus-uuidgen: symbol lookup error: dbus-uuidgen: undefined symbol: dbus_internal_do_not_use_create_uuid
Anybody has a solution?

Update (27 March 2007 09:09): DBUS problem solved. It seems that DBUS package from source didn't clean up very well, so it still leaves some library in their default directory (/usr/local/lib) thus it will be seen rather than the correct path in the Slackware packages (/usr/lib). Thanks to Rob Workman from LQ from the tips. The problem is solved by removing the files by issuing rm -rf /usr/local/lib/dbus-* and delete most of files in /usr/local that refers to DBUS source package (make sure you compare the files with the files listed in the Slackware packages just to make sure you didn't delete the needed file).

One more problem solved :D