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

Разработки проекта PuppyRus => PFS-utils => Разработка PFS и Initrd => Разработка PFS-utils v.3 (устаревшая) => Тема начата: krasnyh от 16 Май 2019, 16:19:11

Название: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 16:19:11
И все-таки не помешало бы настроить pfsrebuild до рабочего состояния.
Ему не хватает для нормальной работы списков файлов в модуле.

Например.
1. Время от времени приходится пересобирать youtube-dl_any-sf02. Это важно, т.к. ютуб часто меняет код, и соответственно часто обновляется youtube-dl.
2. Так же иногда приходится пересобирать и 083-firefox-profile_any.
 Конечно у меня эти модули лежат уже распакованные в своих директориях, остается только поменять начинку и ПКМ по папке - Открыть - Упаковка PFS-пакета.

С pfsrebuild можно было бы через youtube-dl-update скачивать youtube-dl сразу в /usr/local/bin. А потом:
Цитата
pfsrebuild youtube-dl_any-sf02.pfs
Так же  и с профилем браузера:
Цитата
pfsrebuild 083-firefox-profile_any.pfs


upd. Или сделать, чтобы pfsrebuild сам выстроил этот список при первом запуске.
Все же применение pfsrebuild будет полезно для 2-3 модулей и нет необходимости переделывать все модули в PRA под него.
Название: Re: pfsrebuild
Отправлено: sfs от 16 Май 2019, 17:01:40
Не пользуюсь pfsrebuild. Мне удобнее - распаковать - изменить - запаковать
Он сейчас не работает во всез пра?
сделать, чтобы pfsrebuild сам выстроил этот список при первом запуске.
так бы лучше
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 17:12:42
Поясните о каком списке речь. Что-то не пойму.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 17:19:49
Поясните о каком списке речь. Что-то не пойму.
Конечно, может я как-то не так выразил мысль. Скажу проще - pfsrebuild не работает.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 17:24:49
На примере youtube-dl_any-sf02.pfs
Код
live@prar-1811 ../memory/images/youtube-dl_any-sf02.pfs % find .
.
./etc
./home
./home/live
./home/live/.qmplay2
./home/live/.qmplay2/youtube-dl
./start.sh
./usr
./usr/bin
./usr/bin/youtube-dl
./usr/bin/youtube-dl-update
./usr/local
./usr/local/bin
./usr/local/bin/python

Код
% sudo pfsrebuild youtube-dl_any-sf02
/mnt/bundles1/youtube-dl_any-sf02
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on youtube-dl_any-sf02.pfs, block size 524288.


Exportable Squashfs 4.0 filesystem, xz compressed, data block size 524288
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 0.17 Kbytes (0.00 Mbytes)
108.86% of uncompressed filesystem size (0.15 Kbytes)
Inode table size 34 bytes (0.03 Kbytes)
100.00% of uncompressed inode table size (34 bytes)
Directory table size 0 bytes (0.00 Kbytes)
-nan% of uncompressed directory table size (0 bytes)
Number of duplicate files found 0
Number of inodes 1
Number of files 0
Number of fragments 0
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Создался пустой модуль.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 17:26:02
А в  v4 не проверяли? Мало вероятно, что я его нерабочим бросил.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 17:27:44
По ошибкам судя не находит бандл. А он есть?
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 17:34:08
По ошибкам судя не находит бандл. А он есть?
Встречный вопрос, а он когда то был? )
Код
live@prar-1811 /mnt % ls -la 
итого 12
drwxr-xr-x   8 root root  180 мая 16 17:30 .
drwxrwxrwx 159 root root  260 мая 16 13:06 ..
lrwxrwxrwx   1 root root    9 мая 15 20:17 home -> /mnt/sda1
drwxr-xr-x  18 root root  480 мая 15 20:17 live
drwxr-xr-x   6 root root 4096 апр 17 22:07 sda1
drwxr-xr-x   4 root root 4096 фев 25 18:17 sda2
drwxr-xr-x  35 live root 4096 мая 13 19:36 sda3
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:03:22
Это в магос. Правда v4 у нас.
pfsrebuild 88-magos.xzm
/memory/bundles1/88-magos
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on 88-magos.xzm, block size 524288.
[===================================================================================================================================|] 1684/1684 100%

Exportable Squashfs 4.0 filesystem, lzo compressed, data block size 524288
        compressed data, compressed metadata, compressed fragments, compressed xattrs
        duplicates are removed
Filesystem size 9339.46 Kbytes (9.12 Mbytes)
        55.51% of uncompressed filesystem size (16824.70 Kbytes)
Inode table size 26957 bytes (26.33 Kbytes)
        40.36% of uncompressed inode table size (66788 bytes)
Directory table size 24502 bytes (23.93 Kbytes)
        43.21% of uncompressed directory table size (56711 bytes)
Number of duplicate files found 372
Number of inodes 2065
Number of files 1674
Number of fragments 19
Number of symbolic links  44
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 347
Number of ids (unique uids + gids) 7
Number of uids 5
        root (0)
        nx (479)
        betcher (500)
        unknown (10000)
        systemd-network (498)
Number of gids 5
        root (0)
        pdnsd (474)
        betcher (500)
        users (100)
        unknown (498)

Встречный вопрос, а он когда то был?
Префикс для бандлов задается в pfs, если есть файл /etc/initvars, то префикес будет $SYSMNT/bundles
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:10:51
Префикс для бандлов задается в pfs, если есть файл /etc/initvars
Никогда не видел такой файл. Может раньше и был, а сейчас /etc или пустой, или там собственные настройки приложения, или этой директории вообще нет.


upd. Что-то поменялось в нашем 'царстве', причем давно.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:16:52
Если файла /etc/initvars нет, то префикс должен быть
prefixmp="/mnt/."
То есть бандлы должны лежать в /mnt и начинаться с точки. Это ваш стандарт, паппирус. 
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:18:06
Зато во всех PRA есть директория /mnt/live/memory/images
Там папки со всеми вложениями.
Скрин.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:19:20
То есть бандлы должны лежать в /mnt и начинаться с точки. Это ваш стандарт, паппирус
Но их нет.

upd Они есть только при горячем подключении модулей.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:20:29
покажите кусок из выхлопа aufs-n
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:24:26
PRA6408-1904
Скрин.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:33:46
Создайте файл /etc/pfs.cfg и запишите в него строку
prefixmp="/mnt/live/memory/images/"
После попробуйте еще раз pfsrebuild
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:38:46
Создайте файл /etc/pfs.cfg и запишите в него строку
Я могу проверить конечно, но что дальше? Мне сомнительно, что sfs захочет переделывать такое количество модулей?

upd. Или сделать, чтобы pfsrebuild сам выстроил этот список при первом запуске.
Все же применение pfsrebuild будет полезно для 2-3 модулей и нет необходимости переделывать все модули в PRA под него.
    сделать, чтобы pfsrebuild сам выстроил этот список при первом запуске.

