Skip to content

Conversation

@jeremyd2019
Copy link

@jeremyd2019 jeremyd2019 commented Feb 13, 2025

libcrypt-devel was removed in July 2023, and libcrypt was removed in October 2023.

also drop some crazy i686 workarounds from vim, because i686 has now been synced so they are no longer necessary.

@jeremyd2019
Copy link
Author

Based on the comments, it should be possible to drop cyrus-sasl from your fork now, because i686 has been synced. Is that possible, and if so how, since this is a fork of old MSYS2-packages, packages that you don't provide are also in this repo, so just git rm-ing it doesn't seem like the thing to do?

@dscho
Copy link
Member

dscho commented Feb 13, 2025

it should be possible to drop cyrus-sasl from your fork now, because i686 has been synced. Is that possible, and if so how

The cyrus-sasl package has been deployed specifically (and manually) to Git for Windows' i686 Pacman repository, see #112 (comment). Along with it serf, and libssh2 were deployed, too.

The safest way to remove them would most likely be a custom workflow that is based on a previously-embargoed workflow I planned on integrating into git-for-windows-automation already (but am constantly running out of time). This workflow (creatively named deploy-embargoed-package) was used to deploy the embargoed git-lfs and git-credential-manager packages, and it should make for a fine starting point to call repo-remove <package>... followed by an upload.

I hope to get to that particular clean-up tomorrow. And if not tomorrow, Monday is a US holiday, so I should have time at least then.

