pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/38606: Missing RPATH check for PKG_DEVELOPER=yes on FreeBSD



>Number:         38606
>Category:       pkg
>Synopsis:       Missing RPATH check for PKG_DEVELOPER=yes on FreeBSD
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Wed May 07 13:55:00 +0000 2008
>Originator:     Aleksej Saushev
>Release:        
>Organization:
>Environment:
FreeBSD 6.2-STABLE-200706 i386

>Description:
There's no RPATH check performed on FreeBSD for PKG_DEVELOPER=yes.
>How-To-Repeat:
Try building any package with broken RPATH (e.g. from WIP) with
PKG_DEVELOPER=yes on NetBSD and FreeBSD, note, that you don't
get usual diagnostics on FreeBSD.

>Fix:
Apply the patch below:

Index: mk/check/bsd.check-vars.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/check/bsd.check-vars.mk,v
retrieving revision 1.5
diff -u -r1.5 bsd.check-vars.mk
--- mk/check/bsd.check-vars.mk  9 Mar 2008 13:47:08 -0000       1.5
+++ mk/check/bsd.check-vars.mk  7 May 2008 13:44:29 -0000
@@ -8,7 +8,7 @@
 CHECK_FILES_SUPPORTED?=                yes
 CHECK_SHLIBS_SUPPORTED?=       yes
 
-.if ${OPSYS} == "NetBSD" || ${OPSYS} == "DragonFly"
+.if ${OPSYS} == "NetBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "FreeBSD"
 USE_CHECK_SHLIBS_ELF?=         yes
 .else
 USE_CHECK_SHLIBS_ELF?=         no
Index: mk/platform/FreeBSD.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/platform/FreeBSD.mk,v
retrieving revision 1.24
diff -u -r1.24 FreeBSD.mk
--- mk/platform/FreeBSD.mk      4 Mar 2008 06:45:34 -0000       1.24
+++ mk/platform/FreeBSD.mk      7 May 2008 13:44:29 -0000
@@ -49,6 +49,9 @@
 _OPSYS_EMULDIR.freebsd=        # empty
 _OPSYS_EMULDIR.linux=  /compat/linux
 
+_OPSYS_SYSTEM_RPATH?=  /lib:/usr/lib   # STANDARD_LIBRARY_PATH
+                                       # from src/libexec/rtld-elf/rtld.h
+
 .if exists(/usr/include/netinet6)
 _OPSYS_HAS_INET6=      yes     # IPv6 is standard
 .else



Home | Main Index | Thread Index | Old Index