You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The problem is described very well here, but pasting its contents just in case:
When I run tests on Debian Buster, I get the following failure:
140302110000960:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libssl_conf.so): libssl_conf.so: cannot open shared object file: No such file or directory
140302110000960:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
140302110000960:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=ssl_conf, path=ssl_conf
140302110000960:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=ssl_conf
From some targeted stracing, I'm seeing that the phantomjs binary is reading /etc/ssl/openssl.cnf. Buster upgrades openssl far enough that the config in /etc/ is too different and won't work. The correct fix is to provide an openssl.cfg with phantomjs that works.
This is blocking a debian upgrade for us, so I'll likely dig in and try to provide a fix.
Unfortunately, PhantomJS development is suspended and it appears that no fix will appear from the library's development team.
For example, create an "openssl.cnf" file which works with PhantomJS and then set the OPENSSL_CONF environment variable which points to this new file:
export OPENSSL_CONF=".../new_openssl.cnf"
I tested this solution and it worked, however, in order not to affect the config for any other code which may rely on the system openssl.cnf, this environment variable should be set only while running PhantomJS and then unset.
This can be done within phantom_run() by making a call to Sys.setenv() before calling the process and then to Sys.unsetenv() from within on.exit().
A caveat in this solution is that it would require keeping an "openssl.cnf" which PhantomJS can work with within the R package (i.e. in the data/ or inst/ folder).
I forked the repo and implemented the suggested fix here: gterziysky@369d7ed. I tested it on Debian Buster and on Ubuntu 18.04 LTS and it works. The package also passes devtools::check() (no surprise here).
Before I proceed with a PR though I wanted to verify if this solution is all right with you, @wch , (as it will run PhantomJS with the newly provided config regardless of the OS).
The problem is described very well here, but pasting its contents just in case:
Unfortunately, PhantomJS development is suspended and it appears that no fix will appear from the library's development team.
A fix has already been suggested here: drwetter/testssl.sh#1117 (comment).
For example, create an "openssl.cnf" file which works with PhantomJS and then set the OPENSSL_CONF environment variable which points to this new file:
I tested this solution and it worked, however, in order not to affect the config for any other code which may rely on the system openssl.cnf, this environment variable should be set only while running PhantomJS and then unset.
This can be done within phantom_run() by making a call to Sys.setenv() before calling the process and then to Sys.unsetenv() from within on.exit().
A caveat in this solution is that it would require keeping an "openssl.cnf" which PhantomJS can work with within the R package (i.e. in the data/ or inst/ folder).
The output of sessionInfo() is the following:
Would it be possible to implement a solution in an upcoming package release?
The text was updated successfully, but these errors were encountered: