Thread: small PL/R problem

small PL/R problem

From
Robert Stone
Date:
        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: small PL/R problem

From
Christoph Berg
Date:
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/


Re: small PL/R problem

From
Robert Stone
Date:
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