-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Building new package versions
As described in Package management, Git for Windows' SDK is a close derivative of the MSYS2 system, and as such, its components are built using makepkg
and makepkg-mingw
(borrowed from Arch Linux' pacman
).
Most of those packages are actually built by the MSYS2 project and consumed by Git for Windows. However, a couple of components (including cURL and OpenSSH) are built by Git for Windows, e.g. to be able to react faster to newly-available versions, or to allow for modifications specific to Git for Windows.
In general, the process to upgrade components to new versions is quite tedious.
First of all, the Git for Windows maintainer needs to be aware that a new version of a Git for Windows SDK component is available. The current process for this involves using a custom IFTTT applet to receive notifications when, say, cURL's Atom feed reports a new version.
The next step is to update the package definitions (i.e. Pacman's PKGBUILD
files), to reflect the new version and the checksum for the respective archive.
Git for Windows offers some automation for that, figuring out the current version of a specified component in its administrative script called please.sh
and updating the respective PKGBUILD
, then building and uploading the Pacman package. The idea is to call e.g. sdk cd build-extra && ./please.sh upgrade curl
to upgrade cURL.
This script is, essentially, the backbone of the two Azure Pipelines used by the Git for Windows project to build new package versions: Build and publish MINGW Pacman package and Build and publish MSYS Pacman package.
However, many a time this automation fails, for a variety of reasons, including, but not limited to:
- Download links do change. If this is the case, the
source
definition in thePKGBUILD
needs to be adjusted. - Patches that are applied as part of the
build
function in thePKGBUILD
script might no longer apply to newer versions (see below). - Spurious network errors. Those are the maintainer's favorite hiccups.
TBD
This wiki page has been retired. All it did was to point to Git for Windows' governance model.