Skip to content

Conversation

@dscho
Copy link
Member

@dscho dscho commented Nov 24, 2025

In #172, I already prepared some for "upstreaming" the mingw-w64-git package (the plan is not to throw it over the wall, but to maintain it synchronously between MSYS2 and Git for Windows.

When I started the actual upstreaming process in msys2#26470, though, I discovered another few loose ends that need to be covered.

dscho and others added 11 commits November 24, 2025 16:18
This package would require `cv2pdb`, which is not available in regular
MSYS2' (but only in Git for Windows') Pacman repositories. Besides,
there is no precedent in MSYS2 for building `pdb` files, unlike Git for
Windows, where many users are unfamiliar with `gdb` and much more
familiar with debugging tools that require the symbols in such files.

Signed-off-by: Johannes Schindelin <[email protected]>
Python is not actually a _build-time_ dependency, and we should prefer
the MINGW variant of Python.

Signed-off-by: Johannes Schindelin <[email protected]>
We do require a C compiler to build it ;-)

Also, we need PCRE2 and friends already when compiling...

In Git for Windows, these dependencies are implicitly met, and therefore
I forgot to add them as an explicit dependency.

Signed-off-by: Johannes Schindelin <[email protected]>
They are installed always, no need to specify them explicitly.

Signed-off-by: Johannes Schindelin <[email protected]>

Co-authored-by: Maksim Bondarenkov <[email protected]>
The `mingw-w64-git` package definition is a bit of a unicorn in that it
is not only used to build Git for Windows' official packages, but also
its snapshots. Even for the official packages, there is usually no
downloadable source code archive because the tag is only published once
the build was successful, the manual testing gate passed, and the
artifacts are uploaded to a new GitHub Release. As such, the package
definition cannot rely on the common pattern to download a published
source code archive.

Instead, it relies on a Git clone, which means that `git` is required to
clone it.

Signed-off-by: Johannes Schindelin <[email protected]>
This is already satisfied by MSYS2's base installation.

Signed-off-by: Johannes Schindelin <[email protected]>
This is needed to render Git's user manual.

Co-authored-by: Maksim Bondarenkov <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
Co-authored-by: Maksim Bondarenkov <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
On `CLANG*`, we do not want to use `gcc`...

Signed-off-by: Johannes Schindelin <[email protected]>
The differences between CLANG64's Perl setup and MINGW64's point out
some fragile logic I introduced in order to separate the `Git` Perl
module's files from the `Git::SVN` ones.

Let's move that logic into the Makefile which has all the relevant
information to make the logic more robust.

Signed-off-by: Johannes Schindelin <[email protected]>
@dscho dscho self-assigned this Nov 24, 2025
@dscho dscho marked this pull request as ready for review November 24, 2025 17:42
@dscho dscho requested review from mjcheetham and rimrul November 24, 2025 17:43
@dscho
Copy link
Member Author

dscho commented Nov 24, 2025

This here PR should probably only be merged once git-for-windows/build-extra#663 is deployed and merged.

dscho added a commit to git-for-windows/build-extra that referenced this pull request Nov 25, 2025
As part of my effort to upstream the `mingw-w64-git` package definition
to MSYS2, I had to change the default to _omit_ building
`mingw-w64-git-pdb`. Before marking [the upstreaming
PR](msys2/MINGW-packages#26470) as ready for
review, I want to ensure that Git for Windows already has the identical
changes (see
git-for-windows/MINGW-packages#174). This
requires two changes in `build-extra` to accommodate for the
now-inverted logic.
@dscho dscho merged commit fa6b8eb into git-for-windows:main Nov 25, 2025
3 checks passed
@dscho dscho deleted the prepare-some-more-for-upstreaming-to-msys2 branch November 25, 2025 06:23
dscho added a commit to dscho/MINGW-packages that referenced this pull request Nov 27, 2025
I'd like to foster tighter collaboration between the Git for Windows and
the MSYS2 project, as I documented here:
msys2#16383

As part of that effort, here is the exact same package definition of the
`mingw-w64-git` package as Git for Windows uses, as per
https://github.com/git-for-window/MINGW-packages/commit/fa6b8ebc02
(Prepare some more for upstreaming `mingw-w64-git` to MSYS2 (git-for-windows#174),
2025-11-25).

Note: As part of this effort, I have split out the Git for
Windows-specific part from that package that would be highly
inappropriate in MSYS2's context: For example, Git for Windows comes
with a `git-bash.exe` in the top-level directory, and it also installs
its logo into `$MINGW_PREFIX/share/git/`. These now live in the
`mingw-w64-git-for-windows-addons` package.

This is not the first time that a `mingw-w64-git` package definition has
lived in this here repository: Six years ago, such a definition was
removed (as "deprecated"), in 446b69f (More cleanup for packages.
Move all packages not provided by pacman and deprecated to new repo
https://github.com/msys2/MINGW-packages-dev, 2019-06-03).

The chances of success are much better now, though: Git for Windows is
much more mature now, and already collaborates highly successfully with
the MSYS2 project in the msys2-runtime repository. So there is precedent
for fruitful and friendly working together. Besides, all of the blockers
are resolved that would have let Git's test suite fail due to
differences in the MSYS2 runtime or in other parts of the tree.

Signed-off-by: Johannes Schindelin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants