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

Автор Тема: pfsrebuild  (Прочитано 9591 раз)

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

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2438
  • Репутация: +30/-0
    • Беседка магос
Re: pfsrebuild
« Ответ #75 : 07 Май 2020, 14:32:26 »
Загрузил, пересобрал модуль. Даже без изменений в pfsrebuld. Сравнивал unsquashfs -ll для старого и нового модулей. Права как были nobody/live
bookmarkbackups так и остались.
Что нужно сделать чтоб сменились?
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 2965
  • Репутация: +93/-1
  • Автор темы
Re: pfsrebuild
« Ответ #76 : 07 Май 2020, 15:01:08 »
bookmarkbackups так и остались.
Для чистоты эксперимента загрузил prar1912-x86_64-05.iso, результат на скрине.

Может мы что-то разное правим в pfsrebuild? Выложил правленный для сверки.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2438
  • Репутация: +30/-0
    • Беседка магос
Re: pfsrebuild
« Ответ #77 : 07 Май 2020, 15:07:53 »
Последний эксперимент вообще без правок был. Вы сравнивали с правами в системе? У файлов могут меняться права например тем же василиском при его работе. Или папки могут накрываться аналогичными в других модулях. После пфсребилда по задумке файлы и папки должны попадать в модуль в том виде в каком они данный момент в системе. Это касается и прав и пользователя.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2438
  • Репутация: +30/-0
    • Беседка магос
Re: pfsrebuild
« Ответ #78 : 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

http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 2965
  • Репутация: +93/-1
  • Автор темы
Re: pfsrebuild
« Ответ #79 : 07 Май 2020, 15:21:33 »
Делаю pfsrebuild модуля. Он создается в домашней директории. Монтирую модуль и смотрю права на папки.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2438
  • Репутация: +30/-0
    • Беседка магос
Re: pfsrebuild
« Ответ #80 : 07 Май 2020, 15:35:21 »
Нужно сравнивать не старый модуль с новым. А то что в системе в данный момент с новым модулем без его подключения. Если сходится, то pfsrebuild собрал все правильно и проблему надо искать в другом месте. Если отличия есть, то тогда нужно разбираться с pfsrebuild. Вернусь еще к этой теме.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 2965
  • Репутация: +93/-1
  • Автор темы
Re: pfsrebuild
« Ответ #81 : 07 Май 2020, 15:59:13 »
В профиле браузера априори не должно быть владельца root (а значит и в модуле профиля), каким бы способом не сравнивалось.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2438
  • Репутация: +30/-0
    • Беседка магос
Re: pfsrebuild
« Ответ #82 : 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

Сделано слегка иначе, походу дела потерялась возможность пересобрать подмодуль из контейнера. Только целиком.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 2965
  • Репутация: +93/-1
  • Автор темы
Re: pfsrebuild
« Ответ #83 : 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

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2438
  • Репутация: +30/-0
    • Беседка магос
Re: pfsrebuild
« Ответ #84 : 11 Май 2020, 13:14:46 »
Тогда так и оставлю. Но подмодуль пересобрать не получится.
P.S. Залил в бранч pfsget. Проверьте его целиком. Если нормально смержим в мастер. Пока не сильно разошлись.
« Последнее редактирование: 11 Май 2020, 13:22:54 от betcher »
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 2965
  • Репутация: +93/-1
  • Автор темы
Re: pfsrebuild
« Ответ #85 : 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
« Последнее редактирование: 11 Май 2020, 13:28:14 от krasnyh »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2438
  • Репутация: +30/-0
    • Беседка магос
Re: pfsrebuild
« Ответ #86 : 11 Май 2020, 13:32:00 »
Это плохо,
Можно извлечь нужный подмодуль, подключить его и уже после пересобрать. Ну или целиком контейнер пересобирать, должно сработать.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 2965
  • Репутация: +93/-1
  • Автор темы
Re: pfsrebuild
« Ответ #87 : 03 Июнь 2020, 13:21:44 »
Обновлял браузер до 77 версии этим скриптом и с новой версией 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
« Последнее редактирование: 03 Июнь 2020, 13:24:40 от krasnyh »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2438
  • Репутация: +30/-0
    • Беседка магос
Re: pfsrebuild
« Ответ #88 : 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 эти файлы должны попасть в итоговый модуль в таком виде в каком были в начальном, можно додумать ключ для удаления этих файлов. Заранее предположить в каждом конкретном случая как правильно поступить - сложно.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)