Re: Allow installation of PostgreSQL extensions outside ports
On Tue, Oct 14, 2014 at 07:48:36PM -0700, Jeremy Evans wrote: Just like ruby before the recently committed change, it is not possible to install PostgreSQL extensions without a ports checkout since the change to run fake as a regular user. This unbreaks the situation, using a similar approach as for ruby. Default to /usr/bin/install for the install program, and if the BSD_INSTALL_SCRIPT environment variable is set, use that (minus the -m 755). Tested with databases/postgresql-pllua, both inside the ports system and outside it. As with ruby, FAKE_AS_ROOT = always-wrap is no longer necessary after this change. With this patch, devel/ptlib would be the sole user of FAKE_AS_ROOT = always-wrap. OKs? Cool. That's a nice solution. I forgot about ptlib... it will probably need more of the same. Then FAKE_AS_ROOT=yes/always-wrap will only be kept as temporary measures when we run into similar issues...
Re: Allow installation of PostgreSQL extensions outside ports
On Tue, Oct 14, 2014 at 07:48:36PM -0700, Jeremy Evans wrote: Just like ruby before the recently committed change, it is not possible to install PostgreSQL extensions without a ports checkout since the change to run fake as a regular user. This unbreaks the situation, using a similar approach as for ruby. Default to /usr/bin/install for the install program, and if the BSD_INSTALL_SCRIPT environment variable is set, use that (minus the -m 755). Tested with databases/postgresql-pllua, both inside the ports system and outside it. As with ruby, FAKE_AS_ROOT = always-wrap is no longer necessary after this change. With this patch, devel/ptlib would be the sole user of FAKE_AS_ROOT = always-wrap. OKs? Looks good to me. ok pea@ Thanks, Jeremy Index: Makefile === RCS file: /cvs/ports/databases/postgresql/Makefile,v retrieving revision 1.193 diff -u -p -r1.193 Makefile --- Makefile 23 Sep 2014 08:41:10 - 1.193 +++ Makefile 15 Oct 2014 02:12:16 - @@ -10,15 +10,13 @@ COMMENT-plpython=Python procedural langu # in case a dump before / restore after pkg_add -u is required! VERSION= 9.3.5 -REVISION-server= 0 +REVISION-server= 1 DISTNAME=postgresql-${VERSION} PKGNAME-main=postgresql-client-${VERSION} PKGNAME-server= postgresql-server-${VERSION} PKGNAME-docs=postgresql-docs-${VERSION} PKGNAME-contrib=postgresql-contrib-${VERSION} PKGNAME-plpython=postgresql-plpython-${VERSION} -FAKE_AS_ROOT=always-wrap - CATEGORIES= databases SHARED_LIBS= ecpg7.5 \ @@ -146,8 +144,14 @@ DOCS=${WRKSRC}/COPYRIGHT ${WRKSRC}/HIST pre-build: touch ${WRKSRC}/doc/src/sgml/*-stamp +INSTALL_REPLACE = 's/^install_bin = .*$$/ifdef BSD_INSTALL_SCRIPT\ninstall_bin +INSTALL_REPLACE += = \$$\(subst -m 755,,\$${BSD_INSTALL_SCRIPT}\) +INSTALL_REPLACE += \nelse\ninstall_bin = \/usr\/bin\/install -c -o ${BINOWN} +INSTALL_REPLACE += -g ${BINGRP}\nendif/' post-install: ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/postgresql ${INSTALL_DATA} ${DOCS} ${PREFIX}/share/doc/postgresql + perl -i -pe ${INSTALL_REPLACE} \ + ${PREFIX}/lib/postgresql/pgxs/src/Makefile.global .include bsd.port.mk
Allow installation of PostgreSQL extensions outside ports
Just like ruby before the recently committed change, it is not possible to install PostgreSQL extensions without a ports checkout since the change to run fake as a regular user. This unbreaks the situation, using a similar approach as for ruby. Default to /usr/bin/install for the install program, and if the BSD_INSTALL_SCRIPT environment variable is set, use that (minus the -m 755). Tested with databases/postgresql-pllua, both inside the ports system and outside it. As with ruby, FAKE_AS_ROOT = always-wrap is no longer necessary after this change. With this patch, devel/ptlib would be the sole user of FAKE_AS_ROOT = always-wrap. OKs? Thanks, Jeremy Index: Makefile === RCS file: /cvs/ports/databases/postgresql/Makefile,v retrieving revision 1.193 diff -u -p -r1.193 Makefile --- Makefile23 Sep 2014 08:41:10 - 1.193 +++ Makefile15 Oct 2014 02:12:16 - @@ -10,15 +10,13 @@ COMMENT-plpython=Python procedural langu # in case a dump before / restore after pkg_add -u is required! VERSION= 9.3.5 -REVISION-server= 0 +REVISION-server= 1 DISTNAME= postgresql-${VERSION} PKGNAME-main= postgresql-client-${VERSION} PKGNAME-server=postgresql-server-${VERSION} PKGNAME-docs= postgresql-docs-${VERSION} PKGNAME-contrib=postgresql-contrib-${VERSION} PKGNAME-plpython=postgresql-plpython-${VERSION} -FAKE_AS_ROOT= always-wrap - CATEGORIES=databases SHARED_LIBS= ecpg7.5 \ @@ -146,8 +144,14 @@ DOCS= ${WRKSRC}/COPYRIGHT ${WRKSRC}/HIST pre-build: touch ${WRKSRC}/doc/src/sgml/*-stamp +INSTALL_REPLACE = 's/^install_bin = .*$$/ifdef BSD_INSTALL_SCRIPT\ninstall_bin +INSTALL_REPLACE += = \$$\(subst -m 755,,\$${BSD_INSTALL_SCRIPT}\) +INSTALL_REPLACE += \nelse\ninstall_bin = \/usr\/bin\/install -c -o ${BINOWN} +INSTALL_REPLACE += -g ${BINGRP}\nendif/' post-install: ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/postgresql ${INSTALL_DATA} ${DOCS} ${PREFIX}/share/doc/postgresql + perl -i -pe ${INSTALL_REPLACE} \ + ${PREFIX}/lib/postgresql/pgxs/src/Makefile.global .include bsd.port.mk