OpenBSD::RequiredBy(3p)

OpenBSD::RequiredBy3p

Manage installed package dependencies

Usage

    use OpenBSD::RequiredBy;
    # let's do things for real
    our $not = 0;
    my $o = OpenBSD::RequiredBy->new($pkgname);
    my $o2 = OpenBSD::Requiring->new($pkgname);
    print "Requirements for $pkgname are ", join(' ',$o2->list), "\n";
    # add some reverse dependencies
    $o->add($reverse_dep1, $reverse_dep2);
    # remove some dependency
    $o2->delete($dep);
    # forget some cache entry
    OpenBSD::RequiredBy->forget(installed_info($pkgname));
    # compute the transitive closure of some dependencies
    my @fulldeps = OpenBSD::Requiring->compute_closure($pkg1, $pkg2);

Overview

"OpenBSD::RequiredBy" handles lists of forward and reverse dependencies for installed packages.

If $main::not is true, all change operations are done internally and never written to disk.

"$o = OpenBSD::RequiredBy->new($pkgname)" gives access to the reverse dependencies, "$o =OpenBSD::Requiring->new($pkgname)" gives access to the forward dependencies.

Such an object can be used to list the dependencies "$o->list", add names to them "$o->add(name1, name2, ...)" or remove name from them "$o->delete(name1, name2, ...)".

The full list of forward dependencies (transitive closure) from a set of packages is given by "OpenBSD::RequiredBy->compute_closure($name1, name2, ...)". Likewise, "OpenBSD::Requiring->compute_closure($name1, name2, ...)" yields the list of reverse dependencies.

Those lists of dependencies trim duplicates and, unless $main::not is true, disk files are automatically synchronized whenever the lists change.

"OpenBSD::RequiredBy" maintains a cache for efficiency. When an installed package is deleted completely, "OpenBSD::RequiredBy->forget($dir)" and "OpenBSD::Requiring->forget($dir)" will remove the cache entries.

Releases

32 releases since OpenBSD 5.0; the text changed 20 times.

  1. 5.0–5.3
  2. 5.4–5.5
  3. 5.6
  4. 5.7
  5. 5.8–5.9
  6. 6.0
  7. 6.1
  8. 6.2
  9. 6.3–6.4
  10. 6.5
  11. 6.6
  12. 6.7
  13. 6.8
  14. 6.9–7.2
  15. 7.3
  16. 7.4
  17. 7.5
  18. 7.6
  19. 7.7–7.8
  20. 7.9
  21. 8.0

From man 8.0-current-20261101 in OpenBSD 8.0-current (2026-11-01). Parsed by carta from the page's man source.