[arch-general] packaging mingw-w64-gtksourceview5 and mingw-w64-libadwaita

Marius Kittler mkittler at suse.de
Sun Jun 26 19:31:20 UTC 2022


Hi,

> I was looking for a Linux distro that has a solid Mingw-w64 library
> collection to use as docker image in CI. Fedora doesn't have mingw-w64-gtk4
> while Arch does, so I decided to use the latter.

Note that at this point there are exactly 5 mingw-w64 package available on 
*official* Arch Linux repositories and those have been added to the official Arch 
Linux repositories only for Wine (which needs to build DLLs).

Everything else is provided via the community-operated AUR, a source code 
repository. I also provide an unofficial binary repository which contains a 
quite large subset of the mingw-w64 packages from the AUR (see https://
wiki.archlinux.org/title/Unofficial_user_repositories#ownstuff).

So while there is a very big collection of mingw-w64 packages *for* Arch 
Linux, the distribution itself only provides very few packages. (That is not 
necessarily a bad thing. Official Arch developers can focus on the distribution 
itself while other contributors (such as me) can focus on additional use-cases 
like cross-compilation. Distributing the work makes sense as well as splitting 
repositories.)

> Dear Arch package maintainers …

Therefore official Arch maintainers are likely not the ones to ask here. It is 
very unlikely that they suddenly decide to adopt a large number of mingw-w64 
packages from the AUR (and considering that I already provide a binary 
repository it is likely also not really necessary).

If you want new  mingw-w64 packages, simply create the PKGBUILDs and upload 
them to the AUR (see https://wiki.archlinux.org/title/Arch_package_guidelines 
and https://wiki.archlinux.org/title/MinGW_package_guidelines or simply 
checkout how other mingw-w64 packages of projects using the same build system 
are structured). If you want me to add existing AUR packages to the binary 
repo, you can ask on GitHub (https://github.com/Martchus/PKGBUILDs/issues/94).

> This might help attract Windows users to Gnome/Linux...

I once built Evince for Windows (because I could) and I must say that I wasn't 
really happy with the result. GTK applications feel very alien under Windows, 
especially GNOME-flavored ones. They neither follow the style of traditional 
applications nor the new "Universal" style. Not even the standard dialogs are 
native. So I doubt the effort will be appreciated much by Windows users. (I 
personally like to use KDE apps on Windows, though. They feel very native 
thanks to Qt.)

> Dear Arch package maintainers, may I ask you to, please, package the most
> recent version of mingw-w64-gtksourceview5 and mingw-w64-libadwaita so I
> can go ahead?

As I mentioned before, nothing prevents you from packaging those yourself. It 
is really not that hard once you're getting into it. (And since you also want 
to build the application using those libs itself you will have to get into it 
anyways.)

> I saw this MSYS2 package (they use pacman) that might help you with
> compilation flags, etc.:
> 
> https://packages.msys2.org/base/mingw-w64-gtksourceview5
> https://packages.msys2.org/base/mingw-w64-libadwaita

So you even already know where to look for patches, etc. :-)

> …collection to use as docker image in CI.

About container images: If you want to invoke makepkg itself in the container 
(to build a new mingw-w64 package) you can have a look at my 
`makecontainerpkg` script:
https://github.com/Martchus/PKGBUILDs#container-image-building-packages-within-a-container=

It requires some knowledge about Arch Linux package/repository management but 
this approach should allow you to build Arch Linux packages on any 
distribution. (I only tested it with Docker under Arch Linux so far.)

The official way to build packages for Arch is documented here:
https://wiki.archlinux.org/title/DeveloperWiki:Building_in_a_clean_chroot
(That's also what I'm using to build the mentioned binary repository.)

Best Regards
Marius





More information about the arch-general mailing list