IBM Lotus Notes on Ubuntu: invalid character in revision number

Few days ago I needed to upgrade Lotus Notes 8.5.1 to 8.5.2 fixpack 2. IBM provides .deb packages and .sh scripts for smart upgrade.

Upgrading to 8.5.2 version passed without any problem, but installing fixpack was problematic. I was getting:

error in Version string '8.5.2-20110323.0837_FP2': invalid character in revision number

I have found a solution reading this post at Lotus forum but that post is too much bare. So I am giving a full explanation on how to solve this problem.

The problem is in "_" character in control file that is part of .deb package. Also file paths with that character in .deb package makes a problem. So we need to unpack .deb file, edit control file, change file paths and pack it again in .deb file:

# make directory wiht same name as package but without extension
mkdir ibm_lotus_notes_fixpack-8.5.2.i586

# unpack .deb file in that directory
cp ibm_lotus_notes_fixpack-8.5.2.i586.deb ibm_lotus_notes_fixpack-8.5.2.i586
cd ibm_lotus_notes_fixpack-8.5.2.i586 
ar x ibm_lotus_notes_fixpack-8.5.2.i586.deb 
rm ibm_lotus_notes_fixpack-8.5.2.i586.deb
# we need to put content of control.tar.gz into DEBIAN directory which is subdirectory of ibm_lotus_notes_fixpack-8.5.2.i586
mkdir DEBIAN
mv control.tar.gz DEBIAN
tar -xvf control.tar.gz
rm control.tar.gz

# now we need to edit control file end delete "_" character from Version: using favorite editor
nano control
# now we should extract data.tar.gz and remove "_" from file path
cd ..
tar xvf data.tar.gz
rm data.tar.gz
cd opt/ibm/lotus/notes
mv fixpack_20110323.0837_FP2/ fixpack_20110323.0837FP2/

# set root owner to the files and pack files into .deb package
cd ../../../../
sudo chown -R root.root .
cd ..
dpkg-deb -b ibm_lotus_notes_fixpack-8.5.2.i586/
IBM has tradition of braking fixpacks for Ubuntu. This explanation works on any fixpack you just need to adjust file names, but logic is the same.

No comments: