Building KeePassX 0.4.3 on OpenSolaris 2009.06

This build took a lot of headscratching and research, as I couldn’t easily find any single resource describing how to do the build, and KeePassX requires quite a bit of pre-work before it will build.

Starting from a fresh CD install of 2009.06

Hit http://www.keepassx.org/downloads to download the current source code tarball. I got 0.4.3.

Unzip it to /usr/src

cd /usr/src/keepassx-0.4.3

cat INSTALL to read the amazingly terse installation instructions:

Installation instructions for *nix:
———————————–
qmake-qt4 / qmake

You have to use qmake of Qt >= 4.3.0, depending on your distro it is called qmake or qmake-qt4.
By default KeePassX is installed to /usr, you can change that by adding PREFIX=[PATH] to the qmake command.
You can also add DEBUG=1 to build KeePassX with debug symbols.
2. make
3. make install

Qt didn’t come in the default 2009.06 install, but is available packaged from the Bionicmutton repository:

sudo pkg set-authority -O http://solaris.bionicmutton.org:10002/ Bionicmutton

I then attempted to install the Qt package, but it required SUNWdbus@0.5.11,5.11-0.132.  This was available through the Package Manager, by clicking Refresh to get the list of newest packages available, then Updating everything.

Upon reboot, I was hit by two bugs.  They combine to make X somewhat unstable, and Xterms nearly unusable.

http://defect.opensolaris.org/bz/show_bug.cgi?id=13437

Could not update ICEauthority file /.ICEauthority
There is a problem with the configuration server.
(/usr/lib/gconf-sanity-check-2 exited with status 256)

To fix it, you must give gdm a real home directory in the passwd file

sudo vi /etc/passwd

find the line

gdm:x:50:50:GDM Reserved UID:/:

Change it to:

gdm:x:50:50:GDM Reserved UID:/var/lib/gdm:

http://defect.opensolaris.org/bz/show_bug.cgi?id=12380

Xterm text is all wacky; carriage returns without line feeds produces text all over the screen and makes everything hard to read. Text typed at the command prompt often isn’t echoed, so I had  to type very carefully with no typos because I could not see what I was typing.  The solution is to fix permissions on /dev/ptmx and add a line to /etc/minor_perm:

sudo chmod 666 /dev/ptmx

vi  /etc/minor_perm

(add the line) clone:ptmx 0666 root sys

With everything working, I was able to install Qt from repository:

sudo pkg install qt@4.6.2-6

Set up the environment for compiling:

PATH=$PATH:/opt/foss/qt4/bin:/usr/local/bin:usr/css/bin;export PATH
CXX=/usr/bin/g++
CC=/usr/bin/gcc
cc=/usr/bin/gcc
QMAKESPEC=solaris-cc; export QMAKESPEC
qmake
make

And unfortunately, make crashes with

make[1]: CC: Command not found

Tried adding a symbolic link from CC to gcc:

ln -s ../../sfw/bin/gcc /usr/gnu/bin/CC

And the error changed to:

CC: ccfe: No such file or directory
CC: ccfe: No such file or directory
CC: ccfe: No such file or directory
CC: ++boolflag:sunwcch=false: No such file or directory
CC: unrecognized option `-template=geninlinefuncs’
CC: unrecognized option `-Qoption’
CC: unrecognized option `-Qoption’
CC: unrecognized option `-Qoption’
CC: -library=no%Cstd: linker input file unused because linking not done
CC: -library=Crun: linker input file unused because linking not done
CC: -library=no%Cstd: linker input file unused because linking not done
CC: -library=Crun: linker input file unused because linking not done
CC: -lstdcxx4: linker input file unused because linking not done
CC: language annotate=no not recognized
CC: lib/HelperX11.cpp: linker input file unused because linking not done
gmake[1]: *** [../build/HelperX11.o] Error 1
gmake[1]: Leaving directory `/usr/share/src/keepassx-0.4.3/src’
gmake: *** [sub-src-make_default] Error 2

And so here I am stuck.  I’ve discovered another fellow has an unresolved error building KeePassX on Opensolaris, with an unanswered post from Oct 2009 on the boards.

Since I use KeePass constantly at work, I needed to get this going.  After two days of futzing around trying to get it to build, I was getting a bit frustrated.  So I weighed my options:

  • Reload my PC with Ubuntu.  KeePass installs happily via apt on Ubuntu.
  • Create a VM in which to run KeePass.  In any case, if I switched back to Ubuntu, I’d create an OpenSolaris VM and keep working on getting KeePassX to compile.
  • Install KeePass for Windows, in Wine, on my OpenSolaris machine.

For now, I’ve decided to run KeePass for Windows in Wine.  It was a cinch!

  1. Download Classic Edition from http://keepass.info/download.html.  I saved it to the desktop.
  2. I had already installed Wine via Package Manager
  3. Right-click the KeePass installation executable, Open with Wine Windows Program Loader
  4. Run through the installation steps
  5. Done!

Wow, that was easy.  However, it runs with the oddity that the actual data columns for the Password and URL fields are swapped underneath the title column headers.  Also, double-clicking a field copies it to memory, but clicking the middle mouse button does not paste it — I must right-click and paste.  Both <shift-insert> and the middle mouse button paste the last bit of text copied by mouse highlight, rather than the KeePass password entries.

References:

2 thoughts on “Building KeePassX 0.4.3 on OpenSolaris 2009.06

  1. Thank you! I use revelation pw manager in linux, and discovered opensolaris has NO password managers except gnupg which is limited for passwords. I tried password gorilla, including the Win version with Wine, that didn’t work. I also tried other things, and found this thread trying to install / compile KeePassX and decided to go with KeePass under Wine. It looks like it’ll do what I need it to do, except an easy import from Revelation.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.