mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-30 11:36:54 +00:00
relocatable-package: package and redirect gnutls configuration
gnutls requires a configuration file, and the configuration file must match the one used by the library. Since we ship our own version of the library with the relocatable package, we must also ship the configuration file. Luckily, it is possible to override the location of the configuration file via an environment variable, so all we need to do is to copy the file to the archive and provide the environment variable in the thunk that adjusts the library path. Reviewed-by: Nadav Har'El <nyh@scylladb.com> Message-Id: <20190227110529.14146-1-avi@scylladb.com>
This commit is contained in:
@@ -70,6 +70,9 @@ for exe in executables:
|
||||
|
||||
ld_so = libs['ld.so']
|
||||
|
||||
have_gnutls = any([lib.startswith('libgnutls.so')
|
||||
for lib in libs.keys()])
|
||||
|
||||
# Although tarfile.open() can write directly to a compressed tar by using
|
||||
# the "w|gz" mode, it does so using a slow Python implementation. It is as
|
||||
# much as 3 times faster (!) to output to a pipe running the external gzip
|
||||
@@ -115,6 +118,7 @@ b="$(basename "$x")"
|
||||
d="$(dirname "$x")/.."
|
||||
ldso="$d/libexec/$b"
|
||||
realexe="$d/libexec/$b.bin"
|
||||
export GNUTLS_SYSTEM_PRIORITY_FILE="${GNUTLS_SYSTEM_PRIORITY_FILE-$d/libreloc/gnutls.config}"
|
||||
LD_LIBRARY_PATH="$d/libreloc" exec -a "$0" "$ldso" "$realexe" "$@"
|
||||
'''
|
||||
|
||||
@@ -133,6 +137,9 @@ for exe in executables:
|
||||
ar.addfile(ti)
|
||||
for lib, libfile in libs.items():
|
||||
ar.add(libfile, arcname='libreloc/' + lib)
|
||||
if have_gnutls:
|
||||
gnutls_config_nolink = os.path.realpath('/etc/crypto-policies/back-ends/gnutls.config')
|
||||
ar.add(gnutls_config_nolink, arcname='libreloc/gnutls.config')
|
||||
ar.add('conf')
|
||||
ar.add('dist')
|
||||
ar.add('build/SCYLLA-RELEASE-FILE', arcname='SCYLLA-RELEASE-FILE')
|
||||
|
||||
Reference in New Issue
Block a user