так бы лучше
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:40:58
Вы совершенно не о том говорите. Никакие модули переделывать не надо. У вас не правильно работают pfs утилиты потому, что не знают где искать бандлы. Что то поменялось, а утилиты то и не в курсе. Посмотрю позже может в других местах расположение бандлов подругому определяется из aufs-n например.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:56:19
Создайте файл /etc/pfs.cfg и запишите в него строку
Код
% sudo pfsrebuild youtube-dl_any-sf02
/mnt/bundles1/youtube-dl_any-sf02
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on youtube-dl_any-sf02.pfs, block size 524288.
[=============================================================================/] 8/8 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 524288
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 1620.73 Kbytes (1.58 Mbytes)
93.99% of uncompressed filesystem size (1724.42 Kbytes)
Inode table size 278 bytes (0.27 Kbytes)
54.62% of uncompressed inode table size (509 bytes)
Directory table size 238 bytes (0.23 Kbytes)
76.04% of uncompressed directory table size (313 bytes)
Number of duplicate files found 0
Number of inodes 15
Number of files 5
Number of fragments 1
Number of symbolic links  1
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 9
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Сработало
Код
% du youtube-dl_any-sf02
4 youtube-dl_any-sf02/home/live/.qmplay2
8 youtube-dl_any-sf02/home/live
12 youtube-dl_any-sf02/home
8 youtube-dl_any-sf02/etc
8 youtube-dl_any-sf02/usr/local/bin
12 youtube-dl_any-sf02/usr/local
1732 youtube-dl_any-sf02/usr/bin
1748 youtube-dl_any-sf02/usr
1776 youtube-dl_any-sf02

Вы совершенно не о том говорите
Возможно я неправильно выражаюсь по форме проблемы, но я прав по ее духу. :)
Если возникнет необходимость чего-то добавить в модули, то здесь проблема в лице sfs и необходимых трудочасов. :)


upd.
Никакие модули переделывать не надо.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 19:16:32
Возможно я неправильно выражаюсь по форме проблемы, но я прав по ее духу. :)
:)
Если возникнет необходимость чего-то добавить в модули, то здесь проблема в лице sfs и необходимых трудочасов. :)
Добавьте этот /etc/pfs.cfg в сборку. Даже если конкретно для prefixmp позже будет не нужен,  то все равно полезный. Сжатие например задавать можно.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 19:24:40
Сжатие например задавать можно.
Можно узнать все параметры которые можно задать через /etc/pfs.cfg

если найду скрипт , который папку пра со всеми модулями перепакует, то  попробую, а вручную каждый - не эффективно.
С помощью pfsrebuild и /etc/pfs.cfg возможно перепаковать все модули в директории с нужным сжатием?

Или есть какой-то специализированный скрипт?

p.s. Вроде в PRA, что-то есть если не ошибаюсь. Вроде видел, поискал по форуму, ничего не нашел.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 19:36:52
Если возникнет необходимость чего-то добавить в модули, то здесь проблема
Поправка.
Если разовое добавление и не в каждый модуль, то проблемы не будет.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 19:46:46
С помощью pfsrebuild и /etc/pfs.cfg возможно перепаковать все модули в директории с нужным сжатием?
Для этого достаточно mkpfs в цикле запустить. Указывать сжатие в /etc/pfs.cfg имеет смысл если всегда используете "недефолтное" сжатие. К примеру у меня lzo работает быстрее чем дефолтный xz и я использую его.
Вот мой.
PFSDIR=/var/lib/packages
EXT=xzm
. /usr/lib/magos/os-config
. /etc/sysconfig/MagOS
compression="$MKSQFS_OPTS"
compression_fast="$MKSQFS_FASTALG"

Сделано так, чтоб можно было задавать compression_fast и compression из MagOS.ini
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 20:12:50
Для этого достаточно mkpfs в цикле запустить.
Никак не могу сообразить как это будет выглядеть. )
Код
for n in {1..5}; do <КОМАНДА>; done
?
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 20:20:57
Зачем цифры?
for mod in $( ls -1 |grep pfs$) ; do
mkpfs $mod -o new_$mod
done
Типа такого. Это если все в одной папке. Если в разных, то можно с find.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 20:31:13
Да, работает.
ШАМАНЯ интересовался с целью перепаковать модули с легким алгоритмом сжатия
Цитата
mkpfs --help
-f / --fast - быстрая компрессия (размер .pfs больше, но создается быстрее).

Поэтому наверно так?
Цитата
for mod in $( ls |grep pfs$) ; do mkpfs -f $mod -o new_$mod; done
Название: Re: pfsrebuild
Отправлено: k0l0p0k от 16 Май 2019, 20:41:17
 mkpfs --help
..
--mksqfs / параметры для mksquashfs, компрессия размер блока и проч.(Внимание параметр должен быть последним)
можно наверное точнее сжатие подобрать?
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 20:44:22
PFSDIR=/var/lib/packages
EXT=xzm
. /usr/lib/magos/os-config
. /etc/sysconfig/MagOS
compression="$MKSQFS_OPTS"
compression_fast="$MKSQFS_FASTALG"
В принципе здесь вся инфа об этом Терминология и спецификации формата PFS (http://wiki.puppyrus.org/puppyrus/pr218/pfs3#терминология_и_спецификации_формата_pfs)
Название: Re: pfsrebuild
Отправлено: k0l0p0k от 16 Май 2019, 21:07:13
Код
#!/bin/sh
mkdir /tmp/pfs-new
for modul in $( ls -1 /mnt/live/memory/images | egrep '^00') ; do
echo $modul
mkpfs /mnt/live/memory/images/$modul -o /tmp/pfs-new/$modul  --mksqfs -comp lz4
done
потестил на трех  00**.pfs  ( egrep '^00' )
компрессия lz4 , на самом деле быстрая, секунд пять скрипт работал
но модули "распухают" раза в два  :)
Код
sudo ./repackpfs 
mkdir: невозможно создать каталог «/tmp/pfs-new»: Файл существует
000-kernel-4.4.1-pf3.pfs
/mnt/bundles1/000-kernel-4.4.1-pf3.pfs
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /tmp/pfs-new/000-kernel-4.4.1-pf3.pfs, block size 131072.
[===========================================================================================================|] 2450/2450 100%

Exportable Squashfs 4.0 filesystem, lz4 compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 26623.95 Kbytes (26.00 Mbytes)
51.99% of uncompressed filesystem size (51207.13 Kbytes)
Inode table size 37231 bytes (36.36 Kbytes)
41.03% of uncompressed inode table size (90747 bytes)
Directory table size 42442 bytes (41.45 Kbytes)
69.84% of uncompressed directory table size (60772 bytes)
Number of duplicate files found 0
Number of inodes 2814
Number of files 2338
Number of fragments 307
Number of symbolic links  3
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 473
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
001-ddr01-sf17.pfs
/mnt/bundles1/001-ddr01-sf17.pfs
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /tmp/pfs-new/001-ddr01-sf17.pfs, block size 131072.
[=========================================================================================================/] 11245/11245 100%

