From a5ec1c77d879a77cd52dbd2d9c9c8ec27d6f72f6 Mon Sep 17 00:00:00 2001 From: Matthew John Cheetham Date: Thu, 22 Jan 2026 17:20:12 +0000 Subject: [PATCH] mingw-w64-git-credential-manager: don't cross-polute archs We have been downloading and extracting the pre-built binaries for Git Credential Manager to the same $srcdir directory, meaning that when we build multiple architectures we're not always starting from a clean slate and have been grabbing binaries from other architectures. Before we added support for x86_64 and clangarm64 native binaries, this was OK since we only downloaded the i686 flavour of GCM files. Update the PKGBUILD to no longer extract the GCM binaries, but manually extract them to an architecture-specific directory - this way we don't cross-contaminate. Signed-off-by: Matthew John Cheetham --- mingw-w64-git-credential-manager/PKGBUILD | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mingw-w64-git-credential-manager/PKGBUILD b/mingw-w64-git-credential-manager/PKGBUILD index efacf8352e..e7d62f0590 100644 --- a/mingw-w64-git-credential-manager/PKGBUILD +++ b/mingw-w64-git-credential-manager/PKGBUILD @@ -14,7 +14,8 @@ install=git-credential-manager.install arch=('any') project_url="https://github.com/git-ecosystem/git-credential-manager" license=('MIT') -makedepends=('markdown') +makedepends=('markdown' + 'unzip') groups=('VCS') options=('!strip') @@ -37,10 +38,12 @@ case "$MINGW_PACKAGE_PREFIX" in ;; esac -zip_url="${project_url}/releases/download/${_realtag}/gcm-win-${_arch}-${_realver}.zip" +zip_name="gcm-win-${_arch}-${_realver}.zip" +zip_url="${project_url}/releases/download/${_realtag}/${zip_name}" src_zip_url="${project_url}/archive/${_realtag}.zip" source=("${zip_url}" "$src_zip_url") +noextract=("${zip_name}") sha256sums=("$_sha" 'cfd29c2ce47cac3b9264e08884ddd7a67e829616cc984d2f5331ceaa3f55a326') @@ -49,13 +52,18 @@ build() { markdown "${srcdir}/git-credential-manager-${_realtag#v}/README.md" > "${srcdir}/git-credential-manager-${_realtag#v}/git-credential-manager.html" } +prepare() { + mkdir -p "${srcdir}/${_arch}" + unzip "${srcdir}/${zip_name}" -d "${srcdir}/${_arch}" +} + package() { prefix="$pkgdir/${MINGW_PREFIX}" - srcdir2="${srcdir}/" + bindir="${srcdir}/${_arch}" install -d -m755 "${prefix}"/bin - install -m755 "$srcdir2"/*.{dll,exe,config} "${prefix}"/bin + install -m755 "$bindir"/*.{dll,exe,config} "${prefix}"/bin install -d -m755 "${prefix}"/doc/git-credential-manager - install -m644 "$srcdir2"/git-credential-manager-${_realtag#v}/{README.md,LICENSE,NOTICE} "${prefix}"/doc/git-credential-manager + install -m644 "$srcdir"/git-credential-manager-${_realtag#v}/{README.md,LICENSE,NOTICE} "${prefix}"/doc/git-credential-manager install -d -m755 "${prefix}"/share/doc/git-doc - install -m644 "$srcdir2"/git-credential-manager-${_realtag#v}/git-credential-manager.html "${prefix}"/share/doc/git-doc + install -m644 "$srcdir"/git-credential-manager-${_realtag#v}/git-credential-manager.html "${prefix}"/share/doc/git-doc }