summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2021-05-17 17:40:56 +0100
committerMatt Caswell <matt@openssl.org>2021-05-20 10:28:06 +0100
commit9e7a6411708702dd4ad4657636ab346382234437 (patch)
tree09e1ea3c51e20fbe75e444f2ab6a994af15d8e09 /util
parente0113b79f2f6fd9dcdfb6bbd1bc77cb41a44b5de (diff)
Create symlinks when installing man pages
In 1.1.1 when installing the man pages we created symlinks to the base page for all functions described on the page. We need to continue doing this. Fixes #14846 Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15312)
Diffstat (limited to 'util')
-rwxr-xr-xutil/write-man-symlinks48
1 files changed, 48 insertions, 0 deletions
diff --git a/util/write-man-symlinks b/util/write-man-symlinks
new file mode 100755
index 0000000000..97b72a3840
--- /dev/null
+++ b/util/write-man-symlinks
@@ -0,0 +1,48 @@
+#! /usr/bin/env perl
+# Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+require 5.10.0;
+use warnings;
+use strict;
+
+use FindBin;
+use lib "$FindBin::Bin/perl";
+
+use OpenSSL::Util::Pod;
+
+if ($#ARGV + 1 != 5 || $ARGV[0] !~ /^(un)?install$/) {
+ print "Usage: write-man-symlinks [install|uninstall] src-dir build-dir man-page-name target-dir\n";
+ exit;
+}
+
+my $action = $ARGV[0];
+my $srcdir = $ARGV[1];
+my $builddir = $ARGV[2];
+my $manname = $ARGV[3];
+my $targetdir = $ARGV[4];
+
+$manname =~ m|(.+)\.(.+)|;
+my $mainf = $1;
+my $section = $2;
+die "Bad src file" if !defined $mainf;
+my $podfile = "$srcdir/$mainf.pod";
+#Some pod files are generated and are in the build dir
+unless (-e $podfile) {
+ $podfile = "$builddir/$mainf.pod";
+}
+my %podinfo = extract_pod_info($podfile);
+
+for my $name (@{$podinfo{names}}) {
+ next if $name eq $mainf;
+ if ($action eq "install") {
+ symlink "$targetdir/$manname", "$targetdir/$name.$section";
+ } else {
+ unlink "$targetdir/$name.$section";
+ }
+}