Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Разработка PFS и Initrd => Разработка PFS - Актуальные темы => Тема начата: betcher от 20 Март 2017, 06:33:33

Название: Зависимости
Отправлено: betcher от 20 Март 2017, 06:33:33
Еще несколько скриптов у меня пока не востребованы оказались. Это mountfile, umountfile, pfsfindlibs, pfsdepends. Как вы используете два последних? И можно ли что-то из этого в либу, если конечно они консольно не используются.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 09:05:28
mountfile, umountfile
Используются в гуе подключения из ФМ. Не надо в либу
pfsfindlibs pfsdepends
Ищет недостающие либы в распакованном модуле. Делалось в конце истории пфс вер.0 - возможно не доделано
Актуально для уменьшения размера модуля и т.п. Нужно только разрабам.Проверил - работает, но вроде долго. Юзаю dep-find (c Дядей Шуриком делали) - вроде быстрее.
Это уже к теме зависимостей. Готовы сюда лезть? Если да - расскажу как сейчас в пра и будем думать как лучше
Тогда придется всетаки в менеджер модулей залезть
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 09:12:36
Ищет недостающие либы в распакованном модуле. Делалось в конце истории пфс вер.0 - возможно не доделано
ldd для всех бинарников? Как то не очень к теме pfs-utils, нет? Если dep-find лучше почему он не здесь? :)
По зависимостям расскажите, а там посмотрим. Может ничего и не надо думать может все и так хорошо.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 09:21:56
ldd для всех бинарников? Как то не очень к теме pfs-utils, нет?
Если заморачиваться зависимостями модулей - без него никак.
Если делать модули перепаковкой пакетов - тогда по идее зависимости ПМ разберет
Короче - определяйтесь :
Готовы сюда лезть? Если да - расскажу как сейчас в пра и будем думать как лучше
Если dep-find лучше почему он не здесь?
Потому что тему зависимостей только сейчас поднимаем
Как сейчас в ПРА - он только выдает инфу. Дальше руками
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 09:27:14
Если заморачиваться зависимостями модулей - без него никак.
Если нужен - пусть будет. Лишь бы работал.
Как сейчас в ПРА - он только выдает инфу. Дальше руками
Инфу мне кажется и надо. Где его посмотреть можно?
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 10:13:03
Где его посмотреть можно?
C 1 - старый медленный вариант. Дает больше инфы
dep-find выдает строку сp либы - остается поставить куда и запустить в папке с либами
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 10:16:30
Ок. Вечером посмотрю.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 10:18:59
По зависимостям расскажите, а там посмотрим.
После горячего подкл. модуля запускается start.sh из корня модуля. В нем может быть что угодно + sfs-get-dep зависимый_модуль
Выдается гуй сообщение и предложение подключить через sfs-get (менеджер модулей)
Если модуль подключен при загрузке ОС - start.sh парсится и зависимости отрабатывают (автоподключаются из optional или sfs-get)
Это я уже сам + ander (пропал) доделывали после брошенного PR и отхода Zay. Костыльно, но работает. Не доводил ждал этого момента  ;)
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 10:32:36
А зависимости разве не в /etc/packages...  записаны?
Zay как-то так хотел. Раз я переделал - не работало или неудобно. Давно это было - не помню подробностей
По любому Менедж.Модулей в пфс не было и нет. Без этого зависимостей не получится.
Возможно я специально это "сбоку" прикрутил - оставил на момент переделки как сейчас
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 11:00:39
Предлагаю так
1. Механизм start.sh не ломать. Для совместимости и вообще простой и полезный способ организовать действия после подключения модуля.
2. Зависимости пишем списком в /etc/packages/mount/имяпакета/pfs.depends
3. Pfsload создает список неудовлетворенных зависимостей и кидает в консоль в удобном для грепа формате.
depend: package1
depend: package2
Само разруливание зависимостей уже не его дело.
Нужно только решить подключается ли модуль если зависимости не удовлетворены или нет.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 11:13:30
В итоге мы подошли к необходимости гуй подключалки и в перспективе к ММ. Без этого не вижу смысла лезть дальше. У меня поэтому это и сделано "сбоку". Определяйтесь. Если не лезть - лучше оставить этот функционал в гуй части. В консоле это не надо
2. ломает мне то как сейчас в пра и собственно ничего в замен
3. долго. В пра подключалка-автозапускалка подключенного выдает в гуй ошибку из консоли - нет либы такой-то, но подключает
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 11:18:35
2. Разве наличие еще одного файла может что-то сломать. Тем более в вики об этом файле вроде есть.
3. Долго грепом сравнить два списка?
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 11:33:27
2. не сломает, но без гуя мне нет смысла на pfs.depends переходить. Функционала не добавит. Переделка под стандарт, которого нет
А Вам что даст pfs.depends ? Ну прописали. Подключаете pfsload и что дальше?
3. Я думал там будет ldd
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 11:34:33
Может мы о разном. Я об зависимостях одного модуля от других. Сравнить нужно список зависимостей в модуле и список установленных пакетов. После подключения просто написать о необнаруженных в системе пакетах в консоль.
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 11:36:44
Об ldd должен думать сборшик модуля. При подключении проверять смысла нет. Как мне кажется.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 11:47:08
Об ldd должен думать сборшик модуля. При подключении проверять смысла нет. Как мне кажется.
да. И зависимость прописать руками, как это делается и в пакетах всех дистров
Зависимости модулей должны быть проще и модулей сильно меньше чем пакетов. В пра только крупняк типа ffmpeg qt ...

В пра у модулей свои зависимости и они только от модулей. С арч-пакетами почти нет пересечений
Не надо смешивать зависимости  модулей и пакетов (поэтому я и в доке за это боролся)

У нас разные дистры. В магос - модули это перепакованные пакеты и нельзя пропускать номера в середине, а ненумерных модулей вроде вообще нет
В пра нумерованных мало. Большинство модулей в /opt (портированы)

Т.е магос по сути просто немного модульная Роса. Причем модульности в моем понимании нет
ПРА - "солянка сборная" (http://wiki.puppyrus.org/puppyrus/pra#%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B0_%D0%B8_3_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D1%8B%D0%B5_%D1%87%D0%B0%D1%81%D1%82%D0%B8). Модульность - главная фишка. Арч - только для сборки базы. Остальные модули - максимально независимы. Возможно портированные даже в любом линуксе работают

В итоге это все лирика. Главное - в зависимости нет смысла лезть без ММ. ММ надо тогда тоже дистронезависимый
Сейчас надо определиться - останавливаемся на этом этапе или лезем в гуй
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 11:52:39
Пусть магос перепакованная роса. Но ведь я могу собрать пару модулей так, чтоб один без второго не работал. А при подключении мне об этом не сообщится, а так при подключенит модуля 2 до подключения модуля один я получу в консоль (или в гуи) сообщение:  depends: 1.xzm  и подключу первый.  Разве плохо. С зависимостями ПМ не пересекается никак.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 11:57:40
Пусть магос перепакованная роса.
Я не в упрек. Написал как понял. Юзал мало и давно
могу собрать пару модулей так, чтоб один без второго не работал. А при подключении мне об этом не сообщится,
Ну, не в консоль, же сообщать...
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 12:02:38
Если подключаю в консоли то в консоль, если в гуе то гуй либо обрабатывает этот список и докачивает то что нужно. Если это навороченный гуй. Либо просто выводить список от pfsload в окошко, если гуй - простая подключалка.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 12:49:07
Если подключаю в консоли то в консоль
В консоле - экзотика. Только разрабы. Они и так разберутся
Если в 2 местаx передавать - ресурсозатратно. Передавать из консоли в гуй - лишние заморочки
Мне кажется в консоле не надо запариваться зависимостями
докачивает то что нужно.
чем? :) Тема зависимостей без ММ не имеет смысла
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 13:02:45
В чем проблема передать в гуй. Всегда так и делается.
requires=$(pfsload $modulename |grep depends: |awk '{  print $2}'
Если выхлоп как я описал.
А ММ вещь отдельная. Можно и без него, просто сообщать.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 13:14:19
В чем проблема передать в гуй
В том, что мне придется переделывать свои гуи, что даст проблем на ровном месте без плюсов
Если в гуй коллективно не лезем - в чем для меня смысл?
А для Вас ?
В http://forum.puppyrus.org/index.php?topic=19770.msg130610#msg130610 получается просто задел для непонятно чего
Может сначала разберемся для чего?

Я предлагаю:
а. По функционалу остановиться на том что сейчас
или
б. Делать общий ММ
Все промежуточное - хлопоты без результата
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 13:23:12
Вы можете переписывать гуй по мере поступления неприятностей как говорил Жванецкий. То что pfsload будет в выхлоп добавлять строчки повредить не должно, а потом (при желании) переделаете на списки. Зависимости через скрипт в каждом модуле явно костыль, вы и сами это знаете.
У нас зависимостей меж модулями нет совсем, если их в модули не прописывать то нововведение ни как мешать не будет, зато если понадобится то все готово.
Общий ММ не получится по многим причинам. Смысла мне впрягаться в работу над вашим ГУИ ровно столько же сколько вам над нашим.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 13:45:12
То что pfsload будет в выхлоп добавлять строчки повредить не должно, а потом (при желании) переделаете на списки.
да. OK
Зависимости через скрипт в каждом модуле явно костыль
да
Общий ММ не получится по многим причинам.
Причина может быть только одна - он в магос вообще не нужен - насколько мне известно все модуле уже в архиве дистра
В остальном aufs везде aufs . Подключение уже имеющимися консольными утилитами
Найти и скачать - дистронезависимо
Кроме отсутствия желания не вижу тех. и дистрозависимых проблем
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 13:50:42
Причина может быть только одна - он в магос вообще не нужен
Более того у нас нет как такового репозитория модулей, модули рекомендуется делать из росовского репозитория  утилитами urpm2xzm, rpmdrak2xzm.
Мы с вами даже под MM понимаем сильно разные вещи.
Тогда допиливаем чекер зависимостей и на этом пожалуй что все. Дальше только фиксы. Так?
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 14:00:39
модули рекомендуется делать из росовского репозитория  утилитами urpm2xzm, rpmdrak2xzm.
Если это еще и с сохраненкой в папку юзать - не понятно чем это лучше фул.... Но это уже другая история...
Да - в такой системе ММ не нужен и зависимости и так понятны - все модули с меньшими номерами
Тогда допиливаем чекер зависимостей и на этом пожалуй что все. Дальше только фиксы. Так?
Да. Продуктивно получилось, без особого срача и реально коллективно...Жалко останавливаться  ;)

На счет интернационалицации - не вижу смысла впрягаться до появления нерусскоязычных юзеров
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 14:31:27
не вижу смысла впрягаться до появления нерусскоязычных юзеров
При сборке автоматом создаются. Из выкинутого для уменьшения размера дистра.

З.Ы. Оп. Сорри, я думал вы про наши модули интернационализации. Это единственное что есть в репах. Писал в предыдущем посте, потом стер. Вот на автомате и ответил.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 14:36:40
На счет интернационалицации - не вижу смысла впрягаться до появления нерусскоязычных юзеров
Я это про pfs-util. Не будем смешить людей своим английским  ;)
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 14:50:29
Аглицкий - стандарт.  Я считаю надо оставить только его везде. Там текста очень не много, спросите в форуме, вы же говорили помогал кто-то.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 15:10:07
Я считаю надо оставить только его везде.
Во встроенных хелпах лучше сделать gettext и там без разницы какой язык в пексте проги
Как закончим с вики и тестом pfsload -r - попрошу
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 15:19:34
Так тест проходит.
Название: Re: Зависимости
Отправлено: sfs от 20 Март 2017, 15:51:13
В пра пришлось подправить (https://github.com/pfs-utils/pfs-utils-cli/commit/e960fa386d9e757dbd356c1318aaf1146fdad837). У Вас не сломалось? Это можно в переменную перенести
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 19:11:59
У меня тут аж по три слэша подряд было :). Чуть подкостылил.
Сделал checkdeps, работает быстро, но через временные файлы. Как сравнить два списка из переменных без временных  файлов, да без циклов не соображу что-то.
Название: Re: Зависимости
Отправлено: DdShurick от 20 Март 2017, 20:08:47
Как сравнить два списка из переменных
echo "$var1
$var2" | sort | uniq [-d|-u]
Название: Re: Зависимости
Отправлено: betcher от 20 Март 2017, 20:23:24
Спасибо за наводку, завтра попробую.
Название: Re: Зависимости
Отправлено: sfs от 21 Март 2017, 10:36:06
Чуть подкостылил.
selftest проходит, но с - см. скрин
Название: Re: Зависимости
Отправлено: betcher от 21 Март 2017, 12:18:56
Ожидал, что такое может быть, но у меня не вылезло. Сегодня еще посмотрю, может способ ДШ подойдет, тогда временные файлы не понадобятся.

Р.S. нашел косяк. Должно быть /tmp/pfs_deps, переименовал да не везде :)
Название: Re: Зависимости
Отправлено: sfs от 21 Март 2017, 12:57:19
Должно быть /tmp/pfs_deps, переименовал да не везде :)
В гит не залито?
Название: Re: Зависимости
Отправлено: betcher от 21 Март 2017, 13:03:52
неа, я с телефона пока.
Название: Re: Зависимости
Отправлено: betcher от 21 Март 2017, 18:12:48
Починил.
DdShurick ловите плюс.

Как уже не первый раз случалось новый функционал сам образовался на ровном месте :)
pfs checkdeps /      - вернет неудовлетворенные зависимости по всей системе.
Название: Re: Зависимости
Отправлено: betcher от 22 Март 2017, 19:35:08
Похоже что-то вроде этого достаточно,чтоб выкачивать и подключать зависимости. Типа аналог urpmi apt-get и т.д. Не знаю только как в эту схему зависимости из составных модулей учесть. Стоит велосипедить в этом направлении?
 
requires=$(pfsload $1 |grep "^need:" |awk '{print $2}')
for a in $requires ; do
   wget ftp://server.ru/repository/$a
   $0 $a
done

Название: Re: Зависимости
Отправлено: sfs от 23 Март 2017, 09:05:05
этого достаточно,чтоб выкачивать и подключать зависимости.
Хочется верить, что юзеру не надо это будет делать в консоле  :)
Не знаю только как в эту схему зависимости из составных модулей учесть.
В плане зависимостей составной.пфс надо рассматривать как 1 модуль. В ПРА в модуле один start.sh и там зависимости всего составного модуля. т.е. список файлов составного.пфс у каждого модуля свой, а зависимости одни на всех и прописываются руками
Стоит велосипедить в этом направлении?
Если не лезть в гуй - нет смысла вообще заморачиваться зависимостями.
Я в одиночку сейчас не полезу переделывать свой start.sh - костыль, но работает. Вам , как я понял ММ не нужен
Что и для кого продолжать?
Название: Re: Зависимости
Отправлено: betcher от 23 Март 2017, 09:10:44
Хорошо. Отставим тогда. Просто показалось, что все очень просто сделать вот и спросил.
Селфтест не гоняли? С прописанными зависимостями не проверяли?
Название: Re: Зависимости
Отправлено: sfs от 23 Март 2017, 11:17:38
Хорошо
Скорее жаль ...
Просто показалось, что все очень просто сделать вот и спросил.
В консоле просто, но не нужно. GUI сходу много чего потянет
Селфтест не гоняли?
Сегодняшний гит без улучшений /tmp/deps см. скрин выше
С прописанными зависимостями не проверяли?
Я в одиночку сейчас не полезу переделывать свой start.sh
Название: Re: Зависимости
Отправлено: betcher от 23 Март 2017, 15:48:13
Странно, заливал вроде. Вечером проверю.
Название: Re: Зависимости
Отправлено: betcher от 23 Март 2017, 18:15:54
Вот  checkdeps  с гитхаба
checkdeps () {
# $1 module mount point
list=$(find $1/etc/packages/mount/ -name pfs.depends -exec cat "{}" \; |sort |uniq)
founded=$(echo -e "$list\n$(pfsinfo |sort |uniq)" |sort |uniq -d)
echo -e "$founded\n$list" |sort |uniq -u
}
Тут вообще нет этих временных файлов. Переделано по способу ДШ. Вы ничего не перепутали проверяя?

Название: Re: Зависимости
Отправлено: DdShurick от 23 Март 2017, 19:59:23
по способу ДШ.
Способ: # find /home/dev_modules/BlueZ-5.43_XZM/ -type f -executable -exec ldd {} \; | grep not
libical.so.2 => not found
libicalvcal.so.2 => not found
Название: Re: Зависимости
Отправлено: betcher от 24 Март 2017, 04:05:49
ldd
Не о том речь. Это зависимости между модулей. Как в ПМ. Не библиотеки.