From d5cc4bcc08adee1937aa44bd4eefb56f9034b12b Mon Sep 17 00:00:00 2001 From: Jakub Jirutka Date: Sat, 28 Jan 2017 01:57:29 +0100 Subject: main/postgresql: correctly fix problem with libperl.so --- main/postgresql/APKBUILD | 8 +++++--- main/postgresql/perl-rpath.patch | 22 ++++++++++++++++++++++ main/postgresql/postgresql-plperl.post-install | 6 ------ 3 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 main/postgresql/perl-rpath.patch delete mode 100644 main/postgresql/postgresql-plperl.post-install (limited to 'main/postgresql') diff --git a/main/postgresql/APKBUILD b/main/postgresql/APKBUILD index d219a597a3..08ccd2207e 100644 --- a/main/postgresql/APKBUILD +++ b/main/postgresql/APKBUILD @@ -16,9 +16,9 @@ makedepends="$depends_dev libedit-dev zlib-dev libxml2-dev util-linux-dev openldap-dev tcl-dev perl-dev python-dev" subpackages="$pkgname-contrib $pkgname-dev $pkgname-doc libpq $pkgname-libs $pkgname-client $pkgname-plperl $pkgname-plpython $pkgname-pltcl" -patches="initdb.patch" source="ftp://ftp.$pkgname.org/pub/source/v$pkgver/$pkgname-$pkgver.tar.bz2 - $patches + initdb.patch + perl-rpath.patch $pkgname.initd $pkgname.confd pg-restore.initd @@ -126,7 +126,6 @@ contrib() { plperl() { depends="" pkgdesc="PL/Perl procedural language for PostgreSQL" - install="$subpkgname.post-install" mkdir -p "$subpkgdir"/usr/lib/postgresql mv "$pkgdir"/usr/lib/postgresql/plperl.so "$subpkgdir"/usr/lib/postgresql/plperl.so @@ -165,18 +164,21 @@ pltcl() { md5sums="92ae6d7cdf18e648b3c22d0aa015565d postgresql-9.6.1.tar.bz2 538fa611966ee43c001dafdc1587c170 initdb.patch +643a56ee96d8de682ada8aba52a9fb53 perl-rpath.patch a7a193cce4443998e3a47fde4f10723e postgresql.initd e63ec8cd30cb33e812f79f06892b6dc4 postgresql.confd 140ed427fe54b435064f0e3c6f683aea pg-restore.initd bf45384752b320b369f1425939763178 pg-restore.confd" sha256sums="e5101e0a49141fc12a7018c6dad594694d3a3325f5ab71e93e0e51bd94e51fcd postgresql-9.6.1.tar.bz2 abd3761ecb47e41625d21bfda6a36badb047b0bedfd7cf0b1fbe61914fb3c9bc initdb.patch +83e79ccc98b12d68a9620ae528d6ac37012841a7c120477e05e327fb52eadb38 perl-rpath.patch af57a4190b1f5019290d26429b973d31465a8224a2e552fc3ecaf4fb4e471d7f postgresql.initd 5ad3d9d0cd9d361ce453e5ec28ee04c9a17969842abd0150b5b65bc1967d4ee6 postgresql.confd e509cdb77a4be8a74381b039bb8e5dc3a7b7ef3375785acf967092e4e6a34215 pg-restore.initd 31414d8b57c4cd2116b6014de3f1329875151910753fbd616daec4554866d02f pg-restore.confd" sha512sums="f27af67f9a96f6327150330bf091a803e10eabbac4e488cf5e4d72907e2eb1dbde7282fe0b89fd75711fd8bdcdb3688b5a9eac1e4d6871f4e8681c9c8b0e7c45 postgresql-9.6.1.tar.bz2 0b88eee78380ed6cf543c851ac1cea5fc50bb6ef1bb51e03694003f43d2bf4e117ff06657f958d0e9c00ace3b8a6bab6ed0bd017d23f80cfd203dab33da81d46 initdb.patch +5f9d8bb4957194069d01af8ab3abc6d4d83a7e7f8bd7ebe1caae5361d621a3e58f91b14b952958138a794e0a80bc154fbb7e3e78d211e2a95b9b7901335de854 perl-rpath.patch af37b100cc67769817e4c9e997abecf50475d7f0bf9b0f1d51bf8454d45abd6c87d5d315ed6cafd14e0dd059e96723a6203b756236070d12968816666e63e522 postgresql.initd 5b2fe18e38b5bef6fc289ff7701148dd5608d98002db046b183d715b718f96e22c01ba0adc5b590c386694c3eefae1a0a30425b985965ed2238e3858923b91ec postgresql.confd f5a1cba051e7d846c2d16703514601cb25729ed96b677c9bd0c199d64552120a8b14b238af01917fdb87106681e12dee6fff7447558155ba273e4f96be5e2892 pg-restore.initd diff --git a/main/postgresql/perl-rpath.patch b/main/postgresql/perl-rpath.patch new file mode 100644 index 0000000000..a2505acf75 --- /dev/null +++ b/main/postgresql/perl-rpath.patch @@ -0,0 +1,22 @@ +We configure Postgres with --disable-rpath because for the most part we +want to leave it to ldconfig to determine where libraries are. However, +for some reason the Perl package puts libperl.so in a nonstandard place +and doesn't add that place to the ldconfig search path. I think this +is a Perl packaging bug, myself, but apparently it's not going to change. +So work around it by adding an rpath spec to plperl.so (only). + +Alpine notes: +This patch is copied from Fedora. + +--- a/src/pl/plperl/GNUmakefile ++++ b/src/pl/plperl/GNUmakefile +@@ -43,6 +43,9 @@ + + SHLIB_LINK = $(perl_embed_ldflags) + ++# Force rpath to be used even though we disable it everywhere else ++SHLIB_LINK += $(rpath) ++ + REGRESS_OPTS = --dbname=$(PL_TESTDB) --load-extension=plperl --load-extension=plperlu + REGRESS = plperl plperl_lc plperl_trigger plperl_shared plperl_elog plperl_util plperl_init plperlu plperl_array + # if Perl can support two interpreters in one backend, diff --git a/main/postgresql/postgresql-plperl.post-install b/main/postgresql/postgresql-plperl.post-install deleted file mode 100644 index 4cc8198c04..0000000000 --- a/main/postgresql/postgresql-plperl.post-install +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -if [ ! -L /usr/lib/libperl.so ]; then - find /usr/lib/* -name libperl.so -exec ln -s {} /usr/lib/libperl.so \; -fi - -- cgit v1.2.3