it-swarm-ja.com

Windowsのtarがアーカイブからシンボリックリンクを抽出できません

VcpkgでGTKをインストールしようとすると、抽出に失敗します libexpat-libexpat-R_2_2_6.tar.gz

Building package expat[core]:x64-windows...
-- Downloading https://github.com/libexpat/libexpat/archive/R_2_2_6.tar.gz...
-- Extracting source C:/Users/USER/git/vcpkg/downloads/libexpat-libexpat-R_2_2_6.tar.gz
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:56 (message):
    Command failed: C:/Program Files/CMake/bin/cmake.exe;-E;tar;xjf;C:/Users/USER/git/vcpkg/downloads/libexpat-libexpat-R_2_2_6.tar.gz
    Working Directory: C:/Users/USER/git/vcpkg/buildtrees/expat/src/TEMP
    Error code: 1
    See logs for more information:
      C:\Users\USER\git\vcpkg\buildtrees\expat\extract-err.log

extract-err.log:

CMake Error: Problem with archive_write_header(): Can't create ''
CMake Error: Current file: libexpat-R_2_2_6/README.md
CMake Error: Problem extracting tar: C:/Users/USER/git/vcpkg/downloads/libexpat-libexpat-R_2_2_6.tar.gz

また、tarを手動で実行すると、次のようになります。

> tar xjf C:/Users/USER/git/vcpkg/downloads/libexpat-libexpat-R_2_2_6.tar.gz
libexpat-R_2_2_6/README.md: Can't create '\\\\?\\C:\\Users\\USER\\git\\vcpkg\\buildtrees\\expat\\src\\TEMP\\libexpat-R_2_2_6\\README.md'
tar: Error exit delayed from previous errors.

バージョン:

  • Microsoft Windows [バージョン10.0.17763.437]
  • cmakeバージョン3.14.2
  • bsdtar 3.3.2-libarchive 3.3.2 zlib/1.2.5.f-ipp
  • vcpkg 2018.11.23-nohash(commit 0907798)

編集:

Tarエラーが予想されます。問題は、予想される出力(extract-err.logを参照)が次のようになるはずのcmakeに現れます。

cmake -E tar: warning: skipping symbolic link "libexpat-R_2_2_6/README.md" -> "expat/README.md".

編集:

これはアクティブなcmakeの問題のようです https://gitlab.kitware.com/cmake/cmake/issues/19102

1
Ian678

Alexej Harmは、この問題の原因となる設定を見つけました https://gitlab.kitware.com/cmake/cmake/issues/19102#note_558431

Intl.cpl>管理>システムロケールの変更...のUTF-8ベータは、cmake(3.14.2)が正しく機能するためにチェックを外す必要があります。

1
Ian678