taglib-rusxmms

Руководства, инструкции, советы и хитрости
Аватара пользователя
nk
Модератор
Сообщения: 413
Зарегистрирован: 14 сен 2014, 00:35
Темы: 78
Статус: Не в сети

taglib-rusxmms

Сообщение nk » 14 сен 2014, 16:15

taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Имеется такое положение дел: http://metadata.ftp-master.debian.org/c ... _changelog
Но в то же время есть проект, который осуществляет поддержку патчей для taglib: http://rusxmms.sourceforge.net/
Наша задача наложить их патчи на имеющийся пакет, приступим.
(Моя текущая система: LinuxMint-17 базирующаяся на пакетной базе Ubuntu-14.04-LTS)

Код: Выделить всё

sudo apt-get build-dep taglib

Код: Выделить всё

mkdir /tmp/taglib-rusxmms/
cd /tmp/taglib-rusxmms/
wget -c http://darksoft.org/files/rusxmms/patches/taglib-csa10.tar.bz2
tar -xvf taglib-csa10.tar.bz2 -p -C ./
далее скачаем исходники по которым в ubuntu/deb собирался taglib (необходимо что бы src-репозиторий был подключен) и пропишем патчи, которые мы загрузили и распаковали:

Код: Выделить всё

cd /tmp/taglib-rusxmms/
apt-get source taglib

echo taglib-1.9.1-ds-rusxmms.patch >> /tmp/taglib-rusxmms/taglib-1.9.1/debian/patches/series
cp -av taglib/taglib-1.9.1-ds-rusxmms.patch /tmp/taglib-rusxmms/taglib-1.9.1/debian/patches/ 

echo taglib-1.9.1-ds-rusxmms-enforce.patch >> /tmp/taglib-rusxmms/taglib-1.9.1/debian/patches/series 
cp -av taglib/taglib-1.9.1-ds-rusxmms-enforce.patch /tmp/taglib-rusxmms/taglib-1.9.1/debian/patches/
Укажем различные внесенные изменения:

Код: Выделить всё

cd /tmp/taglib-rusxmms/taglib-1.9.1
dch -i
я, например, здесь подправил билд на 2csa10, получилось что-то вида: taglib (1.9.1-2csa10), ну и в * (изменениях) указал:
Далее можно приступать к сборке и сборка у меня проходила, но в конце обрывалась на

Код: Выделить всё

dpkg-buildpackage -rfakeroot
...
dpkg-gensymbols: предупреждение: появилось несколько новых символов в файле symbols: смотрите вывод diff ниже
dpkg-gensymbols: предупреждение: некоторые символы или шаблоны исчезли из файла symbols: смотрите вывод diff ниже
dpkg-gensymbols: предупреждение: debian/libtag1-vanilla/DEBIAN/symbols совпадает с debian/libtag1-vanilla.symbols не полностью

...

dh_makeshlibs: dpkg-gensymbols -plibtag1-vanilla -Idebian/libtag1-vanilla.symbols -Pdebian/libtag1-vanilla -edebian/libtag1-vanilla/usr/lib/x86_64-linux-gnu/libtag.so.1.14.0
 returned exit code 1
make: *** [binary] Ошибка 1
dpkg-buildpackage: ошибка: fakeroot debian/rules binary возвратил код ошибки 2
Что я сделал, просто взял и удалил debian/libtag1-vanilla.symbol с которым шел конфликт

Код: Выделить всё

rm -v /tmp/taglib-rusxmms/taglib-1.9.1/debian/libtag1-vanilla.symbol
* перед удалением конечно же заново перезагрузил дерево сборки (apt-get source taglib) и прописал патчи (действия выше) и сборка прошла!

Код: Выделить всё

dpkg-buildpackage -rfakeroot
Пакеты получил и установил конкретные:

Код: Выделить всё

sudo dpkg -i /tmp/taglib-rusxmms/libtag1c2a_1.9.1-2csa10_amd64.deb /tmp/taglib-rusxmms/libtag1-vanilla_1.9.1-2csa10_amd64.deb
И теперь у меня в clementine проблем с кодировкой нет и не надо перегонять теги в utf

Да, на всякий случай, все что у меня относящееся к моим действиям 1.9.1-2csa10 и получившееся я сохранил в локальный каталог, а именно:

Код: Выделить всё

libtag1c2a_1.9.1-2csa10_amd64.deb
libtag1-dev_1.9.1-2csa10_amd64.deb
libtag1-doc_1.9.1-2csa10_all.deb
libtag1-vanilla_1.9.1-2csa10_amd64.deb
libtagc0_1.9.1-2csa10_amd64.deb
libtagc0-dev_1.9.1-2csa10_amd64.deb
taglib_1.9.1-2csa10_amd64.changes
taglib_1.9.1-2csa10.debian.tar.gz
taglib_1.9.1-2csa10.dsc
---

Еще раз вкратце и в командах, что я проделал:

Код: Выделить всё

sudo apt-get build-dep taglib
mkdir /tmp/taglib-rusxmms/
cd /tmp/taglib-rusxmms/
wget -c http://darksoft.org/files/rusxmms/patches/taglib-csa10.tar.bz2
tar -xvf taglib-csa10.tar.bz2 -p -C ./
cd /tmp/taglib-rusxmms/
apt-get source taglib
echo taglib-1.9.1-ds-rusxmms.patch >> /tmp/taglib-rusxmms/taglib-1.9.1/debian/patches/series
cp -av taglib/taglib-1.9.1-ds-rusxmms.patch /tmp/taglib-rusxmms/taglib-1.9.1/debian/patches/ 
echo taglib-1.9.1-ds-rusxmms-enforce.patch >> /tmp/taglib-rusxmms/taglib-1.9.1/debian/patches/series 
cp -av taglib/taglib-1.9.1-ds-rusxmms-enforce.patch /tmp/taglib-rusxmms/taglib-1.9.1/debian/patches/
rm -v /tmp/taglib-rusxmms/taglib-1.9.1/debian/libtag1-vanilla.symbol
cd /tmp/taglib-rusxmms/taglib-1.9.1
dch -i
dpkg-buildpackage -rfakeroot
sudo dpkg -i /tmp/taglib-rusxmms/libtag1c2a_*.deb /tmp/taglib-rusxmms/libtag1-vanilla_*.deb
---

И вроде все, работает для пользователя, но у меня все равно вопрос к имеющим опыт сборки деб-пакетов:
когда я debian/libtag1-vanilla.symbols удалил, сборка прошла, у меня вопрос само-собой почему так? Да и, правильно ли это и чем чревато?
Последний раз редактировалось nk 12 ноя 2014, 21:50, всего редактировалось 1 раз.
• Web: Firefox • Jabber: Gajim • WM: Openbox
Изображение

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение ZEN » 15 сен 2014, 03:16

nk писал(а):И вроде все, работает для пользователя, но у меня все равно вопрос к имеющим опыт сборки деб-пакетов:
когда я debian/libtag1-vanilla.symbols удалил, сборка прошла, у меня вопрос само-собой почему так? Да и, правильно ли это и чем чревато?
а не пробовал, например, с помощью мс посмотреть содержимое пакета? Возможно файл был сгенерирован заново. Ну и судя по содержимому, там просто список имен функций которые будут в результате вписаны в библиотеку (во всяком случае мне так кажется). Есть мысль, что это сделано для совместимости. То есть что бы старый софт не сегфолтился из-за отсутствия имени библиотеки в том виде, в котором она записана в symbols....
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Аватара пользователя
nk
Модератор
Сообщения: 413
Зарегистрирован: 14 сен 2014, 00:35
Темы: 78
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение nk » 15 сен 2014, 03:32

Пробовал, да в принципе вот он (src-deb)
http://packages.ubuntu.com/source/trusty/taglib

Я как понимаю, мой отличается libtag1-vanilla.symbol от того который там (неисключено что его в обще нет), но мне пока не виден ход действий для автоматики, что бы командой чего-то не перекидывать, не удалять, а до dpkg-buildpackage -rfakeroot, дать команду для генерации этого самого symbols
(тут конечно опыт нужен, я честно не особо чего-то в деб пакет когда-то собирал, а если собирал то по руководствам конкретным,
н-р: http://forums.debian.net/viewtopic.php?f=16&t=88545 и сходу пока не все ясно здесь)
• Web: Firefox • Jabber: Gajim • WM: Openbox
Изображение

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение ZEN » 15 сен 2014, 12:01

попробовал на работе пересобрать данный пакет, в результате clementine сегфолтится. Откатился командой:

Код: Выделить всё

sudo apt-get install libtag1c2a=1.9.1-2~bpo70+1 libtag1-vanilla=1.9.1-2~bpo70+1
точную доступную версию пакета(которую я указал в команде выше после знака равно к каждому пакету) можно посмотреть в выводе команды:

Код: Выделить всё

apt-cache policy libtag1c2a libtag1-vanilla
Кстати, нашел на debian.org документацию на этот счет: https://www.debian.org/doc/debian-polic ... bs-symbols
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Аватара пользователя
nk
Модератор
Сообщения: 413
Зарегистрирован: 14 сен 2014, 00:35
Темы: 78
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение nk » 15 сен 2014, 18:48

Хм, интересно уже просто libtag1-vanilla и clementine какой у тебя версии? И что за дистр/ветка?

А да, у меня clementine последней версии из ppa

Код: Выделить всё

$ aptitude versions clementine
Пакет clementine:                                       
p   1.2.0+dfsg-2build1                                trusty                        500 
i   1.2.3~trusty                                      trusty                        500

Код: Выделить всё

add-apt-repository ppa:me-davidsansome/clementine -y
apt-get install -y clementine
и после пересборки taglib - clementine я только перезапустил и по-новой закинул файлы в плейлист
Еще проверил на qmmp там то же все стало нормально.

На счет https://www.debian.org/doc/debian-polic ... bs-symbols
спасибо, надо засесть как-нибудь за эту документацию
Последний раз редактировалось nk 15 сен 2014, 19:39, всего редактировалось 1 раз.
• Web: Firefox • Jabber: Gajim • WM: Openbox
Изображение

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение ZEN » 15 сен 2014, 19:08

libtag1-vanilla 1.9.1-2
clementine 1.0.1+dfsg-2+b1
Debian GNU/Linux 7.6 (wheezy) i686

Думаю, что смысл файла symbols в том, что бы в бинарном виде на разных архитектурах имена функций были оданнаковыми. Возможно потому на х64 работает, а на x32 сегфолт..

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

Аватара пользователя
nk
Модератор
Сообщения: 413
Зарегистрирован: 14 сен 2014, 00:35
Темы: 78
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение nk » 15 сен 2014, 19:42

на счет clementine, а попробуй отсюда поставить пакет http://www.clementine-player.org/downloads
вроде как и для wheezy (и для jessie) - 1.2.3 , собранный есть
• Web: Firefox • Jabber: Gajim • WM: Openbox
Изображение

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение ZEN » 17 сен 2014, 18:16

Установил Clementine 1.2.3, пропатчил taglib - сегфолта нет, все работает

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

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение ZEN » 17 сен 2014, 19:35

Обновление.

Найден баг! Для онлайн радио отсылающего в кодировке cp1251 почему-то теперь текст пытается отобразить в cp1252 кодировке...
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Аватара пользователя
nk
Модератор
Сообщения: 413
Зарегистрирован: 14 сен 2014, 00:35
Темы: 78
Статус: Не в сети

Re: taglib-rusxmms (1.9.1-2) для ubuntu-14.04

Сообщение nk » 18 сен 2014, 03:30

Баг, как я понял, программы, а не из-за пропатченного taglib, да?
• Web: Firefox • Jabber: Gajim • WM: Openbox
Изображение

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость