| From 63a44d0cb5494ed1078de411b55cb1c9a8307cec Mon Sep 17 00:00:00 2001 |
| From: Mike Frysinger <vapier@gentoo.org> |
| Date: Fri, 18 Nov 2011 19:09:27 -0500 |
| Subject: [PATCH] make chrpath optional |
| |
| There's no reason to require chrpath for distributions who only want to |
| compile locally and then install elsewhere for packaging. So allow them |
| to specify CHRPATH='' via the env to disable this requirement. |
| |
| Signed-off-by: Mike Frysinger <vapier@gentoo.org> |
| --- |
| SConstruct | 27 ++++++++++++++------------- |
| 1 files changed, 14 insertions(+), 13 deletions(-) |
| |
| diff --git a/SConstruct b/SConstruct |
| index ccaca7d..68bf367 100644 |
| --- a/SConstruct |
| +++ b/SConstruct |
| @@ -270,7 +270,7 @@ def installdir(dir, add_destdir=True): |
| |
| # Honor the specified installation prefix in link paths. |
| env.Prepend(LIBPATH=[installdir('libdir')]) |
| -if env["shared"]: |
| +if env["shared"] and env['CHRPATH']: |
| env.Prepend(RPATH=[installdir('libdir')]) |
| |
| # Give deheader a way to set compiler flags |
| @@ -390,17 +390,18 @@ config = Configure(env, custom_tests = { 'CheckPKG' : CheckPKG, |
| 'CheckXsltproc' : CheckXsltproc}) |
| |
| env.Prepend(LIBPATH=[os.path.realpath(os.curdir)]) |
| -if config.CheckExecutable('$CHRPATH -v', 'chrpath'): |
| - # Tell generated binaries to look in the current directory for |
| - # shared libraries so we can run tests without hassle. Should be |
| - # handled sanely by scons on all systems. Not good to use '.' or |
| - # a relative path here; it's a security risk. At install time we |
| - # use chrpath to edit this out of RPATH. |
| - if env["shared"]: |
| - env.Prepend(RPATH=[os.path.realpath(os.curdir)]) |
| -else: |
| - print "chrpath is not available, forcing static linking." |
| - env["shared"] = False |
| +if env['CHRPATH']: |
| + if config.CheckExecutable('$CHRPATH -v', 'chrpath'): |
| + # Tell generated binaries to look in the current directory for |
| + # shared libraries so we can run tests without hassle. Should be |
| + # handled sanely by scons on all systems. Not good to use '.' or |
| + # a relative path here; it's a security risk. At install time we |
| + # use chrpath to edit this out of RPATH. |
| + if env["shared"]: |
| + env.Prepend(RPATH=[os.path.realpath(os.curdir)]) |
| + else: |
| + print "chrpath is not available, forcing static linking." |
| + env["shared"] = False |
| |
| confdefs = ["/* gpsd_config.h. Generated by scons, do not hand-hack. */\n"] |
| |
| @@ -1140,7 +1141,7 @@ if qt_env: |
| binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib)) |
| |
| # We don't use installdir here in order to avoid having DESTDIR affect the rpath |
| -if env["shared"]: |
| +if env['CHRPATH']: |
| env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \ |
| % (installdir('libdir', False), )) |
| |
| -- |
| 1.7.8.3 |
| |