gentoo

Gentoo major version KDE upgrade HOWTO

This HOWTO will show you how to upgrade from kde 4.3 to kde 4.4 (and possibly others) with as few problems as possible (It went through without errors for me). The whole process including merging will take 4 to 10 hours depending on your PC. Plan accordingly.

Before upgrading check if you use the latest packages. Additionally I will assume you have autounmask, eix and gentoolkit installed. Portage 2.2 might also come in handy because it can automatically resume builds of many packages (--keep-going) when only few of them fail.

emerge --sync
emerge -nva gentoolkit autounmask eix
eix-update

If you want to use your computer while updating KDE it is pretty neat to have an alternative login and windowmanager installed. I prefer gdm and enlightenment.

 emerge -nva eix gdm enlightenment

 

Preparing the upgrade

#create a working directory
mkdir /root/kde-upgrade
 
#save the list of your kde 4.3 packages
eix -I --slot 4.3 -C kde-base --only-names > /root/kde-upgrade/kde-old
#save the list of packages installed by which are also avalaible for kde 4.4
eix -I --slot 4.4 -C kde-base --only-names > /root/kde-upgrade/kde-new
#save the list of installed qt-packages
eix --slot 4 -C x11-libs --only-names -I qt > qt-packages
#KDE 4.4 needs QT-4.6 that is why we create a list of all qt-packages and keyword them for later use. Be sure to change ~amd64 to your architecture
eix --slot 4 -C x11-libs --only-names -I qt | while read line; do echo "$line ~amd64" >> /root/kde-upgrade/qt-keywords; done

Copy the qt-keywords to your package.keywords directory

cp /root/kde-upgrade/qt-keywords /etc/portage/package.keywords/

Download and install kde-4.4 keywords

cd /root/kde-upgrade
wget -O kde-4.4-keywords http://git.overlays.gentoo.org/gitweb/?p=proj/kde.git;a=blob_plain;f=Documentation/package.keywords/kde-4.4.keywords;hb=HEAD
cp -p /root/kde-upgrade/kde-4.4-keywords /etc/portage/package.keywords/

 

Prepare your alternative Desktop environment

Now we are starting with the essential stuff. Log out from kde and shutdown kdm from one the Ctrl-ALT-Fx-Terminals and start your favorite alternative login manager.

/etc/init.d/xdm stop
#Start other login manager
gdm

After that you can login again on Ctrl-ALT-F7.


Upgrade QT and remove old KDE

Update your qt installation now because KDE 4.4 requires qt 4.6.

emerge -va `cat /root/kde-upgrade/qt-packages`

After that we are ready to remove the old KDE. Old KDE version's packages would be removed by an upgrade anyway. When we remove them before our installation we will save us a lot of hassle concerning package blocks etc.

I heard unmerging the old kde version is completely unnessessary now, as newer portage versions will handle softblocks by themselves. So it is completely ok to skip the unmerging.

emerge -C `cat /root/kde-upgrade/kde-old`

 

(While emerging qt) Check for keyworded packages

While QT ist emerging switch to another terminal and check if your following KDE merge has all its dependencies in place.

#try to
emerge -vau `cat /root/kde-upgrade/kde-new`

If you get an error about missing keywords on dependant packages, execute:

autounmask package_category/package_name-package_version

on the corresponding package (the package mentioned in "dependency required by"). Personally I had to autounmask phonon-kde, kopete, kdebase-runtime-meta, kaddressbook and libiodbc. Libiodbc-3.52.6 failed on ~amd64 so I installed the keyworded version which built normally.

 

(After emerging QT) Rebuild Qt dependant packages

Rebuild all qt-dependendant packages.

 emerge -1va sip PyQt4 qscintilla qscintilla-python

Apart from these packages you will have to rebuild all installed kde-themes in portage. After that remerge Phonon. I had to do this and for you it will not hurt ;-).

#emerge your new kde's phonon version
emerge -1va phonon

 

Emerge your new KDE

So sit back and relax. The biggest part of the work is done now. Emerging new KDE packages will take several hours depending on your CPU power. It is best to do this over night. If you peek at the following command you will see a --keep-going at the end. This tells Portage-2.2 to automatically resume the whole merge with packages not depending on the failed package when a package fails. If you use Portage-2.1 remove this option and beg that you will wake up with a fresh and shiny new version of KDE.

#DO!
emerge -va `cat /root/kde-upgrade/kde-new` --keep-going

 

Final work

After our work before kde should build without errors. At least it did for me... If there remain errors visit http://forums.gentoo.org in your spare desktop environment.

#revdep-rebuild to rebuild packages like e.g. digikam or similar
revdep-rebuild
#update your config files
etc-update
#read announcements generated during upgrade
eread

If all is done, you can log-out from your temporary desktop environment, kill your other login manager and start kdm again. Then log-in to your new shiny kde version and enjoy.

If you have suggestions or improvements let me know.
Hope this helps,
Phillip

Server Optimization I - The Setup

The last weeks I investigated server side optimization (not application optimization) issues further because our Joomla based web portal scales quite poorly. The server is still sufficient for our current load but I want to have some more resources for usage peaks and future development. I thought it would be nice to share my thoughts and experiences as appropriate tutorials are scattered all over the web. I will describe the main steps in brief and will link to further documentation at the web if possible and needed.

So far so good. Currently our application uses the following server software:

  • Joomla 1.5 as web application
  • PHP 5.2 with ZendOptimizer 3.3 as our only must have PHP extension
  • Apache httpd 2.2 as web server
  • Varnish 2 as reverse caching proxy for Java and PHP apps.
  • MySQL 5.0 as database management system
  • Gentoo Linux as server OS

Our website makes intensive use of Joomla extensions. Some of them were developed by our own IT department. The start page is news oriented and contains several extensions and also many images. Apart from that we have quite a few registered users which use interactive parts of the site like forums or lotteries. Additionally some content of the site is only available to privileged users.

With this information you should have a rough overview of our web site and the application comprehending my optimization efforts. The next part of the series will contain information about bringing MySQL to speed.

Comments are as always welcome
Phillip

SFTP authentication not working

A few days before I stumbled upon a problem with our OpenSSH (net-misc/openssh-5.2_p1-r3) based SFTP solution. Although passwords were not changed SFTP logins did not work any longer whereas normal SSH logins with the same accounts continued working.

The concerning - now working - SSHD config looks like this (except AllowUsers):

Port 22
Protocol 2
LogLevel INFO
SyslogFacility AUTH
LoginGraceTime 60
PermitRootLogin no
PasswordAuthentication yes
KeepAlive yes
# this must be set to no and PasswordAuthentication to yes. Otherwise SFTP will not work!!!!
UsePAM no
PrintMotd no
PrintLastLog no
ClientAliveInterval 30
ClientAliveCountMax 10
Subsystem       sftp    internal-sftp
Match Group sftponly
    ChrootDirectory /home/%u
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

After more than one hour of trial and error I found out, that UsePAM must be set to no and PasswordAuthentication must be set to yes. All other combinations of these two options kill sftp authentication (sys-auth/pambase-20090620.1-r1 with ssh USE flag enabled).

As I am not using pam's advanced authentication functions this deactivation is not a problem to me.
So, finally, if you encounter strange authentication issues with sftp try to disable pam auth and see if sftp authentication is working again afterwards.

Regards,
Phillip

PS If you know another solution to this problem or if I somehow messed up my config please let me know.

Ebuild for KDE service menu manager

Recently I created a gentoo ebuild for the 0.4 version of the KDE 4.3 service menu manager (http://www.kde-apps.org/content/show.php/Service+Menu+Manager?content=94996):

# Copyright 1999-2008 Gentoo Foundation
# Author Phillip Merensky
# Distributed under the terms of the GNU General Public License v2
 
EAPI="2"
 
inherit kde4-base
 
DESCRIPTION="This app is a System Settings module to manage service menus."
HOME_PAGE="http://www.kde-look.org/content/show.php/Service+Menu+Manager?content=94996"
KEYWORDS="amd64 x86"
IUSE=""
SRC_URI="http://linux.wuertz.org/dists/sid/main/source/kcm-servicemenus_${PV}.tar.gz"
SLOT="4.3"
 
DEPEND="kde-base/kdelibs:${SLOT}"
 
S="${WORKDIR}/kcm-servicemenu"
 
src_unpack() {
    unpack ${A}
    cd "${S}_build"
}
 
src_compile() {
    S="${WORKDIR}/kcm-servicemenu_build"
    cd "$S"
    emake || die "Make failed!"
}

Save it as service-menu-manager-0.4.ebuild in your favorite category (I prefer kde-misc) in your custom overlay, execute

ebuild service-menu-manager-0.4.ebuild digest

and emerge it.

Syndicate content