Thread: small PL/R problem
In the plr package (version 1:8.3.0.15-3.pgdg10.4+1) it seems like the debian/postinst file is not making it into the .deb files and that has caused a bug fix by version 1:8.3.0.8-2 to resurface. The runtime linker is unable to find libR.so. To recover the postinst script, I had success adding: override_dh_installdeb: for i in `pg_buildext supported-versions` ; \ do cp debian/postinst debian/postgresql-$$i-plr.postinst ; \ done dh_installdeb to the debian/rules file. I also noticed that there is no corresponding postrm to undo the effects of the postinst script. There are certainly other ways to solve this linking issue, adding an rpath to plr.so seems reasonable. This could be done by adding "-Wl,-rpath$(r_libdir2x)" to the SHLIB_LINK value in the Makefile at the cost of trigging a "binary-or-shlib-defines-rpath" lintian warning during Debian package builds. It seems like Debian's general stance against rpaths may not be applicable in this case. http://wiki.postgresql.org/wiki/Apt#Bugs sent me here. I've been working with postgresql-9.0-plr version 1:8.3.0.15-3.pgdg10.4+1, though this seems to also be present with the latest version 1:8.3.0.15-3~12.git3cb079c.pgdg10.4+1. Thanks, Robert Stone
Re: Robert Stone 2014-09-03 <20140903210016.GE74405@Robert-Stone.local> > In the plr package (version 1:8.3.0.15-3.pgdg10.4+1) it seems > like the debian/postinst file is not making it into the .deb files and > that has caused a bug fix by version 1:8.3.0.8-2 to resurface. The > runtime linker is unable to find libR.so. > > To recover the postinst script, I had success adding: > > override_dh_installdeb: > for i in `pg_buildext supported-versions` ; \ > do cp debian/postinst debian/postgresql-$$i-plr.postinst ; \ > done > dh_installdeb > > to the debian/rules file. I also noticed that there is no corresponding > postrm to undo the effects of the postinst script. Oh, excellent catch! This bug is only present on lucid, as newer Ubuntu/Debian dists all have this symlink in r-base-core. Our package tests didn't notice because we test all .deb files in one run and as the first package in debian/control uses debian/postinst, the symlink will be there. > There are certainly other ways to solve this linking issue, > adding an rpath to plr.so seems reasonable. This could be done by > adding "-Wl,-rpath$(r_libdir2x)" to the SHLIB_LINK value in the > Makefile at the cost of trigging a "binary-or-shlib-defines-rpath" > lintian warning during Debian package builds. It seems like Debian's > general stance against rpaths may not be applicable in this case. It's a bug in r-base-core which should really be fixed there, but I'm not going to try to get it fixed in lucid, so adding this symlink workaround which will only trigger on lucid seems appropriate, while an rpath would be present in packages for all distributions. I've added your patch to the plr package. It's rebuilding atm, I'll promote the packages shortly. Thanks for the report! Christoph -- cb@df7cb.de | http://www.df7cb.de/
On Fri, Sep 05, 2014 at 09:48:36AM +0200, Christoph Berg wrote: > Re: Robert Stone 2014-09-03 <20140903210016.GE74405@Robert-Stone.local> > > In the plr package (version 1:8.3.0.15-3.pgdg10.4+1) it seems > > like the debian/postinst file is not making it into the .deb files and > > that has caused a bug fix by version 1:8.3.0.8-2 to resurface. The > > runtime linker is unable to find libR.so. > > > > To recover the postinst script, I had success adding: > > > > override_dh_installdeb: > > for i in `pg_buildext supported-versions` ; \ > > do cp debian/postinst debian/postgresql-$$i-plr.postinst ; \ > > done > > dh_installdeb > > > > to the debian/rules file. I also noticed that there is no corresponding > > postrm to undo the effects of the postinst script. > > Oh, excellent catch! This bug is only present on lucid, as newer > Ubuntu/Debian dists all have this symlink in r-base-core. Our package > tests didn't notice because we test all .deb files in one run and as > the first package in debian/control uses debian/postinst, the symlink > will be there. > > > There are certainly other ways to solve this linking issue, > > adding an rpath to plr.so seems reasonable. This could be done by > > adding "-Wl,-rpath$(r_libdir2x)" to the SHLIB_LINK value in the > > Makefile at the cost of trigging a "binary-or-shlib-defines-rpath" > > lintian warning during Debian package builds. It seems like Debian's > > general stance against rpaths may not be applicable in this case. > > It's a bug in r-base-core which should really be fixed there, but I'm > not going to try to get it fixed in lucid, so adding this symlink > workaround which will only trigger on lucid seems appropriate, while > an rpath would be present in packages for all distributions. > > I've added your patch to the plr package. It's rebuilding atm, I'll > promote the packages shortly. Thanks for the report! > This all makes perfect sense. Thanks for your help! -Robert