File: WrapOpenSSL.pm

package info (click to toggle)
libengine-gost-openssl 3.0.2-1
  • links: PTS
  • area: main
  • in suites: sid
  • size: 8,504 kB
  • sloc: ansic: 153,831; tcl: 6,237; perl: 984; sh: 188; makefile: 11
file content (67 lines) | stat: -rw-r--r-- 2,002 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#! /usr/bin/env perl
#
# CC0 license applied, see LICENSE.md

package WrapOpenSSL;
use strict;
use warnings;

use File::Basename;
use File::Spec::Functions;

sub load {
    my ($class, $p) = @_;
    my $app  = $p->{app_prove};

    # turn on verbosity
    my $verbose = $ENV{CTEST_INTERACTIVE_DEBUG_MODE} || $app->verbose();
    $app->verbose( $verbose );

    my $openssl_libdir = dirname($ENV{OPENSSL_CRYPTO_LIBRARY})
        if $ENV{OPENSSL_CRYPTO_LIBRARY};
    my $openssl_bindir = dirname($ENV{OPENSSL_PROGRAM})
        if $ENV{OPENSSL_PROGRAM};
    my $openssl_rootdir = $ENV{OPENSSL_ROOT_DIR};
    my $openssl_rootdir_is_buildtree =
        $openssl_rootdir && -d catdir($openssl_rootdir, 'configdata.pm');

    unless ($openssl_libdir) {
        $openssl_libdir = $openssl_rootdir_is_buildtree
            ? $openssl_rootdir
            : catdir($openssl_rootdir, 'lib');
    }
    unless ($openssl_bindir) {
        $openssl_bindir = $openssl_rootdir_is_buildtree
            ? catdir($openssl_rootdir, 'apps')
            : catdir($openssl_rootdir, 'bin');
    }

    if ($openssl_libdir) {
        # Variants of library paths
        $ENV{$_} = join(':', $openssl_libdir, $ENV{$_} // ())
            foreach (
                     'LD_LIBRARY_PATH',    # Linux, ELF HP-UX
                     'DYLD_LIBRARY_PATH',  # MacOS X
                     'LIBPATH',            # AIX, OS/2
            );
        if ($verbose) {
            print STDERR "Added $openssl_libdir to:\n";
            print STDERR "  LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, LIBPATH\n";
        }
    }

    if ($openssl_bindir) {
        # Binary path, works the same everywhere
        $ENV{PATH} = join(':', $openssl_bindir, $ENV{PATH});
        if ($verbose) {
            print STDERR "Added $openssl_bindir to:\n";
            print STDERR "  PATH\n";
        }
    }
    if ($verbose) {
        print STDERR "$_=", $ENV{$_} // '', "\n"
            foreach qw(LD_LIBRARY_PATH DYLD_LIBRARY_PATH LIBPATH PATH);
    }
}

1;