[MacPorts] #42828: glew: pkg-config .pc files contain path to destroot
#42828: glew: pkg-config .pc files contain path to destroot --------------------------+------------------- Reporter: ryandesign@… | Owner: jmr@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Keywords: | Port: glew --------------------------+------------------- The pkg-config .pc files that the glew port installs contain the path to the destroot: {{{ $ port -v installed glew The following ports are currently installed: glew @1.10.0_0+universal (active) platform='darwin 13' archs='i386 x86_64' $ port -q contents glew | xargs grep destroot /opt/local/lib/pkgconfig/glew.pc:prefix=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local /opt/local/lib/pkgconfig/glew.pc:exec_prefix=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/bin /opt/local/lib/pkgconfig/glew.pc:libdir=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/lib /opt/local/lib/pkgconfig/glew.pc:includedir=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/include/GL /opt/local/lib/pkgconfig/glewmx.pc:prefix=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local /opt/local/lib/pkgconfig/glewmx.pc:exec_prefix=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/bin /opt/local/lib/pkgconfig/glewmx.pc:libdir=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/lib /opt/local/lib/pkgconfig/glewmx.pc:includedir=/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/include/GL }}} This was originally [https://lists.macosforge.org/pipermail/macports- users/2014-March/034779.html reported on the mailing list] while Trac was down. It seems the .pc files get created correctly during the build phase: {{{ sed \ -e "s|@prefix@|/opt/local|g" \ -e "s|@libdir@|/opt/local/lib|g" \ -e "s|@exec_prefix@|/opt/local/bin|g" \ -e "s|@includedir@|/opt/local/include/GL|g" \ -e "s|@version@|1.10.0|g" \ -e "s|@cflags@||g" \ -e "s|@libname@|GLEW|g" \ < glew.pc.in > glew.pc }}} {{{ sed \ -e "s|@prefix@|/opt/local|g" \ -e "s|@libdir@|/opt/local/lib|g" \ -e "s|@exec_prefix@|/opt/local/bin|g" \ -e "s|@includedir@|/opt/local/include/GL|g" \ -e "s|@version@|1.10.0|g" \ -e "s|@cflags@|-DGLEW_MX|g" \ -e "s|@libname@|GLEWmx|g" \ < glew.pc.in > glewmx.pc }}} But then get overwritten with an incorrect version at destroot time: {{{ sed \ -e "s|@prefix@|/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local|g" \ -e "s|@libdir@|/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/lib|g" \ -e "s|@exec_prefix@|/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/bin|g" \ -e "s|@includedir@|/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/include/GL|g" \ -e "s|@version@|1.10.0|g" \ -e "s|@cflags@||g" \ -e "s|@libname@|GLEW|g" \ < glew.pc.in > glew.pc }}} {{{ sed \ -e "s|@prefix@|/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local|g" \ -e "s|@libdir@|/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/lib|g" \ -e "s|@exec_prefix@|/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/bin|g" \ -e "s|@includedir@|/opt/local/var/macports/build/_Users_rschmidt_macports_dports_graphics_glew/glew/work/destroot/opt/local/include/GL|g" \ -e "s|@version@|1.10.0|g" \ -e "s|@cflags@|-DGLEW_MX|g" \ -e "s|@libname@|GLEWmx|g" \ < glew.pc.in > glewmx.pc }}} This appears to be because the Makefile deliberately declares the .pc files as ".PHONY" because, according to a comment in the Makefile, "GLEW_DEST can vary". The Makefile does not support `DESTDIR`, so the Portfile sets `GLEW_DEST=${prefix}` at build time and `GLEW_DEST=${destroot}${prefix}` at destroot time. A solution might be to always set `GLEW_DEST=${prefix}` and apply [https://github.com/nigels-com/glew/pull/1 this patch] which provides proper `DESTDIR` support, which has already been merged upstream. -- Ticket URL: <https://trac.macports.org/ticket/42828> MacPorts <http://www.macports.org/> Ports system for OS X
#42828: glew: pkg-config .pc files contain path to destroot ---------------------------+-------------------- Reporter: ryandesign@… | Owner: jmr@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: fixed | Keywords: Port: glew | ---------------------------+-------------------- Changes (by ryandesign@…): * cc: mmoll@… (added) * status: new => closed * resolution: => fixed Comment: Mark fixed this a different way in r119889 by using `reinplace` to remove the path to the destroot from the .pc files. -- Ticket URL: <https://trac.macports.org/ticket/42828#comment:2> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts