vcpkg install bzip2 빌드 에러 - "Error: Building package bzip2:x86-windows failed with: BUILD_FAILED"
bzip2에 의존하는 패키지를 빌드하려고 하니 다음과 같은 식으로 오류가 발생합니다.
c:\temp\vcpkg> vcpkg install sfml
...[생략]...
-- Testing integrity of downloaded file...
CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:56 (message):
File does not have expected hash:
File path: [ c:/temp/vcpkg/downloads/bzip2-1.0.6.tar.gz ]
Expected hash: [ 00ace5438cfa0c577e5f578d8a808613187eff5217c35164ffe044fbafdfec9e98f4192c02a7d67e01e5a5ccced630583ad1003c37697219b0f147343a3fdd12 ]
Actual hash: [ a9479bf44d186229ec02d4f91a712f9a196e27c6ad3d41eb086592fb326cf87c552376301db3d4244b29e2b3a6eb00549d6d04908819bea8cf9ee36754e6c1b5 ]
The file may be corrupted.
Call Stack (most recent call first):
scripts/cmake/vcpkg_download_distfile.cmake:96 (test_hash)
ports/bzip2/portfile.cmake:4 (vcpkg_download_distfile)
scripts/ports.cmake:72 (include)
Error: Building package bzip2:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: bzip2:x86-windows
Vcpkg version: 0.0.100-2017-12-15-76096c95f1d3cbb85779ccd78c30513eec32b517
Additionally, attach any relevant sections from the log files above.
그러니까, bzip2 빌드가 실패하는 것입니다. 실제로 bzip2에 대해 독자적으로 install 명령어를 내려도,
c:\temp\vcpkg> vcpkg install bzip2
The following packages will be built and installed:
bzip2[core]:x86-windows
Starting package 1/1: bzip2:x86-windows
Building package bzip2:x86-windows...
-- CURRENT_INSTALLED_DIR=c:/temp/vcpkg/installed/x86-windows
-- DOWNLOADS=c:/temp/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=c:/temp/vcpkg/packages/bzip2_x86-windows
-- CURRENT_BUILDTREES_DIR=c:/temp/vcpkg/buildtrees/bzip2
-- CURRENT_PORT_DIR=c:/temp/vcpkg/ports/bzip2/.
-- Using cached c:/temp/vcpkg/downloads/bzip2-1.0.6.tar.gz
-- Testing integrity of cached file...
CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:56 (message):
File does not have expected hash:
File path: [ c:/temp/vcpkg/downloads/bzip2-1.0.6.tar.gz ]
Expected hash: [ 00ace5438cfa0c577e5f578d8a808613187eff5217c35164ffe044fbafdfec9e98f4192c02a7d67e01e5a5ccced630583ad1003c37697219b0f147343a3fdd12 ]
Actual hash: [ a9479bf44d186229ec02d4f91a712f9a196e27c6ad3d41eb086592fb326cf87c552376301db3d4244b29e2b3a6eb00549d6d04908819bea8cf9ee36754e6c1b5 ]
Please delete the file and retry if this file should be downloaded again.
Call Stack (most recent call first):
scripts/cmake/vcpkg_download_distfile.cmake:68 (test_hash)
ports/bzip2/portfile.cmake:4 (vcpkg_download_distfile)
scripts/ports.cmake:72 (include)
Error: Building package bzip2:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: bzip2:x86-windows
Vcpkg version: 0.0.100-2017-12-15-76096c95f1d3cbb85779ccd78c30513eec32b517
Additionally, attach any relevant sections from the log files above.
마찬가지의 오류가 발생합니다. 그런데, 다운로드한 bzip2-1.0.6.tar.gz의 내용을 보면 단순히 bzip2에 대한 소개를 담은 HTML 페이지가 나옵니다. 즉, 해당 파일의 다운로드 위치가 바뀐 것입니다. 검색해 보면 다음의 글이 나오는데,
can't build plplot due to bzip
; https://github.com/Microsoft/vcpkg/issues/4195
원래 있어야 할 "
http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz" 다운로드 링크를 bzip.org 측에서 더 이상 제공하고 있지 않는 것입니다. 새로 바뀐 다운로드 주소가 필요한데요, 그래서 다음의 패치가 있었다고 합니다.
Remove invalid URL to bzip.org site
; https://github.com/Microsoft/vcpkg/commit/3d87ec6b9fbb07bd299367b6bc89c4a271567233
그러니까, "
https://github.com/past-due/bzip2-mirror/releases/download/v1.0.6/bzip2-1.0.6.tar.gz" 경로로 바뀐 것입니다. 그래서 어쨌든 vcpkg를 업데이트했는데,
vcpkg 업데이트
; https://www.sysnet.pe.kr/2/0/11779
그래도 여전히 "Error: Building package bzip2:x86-windows failed with: BUILD_FAILED" 오류가 발생합니다. 문제는, 이미 다운로드했던 "c:/temp/vcpkg/downloads/bzip2-1.0.6.tar.gz" 파일의 캐시가 지워지지 않고 그대로 재사용하기 때문입니다. 따라서 이 파일을 직접 삭제하고 다시 빌드 명령을 내리면 새로 바뀐 bzip2 다운로드 URL의 내용을 받아와 빌드에 반영하므로 정상적으로 패키지 빌드가 완료됩니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]