vim/PKGBUILD Outdated
'perl-devel' 'python-devel' 'ruby' 'autotools' 'libxcrypt-devel'
'libiconv-devel' 'gettext-devel') # To satisfy python3/dyn feature #3052
source=(${pkgname}-${pkgver}.tar.gz::https://github.com/vim/vim/archive/v${pkgver}/${pkgbase}-{pkgver}.tar.gz
source=(${pkgname}-${pkgver}.tar.gz::https://github.com/vim/vim/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it would be better if vim was dropped from Git for Windows' i686 Pacman repository (it's not part of the x86_64 repository, therefore I assume that the build and deploy was needed only to get rid of that Perl dependency).

And now that Git for Windows v2.48.1 is out, I do not care at all about any interactive parts in i686 Git for Windows anymore, only the parts that are required to build MinGit.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the perl* stuff can equally go. That leaves only:

curl, heimdal and openssh. The others should simply be repo-remove'd from Git for Windows' i686 package database.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, I just want to make things that depend on libcrypt go away, any way they do is fine by me 😁

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it would be better if vim was dropped from Git for Windows' i686 Pacman repository (it's not part of the x86_64 repository, therefore I assume that the build and deploy was needed only to get rid of that Perl dependency).

I have to admit being thoroughly confused by this repo. I figured that git diff --merge-base upstream/master --name-only | grep '/PKGBUILD$' (where upstream is the remote for msys2/MSYS2-packages) would tell me what packages were actually relevant, and the fact that cyrus-sasl was arch=('i686') only meant that anything which has x86_64 in arch was actually relevant/present in the repo for x86_64.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do have to admit that I stopped sync'ing with msys2's master at some stage... Therefore the source of truth is the package database.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, git svn is the reason why I had to build Perl in Git for Windows (to have the Subversion<->Perl bindings) and git-for-windows/git#5405 is the ticket where I track dropping git svn support from Git for Windows. Maybe at some stage soon Git for Windows can unshadow (via repo-add) all of those perl* packages.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, now only the packages present in the x86_64 package database are in this PR. I will leave cyrus-sasl and vim to be removed from i686's package database instead of being updated. Presumably they will then sync with upstream msys2's packages in the sdk (and not really be relevant outside the sdk since they're not in mingit?)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh sorry. I meant to reply earlier: I'd like to split this commit so that each commit can have its own build-and-deploy check-run attached to it. If you don't mind, I'll do that right away.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I am not allowed to push to this PR branch, so I pushed to jeremeyd2019...gfw-libcrypt-removal instead... @jeremyd2019 would you mind force-pushing this to your PR branch (it's tree-same)?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's odd, the 'allow edits by maintainers' checkbox is checked... Oh well, done now.

@jeremyd2019
Copy link
Author

jeremyd2019 commented Feb 13, 2025

The safest way to remove them would most likely be a custom workflow that is based on a previously-embargoed workflow I planned on integrating into git-for-windows-automation already (but am constantly running out of time). This workflow (creatively named deploy-embargoed-package) was used to deploy the embargoed git-lfs and git-credential-manager packages, and it should make for a fine starting point to call repo-remove <package>... followed by an upload.

I hope to get to that particular clean-up tomorrow. And if not tomorrow, Monday is a US holiday, so I should have time at least then.

After that (and the rebuild, #219), there will need to be a way to uninstall packages from git-sdk* (if there isn't already), and we can get back to git-for-windows/git-sdk-32#39 (and most likely similar cleanup in the other sdk variants)

libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
libcrypt-devel was removed in July 2023, and libcrypt was removed in
October 2023.

Signed-off-by: Jeremy Drake <[email protected]>
Signed-off-by: Johannes Schindelin <[email protected]>
@dscho
Copy link
Member

dscho commented Feb 16, 2025

@jeremyd2019 I have not forgotten about this PR nor about git-for-windows/build-extra#594; I have been busy working on git-for-windows/build-extra#595 (and still need to become busy working on the companion build-and-deploy change in git-for-windows-automation) so that I can deploy simultaneously to Git for Windows' old as well as to its new Pacman repository. Once that's done, I will deploy 'em all.

@dscho
Copy link
Member

dscho commented Feb 17, 2025

You can follow along the deployments by looking at the check runs on the commits:

image

And I just noticed through the failed builds that I made a mistake in the commit messages: It's openssh, not openssl that was updated ;-)

@dscho
Copy link
Member

dscho commented Feb 17, 2025

Oh well, I still cannot push to the PR branch. I'll just leave the commit message as-is.

@jeremyd2019
Copy link
Author

jeremyd2019 commented Feb 17, 2025

I can do it, if that won't break what you're doing... oh, I see it's already going

@dscho
Copy link
Member

dscho commented Feb 17, 2025

I can do it, if that won't break what you're doing... oh, I see it's already going

Yeah, I am not such a stickler to correct commit messages ;-) I just want to deploy these packages 😁

@jeremyd2019
Copy link
Author

The cyrus-sasl package has been deployed specifically (and manually) to Git for Windows' i686 Pacman repository, see #112 (comment). Along with it serf, and libssh2 were deployed, too.

Is there anywhere the "shadowed" packages are documented as to why they're shadowed, so they can be checked to see if they still need to be shadowed or not?

@dscho
Copy link
Member

dscho commented Feb 17, 2025

The cyrus-sasl package has been deployed specifically (and manually) to Git for Windows' i686 Pacman repository, see #112 (comment). Along with it serf, and libssh2 were deployed, too.

Is there anywhere the "shadowed" packages are documented as to why they're shadowed, so they can be checked to see if they still need to be shadowed or not?

No, the only documentation of the reason why the cyrus-sasl package needed to be rebuilt (and hence, shadow MSYS2's version) that I could find was #112 (comment) and the commit message of 76a1448.

In general, the easiest way that I know of to check what packages Git for Windows shadows is to compare the contents of the respective package databases, i.e. something like this:

$ comm -12 \
  <(tar tf /var/lib/pacman/sync/msys.db |
    sed -n 's,\(-[^-]*\)\{2\}/$,,p' |
    sort) \
  <(tar tf /var/lib/pacman/sync/git-for-windows.db |
    sed -n '/^mingw-w64/d;s,\(-[^-]*\)\{2\}/$,,p' |
    sort)
bash
bash-devel
curl
fido2-tools
gawk
git-flow
gnupg
gnutls
heimdal
heimdal-devel
heimdal-libs
libcbor
libcbor-devel
libcurl
libcurl-devel
libfido2
libfido2-devel
libfido2-docs
libgcrypt
libgcrypt-devel
libgnutls
libgnutls-devel
libgpg-error
libgpg-error-devel
libopenssl
libpcre2_16
libpcre2_32
libpcre2_8
libpcre2posix
mintty
msys2-runtime
msys2-runtime-3.3
msys2-runtime-3.3-devel
msys2-runtime-devel
openssh
openssl
openssl-devel
openssl-docs
p7zip
pcre2
pcre2-devel
perl
perl-Clone
perl-HTML-Parser
perl-Locale-Gettext
perl-Net-SSLeay
perl-TermReadKey
perl-XML-Parser
perl-YAML-Syck
pkgconf
subversion
tig

This is the result in git-sdk-64. Let's run this in git-sdk-32, too:

bash
bash-devel
ca-certificates
curl
cyrus-sasl
docbook-xsl-ns
fido2-tools
gawk
git-flow
gnupg
gnutls
gzip
heimdal
heimdal-devel
heimdal-libs
less
libcbor
libcbor-devel
libcurl
libcurl-devel
libfido2
libfido2-devel
libfido2-docs
libgcrypt
libgcrypt-devel
libgnutls
libgnutls-devel
libgpg-error
libgpg-error-devel
libksba
libksba-devel
libopenssl
libpcre2_16
libpcre2_32
libpcre2_8
libpcre2posix
libsasl
libsasl-devel
libserf
libserf-devel
libssh2
libssh2-devel
mintty
msys2-runtime
msys2-runtime-devel
nano
openssh
openssl
openssl-devel
openssl-docs
p7zip
pcre2
pcre2-devel
perl
perl-Clone
perl-HTML-Parser
perl-Locale-Gettext
perl-Net-SSLeay
perl-TermReadKey
perl-XML-Parser
perl-YAML-Syck
pkgconf
subversion
tig
vim
zlib
zlib-devel

Looks pretty similar ;-)

@jeremyd2019
Copy link
Author

$ diff 32 64
3d2
< ca-certificates
5,6d3
< cyrus-sasl
< docbook-xsl-ns
12d8
< gzip
16d11
< less
30,31d24
< libksba
< libksba-devel
37,42d29
< libsasl
< libsasl-devel
< libserf
< libserf-devel
< libssh2
< libssh2-devel
44a32,33
> msys2-runtime-3.3
> msys2-runtime-3.3-devel
46d34
< nano
65,67d52
< vim
< zlib
< zlib-devel

@dscho
Copy link
Member

dscho commented Feb 17, 2025

Thanks @jeremyd2019 for this diff. So it looks as if we want to unshadow via:

$ repo-remove ca-certificates cyrus-sasl docbook-xsl-ns gzip less libksba libksba-devel libsasl libsasl-devel \
  libserf libserf-devel libssh2 libssh2-devel nano vim zlib zlib-devel

@dscho
Copy link
Member

dscho commented Feb 17, 2025

The deployments are all done.

@dscho dscho merged commit 8269881 into git-for-windows:main Feb 17, 2025
5 checks passed
@jeremyd2019 jeremyd2019 deleted the gfw-libcrypt-removal branch February 17, 2025 21:54
@jeremyd2019
Copy link
Author

unused dll: usr/bin/msys-crypt-0.dll

Yeah, good, but I don't know why it failed with that on i686 but not x86_64

@dscho
Copy link
Member

dscho commented Feb 18, 2025

unused dll: usr/bin/msys-crypt-0.dll

Yeah, good, but I don't know why it failed with that on i686 but not x86_64

I suspect that the reason is cyrus-sasl, which is still shadowed by Git for Windows, and therefore still depends on libcrypt.

@dscho
Copy link
Member

dscho commented Feb 20, 2025

unused dll: usr/bin/msys-crypt-0.dll

Yeah, good, but I don't know why it failed with that on i686 but not x86_64

I suspect that the reason is cyrus-sasl, which is still shadowed by Git for Windows, and therefore still depends on libcrypt.

Turns out that was it: after removing that package from Git for Windows' Pacman repository, the check-for-missing-dlls run succeeded.

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