====== Psi+ on OpenSUSE Linux ======
**ВНИМАНИЕ:** инструкция ниже протухла в связи с переездом на git. вы всегда можете попробовать [[linux|общую инструкцию по линуксу]].
===== Вступление =====
Сборка Psi+ на OpenSUSE "с нуля" (на голой системе).
===== Что может понадобиться и как собирать? =====
В вашей системе может не быть **QtCrypto** и **QtDev** >=4.4.2. В случае отсутствия -- их необходимо установить до начала сборки.
Установка пакетов для сборки Psi+. Устанавливаются один раз при первой сборке.
zypper in git-core gcc libqt4-devel qt4-x11-tools qdevelop patch make
Удаляем предыдущую сборку для сборки "начисто":
cd ~
rm psi -r
Скачиваем исходники Psi и субмодули из git:
cd ~
git clone git://git.psi-im.org/psi.git
cd psi
git submodule init
git submodule update
Полученную директорию можете сохранить, и потом, выполнив в ней комманды, получите актуальную версию Psi.
git pull
git submodule update
Скачаем все патчи и устанавливаем их:
cd ~
svn co http://psi-dev.googlecode.com/svn/trunk/patches/ psi
cd psi
cat *.diff|patch -p1
Скачиваем иконпаки, необходимые для сборки и прописываем актуальную ревизию в версию 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
Cобираем Psi+ и устанавливаем:
cd ~/psi
qconf && ./configure --enable-plugins && make && make install
__**Примечание!**__ Если не установлен **qconf**, то необходимо сделать это самому.
Если по команде **./configure** получаем ошибку qtcore, то пишем:
qmake --version
Смотрим путь и запускаем **./configure** с пареметром:
./configure --qtdir=
Скорее всего это будет:
./configure --qtdir=/usr/lib
===== Дополнения =====
Если необходимо установить дополнительные смайлы, иконки настроений, или русскую локализацию, то делаем следующее:
==== Смайлы ====
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
==== Настроения ====
cd /usr/local/share/psi/iconsets
mkdir moods
cd moods
wget http://psi-dev.googlecode.com/svn/trunk/iconsets/moods/silk.jisp
==== Русская локализация ====
cd /usr/local/share/psi
wget http://psi-ru.googlecode.com/svn/branches/psi-plus/psi_ru.qm
===== Сборка rpm-пакета =====
==== Собираем исходные коды и патчи ====
#!/bin/sh
#
#переменные:
#$USER - имя пользователя в системе
home=/home/$USER
psi=/home/$USER/psi_dev
#примечание: для архитектуры x86_64 заменить app_info на $(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/
#примечание: для архитектуры x86_64 заменить rev на $(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
__**Примечание**__: данный скрипт сам собирает исходные коды и подготавливает их к сброке в rpm-пакет (необходимо запускать с __правами root__).
==== Для сборки rpm-пакета необходим spec-файл ====
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
#для сборки без webkit'a нужно удалить флаг *--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
__**Примечание**__: spec-файл нужно сохранить в **/usr/src/packages/SPECS/psi.spec**
==== Сборка rpm-пакета ====
cd /usr/src/packages/SPECS/
rpmbuild -bb psi.spec
__**Примечание**__: Флаг **-bb** указывает программе на сборку бинарного пакета. После удачной сборки пакет можно забрать из директории **/usr/src/packages/RPMS/$архитектура-процессора**.
И установить командой:
rpm -ihv psi-0.15_dev.rpm
===== В заключении =====
Наслаждаемся ;-)