RU:Патчи
From PsiWiki
Патчи предназначены для изменения исходного кода программы с целью изменения его функциональной нагрузки. Другими словами патчи изменяют (в частности — дополняют) возможности программы.
Contents |
Патчинг
Патчи — не единственный путь скоростного конструктора для манипулирования кодом Psi с целью изменения функционала. Psi имеет также API для плагинов (англ.).
Где найти
Для дополнения Psi новыми возможностями существует множество патчей:
- Патчи на английской Вики
- Сборка патчей от ivan101 (накладывать в последовательности, описанной здесь)
Готовенькое
Скомпиллированые билды Psi с наложенными патчами:
- Билд и либы Qt 4.4 для Windows (Если при запуске Psi матерится на ненайденную точку входа — обновите библиотеки Qt в папке с psi.exe)
- Ebuild для Gentoo
- Deb-пакеты для Debian и Ubuntu Linux (скомпилленно на Qt 4.3.2)
Скрипты автоматизации
Чтобы не гемороиться с консолью, предлагаем Вам следующие скрипты, готовые предоставить быстрое конфигурирование, накладывание патчей и, собственно, компилляцию.
Флаконы "всё в одном" предоставлены для Windows и Linux.
*Nix
TODO: FIXME
Скрипт для компилляции с патчами. Запускать из trunk/
! НЕ ПРОВЕРЕНО !
#!/bin/sh
# Патч для компилляции Psi с патчами (май 2008)
# Советую разобраться в том что он делает.
# Теоретически должен работать как минимум на Ubuntu Linux.
# Скрипт убог, поэтому фиксы писать мне или править тут.
# //mag2000
# Инициализация переменных...
# Установка каталога с патчами. Не забудь '/' в конце!
ppath=`/PATH_TO_PATCHES/` &&
# ...завершение инициализации
# Очистка от патчей
cd src &&
rm -f *.orig *.rej mucreasonseditor.* groupchattopicdlg.* entitytimetask.* timeserver.* options/opt_iconset_mood.ui &&
cd .. &&
printf "Cleared.\n" &&
svn revert -R ./ &&
svn update &&
./configure &&
make &&
# Накладывание патчей
patch -p1 < ${ppath}psi-muc-kickban-reasons.diff &&
patch -p1 < ${ppath}psi-vcard-save.diff &&
patch -p0 < ${ppath}psi-muc-topic.diff &&
patch -p1 < ${ppath}psi/psi-muc-nickclick.diff &&
patch -p0 < ${ppath}psi-replies-for-message-receipts.diff &&
patch -p0 < ${ppath}psi-muc-user-count.diff &&
patch -p0 < ${ppath}psi-machekku-avatars_in_tooltip.diff &&
patch -p1 < ${ppath}psi-machekku-entity_time-0.1.2.diff &&
patch -p0 < ${ppath}psi-mood-icons.diff &&
patch -p0 < ${ppath}psi-muc-change-affiliation.diff &&
patch -p0 < ${ppath}psi-muc-nickclick-chat.diff &&
patch -p0 < ${ppath}psi-send-button-arrow.diff &&
patch -p1 < ${ppath}psi-bookmarkskip.diff &&
patch -p1 < ${ppath}psi-notify_muc_highlight.diff &&
printf "\n\nPatched.\n\n" &&
# Установка версии в исходники
svn revert src/applicationinfo.cpp > /dev/null &&
rev=`svnversion` &&
time=`date +'%d.%m.2k8'` &&
sed -i "s/\"0\.12-\(dev\|RC[0-9]\)\"/\"0.12-\1-r${rev}-${time}\"/" "src/applicationinfo.cpp" &&
printf "\nRevision changed.\n" &&
make &&
printf "\n-----------------\nMake complete. Enjoy!\n"
Windows
TODO: Похакать сервера Ивана и Зета на наличие скриптов

