====== 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 ;-)