Debian + Pidgin = ??

kruzer25

Поставили lenny с дисков. Диски старые, pidgin там только 2.4.2, libpurple - тоже 2.4.2, так что к аське не подключается.
Пытаемся поставить из интернета libpurple 2.4.3... упс, оно зависит от libpurple0 2.4.3 (которого тоже на дисках нет - только 2.4.2 а libpurple зависит от кучи вещей, в частности, питона и перла 5.10.0.11 (на дисках - только 5.10.0.10)... и таким образом, для установки микроскопическое обновления для маленькой либы для работы с аськой надо вытягивать из интернета полсистемы.
Нет, ну я всё понимаю, но нахрена libpurple0 после перехода с 2.4.2 на 2.4.3 понадобился новый перл? Там же в этой libpurple0 поменялся только номер протокола, который оно говорит асечному серверу!

dgaf

sudo нашёл?

kruzer25

Это не я ставлю и не себе.
У техподдержки стоял etch, собирать pidgin из исходников - то ещё удовольствие, а в репозитории - только древний 2.3, и навряд ли там вообще появится 2.4.3.
Решили поставить lenny, скачали диски, поставили - а, оказывается, для установки 2.4.3 надо выкачивать полсистемы. Пиздец.

igorpopkoff

если не хочешь обновляться, используй мессенджер, менее плотно интегрированный с окружением.

hoha32

ботай мануалы
оно ж как лучше хочет, но вполне можно сказать ему как надо.

dgaf

спрашивай у того кто советовал debian -)
вы бы еще CENTOS 3-4 поставили
или правь бинарник hexedit-ором

kruzer25

мессенджер, менее плотно интегрированный с окружением
Просто интересно, нахрена оно хочет новый перл?

kruzer25

вполне можно сказать ему как надо
Уже.

kruzer25

вы бы еще CENTOS 3-4 поставили
А ты бы что поставил (из линуксов)? Разве дебиану и дебиан-based дистрибутивам есть конкуренты?
или правь бинарник hexedit-ором
Себе в винде я уже исправил дллку руками. А для линукса - никто не знает, что и где менять (в общем-то, это и понятно - бинарники, они же для всех систем разные).

vall

apt-get build-dep pidgin
apt-get source --compile pidgin
dpkg -i *.deb

megan

поставь тогда себе woody, там наверняка есть pidgin 2.2.1 или 2.0.1 вот он клал на обновление протокола icq и продолжает отлично работать.
Я на ноуте давно не обновлял pidgin, поэтому заметил.

alfadred

Вообще-то там не только номер протокола поменяли.
Вот ченджлог:

