Сайт | Скачать | Видео | Wiki

Автор Тема: Pra. Создание портированного модуля.pfs  (Прочитано 12550 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sasha-gerych

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 705
  • Репутация: +17/-0
  • Автор темы
Pra. Создание портированного модуля.pfs
« : 16 Сентябрь 2017, 16:01:52 »
Попробовал вот собрать портированый модуль Audacity audacity-p-2.1.2_64.pfs
Тестировалась только на:
Запуск
Запись с микрофона
Открытие аудиофайлов
Экспорт аудио в разные форматы
Сохранение проекта
Под системами PRA64fat и PRAlight

Немного порылся на форуме, в wiki и гугле, подсмотрев как был создан один из портированных модулей, ориентируясь на состав с audacity***.AppImage и команду ldd удалил все лишнее (надеюсь только лишее :) ) вроде как получилось, может топорно делал,  но прога завелась, в /usr/lib/ библиотеки не выгружает.
Выхлоп:
Код
live@pra64:~$ /usr/bin/audacity
14:48:45: Debug: Failed to connect to session manager: SESSION_MANAGER environment variable not defined
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
Expression 'stream->playback.pcm' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 4607
Expression 'stream->playback.pcm' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 4607
Expression 'stream->playback.pcm' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 4607
14:48:46: Debug: Unknown accel modifier: 'left'
14:48:46: Debug: Unknown accel modifier: 'click/left'
14:48:46: Debug: Unrecognized accel key 'drag', accel string ignored.
14:48:46: Debug: Unknown accel modifier: 'left'
14:48:46: Debug: Unrecognized accel key 'click', accel string ignored.
14:48:46: Debug: Unknown accel modifier: 'right'
14:48:46: Debug: Unrecognized accel key 'click', accel string ignored.
14:48:46: Debug: Unknown accel modifier: 'left'
14:48:46: Debug: Unknown accel modifier: 'click/left'
14:48:46: Debug: Unrecognized accel key 'drag', accel string ignored.
14:48:46: Debug: Unknown accel modifier: 'left'
14:48:46: Debug: Unrecognized accel key 'click', accel string ignored.
14:48:46: Debug: Unknown accel modifier: 'right'
14:48:46: Debug: Unrecognized accel key 'click', accel string ignored.
Правда в PRA64fat выхлоп немного другой, и регулятор громкости не реагирует на изменения (быть может из-за сохраненки)
Еще, не разобрался почему некоторые библиотеки из папки /opt/audacity/lib прога не видит.
Код
live@pra64:~$ ldd /opt/audacity/bin/audacity | grep not
libsndfile.so.1 => not found
libsoxr.so.0 => not found
libwx_gtk2u_html-3.0.so.0 => not found
libwx_gtk2u_qa-3.0.so.0 => not found
libwx_gtk2u_adv-3.0.so.0 => not found
libwx_gtk2u_core-3.0.so.0 => not found
libwx_baseu_net-3.0.so.0 => not found
libwx_baseu-3.0.so.0 => not found
libFLAC.so.8 => not found
libFLAC++.so.6 => not found
libid3tag.so.0 => not found
libmad.so.0 => not found
libSoundTouch.so.1 => not found
libvorbisenc.so.2 => not found
libvorbisfile.so.3 => not found
libvorbis.so.0 => not found
libogg.so.0 => not found
libportSMF.so.0 => not found
libsbsms.so.0 => not found
libvamp-hostsdk.so.3 => not found
libjack.so.0 => not found
Я так понимаю нужно прописывать зависимости или перекомпилировать, но я не разобрался  как и что нужно делать..
Вообще я так понимаю что портирование это для знающих людей, а не для обычного пользователя, т.к. вики мне толком не поведала так сказать путь истинный :) Но хотелось разобраться

« Последнее редактирование: 23 Сентябрь 2017, 09:32:17 от sasha-gerych1988 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Pra. Создание портированного модуля.pfs
« Ответ #1 : 18 Сентябрь 2017, 10:04:13 »
audacity-p-2.1.2_64-sa01.pfs
В модуле много либ из ffmpeg
Правильнее было бы портировать в /opt/ffmpеg и прописать зависимость : в start.sh в корне модуля
Код
sfs-get-dep ffmpeg
перекомпилировать
Загружаем дистр только с базовыми и портированными модулями. Чтобы итоговый модуль работал в любом ПРа, а не только в вашем
Находим рецепт https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=audacity-git
Код
packer audacity
Качаем:
Код
packer -G audacity-git
Запускаем компиляцию со сливом зависимостей:
Код
sudo -u live makepkg -d
Если не собираеится:
В папке с src анализируем ./configure --help и правим ключи в PKGBUILD
Если не собираеится: постепенно добавляем зависимостей из списка PKGBUILD

Для проверки результата - собирает такой же модуль из арчрепы : pacman2pfs audacity (будет большой) и сравниваем что не работает в вашем

ldd /opt/audacity/bin/audacity | grep not
Потому что ldd видит только то что в /usr/lib, а Вы перенесли их в /opt
Сначала надо получить рабочий непортированный модуль - потом уже портировать
портирование это для знающих людей
Когда либы только в /usr/lib - портировать просто скриптом mkport
Но бывает что либы в /usr/либа/ - тогда только перекомпиляцией

Оффлайн sasha-gerych

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 705
  • Репутация: +17/-0
  • Автор темы
Re: Pra. Создание портированного модуля.pfs
« Ответ #2 : 18 Сентябрь 2017, 10:51:01 »
Загружаем дистр только с базовыми и портированными модулями
я же правильно понимаю что, если при выборе типа загрузки при старте системы выбираем "частичная загрузка....." должны загружаться только базовые модули (я уже как-то спрашивал) и соответственно программы mtpaint, sakura, palemoon и др. не должны присутствовать в системе, но если так, не пойму почему тогда подгружаются модули из /pra64/modules.
В общем, мне для того чтоб загрузить чистую систему нужно все не портированные модули из папки /modules убрать?

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Pra. Создание портированного модуля.pfs
« Ответ #3 : 18 Сентябрь 2017, 11:12:27 »
"частичная загрузка....." должны загружаться только базовые модули
Нет. http://wiki.puppyrus.org/soft/porteus-initrd#rammod не влияет на состав модулей
http://wiki.puppyrus.org/soft/porteus-initrd#base_only - слишком сурово. Тут в пра только консоль будет
PRA-light - вполне можно использовать для сборки - там только портированные модули, которые не помешают
нужно все не портированные модули из папки /modules убрать?
да. Это главный принцип модульности:
Все что не в 001 и не в прописанных зависимостях модуля - должно быть в самом модуле. При этом в /usr/lib должно быть только из срезы арчрепы дистра и только если не портировать или это модуль либ типа qt4 mesa и т.п.

Иначе при другом составе модулей проге может не хватить либ, которые были в неподключенном модуле
Надо понимать разницу: 
/usr/lib - все либы отсюда видят все проги. Если портировать, т.е. перенести отсюда - увидят только проги, которым указали другой путь к либам (портировали)
/var/lib/pacman/local - без этой инфы pacman считает что пакет не установлен. Он никакие ldd не проверяет
/usr/include (хедеры) - без них не компилится даже если нужные либы в системе . Для базовых (000 001) модулей вынесено в DEVX*.pfs
« Последнее редактирование: 18 Сентябрь 2017, 11:15:56 от sfs »

Оффлайн sasha-gerych

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 705
  • Репутация: +17/-0
  • Автор темы
Re: Pra. Создание портированного модуля.pfs
« Ответ #4 : 18 Сентябрь 2017, 11:21:48 »
PRA-light - вполне можно использовать для сборки - там только портированные модули, которые не помешают
Ее и пользую для сборки.
palemoon-27.4.0_64-sf01.pfs портированный? он меня с толку сбил и еще пару модулей у которых в названии нет **-p*** что как мне казалось должно свидетельствовать о его портированности

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Pra. Создание портированного модуля.pfs
« Ответ #5 : 18 Сентябрь 2017, 11:27:42 »
palemoon-27.4.0_64-sf01.pfs портированный?
Да. -p- нет - исторически сложилось
Почти все браузеры сейчас портированные даже в пакетах

Оффлайн sasha-gerych

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 705
  • Репутация: +17/-0
  • Автор темы
Re: Pra. Создание портированного модуля.pfs
« Ответ #6 : 21 Сентябрь 2017, 16:34:30 »
Может кто объяснит по поводу проверки зависимостей
Чем отличаются команды "dep-find" и "dep-find1"  от команды  "ldd" ? Читал тему "Зависимости" но так и не понял, правильно ли я понял принцип действия первых двух или нет, можете чуть подробней описать?
Мое предположение таково, что первые две команды проверяют зависимости между модулями, а команда "ldd" проверяет зависимые библиотеки.
Но, изначально я подумал что "dep-find1" проверяя содержимое папки с распакованным модулем и выводит подробную информацию и список всех недостающих библиотек.
Еще я так и не понял зачем примонтировать pfs модуль а потом уже проверять папку с распакованным модулем (из Wiki), ведь тогда dep-find1 находит меньше не достающих библиотек, которые возможно находит в usr/lib
Прошу прояснить, или дать наводку где почитать.
Есть еще вопрос по выводу dep-find1.
Код
ldd: предупреждение: у вас нет прав на выполнение `/home/live/Desktop/audacity-2.1.2-3/usr/lib/libnetcdf.settings'
ldd: предупреждение: у вас нет прав на выполнение `/home/live/Desktop/audacity-2.1.2-3/usr/lib/libhdf5.settings'
ldd: предупреждение: у вас нет прав на выполнение `/home/live/Desktop/audacity-2.1.2-3/usr/lib/libdcadec.so.0.1.0'
libQt5Core.so.5 => not found
libQt5Gui.so.5 => not found
libQt5Widgets.so.5 => not found
libgfortran.so.3 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/bin/jack_netsource libcelt0.so.2 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/bin/python2.7 libpython2.7.so.1.0 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/bin/qv4l2 libQt5OpenGL.so.5 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/bin/vwebp libglut.so.3 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/lib/jack/jack_firewire.so libffado.so.2 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/lib/jack/jack_net.so libcelt0.so.2 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/lib/libblas.so.3.6.0 libgfortran.so.3 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/lib/libcblas.so libgfortran.so.3 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/lib/liblapack.so.3.6.0 libgfortran.so.3 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/lib/libva-egl.so.1.3900.0 libEGL.so.1 => not found
/home/live/Desktop/audacity-2.1.2-3/usr/lib/libwx_gtk2u_webview-3.0.so.0.2.0 libwebkitgtk-1.0.so.0 => not found
Так и должно быть? - "предупреждение: у вас нет прав на выполнение"
Почему некоторые ненайденые библиотеки с указанием пути к ней " /usr/bin/jack_netsource    libcelt0.so.2 => not found ", а некоторые нет " libQt5Core.so.5 => not found " ?
Правильно ли я понимаю что: " /home/live/Desktop/audacity-2.1.2-3/usr/bin/python2.7    libpython2.7.so.1.0 => not found "  где " python2.7 " это папка в которой должна быть библиотека   "libpython2.7.so.1.0" , а "/home/live/Desktop/audacity-2.1.2-3/usr/lib/liblapack.so.3.6.0    libgfortran.so.3 => not found " где " liblapack.so.3.6.0 " библиотека которая зависит от библиотеки " libgfortran.so.3 " но которая  not found ?

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Pra. Создание портированного модуля.pfs
« Ответ #7 : 21 Сентябрь 2017, 17:16:04 »
Чем отличаются команды "dep-find" и "dep-find1"  от команды  "ldd" ?
ldd - стандартная системная утилита, показывающая зависимости файла
dep-find* - скрипты пра на основе ldd, выводящие зависимости для всего в папке в удобном виде
dep-find уже c cp выводит - т.е. скопировать и подставить куда копировать
Вот подробнее
dep-find1 - старый медленный  и кривоватый вариант с более подробным выводом. Иногда бывает полезен
ldd: предупреждение: у вас нет прав на выполнение  - значит что у бинарника права не 755 - не критично
Почему некоторые ненайденые библиотеки с указанием пути к ней " /usr/bin/jack_netsource    libcelt0.so.2 => not found ", а некоторые нет " libQt5Core.so.5 => not found " ?
Так распарсил вывод ldd. Кривовато было. Дядя Шурик подсказвл как улучшить - получился dep-find
Не юзайте dep-find1 - там могут быть и ошибки
1я колонка - бинарник ; 2я - недостающая ему либа

Оффлайн sasha-gerych

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 705
  • Репутация: +17/-0
  • Автор темы
Re: Pra. Создание портированного модуля.pfs
« Ответ #8 : 21 Сентябрь 2017, 19:25:54 »
Спасибо за ответ.
А как должен помочь вывод с командой копирования "cp" каой практический смысл если недостающие библиотеки все равно приходится искать и копировать руками?
Код
live@pra64:~$ cp -d libEGL.* libQt5Core.* libQt5Gui.* libQt5OpenGL.* libQt5Widgets.* libcelt0.* libffado.* libgfortran.* libglut.* libpython2.7.* libwebkitgtk-1.0.* /home/live/Desktop/new
cp: не удалось выполнить stat для 'libEGL.*': Нет такого файла или каталога
cp: не удалось выполнить stat для 'libQt5Core.*': Нет такого файла или каталога
cp: не удалось выполнить stat для 'libQt5Gui.*': Нет такого файла или каталога
И как на счет версий библиотек в выводе (я про " * ")
« Последнее редактирование: 21 Сентябрь 2017, 19:28:21 от sasha-gerych1988 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Pra. Создание портированного модуля.pfs
« Ответ #9 : 22 Сентябрь 2017, 08:53:50 »
как должен помочь вывод с командой копирования "cp"
вики
dir1 - папка с рабочим pacman2pfs
dir2 - с pаспакованным одним пакетом (без зависимостей)
Код
depfind dir2
cd dir1/usr/lib && cp lib* ... /путь/dir2/usr/lib
После каждого cp надо повторить depfind dir2 , т.к. зависимостей может прибавиться
После чего проверить и портировать (если возможно)
Код
cd dir2/usr/bin && mkport запускаемый_бинарник
« Последнее редактирование: 22 Сентябрь 2017, 08:55:40 от sfs »

Оффлайн sasha-gerych

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 705
  • Репутация: +17/-0
  • Автор темы
Re: Pra. Создание портированного модуля.pfs
« Ответ #10 : 22 Сентябрь 2017, 11:51:47 »
Загрузил графическим pacman2pfs модуль audacity-2.1.2-3 (работает), загрузил из арч репы пакет audacity-2.1.3-1, распаковал на рабочий стол в отдельные папки
Правильно ли я делаю дальше?
Код
live@pra64:~$ dep-find /home/live/Desktop/audacity-2.1.3-1
cp -d libFLAC++.* libFLAC.* libSoundTouch.* libid3tag.* ..............
======== не хватает 21 библиотек ======
live@pra64:~$ cd /home/live/Desktop/audacity-2.1.2-3/usr/lib && cp -d libFLAC++.* libFLAC.* libSoundTouch.* libid3tag.*......... /home/live/Desktop/audacity-2.1.3-1/usr/lib
live@pra64:~/Desktop/audacity-2.1.2-3/usr/lib$
После снова проверяю но ничего не меняется, по прежнему не хватает 21-й библиотеки:
Код
live@pra64:~$ dep-find /home/live/Desktop/audacity-2.1.3-1
cp -d libFLAC++.* libFLAC.* libSoundTouch.* libid3tag.*.........
======== не хватает 21 библиотек ======
При этом все библиотеки уже перенесены в папку usr/lib/. Прописывать зависимости нужно?

Оффлайн sasha-gerych

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 705
  • Репутация: +17/-0
  • Автор темы
Re: Pra. Создание портированного модуля.pfs
« Ответ #11 : 22 Сентябрь 2017, 12:20:42 »
Из Wiki:
Цитата
Проверяем работостособность .pfs подключением и запуском в терминале
dep-find имя каталога. Получаем список недостающих библиотек.so
Еще я так и не понял зачем примонтировать pfs модуль а потом уже проверять папку с распакованным модулем
Мы проверяем зависимости с обязательно подключенным модулем?
Собрал из того что сделал в предыдущих шагах, монтировал модуль, проверил зависимости, пишет что "======== не хватает 0 библиотек ======"

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Pra. Создание портированного модуля.pfs
« Ответ #12 : 22 Сентябрь 2017, 12:29:05 »
загрузил из арч репы пакет audacity-2.1.3-1
Он уже был загружен pacman2pfs
После снова проверяю но ничего не меняется, по прежнему не хватает 21-й библиотеки:
Так и должно быть. Система видит только то, что в /lib (если ей дополнительно не указать)
Раз после добавления 21 не изменилось - вероятно - ок
Пакуйте, подключайте, запускайте - смотрите вывод консоли
Собрал из того что сделал в предыдущих шагах, монтировал модуль, проверил зависимости, пишет что "======== не хватает 0 библиотек ======"
Значит точно ок
Запускается?
Мы проверяем зависимости с обязательно подключенным модулем?
Можно и так. Подключить- откл недолго. Можно даже не паковать

Оффлайн sasha-gerych

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 705
  • Репутация: +17/-0
  • Автор темы
Re: Pra. Создание портированного модуля.pfs
« Ответ #13 : 22 Сентябрь 2017, 12:56:05 »
Ага, спасибо, теперь в голове по этому моменту ясность
Запускается?
Запускается, работает, только вот ругается на не совместимость версий программы и библиотек, ну это из-за того что библиотеки брал из модуля программы более старой версии. Здесь выход только руками добавлять из arch репы? Или лучше использовать ту версию пакета программы, что предлагает pacman2pfs?
Код
live@pra64:~$ /usr/bin/audacity
12:35:57: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1010,wx containers,compatible with 2.8).
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
Expression 'stream->playback.pcm' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 4611
Expression 'stream->playback.pcm' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 4611
Expression 'stream->playback.pcm' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 4611

(audacity:5657): GVFS-RemoteVolumeMonitor-WARNING **: cannot open directory /usr/share/gvfs/remote-volume-monitors: Произошла ошибка при открытии каталога «/usr/share/gvfs/remote-volume-monitors»: Нет такого файла или каталога
Обязательно ли к исправлению подобного рода ошибок?
Код
(audacity:5657): GVFS-RemoteVolumeMonitor-WARNING **: cannot open directory /usr/share/gvfs/remote-volume-monitors: Произошла ошибка при открытии каталога «/usr/share/gvfs/remote-volume-monitors»: Нет такого файла или каталога
При первой попытке сбора портированного модуля я добавил соответствующий каталог из пакета GVFS в модуль audacity, ошибка пропала
« Последнее редактирование: 22 Сентябрь 2017, 14:58:31 от sasha-gerych1988 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Pra. Создание портированного модуля.pfs
« Ответ #14 : 22 Сентябрь 2017, 13:33:15 »
ругается на не совместимость версий программы и библиотек, ну это из-за того что библиотеки брал из модуля программы более старой версии.
Желательно прогу и либы брать из одного источника
Желательно из своего среза арч-репы
лучше использовать ту версию пакета программы, что предлагает pacman2pfs?
да
cannot open directory /usr/share/gvfs/remote-volume-monitors: - к этой теме отношения не имеет. Попробуйте создать
+за настойчивость