diff options
Diffstat (limited to 'crypto/openssl/util/wrap.pl')
-rwxr-xr-x | crypto/openssl/util/wrap.pl | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/crypto/openssl/util/wrap.pl b/crypto/openssl/util/wrap.pl deleted file mode 100755 index 1b536c1885ac..000000000000 --- a/crypto/openssl/util/wrap.pl +++ /dev/null @@ -1,133 +0,0 @@ -#! /usr/bin/env perl - -use strict; -use warnings; - -use File::Basename; -use File::Spec::Functions; - -BEGIN { - # This method corresponds exactly to 'use OpenSSL::Util', - # but allows us to use a platform specific file spec. - require '/usr/home/ngie/git/freebsd-src/worktree/main/crypto/openssl/util/perl/OpenSSL/Util.pm'; - OpenSSL::Util->import(); -} - -sub quote_cmd_win32 { - my $cmd = ""; - - foreach my $arg (@_) { - if ($arg =~ m{\A[\w,-./@]+\z}) { - $cmd .= $arg . q{ };; - } else { - $cmd .= q{"} . quote_arg_win32($arg) . q{" }; - } - } - return substr($cmd, 0, -1); -} - -sub quote_arg_win32 { - my ($arg) = @_; - my $val = ""; - - pos($arg) = 0; - while (1) { - return $val if (pos($arg) == length($arg)); - if ($arg =~ m{\G((?:(?>[\\]*)[^"\\]+)+)}ogc) { - $val .= $1; - } elsif ($arg =~ m{\G"}ogc) { - $val .= qq{\\"}; - } elsif ($arg =~ m{\G((?>[\\]+)(?="|\z))}ogc) { - $val .= qq{\\} x (2 * length($1)); - } else { - die sprintf("Internal error quoting: '%s'\n", $arg); - } - } -} - -my $there = canonpath(catdir(dirname($0), updir())); -my $std_engines = catdir($there, 'engines'); -my $std_providers = catdir($there, 'providers'); -my $std_openssl_conf = catdir($there, 'apps/openssl.cnf'); -my $unix_shlib_wrap = catfile($there, 'util/shlib_wrap.sh'); -my $std_openssl_conf_include; - -if ($ARGV[0] eq '-fips') { - $std_openssl_conf = '/usr/home/ngie/git/freebsd-src/worktree/main/crypto/openssl/test/fips-and-base.cnf'; - shift; - - $std_openssl_conf_include = catdir($there, 'providers'); -} - -if ($ARGV[0] eq '-jitter') { - $std_openssl_conf = '/usr/home/ngie/git/freebsd-src/worktree/main/crypto/openssl/test/default-and-jitter.cnf'; - shift; - - $std_openssl_conf_include = catdir($there, 'providers'); -} - - -local $ENV{OPENSSL_CONF_INCLUDE} = $std_openssl_conf_include - if defined $std_openssl_conf_include - &&($ENV{OPENSSL_CONF_INCLUDE} // '') eq '' - && -d $std_openssl_conf_include; -local $ENV{OPENSSL_ENGINES} = $std_engines - if ($ENV{OPENSSL_ENGINES} // '') eq '' && -d $std_engines; -local $ENV{OPENSSL_MODULES} = $std_providers - if ($ENV{OPENSSL_MODULES} // '') eq '' && -d $std_providers; -local $ENV{OPENSSL_CONF} = $std_openssl_conf - if ($ENV{OPENSSL_CONF} // '') eq '' && -f $std_openssl_conf; - -my $use_system = 0; -my @cmd; - -if ($^O eq 'VMS') { - # VMS needs the command to be appropriately quotified - @cmd = fixup_cmd(@ARGV); -} elsif (-x $unix_shlib_wrap) { - @cmd = ( $unix_shlib_wrap, @ARGV ); -} else { - # Hope for the best - @cmd = ( @ARGV ); -} - -# The exec() statement on MSWin32 doesn't seem to give back the exit code -# from the call, so we resort to using system() instead. -my $waitcode; -if ($^O eq 'MSWin32') { - $waitcode = system(quote_cmd_win32(@cmd)); -} else { - $waitcode = system @cmd; -} - -# According to documentation, -1 means that system() couldn't run the command, -# otherwise, the value is similar to the Unix wait() status value -# (exitcode << 8 | signalcode) -die "wrap.pl: Failed to execute '", join(' ', @cmd), "': $!\n" - if $waitcode == -1; - -# When the subprocess aborted on a signal, we simply raise the same signal. -kill(($? & 255) => $$) if ($? & 255) != 0; - -# If that didn't stop this script, mimic what Unix shells do, by -# converting the signal code to an exit code by setting the high bit. -# This only happens on Unix flavored operating systems, the others don't -# have this sort of signaling to date, and simply leave the low byte zero. -exit(($? & 255) | 128) if ($? & 255) != 0; - -# When not a signal, just shift down the subprocess exit code and use that. -my $exitcode = $? >> 8; - -# For VMS, perl recommendations is to emulate what the C library exit() does -# for all non-zero exit codes, except we set the error severity rather than -# success. -# Ref: https://perldoc.perl.org/perlport#exit -# https://perldoc.perl.org/perlvms#$? -if ($^O eq 'VMS' && $exitcode != 0) { - $exitcode = - 0x35a000 # C facility code - + ($exitcode * 8) # shift up to make space for the 3 severity bits - + 2 # Severity: E(rror) - + 0x10000000; # bit 28 set => the shell stays silent -} -exit($exitcode); |