From 2a306a2da06b41346d66018e80056ce4b531cafa Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Tue, 28 Jul 2020 02:06:41 -0700 Subject: [PATCH 1/4] azure: Use a login shell everywhere for MSYS2 build This simplifies things a bit to just use a login shell everywhere. This keeps in sync with MSYS2 upstream commit: 9d11b7f0aa93 ("azure-pipelines: simplify things a bit"). Signed-off-by: Bin Meng --- .azure-pipelines.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 9ba9f1d43e..186f148446 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -27,15 +27,12 @@ jobs: git clone https://github.com/msys2/$(BASE_REPO).git %CD:~0,2%\$(MSYS_DIR) displayName: 'Install MSYS2' - script: | - set PATH=%CD:~0,2%\$(MSYS_DIR)\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem - %CD:~0,2%\$(MSYS_DIR)\usr\bin\pacman --noconfirm -Syyuu + %CD:~0,2%\$(MSYS_DIR)\usr\bin\bash -lc "pacman --noconfirm -Syyuu" displayName: 'Update MSYS2' - script: | - set PATH=%CD:~0,2%\$(MSYS_DIR)\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem - %CD:~0,2%\$(MSYS_DIR)\usr\bin\pacman --noconfirm --needed -S make gcc bison diffutils openssl-devel + %CD:~0,2%\$(MSYS_DIR)\usr\bin\bash -lc "pacman --noconfirm --needed -S make gcc bison diffutils openssl-devel" displayName: 'Install Toolchain' - script: | - set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem echo make tools-only_defconfig tools-only NO_SDL=1 > build-tools.sh %CD:~0,2%\$(MSYS_DIR)\usr\bin\bash -lc "bash build-tools.sh" displayName: 'Build Host Tools' From f7faddf632c6471073aa295115591f0433988658 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Tue, 28 Jul 2020 02:06:42 -0700 Subject: [PATCH 2/4] azure: Drop 32-bit MSYS2 build As of 2020-05-17, 32-bit MSYS2 is no longer actively supported by the upstream [1]. Let's drop the 32-bit Windows host tool build. [1] https://www.msys2.org/news/#2020-05-17-32-bit-msys2-no-longer-actively-supported Signed-off-by: Bin Meng --- .azure-pipelines.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 186f148446..30403fb05b 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -14,27 +14,19 @@ jobs: displayName: 'Ensure host tools build for Windows' pool: vmImage: $(windows_vm) - strategy: - matrix: - i686: - MSYS_DIR: msys32 - BASE_REPO: msys2-ci-base-i686 - x86_64: - MSYS_DIR: msys64 - BASE_REPO: msys2-ci-base steps: - script: | - git clone https://github.com/msys2/$(BASE_REPO).git %CD:~0,2%\$(MSYS_DIR) + git clone https://github.com/msys2/msys2-ci-base.git %CD:~0,2%\msys64 displayName: 'Install MSYS2' - script: | - %CD:~0,2%\$(MSYS_DIR)\usr\bin\bash -lc "pacman --noconfirm -Syyuu" + %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Syyuu" displayName: 'Update MSYS2' - script: | - %CD:~0,2%\$(MSYS_DIR)\usr\bin\bash -lc "pacman --noconfirm --needed -S make gcc bison diffutils openssl-devel" + %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm --needed -S make gcc bison diffutils openssl-devel" displayName: 'Install Toolchain' - script: | echo make tools-only_defconfig tools-only NO_SDL=1 > build-tools.sh - %CD:~0,2%\$(MSYS_DIR)\usr\bin\bash -lc "bash build-tools.sh" + %CD:~0,2%\msys64\usr\bin\bash -lc "bash build-tools.sh" displayName: 'Build Host Tools' env: # Tell MSYS2 we need a POSIX emulation layer From d126e3cdb740cd7d8717477e09f7a016030e1805 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Tue, 28 Jul 2020 02:06:43 -0700 Subject: [PATCH 3/4] azure: Add the missing build dependency for MSYS2 build Package 'flex' is needed when building the U-Boot host tool, but is currently missing in the build dependency in the CI pipeline. This is to prepare switching to an installer based CI build. Signed-off-by: Bin Meng --- .azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 30403fb05b..b5a9f1f45c 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -22,7 +22,7 @@ jobs: %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Syyuu" displayName: 'Update MSYS2' - script: | - %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm --needed -S make gcc bison diffutils openssl-devel" + %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm --needed -S make gcc bison flex diffutils openssl-devel" displayName: 'Install Toolchain' - script: | echo make tools-only_defconfig tools-only NO_SDL=1 > build-tools.sh From 437e70f7c32d66902bedaeb24fda819b6495f660 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Tue, 28 Jul 2020 02:06:44 -0700 Subject: [PATCH 4/4] azure: Switch to use the MSYS2 official installer as the CI base Recent CI failures were seen [1] when building MSYS2 Windows host tools. The error messages are something like: downloading mingw32.db... downloading mingw32.db.sig... error: mingw32: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown error: mingw32: signature from "David Macek " is unknown trust error: failed to update mingw32 (invalid or corrupted database (PGP signature)) Per the MSYS2 official news [2], this was caused by a packager switch and several solutions were suggested, e.g.: a new package of msys2-keyring and a new msys2 installer that includes them are released. However right now we have been using the MSYS2 github CI base repo [3] for the MSYS2 build in U-Boot, but per the project information on the github webpage, it says: "This repository is unused/deprecated and will be remove after 2021-01-01". Since it is unmaintained it's unlikely the new PGP keys will be included in the git repo, and the only choice is to switch to use the MSYS2 official installer as the CI base instead. [1] https://dev.azure.com/u-boot/u-boot/_build/results?buildId=975 [2] https://www.msys2.org/news/#2020-06-29-new-packagers [3] https://github.com/msys2/msys2-ci-base Signed-off-by: Bin Meng --- .azure-pipelines.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index b5a9f1f45c..c3eb887720 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -15,10 +15,11 @@ jobs: pool: vmImage: $(windows_vm) steps: - - script: | - git clone https://github.com/msys2/msys2-ci-base.git %CD:~0,2%\msys64 + - powershell: | + (New-Object Net.WebClient).DownloadFile("https://github.com/msys2/msys2-installer/releases/download/2020-07-20/msys2-base-x86_64-20200720.sfx.exe", "sfx.exe") displayName: 'Install MSYS2' - script: | + sfx.exe -y -o%CD:~0,2%\ %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Syyuu" displayName: 'Update MSYS2' - script: |