MSYS2-packages icon indicating copy to clipboard operation
MSYS2-packages copied to clipboard

[RFC] Dropping old msys/i686 packages from repo.msys2.org [edit:] sync instead

Open lazka opened this issue 1 year ago • 11 comments

Context: Motivated by https://github.com/jeremyd2019/msys2-build32/issues/2#issuecomment-2170938529

We currently still have 32bit msys packages hosted on repo.msys2.rog: https://repo.msys2.org/msys/i686/

We dropped support for them 4 years ago, but updated them once more about 3 years ago based on jeremy's builds, to keep them somewhat usable.

Since @jeremyd2019 is still putting work into them and building all packages we could just remove our remaining packages and point to his repo instead:

  • Check the logs if there are any users of those packages
  • (optional) rename the dir to see if anyone complains
  • Drop msys/i686 and the 32bit sfx/tarball
  • Point users to https://github.com/jeremyd2019/msys2-installer/releases if they need 32bit still

lazka avatar Jun 16 '24 17:06 lazka

I would have to adjust some scripts, currently I still have the i686 [msys] section in pacman.conf, but my new [build32] section is first, but that repo now has everything that the msys repo has so it'd just cause errors syncing.

My 'main' 32-bit tag of jeremyd2019/setup-msys2 uses the original 32-bit sfx and repos to install (and then I modify pacman.conf later on), so there will be some accesses from that. I also have another branch that uses my installer and build32 repo directly, and that would probably be a better choice to use moving forward - but I never switched on jeremyd2019/msys2-build32 because I want to exercise the update path.

jeremyd2019 avatar Jun 16 '24 18:06 jeremyd2019

I would have to adjust some scripts, currently I still have the i686 [msys] section in pacman.conf, but my new [build32] section is first, but that repo now has everything that the msys repo has so it'd just cause errors syncing.

I could leave an empty db there, if it helps.

lazka avatar Jun 16 '24 18:06 lazka

Check the logs if there are any users of those packages

Here are the 32bit logs for last week, excluding cloud IP addresses (we had an outage, so it's not complete)

--------  ----------------------------------------------------------------------
Start     2024-06-12T12:25:36Z
End       2024-06-17T05:22:06Z
Requests  2480
Clients   122 (Clients are grouped by IP+WinVer+Arch, which is far from perfect)
--------  ----------------------------------------------------------------------

     Repo    Type    % Requests    Requests
---------  ------  ------------  ----------
msys/i686     pkg       100.00%        1936

     Repo    Type    % Requests    Requests
---------  ------  ------------  ----------
msys/i686      db       100.00%         544

  Windows    % Clients    Clients    % Requests    Requests
---------  -----------  ---------  ------------  ----------
       10       53.28%         65        40.97%        1016
        7       22.13%         27        24.72%         613
      8.1       13.93%         17         1.41%          35
       11       10.66%         13        32.90%         816

  Win Ver    Build Number    % Clients    Clients
---------  --------------  -----------  ---------
       10           19045       33.61%         41
      6.1            7601       22.13%         27
       10              -1       16.39%         20
      6.3            9600       13.93%         17
       10           22631        7.38%          9
       10           22621        3.28%          4
       10           19042        0.82%          1
       10           19041        0.82%          1
       10           19044        0.82%          1
       10           17763        0.82%          1

  Pacman Ver    % Clients    Clients
------------  -----------  ---------
       6.0.0       69.67%         85
       5.1.1       13.93%         17
       5.2.1       10.66%         13
       5.0.1        2.46%          3
       6.1.0        1.64%          2
       5.2.2        0.82%          1
       5.1.3        0.82%          1

  Arch    WOW64    % Clients    Clients
------  -------  -----------  ---------
  i686     True       60.66%         74
  i686    False       39.34%         48

Filtering out WOW64, that makes 48 users, which is 0.1%:

--------  ---------------------------------------------------------------------
Start     2024-06-12T15:24:44Z
End       2024-06-17T05:22:06Z
Requests  431
Clients   48 (Clients are grouped by IP+WinVer+Arch, which is far from perfect)
--------  ---------------------------------------------------------------------

     Repo    Type    % Requests    Requests
---------  ------  ------------  ----------
msys/i686     pkg       100.00%         228

     Repo    Type    % Requests    Requests
---------  ------  ------------  ----------
msys/i686      db       100.00%         203

  Windows    % Clients    Clients    % Requests    Requests
---------  -----------  ---------  ------------  ----------
        7       41.67%         20        71.23%         307
      8.1       31.25%         15         7.19%          31
       10       27.08%         13        21.58%          93

  Win Ver    Build Number    % Clients    Clients
---------  --------------  -----------  ---------
      6.1            7601       41.67%         20
      6.3            9600       31.25%         15
       10           19045       20.83%         10
       10           19042        2.08%          1
       10           19041        2.08%          1
       10           17763        2.08%          1

  Pacman Ver    % Clients    Clients
------------  -----------  ---------
       6.0.0       85.42%         41
       5.2.1       12.50%          6
       6.1.0        2.08%          1

  Arch    WOW64    % Clients    Clients
------  -------  -----------  ---------
  i686    False      100.00%         48

lazka avatar Jun 17 '24 07:06 lazka

A reasonable question to ask is whether filtering out wow64 is a good assumption. 1) I build 32-bit packages on wow64, and 2) I think i686 on arm64 counts as wow64, but windows 10 could not run x86_64 binaries yet. This is actually the last remaining use case I have for i686 msys2, now that my 32-bit-UEFI tablet is dead. Either way, I suppose that's a negligible number of users in the scheme of things.

