684 lines
21 KiB
Diff
684 lines
21 KiB
Diff
From bc266b73843be55d06f6223ec4ecc844f7216dc4 Mon Sep 17 00:00:00 2001
|
|
From: Ingo Franzki <ifranzki@linux.ibm.com>
|
|
Date: Mon, 15 Jun 2026 14:23:54 +0200
|
|
Subject: [PATCH 1/6] Fix detection of PCC instruction availability
|
|
|
|
According to the Principles or Operations manual, the PCC instruction was
|
|
added with Message-Security assist 4 (MSA 4), not 3.
|
|
|
|
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
|
|
---
|
|
src/globals.c | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/globals.c b/src/globals.c
|
|
index 8797286..3650be2 100644
|
|
--- a/src/globals.c
|
|
+++ b/src/globals.c
|
|
@@ -280,10 +280,10 @@ void zpc_init(void)
|
|
}
|
|
}
|
|
|
|
- /* Check MSA3. */
|
|
- if (facility_list_nmemb >= OFF64(MSA3) + 1
|
|
- && (facility_list[OFF64(MSA3)] & MASK64(MSA3))) {
|
|
- DEBUG("detected message-security-assist extension 3");
|
|
+ /* Check MSA4. */
|
|
+ if (facility_list_nmemb >= OFF64(MSA4) + 1
|
|
+ && (facility_list[OFF64(MSA4)] & MASK64(MSA4))) {
|
|
+ DEBUG("detected message-security-assist extension 4");
|
|
|
|
memset(status_word, 0, sizeof(status_word));
|
|
cpacf_pcc(CPACF_PCC_QUERY, &status_word);
|
|
--
|
|
2.55.0
|
|
|
|
|
|
From f12d031e99f29574c5f1a06e46b75c37f0e1c211 Mon Sep 17 00:00:00 2001
|
|
From: Holger Dengler <dengler@linux.ibm.com>
|
|
Date: Fri, 19 Jun 2026 16:10:55 +0200
|
|
Subject: [PATCH 2/6] man: Update pre-built man-pages
|
|
|
|
Signed-off-by: Holger Dengler <dengler@linux.ibm.com>
|
|
---
|
|
man/hbkzpcprovider.7 | 176 ++++++++++++++++++++++++++++++++++++++
|
|
man/hbkzpcprovider.conf.5 | 134 +++++++++++++++++++++++++++++
|
|
man/zpckey.1 | 106 +++++++++++++++++++++++
|
|
3 files changed, 416 insertions(+)
|
|
create mode 100644 man/hbkzpcprovider.7
|
|
create mode 100644 man/hbkzpcprovider.conf.5
|
|
create mode 100644 man/zpckey.1
|
|
|
|
diff --git a/man/hbkzpcprovider.7 b/man/hbkzpcprovider.7
|
|
new file mode 100644
|
|
index 0000000..78ba542
|
|
--- /dev/null
|
|
+++ b/man/hbkzpcprovider.7
|
|
@@ -0,0 +1,176 @@
|
|
+.\" Automatically generated by Pandoc 3.7.0.2
|
|
+.\"
|
|
+.TH "HBKZPCPROVIDER" "7" "2026" "LIBZPC v2"
|
|
+.SH NAME
|
|
+\f[CR]hbkzpc provider\f[R] \- An OpenSSL provider that provides an
|
|
+interface to the hardware\-backed key cryptographic operations,
|
|
+available on IBM Z and IBM LinuxONE.
|
|
+.SH DESCRIPTION
|
|
+IBM Z and IBM LinuxONE systems offer several types of hardware assists
|
|
+with different features, including the CP Assist for Cryptographic
|
|
+Functions (\f[I]CPACF\f[R]) and the IBM Crypto Express (\f[I]CEX\f[R])
|
|
+features.
|
|
+.PP
|
|
+The \f[CR]hbkzpc provider\f[R] enables applications using the OpenSSL
|
|
+crypto library API to exploit the protected key cryptography
|
|
+(\f[I]ZPC\f[R]) functions, provided by CPACF on IBM Z and IBM LinuxONE.
|
|
+.PP
|
|
+To use the \f[CR]hbkzpc provider\f[R] via the OpenSSL crypto library
|
|
+API, it must be referenced in the OpenSSL configuration.
|
|
+For more details, see hbkzpcprovider.conf(5).
|
|
+.SS Hardware\-backed keys
|
|
+Hardware\-backed keys (\f[I]HBK\f[R]) are a generic concept, where the
|
|
+secret information of cryptographic keys is never exposed to the main
|
|
+memory, but cryptographic operations with such keys are still possible.
|
|
+Instead of the raw secret key information, opaque key objects are
|
|
+exposed to the applications.
|
|
+The internals of these opaque key objects (key slot reference, wrapped
|
|
+key blob, etc.)
|
|
+depends on the concrete implementation of the generic concept.
|
|
+It is essential, that the knowledge of the opaque key object does not
|
|
+expose any information about the real secret information of the key.
|
|
+.SS IBM Z protected key cryptography
|
|
+The IBM Z protected key cryptography is the implementation of the
|
|
+generic hardware\-backed key concept on IBM Z and IBM LinuxONE.
|
|
+The platform uses IBM Crypto Express (\f[I]CEX\f[R]) adapters (or often
|
|
+called: feature) or the IBM Secure Execution for Linux ultravisor to
|
|
+securely store secret key material and securely export them to the
|
|
+firmware.
|
|
+The \f[CR]hbkzpc provider\f[R] can handle opaque key objects (protected
|
|
+key origins), which describe and reference these secure keys.
|
|
+.PP
|
|
+ZPC provides many cryptographic functions with protected keys.
|
|
+The \f[CR]hbkzpc provider\f[R] supports ECDSA/EdDSA sign/verify
|
|
+operations for a list of ECC\-curves.
|
|
+See section \f[I]Provider functions\f[R] for more details.
|
|
+.SS Protected key origins
|
|
+A protected key origin for the \f[CR]hbkzpc provider\f[R] is used to
|
|
+internally export the referenced secure key to the firmware.
|
|
+While the resulting protected keys are volatile and can become invalid
|
|
+at any time, the protected key origins are persistent and can be stored
|
|
+without exposing any secret information.
|
|
+.PP
|
|
+A protected key origin is specified by a HBKZPC unified resource
|
|
+identifier (URI).
|
|
+These URIs can be encoded to protected key origin files.
|
|
+The \f[CR]hbkzpc provider\f[R] can handle either URIs directly or URIs
|
|
+which are encoded and stored in files (DER or PEM).
|
|
+See section \f[I]URI\f[R] for more details.
|
|
+.PP
|
|
+The \f[CR]zpckey\f[R] tool supports composing such protected key
|
|
+origins.
|
|
+See zpckey(1) for more details.
|
|
+.PP
|
|
+The \f[CR]hbkzpc provider\f[R] supports protected key origins for
|
|
+retrievable secrets in IBM Secure Execution for Linux (SEL) ultravisor.
|
|
+.SS Provider functions
|
|
+The \f[CR]hbkzpc provider\f[R] plugs into the OpenSSL provider API and
|
|
+provides the following functions:
|
|
+.IP \(bu 2
|
|
+signature\-algorithms for ECDSA and EdDSA
|
|
+.IP \(bu 2
|
|
+key\-manager for provider\-specific keys
|
|
+.IP \(bu 2
|
|
+store\-loader for provider\-specific key URIs
|
|
+.IP \(bu 2
|
|
+decoder for DER/PEM encoded provider\-specific key URI files
|
|
+.SS Supported ECC curves
|
|
+The \f[CR]hbkzpc provider\f[R] supports the following ECC\-curves for
|
|
+ECDSA and EdDSA respectively:
|
|
+.IP \(bu 2
|
|
+prime256v1
|
|
+.IP \(bu 2
|
|
+secp384r1
|
|
+.IP \(bu 2
|
|
+secp521r1
|
|
+.IP \(bu 2
|
|
+ED25519
|
|
+.IP \(bu 2
|
|
+ED448
|
|
+.SH URI
|
|
+The HBKZPC unified resource identifier (URI) specifies all information
|
|
+of the protected key origins, which is required for the provider to
|
|
+derive the related protected key.
|
|
+The URI has the following syntax (ABNF representation):
|
|
+.IP
|
|
+.EX
|
|
+hbkzpc\-URI = \(dqhbkzpc:\(dq hbkzpc\-param
|
|
+hbkzpc\-param = [ hbkzpc\-pattr *(\(dq;\(dq hbkzpc\-pattr) ]
|
|
+
|
|
+hbkzpc\-pattr = origin\-type / origin\-alg / origin\-blob /
|
|
+ origin\-pubkey / comment
|
|
+
|
|
+origin\-type = \(dqorigin\-type\(dq \(dq=\(dq *pchar
|
|
+origin\-alg = \(dqorigin\-alg\(dq \(dq=\(dq oid / *(pchar)
|
|
+origin\-blob = \(dqorigin\-blob\(dq \(dq=\(dq hex\-string
|
|
+origin\-pubkey = \(dqorigin\-pubkey\(dq \(dq=\(dq hex\-string
|
|
+comment = \(dqcomment\(dq \(dq=\(dq *pchar\-pct
|
|
+
|
|
+oid = DIGIT *(\(dq.\(dq DIGIT)
|
|
+
|
|
+hex\-byte = 2*HEXDIG
|
|
+hex\-string = [ hex\-byte *(hex\-byte) ]
|
|
+
|
|
+pchar\-pct = pchar / pct\-encoded
|
|
+pchar = unreserved / res\-avail
|
|
+res\-avail = \(dq:\(dq / \(dq[\(dq / \(dq]\(dq / \(dq\(at\(dq / \(dq!\(dq / \(dq$\(dq /
|
|
+ \(dq\(aq\(dq / \(dq(\(dq / \(dq)\(dq / \(dq*\(dq / \(dq+\(dq / \(dq,\(dq / \(dq=\(dq
|
|
+
|
|
+pct\-encoded = [ \(dq%\(dq 2*HEXDIG ]
|
|
+unreserved = ALPHA / DIGIT / \(dq\-\(dq / \(dq.\(dq / \(dq_\(dq / \(dq\(ti\(dq
|
|
+.EE
|
|
+.SH ENCODING
|
|
+The URI can also be encoded and stored to a file.
|
|
+Supported encoding formats are DER and PEM.
|
|
+.SS DER encoding
|
|
+For the DER encoding, the HBKZPC URI is encapsulated with a ASN.1
|
|
+structure.
|
|
+Each DER file contains one structure in binary form.
|
|
+The structure has the following syntax:
|
|
+.IP
|
|
+.EX
|
|
+HardwareBackedKeyZPCFormat DEFINITIONS ::= BEGIN
|
|
+ HBKZPC ::= SEQUENCE {
|
|
+ desc [0] EXPLICIT VisibleString,
|
|
+ uri [1] EXPLICIT UTF8String,
|
|
+ }
|
|
+END
|
|
+.EE
|
|
+.PP
|
|
+The DER decoder of the \f[CR]hbkzpc provider\f[R] only handles DER files
|
|
+with a description (\f[I]desc\f[R]) of \f[I]HBKZPC Provider URI
|
|
+v1.0\f[R].
|
|
+.SS PEM encoding
|
|
+The PEM encoding is a base64\-encoded DER structure.
|
|
+The encoded data is surrounded by a start and end tag.
|
|
+A PEM encoded file has the following form:
|
|
+.IP
|
|
+.EX
|
|
+\-\-\-\-\-BEGIN HARDWARE BACKED KEY ZPC\-\-\-\-\-
|
|
+[... <BASE64\-encoded data> ...]
|
|
+\-\-\-\-\-END HARDWARE BACKED KEY ZPC\-\-\-\-\-
|
|
+.EE
|
|
+.PP
|
|
+The PEM decoder of the \f[CR]hbkzpc provider\f[R] only handles PEM files
|
|
+with the label \f[I]HARDWARE BACKED KEY ZPC\f[R].
|
|
+.SH GLOSSARY
|
|
+.TP
|
|
+CEX
|
|
+IBM Crypto Express
|
|
+.TP
|
|
+CPACF
|
|
+CP Assist for Cryptographic Functions
|
|
+.TP
|
|
+HBK
|
|
+hardware\-backed key
|
|
+.TP
|
|
+SEL
|
|
+IBM Secure Execution for Linux
|
|
+.TP
|
|
+URI
|
|
+unified resource identifier
|
|
+.TP
|
|
+ZPC
|
|
+IBM Z protected key cryptography
|
|
+.SH SEE ALSO
|
|
+zpckey(1), hbkzpcprovider.conf(5), provider(7SSL).
|
|
diff --git a/man/hbkzpcprovider.conf.5 b/man/hbkzpcprovider.conf.5
|
|
new file mode 100644
|
|
index 0000000..537c21b
|
|
--- /dev/null
|
|
+++ b/man/hbkzpcprovider.conf.5
|
|
@@ -0,0 +1,134 @@
|
|
+.\" Automatically generated by Pandoc 3.7.0.2
|
|
+.\"
|
|
+.TH "HBKZPCPROVIDER.CNF" "5" "2026" "LIBZPC v2"
|
|
+.SH NAME
|
|
+hbkzpcprovider.conf \- Configuration syntax for the
|
|
+\f[CR]hbkzpc provider\f[R]
|
|
+.SH DESCRIPTION
|
|
+This page documents the syntax of the OpenSSL configuration file for the
|
|
+\f[CR]hbkzpc provider\f[R].
|
|
+It is a sub\-set of the OpenSSL configuration file format, described in
|
|
+config(5SSL).
|
|
+.SH CONFIGURATION
|
|
+.SS OpenSSL Configuration
|
|
+The \f[CR]hbkzpc provider\f[R] can be configured application\-specific
|
|
+or system\-wide.
|
|
+In both cases, the configuration file needs to define and reference a
|
|
+section for the \f[CR]hbkzpc provider\f[R], following the OpenSSL
|
|
+configuration syntax (config(5SSL)).
|
|
+.PP
|
|
+The provider section for the \f[CR]hbkzpc provider\f[R] specifies the
|
|
+shared library of the provider (mandatory) and an activation flag
|
|
+(optional).
|
|
+.PP
|
|
+Since OpenSSL configuration supports drop\-ins (keyword
|
|
+\f[CR].inlcude\f[R]), the configuration for the
|
|
+\f[CR]hbkzpc provider\f[R] can also be placed in a separate
|
|
+configuration file.
|
|
+.SS Provider Section
|
|
+A provider section in the OpenSSL configuration defines generic
|
|
+parameters, as well as provider\-specific parameters.
|
|
+Each provider section must be referenced in the global providers
|
|
+sections (\f[I]provider_sect\f[R]) of the OpenSSL configuration file.
|
|
+The \f[CR]hbkzpc provider\f[R] supports no provider\-specific
|
|
+parameters, but the provider section for the \f[CR]hbkzpc provider\f[R]
|
|
+must specify at least the generic provider section parameter
|
|
+\f[I]module\f[R].
|
|
+For more details about the generic provider parameters, see
|
|
+config(5SSL).
|
|
+.TP
|
|
+module (mandatory)
|
|
+This parameter takes a path to the provider shared object file.
|
|
+For the \f[CR]hbkzpc provider\f[R], use the absolute path to the
|
|
+installation location of \f[CR]zpcprovider.so\f[R] or the relative path
|
|
+to the OpenSSL modules directory.
|
|
+.TP
|
|
+activate (optional)
|
|
+If present and set to \f[CR]1\f[R], then the associated provider is
|
|
+activated.
|
|
+Conversely, setting this value to \f[CR]0\f[R] or not specifying the
|
|
+parameter at all prevents the provider from being activated (default:
|
|
+\f[CR]0\f[R]).
|
|
+.PP
|
|
+The \f[I]identity\f[R] parameter may be used in the provider section,
|
|
+but it has no impact to the registration of the
|
|
+\f[CR]hbkzpc provider\f[R].
|
|
+It will always register itself with \(lqprovider=hbkzpc\(rq.
|
|
+Multiple instances of this provider may work but are not supported.
|
|
+.SH EXAMPLES
|
|
+The following drop\-in example specifies the \f[CR]hbkzpc provider\f[R]
|
|
+module and activates it.
|
|
+.IP
|
|
+.EX
|
|
+[provider_sect]
|
|
+hbkzpc = hbkzpc_sect
|
|
+
|
|
+[hbkzpc_sect]
|
|
+module = zpcprovider.so
|
|
+activate = 1
|
|
+.EE
|
|
+.PP
|
|
+The drop\-in file needs to be included in the main OpenSSL
|
|
+configuration, either by specifying the drop\-in file or the drop\-in
|
|
+directory (for example \f[CR]/etc/pki/tls/openssl.d/\f[R] on Fedora).
|
|
+.IP
|
|
+.EX
|
|
+\&.include /path/to/drop\-in\-directory
|
|
+.EE
|
|
+.PP
|
|
+The following configuration example covers a complete minimal OpenSSL
|
|
+configuration.
|
|
+It can be used for example as a temporary replacement for the
|
|
+system\-wide OpenSSL configuration.
|
|
+.IP
|
|
+.EX
|
|
+HOME = .
|
|
+
|
|
+openssl_conf = openssl_init
|
|
+
|
|
+[openssl_init]
|
|
+providers = provider_sect
|
|
+alg_section = evp_properties
|
|
+
|
|
+[provider_sect]
|
|
+default = default_sect
|
|
+base = base_sect
|
|
+hbkzpc = hbkzpc_sect
|
|
+
|
|
+[evp_properties]
|
|
+
|
|
+[base_sect]
|
|
+activate = 1
|
|
+
|
|
+[default_sect]
|
|
+activate = 1
|
|
+
|
|
+[hbkzpc_sect]
|
|
+module = /path/to/zpcprovider.so
|
|
+activate = 1
|
|
+.EE
|
|
+.PP
|
|
+To use this configuration example for an application, store it to a file
|
|
+(e.g.\ my\-openssl.conf) and reference this file in the environment
|
|
+variable \f[CR]OPENSSL_CONF\f[R].
|
|
+The following command lists all configured providers: base, default and
|
|
+hbkzpc.
|
|
+.IP
|
|
+.EX
|
|
+$ env OPENSSL_CONF=my\-openssl.conf openssl list \-providers
|
|
+Providers:
|
|
+ base
|
|
+ name: OpenSSL Base Provider
|
|
+ version: 4.0.0
|
|
+ status: active
|
|
+ default
|
|
+ name: OpenSSL Default Provider
|
|
+ version: 4.0.0
|
|
+ status: active
|
|
+ hbkzpc
|
|
+ name: hbkzpc
|
|
+ version: 2.0.0
|
|
+ status: active
|
|
+.EE
|
|
+.SH SEE ALSO
|
|
+hbkzpcprovider(7), config(5SSL).
|
|
diff --git a/man/zpckey.1 b/man/zpckey.1
|
|
new file mode 100644
|
|
index 0000000..877a592
|
|
--- /dev/null
|
|
+++ b/man/zpckey.1
|
|
@@ -0,0 +1,106 @@
|
|
+.\" Automatically generated by Pandoc 3.7.0.2
|
|
+.\"
|
|
+.TH "ZPCKEY" "1" "2026" "LIBZPC v2"
|
|
+.SH NAME
|
|
+zpckey \- A key management tooling for protected key origins, used by
|
|
+the OpenSSL provider for protected keys (\f[CR]hbkzpc provider\f[R]).
|
|
+.SH SYNOPSIS
|
|
+zpckey [\-h|\(enhelp] [\-V|\(enversion]
|
|
+.PP
|
|
+zpckey compose <REQ\-ARGS> [<OPT\-ARGS>] <ORIGIN\-ARGS>
|
|
+.PP
|
|
+zpckey show <REQ\-ARGS> [<OPT\-ARGS>]
|
|
+.SH DESCRIPTION
|
|
+The zpckey command provides key management functions for protected key
|
|
+origins, used by the \f[CR]hbkzpc provider\f[R] (hbkzpcprovider(7)).
|
|
+IBM Z and IBM LinuxONE offer different types of cryptographic hardware
|
|
+with different features, including the CP Assist for Cryptographic
|
|
+Functions (CPACF) and the IBM Crypto Express (CEX) features.
|
|
+.PP
|
|
+The CPACF provides functions to perform cryptographic operations with a
|
|
+kind of hardware\-backed keys, the so called protected keys.
|
|
+.PP
|
|
+The CEX cards provide secure key generation and storage (secure keys),
|
|
+as well as cryptographic operations with these keys.
|
|
+.SH OPTIONS
|
|
+.TP
|
|
+\-V, \-\-version
|
|
+Show version
|
|
+.TP
|
|
+\-h, \-\-help
|
|
+Show short help
|
|
+.SH ZPCKEY COMPOSE
|
|
+The \f[I]compose\f[R] command supports the composition of protected key
|
|
+origins, which can be used for the \f[CR]hbkzpc provider\f[R].
|
|
+.SS Required Arguments:
|
|
+.TP
|
|
+\-t, \-\-origin\-type <otype>
|
|
+Protected key origin type
|
|
+.TP
|
|
+\-a, \-\-origin\-alg <oalg>
|
|
+Protected key origin algorithm
|
|
+.SS Protected key origin types (<otype>):
|
|
+.IP \(bu 2
|
|
+uv: Ultravisor retrievable secrets
|
|
+.SS Protected key origin algorithms (<oalg>):
|
|
+.IP \(bu 2
|
|
+prime256v1 (alt.: 1.2.840.10045.3.1.7)
|
|
+.IP \(bu 2
|
|
+secp384r1 (alt.: 1.3.132.0.34)
|
|
+.IP \(bu 2
|
|
+secp521r1 (alt.: 1.3.132.0.35)
|
|
+.IP \(bu 2
|
|
+ED25519 (alt.: 1.3.101.112)
|
|
+.IP \(bu 2
|
|
+ED448 (alt.: 1.3.101.113)
|
|
+.IP \(bu 2
|
|
+AES\-128
|
|
+.IP \(bu 2
|
|
+AES\-192
|
|
+.IP \(bu 2
|
|
+AES\-256
|
|
+.IP \(bu 2
|
|
+AES\-128\-XTS
|
|
+.IP \(bu 2
|
|
+AES\-256\-XTS
|
|
+.SS Optional Arguments:
|
|
+.TP
|
|
+\-p, \-\-pubkey <file>
|
|
+Public key file
|
|
+.TP
|
|
+\-o, \-\-out <file>
|
|
+Output file
|
|
+.TP
|
|
+\-\-outform <format>
|
|
+Output file format URI, DER or PEM (default: PEM)
|
|
+.TP
|
|
+\-c, \-\-comment <string>
|
|
+Comment (metadata)
|
|
+.TP
|
|
+\-h, \-\-help
|
|
+Show short help
|
|
+.SS Origin Arguments:
|
|
+.TP
|
|
+For <otype> = \f[I]uv\f[R], one out of the following must be specified:
|
|
+.TP
|
|
+\-\-uv\-secret\-id <hexstring>
|
|
+UV secret ID
|
|
+.TP
|
|
+\-\-uv\-secret\-name <string>
|
|
+UV secret name
|
|
+.SH ZPCKEY SHOW
|
|
+The \f[I]show\f[R] command prints information about the key file to
|
|
+stdout.
|
|
+.SS Required Arguments:
|
|
+.TP
|
|
+\-i, \-\-in <file>
|
|
+Input file
|
|
+.SS Optional Arguments:
|
|
+.TP
|
|
+\-\-inform <format>
|
|
+Input file format PEM or DER (default: PEM)
|
|
+.TP
|
|
+\-h, \-\-help
|
|
+Show short help
|
|
+.SH SEE ALSO
|
|
+hbkzpcprovider.conf(5), hbkzpcprovider(7)
|
|
--
|
|
2.55.0
|
|
|
|
|
|
From 7960adcc472595fd89786757edcb051cf9c57df9 Mon Sep 17 00:00:00 2001
|
|
From: Holger Dengler <dengler@linux.ibm.com>
|
|
Date: Fri, 19 Jun 2026 16:09:15 +0200
|
|
Subject: [PATCH 3/6] cmake: Install pre-built man-pages
|
|
|
|
Instead of installing converted man-pages, use the pre-built man-pages
|
|
instead.
|
|
|
|
Signed-off-by: Holger Dengler <dengler@linux.ibm.com>
|
|
---
|
|
CMakeLists.txt | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 7cf6445..2f7a9db 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -327,12 +327,12 @@ install(
|
|
)
|
|
|
|
install(
|
|
- FILES ${CMAKE_BINARY_DIR}/hbkzpcprovider.conf.5
|
|
+ FILES ${CMAKE_SOURCE_DIR}/man/hbkzpcprovider.conf.5
|
|
DESTINATION ${CMAKE_INSTALL_MANDIR}/man5
|
|
)
|
|
|
|
install(
|
|
- FILES ${CMAKE_BINARY_DIR}/hbkzpcprovider.7
|
|
+ FILES ${CMAKE_SOURCE_DIR}/man/hbkzpcprovider.7
|
|
DESTINATION ${CMAKE_INSTALL_MANDIR}/man7
|
|
)
|
|
|
|
@@ -383,7 +383,7 @@ install(
|
|
)
|
|
|
|
install(
|
|
- FILES ${CMAKE_BINARY_DIR}/zpckey.1
|
|
+ FILES ${CMAKE_SOURCE_DIR}/man/zpckey.1
|
|
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
|
|
)
|
|
|
|
--
|
|
2.55.0
|
|
|
|
|
|
From 6ca79151e61cdf905d90aad375788ca0d59cb929 Mon Sep 17 00:00:00 2001
|
|
From: Holger Dengler <dengler@linux.ibm.com>
|
|
Date: Fri, 19 Jun 2026 16:15:28 +0200
|
|
Subject: [PATCH 4/6] cmake: Change man-page related build target
|
|
|
|
Remove the man-page conversion target and change it to an explicit
|
|
update-man target. The conversion script has been relocated to the
|
|
misc/ sub-directory. The script now also gets reasonable defaults for
|
|
the source and target directory, so that it can also used manually
|
|
without parameters.
|
|
|
|
Signed-off-by: Holger Dengler <dengler@linux.ibm.com>
|
|
---
|
|
CMakeLists.txt | 5 +++--
|
|
README.md | 19 ++++++++++++++++---
|
|
conv_man.sh => misc/update-man | 5 +++--
|
|
3 files changed, 22 insertions(+), 7 deletions(-)
|
|
rename conv_man.sh => misc/update-man (79%)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 2f7a9db..74e3684 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -751,8 +751,9 @@ find_program(PANDOC pandoc)
|
|
if (PANDOC)
|
|
|
|
add_custom_target(
|
|
- man ALL
|
|
- COMMAND ${CMAKE_SOURCE_DIR}/conv_man.sh "${CMAKE_SOURCE_DIR}/man" "${CMAKE_BINARY_DIR}"
|
|
+ update-man ALL
|
|
+ COMMAND ${CMAKE_SOURCE_DIR}/misc/update-man ${CMAKE_SOURCE_DIR}/man/ ${CMAKE_SOURCE_DIR}/man/
|
|
+ VERBATIM
|
|
)
|
|
|
|
endif () # PANDOC_FOUND
|
|
diff --git a/README.md b/README.md
|
|
index 02d569b..632f3af 100644
|
|
--- a/README.md
|
|
+++ b/README.md
|
|
@@ -39,9 +39,6 @@ Additional prerequisites for building the internal test program:
|
|
- libjson-c devel package >= 0.13
|
|
- internet connection
|
|
|
|
-Additional prerequisites for building the man-pages:
|
|
-- pandoc
|
|
-
|
|
Additional prerequisites for building the internal html and latex doc:
|
|
- doxygen >= 1.8.17
|
|
- latex, bibtex
|
|
@@ -74,6 +71,22 @@ Custom compile options can also be passed to `cmake` via the `CFLAGS` and
|
|
`CXXFLAGS` environment variables in the usual way.
|
|
|
|
|
|
+Man-Pages
|
|
+---------
|
|
+
|
|
+The man-pages are generated from the related markdown sources. To
|
|
+update one of the man-pages, make the changes to the markdown-file,
|
|
+and use the `update-man` build target to update the pre-built man-page
|
|
+files (troff format). After updating the pre-built man-pages, commit
|
|
+them in a separate patch to the repository.
|
|
+
|
|
+ # make changes to man/<man-page-name>.<section>.md
|
|
+ cmake --build --target update-man # or
|
|
+ make -C build update-man
|
|
+ git add man/*.[157]
|
|
+ git commit -s -m "man: Update pre-built man-pages"
|
|
+
|
|
+
|
|
Cross-Building for s390x architecture
|
|
-------------------------------------
|
|
|
|
diff --git a/conv_man.sh b/misc/update-man
|
|
similarity index 79%
|
|
rename from conv_man.sh
|
|
rename to misc/update-man
|
|
index 992e147..ca15a72 100755
|
|
--- a/conv_man.sh
|
|
+++ b/misc/update-man
|
|
@@ -2,10 +2,11 @@
|
|
# SPDX-License-Identifier: MIT
|
|
# Copyright contributors to the libzpc project
|
|
|
|
-SRCDIR=${1}
|
|
-DSTDIR=${2}
|
|
+SRCDIR=${1:-"./man/"}
|
|
+DSTDIR=${2:-"./man/"}
|
|
|
|
[ -z "${SRCDIR}" ] || [ -z "${DSTDIR}" ] && exit 1
|
|
+[ ! -d "${SRCDIR}" ] || [ ! -d "${DSTDIR}" ] && exit 1
|
|
command -v pandoc >/dev/null 2>&1 || exit 1
|
|
|
|
for MD in "${SRCDIR}"/*.md; do
|
|
--
|
|
2.55.0
|
|
|
|
|
|
From a3f3b2b56df97e39436efce8f4e8883cee2887d4 Mon Sep 17 00:00:00 2001
|
|
From: Holger Dengler <dengler@linux.ibm.com>
|
|
Date: Fri, 19 Jun 2026 18:22:58 +0200
|
|
Subject: [PATCH 5/6] spec: Remove the pandoc dependency
|
|
|
|
Signed-off-by: Holger Dengler <dengler@linux.ibm.com>
|
|
---
|
|
libzpc.spec | 1 -
|
|
1 file changed, 1 deletion(-)
|
|
|
|
diff --git a/libzpc.spec b/libzpc.spec
|
|
index ae30f1d..3700e37 100644
|
|
--- a/libzpc.spec
|
|
+++ b/libzpc.spec
|
|
@@ -14,7 +14,6 @@ BuildRequires: gcc
|
|
BuildRequires: g++
|
|
BuildRequires: make
|
|
BuildRequires: clang-tools-extra
|
|
-BuildRequires: pandoc
|
|
BuildRequires: json-c-devel
|
|
BuildRequires: openssl-devel >= 3.0.7
|
|
|
|
--
|
|
2.55.0
|
|
|
|
|
|
From 73b32ef1f419ba45da3b516c72540315650d2d6b Mon Sep 17 00:00:00 2001
|
|
From: Holger Dengler <dengler@linux.ibm.com>
|
|
Date: Fri, 19 Jun 2026 18:23:44 +0200
|
|
Subject: [PATCH 6/6] travis: Remove the pandoc dependency
|
|
|
|
Signed-off-by: Holger Dengler <dengler@linux.ibm.com>
|
|
---
|
|
.travis.yml | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/.travis.yml b/.travis.yml
|
|
index f029fcc..4e82506 100644
|
|
--- a/.travis.yml
|
|
+++ b/.travis.yml
|
|
@@ -12,7 +12,7 @@ compiler:
|
|
|
|
before_install:
|
|
- sudo apt-get update -qq
|
|
- - sudo apt-get install -y cmake pandoc clang-format libjson-c-dev libssl-dev
|
|
+ - sudo apt-get install -y cmake clang-format libjson-c-dev libssl-dev
|
|
|
|
script:
|
|
- set -o pipefail
|
|
--
|
|
2.55.0
|
|
|