Thread: Removing service-related code in pg_ctl for Cygwin
Hi all, Beginning a new thread seems more adapted regarding $subject but that's mentioned here as well: http://www.postgresql.org/message-id/CAB7nPqQXghm_SdB5iniupz1atzMxk=95gv9A8ocdo83SXCNjeg@mail.gmail.com It happens based on some investigation from Andrew that cygwin does not need to use the service-related code, aka register/unregister options or similar that are proper to WIN32 and rely instead on cygrunsrv with a SYSV-like init file to manage the service. Based on my tests with cygwin, I am able to see as well that a server started within a cygwin session is able to persist even after it is closed, which is kind of nice and I think that it is a additional reason to not use the service-related code paths. Hence what about the following patch, that makes cygwin behave like any *nix OS when using pg_ctl? This simplifies a bit the code. Marco, as I think you do some packaging for Postgres in Cygwin, and others, does that sound acceptable? Regards, -- Michael
Attachment
On 14/01/2016 06:38, Michael Paquier wrote: > Hi all, > > Beginning a new thread seems more adapted regarding $subject but > that's mentioned here as well: > http://www.postgresql.org/message-id/CAB7nPqQXghm_SdB5iniupz1atzMxk=95gv9A8ocdo83SXCNjeg@mail.gmail.com > > It happens based on some investigation from Andrew that cygwin does > not need to use the service-related code, aka register/unregister > options or similar that are proper to WIN32 and rely instead on > cygrunsrv with a SYSV-like init file to manage the service. Based on > my tests with cygwin, I am able to see as well that a server started > within a cygwin session is able to persist even after it is closed, > which is kind of nice and I think that it is a additional reason to > not use the service-related code paths. Hence what about the following > patch, that makes cygwin behave like any *nix OS when using pg_ctl? > This simplifies a bit the code. > > Marco, as I think you do some packaging for Postgres in Cygwin, and > others, does that sound acceptable? > > Regards, > In general cygwin to behave like any *nix OS is the preferred solution.
On 01/14/2016 12:38 AM, Michael Paquier wrote: > Hi all, > > Beginning a new thread seems more adapted regarding $subject but > that's mentioned here as well: > http://www.postgresql.org/message-id/CAB7nPqQXghm_SdB5iniupz1atzMxk=95gv9A8ocdo83SXCNjeg@mail.gmail.com > > It happens based on some investigation from Andrew that cygwin does > not need to use the service-related code, aka register/unregister > options or similar that are proper to WIN32 and rely instead on > cygrunsrv with a SYSV-like init file to manage the service. Based on > my tests with cygwin, I am able to see as well that a server started > within a cygwin session is able to persist even after it is closed, > which is kind of nice and I think that it is a additional reason to > not use the service-related code paths. Hence what about the following > patch, that makes cygwin behave like any *nix OS when using pg_ctl? > This simplifies a bit the code. > > Marco, as I think you do some packaging for Postgres in Cygwin, and > others, does that sound acceptable? > I think we can be a bit more adventurous and remove all the Cygwin-specific code. See attached patch, which builds fine on buildfarm cockatiel. cheers andrew
Attachment
Andrew Dunstan wrote: > I think we can be a bit more adventurous and remove all the Cygwin-specific > code. See attached patch, which builds fine on buildfarm cockatiel. Hopefully you also tested that it builds under MSVC :-) -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
On 01/18/2016 12:38 PM, Alvaro Herrera wrote: > Andrew Dunstan wrote: > >> I think we can be a bit more adventurous and remove all the Cygwin-specific >> code. See attached patch, which builds fine on buildfarm cockatiel. > Hopefully you also tested that it builds under MSVC :-) > Why would I? This isn't having the slightest effect on MSVC builds. cheers andrew
Andrew Dunstan wrote: > > > On 01/18/2016 12:38 PM, Alvaro Herrera wrote: > >Andrew Dunstan wrote: > > > >>I think we can be a bit more adventurous and remove all the Cygwin-specific > >>code. See attached patch, which builds fine on buildfarm cockatiel. > >Hopefully you also tested that it builds under MSVC :-) > > Why would I? This isn't having the slightest effect on MSVC builds. You never know ... you might have inadvertently broken some WIN32 block. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
On 01/18/2016 03:46 PM, Alvaro Herrera wrote: > Andrew Dunstan wrote: >> >> On 01/18/2016 12:38 PM, Alvaro Herrera wrote: >>> Andrew Dunstan wrote: >>> >>>> I think we can be a bit more adventurous and remove all the Cygwin-specific >>>> code. See attached patch, which builds fine on buildfarm cockatiel. >>> Hopefully you also tested that it builds under MSVC :-) >> Why would I? This isn't having the slightest effect on MSVC builds. > You never know ... you might have inadvertently broken some WIN32 block. > If you can point out a line where that might be true I'll test it ;-) cheers andrew
On Tue, Jan 19, 2016 at 2:32 AM, Andrew Dunstan <andrew@dunslane.net> wrote: > > > On 01/14/2016 12:38 AM, Michael Paquier wrote: >> >> Hi all, >> >> Beginning a new thread seems more adapted regarding $subject but >> that's mentioned here as well: >> >> http://www.postgresql.org/message-id/CAB7nPqQXghm_SdB5iniupz1atzMxk=95gv9A8ocdo83SXCNjeg@mail.gmail.com >> >> It happens based on some investigation from Andrew that cygwin does >> not need to use the service-related code, aka register/unregister >> options or similar that are proper to WIN32 and rely instead on >> cygrunsrv with a SYSV-like init file to manage the service. Based on >> my tests with cygwin, I am able to see as well that a server started >> within a cygwin session is able to persist even after it is closed, >> which is kind of nice and I think that it is a additional reason to >> not use the service-related code paths. Hence what about the following >> patch, that makes cygwin behave like any *nix OS when using pg_ctl? >> This simplifies a bit the code. >> >> Marco, as I think you do some packaging for Postgres in Cygwin, and >> others, does that sound acceptable? >> > > > > I think we can be a bit more adventurous and remove all the Cygwin-specific > code. See attached patch, which builds fine on buildfarm cockatiel. Ah, OK. I see the difference. It builds as well for me. -#ifndef __CYGWIN__ - AddUserToTokenDacl(restrictedToken); -#endif [...] -#if defined(WIN32) || defined(__CYGWIN__) +#ifdef WIN32 setvbuf(stderr, NULL, _IONBF, 0);#endif Fine for me, those two do not seem to matter much as far as I have tested. -- Michael
On 18/01/2016 18:32, Andrew Dunstan wrote: > > > On 01/14/2016 12:38 AM, Michael Paquier wrote: >> Hi all, >> >> Beginning a new thread seems more adapted regarding $subject but >> that's mentioned here as well: >> http://www.postgresql.org/message-id/CAB7nPqQXghm_SdB5iniupz1atzMxk=95gv9A8ocdo83SXCNjeg@mail.gmail.com >> >> >> >> Marco, as I think you do some packaging for Postgres in Cygwin, and >> others, does that sound acceptable? >> > > > > I think we can be a bit more adventurous and remove all the > Cygwin-specific code. See attached patch, which builds fine on buildfarm > cockatiel. > > cheers > > andrew > builds fine also here on 64bit