From 0bc861db6e8edf470c91be81e60546b0619216de Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 25 Dec 2014 17:55:19 -0800 Subject: Fix up bzip2 install --- lib/spack/llnl/util/filesystem.py | 8 ++++++++ lib/spack/spack/build_environment.py | 1 + var/spack/packages/bzip2/package.py | 17 ++++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index 24c77a80db..9f08832598 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -30,6 +30,7 @@ import os import sys import re import shutil +import stat import errno import getpass from contextlib import contextmanager, closing @@ -145,6 +146,13 @@ def install(src, dest): shutil.copy(src, dest) set_install_permissions(dest) + src_mode = os.stat(src).st_mode + dest_mode = os.stat(dest).st_mode + if src_mode | stat.S_IXUSR: dest_mode |= stat.S_IXUSR + if src_mode | stat.S_IXGRP: dest_mode |= stat.S_IXGRP + if src_mode | stat.S_IXOTH: dest_mode |= stat.S_IXOTH + os.chmod(dest, dest_mode) + def expand_user(path): """Find instances of '%u' in a path and replace with the current user's diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index 87cfa772ca..45353ec640 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -190,6 +190,7 @@ def set_module_variables_for_package(pkg): m.makedirs = os.makedirs m.remove = os.remove m.removedirs = os.removedirs + m.symlink = os.symlink m.mkdirp = mkdirp m.install = install diff --git a/var/spack/packages/bzip2/package.py b/var/spack/packages/bzip2/package.py index 83ae88e564..fbd5869a53 100644 --- a/var/spack/packages/bzip2/package.py +++ b/var/spack/packages/bzip2/package.py @@ -1,4 +1,5 @@ from spack import * +from glob import glob class Bzip2(Package): """bzip2 is a freely available, patent free high-quality data @@ -15,5 +16,19 @@ class Bzip2(Package): # No configure system -- have to filter the makefile for this package. filter_file(r'CC=gcc', 'CC=cc', 'Makefile', string=True) - make() + make('-f', 'Makefile-libbz2_so') + make('clean') make("install", "PREFIX=%s" % prefix) + + bzip2_exe = join_path(prefix.bin, 'bzip2') + install('bzip2-shared', bzip2_exe) + for libfile in glob('libbz2.so*'): + install(libfile, prefix.lib) + + bunzip2 = join_path(prefix.bin, 'bunzip2') + remove(bunzip2) + symlink(bzip2_exe, bunzip2) + + bzcat = join_path(prefix.bin, 'bzcat') + remove(bzcat) + symlink(bzip2_exe, bzcat) -- cgit v1.2.3-70-g09d2