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

Автор Тема: pfs-util. Дистронезависимость  (Прочитано 4981 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
pfs-util. Дистронезависимость
« : 28 Январь 2014, 11:11:08 »
Это планируется? если да - мои предложения:
1. В разных системах .sfs имеет разные расширения. Пример. Предлагаю детектить так : file модуль - если squashfs - проверять не .pfs ли (наличием /etc/packages). Далее обрабатывать как pfs или sfs (этот функционал есть)
Если пошла дружба с мagos - с xzm надо решать....
2. losetup busybox
3. Во всех дистрах инфа о файлах пакетов в /var/lib/имя_ПМ. Предлагаю перенести. Хотя бы симлинком
4. GUI вывод сообщений сделан на gtkdialog и без вариантов. В некоторых системах это смотрится топорно. Предлагаю искать в системе notify-send и если есть - выводить через него. Или использовать мой ntf. Там все это детектится или через конфиг
5. Нужен менеджер модулей. Предлагаю свой sfs-get (готов дорабатывать под общие стандарты) или писать новый

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:pfs-util. Дистронезависимость
« Ответ #1 : 28 Январь 2014, 12:33:02 »
1. Вот один из вариантов
Код
#--Check .sfs or .pfs
[ "$(echo $1 | grep \.pfs)" != "" ] && FS='.pfs'
[ "$(echo $1 | grep \.sfs)" != "" ] && FS='.sfs'
[ "$(echo $1 | grep \.xzm)" != "" ] && FS='.xzm'
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:pfs-util. Дистронезависимость
« Ответ #2 : 28 Январь 2014, 12:56:42 »
так не покатит
Зачем детектить xzm - это для pfs-util тот же .sfs
Код
[ "`file "$1" |grep "Squashfs filesystem"`" ] && fs=sfs && [ "`unsquashfs -l "$1" |egrep '^/squashfs-root/etc/packages'`" ] && fs=pfs
[ ! "$fs" ] && ntf -a "$1 не squashfs модуль" && exit
« Последнее редактирование: 28 Январь 2014, 13:00:51 от sfs »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:pfs-util. Дистронезависимость
« Ответ #3 : 28 Январь 2014, 13:31:53 »
Зачем детектить xzm - это для pfs-util тот же .sfs
Тогда как быть с расширением при создании точки монтирования? Может совсем отбросить?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:pfs-util. Дистронезависимость
« Ответ #4 : 28 Январь 2014, 13:44:43 »
Дальше логику скрипта можно не менять. Все кроме pfs обрабатывать как sfs (xzm от sfs только расширением и отличается)
Вроде, где-то имя точки обрабатывается.... Если нет - можно отбросить

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:pfs-util. Дистронезависимость
« Ответ #5 : 28 Январь 2014, 22:57:15 »
Это планируется? если да - мои предложения:
1. В разных системах .sfs имеет разные расширения. Пример. Предлагаю детектить так : file модуль - если squashfs - проверять не .pfs ли (наличием /etc/packages). Далее обрабатывать как pfs или sfs (этот функционал есть)
Если пошла дружба с мagos - с xzm надо решать....
Сейчас примерно так и сделано. Только PFS определяется по расширению (так быстрее).
С XZM вопросов тоже нет - они обрабатываются как и любые SquashFS.


3. Во всех дистрах инфа о файлах пакетов в /var/lib/имя_ПМ.
Где ещё, кроме Арча? Как у МагОС-а с этим?


4. GUI вывод сообщений сделан на gtkdialog и без вариантов. В некоторых системах это смотрится топорно. Предлагаю искать в системе notify-send и если есть - выводить через него. Или использовать мой ntf. Там все это детектится или через конфиг
Логика диалогов достаточно сложна, многие вещи ни на чём кроме Gtkdialog не написать, как мне кажется.
Отдельные сообщения, конечно, можно было бы переделать под конкретную систему. Но чтобы сделать это качественно и не добавить багов нужно много времени, а эта задача далеко не самая актуальная.

В перспективе возможно разделение PFS-utils на основную и GUI части.
Основная часть - консольные скрипты - должна быть одинаковой везде, а GUI можно будет модифицировать под конкретные дистрибутивы со своими особенностями.
К тому же, так будет проще делиться наработками с иностранными разработчиками, т.к. все консольные скрипты PFS-utils на английском.


5. Нужен менеджер модулей. Предлагаю свой sfs-get (готов дорабатывать под общие стандарты) или писать новый
Пока не вижу срочной необходимости делать универсальный менеджер (в PRA - нужен, но PFS-utils не только для PRA).
Предлагаю этот вопрос отложить до отладки механизма совместной работы на GitHub (уже в процессе).

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
Re:pfs-util. Дистронезависимость
« Ответ #6 : 29 Январь 2014, 04:08:02 »
3. Да. У нас в /var/lib/rpm.
Однако в модулях не базовой системы мы удаляем все содержимое пакетной базы. А если необходимо это содержимое, то создаем специальный модуль в который вырезаем только это содержимое.

1. Unsquash делать долго. Если надо заглянуть внутрь, то лучше делать mount.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:pfs-util. Дистронезависимость
« Ответ #7 : 29 Январь 2014, 09:22:28 »
С XZM вопросов тоже нет - они обрабатываются как и любые SquashFS.
Согласен. Перемудрил. Достаточно
Код
[ "`file "$1" |grep "Squashfs filesystem"`" ] && fs=sfs || fs=pfs
Тогда и mount\unsquash не нужен
3. Во всех дистрах инфа о файлах пакетов в /var/lib/имя_ПМ.
Где ещё, кроме Арча?
deb /var/lib/dpkg
Логика диалогов достаточно сложна, многие вещи ни на чём кроме Gtkdialog не написать, как мне кажется.
Вы смотрели последнюю версию ntf?
В перспективе возможно разделение PFS-utils на основную и GUI части.
Там так изначально. И это очень правильно. Опыт дистров LF показал, что вполне можно и нужно делать дистронезависимо.
Дополнительные модули (держать в pfs репе). В PRA планирую изменить способ сборки под это. Все в pkg оказалось неудобно.
Пока не вижу срочной необходимости делать универсальный менеджер (в PRA - нужен, но PFS-utils не только для PRA).
Предлагаю этот вопрос отложить до отладки механизма совместной работы на GitHub (уже в процессе).
Опыт LF показывает, что это необходимо и вчера

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:pfs-util. Дистронезависимость
« Ответ #8 : 29 Январь 2014, 09:24:45 »
Однако в модулях не базовой системы мы удаляем все содержимое пакетной базы. А если необходимо это содержимое, то создаем специальный модуль в который вырезаем только это содержимое.
В арче делаю так же. Даже название придумал- модули невидимки. Про которые ПМ не знает, но они есть
Это подтверждает что методы подхода к фругал одинаковы. Дистронезависимость возможна