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

Автор Тема: Багтрекер PFS-utils  (Прочитано 48834 раз)

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

Оффлайн Roader

  • Ветеран
  • *****
  • Сообщений: 574
  • Репутация: +20/-0
Re:Багтрекер PFS-utils
« Ответ #30 : 16 Сентябрь 2015, 20:04:00 »
http://forum.puppyrus.org/index.php/topic,17331.msg107264.html#msg107264
Насчет бага при распаковке через GUI подтверждаю. Началось уже давненько (не с последнего релиза). Скриншоты и итоги :( Сборка PRA 15-08 middle. Загрузка RAM. Через mc и консоль - вопросов нет.
« Последнее редактирование: 16 Сентябрь 2015, 20:08:03 от Roader »

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
  • Автор темы
Re:Багтрекер PFS-utils
« Ответ #31 : 21 Сентябрь 2015, 08:21:24 »
Вообще-то это не баг.
Если PFS собран криво, то кроме файлов пакета там могут быть другие файлы, которых в перепакованном PFS быть не должно.
См. опцию --clean в pfsmerge (делает то же самое - очищает файл PFS от "мусора").

хорошо бы это детектить и выдавать ошибку
Можно, по идее, сделать предупреждение, что пакет внутри всего один, но не запрещать действие совсем.

Roader, что касается кнопки "Распаковать", то на первом скриншоте - GUI, специфичный для PRA, в PFS-utils такого нет.

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33955
  • Репутация: +231/-0
    • PuppyRus-A
Re:Багтрекер PFS-utils
« Ответ #32 : 21 Сентябрь 2015, 12:03:54 »
Это скорее не баг,  а плохая обработка ошибок. Кстати в pfsextract даже не было проверки на то, что файл - сквош
Про скрины от Roader - mnt_sfs неправильно детектил составной модуль
Везде все поправил
Залил автоапдейт 089 для pra1509test2.iso
« Последнее редактирование: 21 Сентябрь 2015, 13:04:36 от sfs »

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33955
  • Репутация: +231/-0
    • PuppyRus-A
Re:Багтрекер PFS-utils
« Ответ #33 : 28 Сентябрь 2015, 11:58:56 »
sfs, с недавнего времени появился баг в меню "Распаковка составного PFS-пакета"
Код
Модуль состоит из одного модуля (не составной). Распаковать?
Ещё какой составной!.. Из консоли
Код
extractor_pfs Модуль.pfs
нормально. Пока вернул старый.
Пофиксил. Спасибо и +
« Последнее редактирование: 28 Сентябрь 2015, 13:13:36 от sfs »

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Багтрекер PFS-utils
« Ответ #34 : 02 Октябрь 2015, 06:45:49 »
в pfsunload при указании ошибочного файла выводится сообщение со знаком \n на конце.
Предлагаю \n убрать.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33955
  • Репутация: +231/-0
    • PuppyRus-A
Re:Багтрекер PFS-utils
« Ответ #35 : 02 Октябрь 2015, 09:20:43 »
Убрал

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
  • Автор темы
Re:Багтрекер PFS-utils
« Ответ #36 : 05 Октябрь 2015, 10:33:56 »

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33955
  • Репутация: +231/-0
    • PuppyRus-A
Re:Багтрекер PFS-utils
« Ответ #37 : 05 Октябрь 2015, 10:56:08 »
Код
root@pra:bin# diff /mnt/home/af-pr/rootcopy/usr/local/bin/1/pfsunload pfsunload
5c5
<
---[quote] #151002 sfs[/quote]
64c64
<   echo "Object \"${fsname}\" not mounted.\n$m" && exit 1 ###sfs
---[quote]   echo "Object \"${fsname}\" not mounted. $m" && exit 1 ###sfs

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re:Багтрекер PFS-utils
« Ответ #38 : 18 Октябрь 2015, 00:50:22 »
Разбирался тут, почему в сохраненку pfs попадает /etc/mtab, который вроде никто не трогал, нашел пару мелких глюков.
fileinpack mtab
выдал ругань "sed: -e выражение #3, символ 23: неизвестный модификатор к `s'"
и название несуществующего пакета z-001-pra03g-ns
В этом третьем выражении -e двоеточия в s пересекаются с двоеточием в названии x86-video-ati-1:7.5.0
лучше эти двоеточия поменять на s/.../.../, так нормально работает.
А принадлежность файлов пакетам оказалось удобнее искать конструкцией типа
ls /mnt/live/memory/images/*/etc/mtab
Надо только учитывать, что /lib и /bin на самом деле ссылки и файлы реально лежат в /usr/lib и /usr/bin (и зачем так сделано? путаница одна)
Конструкция ls -d /mnt/live/memory/images/*/etc/packages/mount/z-001-pra03g-ns так же находит, какой пакет себя в packages/mount неправильно прописал.
А mtab, кстати, дергал systemd через /usr/lib/tmpfiles.d/etc.conf, там как минимум плюс надо убрать.

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33955
  • Репутация: +231/-0
    • PuppyRus-A
Re:Багтрекер PFS-utils
« Ответ #39 : 19 Октябрь 2015, 09:17:47 »
нашел пару мелких глюков.
В каком скрипте? Как запускали, что на выходе не так?

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re:Багтрекер PFS-utils
« Ответ #40 : 20 Октябрь 2015, 20:11:06 »
Так вроде написал же...
Ладно, подробнее.
pfs-utils содержат скрипт fileinpack
ожидаемое действие - выдать название pfs модуля, содержащего указанный файл.
реальное действие в pra03-1509-game:

Код
live@pra:~$ fileinpack mtab
sed: -e выражение #3, символ 23: неизвестный модификатор к `s'
z-001-pra03g-ns

при этом модуля z-001-pra03g-ns реально нет

Причина вывода сообщения от sed: выражение -e "s:^:`echo "${listfiles}" | cut -f5 -d'/'`:" не может корректно работать, если listfiles содержит ':', в частности, когда listfiles = "/etc/packages/mount/xf86-video-ati-1:7.5.0-1-i686"
Необходимые исправления.
В файле  /usr/local/bin/fileinpack выражение
Код
-e "s:^:`echo "${listfiles}" | cut -f5 -d'/'`:"
заменить на
Код
-e "s/^/`echo "${listfiles}" | cut -f5 -d'/'`/"


z-001-pra03g-ns выдается из-за того, что модуль 001-Pra03arch10nos.pfs содержит несколько пакетов, в том числе и z-001-pra03g-ns
Возможно, я чего то недопонял, но мне такой вывод команды fileinpack кажется неправильным, поскольку никак не указывает, где же все таки лежит искомый файл, в каком pfs модуле.
В то же время команда
Код
live@pra:~$ ls /mnt/live/memory/images/*/etc/mtab
/mnt/live/memory/images/001-Pra03arch10nos.pfs/etc/mtab
выдает более полезный результат

Дальнейшее к pfs-utils отношения не имеет, но закончу уж здесь.  /etc/mtab в сборке pra03-1509-game изначально есть линк на /proc/self/mounts, но после первой же загрузки обновляется на ../proc/self/mounts и попадает в таком виде в 090-save-*-pra.pfs, если его создать.  При следующей загрузке это приводит к тому, что во время работы initrd /unionfs/etc/mtab указывает в никуда.  Ничего страшного не происходит, но при параметре copy2ram система потом считает, что флешка не была корректно отмонтирована.
Пересоздание /etc/mtab происходит из-за наличия в 075-Systemd-217-8-s03.pfs/usr/lib/tmpfiles.d/etc.conf строки
Код
L+ /etc/mtab - - - - ../proc/self/mounts
Если убрать '+', то существующий /etc/mtab пересоздаваться не будет.
« Последнее редактирование: 21 Октябрь 2015, 13:59:56 от sfs »

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33955
  • Репутация: +231/-0
    • PuppyRus-A
Re:Багтрекер PFS-utils
« Ответ #41 : 21 Октябрь 2015, 14:05:34 »
Подтверждаю проблему с : в имени pfs. Поправил в аттаче + добавил поиск в /mnt/live/memory/images
Поскольку /mnt/live/memory/images - есть только в porteus-initrd - учел это
Не нашел ссылок на fileinpack в других скриптах - значит в нем можно делать что угодно (Zay - так?). Не надо ли вывести его в меню?

L+ /etc/mtab тоже принял. Возможно из-за этого были проблемы у imago в дебиане

Спасибо и +
...не пропадайте  ;) Очень глубоко копаете для юзера с 2 сообщениями
« Последнее редактирование: 21 Октябрь 2015, 14:10:06 от sfs »

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re:Багтрекер PFS-utils
« Ответ #42 : 22 Октябрь 2015, 20:46:44 »
Ну, если уж делать универсально, то надо искать не в /mnt/live/memory/images, а смотреть, что вообще смонтировано в aufs.
Например так:
Код
target=$1

# aufs / aufs rw,relatime,si=cde8fca,nowarn_perm 0 0
SI=$(cat /proc/mounts \
        | grep 'aufs / aufs' \
        | grep -o 'si=[^ ,]*' \
        | cut -d'=' -f2 \
       )                                # нашли si корневой aufs

ls -1 /sys/fs/aufs/si_${SI}/br[0-9]* \
        | sort -t'/' --key=6.3nr \
        | while read branch                                           # взяли ее бранчи, рассортировали по номерам в обратном порядке
           do branchDir=$(cat $branch)                          # посмотрели, какая директория в этом бранче смонтирована
              ls ${branchDir%=r*}${target} 2>/dev/null  # и есть ли в ней искомый файл
           done
На входе - файл с полным путем, на выходе - в каких директориях, смонтированных на aufs он есть.
Если строк на выходе несколько - в системе виден файл, выведенный последним, остальные перекрыты.

Онлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8633
  • Репутация: +187/-2
  • Старый чайник
Re:Багтрекер PFS-utils
« Ответ #43 : 23 Октябрь 2015, 09:23:29 »
Ну, если уж делать универсально
Где универсальность? Это подходит только для PRA, в других Puppy такой строки в /proc/mounts нет:
Код
 aufs / aufs rw,relatime,si=cde8fca,nowarn_perm 0 0 
Вот это:
Код
SI=$(cat /proc/mounts \
        | grep 'aufs / aufs' \
        | grep -o 'si=[^ ,]*' \
        | cut -d'=' -f2 \
       )                                # нашли si корневой aufs
можно сделать короче
Код
live@pra64:~/$ eval $(awk -F\, '/aufs \/ aufs/ {print $3}' /proc/mounts)
live@pra64:~/$ echo $si
8bf328229a8332a4
получаем то же самое, только не вижу в этом смысла, ибо метод поиска циклом через $si слишком заумный.
 
Моноблок 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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33955
  • Репутация: +231/-0
    • PuppyRus-A
Re:Багтрекер PFS-utils
« Ответ #44 : 23 Октябрь 2015, 10:47:13 »
Вот это
Цитата
На входе - файл с полным путем
Где универсальность? Это подходит только для PRA, в других Puppy такой строки в /proc/mounts нет:
плохо
Особенно полный путь