====== Psi+ on OpenSUSE Linux ======
===== Introduction =====
Building Psi+ on OpenSUSE "from scratch" (the bare system).
===== What may be needed and how to build? =====
Your system may not be **QtCrypto** and **QtDev**>=4.4.2. If you do not -- they must be installed prior to build.
Install packages to build Psi+. Installed once at the first build.
zypper in git-core gcc libqt4-devel qt4-x11-tools qdevelop patch make
Remove previous build to build "clean":
cd ~
rm psi -r
Download the source code of Psi and submodules from git:
cd ~
git clone git://git.psi-im.org/psi.git
cd psi
git submodule init
git submodule update
The resulting directory you can save and then run the command for get the current version of Psi.
git pull
git submodule update
Download all the patches and install them:
cd ~
svn co http://psi-dev.googlecode.com/svn/trunk/patches/ psi
cd psi
cat *.diff|patch -p1
Download iconsets needed to build and put the current revision to Psi+:
cd ~/psi
svn export --force http://psi-dev.googlecode.com/svn/trunk/iconsets/system/default iconsets/system/default
svn export --force http://psi-dev.googlecode.com/svn/trunk/iconsets/roster/default iconsets/roster/default
rev=`svnversion`
sed "s/\(xxx\)/${rev}/" -i src/applicationinfo.cpp
Build Psi+ and install:
cd ~/psi
qconf && ./configure --enable-plugins && make && make install
__**Note!**__ If the **qconf** not installed then you need to do it yourself.
If the command **./configure** get an qtcore error then we write:
qmake --version
Look at the path and run **./configure** with parameter:
./configure --qtdir=
Most likely it will be:
./configure --qtdir=/usr/lib
===== Installing additional components =====
If you need to install additional emoticons, moods or Russian localization then do the following:
==== Emoticons ====
cd /usr/local/share/psi/iconsets/emoticons
wget http://psi-dev.googlecode.com/svn/trunk/iconsets/emoticons/lk_35x35x138_tasha.jisp
wget http://psi-dev.googlecode.com/svn/trunk/iconsets/emoticons/tasha_18x18x93.jisp
==== Moods ====
cd /usr/local/share/psi/iconsets
mkdir moods
cd moods
wget http://psi-dev.googlecode.com/svn/trunk/iconsets/moods/silk.jisp
==== Russian localization ====
cd /usr/local/share/psi
wget http://psi-ru.googlecode.com/svn/branches/psi-plus/psi_ru.qm
===== Building rpm package =====
==== Building source code and patches ====
#!/bin/sh
#
#variables:
#$USER - username in the system
home=/home/$USER
psi=/home/$USER/psi_dev
#note: for the x86_64 architecture replace app_info to $(ls /home/$USER/psi_dev/psi/ | grep application-info.diff)
app_info=ls /home/$USER/psi_dev/psi/ | grep application-info.diff
build_root=/usr/src/packages/
#note: for the x86_64 architecture replace rev to $(svnversion "$/home/$USER/psi_dev/patches")
rev=`svnversion "$/home/$USER/psi_dev/patches"`
cd ${home}
mkdir psi_dev
cd ${psi}
git clone git://git.psi-im.org/psi.git
cd psi
git submodule init
git submodule update
cd ${psi}
svn co http://psi-dev.googlecode.com/svn/trunk/patches/
cp ${psi}/patches/*diff ${psi}/psi
cd ${psi}/psi
sed "s/\(xxx Beta\)/${rev} Beta/" -i "${app_info}"
for f in *diff; do patch -p1 -i "${f}"; done
sed 's//\1/' -i psi.qc
cd ${psi}
mv psi psi-0.15_dev
tar -pczf psi-0.15_dev.tar.gz psi-0.15_dev
rm -r ${build_root}/SOURCES/
cp psi-0.15_dev.tar.gz ${build_root}/SOURCES
chown -R $USER:users ${psi}
exit 0
__**Note**__: This script was going to the source code and prepares them for build a rpm-package (require root privileges).
==== To build the rpm package requires spec file ====
Summary: Client application for the XMPP network
Name: psi
Version: 0.15_dev
Release: %{dist}
License: GPL
Group: Applications/Internet
URL: http://code.google.com/p/psi-dev/
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: openssl-devel, gcc-c++, zlib-devel
%{!?_without_freedesktop:BuildRequires: desktop-file-utils}
%description
Psi is the premiere Instant Messaging application designed for Microsoft Windows,
Apple Mac OS X and GNU/Linux. Built upon an open protocol named XMPP,
si is a fast and lightweight messaging client that utilises the best in open
source technologies. The goal of the Psi project is to create a powerful, yet
easy-to-use XMPP client that tries to strictly adhere to the XMPP drafts.
and XMPP JEPs. This means that in most cases, Psi will not implement a feature
unless there is an accepted standard for it in the XMPP community. Doing so
ensures that Psi will be compatible, stable, and predictable, both from an end-user
and developer standpoint.
%prep
%setup
%build
qconf
# to build without webkit you need to remove the flag *-- enable-qtwebkit*
./configure --prefix="%{_prefix}" --bindir="%{_bindir}" --datadir="%{_datadir}" --qtdir=$QTDIR --enable-plugins --enable-qtwebkit --no-separate-debug-info
%{__make} %{?_smp_mflags}
%install
%{__rm} -rf %{buildroot}
%{__make} install INSTALL_ROOT="%{buildroot}"
# Install the pixmap for the menu entry
%{__install} -Dp -m0644 iconsets/system/default/logo_128.png}} \
%{buildroot}%{_datadir}/pixmaps/psi.png}} ||:
%post
touch --no-create %{_datadir}/icons/hicolor || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
%postun
touch --no-create %{_datadir}/icons/hicolor || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-, root, root, 0755)
%doc COPYING README TODO
%{_bindir}/psi
%{_datadir}/psi/
%{_datadir}/pixmaps/psi.png
%{_datadir}/applications/psi.desktop
%{_datadir}/icons/hicolor/*/apps/psi.png
%exclude %{_datadir}/psi/COPYING
%exclude %{_datadir}/psi/README
__**Note**__: spec file needs to save at the **/usr/src/packages/SPECS/psi.spec**
==== Building rpm package ====
cd /usr/src/packages/SPECS/
rpmbuild -bb psi.spec
__**Note**__: Flag **- bb ** indicates program to build a binary package. After successful build of the package can be picked up from the directory **/usr/src/packages/RPMS/$processor-architecture**.
And install by the command:
rpm -ihv psi-0.15_dev.rpm
===== Finally =====
Enjoy ;-)