aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authoremptyVoid <emptyVoid@users.noreply.github.com>2020-05-22 10:58:05 +0300
committerGitHub <noreply@github.com>2020-05-22 00:58:05 -0700
commite792d1c171a18d32401db0f95251515cc15056f5 (patch)
tree4bc5c34dd34a9eef9071e816786d790dd81cb530 /scripts
parentbc2c02fe47959c8f7b5928cc9d8893343b6db423 (diff)
downloadvcpkg-e792d1c171a18d32401db0f95251515cc15056f5.tar.gz
vcpkg-e792d1c171a18d32401db0f95251515cc15056f5.zip
[vcpkg-acquire-msys] Update pacman before any other package. (#11443)
* [vcpkg-acquire-msys] Update pacman manually to work around update issues.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/cmake/vcpkg_acquire_msys.cmake58
1 files changed, 58 insertions, 0 deletions
diff --git a/scripts/cmake/vcpkg_acquire_msys.cmake b/scripts/cmake/vcpkg_acquire_msys.cmake
index b070c5181..99b2d0aea 100644
--- a/scripts/cmake/vcpkg_acquire_msys.cmake
+++ b/scripts/cmake/vcpkg_acquire_msys.cmake
@@ -91,6 +91,64 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT)
COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman-key --init;pacman-key --populate"
WORKING_DIRECTORY ${TOOLPATH}
)
+
+ # workaround for https://github.com/msys2/MSYS2-packages/issues/1962
+ # update the package manager manually
+ if(_vam_HOST_ARCHITECTURE STREQUAL "AMD64")
+ set(ARCHIVE_LIBZSTD "libzstd-1.4.4-2-x86_64.pkg.tar.xz")
+ set(HASH_LIBZSTD 7f8d93f8340be8fc2ed9aa60b78bd5b05b954ca6f081d475ccd14dda088c5b1c992a4e7c0c0575877d021edf7f2f55545f21a77212cad244c78866b73f7d2a0c)
+ set(ARCHIVE_ZSTD "zstd-1.4.4-2-x86_64.pkg.tar.xz")
+ set(HASH_ZSTD 2be7e243d4e600d092aa6a630d24cfc536a6c06a4fa8e0909b0364569d2f938e24f220de1f52edbc36adc7c69ca23a2a730675f2da82c1530d3d91136089d3e2)
+ set(ARCHIVE_PACMAN "pacman-5.2.1-6-x86_64.pkg.tar.xz")
+ set(HASH_PACMAN d52a1352af7e4cd020fe4083390f48d1c1976a8c8dcb12611de9bbdd7dd07d71f2e32b107d4daef29ff09d8344f545aed239544824225e282f309438178e123e)
+ set(URL_ARCH x86_64)
+ else()
+ set(ARCHIVE_LIBZSTD "libzstd-1.4.4-2-i686.pkg.tar.xz")
+ set(HASH_LIBZSTD 5c8c3a259a3ede68a389a782ec6db76e942e90c8ee00b81417e09bb3d604564ce7a28c6d575be786a8cd2e931d2549fe9db7f238a9fbfff159542ec35d42774b)
+ set(ARCHIVE_ZSTD "zstd-1.4.4-2-i686.pkg.tar.xz")
+ set(HASH_ZSTD c806d78cfd5c9c4c37b82748b98397bb79413f8525fb6c7af35879b947afe3ea4d06e67902b6abe2386052352abe2db2f889f41b42a5c6913d723d0f316dcc41)
+ set(ARCHIVE_PACMAN "pacman-5.2.1-6-i686.pkg.tar.xz")
+ set(HASH_PACMAN 9f22bc4d2c62f6d823fd2b24ba872d37a6a69a87608f63f9217e8e5f1ce37331e0a795ed6ce7793615f0e240b3ab6359e45259f3a548bd357a27f7f5d0b0a5b4)
+ set(URL_ARCH i686)
+ endif()
+ vcpkg_download_distfile(ARCHIVE_LIBZSTD_PATH
+ URLS "https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/${URL_ARCH}/${ARCHIVE_LIBZSTD}/download"
+ "http://repo.msys2.org/msys/${URL_ARCH}/${ARCHIVE_LIBZSTD}"
+ FILENAME ${ARCHIVE_LIBZSTD}
+ SHA512 ${HASH_LIBZSTD}
+ )
+ vcpkg_download_distfile(ARCHIVE_ZSTD_PATH
+ URLS "https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/${URL_ARCH}/${ARCHIVE_ZSTD}/download"
+ "http://repo.msys2.org/msys/${URL_ARCH}/${ARCHIVE_ZSTD}"
+ FILENAME ${ARCHIVE_ZSTD}
+ SHA512 ${HASH_ZSTD}
+ )
+ vcpkg_download_distfile(ARCHIVE_PACMAN_PATH
+ URLS "https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/${URL_ARCH}/${ARCHIVE_PACMAN}/download"
+ "http://repo.msys2.org/msys/${URL_ARCH}/${ARCHIVE_PACMAN}"
+ FILENAME ${ARCHIVE_PACMAN}
+ SHA512 ${HASH_PACMAN}
+ )
+ _execute_process(
+ COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman --noconfirm -U ${ARCHIVE_LIBZSTD_PATH}"
+ WORKING_DIRECTORY ${TOOLPATH}
+ )
+ _execute_process(
+ COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman --noconfirm -U ${ARCHIVE_ZSTD_PATH}"
+ WORKING_DIRECTORY ${TOOLPATH}
+ )
+ _execute_process(
+ COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman --noconfirm -U ${ARCHIVE_PACMAN_PATH}"
+ WORKING_DIRECTORY ${TOOLPATH}
+ )
+ # we have to kill all GnuPG daemons otherwise they will interfere with the
+ # subsequent package installs and updates
+ _execute_process(
+ COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;gpgconf --homedir /etc/pacman.d/gnupg --kill all"
+ WORKING_DIRECTORY ${TOOLPATH}
+ )
+ # end workaround
+
_execute_process(
COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman -Syu --noconfirm"
WORKING_DIRECTORY ${TOOLPATH}