View Issue Details

IDProjectCategoryView StatusLast Update
0003806PluginsArclitepublic2020-07-31 18:01
Reporterggost Assigned To2useven10  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
Platformx64OSWindowsOS Version10
Product Version3.0 
Summary0003806: неправильно распаковывается структура каталогов и файлов.
Descriptionконкретный архив https://cobalt.googlesource.com/cobalt/+/refs/heads/20.lts.stable [tgz]

в FAR-е показывает верхнюю структуру каталога в архве как
/PaxHeaders.X/
/src/
codereview.settings

а в приложении 7z как
/./PaxHeaders.X/
/src/
codereview.settings

соответственно 7z распаковывает это более правильно
/_/PaxHeaders.X/
/src/
codereview.settings

Как понимаю, проблема именно в arclignt и гугловской нотации файловых имён, потому что замена 7z.dll на более свежую (v19 на v20) ничего не меняет. В итоге при разархивации через FAR получаются неправильные каталоги и даже происходит наложение файлов.
Было бы неплохо,
1. чтобы уже при просмотре внутреннего tar выдавалось предупреждение, что имена не соответствуют ограничениям имён Windows и будут переименовываться. Ну и предложить попользоваться внешним архиватором, на всякий случай.
2. если уж, не внявши предупреждениям, юзер будет распаковывать архив средствами FAR, то не терять символы из имён файлов и конвертировать их нормально, чтобы не получалось наложений и конфликтов.
Steps To Reproduce1. конкретный архив https://cobalt.googlesource.com/cobalt/+/refs/heads/20.lts.stable [tgz]
2. распаковать череp FAR и через приложение 7z в разные каталоги
3. сравнить каталоги
TagsNo tags attached.

Activities

ggost

2020-06-25 10:17

reporter   bugnote:0016880

файл https://cobalt.googlesource.com/cobalt/+archive/refs/heads/20.lts.stable.tar.gz

2useven10

2020-06-26 07:42

developer   bugnote:0016882

1) Независимо от того как показывать dir == ./dir и это правильно.
2) 7z распаковывает файлы в PaxHeaders.X, как и arclite (допотопные версии не проверял)
3) В архиве все оригинальные имена с какого-то перепуга (нотации) обрезаны до 100 символов.
Поэтому:
  a) очень много повторяющихся имен -- одинаковых
  b) иногда последний символ точка -- windows умеет работать с такими именами, но только частично (explorer не умеет)

Предупреждения о том что файл уже существует показывает как arclite так и 7z.
Как распаковать такой архив 'правильно', врядли знаете вы сами.

Поведение arclite абсолютно адекватно.
Но если юзер понимает с чем он имеет дело и знает как правильно распаковывать такие файлы - осмысленная аргументация приветствуется.

2useven10

2020-06-26 07:48

developer   bugnote:0016883

Last edited: 2020-06-26 07:56

100 - видимо, ограничение формата .tar
add: скорее всего до 100 символов имена обрезает 7z.dll

2useven10

2020-06-26 08:07

developer   bugnote:0016885

Соответственно - к терапевту.

2useven10

2020-06-26 10:14

developer   bugnote:0016886

Спрашивать надо про поддержку extended pax header
https://stackoverflow.com/questions/34688392/paxheaders-in-tarball

2useven10

2020-06-26 12:29

developer   bugnote:0016887

Last edited: 2020-06-26 12:31

Если в 7z 19.00 в CPP\7zip\Archive\Tar\TarIn.cpp код со строки #446

        if (item.Name.IsPrefixedBy("PaxHeader/")
         || item.Name.Find("PaxHeaders.4467/") >= 0)

Заменить на такой

        if (item.Name.IsPrefixedBy("PaxHeader/")
        || item.Name.IsPrefixedBy("PaxHeaders.X/")
        || item.Name.IsPrefixedBy("./PaxHeaders.X/")
        || item.Name.Find("PaxHeaders.4467/") >= 0)

То всё работает как надо.

2useven10

2020-06-26 16:37

developer   bugnote:0016888

Проблема в 7z.dll можно сделать свою исправленную либу, но лучше дождаться исправления от Павлова.

DrKnS

2020-06-26 18:26

administrator   bugnote:0016889

Если Павлову написали, можно сюда линк для истории?

2useven10

2020-06-26 19:27

developer   bugnote:0016890

Last edited: 2020-07-31 17:52

https://sourceforge.net/p/sevenzip/bugs/2265/
https://sourceforge.net/p/sevenzip/discussion/45797/thread/d95e3ad59b/

2useven10

2020-07-31 18:01

developer   bugnote:0016915

https://forum.farmanager.com/viewtopic.php?p=161730#p161730

Issue History

Date Modified Username Field Change
2020-06-25 10:15 ggost New Issue
2020-06-25 10:17 ggost Note Added: 0016880
2020-06-26 07:42 2useven10 Note Added: 0016882
2020-06-26 07:48 2useven10 Note Added: 0016883
2020-06-26 07:56 2useven10 Note Edited: 0016883
2020-06-26 08:07 2useven10 Note Added: 0016885
2020-06-26 10:14 2useven10 Note Added: 0016886
2020-06-26 12:29 2useven10 Note Added: 0016887
2020-06-26 12:30 2useven10 Note Edited: 0016887
2020-06-26 12:31 2useven10 Note Edited: 0016887
2020-06-26 16:37 2useven10 Assigned To => 2useven10
2020-06-26 16:37 2useven10 Status new => closed
2020-06-26 16:37 2useven10 Resolution open => no change required
2020-06-26 16:37 2useven10 Note Added: 0016888
2020-06-26 18:26 DrKnS Note Added: 0016889
2020-06-26 19:27 2useven10 Note Added: 0016890
2020-07-31 17:51 2useven10 Summary неправильно распаковывается структура коталогов и файлов. => неправильно распаковывается структура каталогов и файлов.
2020-07-31 17:52 2useven10 Note Edited: 0016890
2020-07-31 18:01 2useven10 Note Added: 0016915