slackware.ru
http://www.slackware.ru/forum/

[HowTo] taglib-rusxmms (_slack14.1, 14.2)
http://www.slackware.ru/forum/viewtopic.php?f=27&t=2631
Страница 1 из 1

Автор:  nk [ 10 ноя 2018 12:07 ]
Заголовок сообщения:  [HowTo] taglib-rusxmms (_slack14.1, 14.2)

MP3-те|эги, содержащие кириллицу в нестандартной кодировке
Есть проект, который осуществляет поддержку патчей для taglib: RusXMMS. Наша задача наложить их патчи на иходники пакета, т.е. мы пропатчим taglib для русских тегов mp3 отличных от utf-8 для плееров Amarok, Clementine, Qmmp &etc, т.е. те которые обращаются к taglib для прочитывания информации из mp3-тегов.

  • Стоит отметить еще есть немного другое решение в качестве использования другого плеера или просто поставьте/соберите плеер deadbeef / DeaDBeeF / 0xDEADBEEF (an audio player) - он не обращается к тегам через taglib, и не надо taglib патчить и пересобирать этот пакет (taglib), собранный Патриком.
    Код:
    SBo-14.1 # sbopkg -Bki "deadbeef"
    SBo-14.2 # sbopkg -Bki "jansson deadbeef"
  • Относительно дополнительной информацией про сборку из исходников и установку пакетов учтем, скажем то что вы знаете про данное, осознаете что делаете, в том числе, на свой страх и риск, и приступим к пересборке taglib.

Необходимо собрать librcc и пересобрать taglib с патчем и этой библиотекой:
Цитата:
LibRCC - Russian Charset Conversion Library

Итак, для начала, нам необходима librcc из этого самого проекта, который предоставляет патчи для taglib, но прежде чем собирать librcc, хотелось бы оговориться об возможностях данной библиотеки. Если запустите сборку (LibRCC) заметите следующую информацию: ./configure
Код:
Enca Charset Detection Support:        dynamic
LibRCD Charset Detection Support:      dynamic
Это нас информируют о том то что в /usr/lib${LIBDIRSUFFIX} не найден один из файлов указанной библитеки, а именно:
  • либо Enca: /usr/lib${LIBDIRSUFFIX}/libenca.so
  • либо LibRCD: /usr/lib${LIBDIRSUFFIX}/librcd.so
В принципе, можете продолжить сборку, установить и потом собрать пропатченный taglib, а затем доустановить enca или librcd, тем самым taglib будет обращаться к librcc, а та в свою очередь запрашивать информацию у enca или librcd. Но
  • если же будете собирать с установленным enca или librcd учитывайте что taglib_librcc не будет работать, если вы удалите enca или librcd.
Цитата:
LibRCD is used by RusXMMS project for encoding auto-detection.
На мой взгляд, здесь правильнее всего собрать: librcd -> librcc -> taglib. Просто исходя из того что LibRCD, как LibRCC является частью проекта RusXMMS, того самого у которого мы берем данные патчи для taglib. А еще могу добавить, что и правильным будем собирать так и с Enca без установленного LibRCD, если по каким-то причинам вы так или иначе пользуйтесь Enca, скажем enconv из этого итогового пакета для каких-то своих целей в том числе для перегонки man-страниц в нестандартной кодировке, если таковые установлены у вас в системе (н-р: LANG=ru_RU.UTF-8 /usr/bin/man xfce4-terminal), в общем вам решать, это я просто относительно enca пометку сделал в большей степени для тех людей которые систему в минимальном размере стараются держать, хоть она много и не занимает эта библиотека.

Ниже ссылки где можно взять готовые SlackBuild'ы:собираем librc* по этим СлакБилдам (или пишем свои) - они нам необходимы для пересборки с патчем taglib.

Далее, берем патчи из rusxmms/patches, распаковываем и пересобираем taglib:
  • SlackBuild, slack-desc и исходники берем у самого Патрика: source/l/taglib
  • taglib-csaВЕРСИЯ.tar.bz2 распаковываем в каталог вместе с исходниками,
единственное что нам необходимо добавить в SlackBuild строчки с применением патчей перед cmake:
Код:
cd $TMP/taglib-$VERSION || exit 1
for p in `ls ../taglib | grep -e .patch -e .diff | grep $VERSION` ; do
 patch -p1 --verbose < ../taglib/$p || exit 1
 install -Dm644 ../taglib/$p $PKG/usr/doc/taglib-${VERSION}
done
Добавляем данные строчки (строчку) в taglib.SlackBuild, собирайте и устанавливайте.

И в принципе все, перезапускайте плеер, если запущен и наслаждайтесь реультатом.
- После каждой сборки `./*.SlackBuild`, как собрали устанавливайте так # upgradepkg --reinstall --install-new ПАКЕТ.txz
- После пересборки taglib, н-р: qmmp, clementine, * плеер перезапускаем и по-новой закидываем файлы в плейлист.

Проверено и испробовано, при slackware64-14.2 на
  • taglib_1.10
  • amarok_2.8.0
  • clementine_1.3.1
  • qmmp_0.11.3
- Works fine!

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/