Exportable Squashfs 4.0 filesystem, lz4 compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 122985.88 Kbytes (120.10 Mbytes)
51.27% of uncompressed filesystem size (239899.77 Kbytes)
Inode table size 217702 bytes (212.60 Kbytes)
42.53% of uncompressed inode table size (511880 bytes)
Directory table size 197517 bytes (192.89 Kbytes)
63.73% of uncompressed directory table size (309952 bytes)
Number of duplicate files found 703
Number of inodes 14362
Number of files 10109
Number of fragments 607
Number of symbolic links  2802
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1451
Number of ids (unique uids + gids) 16
Number of uids 5
root (0)
live (1000)
unknown (1015)
unknown (502)
unknown (1001)
Number of gids 14
root (0)
unknown (513)
shadow (42)
fuse (1000)
users (100)
live (1002)
unknown (11)
tty (5)
messagebus (102)
unknown (502)
utmp (43)
staff (50)
adm (4)
mail (8)
005-nss-ddr01-sf03.pfs
/mnt/bundles1/005-nss-ddr01-sf03.pfs
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /tmp/pfs-new/005-nss-ddr01-sf03.pfs, block size 131072.
[===============================================================================================================/] 72/72 100%

Exportable Squashfs 4.0 filesystem, lz4 compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 3347.65 Kbytes (3.27 Mbytes)
58.99% of uncompressed filesystem size (5675.27 Kbytes)
Inode table size 1100 bytes (1.07 Kbytes)
60.94% of uncompressed inode table size (1805 bytes)
Directory table size 795 bytes (0.78 Kbytes)
67.09% of uncompressed directory table size (1185 bytes)
Number of duplicate files found 1
Number of inodes 50
Number of files 35
Number of fragments 3
Number of symbolic links  1
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 14
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 21:16:35
mkpfs /mnt/live/memory/images/$modul -o /tmp/pfs-new/$modul  --mksqfs -comp lz4

В принципе здесь вся инфа об этом Терминология и спецификации формата PFS
compression_fast - компрессия внутри squashfs при использовании mkpfs -f . По умолчанию lz4 :)

Название: Re: pfsrebuild
Отправлено: k0l0p0k от 16 Май 2019, 21:33:27
compression_fast - компрессия внутри squashfs при использовании mkpfs -f . По умолчанию lz4 :)
конечно можно этот ключик использовать - и скрипт короче.
а
--mksqfs -comp lz4
сделал с целью опробовать параметры дальше mksquashfs передать:
--mksqfs / параметры для mksquashfs, компрессия размер блока и проч.(Внимание параметр должен быть последним)
ну и стопроцентно уверен что нужная компрессия, а то вдруг умолчательные параметры поменяны
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 21:48:40
С pfsrebuild можно было бы через youtube-dl-update скачивать youtube-dl сразу в /usr/local/bin. А потом:

 pfsrebuild youtube-dl_any-sf02.pfs
Создайте файл /etc/pfs.cfg и запишите в него строку
prefixmp="/mnt/live/memory/images/"

Изменил:
Цитата
cat /usr/bin/youtube-dl-update
#!/bin/ash
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/bin/youtube-dl
sudo chmod 755 /usr/bin/youtube-dl

Теперь после youtube-dl-update можно sudo pfsrebuild youtube-dl_any-sf02
Но все равно новый модуль надо вручную класть в нужную директорию с заменой.
Или сразу запускать sudo pfsrebuild youtube-dl_any-sf02 в этой самой директории. Не получается полной автоматики.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 21:59:51
Теперь с pfsrebuild это стало не актуально:
Конечно у меня эти модули лежат уже распакованные в своих директориях, остается только поменять начинку и ПКМ по папке - Открыть - Упаковка PFS-пакета.
Конечно если речь идет о редактировании существующих файлов, а не добавлении новых.

Более того, при редактировании файлов прямо в системе нет необходимости перезапускать модули.
Название: Re: pfsrebuild
Отправлено: betcher от 17 Май 2019, 02:15:47
Компрессию нужно подбирать под железо. В магос для этого специальный скрипт есть - squashtest. 
-f это быстрое сжатие, то есть когда скорость запаковки для вас важнее скорости запаковки. Для модулей lz4 имеет смысл только на очень слабых машинах вроде нетбуков с атомом. На i3 - i5 быстрее будет lzo или gzip. На топовых ничего перепаковывать не надо xz самый быстрый.
Название: Re: pfsrebuild
Отправлено: sfs от 17 Май 2019, 09:27:18
Я правильно понял суть проблемы :
В несоставных модулях мы выкинули список файлов
pfsrebuild с такими модулями не работает, т.к. списка нет
Мне сомнительно, что sfs захочет переделывать такое количество модулей?
Т.к. это актуально только для самообновляющихся (http://forum.puppyrus.org/index.php?topic=21699.msg157185#msg157185) (отдельно от дистра) прог - актуально переделать только их

pfsrebuild работает с составными модулями?
Если да - самое простое переделать самообновляющиеся модули в составные. Браузеры , вроде и так составные

новый модуль надо вручную класть в нужную директорию с заменой.
В теме про инсталлятор ПРА Дядя Шурик дал код, из которого можно выдернуть определение местонахождения подключенного модуля
В конце pfsrebuild можно задать вопрос "заменить?"
Название: Re: pfsrebuild
Отправлено: DdShurick от 17 Май 2019, 09:48:40
суть проблемы
Несоблюдение принятых нами же стандартов.
Название: Re: pfsrebuild
Отправлено: sfs от 17 Май 2019, 09:49:40
В несоставных модулях мы выкинули список файлов
Где такой стандарт
Выкидывал не я - коллегиально
Название: Re: pfsrebuild
Отправлено: DdShurick от 17 Май 2019, 09:54:15
Где такой стандарт
http://forum.puppyrus.org/index.php?topic=17858.0
Выкидывал не я - коллегиально
Я в этом не участвовал!
Название: Re: pfsrebuild
Отправлено: krasnyh от 17 Май 2019, 10:01:54
Если да - самое простое переделать самообновляющиеся модули в составные.
Как я понял, ничего не надо переделывать.
Создайте файл /etc/pfs.cfg и запишите в него строку
prefixmp="/mnt/live/memory/images/
Это обший файл  /etc/pfs.cfg, я его поместил в 090-save

Цитата
    /etc/initvars - переменные заданные initrd ( часть спецификации ULRF )
    /usr/bin/pfs - устанавливаются переменные, учитывающий специфику конкретного дистрибутива»
    /etc/pfs.cfg - устанавливаются переменные, учитывающий специфику дистрибутива или конкретного пользователя
wiki.puppyrus.org/puppyrus/pr218/pfs3#терминология_и_спецификации_формата_pfs (http://wiki.puppyrus.org/puppyrus/pr218/pfs3#терминология_и_спецификации_формата_pfs)
Название: Re: pfsrebuild
Отправлено: betcher от 17 Май 2019, 10:26:38
Я правильно понял суть проблемы :
В несоставных модулях мы выкинули список файлов
pfsrebuild с такими модулями не работает, т.к. списка нет
Не, вообще не так :)
Изначально путь к бандлу определялся как $prefixmp/имя-модуля. Позже сделали иначе, из aufs-n или вроде того, точно не помню надо смотреть. А конкретно в этой утилите осталось постарому.  Будет время переделаю, пока запишите в конфиг или в pfs правильный префикс.
А работу без списков я давно пофиксил.
Название: Re: pfsrebuild
Отправлено: sfs от 17 Май 2019, 11:00:42
Т.е. добавляю в 089 это
    Создайте файл /etc/pfs.cfg и запишите в него строку
    prefixmp="/mnt/live/memory/images/
и ждем это
Будет время переделаю
Название: Re: pfsrebuild
Отправлено: betcher от 17 Май 2019, 11:03:32
Ага, все так.
Название: Re: pfsrebuild
Отправлено: betcher от 19 Май 2019, 06:15:35
Починил вроде. В v4.  В v3 наверное нет смысла переносить, работает же.
Название: Re: pfsrebuild
Отправлено: krasnyh от 19 Май 2019, 15:38:36
Починил вроде. В v4
По поводу pfsrebuild. Я пока не проверял исправленную версию (v4), но у меня есть важное замечание.
Я проверял pfsrebuild, когда он был еще неисправен. При запуске pfsrebuild модуль создавался пустой модуль. В планах скрипт, который бы сразу перезаписывал исходный модуль в /modules или /base, независимо от того в какой директории он запускается. Так удобней и меньше ручного труда.

Так вот, мое предложение, чтобы pfsrebuild отслеживал возможные ошибки и не создавал в таких случаях новый модуль. А то может так оказаться, что у меня в рабочей директории окажется куча модулей с правильным названием, но абсолютно пустые.
Название: Re: pfsrebuild
Отправлено: krasnyh от 19 Май 2019, 15:57:58
Еще, как вариант, можно рассмотреть такой момент.
Например:
1. я кидаю в профиль firefox файл со своими настройками.
/home/live/.mozilla/firefox/pra.default/user.js
По логике после sudo pfsrebuild 083-firefox-profile_any его там не будет.
2. Второй пример. Кладу в /opt/firefox/ файл политик distribution/policies.json
После sudo pfsrebuild firefox-66.0.4- его там тоже не будет.

Мне интересен этот момент ради большей автоматизации действий пользователя (моих действий :)).

Может как-то добавить возможность, чтобы такие папки полностью попадали в новый модуль, даже если их содержимое не указано в /mnt/live/memory/images?

Хотя тут я не настаиваю, это наверно непросто технически, да и может не всем надо.
Название: Re: pfsrebuild
Отправлено: betcher от 19 Май 2019, 20:23:45
Чтоб не создавался пустой сделать можно, хотя если  передать имя подключенного модуля это и не должно случиться.  А вот по поводу добавления файлов/папок надо думать. Тут даже не технически сложно, а как раз с  пользрвательской стороны. Не всегда понятно чего добавлять.
Название: Re: pfsrebuild
Отправлено: sfs от 20 Май 2019, 09:10:58
Починил вроде. В v4.
Работает. Спасибо+
В v3 наверное нет смысла переносить, работает же.
В 3 и проверял. Почему нет смысла? Предлагаю добавить.
скрипт, который бы сразу перезаписывал исходный модуль
Можно переименовывать старый в .old.  В пра есть инструменты чистить такое
А можно это в гуй перенести :
В шапке инфа из вики
Список подключенных модулей (взять код из инсталлятора)
Вопросы : вопросы заменить и т.п.

Может как-то добавить возможность, чтобы такие папки полностью попадали в новый модуль
В этом случае проще пересобрать (распаковка-прравка - запаковка)
Не надо перегружать скрипт
Название: Re: pfsrebuild
Отправлено: betcher от 20 Май 2019, 10:47:53
Нагорячую боюсь не всегда получится. Имею ввиду те модули которые невозможно отключить. Даже если сработает фиг знает где косяк вылезет. Посмотреть список неоключаемых:
 pfs lsblocked
Могу предложить такую схему работы с pfsrebuild в случае если добавляются файлы, и если вы не знаете добавились ли они при обновлении.
- запускаем syschanges в отдельной консоли
- делаем необходимые изменения в системе, обновляем, добавляем файлы и т.д.
- останавливаем syschanges
- pfsrebuild mymodule.xzm -o new.xzm
- mkpfs new.xzm ./syschanges-дата/new -o обновленный-модуль.xzm
Соответственно если в ./syschanges-дата/new пусто, то и мержить не надо.
Идея понятна?
Название: Re: pfsrebuild
Отправлено: krasnyh от 20 Май 2019, 11:20:43
В PRA нет syschanges.


В моем сообщении выше это было высказано в качестве 'сырой идеи', для размышления 'надо-не надо'.
Наверно я соглашусь с sfs, что у pfsrebuild есть своя ниша и не надо его перезагружать.
Название: Re: pfsrebuild
Отправлено: betcher от 20 Май 2019, 11:23:13
Syschanges есть в v4.
Название: Re: pfsrebuild
Отправлено: krasnyh от 20 Май 2019, 11:32:45
Могу предложить такую схему работы с pfsrebuild в случае если добавляются файлы, и если вы не знаете добавились ли они при обновлении.
- запускаем syschanges в отдельной консоли
- делаем необходимые изменения в системе, обновляем, добавляем файлы и т.д.
- останавливаем syschanges
- pfsrebuild mymodule.xzm -o new.xzm
- mkpfs new.xzm ./syschanges-дата/new -o обновленный-модуль.xzm
Но интересно конечно, насколько быстро такой скрипт отработает. И не быстрее ли ручками.
Название: Re: pfsrebuild
Отправлено: krasnyh от 20 Май 2019, 13:05:12
Небольшой вопрос не по теме.
В magos собственные скрипты находятся только в 88-magos.xzm?
Цитата
$ ls
00-kernel.xzm   10-core.xzm    35-x-plasma.xzm     42-x-network.xzm     45-x-java.xzm
01-drivers.xzm  20-x-base.xzm  41-x-utilities.xzm  43-x-multimedia.xzm  88-magos.xzm
Меня это интересует в связи с вопросом удобства обновления системы.


upd. В magos легко и непринужденно обновляют систему каждый месяц. А у нас, чтобы обновить только одну базу семь потов сойдет.
Вот и работает frugal месяцами и годами, пока количество критических ошибок не превысит все нормы.

Может подумать о каком-то компромисе? Создать такой frugal, который можно без проблем обновлять каждый месяц? Пусть и в ущерб размеру, но без этой ручной кропотливой сборки?
Название: Re: pfsrebuild
Отправлено: betcher от 20 Май 2019, 13:07:57
Да все в 88-magos.xm, патчи может и в других местах есть, особо не интересовался, а скрипты все там.
Название: Re: pfsrebuild
Отправлено: krasnyh от 28 Май 2019, 23:06:48
Что-то уменя pfsrebuild (v3) права меняет на root у папок в профиле браузера (почему-то только у этих папок, другие файлы в профиле оставляет live):
Цитата
live@prar-1811 ..zilla/firefox/5jsgis9h.default-release % ls -l |grep drwx
drwx------ 2 root root     81 мая 28 19:28 bookmarkbackups
drwx------ 3 root root     60 мая 28 22:52 crashes
drwxr-xr-x 3 root root     80 мая 28 22:52 datareporting
drwxr-xr-x 2 root root     469 мая 28 22:24 extensions
drwx------ 3 root root      60 мая 28 22:51 gmp
drwxr-xr-x 3 root root      28 мая 28 22:21 gmp-gmpopenh264
drwx------ 2 root root       3 мая 27 17:24 minidumps
drwx------ 2 root root     100 мая 28 22:53 sessionstore-backups
drwxr-xr-x 7 root root      80 мая 28 22:51 storage
drwxr-xr-x 8 root root     120 мая 28 22:51 weave
Команда sudo pfsrebuild 083-firefox-profile_any


    Починил вроде. В v4.

Работает.
У меня pfsrebuild (v4) не работает без pfs.cfg. Брал здесь https://github.com/pfs-utils/pfs-utils-cli/blob/v4/project-files/usr/bin/pfsrebuild
Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 08:16:56
Могло не сработать с контейнером. Вроде починил, но проверяю только магос посмотрите у себя.
По поводу прав пока не понятно. Обычные права все должны сохраняться. Там и для cp и для tar стоят ключи сохраняющие права, добавил на всякий случай еще пару ключей к cp может починится :)
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 10:17:31
У меня pfsrebuild (v4) не работает без pfs.cfg.
Оказывается работал без pfs.cfg, но надо было перезагрузиться. Не знаю с чем это связано. Положил pfsrebuild в rootcopy, перезагрузился - ok.

А насчет прав. Для чистоты эксперимента, пересобрал pra6408-1904 с последним pfsrebuild (779b579). Команда sudo pfsrebuild 083-palemoon-profile-ru-28.4.0_any-sf01, меняет права всех папок на root, но не трогает содержимое.
Название: Re: pfsrebuild
Отправлено: sfs от 30 Май 2019, 10:20:33
С правами уже была проблема - не помню в каком скрипте pfs-util. Вроде , починили - надо там посмотреть
Вроде это (http://forum.puppyrus.org/index.php?topic=19562.msg137006#msg137006)
Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 11:00:42
 Скорее всего ситуация следующаяя. Сверху модуля который вы пересобираете подключен модуль где есть эти папки и они принадлежат другому пользователю. Проверьте права на папки в системе, а не в исходном модуле.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 11:13:15
подключен модуль где есть эти папки и они принадлежат другому пользователю.
Профиль браузера в ~/, там могут быть только права live, какие бы модули там не перекрывали.
Мое мнение - права меняются при работе pfsrebuild. Но возможно дело не в нем
С правами уже была проблема - не помню в каком скрипте pfs-util. Вроде , починили - надо там посмотреть
Вроде это (http://forum.puppyrus.org/index.php?topic=19562.msg137006#msg137006)
Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 11:23:30
Попробуйте с ключем --nopfs, чтоб точно знать кто ломает pfsrebuild или mkpfs. И вот еще эти папки в исходном модуле пустые или нет?
 В магос хомяка в модулях нет и такая ситуация не возможна.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 11:45:30
Папки с содержимым.

С --nopfs создалась папка 083-palemoon-profile-ru-28.4.0_any-sf01 с правами root у всех папок. Все файлы в этих папках с правами live.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 11:53:31
Скорее всего ситуация следующаяя. Сверху модуля который вы пересобираете подключен модуль где есть эти папки и они принадлежат другому пользователю. Проверьте права на папки в системе, а не в исходном модуле.
С pra6408-1904 кажется становится понятно. В 083-palemoon-profile-ru-28.4.0_any-sf01 помимо основного профиля есть еще папка nobody с этим же профилем, но с другими правами.
https://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/083-palemoon-profile-ru-28.4.0_any-sf01.pfs


Или это не причем, пути ведь разные:
Цитата
live@prar-1811 ..ofile-ru-28.4.0_any-sf01.pfs/home/live % sudo ls -la *
'.moonchild productions':
итого 0
drwx------ 3 live root 32 июн 23  2014  .
drwxr-xr-x 4 live root 59 сен 21  2018  ..
drwx------ 3 live root 54 ноя  8  2014 'pale moon'

nobody:
итого 0
drwxr----- 3 nobody root 45 янв 19 10:02  .
drwxr-xr-x 4 live   root 59 сен 21  2018  ..
drwx------ 3 nobody root 32 июн 23  2014 '.moonchild productions'


upd. Перепроверил на другом модуле с ~/, тоже меняются права папок, т.е. nobody ни при чем.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 12:34:58
Оффтоп.
При пересборке pra6408-1904.iso c iso-make-hybrid.sh, он мне сбрасывает у pfsrebuild права на выполнение в rootcopy.
Скрин.

Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 13:03:53
 Если с нопфс косяк не исчез значит он в пфсребилд, елсли папки не пустые, значит косяк с конвейером через tar. Надо смотреть ключи, но вообще это достаточно стандартный способ копирования по списку с сохранением прав. Не я придумал. Странно короче, надо думать.
Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 14:53:43
А права в системе и в исходном модуле не сравнивали? Может в системе все же меняются.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 15:19:49
А права в системе и в исходном модуле не сравнивали?
Скрины.
Название: Re: pfsrebuild
Отправлено: betcher от 01 Июнь 2019, 20:38:51
Косяк проявляется и в магос.  Tar по непонятной причине меняет пользователя на папки при этом сохраняя на файлы. Чет не гуглится как лечить.
Есть вариант заменить на цикл с cp -a --parent, но это однозначно приведет к тормозам. Возможно весьма существенным. Вкраце задача такая. Копировать файлы из системы в папку по списку из файла. С сохранением прав и путей.
Пока ничего менять не буду. Давайте думать.
https://github.com/pfs-utils/pfs-utils-cli/blob/v4/project-files/usr/bin/pfsrebuild
строка 50
Название: Re: pfsrebuild
Отправлено: krasnyh от 01 Июнь 2019, 22:09:29
Если в pfsrebuild закавычить allow_only_root (17 строка), то создается папка build_083-firefox-profile_any-kr7 с правильными правами. Может натолкнет на решение?
Код
$ pfsrebuild 083-firefox-profile_any-kr7                      
Only root can run /usr/local/bin/mkpfs

can't create module
Код
live@prar-1811 ..zilla/firefox/5jsgis9h.default-release % ls -l |grep dr
drwxr-xr-x 2 live live      80 июн  1 22:00 bookmarkbackups
drwx------ 3 live live      80 июн  1 20:58 crashes
drwxr-xr-x 3 live live     100 июн  1 22:00 datareporting
drwxr-xr-x 2 live live     240 июн  1 22:00 extensions
drwx------ 2 live live      40 июн  1 20:58 gmp
drwxr-xr-x 3 live live      60 июн  1 22:00 gmp-gmpopenh264
drwx------ 2 live live      40 мая 27 17:24 minidumps
drwxr-xr-x 5 live live     100 июн  1 20:58 storage
drwxr-xr-x 6 live live     140 июн  1 22:00 weave


Хотя это очевидно, что без sudo там нечему менять пользователя у папок. :)
Название: Re: pfsrebuild
Отправлено: krasnyh от 07 Апрель 2020, 12:05:32
Косяк проявляется и в магос.  Tar по непонятной причине меняет пользователя на папки при этом сохраняя на файлы. Чет не гуглится как лечить.
Есть вариант заменить на цикл с cp -a --parent, но это однозначно приведет к тормозам. Возможно весьма существенным.
Подвижки есть или заброшено?


Я делал на днях модуль для пазла и по привычке создавал директории mkdir -p. В результате ушли права у папки /var/lib/private и получил не запуск пазла при тесте.
Далее уже работал с cp -a --parent, успешно.

А mc умеет создавать директории или копировать с директориями? То что атрибуты умеет сохранять, я в курсе.
Название: Re: pfsrebuild
Отправлено: betcher от 07 Апрель 2020, 14:50:41
Не возвращался к этому вопросу.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Апрель 2020, 15:18:22
Там tar чудит, а tar я чинить не умею, а значит все переписывать
Знаю, что sfs проверяет свои скрипты командой sh -vx (http://forum.puppyrus.org/index.php?topic=21970.msg160732#msg160732).
На просторах инета нашел https://www.shellcheck.net/ (git (https://github.com/koalaman/shellcheck)), для таких же целей (имхо). Полезная штука или нет, не мне судить. :)
Скрин.


p.s. Понятно, что к теме багов pfsrebuild, и tar в частности, это не имеет отношения, но не знал куда еще приткнуть эту информацию.
Но именно pfsrebuild первым прогнал через этот сервис и скрин о нем.
Название: Re: pfsrebuild
Отправлено: betcher от 07 Май 2020, 13:22:17
Krasnyh, просьба к Вам. Попробуйте заменить в скрипте pfsrebuild строку 55
tar -c -p --ignore-failed-read --no-recursion -T $fileslist  2>/dev/null | tar -x -p -C ${buildir}

на такую
cpio -pd ${buildir} < "$fileslist"

И проверить то что у вас работало некорректо с правами.
Название: Re: pfsrebuild
Отправлено: krasnyh от 07 Май 2020, 13:50:33
Думаю не только у меня, а у всех. Желающие могут проверить на модуле профиля браузера 083-firefox-profile_any или 083-palemoon-profile. Проверочная команда sudo pfsrebuild модуль_профиля.


cpio -pd ${buildir} < "$fileslist"
Тоже самое:
Цитата
..zilla/firefox/5jsgis9h.default-release % ll |grep root
drwxr-xr-x 2 root root     147 мая  7 13:40 bookmarkbackups
drwxr-xr-x 3 root root      75 мая  7 13:40 datareporting
drwxr-xr-x 3 root root      30 мая  7 13:40 gmp-gmpopenh264
drwxr-xr-x 2 root root      47 мая  7 13:40 mediacapabilities
drwxr-xr-x 2 root root      36 мая  7 13:40 security_state
drwxr-xr-x 5 root root     112 мая  7 13:40 weave
Название: Re: pfsrebuild
Отправлено: betcher от 07 Май 2020, 13:53:28
Дело в том, что я то тоже проверил. Сменил пользователя на файл в 88-magos.xzm. Файл попал в changes и после пересборки модуля права сохранились.
Опишите как словить косяк.

Файл в изначальном модуле.
rosa scripts # unsquashfs -ll /memory/layer-base/0/base/88-magos.xzm | grep usr/lib/magos/scripts/share.ftp
-rwxr-xr-x root/root              1024 2015-12-28 14:34 squashfs-root/usr/lib/magos/scripts/share.ftp

Файл в системе со смененным владельцем
rosa scripts # ls -la /usr/lib/magos/scripts/share.ftp
-rwxr-xr-x 1 betcher betcher 1024 дек 28  2015 /usr/lib/magos/scripts/share.ftp*

Файл в пересобранном модуле
rosa scripts # unsquashfs -ll ./88-magos.xzm | grep usr/lib/magos/scripts/share.ftp
-rwxr-xr-x betcher/betcher        1024 2020-05-07 13:57 squashfs-root/usr/lib/magos/scripts/share.ftp
Название: Re: pfsrebuild
Отправлено: krasnyh от 07 Май 2020, 14:10:43
Опишите как словить косяк.
Проще наверно проверять в prar1912-x86_64-05.iso, раз уже есть навыки его использования. Может в PRA есть отличия от MagOS.

Запустить prar1912. В /modules есть профиль basilisk, sudo pfsrebuild 083-basilisk-gtk3-profile_any-sf06.pfs.
Название: Re: pfsrebuild
Отправлено: betcher от 07 Май 2020, 14:32:26
Загрузил, пересобрал модуль. Даже без изменений в pfsrebuld. Сравнивал unsquashfs -ll для старого и нового модулей. Права как были nobody/live
bookmarkbackups так и остались.
Что нужно сделать чтоб сменились?
Название: Re: pfsrebuild
Отправлено: krasnyh от 07 Май 2020, 15:01:08
bookmarkbackups так и остались.
Для чистоты эксперимента загрузил prar1912-x86_64-05.iso, результат на скрине.

Может мы что-то разное правим в pfsrebuild? Выложил правленный для сверки.
Название: Re: pfsrebuild
Отправлено: betcher от 07 Май 2020, 15:07:53
Последний эксперимент вообще без правок был. Вы сравнивали с правами в системе? У файлов могут меняться права например тем же василиском при его работе. Или папки могут накрываться аналогичными в других модулях. После пфсребилда по задумке файлы и папки должны попадать в модуль в том виде в каком они данный момент в системе. Это касается и прав и пользователя.
Название: Re: pfsrebuild
Отправлено: betcher от 07 Май 2020, 15:21:20
А вот и пример:
# ls -la /home/live |grep nobody
drwxr-xr-x  9 nobody nobody  220 мая  7 14:32 nobody

# ls -la /memory/changes/home/live |grep nobody
drwxr-xr-x 8 nobody nobody 220 мая  7 14:32 nobody

# ls -la ./083-basilisk-gtk3-profile_any-sf06.pfs/home/live |grep nobody
drwxr-xr-x 3 nobody root 45 сен 28  2019 nobody

Название: Re: pfsrebuild
Отправлено: krasnyh от 07 Май 2020, 15:21:33
Делаю pfsrebuild модуля. Он создается в домашней директории. Монтирую модуль и смотрю права на папки.
Название: Re: pfsrebuild
Отправлено: betcher от 07 Май 2020, 15:35:21
Нужно сравнивать не старый модуль с новым. А то что в системе в данный момент с новым модулем без его подключения. Если сходится, то pfsrebuild собрал все правильно и проблему надо искать в другом месте. Если отличия есть, то тогда нужно разбираться с pfsrebuild. Вернусь еще к этой теме.
Название: Re: pfsrebuild
Отправлено: krasnyh от 07 Май 2020, 15:59:13
В профиле браузера априори не должно быть владельца root (а значит и в модуле профиля), каким бы способом не сравнивалось.
Название: Re: pfsrebuild
Отправлено: betcher от 11 Май 2020, 13:07:05
Попробуйте такой:
Код
#!/bin/sh
#rebuild loaded or installed pfs
#VERSION 4.2

if [ -f $(dirname $0)/pfs ] ;  then
    . $(dirname $0)/pfs
else
    . $(which pfs) || exit 13
fi   

#help
HLP(){
echo "Usage: $(basename "$0") <PACKAGE> <args for mkpfs>"
exit 1
}

case "$1" in
    "" | -h | --help)  HLP ;;
    "-"*[A-Za-z]*) echo "$(basename "$0"): invalid option -- $1" ; HLP ;;