version 2.4.3 (07/01/2008):
libpurple:
* Yahoo! Japan now uses UTF-8, matching the behavior of official clients
and restoring compatibility with the web messenger (Yusuke Odate)
* Setting your buddy icon once again works for Yahoo! accounts.
* Fixes in the Yahoo! protocol to prevent a double free, crashes on
aliases, and alias functionality
* Fix crashes in the bonjour protocol
* Always use UTF-8 for Yahoo! (#5973)
* Fix a crash when the given jabber id is invalid.
* Make the IRC "unknown message" debugging messages UTF-8 safe.
* Fix connecting to ICQ
* Fix a memleak when handling jabber xforms.

Видимо из-за чего-то этого и перешли на новый перл с питоном, там обычно не просто так ставят ограничение по версии.

alfadred

В etch по информации с debian.org еще gaim 2.0.0, а pidgin 2.3 в etch-backports. И я почти уверен, что там пофиксена эта бага, сейчас на виртуалку поставлю, проверю.

kruzer25

вот он клал на обновление протокола icq
Да ну?
Проблема в том, что пиджин-то умеет работать с новым протоколом, сам протокол и не менялся, просто раньше пиджин говорил серверу icq, что он использует версию протокола 5 (если ничего не путаю а на серверах icq первого июля стали давать отлуп всем пользователям древних версий icq - тем, кто сообщает о том, что у него версия 5.
Всё это решается исправлением одного-единственного байта - переправить 5 на 6.

kruzer25

а pidgin 2.3 в etch-backports. И я почти уверен, что там пофиксена эта бага
Зря уверен, потому что 2.3 - это что-то дико древнее, а "бага" вскрылась первого июля, и первого же июля срочно выпустили 2.4.3, фиксящий эту багу (а я под виндой просто поменял номер версии протокола в длл - у меня стояла 2.4.2, и она тоже перестала подключаться).
У всех людей на работе, кто пользуется дебианом - стоит именно 2.3 из backports, и она у них перестала подключаться. Из-за этого мы и начали поддержку по google talk, из-за этого у нас с 1 июля поддержку по icq осуществляет не техподдержка, и из-за этого мы и ставим сейчас техподдержке lenny.

dgaf

>из-за этого мы и ставим сейчас техподдержке lenny
почему не висту?

kruzer25

Денег стоит, техподдержка может и без неё обойтись (всё равно она даже при желании ничего сломать не сможет).

alfadred

Проверил уже, действительно, не подключается.
Однако gaim 2.0.0beta5, который есть на дисках etch, подключается и посылает/принимает сообщения

serega1604

dpkg-deb -x libpurple0(что-то там).deb /tmp
sudo cp /tmp/usr/lib/purple-2/libicq.so /usr/lib/purple-2/
примерно так.

fufa58

ставьте kopete
у меня она автоматически на следующий стянула какую-то xml-ку и начала нормально логиниться

banderon

Она скачала http://kopete.kde.org/oscarversions.xml
По сути это тот же патч, который в этом треде уже проскакивал, только не надо всё пересобирать или качать новую версию программы. Вот такой подход мне больше нравится =)

Selena

...надо выкачивать полсистемы. Пиздец...
Очень не верится. В мегабайтах сколько?
Из опыта использования gentoo/redhat/debian, debian очень скуп при разрешении зависимостей.

kruzer25

Очень не верится. В мегабайтах сколько?
Не мерял. Но должно быть дохрена - потому что только сама bpurple0 янет за собой новый перл и новый питон (хотя насчёт питона сейчас не уверен а ещё есть куча того, что вытянуто тем, что вытянуто libpurple...

Selena

...Не мерял...должно быть...


aptitude update
aptitude -s upgrade pidgin

serega1604

там обычно не просто так ставят ограничение по версии.
если ты так про мейтенеров дебиана думаешь, то зря - имхо они ставят необходимыми те версии пакетов, которые на момент сборки этого пакета стояли у них в системе.

kruzer25

оно ж как лучше хочет, но вполне можно сказать ему как надо.
Хехе. Сказали ему "как надо", поставили пакет с чем-то вроде --force - теперь при установке совсем других пакетов, у которых всё хорошо, оно вопит "ааа, у вас не все зависимости удовлетворены - у вас же стоит пиджин, который хочет новый перл, о котором я не знаю, ахтунг, чините зависимости или идите нахуй".
В общем, тупо нашли все файлы/папки, у которых в названии libpurple, забэкапили, откатили в менеджере пакетов до предыдущей версии, и бинарники подменили на бинарники новой версии. Вроде бы, работает.

Commandor

А че мешает пересобрать pingin из исходников или по аналогии с твоим методом на винде (изменение в dll) изменить один байтик хексредактором в liboscar.so?

kruzer25

или по аналогии с твоим методом на винде (изменение в dll) изменить один байтик хексредактором в liboscar.so?
В винде - дллка, она одна на всех системах, и известно, какой байт и на какой позиции менять.
В случае с линуксами - у каждого дистрибутива своя .so, у каждого, кто собрал руками из исходников - своя .so, и никто не знает, где и что менять.
А че мешает пересобрать pingin из исходников
Уже не помню - то ли не пересобралось, то ли не запустилось, то ли не смогло подключиться к аське после этого.

dgaf

>никто не знает, где и что менять.
я же показал патч - искать в нём такую последовательность байт

Commandor

Ну так нагугли для своего дебиана и версии библиотеки нужный офсет. (или сам поищи - на форумах писали, что искать)
То что не собралось - просто наличие кривых рук. У меня 2.4.2 пересобралась и заработала без лишних ухищрений.
apt-get install build-essential devscripts fakeroot
apt-get build-dep pidgin
apt-get source pidgin
заходим в папочку с исходниками, патчим
dpkg-buildpackage -rfakeroot -us -uc
Получили готовый deb пакет и установили. Делов-то 10 минут.

kruzer25

apt-get install build-essential devscripts fakeroot
apt-get build-dep pidgin
apt-get source pidgin
Ясно - мы пытались собрать из исходников с http://pidgin.im/
Ты уверен, что тот пакет, который выйдет в итоге, не захочет новый перл?

Commandor

Уверен - он захочет тоже самое, что хотел pidgin-2.4.2 который был в коробке. Это он и есть - с одним измененным байтиком

kruzer25

я же показал патч - искать в нём такую последовательность байт
Ты это серьёзно?
Да, надо найти последовательность байт 010a и заменить её на 010b.
Как ты думаешь, сколько таких последовательностей в мегабайтной (не помню точно, сколько там) либе?
И, кстати, всё ещё веселее, потому что в дллке оно хранится в обратном порядке, 0a01.
Специально сейчас посмотрел - в моей 250КБ liboscar.dll два раза встречается 010a и аж десять раз - 0a01. Что менять предлагаешь?

dgaf

там указаны следующие 12 байт, по ним и искать
0X01140034000000b80b3d04

kruzer25

liboscar.dll
0000019B50: DC C7 E6 8A 68 C7 45 E0 │ CA E6 8A 68 C7 45 A8 BA ▄╟цКh╟Eр╩цКh╟Eи║
0000019B60: E6 8A 68 66 C7 45 AC 0A01 66 C7 45 AE 14 00 66 цКhf╟Eм◙☺f╟Eо¶ f
0000019B70: C7 45 B0 34 00 66 C7 45 │ B2 00 00 66 C7 45 B4 B8 ╟E░4 f╟E▓ f╟E┤╕
Жирным выделен номер версии, 0а нужно было заменить на 0b.
Какие 12 байт, говоришь, искать надо?

dgaf

балбес, зачем мне твоя dll
я про libpurple

kruzer25

Ты сейчас говорил про исходники.
Из этих исходников собирается и libpurple, и liboscar.dll.
Ты настолько уверен в себе, что хочешь сказать, что при сборке под линукс там обязательно должны быть эти 12 байт, а при сборке под винду - нет?

dgaf

это был какой-то кривой патч, впрочем можно было поискать ту же последовательность 66 c7 45 ac 0a 01
-000259d0 45 ac 0a 01 66 c7 45 ae 14 00 66 c7 45 b0 34 00
+000259d0 45 ac 0a 01 66 c7 45 ae 06 00 66 c7 45 b0 00 00
-000259e0 66 c7 45 b2 00 00 66 c7 45 b4 b8 0b c7 45 b8 3d
+000259e0 66 c7 45 b2 00 00 66 c7 45 b4 ab 17 c7 45 b8 35
-000259f0 04 00 00 89 45 a4 89 04 24 e8 66 51 fe ff 89 c6
+000259f0 75 00 00 89 45 a4 89 04 24 e8 66 51 fe ff 89 c6
#define CLIENTINFO_PURPLE_ICQ { \
"Purple/" VERSION, \
0x010a, \
- 0x0014, 0x0034, \
- 0x0000, 0x0bb8, \
- 0x0000043d, \
+ 0x0006, 0x0000, \
+ 0x0000, 0x17ab, \
+ 0x00007535, \
"us", "en", \
}
и четырёхбайтовые хреновины 66 C7 45 xx с твоими сходятся
Оставить комментарий
Имя или ник:
Комментарий: