This file is indexed.

/usr/share/perl5/System/Info/Solaris.pm is in libsystem-info-perl 0.057-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
package System::Info::Solaris;

use strict;
use warnings;

use base "System::Info::Base";

our $VERSION = "0.050";

=head1 NAME

System::Info::Solaris - Object for specific Solaris/Sun-os info.

=head1 DESCRIPTION

=head2 $si->prepare_sysinfo

Use os-specific tools to find out more about the system.

=cut

sub prepare_sysinfo {
    my $self = shift;
    $self->SUPER::prepare_sysinfo;
    $self->prepare_os;

    local $ENV{PATH} = "/usr/sbin:$ENV{PATH}";

    my @psrinfo = `psrinfo -v`;
    my ($psrinfo) = grep m/the .* operates .* [gm]hz/ix => @psrinfo;
    my ($type, $speed, $magnitude) =
	$psrinfo =~ m/the (.+) processor.*at (.+?)\s*([GM]hz)/i;
    $type =~ s/(v9)$/ $1 ? "64" : ""/e;

    my $cpu = $self->_cpu;

    if (-d "/usr/platform") { # Solaris but not OSF/1.
	chomp (my $platform = `uname -i`);
	my $pfpath = "/usr/platform/$platform/sbin/prtdiag";
	if (-x "$pfpath") { # Not on Solaris-x86
	    my $prtdiag = `$pfpath`;
	    ($cpu) = $prtdiag =~ m/^System .+\(([^\s\)]+)/;
	    unless ($cpu) {
		my ($cpu_line) = grep m/\s+on-?line\s+/i => split /\n/ => $prtdiag;
		($cpu = (split " " => $cpu_line)[4]) =~ s/.*,//;
		}
	    $cpu .= " ($speed$magnitude)";
	    }
	else {
	    $cpu .= " ($speed$magnitude)";
	    }
	}
    elsif (-x "/usr/sbin/sizer") { # OSF/1.
	$cpu = $type;
	chomp ($type = `sizer -implver`);
	}

    my $ncpu = grep m/on-?line/ => `psrinfo`;

    $self->{__cpu_type}  = $type;
    $self->{__cpu}       = $cpu;
    $self->{__cpu_count} = $ncpu;
    return $self;
    } # prepare_sysinfo

=head2 $si->prepare_os

Use os-specific tools to find out more about the operating system.

=cut

sub prepare_os {
    my $self = shift;

    my ($osn, $osv) = ($self->_osname, $self->_osvers);
    if ($^O =~ /solaris|sunos/i && $osv > 5) {
	$osn = "Solaris";
	$osv = "2." . (split m/\./ => $osv, 2)[1];
	}
    $self->{__os} = join " - ", $osn, $osv;
    } # prepare_os

1;

__END__

=head1 COPYRIGHT AND LICENSE

(c) 2016-2018, Abe Timmerman & H.Merijn Brand, All rights reserved.

With contributions from Jarkko Hietaniemi, Campo Weijerman, Alan Burlison,
Allen Smith, Alain Barbet, Dominic Dunlop, Rich Rauenzahn, David Cantrell.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

See:

=over 4

=item * L<http://www.perl.com/perl/misc/Artistic.html>

=item * L<http://www.gnu.org/copyleft/gpl.html>

=back

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

=cut