esac

allow_only_root
package_name=$(basename ${1%.$EXT})
bundle=$(aufs-n --hidetop --raw '$bundle' |grep "$package_name" |tail -n1)
shift

fileslist="${PFSDIR}/install/${package_name}/pfs.files"
[ -f $fileslist ] || fileslist="${PFSDIR}/mount/${package_name}/pfs.files"

if [ -n "${bundle}" -o -f ${fileslist} ] ; then
  buildir="./build_${package_name}/${package_name}"
  mkdir -p "$buildir"
  [ -f ${fileslist} ]  ||  mklist ${bundle} / ${package_name}
  cp -fax ${bundle}/* "${buildir}/"
  cpio -pud ${buildir} < "$fileslist"
  # --nopfs parameter - make build dir and exit
  if echo "$@" | grep -q "\-nopfs" ; then
rm -rf ./${package_name} && mv -f ${buildir} ./
  else
mkpfs  ${buildir} -o ${package_name}.$EXT $@
exitmsg "can't create module" $?
  fi
  rm -rf ./build_${package_name}
else
  echo "Package \"$package_name\" is not installed!" >&2; #exit 1
fi
exit 0

Сделано слегка иначе, походу дела потерялась возможность пересобрать подмодуль из контейнера. Только целиком.
Название: Re: pfsrebuild
Отправлено: krasnyh от 11 Май 2020, 13:12:37
Результат положительный:
Код
 ..zilla/firefox/5jsgis9h.default-release % ll |grep dr
drwx------ 2 live live    1005 апр  7 15:11 bookmarkbackups
drwx------ 5 live live     140 мар  8 13:08 browser-extension-data
drwx------ 3 live live      54 мая 11 13:09 crashes
drwxr-xr-x 3 live live      75 мая 11 13:09 datareporting
drwxr-xr-x 3 live live     564 мая 11 13:09 extensions
drwx------ 2 live live       3 ноя 22 21:22 features
drwx------ 2 live live       3 авг 21  2019 gmp
drwxr-xr-x 3 live live      30 ноя 25 12:58 gmp-gmpopenh264
drwx------ 2 live live      47 мая 11 13:09 mediacapabilities
drwx------ 2 live live       3 мая 27  2019 minidumps
drwxr-xr-x 2 live live      36 мая 11 13:09 security_state
drwx------ 2 live live       3 апр  7 22:19 sessionstore-backups
drwxr-xr-x 5 live live      64 дек 14 04:42 storage
drwxr-xr-x 6 live live     124 мая 11 13:09 weave
Название: Re: pfsrebuild
Отправлено: betcher от 11 Май 2020, 13:14:46
Тогда так и оставлю. Но подмодуль пересобрать не получится.
P.S. Залил в бранч pfsget. Проверьте его целиком. Если нормально смержим в мастер. Пока не сильно разошлись.
Название: Re: pfsrebuild
Отправлено: krasnyh от 11 Май 2020, 13:24:00
Но подмодуль пересобрать не получится.
Это плохо, многие модули составные. Как пример, basilisk-gtk3-p-2020.03.11_64-au01.pfs из PRA-roll-1912-5:
Код
% sudo pfsinfo basilisk-gtk3-p-2020.03.11_64-au01.pfs
basilisk
hunspell-ru
libffmpeg
sfs-get-dep-gtk3
z-ff
Название: Re: pfsrebuild
Отправлено: betcher от 11 Май 2020, 13:32:00
Это плохо,
Можно извлечь нужный подмодуль, подключить его и уже после пересобрать. Ну или целиком контейнер пересобирать, должно сработать.
Название: Re: pfsrebuild
Отправлено: krasnyh от 03 Июнь 2020, 13:21:44
Обновлял браузер до 77 версии этим (http://forum.puppyrus.org/index.php?topic=22417.msg169063#msg169063) скриптом и с новой версией pfsrebuild. Пересобрало и подмодули успешно:
Код
$ pfsinfo firefox-bin-gtk3-p-77.0.0_64-kr01.pfs
apulse-0.1.10-1-x86_64
firefox-bin-ru
firefox-pra-bin-2018.06-09-x86_64
Сам pfsrebuild выдает некие ошибки (cpio:....), но все работает:
Цитата
% sudo sh ./firefox-up.sh                                            :(
--2020-06-03 12:58:42--  https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=ru
Загружен сертификат CA «/etc/ssl/certs/ca-certificates.crt»
Распознаётся download.mozilla.org (download.mozilla.org)… 34.234.123.70, 54.209.104.15, 18.232.192.77
Подключение к download.mozilla.org (download.mozilla.org)|34.234.123.70|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 302 Found
Адрес: https://download-installer.cdn.mozilla.net/pub/firefox/releases/77.0/linux-x86_64/ru/firefox-77.0.tar.bz2 [переход]
--2020-06-03 12:58:43--  https://download-installer.cdn.mozilla.net/pub/firefox/releases/77.0/linux-x86_64/ru/firefox-77.0.tar.bz2
Распознаётся download-installer.cdn.mozilla.net (download-installer.cdn.mozilla.net)… 13.33.246.54, 2600:9000:2118:b800:e:19d6:1546:5981, 2600:9000:2118:7200:e:19d6:1546:5981, ...
Подключение к download-installer.cdn.mozilla.net (download-installer.cdn.mozilla.net)|13.33.246.54|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 69918522 (67M) [application/x-tar]
Сохранение в: «/tmp/firefox-update.tar.bz2»

/tmp/firefox-update.ta 100%[==========================>]  66,68M  2,54MB/s    за 27s     

2020-06-03 12:59:10 (2,47 MB/s) - «/tmp/firefox-update.tar.bz2» сохранён [69918522/69918522]

cpio: /opt/firefox/browser/blocklist.xml: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/browser/chrome.manifest: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/chrome.manifest: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/libfreeblpriv3.chk: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/libnssdbm3.chk: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/libnssdbm3.so: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/libsoftokn3.chk: не удаётся stat: Нет такого файла или каталога

415831 блок
/mnt/bundles1/firefox-bin-gtk3-p-75.0.0_64-kr02
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on firefox-bin-gtk3-p-75.0.0_64-kr02.pfs, block size 524288.
[=========================================================================/] 480/480 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 524288
   compressed data, compressed metadata, compressed fragments,
   compressed xattrs, compressed ids
   duplicates are removed
Filesystem size 59858.49 Kbytes (58.46 Mbytes)
   28.71% of uncompressed filesystem size (208502.65 Kbytes)
Inode table size 2138 bytes (2.09 Kbytes)
   37.71% of uncompressed inode table size (5670 bytes)
Directory table size 1430 bytes (1.40 Kbytes)
   48.96% of uncompressed directory table size (2921 bytes)
Number of duplicate files found 9
Number of inodes 126
Number of files 94
Number of fragments 10
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 32
Number of ids (unique uids + gids) 1
Number of uids 1
   root (0)
Number of gids 1
   root (0)
sudo sh ./firefox-up.sh  162,29s user 14,22s system 171% cpu 1:43,01 total


p.s. Релиз браузера Firefox 77 (https://www.opennet.ru/opennews/art.shtml?num=53072)
Название: Re: pfsrebuild
Отправлено: betcher от 04 Июнь 2020, 13:29:32
cpio: /opt/firefox/browser/blocklist.xml: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/browser/chrome.manifest: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/chrome.manifest: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/libfreeblpriv3.chk: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/libnssdbm3.chk: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/libnssdbm3.so: не удаётся stat: Нет такого файла или каталога
cpio: /opt/firefox/libsoftokn3.chk: не удаётся stat: Нет такого файла или каталога

Предполагаю что это файлы, которые есть в исходном модуле, но которые  удаляются при первом старте программы, или были удалены при обновлении. Cpio копирует по списку файлов исходного модуля и не находит файлов в системе. Думаю дело  в этом. В каких-то случаях это может быть критичным, но вычислять это вряд ли получится. По идее с последними правками в pfsrebuild эти файлы должны попасть в итоговый модуль в таком виде в каком были в начальном, можно додумать ключ для удаления этих файлов. Заранее предположить в каждом конкретном случая как правильно поступить - сложно.
Название: Re: pfsrebuild
Отправлено: sfs от 16 Ноябрь 2020, 17:45:25
https://wiki.puppyrus.org/puppyrus/pr218/pfs4#pfsrebuild про проблему с правами в вики удалить?
Проверил на свежем из гит - норм
Название: Re: pfsrebuild
Отправлено: krasnyh от 17 Ноябрь 2020, 16:50:22
Можно и удалить. Но меня слегка нервирует ответ разработчика выше :):
В каких-то случаях это может быть критичным, но вычислять это вряд ли получится.
Название: Re: pfsrebuild
Отправлено: sfs от 18 Ноябрь 2020, 09:07:52
Пока зачеркнул
Название: Re: pfsrebuild
Отправлено: krasnyh от 15 Июнь 2021, 19:55:24
Модуль youtube-dl-2021.05.16_any-au01.pfs в LFD-21.05 (https://forum.puppyrus.org/index.php?topic=22139.msg177600#msg177600). При загрузке системы автостартует /etc/xdg/autostart/youtube-dl-update.desktop

Код
live@lfd10 $ cat youtube-dl-update
#!/bin/ash   
#201222 sfs   
#sudo wget --no-check-certificate  https://yt-dl.org/downloads/latest/youtube-dl -O youtube-dl
#sudo chmod 755 youtube-dl   
inet-test 5 || exit 1   
which youtube-dl || exit 1   
head -1 `which youtube-dl` |grep python || exit 1   
   
sudo youtube-dl -U |grep "youtube-dl is up-to-date" && exit   
sudo sed -i  's#!/usr/bin/env python$#!/usr/bin/env python2#' `which youtube-dl`   
   
p="`losetup  |awk '/youtube-dl/ {print $6}'`"   
sudo mv "$p" "$p.old"   
v="`youtube-dl --version`"   
p1="`dirname "$p"`/youtube-dl-${v}_any-au01.pfs"   
sudo pfsrebuild "$p" -o "$p1"   
[ -f "$p1" ] && ntf -i "`basename "$p"`" "обновлен до v.$v" || ntf -a "Проблемы с обновлением" "$p "



live@lfd10 ..on2+youtube-dl-2021.05.16_any-au01.pfs $ find .
.
./etc
./etc/xdg
./etc/xdg/autostart
./etc/xdg/autostart/youtube-dl-update.desktop
./start.sh
./usr
./usr/bin
./usr/bin/youtube-dl
./usr/share
./usr/share/pixmaps
./usr/share/pixmaps/youtube-icon.svg
./var
./var/lib
./var/lib/pacman
./var/lib/pacman/local
./var/lib/pacman/local/youtube-dl-www-2020.11.12-1
./var/lib/pacman/local/youtube-dl-www-2020.11.12-1/desc
./var/lib/pacman/local/youtube-dl-www-2020.11.12-1/files

Проверял данное iso, переходя по всем DE и обновляя модули, и не мог понять, почему youtube-dl требует модуль 035-gtk2 на DE с gtk3. Хотя у него в зависимостях только python2/python.
Оказывается он пересобрался с pfsrebuild и подхватил чужой start.sh с записью "sfs-get-dep 035-gtk2", где-то потеряв родной start.sh с "sfs-get-dep python2".


Причем, в репах лежит правильный крайний youtube-dl-2021.06.06_any-au01.pfs (https://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/youtube-dl-2021.06.06_any-au01.pfs).
Название: Re: pfsrebuild
Отправлено: krasnyh от 15 Июнь 2021, 23:18:31
Думаю, здесь не вина pfsrebuild. Скрипт start.sh находится в корне модуля и настроен на срабатывание при горячем подключении.
При обычной же загрузке системы, если эти start.sh присутствуют в нескольких модулях, они перекрывают друг друга. И здесь все будет зависеть от удачи, чей именно start.sh попадет в итоговый модуль, при запуске pfsrebuild.

Так что или править youtube-dl-update, чтобы проверялась запись sfs-get-dep python2 перед окончательной сборкой. Или переносить start.sh в какую-то именную папку для каждого модуля.


Ну, или не знаю, добавить в pfsrebuild ключик, где можно перечислить файлы, которые никогда не меняются, т.е. берутся как есть из bundles.
Название: Re: pfsrebuild
Отправлено: sfs от 16 Июнь 2021, 09:57:48
править youtube-dl-update, чтобы проверялась запись sfs-get-dep python2 перед окончательной сборкой.
Для данного случая самое простое (но самое костыльное) добавить перед pfsrebuild
Код
sudo echo "sfs-get-dep python2" >/start.sh
У меня больше нигде pfsrebuild не используется. Поэтому эту хорошую идею
переносить start.sh в какую-то именную папку для каждого модуля.
использовать не хочется - придется по всем скриптам искать start.sh.
Кстати start.sh не входит в pfs-util. Это наследие PR
Название: Re: pfsrebuild
Отправлено: betcher от 16 Июнь 2021, 20:42:40
 Мне кажется, что сама логика start.sh не очень удачна. Можно подумать как сделать автостарт скрипта  после подключения модуля для pfs-utils.
В магос такое тоже есть, но слишком магос-специфично и не знаю используется ли сейчас где-то. Идея там такая,  скрипты для автостарта кладутся в папку из которой они будут запущены.при старте системы тоже. То есть если в модуле есть такой скрипт, он будет запущен как при подключении модуля так и при старте системы с таким модулем.
Название: Re: pfsrebuild
Отправлено: sfs от 17 Июнь 2021, 10:19:29
скрипты для автостарта кладутся в папку из которой они будут запущены.при старте системы тоже
У нас в этих скриптах в основном - подключение зависимых модулей. При старте системы это тоже проверяется парсингом этих же start.sh
Переделывать все модули со start.sh из-за единственной решенной проблемы выше - не вижу смысла
Уж если заморачиваться этим - только вместе с включением GUI компонентов в состав pfs-util. Оттуда, в основном подобные скрипты и запускаются) Менеджера модулей в первую очередь. В теме pfs-get мы к согласию не пришли. Без этого что-то делать каждому свое - смысла нет.