LINUX.ORG.RU

XnViewMP 0.87 (ebuild для Gentoo)

 , , , ,


0

1

7 сентября 2017 года вышел сабж (и как самостоятельное приложение XnConvert для конвертрования). Так как многие уже здесь жаловались, что kipi-plugins превратились в нечто бесполезное, потянув за собой gwenview, то я не выдержал и подправил существующие в оверлеях ebuild-файлы, чтобы они наконец-то были в каком-то виде «рабочими». Надеюсь, что это скорее так, чем нет. По крайней мере, теперь оба приложения у меня запускаются после установки как со встроенными библиотеками, так и с внешними.

Тэг gentoo добавлен по той, причине, что прошу желающих дополнительно потестить ebuild'ы. Как смог, я это уже сделал. При использовании внешних библиотек для проигрывания медиа-контента наличие библиотеки libpulse.so мне не понадобилось, но вот со встроенными, он её требует, поэтому и пришлось добавить дополнительную зависимость от pulseaudio/apulse.

XnViewMP

XnConvert

Pinkbyte, можешь подсказать, как подправить первый ebuild, чтобы в зависимости от платформы создавался симлинк на libpulse.so из соответствующих платформе каталогов?

И как всё-таки лучше поступить, когда приложение может захотеть в рантайме плагины gstreamer, но и без них работает? Не запихивать же в зависимости все gst-plugins-*? Я пока ограничился elog сообщением, что пользователю нужно будет их доустановить нужные ему.

★★★★★

Тестить не буду, так как не юзаю, но если есть желание мейнтейнить, то могу дать права в nightmare.

когда приложение может захотеть в рантайме плагины gstreamer, но и без них работает

Выводить einfo после установки об этом.

все gst-plugins-*

Можно просто сделать gst-plugins-meta[mp3,ogg].

elog

Зачем срать в лог? Юзай einfo.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Тестить не буду, так как не юзаю, но если есть желание мейнтейнить, то могу дать права в nightmare.

Я сам пока не использовал, только бегло посмотрел. Но про запас, если припрёт, подобное приложение хочется. Просто распаковка архива и попытка добавления всяких LD_PATH_(как его там) и QT_PATH_PLUGINS перед запуском приводили к segmentation fault, о чём есть соответствующие темы на форуме разработчика. А ebuild в оверлеях у меня были не рабочие, по крайней мере без pulseaudio.

В оверлей пока не хочу (разве что действительно использовать как инфраструктуру для внесения изменений, не исключаю, что это повысит дальнейшую вероятность внесения пакета в дерево). В багзилле могут предложить стать прокси-ментейнером, что меня пока тоже пугает, потестировать ebuild я ещё могу время от времени, но мой английский оставляет желать лучшего, хотя при переписке обычно меня понимают. Страничка graphics project уж слишком пустынно выглядит, даже irc-канала нет. Но может стоит напрямую написать им, если Qt project не проявит интереса. В любом случае спасибо, я пока ещё подумаю. Сначала получше оттестирую ebuild после дополнительных изменений.

Чем отличаются требования к поддержке пакета в overlay и основном дереве? Подозреваю, что в основном требования к чуть жёстче. В любом случае, если вдруг возникнет твёрдое (пока оно не очень) желание стать ментейнером, нужно потренироваться работать с git хотя бы на своей страничке в github (там всё равно ничего нет). А то такими темпами уже сложно хранить промежуточные файлики дома, а держать там систему контроля версий лень.

Можно просто сделать gst-plugins-meta[mp3,ogg]

Вот-вот, такое же должно быть в openoffice-bin и libreoffice-bin, но пока не добавили. А при отсутствии соответствующего флага там желательно мочить при установке одну библиотеку, чтобы @preserved-rebuild постоянно не предлагали из-за отсутствующей зависимости от gstreamer и gst-plugins-base.

Да, спасибо, размышлял добавить флаг gstreamer:0.10, который будет тянуть gst-plugins-meta (возможно с какими-то включенными по умолчанию флагами, но маловероятно), а дальше пользователь сам пусть добавляет нужные. Тогда и флаг pulseaudio можно будет убрать и как-то по другому обработать зависимость от bundled-libs, если в системе используется alsa, а не pulseaudio.

Почему именно gstreamer:0.10? Пока успел проверить только с ним на mp3 файле и gst-plugins и alsa. Проверить работу с pulseaudio не могу, так как у меня его нет, как и желания его ставить.

Насчёт добавления симлинка через директорию lib64 я поторопился, так как lib и так является симлинком к ней, а в 32-битной системе это и так, наверняка, фактически lib32. Но что-то мне подсказывает, что какую-то обвязку посредством, может быть, XARCH добавить нужно помимо условия на выбор ~x86 и ~amd64.

Зачем срать в лог? Юзай einfo.

Это на тот случай, если пакет был добавлен в сет и установлен кучей вместе с другими, тогда можно будет при просмотре через elogv заметить это сообщение.

grem ★★★★★ ()
Ответ на: комментарий от grem

Чем отличаются требования к поддержке пакета в overlay и основном дереве?

В моём оверлее они особо ничем не отличаются (смотри CONTRIBUTING.md), так как я не хочу, чтобы оверлей превратился в помойку, которую из себя представляют многие неофициальные оверлеи, половина ебилдов из которой срут ошибками просто при чеке, не говоря уже о том, чтобы собирать пакеты, потому, что мейнтейнеры оверлея не следят за актуальностью поддерживаемых пакетов. Более того, я заметил тенденцию, что некоторые ебилды из моего оверлея перекочевали в дерево без моего участия, освобождая мне время на поддержку. :3

Да, спасибо, размышлял добавить флаг gstreamer:0.10, который будет тянуть gst-plugins-meta (возможно с какими-то включенными по умолчанию флагами, но маловероятно)

Не надо тянуть напрямую gstreamer, если тебе нужны определённые плагины, так как плагины сами зависят от gstreamer и потянут его автоматически.

Тогда и флаг pulseaudio можно будет убрать и как-то по другому обработать зависимость от bundled-libs, если в системе используется alsa, а не pulseaudio.

IUSE="bundled pulseaudio"
RDEPEND="
  bundled? ( media-plugins/gst-plugins-meta:0.10[which,uses,you,need] )
  pulseaudio? (
    || (
      media-sound/pulseaudio
      media-sound/apulse
    )
  )
  !pulseaudio? (
    media-libs/alsa-lib
  )
"

Но с подобной предпоследней конструкции иногда могут быть проблемы у Paludis.

а в 32-битной системе это и так, наверняка, фактически lib32

Не подскажу, но надо курить в сторону libdir, или как оно там называется. Я с мультилибом пока не сталкивался.

на выбор ~x86 и ~amd64

Не, через кейворды — костыль, если нужен мультилиб, то кури в сторону ABI_X86.

Это на тот случай, если пакет был добавлен в сет и установлен кучей вместе с другими, тогда можно будет при просмотре через elogv заметить это сообщение.

После каждого обновления твоё сообщение будет дописываться в лог. Впрочем, у меня такое тоже есть, на случай совсем невнимательных юзеров. :3

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

В моём оверлее они особо ничем не отличаются (смотри CONTRIBUTING.md), так как я не хочу, чтобы оверлей превратился в помойку, которую из себя представляют многие неофициальные оверлеи, половина ебилдов из которой срут ошибками просто при чеке, не говоря уже о том, чтобы собирать пакеты, потому, что мейнтейнеры оверлея не следят за актуальностью поддерживаемых пакетов. Более того, я заметил тенденцию, что некоторые ебилды из моего оверлея перекочевали в дерево без моего участия, освобождая мне время на поддержку. :3

Вот это хорошо, что столь внимательно в этом оверлее относятся к ebuild'ам. Сам стараюсь предварительно протестировать насколько успеваю и насколько позволяют текущие знания о EAPI и его правилах. Пока опыта в этом крайне мало, «multilib» для меня тёмный лес. Как раз в данном случае при использовании ebuild'ов из оверлея и последнего из багзиллы, у меня приложение не запускалось.

Не надо тянуть напрямую gstreamer, если тебе нужны определённые плагины, так как плагины сами зависят от gstreamer и потянут его автоматически.

Я не сам gstreamer планирую напрямую тянуть, а gst-plugins-meta, но тогда лучше сам USE-флаг так и назвать или multimedia, скорее всего выберу последний вариант. Сами плагины могут понадобиться и в случае если не используется флаг bundled-libs, так как я проверял (но проверю ещё раз) для mp3 и плагинов к gstreamer:0.10, что файл проигрывается и в том случае если я использую системные библиотеки, поэтому отдельный можно создать отдельный флаг. Попробую проверить ещё и для gst-plugins-*:1.0. Если вдруг будет работать для обеих библиотек, то для флага multimedia добавлю проверку установлена ли уже какая версия gstreamer, чтобы вдруг он не ломанулся его ставить в дополнительный слот.

Немного всё осложняется тем, что сборка с bundled-libs обязательно хочет для запуска libpulse.so (просто для запуска, даже если gts-plugins и не нужны пользователю), поэтому и приходится извращаться с дополнительным правилом для установки apulse (спасибо его разработчику за полезную утилиту для обода подобных требований, кастoвать не буду :) ). Проверку на его версию можно убрать, я её стащил из firefox-bin, но так как apulse сейчас только одной версии в дереве, то она уже не нужна.

Скорее всего придётся написать разработчикам на форуме или письмо, чтобы уточнить несколько моментов. Особенно для некоторых runtime-зависимостей.

grem ★★★★★ ()
Ответ на: комментарий от grem

Вот это хорошо, что столь внимательно в этом оверлее относятся к ebuild'ам.

Тем не менее, факапы везде случаются, человеческий fuckтор. xD

Сам стараюсь предварительно протестировать насколько успеваю и насколько позволяют текущие знания о EAPI и его правилах.

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

Я не сам gstreamer планирую напрямую тянуть, а gst-plugins-meta, но тогда лучше сам USE-флаг так и назвать или multimedia, скорее всего выберу последний вариант.

Есть общепринятые юзы, для gstreamer это gstreamer, он как бы очевиден и не введёт юзера в ступор (ибо multimedia — это сильно обобщённо).

Если вдруг будет работать для обеих библиотек

То использовать gstreamer010 и gstreamer, правда, от этой конструкции вроде как отказались. Не старайся угадать как можно больше, давай юзеру выбор!

спасибо его разработчику

Да, i-rinat очень помог линуксам своим apulse.

Скорее всего придётся написать разработчикам на форуме или письмо, чтобы уточнить несколько моментов. Особенно для некоторых runtime-зависимостей.

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

r3lgar ★★★★★ ()

LICENSE=«freedist XnView»
«Freely distributable» means you can distribute the package you are generating.

XnView MP is provided as FREEWARE (NO Adware, NO Spyware) for private or educational use (including non-profit organizations). 
If you intend to use XnView in a company, you must purchase a license.
N° of licenses	Price per license
1               26.00 €
2-9             23.00 €
...

Что-то тут не бьется.

arson ★★★★★ ()
Ответ на: комментарий от Deleted

Так на странице списка оверлеев написано же всё. Мой ник вроде ещё никто не пытался заюзать (слава гранёным стаканам!). Плюс у меня в профиле ссылка на, имейлы идентичны. Не думал, что так трудно сопоставить. (=

В любом случае, не важно, чей оверлей, важно качество контента, пусть даже в ущерб количеству.

If it's not perfect, it's garbage.

r3lgar ★★★★★ ()
Ответ на: комментарий от arson

Вот поэтому хочу уточнить лицензию у разработчиков. В AUR вообще custom указано. В дицензии после установки указано тоже, что можно распространять (но не использовать ;) же ), но там лицензия от 2011 года.

