Инструменты пользователя

Инструменты сайта


ru:opensuse

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki