Bug 410105 - Tar might use a default format=posix, whose extension seem not understood by 7-zip (e.g., >100 chars path)
Summary: Tar might use a default format=posix, whose extension seem not understood by ...
Status: RESOLVED FIXED
Alias: None
Product: releaseme
Classification: Developer tools
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR major
Target Milestone: ---
Assignee: Harald Sitter
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-07-22 13:38 UTC by Friedrich W. H. Kossebau
Modified: 2019-07-22 15:59 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Friedrich W. H. Kossebau 2019-07-22 13:38:21 UTC
binary-factory.kde.org/job/KDevelop_Release_win64 started to fail over some files from the kdevelop release tarballs with 5.3.3, created with releaseme: during extraction 7-zip starts to try to overwrite files, with filename path cut at length 100, failing and then things run against the wall.

It worked before with 5.3.2 tarballs, which had been tarballed by someone else (potentially on Debian/Ubuntu), while I use openSUSE TW. For me there the default format has been changed by packagers to be "posix" (as tar --show-defaults tells me).
Compare also https://www.gnu.org/software/tar/manual/html_section/tar_67.html especially the "Usually, GNU tar is configured to create archives in `gnu' format, however, future version will switch to `posix'."

Searching around, I found that 7-zip seems yet to have catch up to digest the PAX/POSIX format -> https://sourceforge.net/p/sevenzip/bugs/2116/

So if Windows users shall be target consumers of tarballs created with releaseme, it might be better if releaseme when calling tar tries to enforce a format which is understood by 7-zip (potentially "gnu" or whatever is default on ubuntu).

No own opinion here, just reporting observation. Leaving to you and Windows support people what to do to help them.

Respective log from https://binary-factory.kde.org/job/KDevelop_Release_win64/518/console :
--- 8< ---
14:30:21  *** Action: unpack for extragear/kdevelop/kdevelop ***
14:30:22  executing command: C:\Craft\BinaryFactory\windows-msvc2017_64-cl\dev-utils\bin\7za.exe x C:\Craft\Downloads\archives\extragear\kdevelop\kdevelop\kdevelop-5.3.3.tar.xz -so | C:\Craft\BinaryFactory\windows-msvc2017_64-cl\dev-utils\bin\7za.exe x -si -oC:\_\784c5bb0 -ttar
14:30:22  
14:30:22  7-Zip (a) 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
14:30:22  
14:30:22  
14:30:22  Extracting archive: 
14:30:23  --
14:30:23  Path = 
14:30:23  Type = tar
14:30:23  Code Page = UTF-8
14:30:23  
14:30:23  
14:30:23  Would you like to replace the existing file:
14:30:23    Path:     C:\_\784c5bb0\kdevelop-5.3.3\plugins\cmake\tests\manual\conditions_in_subdirectory_based_on_root_variables\subdire
14:30:23    Size:     0 bytes
14:30:23    Modified: 2019-07-17 15:35:47
14:30:23  with the file from archive:
14:30:23    Path:     kdevelop-5.3.3\plugins\cmake\tests\manual\conditions_in_subdirectory_based_on_root_variables\subdire
14:30:23    Size:     220 bytes (1 KiB)
14:30:23    Modified: 2019-07-17 15:35:47
14:30:23  ? (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? 
14:30:23  ERROR: Unspecified error
--- 8< ---
Comment 1 Harald Sitter 2019-07-22 15:08:01 UTC
Well that doesn't sound acceptable at all. I am not quite sure how to even unit test this though :S
Comment 2 Harald Sitter 2019-07-22 15:59:11 UTC
Git commit c01c5fa4e32bc9571c4fe89419ec439e8addadbb by Harald Sitter.
Committed on 22/07/2019 at 15:58.
Pushed by sitter into branch 'master'.

force format gnu for the tar file

7zip on windows has trouble with extracting the newer posix format, so
make sure we use the gnu format as that works reliably as far as we know

M  +1    -1    lib/releaseme/xzarchive.rb
M  +12   -0    test/xzarchive_test.rb

https://commits.kde.org/releaseme/c01c5fa4e32bc9571c4fe89419ec439e8addadbb