---
name: "App::Info::Lib::OSSPUUID"
section: "3pm"
platform: "linux"
package: "libapp-info-perl"
version: "0.57-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/App::Info::Lib::OSSPUUID"
---

# App::Info::Lib::OSSPUUID(3pm)

Information about the OSSP UUID library

## NAME

App::Info::Lib::OSSPUUID - Information about the OSSP UUID library

## SYNOPSIS

```
  use App::Info::Lib::OSSPUUID;
  my $uuid = App::Info::Lib::OSSPUUID->new;
  if ($uuid->installed) {
      print "App name: ", $uuid->name, "\n";
      print "Version:  ", $uuid->version, "\n";
      print "Bin dir:  ", $uuid->bin_dir, "\n";
  } else {
      print "Expat is not installed. :-(\n";
  }
```

## DESCRIPTION

App::Info::Lib::OSSPUUID supplies information about the OSSP UUID library installed on the local system. It implements all of the methods defined by App::Info::Lib. Methods that trigger events will trigger them only the first time they're called (See App::Info for documentation on handling events). To start over (after, say, someone has installed the OSSP UUID library) construct a new App::Info::Lib::OSSPUUID object to aggregate new meta data.

Some of the methods trigger the same events. This is due to cross-calling of shared subroutines. However, any one event should be triggered no more than once. For example, although the info event "Executing \`uuid-config --version\`" is documented for the methods `"name()"` `"version()"`, `"major_version()"`, `"minor_version()"`, and `"patch_version()"`, rest assured that it will only be triggered once, by whichever of those four methods is called first.

## INTERFACE

### Constructor

*new*

```
  my $expat = App::Info::Lib::OSSPUUID->new(@params);
```

Returns an App::Info::Lib::OSSPUUID object. See App::Info for a complete description of argument parameters.

When called, `"new()"` searches all of the paths returned by the `"search_lib_dirs()"` method for one of the files returned by the `"search_lib_names()"` method. If any of is found, then the OSSP UUID library is assumed to be installed. Otherwise, most of the object methods will return `"undef"`.

**Events:**

- info

  Looking for uuid-config

- confirm

  Path to uuid-config?

- unknown

  Path to uuid-config?

### Class Method

*key\_name*

```
  my $key_name = App::Info::Lib::OSSPUUID->key_name;
```

Returns the unique key name that describes this class. The value returned is the string "OSSP UUID".

### Object Methods

*installed*

```
  print "UUID is ", ($uuid->installed ? '' : 'not '), "installed.\n";
```

Returns true if the OSSP UUID library is installed, and false if it is not. App::Info::Lib::OSSPUUID determines whether the library is installed based on the presence or absence on the file system of the `"uuid-config"` application, searched for when `"new()"` constructed the object. If the OSSP UUID library does not appear to be installed, then most of the other object methods will return empty values.

*name*

```
  my $name = $uuid->name;
```

Returns the name of the library. App::Info::Lib::OSSPUUID parses the name from the system call ``"`uuid-config --version`"``.

**Events:**

- info

  Executing \`uuid-config --version\`

- error

  Failed to find OSSP UUID version with \`uuid-config --version\`

  Unable to parse name from string

  Unable to parse version from string

  Failed to parse OSSP UUID version parts from string

- unknown

  Enter a valid OSSP UUID version number

*version*

```
  my $version = $uuid->version;
```

Returns the OSSP UUID version number. App::Info::Lib::OSSPUUID parses the version number from the system call ``"`uuid-config --version`"``.

**Events:**

- info

  Executing \`uuid-config --version\`

- error

  Failed to find OSSP UUID version with \`uuid-config --version\`

  Unable to parse name from string

  Unable to parse version from string

  Failed to parse OSSP UUID version parts from string

- unknown

  Enter a valid OSSP UUID version number

*major version*

```
  my $major_version = $uuid->major_version;
```

Returns the OSSP UUID library major version number. App::Info::Lib::OSSPUUID parses the major version number from the system call ``"`uuid-config`` ``--version`"``. For example, if `"version()"` returns "1.3.0", then this method returns "1".

**Events:**

- info

  Executing \`uuid-config --version\`

- error

  Failed to find OSSP UUID version with \`uuid-config --version\`

  Unable to parse name from string

  Unable to parse version from string

  Failed to parse OSSP UUID version parts from string

- unknown

  Enter a valid OSSP UUID major version number

*minor version*

```
  my $minor_version = $uuid->minor_version;
```

Returns the OSSP UUID library minor version number. App::Info::Lib::OSSPUUID parses the minor version number from the system call ``"`uuid-config`` ``--version`"``. For example, if `"version()"` returns "1.3.0", then this method returns "3".

**Events:**

- info

  Executing \`uuid-config --version\`

- error

  Failed to find OSSP UUID version with \`uuid-config --version\`

  Unable to parse name from string

  Unable to parse version from string

  Failed to parse OSSP UUID version parts from string

- unknown

  Enter a valid OSSP UUID minor version number

*patch version*

```
  my $patch_version = $uuid->patch_version;
```

Returns the OSSP UUID library patch version number. App::Info::Lib::OSSPUUID parses the patch version number from the system call ``"`uuid-config`` ``--version`"``. For example, if `"version()"` returns "1.3.0", then this method returns "0".

**Events:**

- info

  Executing \`uuid-config --version\`

- error

  Failed to find OSSP UUID version with \`uuid-config --version\`

  Unable to parse name from string

  Unable to parse version from string

  Failed to parse OSSP UUID version parts from string

- unknown

  Enter a valid OSSP UUID minor version number

*executable*

```
  my $exe = $uuid->executable;
```

Returns the full path to the OSSP UUID executable, which is named *uuid*. This method does not use the executable names returned by `"search_exe_names()"`; those executable names are used to search for *uuid-config* only (in `"new()"`).

When it called, `"executable()"` checks for an executable named *uuid* in the directory returned by `"bin_dir()"`.

Note that `"executable()"` is simply an alias for `"uuid()"`.

**Events:**

- info

  Looking for uuid executable

- confirm

  Path to uuid executable?

- unknown

  Path to uuid executable?

*bin\_dir*

```
  my $bin_dir = $uuid->bin_dir;
```

Returns the OSSP UUID binary directory path. App::Info::Lib::OSSPUUID gathers the path from the system call ``"`uuid-config --bindir`"``.

**Events:**

- info

  Executing \`uuid-config --bindir\`

- error

  Cannot find bin directory

- unknown

  Enter a valid OSSP UUID bin directory

*inc\_dir*

```
  my $inc_dir = $uuid->inc_dir;
```

Returns the OSSP UUID include directory path. App::Info::Lib::OSSPUUID gathers the path from the system call ``"`uuid-config --includedir`"``.

**Events:**

- info

  Executing \`uuid-config --includedir\`

- error

  Cannot find include directory

- unknown

  Enter a valid OSSP UUID include directory

*lib\_dir*

```
  my $lib_dir = $uuid->lib_dir;
```

Returns the OSSP UUID library directory path. App::Info::Lib::OSSPUUID gathers the path from the system call ``"`uuid-config --libdir`"``.

**Events:**

- info

  Executing \`uuid-config --libdir\`

- error

  Cannot find library directory

- unknown

  Enter a valid OSSP UUID library directory

*so\_lib\_dir*

```
  my $so_lib_dir = $uuid->so_lib_dir;
```

Returns the OSSP UUID shared object library directory path. This is actually just an alias for `"lib_dir()"`.

**Events:**

- info

  Executing \`uuid-config --libdir\`

- error

  Cannot find library directory

- unknown

  Enter a valid OSSP UUID library directory

*cflags*

```
  my $configure = $uuid->cflags;
```

Returns the C flags used when compiling the OSSP UUID library. App::Info::Lib::OSSPUUID gathers the configure data from the system call ``"`uuid-config --cflags`"``.

**Events:**

- info

  Executing \`uuid-config --configure\`

- error

  Cannot find configure information

- unknown

  Enter OSSP UUID configuration options

*ldflags*

```
  my $configure = $uuid->ldflags;
```

Returns the LD flags used when compiling the OSSP UUID library. App::Info::Lib::OSSPUUID gathers the configure data from the system call ``"`uuid-config --ldflags`"``.

**Events:**

- info

  Executing \`uuid-config --configure\`

- error

  Cannot find configure information

- unknown

  Enter OSSP UUID configuration options

*perl\_module*

```
  my $bool = $uuid->perl_module;
```

Return true if `"OSSP::uuid"` is installed and can be loaded, and false if not. `"OSSP::uuid"` must be able to be loaded by the currently running instance of the Perl interpreter.

**Events:**

- info

  Loading OSSP::uuid

*home\_url*

```
  my $home_url = $uuid->home_url;
```

Returns the OSSP UUID home page URL.

*download\_url*

```
  my $download_url = $uuid->download_url;
```

Returns the OSSP UUID download URL.

*search\_exe\_names*

```
  my @search_exe_names = $app->search_exe_names;
```

Returns a list of possible names for *uuid-config* executable. By default, only *uuid-config* is returned (or *uuid-config.exe* on Win32).

Note that this method is not used to search for the OSSP UUID server executable, only *uuid-config*.

*search\_bin\_dirs*

```
  my @search_bin_dirs = $app->search_bin_dirs;
```

Returns a list of possible directories in which to search an executable. Used by the `"new()"` constructor to find an executable to execute and collect application info. The found directory will also be returned by the `"bin_dir"` method.

The list of directories by default consists of the path as defined by `"File::Spec->path"`, as well as the following directories:

- /usr/local/bin

  - /usr/local/sbin

  - /usr/bin

  - /usr/sbin

  - /bin

  - C:\\Program Files\\uid\\bin

  ### Other Executable Methods

These methods function just like the `"executable()"` method, except that they return different executables. OSSP UUID comes with a fair number of them; we provide these methods to provide a path to a subset of them. Each method, when called, checks for an executable in the directory returned by `"bin_dir()"`. The name of the executable must be one of the names returned by the corresponding `"search_*_names"` method.

The available executable methods are:

- uuid

  - uuid\_config

  And the corresponding search names methods are:

- search\_postgres\_names

  - search\_createdb\_names

  **Events:**

- info

  Looking for executable

- confirm

  Path to executable?

- unknown

  Path to executable?

## SUPPORT

This module is stored in an open GitHub repository \<http://github.com/theory/app-info/\>. Feel free to fork and contribute!

Please file bug reports via GitHub Issues \<http://github.com/theory/app-info/issues/\> or by sending mail to bug-App-Info@rt.cpan.org \<mailto:bug-App-Info@rt.cpan.org\>.

## AUTHOR

David E. Wheeler \<david@justatheory.com\>.

## SEE ALSO

App::Info documents the event handling interface.

App::Info::Lib is the App::Info::Lib::Expat parent class.

OSSP::uuid is the Perl interface to the OSSP UUID library.

\<http://www.ossp.org/pkg/lib/uuid/\> is the OSSP UUID home page.

## COPYRIGHT AND LICENSE

Copyright (c) 2002-2011, David E. Wheeler. Some Rights Reserved.

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