freedist XnView взято из прошлого ebuild.

grem ★★★★★ ()
Ответ на: комментарий от grem

Вот поэтому хочу уточнить лицензию у разработчиков.

Во-во, уточни. А то в /opt/XnView/license.txt одно, в «Справка/О программе/Условия лицензии» другое, на сайте третье...

arson ★★★★★ ()
Ответ на: комментарий от arson

Во-во, уточни. А то в /opt/XnView/license.txt одно, в «Справка/О программе/Условия лицензии» другое, на сайте третье...

Уточнил

Можно оба приложения распространять посредством репозиториев. По крайней мере, как мне кажется, если оставить «freedist XnView», то не придётся в дерево портаж дополнительную лицензию вставлять.

Надо бы ещё ebuild для их консольной утилиты (NConvert) состряпать.

grem ★★★★★ ()
Ответ на: комментарий от r3lgar

Есть общепринятые юзы, для gstreamer это gstreamer, он как бы очевиден и не введёт юзера в ступор (ибо multimedia — это сильно обобщённо).

То использовать gstreamer010 и gstreamer, правда, от этой конструкции вроде как отказались. Не старайся угадать как можно больше, давай юзеру выбор!

Попытался поставить gst-plugins-meta:1.0, но с ним даже mp3 не воспроизвёлся, оставил в зависимостях только gst-plugins-meta:0.10. Есть только проблема, что даже если выставить для него все возможные флаги, то это не значит, что поставятся все плагины из ветки gst-plugins-*:0.10, парочку, возможно, придётся ставить руками. Но сами плагины мало что у меня воспроизвели - только mp3 и vob (с dvd диска), всякие видео со смартфона даже при флаге x264 они не знают. Оставил флаг gstreamer тянущий gst-plugins-meta:0.10.

Скорее всего придётся написать разработчикам на форуме или письмо, чтобы уточнить несколько моментов. Особенно для некоторых runtime-зависимостей.

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

На форуме софтины сообщили, что Qt5Sensors используется для тачскринов, поэтому по аналогии с подобными вещами добавил флаг «sensors», который должен быть неактивен, если ставятся библиотеки из поставки программы.

Так же удалил зависимость от qtimageformats - у них этой библиотеки в поставке нет, а, например, с tiff он и так работает без неё, в отличии от gwenview и nomacs (свежий баг на эту тему есть о недостатке этой зависимости в nomacs).

Оставил создание нужного симлинка для apulse указывающую на файл в /usr/lib, а не /usr/lib64 - всё равно первая и так является симликном на вторую, а в случае 32-битной системы проблем тогда тоже быть не должно.

Ну и конечно же снял ограничение на зеркало для скачивания.

Оба ebuild'а закинул в багзиллу.

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от grem

Ничего не понимаю в ваших ebuild-ах, но opennet говорит следующее:

LICENSE
Значение должно представлять собой список (через пробел) имен лицензий, по которым распространяется пакет. Это должны быть лицензии, представленные в каталоге /usr/portage/licenses/. Если соответствующей лицензии в системе портежей нет, ее необходимо явно добавить.

Какой из четырех вариантов лицензии (есть еще просто XnView, не MP) прописан у тебя в /usr/portage/licenses/XnView (и откуда он там взялся)? Под какой лицензией все-таки распространяется XnviewMP?

Зачем вообще в переменной прописано freedist? Помоему «distribute» и распространение архивных копий это разные вещи.

P.S. Лучше оставь старый вариант - free-noncomm

arson ★★★★★ ()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от arson

Спасибо, попробую. Как раз его я видел в старом-старом варианте на форуме. Для xnviewmp тогда можно указать: freedist и/или free-noncomm, а для xnconvert просто freedist.

Freedist это тоже имя лицензии из соответствующего каталога portage.

Сам xnview (без MP), похоже, когда-то был в x11-mics или его туда хотели поместить.

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 1)