BTW, my plan for this has always been to stop building i686 packages when windows 10 goes out of support in October 2025. I also planned to leave packages at old versions if it became impossible to build newer versions for i686, but luckily everything has worked out so far except msys2-runtime and msys2-runtime-3.4. For a while doxygen was giving me address space trouble trying to build, but a subsequent update started working again.

jeremyd2019 avatar Jun 17 '24 17:06 jeremyd2019

Jinxed myself... aspell-de is giving me trouble now, for no apparent reason (the update was just to pkgver, the package itself hasn't changed).

For some reason, aspell 0.60.8-2-i686 works, and 0.60.8-3 and 0.60.8.1-1 crash building aspell-de. Rebuilding aspell 0.60.8.1 does not help. 0.60.8-3 was just a rebuild anyway.

jeremyd2019 avatar Jun 17 '24 18:06 jeremyd2019

I remember aspell crashes some time ago for 64bit. I don't remember what the issue was though. maybe it fixed itself or we got lucky.

lazka avatar Jun 17 '24 18:06 lazka

I just built aspell-de with 0.60.0-2 for now. Nothing seems to depend on aspell except more aspell stuff anyway.

jeremyd2019 avatar Jun 18 '24 04:06 jeremyd2019

For the record, Git for Windows uses those packages and will need to continue supporting i686 builds until April 2029...

dscho avatar Jun 18 '24 10:06 dscho

assuming you didn't mean aspell :grin:.... sorry to get off-topic there

so that kind of puts a wrench on that idea. What about lazka's original idea of doing another sync with my updated packages? Would that mess up Git for Windows somehow?

jeremyd2019 avatar Jun 18 '24 15:06 jeremyd2019

What about lazka's original idea of doing another sync with my updated packages? Would that mess up Git for Windows somehow?

I think this would most likely be beneficial to Git for Windows. Is there anything I can do to assist?

dscho avatar Jun 20 '24 08:06 dscho

ok, I'll try another sync then some time. I don't think there is anything you can help with, thanks.

lazka avatar Jun 22 '24 07:06 lazka

remember now to remove msys2-runtime-3.3{,-devel} from the 32-bit repos if/when you sync, in addition to anything not in the 64-bit repos.

jeremyd2019 avatar Feb 07 '25 22:02 jeremyd2019

oh, I see, the-32bit repo never had any packages removed it seems. Thanks, I'll try to diff them.

lazka avatar Feb 08 '25 13:02 lazka

Sync is done, installer tarballs will follow tomorrow.

lazka avatar Feb 08 '25 16:02 lazka

oh, I see, the-32bit repo never had any packages removed it seems. Thanks, I'll try to diff them.

Yeah, based on my original design of having build32 basically be an overlay on i686/msys, if I removed anything from it, it would just fall back to an even older version in i686/msys. At one point when you were talking about dropping i686/msys, I merged the latest versions of everything from i686/msys that was not in build32, so I could have changed to replacing i686/msys with build32, and could then have removed things from it, but I never got around to it because i686/msys was never dropped.

Sync is done, installer tarballs will follow tomorrow.

Please also do the .sfx.exe. That's what I use.

jeremyd2019 avatar Feb 08 '25 18:02 jeremyd2019

Yeah, based on my original design of having build32 basically be an overlay on i686/msys [...]

ah, right, makes sense.

Please also do the .sfx.exe. That's what I use.

sure, done


One difference I noticed is that autorebase is now required before the first start, as gpg fill fail otherwise. I think previously the initial setup worked without it.

lazka avatar Feb 09 '25 08:02 lazka

One difference I noticed is that autorebase is now required before the first start, as gpg fill fail otherwise. I think previously the initial setup worked without it.

That's odd, I've built installers for i686 corresponding to the 64-bit installer releases, and I've not seen that with any of them. It'd be bad luck if it decided to fail like that right when you did a sync/new installer.

jeremyd2019 avatar Feb 09 '25 15:02 jeremyd2019

One difference I noticed is that autorebase is now required before the first start, as gpg fill fail otherwise. I think previously the initial setup worked without it.

works for ~me~ gha: https://github.com/jeremyd2019/setup-msys2/actions/runs/13227295124/job/36919801491

jeremyd2019 avatar Feb 09 '25 15:02 jeremyd2019

works for ~me~ gha: https://github.com/jeremyd2019/setup-msys2/actions/runs/13227295124/job/36919801491

only the gpg key refresh was failing (I assume dirmngr is the issue), which is skipped in setup-msys2

lazka avatar Feb 09 '25 15:02 lazka

works for ~me~ gha: https://github.com/jeremyd2019/setup-msys2/actions/runs/13227295124/job/36919801491

only the gpg key refresh was failing (I assume dirmngr is the issue), which is skipped in setup-msys2

ok, yeah, I'm seeing that locally too. very strange, 2024-12-08 was working. even stranger is it seems to have started working partway through:

gpg: error running '/usr/bin/dirmngr': exit status 2
gpg: failed to start dirmngr '/usr/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: error retrieving '[email protected]' via WKD: No dirmngr
gpg: error reading key: No dirmngr
gpg: error running '/usr/bin/dirmngr': exit status 2
gpg: failed to start dirmngr '/usr/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: keyserver refresh failed: No dirmngr
==> ERROR: Could not update key: F40D263ECA25678A
gpg: error running '/usr/bin/dirmngr': exit status 2
gpg: failed to start dirmngr '/usr/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: error retrieving '[email protected]' via WKD: No dirmngr
gpg: error reading key: No dirmngr
gpg: error running '/usr/bin/dirmngr': exit status 2
gpg: failed to start dirmngr '/usr/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: keyserver refresh failed: No dirmngr
==> ERROR: Could not update key: 790AE56A1D3CFDDC
gpg: error running '/usr/bin/dirmngr': exit status 2
gpg: failed to start dirmngr '/usr/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: error retrieving '[email protected]' via WKD: No dirmngr
gpg: error reading key: No dirmngr
gpg: error running '/usr/bin/dirmngr': exit status 2
gpg: failed to start dirmngr '/usr/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: keyserver refresh failed: No dirmngr
==> ERROR: Could not update key: DA7EF2ABAEEA755C
gpg: error running '/usr/bin/dirmngr': exit status 2
gpg: failed to start dirmngr '/usr/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: error retrieving '[email protected]' via WKD: No dirmngr
gpg: error reading key: No dirmngr
gpg: error running '/usr/bin/dirmngr': exit status 2
gpg: failed to start dirmngr '/usr/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: keyserver refresh failed: No dirmngr
==> ERROR: Could not update key: 755B8182ACD22879
gpg: error retrieving '[email protected]' via WKD: No data
gpg: error reading key: No data
gpg: refreshing 1 key from hkps://keyserver.ubuntu.com
gpg: key 9F418C233E652008: "Ignacio Casal Quinteiro <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: error retrieving '[email protected]' via WKD: No data
gpg: error reading key: No data
gpg: refreshing 1 key from hkps://keyserver.ubuntu.com
gpg: key BBE514E53E0D0813: "Ray Donnelly (MSYS2 Developer - master key) <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: error retrieving '[email protected]' via WKD: No data
gpg: error reading key: No data
gpg: refreshing 1 key from hkps://keyserver.ubuntu.com
gpg: key 5F92EFC1A47D45A1: "Alexey Pavlov (Alexpux) <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: error retrieving '[email protected]' via WKD: No data
gpg: error reading key: No data
gpg: refreshing 1 key from hkps://keyserver.ubuntu.com
gpg: key 974C8BE49078F532: "David Macek <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: error retrieving '[email protected]' via WKD: No data
gpg: error reading key: No data
gpg: refreshing 1 key from hkps://keyserver.ubuntu.com
gpg: key FA11531AA0AA7F57: "Christoph Reiter (MSYS2 development key) <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: error retrieving '[email protected]' via WKD: Try again later
gpg: error reading key: Try again later
gpg: refreshing 1 key from hkps://keyserver.ubuntu.com
gpg: key 794DCF97F93FC717: "Martell Malone (martell) <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: error retrieving '[email protected]' via WKD: No data
gpg: error reading key: No data
gpg: refreshing 1 key from hkps://keyserver.ubuntu.com
gpg: key D595C9AB2C51581E: "Martell Malone (MSYS2 Developer) <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg: error retrieving '[email protected]' via WKD: No data
gpg: error reading key: No data
gpg: refreshing 1 key from hkps://keyserver.ubuntu.com
gpg: key 4DF3B7664CA56930: "Ray Donnelly (MSYS2 Developer) <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
Initial setup complete. MSYS2 is now ready to use.

jeremyd2019 avatar Feb 09 '25 16:02 jeremyd2019

Should I run autorebase before packaging things up?

lazka avatar Feb 09 '25 16:02 lazka

relevant overlaps for dirmngr:

/usr/bin/msys-gnutls-30.dll                   base 0x61e40000 size 0x001de000 *
/usr/bin/msys-intl-8.dll                      base 0x62000000 size 0x00024000 *

/usr/bin/msys-unistring-5.dll                 base 0x63d40000 size 0x00205000 *
/usr/bin/msys-gmp-10.dll                      base 0x63d80000 size 0x00088000 *

yeah, that would help. probably remove the rebase db after though

jeremyd2019 avatar Feb 09 '25 16:02 jeremyd2019

yeah, that would help. probably remove the rebase db after though

I'm a bit out of the loop re rebase: why remove it?

lazka avatar Feb 09 '25 16:02 lazka

just that it's not necessary to package

jeremyd2019 avatar Feb 09 '25 16:02 jeremyd2019

Wouldn't it make sense to keep it to also make the install hook work out of the box?

:: Running post-transaction hooks...
(1/1) Rebasing DLLs
rebase: failed to open rebase database "/etc/rebase.db.i386":
No such file or directory
error: command failed to execute correctly

lazka avatar Feb 09 '25 17:02 lazka

I suppose. It just never has been part of the installers.

jeremyd2019 avatar Feb 09 '25 17:02 jeremyd2019

ok, I just put up a new release

edit: here was my script to sync btw: https://github.com/msys2/msys2-devtools/commit/8ff47b78e826e967df8f0bfd1cb0c1115fad02cb

lazka avatar Feb 09 '25 18:02 lazka

I guess this is done now.

If there are any more syncs needed in the future, let me know.

lazka avatar Feb 12 '25 13:02 lazka