Re: Simplify documentation related to Windows builds - Mailing list pgsql-hackers
From | Michael Paquier |
---|---|
Subject | Re: Simplify documentation related to Windows builds |
Date | |
Msg-id | ZhiN5YROp2JEocjo@paquier.xyz Whole thread Raw |
In response to | Re: Simplify documentation related to Windows builds (Robert Haas <robertmhaas@gmail.com>) |
Responses |
Re: Simplify documentation related to Windows builds
Re: Simplify documentation related to Windows builds |
List | pgsql-hackers |
On Fri, Mar 22, 2024 at 01:34:43PM -0400, Robert Haas wrote: > I'm not very knowledgeable about building software about Windows in > general, but on the rare occasions that I've done it, it was MUCH > harder to figure out where to get things like Perl that it is on Linux > or macOS machines. On Linux, your package manager probably knows about > everything you need, and if it doesn't, you can probably fix that by > adding an additional RPM repository to your configuration or using > something like CPAN to find Perl modules that your OS package manager > doesn't have. On macOS, you can install homebrew or macports and then > get most things from there. But on Windows you have to go download > installers individually for everything you need, and there's lots of > installers on the Internet, and not all of them are prepared by > equally friendly people, and not all of them necessarily work for > building PostgreSQL. Yeah. These days I personally just go through stuff like Chocolatey or msys2 to get all my dependencies, or even a minimal set of them. I suspect that most folks hanging around on pgsql-hackers do that as well. Relying on individual MSIs with many dependencies has the large downside of causing these to become easily outdated. When using the build scripts with src/tools/msvc, now gone, I've had a bunch of these in my environment hosts. As of the buildfarm, we have currently (All Hail Andrew for maintaining most of these): - faiywren, with strawberry perl and msys. OpenSSL is from a MSI. It uses meson. - drongo, with a 64b version of OpenSSL installed with a MSI. It uses meson and chocolatey. - lorikeet, cygwin, which is an ecosystem of its own. OpenSSL has been installed from a MSI, there's a System32 path. - hamerkop, with meson. OpenSSL is installed from strawberry, not a separate MSI. Python37 points to a custom MSI. So, yes, you're right that removing completely this list may be too aggressive for the end-user. As far as I can see, there are a few things that stand out: - Diff is not mentioned in the list of dependencies on the meson page, and it may not exist by default on Windows. I think that we should add it. - We don't use activeperl anymore in the buildfarm, and recommending it is not a good idea based on the state of the project. If we don't remove the entry, I would switch it to point to msys perl or even strawberry perl. Andres has expressed concerns about the strawberry part, so perhaps mentioning only msys perl would be enough? - The portion of the docs about command line editing with psql, cygwin being mentioned as an exception, does not apply AFAIK. - Mentioning more the packaging options that exist to not have to install individual MSIs would be a good addition. > So I think that it's pretty darn helpful to have some installation > instructions in the documentation for stuff like this, just like I > think it's useful that in the documentation index we tell people how > to get the doc toolchain working on various platforms. I understand > the concern about seeming to endorse particular Perl distributions or > other software bundles, but I also don't like the idea of telling > people something that boils down to "hey, it's possible to get this to > compile on Windows, and we know some methods that do work, but we're > not going to tell you what they are because we don't want to endorse > anything so ... good luck!". If we know a set of things that work, I > think we should list them in the documentation and just say that we're > not endorsing the use of these particular distributions but just > telling you that we've tested with them. And then I think we should > update that as things change. + <para> + On Windows, you can find packages for build dependencies using + <ulink url="https://www.msys2.org/">MSYS2</ulink> + or <ulink url="https://chocolatey.org/">Chocolatey</ulink>. + </para> The last patch I've sent has this diff. Were you thinking about completing this list with more options and add more command-level instructions about how to set up these environments in our docs? We could just point to anything provided by these projects. As far as I can see, MSYS2 and chocolatey are the interesting ones to mention, and these are used in the buildfarm at some extent. -- Michael
Attachment
pgsql-hackers by date: