Re: pgsql: Remove pqsignal() from libpq's official exports list.
Stephen Frost <sfrost@snowman.net>
From: Stephen Frost <sfrost@snowman.net>
To: Christoph Berg <myon@debian.org>, Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-10-09T13:37:34Z
Lists: pgsql-hackers
Greetings, * Christoph Berg (myon@debian.org) wrote: > Re: Tom Lane 2019-10-08 <9333.1570566305@sss.pgh.pa.us> > > Having said all that, if we conclude we can't break compatibility > > with this legacy code quite yet, I'd be inclined to put a > > separate, clearly-marked-as-legacy-code version of pqsignal() > > back into libpq, using the pre-9.3 SA_RESTART semantics. > > That would be nice. > > > But I'd like some pretty well-defined sunset time for that, > > because it'd just be trouble waiting to happen. When are > > you going to remove 9.2 psql? > > Note that this change caused breakage on the wiki.postgresql.org > infrastructure which still had an old 9.2 psql running. It wasn't > Debian's fault that it had not been upgraded yet. > > But I refuse to buy the argument that I'm doing something wrong here. > Shared libraries have SONAMEs to prevent *exactly* this kind of > breakage. If you are removing symbols, bump the SONAME. Yes, this is absolutely the right answer, we shouldn't be removing symbols without an SONAME bump. If we don't want to bump the SONAME, then don't remove the symbol. This is utterly basic proper library maintenance and it isn't appropriate to argue that it's about "well, your old apps shouldn't exist" because it's blatently our fault for not bumping the SONAME, no matter how old the apps are. Thanks, Stephen
Commits
-
Put back pqsignal() as an exported libpq symbol.
- 7ed1bcaed6ec 12.1 landed
- 06a367c382d0 13.0 landed
-
Remove pqsignal() from libpq's official exports list.
- f7ab80285520 12.0 cited
-
Build src/port files as a library with -fPIC, and use that in libpq.
- ea53100d5671 12.0 cited
-
Use SA_RESTART for all signals, including SIGALRM.
- 873ab97219ca 9.4.0 cited
-
Move pqsignal() to libpgport.
- da5aeccf64b3 9.3.0 cited