buildcache: do one less tar file extraction

The buildcache is now extracted in a temporary folder within the current store,
moved to its final place and relocated. 

"spack clean -s" has been extended to also clean the temporary extraction directory.

Add hardlinks with absolute paths for libraries in the corge, garply and quux packages
to detect incorrect handling of hardlinks in tests.
This commit is contained in:
Patrick Gartung
2021-10-13 10:38:29 -05:00
committed by GitHub
parent e6b76578d2
commit 047c95aa8d
5 changed files with 40 additions and 38 deletions

View File

@@ -142,10 +142,12 @@ class Corge
'-Wl,-rpath,%s' % spec['quux'].prefix.lib64,
'-Wl,-rpath,%s' % spec['garply'].prefix.lib64,
'libcorge.dylib',
'%s/libquux.dylib' % spec['quux'].prefix.lib64,
'%s/libgarply.dylib' % spec['garply'].prefix.lib64)
'%s/libquux.dylib.3.0' % spec['quux'].prefix.lib64,
'%s/libgarply.dylib.3.0' % spec['garply'].prefix.lib64)
mkdirp(prefix.lib64)
copy('libcorge.dylib', '%s/libcorge.dylib' % prefix.lib64)
os.link('%s/libcorge.dylib' % prefix.lib64,
'%s/libcorge.dylib.3.0' % prefix.lib64)
else:
gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared',
'-Wl,-soname,libcorge.so', '-o', 'libcorge.so', 'corge.cc.o',
@@ -159,10 +161,12 @@ class Corge
'-Wl,-rpath,%s' % spec['quux'].prefix.lib64,
'-Wl,-rpath,%s' % spec['garply'].prefix.lib64,
'libcorge.so',
'%s/libquux.so' % spec['quux'].prefix.lib64,
'%s/libgarply.so' % spec['garply'].prefix.lib64)
'%s/libquux.so.3.0' % spec['quux'].prefix.lib64,
'%s/libgarply.so.3.0' % spec['garply'].prefix.lib64)
mkdirp(prefix.lib64)
copy('libcorge.so', '%s/libcorge.so' % prefix.lib64)
os.link('%s/libcorge.so' % prefix.lib64,
'%s/libcorge.so.3.0' % prefix.lib64)
copy('corgegator', '%s/corgegator' % prefix.lib64)
copy('%s/corge/corge.h' % self.stage.source_path,
'%s/corge/corge.h' % prefix.include)

View File

@@ -109,6 +109,8 @@ class Garply
'libgarply.dylib')
mkdirp(prefix.lib64)
copy('libgarply.dylib', '%s/libgarply.dylib' % prefix.lib64)
os.link('%s/libgarply.dylib' % prefix.lib64,
'%s/libgarply.dylib.3.0' % prefix.lib64)
else:
gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared',
'-Wl,-soname,libgarply.so',
@@ -119,6 +121,8 @@ class Garply
'libgarply.so')
mkdirp(prefix.lib64)
copy('libgarply.so', '%s/libgarply.so' % prefix.lib64)
os.link('%s/libgarply.so' % prefix.lib64,
'%s/libgarply.so.3.0' % prefix.lib64)
copy('garplinator', '%s/garplinator' % prefix.lib64)
copy('%s/garply/garply.h' % self.stage.source_path,
'%s/garply/garply.h' % prefix.include)

View File

@@ -128,6 +128,8 @@ class Quux
'%s/libgarply.dylib' % spec['garply'].prefix.lib64)
mkdirp(prefix.lib64)
copy('libquux.dylib', '%s/libquux.dylib' % prefix.lib64)
os.link('%s/libquux.dylib' % prefix.lib64,
'%s/libquux.dylib.3.0' % prefix.lib64)
else:
gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared',
'-Wl,-soname,libquux.so', '-o', 'libquux.so', 'quux.cc.o',
@@ -142,6 +144,8 @@ class Quux
'%s/libgarply.so' % spec['garply'].prefix.lib64)
mkdirp(prefix.lib64)
copy('libquux.so', '%s/libquux.so' % prefix.lib64)
os.link('%s/libquux.so' % prefix.lib64,
'%s/libquux.so.3.0' % prefix.lib64)
copy('quuxifier', '%s/quuxifier' % prefix.lib64)
copy('%s/quux/quux.h' % self.stage.source_path,
'%s/quux/quux.h' % prefix.include)