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 / qmakeYou 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!
- Download Classic Edition from http://keepass.info/download.html. I saved it to the desktop.
- I had already installed Wine via Package Manager
- Right-click the KeePass installation executable, Open with Wine Windows Program Loader
- Run through the installation steps
- 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:
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.
LikeLike
Hi Mike! I’ve been able to compile keepassx 0.4.3 on openindiana (http://wiki.openindiana.org/oi/oi_151a+Release+Notes). It’s very easy to compile it using cmake system. Some points:
1. Qt is located in /usr/g++
2. edit src/lib/random.cpp:98
original:
stream << getpid();
modify to:
stream << (quint32) getpid();
3. cmake .
4. make
and voila! src/keepassx is here and working!
LikeLike