From owner-freebsd-ports@freebsd.org Sat May 7 09:27:31 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70BC4B31EBE for ; Sat, 7 May 2016 09:27:31 +0000 (UTC) (envelope-from girgen@FreeBSD.org) Received: from mailman.ysv.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id 60C7E1E41 for ; Sat, 7 May 2016 09:27:31 +0000 (UTC) (envelope-from girgen@FreeBSD.org) Received: by mailman.ysv.freebsd.org (Postfix) id 60192B31EBD; Sat, 7 May 2016 09:27:31 +0000 (UTC) Delivered-To: ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5FBA9B31EBC for ; Sat, 7 May 2016 09:27:31 +0000 (UTC) (envelope-from girgen@FreeBSD.org) Received: from mail.pingpong.net (mail.pingpong.net [79.136.116.202]) by mx1.freebsd.org (Postfix) with ESMTP id F41EB1E3F; Sat, 7 May 2016 09:27:30 +0000 (UTC) (envelope-from girgen@FreeBSD.org) Received: from [10.0.1.11] (h-155-4-128-242.na.cust.bahnhof.se [155.4.128.242]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.pingpong.net (Postfix) with ESMTPSA id 89C4915EDD; Sat, 7 May 2016 11:27:23 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: coinstallable version of pgsql (POC) From: Palle Girgensohn In-Reply-To: <20160506233512.GC84309@ivaldir.etoilebsd.net> Date: Sat, 7 May 2016 11:27:23 +0200 Cc: pgsql@FreeBSD.org, ports@FreeBSD.org Content-Transfer-Encoding: quoted-printable Message-Id: <6F16C952-B7FA-4945-A1CC-DDF45E17DFA0@FreeBSD.org> References: <20160506233512.GC84309@ivaldir.etoilebsd.net> To: Baptiste Daroussin X-Mailer: Apple Mail (2.3124) X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2016 09:27:31 -0000 > 7 maj 2016 kl. 01:35 skrev Baptiste Daroussin : >=20 > Hi all, >=20 > Apparently noone had time to work on making all the version of pgsql > coinstallable since we last talked about it >=20 > Here is a proof of concept done on pg95 which makes it coinstallable: > https://people.freebsd.org/~bapt/pgsql95.diff >=20 > It is unfinished given I have not enough time for that. >=20 > Basically it keeps the package split as it is now (PoC done on = clients, server, > contrib and plperl) for server what remains is renaming the rc.d = script >=20 > all binaries are now installed under lib/postgresql95/bin and a = symlink in > regular bin suffixed by the version number. >=20 > the rpath from the default built is disabled and replaced with a new = one which > ensure the order of the rpath is correct (the default one is not in = the right > order) which ensure the libpq version found in priority is the the = right > version. using rpath is good here to avoid adding a ldconfig file = which would > make other programs accidentally find the non default libpq >=20 > In order to keep the manpages, in category 1 the manpages have been = renamed to > match the name of the symlinks in the PATH >=20 > In the 7 category thet have been suffixed with postgresql${version} so = one can > really have all the manpages for all clients available and clearly = state which > one correspond to which version >=20 > the man3 and pkgconfig has been removed as they belong to the libpq = package >=20 > What is missing: create a new postgresql-libq based on latest pg = version which > is installed in the default lib directory >=20 > What I forgot here is to add a BUNDLE_LIBS=3Dyes for the solver never = to take in > accoung libpq.so.5 from those clients >=20 > Last thing would be to cleanup Mk/Uses/pgsql.mk to allow parallel = installation >=20 > I really hope you like that approach and that someone will be able to = finish it > soon. >=20 > That would be really helpful for users to be able to decide which = version of pg > they want without having to build their own packages. >=20 > It will also simplify upgrading as at one point one have tools from = all version > of postgresql available at once. >=20 > Best regards, > Bapt Hi Bapt, Sounds great. As you write, noone had enough time. I did some work but = the last couple of months nothing really happened. I'll have a look at your diff promptly! My approach was that the client always defaults to the latest released = version of PostgreSQL. That is, even if you install postgresql93-server, = it will pull in postgresql95-client. The client is backwards compatible = apart from very weird corner cases, like direct Kerberos login (not = gssapi) that was removed in 8.x or something.=20 This is what Debian does and it works for them. We should keep old = client versions around for the anxious, but they could actually = conflict, i.e. we install the server and contrib in parallel, but not = the client. That would fix the hassle of symlinks. Palle