Bug 410105

Summary: Tar might use a default format=posix, whose extension seem not understood by 7-zip (e.g., >100 chars path)
Product: [Developer tools] releaseme Reporter: Friedrich W. H. Kossebau <kossebau>
Component: generalAssignee: Harald Sitter <sitter>
Status: RESOLVED FIXED    
Severity: major    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

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