diff options
author | Matt Caswell <matt@openssl.org> | 2021-05-17 17:40:56 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2021-05-20 10:28:06 +0100 |
commit | 9e7a6411708702dd4ad4657636ab346382234437 (patch) | |
tree | 09e1ea3c51e20fbe75e444f2ab6a994af15d8e09 /util | |
parent | e0113b79f2f6fd9dcdfb6bbd1bc77cb41a44b5de (diff) | |
download | openssl-new-9e7a6411708702dd4ad4657636ab346382234437.tar.gz |
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-x | util/write-man-symlinks | 48 |
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"; + } +} |