Merge ~lvoytek/ubuntu/+source/openvpn:update-2.6.10-oracular into ubuntu/+source/openvpn:ubuntu/devel

Proposed by Lena Voytek
Status: Merged
Approved by: git-ubuntu bot
Approved revision: not available
Merge reported by: Andreas Hasenack
Merged at revision: 626c51111b6ea32e78017385711e98e6e9200b3a
Proposed branch: ~lvoytek/ubuntu/+source/openvpn:update-2.6.10-oracular
Merge into: ubuntu/+source/openvpn:ubuntu/devel
Diff against target: 10151 lines (+2204/-1313)
307 files modified
COPYING (+1/-1)
ChangeLog (+33/-1)
Changes.rst (+52/-1)
Makefile.am (+2/-2)
Makefile.in (+3/-2)
PORTS (+1/-1)
README.mbedtls (+0/-16)
build/Makefile.in (+1/-0)
config.guess (+5/-11)
config.sub (+7/-13)
configure (+251/-128)
configure.ac (+1/-1)
contrib/OCSP_check/OCSP_check.sh (+1/-1)
contrib/cmake/git-version.py (+1/-1)
contrib/cmake/parse-version.m4.py (+1/-1)
debian/changelog (+20/-0)
debian/patches/series (+0/-1)
dev/null (+0/-86)
distro/Makefile.am (+1/-1)
distro/Makefile.in (+2/-1)
distro/systemd/Makefile.am (+5/-2)
distro/systemd/Makefile.in (+6/-2)
distro/systemd/openvpn-client@.service.in (+2/-2)
distro/systemd/openvpn-server@.service.in (+2/-2)
doc/Makefile.am (+1/-1)
doc/Makefile.in (+2/-1)
doc/doxygen/Makefile.in (+1/-0)
doc/man-sections/cipher-negotiation.rst (+1/-1)
doc/man-sections/client-options.rst (+11/-0)
doc/man-sections/generic-options.rst (+1/-1)
doc/man-sections/inline-files.rst (+1/-1)
doc/man-sections/vpn-network-options.rst (+2/-2)
doc/openvpn-examples.5 (+5/-5)
doc/openvpn-examples.5.html (+4/-4)
doc/openvpn.8 (+131/-113)
doc/openvpn.8.html (+18/-9)
include/Makefile.am (+1/-1)
include/Makefile.in (+2/-1)
include/openvpn-msg.h (+1/-1)
include/openvpn-plugin.h (+2/-2)
include/openvpn-plugin.h.in (+1/-1)
ltmain.sh (+523/-338)
m4/libtool.m4 (+141/-135)
m4/ltoptions.m4 (+2/-2)
m4/ltsugar.m4 (+1/-1)
m4/ltversion.m4 (+7/-6)
m4/lt~obsolete.m4 (+2/-2)
sample/Makefile.am (+1/-1)
sample/Makefile.in (+2/-1)
sample/sample-config-files/server.conf (+1/-1)
sample/sample-keys/gen-sample-keys.sh (+1/-1)
sample/sample-plugins/Makefile (+60/-59)
sample/sample-plugins/Makefile.am (+1/-1)
sample/sample-plugins/Makefile.in (+3/-2)
sample/sample-plugins/Makefile.plugins (+1/-1)
sample/sample-plugins/client-connect/sample-client-connect.c (+1/-1)
sample/sample-plugins/defer/multi-auth.c (+1/-1)
sample/sample-plugins/keying-material-exporter-demo/keyingmaterialexporter.c (+1/-1)
sample/sample-plugins/log/log.c (+1/-1)
sample/sample-plugins/log/log_v3.c (+2/-2)
sample/sample-plugins/simple/base64.c (+1/-1)
sample/sample-plugins/simple/simple.c (+1/-1)
src/Makefile.am (+1/-1)
src/Makefile.in (+2/-1)
src/compat/Makefile.am (+1/-1)
src/compat/Makefile.in (+2/-1)
src/compat/compat-gettimeofday.c (+1/-1)
src/compat/compat-strsep.c (+1/-1)
src/openvpn/Makefile.am (+1/-1)
src/openvpn/Makefile.in (+2/-1)
src/openvpn/argv.c (+1/-1)
src/openvpn/argv.h (+1/-1)
src/openvpn/auth_token.h (+1/-1)
src/openvpn/basic.h (+1/-1)
src/openvpn/block_dns.c (+1/-1)
src/openvpn/block_dns.h (+1/-1)
src/openvpn/buffer.c (+1/-1)
src/openvpn/buffer.h (+1/-1)
src/openvpn/circ_list.h (+1/-1)
src/openvpn/clinat.c (+1/-1)
src/openvpn/clinat.h (+1/-1)
src/openvpn/common.h (+1/-1)
src/openvpn/comp-lz4.c (+2/-2)
src/openvpn/comp-lz4.h (+2/-2)
src/openvpn/comp.c (+2/-2)
src/openvpn/comp.h (+1/-1)
src/openvpn/compstub.c (+1/-1)
src/openvpn/console.c (+2/-2)
src/openvpn/console.h (+2/-2)
src/openvpn/console_builtin.c (+2/-2)
src/openvpn/crypto.c (+1/-1)
src/openvpn/crypto.h (+1/-1)
src/openvpn/crypto_backend.h (+1/-1)
src/openvpn/crypto_mbedtls.c (+1/-1)
src/openvpn/crypto_mbedtls.h (+1/-1)
src/openvpn/crypto_openssl.c (+1/-1)
src/openvpn/crypto_openssl.h (+1/-1)
src/openvpn/dco.c (+10/-4)
src/openvpn/dco.h (+3/-3)
src/openvpn/dco_internal.h (+2/-2)
src/openvpn/dco_linux.c (+3/-3)
src/openvpn/dco_linux.h (+3/-3)
src/openvpn/dco_win.c (+2/-2)
src/openvpn/dco_win.h (+2/-2)
src/openvpn/dhcp.c (+1/-1)
src/openvpn/dhcp.h (+1/-1)
src/openvpn/dns.c (+1/-1)
src/openvpn/dns.h (+1/-1)
src/openvpn/env_set.c (+2/-2)
src/openvpn/env_set.h (+1/-1)
src/openvpn/errlevel.h (+1/-1)
src/openvpn/error.c (+1/-1)
src/openvpn/error.h (+2/-8)
src/openvpn/event.c (+1/-1)
src/openvpn/event.h (+1/-1)
src/openvpn/fdmisc.c (+1/-1)
src/openvpn/fdmisc.h (+1/-1)
src/openvpn/forward.c (+1/-1)
src/openvpn/forward.h (+1/-1)
src/openvpn/fragment.c (+1/-1)
src/openvpn/fragment.h (+2/-2)
src/openvpn/gremlin.c (+1/-1)
src/openvpn/gremlin.h (+1/-1)
src/openvpn/helper.c (+1/-1)
src/openvpn/helper.h (+1/-1)
src/openvpn/httpdigest.c (+1/-1)
src/openvpn/httpdigest.h (+1/-1)
src/openvpn/init.c (+1/-7)
src/openvpn/init.h (+1/-1)
src/openvpn/integer.h (+1/-1)
src/openvpn/interval.c (+1/-1)
src/openvpn/interval.h (+1/-1)
src/openvpn/list.c (+1/-1)
src/openvpn/list.h (+1/-1)
src/openvpn/lzo.c (+1/-1)
src/openvpn/lzo.h (+1/-1)
src/openvpn/manage.c (+1/-1)
src/openvpn/manage.h (+1/-1)
src/openvpn/mbuf.c (+1/-1)
src/openvpn/mbuf.h (+1/-1)
src/openvpn/memdbg.h (+1/-1)
src/openvpn/misc.c (+2/-2)
src/openvpn/misc.h (+1/-1)
src/openvpn/mroute.c (+1/-1)
src/openvpn/mroute.h (+1/-1)
src/openvpn/mss.c (+1/-1)
src/openvpn/mss.h (+1/-1)
src/openvpn/mstats.c (+1/-1)
src/openvpn/mstats.h (+1/-1)
src/openvpn/mtcp.c (+1/-1)
src/openvpn/mtcp.h (+1/-1)
src/openvpn/mtu.c (+1/-1)
src/openvpn/mtu.h (+1/-1)
src/openvpn/mudp.c (+1/-1)
src/openvpn/mudp.h (+1/-1)
src/openvpn/multi.c (+1/-1)
src/openvpn/multi.h (+1/-1)
src/openvpn/networking.h (+1/-1)
src/openvpn/networking_iproute2.c (+1/-1)
src/openvpn/networking_iproute2.h (+1/-1)
src/openvpn/networking_sitnl.c (+1/-1)
src/openvpn/networking_sitnl.h (+1/-1)
src/openvpn/occ.c (+1/-1)
src/openvpn/occ.h (+1/-1)
src/openvpn/openssl_compat.h (+1/-1)
src/openvpn/openvpn.c (+1/-1)
src/openvpn/openvpn.h (+1/-1)
src/openvpn/options.c (+3/-3)
src/openvpn/options.h (+1/-1)
src/openvpn/options_util.c (+1/-1)
src/openvpn/options_util.h (+1/-1)
src/openvpn/otime.c (+1/-1)
src/openvpn/otime.h (+1/-1)
src/openvpn/packet_id.c (+1/-1)
src/openvpn/packet_id.h (+1/-1)
src/openvpn/perf.c (+1/-1)
src/openvpn/perf.h (+1/-1)
src/openvpn/ping.c (+1/-1)
src/openvpn/ping.h (+1/-1)
src/openvpn/pkcs11.c (+1/-1)
src/openvpn/pkcs11.h (+1/-1)
src/openvpn/pkcs11_backend.h (+1/-1)
src/openvpn/pkcs11_mbedtls.c (+1/-1)
src/openvpn/pkcs11_openssl.c (+1/-1)
src/openvpn/platform.c (+1/-1)
src/openvpn/platform.h (+1/-1)
src/openvpn/plugin.c (+16/-4)
src/openvpn/plugin.h (+1/-1)
src/openvpn/pool.c (+1/-1)
src/openvpn/pool.h (+1/-1)
src/openvpn/proto.c (+1/-1)
src/openvpn/proto.h (+1/-1)
src/openvpn/proxy.c (+1/-1)
src/openvpn/proxy.h (+1/-1)
src/openvpn/ps.c (+1/-1)
src/openvpn/ps.h (+1/-1)
src/openvpn/push.c (+1/-1)
src/openvpn/push.h (+1/-1)
src/openvpn/pushlist.h (+1/-1)
src/openvpn/reflect_filter.c (+1/-1)
src/openvpn/reflect_filter.h (+1/-1)
src/openvpn/reliable.c (+1/-1)
src/openvpn/reliable.h (+1/-1)
src/openvpn/ring_buffer.h (+1/-1)
src/openvpn/route.c (+1/-1)
src/openvpn/route.h (+1/-1)
src/openvpn/run_command.c (+1/-1)
src/openvpn/run_command.h (+1/-1)
src/openvpn/schedule.c (+1/-1)
src/openvpn/schedule.h (+1/-1)
src/openvpn/session_id.c (+1/-1)
src/openvpn/session_id.h (+1/-1)
src/openvpn/shaper.c (+1/-1)
src/openvpn/shaper.h (+1/-1)
src/openvpn/sig.c (+1/-1)
src/openvpn/sig.h (+1/-1)
src/openvpn/socket.c (+1/-1)
src/openvpn/socket.h (+1/-1)
src/openvpn/socks.c (+1/-1)
src/openvpn/socks.h (+1/-1)
src/openvpn/ssl.c (+2/-2)
src/openvpn/ssl.h (+1/-1)
src/openvpn/ssl_backend.h (+1/-1)
src/openvpn/ssl_common.h (+1/-1)
src/openvpn/ssl_mbedtls.c (+1/-1)
src/openvpn/ssl_mbedtls.h (+1/-1)
src/openvpn/ssl_ncp.c (+2/-2)
src/openvpn/ssl_ncp.h (+1/-1)
src/openvpn/ssl_openssl.c (+1/-1)
src/openvpn/ssl_openssl.h (+1/-1)
src/openvpn/ssl_pkt.c (+1/-1)
src/openvpn/ssl_pkt.h (+1/-1)
src/openvpn/ssl_util.c (+1/-1)
src/openvpn/ssl_util.h (+1/-1)
src/openvpn/ssl_verify.c (+1/-1)
src/openvpn/ssl_verify.h (+1/-1)
src/openvpn/ssl_verify_backend.h (+1/-1)
src/openvpn/ssl_verify_mbedtls.c (+1/-1)
src/openvpn/ssl_verify_mbedtls.h (+1/-1)
src/openvpn/ssl_verify_openssl.c (+1/-1)
src/openvpn/ssl_verify_openssl.h (+1/-1)
src/openvpn/status.c (+1/-1)
src/openvpn/status.h (+1/-1)
src/openvpn/syshead.h (+1/-1)
src/openvpn/tun.c (+1/-1)
src/openvpn/tun.h (+1/-1)
src/openvpn/vlan.c (+1/-1)
src/openvpn/vlan.h (+1/-1)
src/openvpn/win32-util.c (+1/-1)
src/openvpn/win32-util.h (+1/-1)
src/openvpn/win32.c (+66/-13)
src/openvpn/win32.h (+28/-1)
src/openvpn/xkey_common.h (+1/-1)
src/openvpn/xkey_helper.c (+1/-1)
src/openvpn/xkey_provider.c (+1/-1)
src/openvpnmsica/Makefile.am (+2/-2)
src/openvpnmsica/Makefile.in (+3/-2)
src/openvpnmsica/dllmain.c (+1/-1)
src/openvpnmsica/msica_arg.c (+1/-1)
src/openvpnmsica/msica_arg.h (+1/-1)
src/openvpnmsica/msiex.c (+1/-1)
src/openvpnmsica/msiex.h (+1/-1)
src/openvpnmsica/openvpnmsica.c (+1/-1)
src/openvpnmsica/openvpnmsica.h (+1/-1)
src/openvpnmsica/openvpnmsica_resources.rc (+1/-1)
src/openvpnserv/Makefile.am (+1/-1)
src/openvpnserv/Makefile.in (+2/-1)
src/openvpnserv/common.c (+1/-1)
src/openvpnserv/interactive.c (+24/-17)
src/openvpnserv/service.h (+1/-1)
src/openvpnserv/validate.c (+1/-1)
src/openvpnserv/validate.h (+1/-1)
src/plugins/Makefile.am (+1/-1)
src/plugins/Makefile.in (+2/-1)
src/plugins/auth-pam/Makefile.in (+1/-0)
src/plugins/auth-pam/auth-pam.c (+2/-2)
src/plugins/auth-pam/utils.c (+1/-1)
src/plugins/auth-pam/utils.h (+1/-1)
src/plugins/down-root/Makefile.in (+1/-0)
src/plugins/down-root/down-root.c (+1/-1)
src/tapctl/Makefile.am (+2/-2)
src/tapctl/Makefile.in (+3/-2)
src/tapctl/basic.h (+2/-2)
src/tapctl/error.c (+2/-2)
src/tapctl/error.h (+2/-2)
src/tapctl/main.c (+2/-2)
src/tapctl/tap.c (+1/-1)
src/tapctl/tap.h (+1/-1)
src/tapctl/tapctl_resources.rc (+1/-1)
tests/Makefile.am (+15/-1)
tests/Makefile.in (+330/-13)
tests/ntlm_support.c (+52/-0)
tests/t_client.rc-sample (+25/-7)
tests/t_client.sh.in (+14/-0)
tests/unit_tests/Makefile.in (+1/-0)
tests/unit_tests/example_test/Makefile.in (+1/-0)
tests/unit_tests/openvpn/Makefile.in (+1/-0)
tests/unit_tests/openvpn/cert_data.h (+1/-1)
tests/unit_tests/openvpn/mock_msg.c (+13/-1)
tests/unit_tests/openvpn/mock_win32_execve.c (+2/-2)
tests/unit_tests/openvpn/test_cryptoapi.c (+1/-1)
tests/unit_tests/openvpn/test_misc.c (+1/-1)
tests/unit_tests/openvpn/test_ncp.c (+1/-1)
tests/unit_tests/openvpn/test_provider.c (+1/-1)
tests/unit_tests/plugins/Makefile.in (+1/-0)
tests/unit_tests/plugins/auth-pam/Makefile.in (+1/-0)
version.m4 (+1/-1)
Reviewer Review Type Date Requested Status
git-ubuntu bot Approve
Andreas Hasenack Approve
Canonical Server Reporter Pending
Review via email: mp+465346@code.launchpad.net

Description of the change

Update oracular to 2.6.10 to prepare for MRE of noble + mantic

PPA: https://launchpad.net/~lvoytek/+archive/ubuntu/openvpn-mre

To post a comment you must log in.
626c511... by Lena Voytek

changelog

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I downloaded the detached signature via https, and imported the signing gpg key. The key verified both the current tarball 2.6.9, as well as the new one 2.6.10.

I also checked that the commit updating the version to 2.6.10 matches the downloaded 2.6.10 tarball.

No worrying upstream changes in 2.6.10 for us, or that would impact our delta.

+1

review: Approve
Revision history for this message
git-ubuntu bot (git-ubuntu-bot) wrote :

Approvers: lvoytek, ahasenack
Uploaders: lvoytek, ahasenack
MP auto-approved

review: Approve
Revision history for this message
Lena Voytek (lvoytek) wrote :

Thanks! Uploaded

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

This is in oracular proposed[1] already, marking MP as merged.

1. https://launchpad.net/ubuntu/+source/openvpn/2.6.10-0ubuntu1

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/COPYING b/COPYING
2index 28525d7..00ecc27 100644
3--- a/COPYING
4+++ b/COPYING
5@@ -1,6 +1,6 @@
6 OpenVPN (TM) -- An Open Source VPN daemon
7
8-Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
9+Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
10
11 This distribution contains multiple components, some
12 of which fall under different licenses. By using OpenVPN
13diff --git a/ChangeLog b/ChangeLog
14index 3cf6b50..c0c06ff 100644
15--- a/ChangeLog
16+++ b/ChangeLog
17@@ -1,5 +1,37 @@
18 OpenVPN ChangeLog
19-Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
20+Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
21+
22+2024.03.20 -- Version 2.6.10
23+
24+Christoph Schug (1):
25+ Update documentation references in systemd unit files
26+
27+Frank Lichtenheld (6):
28+ Fix typo --data-cipher-fallback
29+ samples: Remove tls-*.conf
30+ check_compression_settings_valid: Do not test for LZ4 in LZO check
31+ t_client.sh: Allow to skip tests
32+ Update Copyright statements to 2024
33+ GHA: general update March 2024
34+
35+Lev Stipakov (4):
36+ win32: Enforce loading of plugins from a trusted directory
37+ interactive.c: disable remote access to the service pipe
38+ interactive.c: Fix potential stack overflow issue
39+ Disable DCO if proxy is set via management
40+
41+Martin Rys (1):
42+ openvpn-[client|server].service: Remove syslog.target
43+
44+Max Fillinger (1):
45+ Remove license warning from README.mbedtls
46+
47+Selva Nair (1):
48+ Document that auth-user-pass may be inlined
49+
50+wellweek (1):
51+ remove repetitive words in documentation and comments
52+
53
54 2024.02.11 -- Version 2.6.9
55
56diff --git a/Changes.rst b/Changes.rst
57index 2b8e6f5..029c807 100644
58--- a/Changes.rst
59+++ b/Changes.rst
60@@ -1,3 +1,54 @@
61+Overview of changes in 2.6.10
62+=============================
63+Security fixes
64+--------------
65+- CVE-2024-27459: Windows: fix a possible stack overflow in the
66+ interactive service component which might lead to a local privilege
67+ escalation.
68+ Reported-by: Vladimir Tokarev <vtokarev@microsoft.com>
69+
70+- CVE-2024-24974: Windows: disallow access to the interactive service
71+ pipe from remote computers.
72+ Reported-by: Vladimir Tokarev <vtokarev@microsoft.com>
73+
74+- CVE-2024-27903: Windows: disallow loading of plugins from untrusted
75+ installation paths, which could be used to attack openvpn.exe via
76+ a malicious plugin. Plugins can now only be loaded from the OpenVPN
77+ install directory, the Windows system directory, and possibly from
78+ a directory specified by HKLM\SOFTWARE\OpenVPN\plugin_dir.
79+ Reported-by: Vladimir Tokarev <vtokarev@microsoft.com>
80+
81+Bug fixes
82+---------
83+- Windows: if the win-dco driver is used (default) and the GUI requests
84+ use of a proxy server, the connection would fail. Disable DCO in
85+ this case. (Github: #522)
86+
87+- Compression: minor bugfix in checking option consistency vs. compiled-in
88+ algorithm support
89+
90+- systemd unit files: remove obsolete syslog.target
91+
92+User visible changes
93+--------------------
94+- Update copyright notices to 2024
95+
96+New features
97+------------
98+- t_client.sh can now run pre-tests and skip a test block if needed
99+ (e.g. skip NTLM proxy tests if SSL library does not support MD4)
100+
101+Documentation
102+-------------
103+- remove license warnings about mbedTLS linking (README.mbedtls)
104+
105+- update documentation references in systemd unit files
106+
107+- sample config files: remove obsolete tls-*.conf files
108+
109+- document that auth-user-pass may be inlined
110+
111+
112 Overview of changes in 2.6.9
113 ============================
114
115@@ -1453,7 +1504,7 @@ Control channel encryption (``--tls-crypt``)
116 Asynchronous push reply
117 Plug-ins providing support for deferred authentication can benefit from a more
118 responsive authentication where the server sends PUSH_REPLY immediately once
119- the authentication result is ready, instead of waiting for the the client to
120+ the authentication result is ready, instead of waiting for the client to
121 to send PUSH_REQUEST once more. This requires OpenVPN to be built with
122 ``./configure --enable-async-push``. This is a compile-time only switch.
123
124diff --git a/Makefile.am b/Makefile.am
125index 7478cc5..e4203aa 100644
126--- a/Makefile.am
127+++ b/Makefile.am
128@@ -5,8 +5,8 @@
129 # packet encryption, packet authentication, and
130 # packet compression.
131 #
132-# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
133-# Copyright (C) 2010-2023 David Sommerseth <dazo@eurephia.org>
134+# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
135+# Copyright (C) 2010-2024 David Sommerseth <dazo@eurephia.org>
136 # Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
137 #
138 # This program is free software; you can redistribute it and/or modify
139diff --git a/Makefile.in b/Makefile.in
140index fb26773..a1e9ed8 100644
141--- a/Makefile.in
142+++ b/Makefile.in
143@@ -21,8 +21,8 @@
144 # packet encryption, packet authentication, and
145 # packet compression.
146 #
147-# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
148-# Copyright (C) 2010-2023 David Sommerseth <dazo@eurephia.org>
149+# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
150+# Copyright (C) 2010-2024 David Sommerseth <dazo@eurephia.org>
151 # Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
152 #
153 # This program is free software; you can redistribute it and/or modify
154@@ -296,6 +296,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
155 ETAGS = @ETAGS@
156 EXEEXT = @EXEEXT@
157 FGREP = @FGREP@
158+FILECMD = @FILECMD@
159 GIT = @GIT@
160 GREP = @GREP@
161 IFCONFIG = @IFCONFIG@
162diff --git a/PORTS b/PORTS
163index dd156d0..dadc6f8 100644
164--- a/PORTS
165+++ b/PORTS
166@@ -1,5 +1,5 @@
167 OpenVPN
168-Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
169+Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
170
171 OpenVPN has been written to try to avoid features
172 that are not standardized well across different
173diff --git a/README.mbedtls b/README.mbedtls
174index 124eaa2..c4f3924 100644
175--- a/README.mbedtls
176+++ b/README.mbedtls
177@@ -11,22 +11,6 @@ This version requires mbed TLS version >= 2.0.0 or >= 3.2.1.
178
179 *************************************************************************
180
181-Warning:
182-
183-As of mbed TLS 2.17, it can be licensed *only* under the Apache v2.0 license.
184-That license is incompatible with OpenVPN's GPLv2.
185-
186-We are currently in the process of resolving this problem, but for now, if you
187-wish to distribute OpenVPN linked with mbed TLS, there are two options:
188-
189- * Ensure that your case falls under the system library exception in GPLv2, or
190-
191- * Use an earlier version of mbed TLS. Version 2.16.12 is the last release
192- that may be licensed under GPLv2. Unfortunately, this version is
193- unsupported and won't receive any more updates.
194-
195-*************************************************************************
196-
197 Due to limitations in the mbed TLS library, the following features are missing
198 in the mbed TLS version of OpenVPN:
199
200diff --git a/build/Makefile.in b/build/Makefile.in
201index a9a992e..70a4aa5 100644
202--- a/build/Makefile.in
203+++ b/build/Makefile.in
204@@ -168,6 +168,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
205 ETAGS = @ETAGS@
206 EXEEXT = @EXEEXT@
207 FGREP = @FGREP@
208+FILECMD = @FILECMD@
209 GIT = @GIT@
210 GREP = @GREP@
211 IFCONFIG = @IFCONFIG@
212diff --git a/config.guess b/config.guess
213index 7f76b62..e81d3ae 100755
214--- a/config.guess
215+++ b/config.guess
216@@ -1,14 +1,14 @@
217 #! /bin/sh
218 # Attempt to guess a canonical system name.
219-# Copyright 1992-2022 Free Software Foundation, Inc.
220+# Copyright 1992-2021 Free Software Foundation, Inc.
221
222 # shellcheck disable=SC2006,SC2268 # see below for rationale
223
224-timestamp='2022-01-09'
225+timestamp='2021-06-03'
226
227 # This file is free software; you can redistribute it and/or modify it
228 # under the terms of the GNU General Public License as published by
229-# the Free Software Foundation, either version 3 of the License, or
230+# the Free Software Foundation; either version 3 of the License, or
231 # (at your option) any later version.
232 #
233 # This program is distributed in the hope that it will be useful, but
234@@ -60,7 +60,7 @@ version="\
235 GNU config.guess ($timestamp)
236
237 Originally written by Per Bothner.
238-Copyright 1992-2022 Free Software Foundation, Inc.
239+Copyright 1992-2021 Free Software Foundation, Inc.
240
241 This is free software; see the source for copying conditions. There is NO
242 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
243@@ -437,7 +437,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
244 # This test works for both compilers.
245 if test "$CC_FOR_BUILD" != no_compiler_found; then
246 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
247- (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
248+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
249 grep IS_64BIT_ARCH >/dev/null
250 then
251 SUN_ARCH=x86_64
252@@ -929,9 +929,6 @@ EOF
253 i*:PW*:*)
254 GUESS=$UNAME_MACHINE-pc-pw32
255 ;;
256- *:SerenityOS:*:*)
257- GUESS=$UNAME_MACHINE-pc-serenity
258- ;;
259 *:Interix*:*)
260 case $UNAME_MACHINE in
261 x86)
262@@ -1525,9 +1522,6 @@ EOF
263 i*86:rdos:*:*)
264 GUESS=$UNAME_MACHINE-pc-rdos
265 ;;
266- i*86:Fiwix:*:*)
267- GUESS=$UNAME_MACHINE-pc-fiwix
268- ;;
269 *:AROS:*:*)
270 GUESS=$UNAME_MACHINE-unknown-aros
271 ;;
272diff --git a/config.sub b/config.sub
273index dba16e8..d74fb6d 100755
274--- a/config.sub
275+++ b/config.sub
276@@ -1,14 +1,14 @@
277 #! /bin/sh
278 # Configuration validation subroutine script.
279-# Copyright 1992-2022 Free Software Foundation, Inc.
280+# Copyright 1992-2021 Free Software Foundation, Inc.
281
282 # shellcheck disable=SC2006,SC2268 # see below for rationale
283
284-timestamp='2022-01-03'
285+timestamp='2021-08-14'
286
287 # This file is free software; you can redistribute it and/or modify it
288 # under the terms of the GNU General Public License as published by
289-# the Free Software Foundation, either version 3 of the License, or
290+# the Free Software Foundation; either version 3 of the License, or
291 # (at your option) any later version.
292 #
293 # This program is distributed in the hope that it will be useful, but
294@@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
295 version="\
296 GNU config.sub ($timestamp)
297
298-Copyright 1992-2022 Free Software Foundation, Inc.
299+Copyright 1992-2021 Free Software Foundation, Inc.
300
301 This is free software; see the source for copying conditions. There is NO
302 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
303@@ -1020,11 +1020,6 @@ case $cpu-$vendor in
304 ;;
305
306 # Here we normalize CPU types with a missing or matching vendor
307- armh-unknown | armh-alt)
308- cpu=armv7l
309- vendor=alt
310- basic_os=${basic_os:-linux-gnueabihf}
311- ;;
312 dpx20-unknown | dpx20-bull)
313 cpu=rs6000
314 vendor=bull
315@@ -1126,7 +1121,7 @@ case $cpu-$vendor in
316 xscale-* | xscalee[bl]-*)
317 cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
318 ;;
319- arm64-* | aarch64le-*)
320+ arm64-*)
321 cpu=aarch64
322 ;;
323
324@@ -1309,7 +1304,7 @@ esac
325 if test x$basic_os != x
326 then
327
328-# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
329+# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
330 # set os.
331 case $basic_os in
332 gnu/linux*)
333@@ -1753,8 +1748,7 @@ case $os in
334 | skyos* | haiku* | rdos* | toppers* | drops* | es* \
335 | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
336 | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
337- | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
338- | fiwix* )
339+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
340 ;;
341 # This one is extra strict with allowed versions
342 sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
343diff --git a/configure b/configure
344index 44d422f..8484a51 100755
345--- a/configure
346+++ b/configure
347@@ -1,6 +1,6 @@
348 #! /bin/sh
349 # Guess values for system-dependent variables and create Makefiles.
350-# Generated by GNU Autoconf 2.71 for OpenVPN 2.6.9.
351+# Generated by GNU Autoconf 2.71 for OpenVPN 2.6.10.
352 #
353 # Report bugs to <openvpn-users@lists.sourceforge.net>.
354 #
355@@ -621,8 +621,8 @@ MAKEFLAGS=
356 # Identity of this package.
357 PACKAGE_NAME='OpenVPN'
358 PACKAGE_TARNAME='openvpn'
359-PACKAGE_VERSION='2.6.9'
360-PACKAGE_STRING='OpenVPN 2.6.9'
361+PACKAGE_VERSION='2.6.10'
362+PACKAGE_STRING='OpenVPN 2.6.10'
363 PACKAGE_BUGREPORT='openvpn-users@lists.sourceforge.net'
364 PACKAGE_URL=''
365
366@@ -747,6 +747,7 @@ MANIFEST_TOOL
367 RANLIB
368 ac_ct_AR
369 AR
370+FILECMD
371 NM
372 ac_ct_DUMPBIN
373 DUMPBIN
374@@ -1522,7 +1523,7 @@ if test "$ac_init_help" = "long"; then
375 # Omit some internal or obsolete options to make the list less imposing.
376 # This message is too long to be a string in the A/UX 3.1 sh.
377 cat <<_ACEOF
378-\`configure' configures OpenVPN 2.6.9 to adapt to many kinds of systems.
379+\`configure' configures OpenVPN 2.6.10 to adapt to many kinds of systems.
380
381 Usage: $0 [OPTION]... [VAR=VALUE]...
382
383@@ -1593,7 +1594,7 @@ fi
384
385 if test -n "$ac_init_help"; then
386 case $ac_init_help in
387- short | recursive ) echo "Configuration of OpenVPN 2.6.9:";;
388+ short | recursive ) echo "Configuration of OpenVPN 2.6.10:";;
389 esac
390 cat <<\_ACEOF
391
392@@ -1830,7 +1831,7 @@ fi
393 test -n "$ac_init_help" && exit $ac_status
394 if $ac_init_version; then
395 cat <<\_ACEOF
396-OpenVPN configure 2.6.9
397+OpenVPN configure 2.6.10
398 generated by GNU Autoconf 2.71
399
400 Copyright (C) 2021 Free Software Foundation, Inc.
401@@ -2487,7 +2488,7 @@ cat >config.log <<_ACEOF
402 This file contains any messages produced by compilers while
403 running configure, to aid debugging if configure makes a mistake.
404
405-It was created by OpenVPN $as_me 2.6.9, which was
406+It was created by OpenVPN $as_me 2.6.10, which was
407 generated by GNU Autoconf 2.71. Invocation command line was
408
409 $ $0$ac_configure_args_raw
410@@ -3273,7 +3274,7 @@ OPENVPN_VERSION_MAJOR=2
411
412 OPENVPN_VERSION_MINOR=6
413
414-OPENVPN_VERSION_PATCH=.9
415+OPENVPN_VERSION_PATCH=.10
416
417
418 printf "%s\n" "#define OPENVPN_VERSION_MAJOR 2" >>confdefs.h
419@@ -3282,7 +3283,7 @@ printf "%s\n" "#define OPENVPN_VERSION_MAJOR 2" >>confdefs.h
420 printf "%s\n" "#define OPENVPN_VERSION_MINOR 6" >>confdefs.h
421
422
423-printf "%s\n" "#define OPENVPN_VERSION_PATCH \".9\"" >>confdefs.h
424+printf "%s\n" "#define OPENVPN_VERSION_PATCH \".10\"" >>confdefs.h
425
426
427
428@@ -3811,7 +3812,7 @@ fi
429
430 # Define the identity of the package.
431 PACKAGE='openvpn'
432- VERSION='2.6.9'
433+ VERSION='2.6.10'
434
435
436 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
437@@ -6712,8 +6713,8 @@ esac
438
439
440
441-macro_version='2.4.6'
442-macro_revision='2.4.6'
443+macro_version='2.4.7'
444+macro_revision='2.4.7'
445
446
447
448@@ -7266,13 +7267,13 @@ else
449 mingw*) lt_bad_file=conftest.nm/nofile ;;
450 *) lt_bad_file=/dev/null ;;
451 esac
452- case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
453+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
454 *$lt_bad_file* | *'Invalid file or object type'*)
455 lt_cv_path_NM="$tmp_nm -B"
456 break 2
457 ;;
458 *)
459- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
460+ case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
461 */dev/null*)
462 lt_cv_path_NM="$tmp_nm -p"
463 break 2
464@@ -7410,7 +7411,7 @@ esac
465 fi
466 fi
467
468- case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
469+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
470 *COFF*)
471 DUMPBIN="$DUMPBIN -symbols -headers"
472 ;;
473@@ -7503,7 +7504,7 @@ else $as_nop
474 lt_cv_sys_max_cmd_len=8192;
475 ;;
476
477- bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
478+ bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
479 # This has been around since 386BSD, at least. Likely further.
480 if test -x /sbin/sysctl; then
481 lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
482@@ -7546,7 +7547,7 @@ else $as_nop
483 sysv5* | sco5v6* | sysv4.2uw2*)
484 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
485 if test -n "$kargmax"; then
486- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
487+ lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'`
488 else
489 lt_cv_sys_max_cmd_len=32768
490 fi
491@@ -7752,6 +7753,114 @@ esac
492
493
494 if test -n "$ac_tool_prefix"; then
495+ # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args.
496+set dummy ${ac_tool_prefix}file; ac_word=$2
497+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
498+printf %s "checking for $ac_word... " >&6; }
499+if test ${ac_cv_prog_FILECMD+y}
500+then :
501+ printf %s "(cached) " >&6
502+else $as_nop
503+ if test -n "$FILECMD"; then
504+ ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.
505+else
506+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
507+for as_dir in $PATH
508+do
509+ IFS=$as_save_IFS
510+ case $as_dir in #(((
511+ '') as_dir=./ ;;
512+ */) ;;
513+ *) as_dir=$as_dir/ ;;
514+ esac
515+ for ac_exec_ext in '' $ac_executable_extensions; do
516+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
517+ ac_cv_prog_FILECMD="${ac_tool_prefix}file"
518+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
519+ break 2
520+ fi
521+done
522+ done
523+IFS=$as_save_IFS
524+
525+fi
526+fi
527+FILECMD=$ac_cv_prog_FILECMD
528+if test -n "$FILECMD"; then
529+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5
530+printf "%s\n" "$FILECMD" >&6; }
531+else
532+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
533+printf "%s\n" "no" >&6; }
534+fi
535+
536+
537+fi
538+if test -z "$ac_cv_prog_FILECMD"; then
539+ ac_ct_FILECMD=$FILECMD
540+ # Extract the first word of "file", so it can be a program name with args.
541+set dummy file; ac_word=$2
542+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
543+printf %s "checking for $ac_word... " >&6; }
544+if test ${ac_cv_prog_ac_ct_FILECMD+y}
545+then :
546+ printf %s "(cached) " >&6
547+else $as_nop
548+ if test -n "$ac_ct_FILECMD"; then
549+ ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test.
550+else
551+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
552+for as_dir in $PATH
553+do
554+ IFS=$as_save_IFS
555+ case $as_dir in #(((
556+ '') as_dir=./ ;;
557+ */) ;;
558+ *) as_dir=$as_dir/ ;;
559+ esac
560+ for ac_exec_ext in '' $ac_executable_extensions; do
561+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
562+ ac_cv_prog_ac_ct_FILECMD="file"
563+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
564+ break 2
565+ fi
566+done
567+ done
568+IFS=$as_save_IFS
569+
570+fi
571+fi
572+ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD
573+if test -n "$ac_ct_FILECMD"; then
574+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5
575+printf "%s\n" "$ac_ct_FILECMD" >&6; }
576+else
577+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
578+printf "%s\n" "no" >&6; }
579+fi
580+
581+ if test "x$ac_ct_FILECMD" = x; then
582+ FILECMD=":"
583+ else
584+ case $cross_compiling:$ac_tool_warned in
585+yes:)
586+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
587+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
588+ac_tool_warned=yes ;;
589+esac
590+ FILECMD=$ac_ct_FILECMD
591+ fi
592+else
593+ FILECMD="$ac_cv_prog_FILECMD"
594+fi
595+
596+
597+
598+
599+
600+
601+
602+if test -n "$ac_tool_prefix"; then
603 # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
604 set dummy ${ac_tool_prefix}objdump; ac_word=$2
605 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
606@@ -7891,7 +8000,7 @@ beos*)
607
608 bsdi[45]*)
609 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
610- lt_cv_file_magic_cmd='/usr/bin/file -L'
611+ lt_cv_file_magic_cmd='$FILECMD -L'
612 lt_cv_file_magic_test_file=/shlib/libc.so
613 ;;
614
615@@ -7925,14 +8034,14 @@ darwin* | rhapsody*)
616 lt_cv_deplibs_check_method=pass_all
617 ;;
618
619-freebsd* | dragonfly*)
620+freebsd* | dragonfly* | midnightbsd*)
621 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
622 case $host_cpu in
623 i*86 )
624 # Not sure whether the presence of OpenBSD here was a mistake.
625 # Let's accept both of them until this is cleared up.
626 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
627- lt_cv_file_magic_cmd=/usr/bin/file
628+ lt_cv_file_magic_cmd=$FILECMD
629 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
630 ;;
631 esac
632@@ -7946,7 +8055,7 @@ haiku*)
633 ;;
634
635 hpux10.20* | hpux11*)
636- lt_cv_file_magic_cmd=/usr/bin/file
637+ lt_cv_file_magic_cmd=$FILECMD
638 case $host_cpu in
639 ia64*)
640 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
641@@ -7983,7 +8092,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
642 lt_cv_deplibs_check_method=pass_all
643 ;;
644
645-netbsd* | netbsdelf*-gnu)
646+netbsd*)
647 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
648 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
649 else
650@@ -7993,7 +8102,7 @@ netbsd* | netbsdelf*-gnu)
651
652 newos6*)
653 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
654- lt_cv_file_magic_cmd=/usr/bin/file
655+ lt_cv_file_magic_cmd=$FILECMD
656 lt_cv_file_magic_test_file=/usr/lib/libnls.so
657 ;;
658
659@@ -8363,13 +8472,29 @@ esac
660 fi
661
662 : ${AR=ar}
663-: ${AR_FLAGS=cr}
664
665
666
667
668
669
670+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
671+# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
672+# higher priority because thats what people were doing historically (setting
673+# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
674+# variable obsoleted/removed.
675+
676+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
677+lt_ar_flags=$AR_FLAGS
678+
679+
680+
681+
682+
683+
684+# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
685+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
686+
687
688
689
690@@ -8786,7 +8911,7 @@ esac
691
692 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
693 # Gets list of data symbols to import.
694- lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
695+ lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
696 # Adjust the below global symbol transforms to fixup imported variables.
697 lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
698 lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
699@@ -8804,20 +8929,20 @@ fi
700 # Transform an extracted symbol line into a proper C declaration.
701 # Some systems (esp. on ia64) link data and code symbols differently,
702 # so use this general approach.
703-lt_cv_sys_global_symbol_to_cdecl="sed -n"\
704+lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
705 $lt_cdecl_hook\
706 " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
707 " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
708
709 # Transform an extracted symbol line into symbol name and symbol address
710-lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
711+lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
712 $lt_c_name_hook\
713 " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
714 " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
715
716 # Transform an extracted symbol line into symbol name with lib prefix and
717 # symbol address.
718-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
719+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
720 $lt_c_name_lib_hook\
721 " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
722 " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
723@@ -8841,7 +8966,7 @@ for ac_symprfx in "" "_"; do
724 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
725 # Fake it for dumpbin and say T for any non-static function,
726 # D for any global variable and I for any imported variable.
727- # Also find C++ and __fastcall symbols from MSVC++,
728+ # Also find C++ and __fastcall symbols from MSVC++ or ICC,
729 # which start with @ or ?.
730 lt_cv_sys_global_symbol_pipe="$AWK '"\
731 " {last_section=section; section=\$ 3};"\
732@@ -8859,9 +8984,9 @@ for ac_symprfx in "" "_"; do
733 " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
734 " ' prfx=^$ac_symprfx"
735 else
736- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
737+ lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
738 fi
739- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
740+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
741
742 # Check to see that the pipe works correctly.
743 pipe_works=no
744@@ -8887,8 +9012,11 @@ _LT_EOF
745 test $ac_status = 0; }; then
746 # Now try to grab the symbols.
747 nlist=conftest.nm
748- $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
749- if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
750+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
751+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
752+ ac_status=$?
753+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
754+ test $ac_status = 0; } && test -s "$nlist"; then
755 # Try sorting and uniquifying the output.
756 if sort "$nlist" | uniq > "$nlist"T; then
757 mv -f "$nlist"T "$nlist"
758@@ -9061,7 +9189,7 @@ case $with_sysroot in #(
759 fi
760 ;; #(
761 /*)
762- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
763+ lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
764 ;; #(
765 no|'')
766 ;; #(
767@@ -9186,7 +9314,7 @@ ia64-*-hpux*)
768 ac_status=$?
769 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
770 test $ac_status = 0; }; then
771- case `/usr/bin/file conftest.$ac_objext` in
772+ case `$FILECMD conftest.$ac_objext` in
773 *ELF-32*)
774 HPUX_IA64_MODE=32
775 ;;
776@@ -9207,7 +9335,7 @@ ia64-*-hpux*)
777 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
778 test $ac_status = 0; }; then
779 if test yes = "$lt_cv_prog_gnu_ld"; then
780- case `/usr/bin/file conftest.$ac_objext` in
781+ case `$FILECMD conftest.$ac_objext` in
782 *32-bit*)
783 LD="${LD-ld} -melf32bsmip"
784 ;;
785@@ -9219,7 +9347,7 @@ ia64-*-hpux*)
786 ;;
787 esac
788 else
789- case `/usr/bin/file conftest.$ac_objext` in
790+ case `$FILECMD conftest.$ac_objext` in
791 *32-bit*)
792 LD="${LD-ld} -32"
793 ;;
794@@ -9245,7 +9373,7 @@ mips64*-*linux*)
795 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
796 test $ac_status = 0; }; then
797 emul=elf
798- case `/usr/bin/file conftest.$ac_objext` in
799+ case `$FILECMD conftest.$ac_objext` in
800 *32-bit*)
801 emul="${emul}32"
802 ;;
803@@ -9253,7 +9381,7 @@ mips64*-*linux*)
804 emul="${emul}64"
805 ;;
806 esac
807- case `/usr/bin/file conftest.$ac_objext` in
808+ case `$FILECMD conftest.$ac_objext` in
809 *MSB*)
810 emul="${emul}btsmip"
811 ;;
812@@ -9261,7 +9389,7 @@ mips64*-*linux*)
813 emul="${emul}ltsmip"
814 ;;
815 esac
816- case `/usr/bin/file conftest.$ac_objext` in
817+ case `$FILECMD conftest.$ac_objext` in
818 *N32*)
819 emul="${emul}n32"
820 ;;
821@@ -9285,14 +9413,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
822 ac_status=$?
823 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
824 test $ac_status = 0; }; then
825- case `/usr/bin/file conftest.o` in
826+ case `$FILECMD conftest.o` in
827 *32-bit*)
828 case $host in
829 x86_64-*kfreebsd*-gnu)
830 LD="${LD-ld} -m elf_i386_fbsd"
831 ;;
832 x86_64-*linux*)
833- case `/usr/bin/file conftest.o` in
834+ case `$FILECMD conftest.o` in
835 *x86-64*)
836 LD="${LD-ld} -m elf32_x86_64"
837 ;;
838@@ -9400,7 +9528,7 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
839 ac_status=$?
840 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
841 test $ac_status = 0; }; then
842- case `/usr/bin/file conftest.o` in
843+ case `$FILECMD conftest.o` in
844 *64-bit*)
845 case $lt_cv_prog_gnu_ld in
846 yes*)
847@@ -10183,8 +10311,8 @@ int forced_loaded() { return 2;}
848 _LT_EOF
849 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
850 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
851- echo "$AR cr libconftest.a conftest.o" >&5
852- $AR cr libconftest.a conftest.o 2>&5
853+ echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5
854+ $AR $AR_FLAGS libconftest.a conftest.o 2>&5
855 echo "$RANLIB libconftest.a" >&5
856 $RANLIB libconftest.a 2>&5
857 cat > conftest.c << _LT_EOF
858@@ -10211,17 +10339,12 @@ printf "%s\n" "$lt_cv_ld_force_load" >&6; }
859 _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
860 darwin1.*)
861 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
862- darwin*) # darwin 5.x on
863- # if running on 10.5 or later, the deployment target defaults
864- # to the OS version, if on x86, and 10.4, the deployment
865- # target defaults to 10.4. Don't you love it?
866- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
867- 10.0,*86*-darwin8*|10.0,*-darwin[912]*)
868- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
869- 10.[012][,.]*)
870- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
871- 10.*|11.*)
872- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
873+ darwin*)
874+ case $MACOSX_DEPLOYMENT_TARGET,$host in
875+ 10.[012],*|,*powerpc*-darwin[5-8]*)
876+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
877+ *)
878+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
879 esac
880 ;;
881 esac
882@@ -10908,8 +11031,8 @@ esac
883 ofile=libtool
884 can_build_shared=yes
885
886-# All known linkers require a '.a' archive for static linking (except MSVC,
887-# which needs '.lib').
888+# All known linkers require a '.a' archive for static linking (except MSVC and
889+# ICC, which need '.lib').
890 libext=a
891
892 with_gnu_ld=$lt_cv_prog_gnu_ld
893@@ -11377,12 +11500,6 @@ lt_prog_compiler_static=
894 lt_prog_compiler_pic='-KPIC'
895 lt_prog_compiler_static='-static'
896 ;;
897- # flang / f18. f95 an alias for gfortran or flang on Debian
898- flang* | f18* | f95*)
899- lt_prog_compiler_wl='-Wl,'
900- lt_prog_compiler_pic='-fPIC'
901- lt_prog_compiler_static='-static'
902- ;;
903 # icc used to be incompatible with GCC.
904 # ICC 10 doesn't accept -KPIC any more.
905 icc* | ifort*)
906@@ -11427,7 +11544,7 @@ lt_prog_compiler_static=
907 lt_prog_compiler_static='-qstaticlink'
908 ;;
909 *)
910- case `$CC -V 2>&1 | sed 5q` in
911+ case `$CC -V 2>&1 | $SED 5q` in
912 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
913 # Sun Fortran 8.3 passes all unrecognized flags to the linker
914 lt_prog_compiler_pic='-KPIC'
915@@ -11850,23 +11967,20 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
916
917 case $host_os in
918 cygwin* | mingw* | pw32* | cegcc*)
919- # FIXME: the MSVC++ port hasn't been tested in a loooong time
920+ # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
921 # When not using gcc, we currently assume that we are using
922- # Microsoft Visual C++.
923+ # Microsoft Visual C++ or Intel C++ Compiler.
924 if test yes != "$GCC"; then
925 with_gnu_ld=no
926 fi
927 ;;
928 interix*)
929- # we just hope/assume this is gcc and not c89 (= MSVC++)
930+ # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
931 with_gnu_ld=yes
932 ;;
933 openbsd* | bitrig*)
934 with_gnu_ld=no
935 ;;
936- linux* | k*bsd*-gnu | gnu*)
937- link_all_deplibs=no
938- ;;
939 esac
940
941 ld_shlibs=yes
942@@ -11913,7 +12027,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
943 whole_archive_flag_spec=
944 fi
945 supports_anon_versioning=no
946- case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
947+ case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
948 *GNU\ gold*) supports_anon_versioning=yes ;;
949 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
950 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
951@@ -12025,6 +12139,7 @@ _LT_EOF
952 emximp -o $lib $output_objdir/$libname.def'
953 old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
954 enable_shared_with_static_runtimes=yes
955+ file_list_spec='@'
956 ;;
957
958 interix[3-9]*)
959@@ -12039,7 +12154,7 @@ _LT_EOF
960 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
961 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
962 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
963- archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
964+ archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
965 ;;
966
967 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
968@@ -12082,7 +12197,7 @@ _LT_EOF
969 compiler_needs_object=yes
970 ;;
971 esac
972- case `$CC -V 2>&1 | sed 5q` in
973+ case `$CC -V 2>&1 | $SED 5q` in
974 *Sun\ C*) # Sun C 5.9
975 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
976 compiler_needs_object=yes
977@@ -12094,7 +12209,7 @@ _LT_EOF
978
979 if test yes = "$supports_anon_versioning"; then
980 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
981- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
982+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
983 echo "local: *; };" >> $output_objdir/$libname.ver~
984 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
985 fi
986@@ -12110,7 +12225,7 @@ _LT_EOF
987 archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
988 if test yes = "$supports_anon_versioning"; then
989 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
990- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
991+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
992 echo "local: *; };" >> $output_objdir/$libname.ver~
993 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
994 fi
995@@ -12121,7 +12236,7 @@ _LT_EOF
996 fi
997 ;;
998
999- netbsd* | netbsdelf*-gnu)
1000+ netbsd*)
1001 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
1002 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
1003 wlarc=
1004@@ -12242,7 +12357,7 @@ _LT_EOF
1005 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
1006 export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
1007 else
1008- export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
1009+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
1010 fi
1011 aix_use_runtimelinking=no
1012
1013@@ -12513,12 +12628,12 @@ fi
1014
1015 cygwin* | mingw* | pw32* | cegcc*)
1016 # When not using gcc, we currently assume that we are using
1017- # Microsoft Visual C++.
1018+ # Microsoft Visual C++ or Intel C++ Compiler.
1019 # hardcode_libdir_flag_spec is actually meaningless, as there is
1020 # no search path for DLLs.
1021 case $cc_basename in
1022- cl*)
1023- # Native MSVC
1024+ cl* | icl*)
1025+ # Native MSVC or ICC
1026 hardcode_libdir_flag_spec=' '
1027 allow_undefined_flag=unsupported
1028 always_export_symbols=yes
1029@@ -12559,7 +12674,7 @@ fi
1030 fi'
1031 ;;
1032 *)
1033- # Assume MSVC wrapper
1034+ # Assume MSVC and ICC wrapper
1035 hardcode_libdir_flag_spec=' '
1036 allow_undefined_flag=unsupported
1037 # Tell ltmain to make .lib files, not .a files.
1038@@ -12600,8 +12715,8 @@ fi
1039 output_verbose_link_cmd=func_echo_all
1040 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
1041 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
1042- archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
1043- module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
1044+ archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
1045+ module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
1046
1047 else
1048 ld_shlibs=no
1049@@ -12635,7 +12750,7 @@ fi
1050 ;;
1051
1052 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
1053- freebsd* | dragonfly*)
1054+ freebsd* | dragonfly* | midnightbsd*)
1055 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
1056 hardcode_libdir_flag_spec='-R$libdir'
1057 hardcode_direct=yes
1058@@ -12798,7 +12913,6 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
1059 if test yes = "$lt_cv_irix_exported_symbol"; then
1060 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
1061 fi
1062- link_all_deplibs=no
1063 else
1064 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
1065 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
1066@@ -12820,7 +12934,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
1067 esac
1068 ;;
1069
1070- netbsd* | netbsdelf*-gnu)
1071+ netbsd*)
1072 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
1073 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
1074 else
1075@@ -12887,6 +13001,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
1076 emximp -o $lib $output_objdir/$libname.def'
1077 old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
1078 enable_shared_with_static_runtimes=yes
1079+ file_list_spec='@'
1080 ;;
1081
1082 osf3*)
1083@@ -13579,7 +13694,7 @@ cygwin* | mingw* | pw32* | cegcc*)
1084 case $host_os in
1085 cygwin*)
1086 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
1087- soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
1088+ soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
1089
1090 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
1091 ;;
1092@@ -13589,14 +13704,14 @@ cygwin* | mingw* | pw32* | cegcc*)
1093 ;;
1094 pw32*)
1095 # pw32 DLLs use 'pw' prefix rather than 'lib'
1096- library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
1097+ library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
1098 ;;
1099 esac
1100 dynamic_linker='Win32 ld.exe'
1101 ;;
1102
1103- *,cl*)
1104- # Native MSVC
1105+ *,cl* | *,icl*)
1106+ # Native MSVC or ICC
1107 libname_spec='$name'
1108 soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
1109 library_names_spec='$libname.dll.lib'
1110@@ -13615,7 +13730,7 @@ cygwin* | mingw* | pw32* | cegcc*)
1111 done
1112 IFS=$lt_save_ifs
1113 # Convert to MSYS style.
1114- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
1115+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
1116 ;;
1117 cygwin*)
1118 # Convert to unix form, then to dos form, then back to unix form
1119@@ -13652,7 +13767,7 @@ cygwin* | mingw* | pw32* | cegcc*)
1120 ;;
1121
1122 *)
1123- # Assume MSVC wrapper
1124+ # Assume MSVC and ICC wrapper
1125 library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
1126 dynamic_linker='Win32 ld.exe'
1127 ;;
1128@@ -13685,7 +13800,7 @@ dgux*)
1129 shlibpath_var=LD_LIBRARY_PATH
1130 ;;
1131
1132-freebsd* | dragonfly*)
1133+freebsd* | dragonfly* | midnightbsd*)
1134 # DragonFly does not have aout. When/if they implement a new
1135 # versioning mechanism, adjust this.
1136 if test -x /usr/bin/objformat; then
1137@@ -13939,18 +14054,6 @@ fi
1138 dynamic_linker='GNU/Linux ld.so'
1139 ;;
1140
1141-netbsdelf*-gnu)
1142- version_type=linux
1143- need_lib_prefix=no
1144- need_version=no
1145- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
1146- soname_spec='${libname}${release}${shared_ext}$major'
1147- shlibpath_var=LD_LIBRARY_PATH
1148- shlibpath_overrides_runpath=no
1149- hardcode_into_libs=yes
1150- dynamic_linker='NetBSD ld.elf_so'
1151- ;;
1152-
1153 netbsd*)
1154 version_type=sunos
1155 need_lib_prefix=no
1156@@ -14850,30 +14953,41 @@ striplib=
1157 old_striplib=
1158 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
1159 printf %s "checking whether stripping libraries is possible... " >&6; }
1160-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
1161- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
1162- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
1163- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1164-printf "%s\n" "yes" >&6; }
1165+if test -z "$STRIP"; then
1166+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
1167+printf "%s\n" "no" >&6; }
1168 else
1169-# FIXME - insert some real tests, host_os isn't really good enough
1170- case $host_os in
1171- darwin*)
1172- if test -n "$STRIP"; then
1173+ if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
1174+ old_striplib="$STRIP --strip-debug"
1175+ striplib="$STRIP --strip-unneeded"
1176+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1177+printf "%s\n" "yes" >&6; }
1178+ else
1179+ case $host_os in
1180+ darwin*)
1181+ # FIXME - insert some real tests, host_os isn't really good enough
1182 striplib="$STRIP -x"
1183 old_striplib="$STRIP -S"
1184 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1185 printf "%s\n" "yes" >&6; }
1186- else
1187- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
1188+ ;;
1189+ freebsd*)
1190+ if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
1191+ old_striplib="$STRIP --strip-debug"
1192+ striplib="$STRIP --strip-unneeded"
1193+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1194+printf "%s\n" "yes" >&6; }
1195+ else
1196+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
1197 printf "%s\n" "no" >&6; }
1198- fi
1199- ;;
1200- *)
1201- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
1202+ fi
1203+ ;;
1204+ *)
1205+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
1206 printf "%s\n" "no" >&6; }
1207- ;;
1208- esac
1209+ ;;
1210+ esac
1211+ fi
1212 fi
1213
1214
1215@@ -20103,7 +20217,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
1216 # report actual input values of CONFIG_FILES etc. instead of their
1217 # values after options handling.
1218 ac_log="
1219-This file was extended by OpenVPN $as_me 2.6.9, which was
1220+This file was extended by OpenVPN $as_me 2.6.10, which was
1221 generated by GNU Autoconf 2.71. Invocation command line was
1222
1223 CONFIG_FILES = $CONFIG_FILES
1224@@ -20171,7 +20285,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
1225 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1226 ac_cs_config='$ac_cs_config_escaped'
1227 ac_cs_version="\\
1228-OpenVPN config.status 2.6.9
1229+OpenVPN config.status 2.6.10
1230 configured by $0, generated by GNU Autoconf 2.71,
1231 with options \\"\$ac_cs_config\\"
1232
1233@@ -20337,12 +20451,14 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q
1234 lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
1235 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
1236 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
1237+FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'
1238 deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
1239 file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
1240 file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
1241 want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
1242 sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
1243 AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
1244+lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'
1245 AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
1246 archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
1247 STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
1248@@ -20508,13 +20624,13 @@ LN_S \
1249 lt_SP2NL \
1250 lt_NL2SP \
1251 reload_flag \
1252+FILECMD \
1253 deplibs_check_method \
1254 file_magic_cmd \
1255 file_magic_glob \
1256 want_nocaseglob \
1257 sharedlib_from_linklib_cmd \
1258 AR \
1259-AR_FLAGS \
1260 archiver_list_spec \
1261 STRIP \
1262 RANLIB \
1263@@ -21396,6 +21512,7 @@ See \`config.log' for more details" "$LINENO" 5; }
1264 cat <<_LT_EOF >> "$cfgfile"
1265 #! $SHELL
1266 # Generated automatically by $as_me ($PACKAGE) $VERSION
1267+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
1268 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
1269
1270 # Provide generalized library-building support services.
1271@@ -21524,6 +21641,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd
1272 # convert \$build files to toolchain format.
1273 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
1274
1275+# A file(cmd) program that detects file types.
1276+FILECMD=$lt_FILECMD
1277+
1278 # Method to check whether dependent libraries are shared objects.
1279 deplibs_check_method=$lt_deplibs_check_method
1280
1281@@ -21542,8 +21662,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
1282 # The archiver.
1283 AR=$lt_AR
1284
1285+# Flags to create an archive (by configure).
1286+lt_ar_flags=$lt_ar_flags
1287+
1288 # Flags to create an archive.
1289-AR_FLAGS=$lt_AR_FLAGS
1290+AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}
1291
1292 # How to feed a file listing to the archiver.
1293 archiver_list_spec=$lt_archiver_list_spec
1294@@ -21919,7 +22042,7 @@ ltmain=$ac_aux_dir/ltmain.sh
1295 # if finds mixed CR/LF and LF-only lines. Since sed operates in
1296 # text mode, it properly converts lines to CR/LF. This bash problem
1297 # is reportedly fixed, but why not run on old versions too?
1298- sed '$q' "$ltmain" >> "$cfgfile" \
1299+ $SED '$q' "$ltmain" >> "$cfgfile" \
1300 || (rm -f "$cfgfile"; exit 1)
1301
1302 mv -f "$cfgfile" "$ofile" ||
1303diff --git a/configure.ac b/configure.ac
1304index ca0850b..1619b43 100644
1305--- a/configure.ac
1306+++ b/configure.ac
1307@@ -4,7 +4,7 @@ dnl session authentication and key exchange,
1308 dnl packet encryption, packet authentication, and
1309 dnl packet compression.
1310 dnl
1311-dnl Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
1312+dnl Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
1313 dnl Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
1314 dnl
1315 dnl This program is free software; you can redistribute it and/or modify
1316diff --git a/contrib/OCSP_check/OCSP_check.sh b/contrib/OCSP_check/OCSP_check.sh
1317index 2675788..e4fec83 100644
1318--- a/contrib/OCSP_check/OCSP_check.sh
1319+++ b/contrib/OCSP_check/OCSP_check.sh
1320@@ -89,7 +89,7 @@ if [ $check_depth -eq -1 ] || [ $cur_depth -eq $check_depth ]; then
1321 #
1322 # NOTE: It is needed to check the exit code of OpenSSL explicitly. OpenSSL
1323 # can in some circumstances give a "good" result if it could not
1324- # reach the the OSCP server. In this case, the exit code will indicate
1325+ # reach the OSCP server. In this case, the exit code will indicate
1326 # if OpenSSL itself failed or not. If OpenSSL's exit code is not 0,
1327 # don't trust the OpenSSL status.
1328
1329diff --git a/contrib/cmake/git-version.py b/contrib/cmake/git-version.py
1330index 4f78ac4..a39cab4 100644
1331--- a/contrib/cmake/git-version.py
1332+++ b/contrib/cmake/git-version.py
1333@@ -5,7 +5,7 @@
1334 # packet encryption, packet authentication, and
1335 # packet compression.
1336 #
1337-# Copyright (C) 2022-2023 OpenVPN Inc <sales@openvpn.net>
1338+# Copyright (C) 2022-2024 OpenVPN Inc <sales@openvpn.net>
1339 # Copyright (C) 2022-2022 Lev Stipakov <lev@lestisoftware.fi>
1340 #
1341 # This program is free software; you can redistribute it and/or modify
1342diff --git a/contrib/cmake/parse-version.m4.py b/contrib/cmake/parse-version.m4.py
1343index 791d2ec..a41871b 100644
1344--- a/contrib/cmake/parse-version.m4.py
1345+++ b/contrib/cmake/parse-version.m4.py
1346@@ -5,7 +5,7 @@
1347 # packet encryption, packet authentication, and
1348 # packet compression.
1349 #
1350-# Copyright (C) 2022-2023 OpenVPN Inc <sales@openvpn.net>
1351+# Copyright (C) 2022-2024 OpenVPN Inc <sales@openvpn.net>
1352 # Copyright (C) 2022-2022 Lev Stipakov <lev@lestisoftware.fi>
1353 #
1354 # This program is free software; you can redistribute it and/or modify
1355diff --git a/debian/changelog b/debian/changelog
1356index 300c285..e81c167 100644
1357--- a/debian/changelog
1358+++ b/debian/changelog
1359@@ -1,3 +1,23 @@
1360+openvpn (2.6.10-0ubuntu1) oracular; urgency=medium
1361+
1362+ * New upstream version 2.6.10 (LP: #2064436)
1363+ - Updates:
1364+ + t_client.sh can now run pre-tests and skip a test block if needed.
1365+ + Remove license warnings about mbedTLS linking.
1366+ + Update documentation references in systemd unit files.
1367+ + Remove obsolete tls-*.conf sample files.
1368+ + document that auth-user-pass may be inlined.
1369+ - Bug fixes:
1370+ + Fix checking option consistency for compiled-in compression algorithm
1371+ support.
1372+ + Remove obsolete syslog.target in systemd unit files.
1373+ + Additional Windows bug fixes.
1374+ - See https://community.openvpn.net/openvpn/wiki/ChangesInOpenvpn26 for
1375+ additional bug fixes and information.
1376+ * d/p/systemd.patch: Remove - Fixed upstream
1377+
1378+ -- Lena Voytek <lena.voytek@canonical.com> Wed, 01 May 2024 10:02:39 -0700
1379+
1380 openvpn (2.6.9-1ubuntu4) noble; urgency=high
1381
1382 * No change rebuild against libssl3t64.
1383diff --git a/debian/patches/series b/debian/patches/series
1384index cd8779c..4dbc853 100644
1385--- a/debian/patches/series
1386+++ b/debian/patches/series
1387@@ -2,4 +2,3 @@ move_log_dir.patch
1388 auth-pam_libpam_so_filename.patch
1389 #debian_nogroup_for_sample_files.patch
1390 openvpn-pkcs11warn.patch
1391-systemd.patch
1392diff --git a/debian/patches/systemd.patch b/debian/patches/systemd.patch
1393deleted file mode 100644
1394index ccbecfd..0000000
1395--- a/debian/patches/systemd.patch
1396+++ /dev/null
1397@@ -1,29 +0,0 @@
1398-Description: remove syslog.target
1399-Author: Jörg Frings-Fürst <debian@jff.email>
1400-Last-Update: 2018-07-29
1401----
1402-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
1403-Index: trunk/distro/systemd/openvpn-client@.service.in
1404-===================================================================
1405---- trunk.orig/distro/systemd/openvpn-client@.service.in
1406-+++ trunk/distro/systemd/openvpn-client@.service.in
1407-@@ -1,6 +1,6 @@
1408- [Unit]
1409- Description=OpenVPN tunnel for %I
1410--After=syslog.target network-online.target
1411-+After=network-online.target
1412- Wants=network-online.target
1413- Documentation=man:openvpn(8)
1414- Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
1415-Index: trunk/distro/systemd/openvpn-server@.service.in
1416-===================================================================
1417---- trunk.orig/distro/systemd/openvpn-server@.service.in
1418-+++ trunk/distro/systemd/openvpn-server@.service.in
1419-@@ -1,6 +1,6 @@
1420- [Unit]
1421- Description=OpenVPN service for %I
1422--After=syslog.target network-online.target
1423-+After=network-online.target
1424- Wants=network-online.target
1425- Documentation=man:openvpn(8)
1426- Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
1427diff --git a/distro/Makefile.am b/distro/Makefile.am
1428index 177dcee..7a588da 100644
1429--- a/distro/Makefile.am
1430+++ b/distro/Makefile.am
1431@@ -5,7 +5,7 @@
1432 # packet encryption, packet authentication, and
1433 # packet compression.
1434 #
1435-# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
1436+# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
1437 # Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
1438 #
1439
1440diff --git a/distro/Makefile.in b/distro/Makefile.in
1441index 8c999ca..adafe36 100644
1442--- a/distro/Makefile.in
1443+++ b/distro/Makefile.in
1444@@ -21,7 +21,7 @@
1445 # packet encryption, packet authentication, and
1446 # packet compression.
1447 #
1448-# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
1449+# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
1450 # Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
1451 #
1452 VPATH = @srcdir@
1453@@ -227,6 +227,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
1454 ETAGS = @ETAGS@
1455 EXEEXT = @EXEEXT@
1456 FGREP = @FGREP@
1457+FILECMD = @FILECMD@
1458 GIT = @GIT@
1459 GREP = @GREP@
1460 IFCONFIG = @IFCONFIG@
1461diff --git a/distro/systemd/Makefile.am b/distro/systemd/Makefile.am
1462index 7e8f475..8503a0c 100644
1463--- a/distro/systemd/Makefile.am
1464+++ b/distro/systemd/Makefile.am
1465@@ -5,11 +5,14 @@
1466 # packet encryption, packet authentication, and
1467 # packet compression.
1468 #
1469-# Copyright (C) 2017-2023 OpenVPN Inc <sales@openvpn.net>
1470+# Copyright (C) 2017-2024 OpenVPN Inc <sales@openvpn.net>
1471 #
1472
1473 %.service: %.service.in Makefile
1474- $(AM_V_GEN)sed -e 's|\@sbindir\@|$(sbindir)|' \
1475+ $(AM_V_GEN)sed \
1476+ -e 's|\@OPENVPN_VERSION_MAJOR\@|$(OPENVPN_VERSION_MAJOR)|g' \
1477+ -e 's|\@OPENVPN_VERSION_MINOR\@|$(OPENVPN_VERSION_MINOR)|g' \
1478+ -e 's|\@sbindir\@|$(sbindir)|g' \
1479 $< > $@.tmp && mv $@.tmp $@
1480
1481 EXTRA_DIST = \
1482diff --git a/distro/systemd/Makefile.in b/distro/systemd/Makefile.in
1483index 90ef2f2..8ecde8c 100644
1484--- a/distro/systemd/Makefile.in
1485+++ b/distro/systemd/Makefile.in
1486@@ -21,7 +21,7 @@
1487 # packet encryption, packet authentication, and
1488 # packet compression.
1489 #
1490-# Copyright (C) 2017-2023 OpenVPN Inc <sales@openvpn.net>
1491+# Copyright (C) 2017-2024 OpenVPN Inc <sales@openvpn.net>
1492 #
1493
1494 VPATH = @srcdir@
1495@@ -201,6 +201,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
1496 ETAGS = @ETAGS@
1497 EXEEXT = @EXEEXT@
1498 FGREP = @FGREP@
1499+FILECMD = @FILECMD@
1500 GIT = @GIT@
1501 GREP = @GREP@
1502 IFCONFIG = @IFCONFIG@
1503@@ -649,7 +650,10 @@ uninstall-am: uninstall-dist_docDATA uninstall-systemdunitDATA \
1504
1505
1506 %.service: %.service.in Makefile
1507- $(AM_V_GEN)sed -e 's|\@sbindir\@|$(sbindir)|' \
1508+ $(AM_V_GEN)sed \
1509+ -e 's|\@OPENVPN_VERSION_MAJOR\@|$(OPENVPN_VERSION_MAJOR)|g' \
1510+ -e 's|\@OPENVPN_VERSION_MINOR\@|$(OPENVPN_VERSION_MINOR)|g' \
1511+ -e 's|\@sbindir\@|$(sbindir)|g' \
1512 $< > $@.tmp && mv $@.tmp $@
1513
1514 @ENABLE_SYSTEMD_TRUE@install-data-hook:
1515diff --git a/distro/systemd/openvpn-client@.service.in b/distro/systemd/openvpn-client@.service.in
1516index 159fb4d..ae62e8c 100644
1517--- a/distro/systemd/openvpn-client@.service.in
1518+++ b/distro/systemd/openvpn-client@.service.in
1519@@ -1,9 +1,9 @@
1520 [Unit]
1521 Description=OpenVPN tunnel for %I
1522-After=syslog.target network-online.target
1523+After=network-online.target
1524 Wants=network-online.target
1525 Documentation=man:openvpn(8)
1526-Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
1527+Documentation=https://openvpn.net/community-resources/reference-manual-for-openvpn-@OPENVPN_VERSION_MAJOR@-@OPENVPN_VERSION_MINOR@/
1528 Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO
1529
1530 [Service]
1531diff --git a/distro/systemd/openvpn-server@.service.in b/distro/systemd/openvpn-server@.service.in
1532index 6e8e7d9..5123e07 100644
1533--- a/distro/systemd/openvpn-server@.service.in
1534+++ b/distro/systemd/openvpn-server@.service.in
1535@@ -1,9 +1,9 @@
1536 [Unit]
1537 Description=OpenVPN service for %I
1538-After=syslog.target network-online.target
1539+After=network-online.target
1540 Wants=network-online.target
1541 Documentation=man:openvpn(8)
1542-Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
1543+Documentation=https://openvpn.net/community-resources/reference-manual-for-openvpn-@OPENVPN_VERSION_MAJOR@-@OPENVPN_VERSION_MINOR@/
1544 Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO
1545
1546 [Service]
1547diff --git a/doc/Makefile.am b/doc/Makefile.am
1548index 087f0ce..634e4ce 100644
1549--- a/doc/Makefile.am
1550+++ b/doc/Makefile.am
1551@@ -5,7 +5,7 @@
1552 # packet encryption, packet authentication, and
1553 # packet compression.
1554 #
1555-# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
1556+# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
1557 # Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
1558 #
1559
1560diff --git a/doc/Makefile.in b/doc/Makefile.in
1561index 874af7d..e09b3cd 100644
1562--- a/doc/Makefile.in
1563+++ b/doc/Makefile.in
1564@@ -21,7 +21,7 @@
1565 # packet encryption, packet authentication, and
1566 # packet compression.
1567 #
1568-# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
1569+# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
1570 # Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
1571 #
1572
1573@@ -290,6 +290,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
1574 ETAGS = @ETAGS@
1575 EXEEXT = @EXEEXT@
1576 FGREP = @FGREP@
1577+FILECMD = @FILECMD@
1578 GIT = @GIT@
1579 GREP = @GREP@
1580 IFCONFIG = @IFCONFIG@
1581diff --git a/doc/doxygen/Makefile.in b/doc/doxygen/Makefile.in
1582index f90c632..33d0690 100644
1583--- a/doc/doxygen/Makefile.in
1584+++ b/doc/doxygen/Makefile.in
1585@@ -168,6 +168,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
1586 ETAGS = @ETAGS@
1587 EXEEXT = @EXEEXT@
1588 FGREP = @FGREP@
1589+FILECMD = @FILECMD@
1590 GIT = @GIT@
1591 GREP = @GREP@
1592 IFCONFIG = @IFCONFIG@
1593diff --git a/doc/man-sections/cipher-negotiation.rst b/doc/man-sections/cipher-negotiation.rst
1594index 888ffa6..949ff86 100644
1595--- a/doc/man-sections/cipher-negotiation.rst
1596+++ b/doc/man-sections/cipher-negotiation.rst
1597@@ -8,7 +8,7 @@ different backwards compatibility mechanism with older server and clients.
1598 OpenVPN 2.5 and later behaviour
1599 --------------------------------
1600 When both client and server are at least running OpenVPN 2.5, that the order of
1601-the ciphers of the server's ``--data-ciphers`` is used to pick the the data cipher.
1602+the ciphers of the server's ``--data-ciphers`` is used to pick the data cipher.
1603 That means that the first cipher in that list that is also in the client's
1604 ``--data-ciphers`` list is chosen. If no common cipher is found the client is rejected
1605 with a AUTH_FAILED message (as seen in client log):
1606diff --git a/doc/man-sections/client-options.rst b/doc/man-sections/client-options.rst
1607index b92b1a4..b75fe5b 100644
1608--- a/doc/man-sections/client-options.rst
1609+++ b/doc/man-sections/client-options.rst
1610@@ -73,6 +73,17 @@ configuration.
1611 If ``up`` is omitted, username/password will be prompted from the
1612 console.
1613
1614+ This option can also be inlined
1615+ ::
1616+
1617+ <auth-user-pass>
1618+ username
1619+ [password]
1620+ </auth-user-pass>
1621+
1622+ where password is optional, and will be prompted from the console if
1623+ missing.
1624+
1625 The server configuration must specify an ``--auth-user-pass-verify``
1626 script to verify the username/password provided by the client.
1627
1628diff --git a/doc/man-sections/generic-options.rst b/doc/man-sections/generic-options.rst
1629index 95e4ca2..30c990d 100644
1630--- a/doc/man-sections/generic-options.rst
1631+++ b/doc/man-sections/generic-options.rst
1632@@ -75,7 +75,7 @@ which mode OpenVPN is configured as.
1633 to the configuration if no other compression options are present.
1634 - 2.4.x or lower: The cipher in ``--cipher`` is appended to
1635 ``--data-ciphers``.
1636- - 2.3.x or lower: ``--data-cipher-fallback`` is automatically added with
1637+ - 2.3.x or lower: ``--data-ciphers-fallback`` is automatically added with
1638 the same cipher as ``--cipher``.
1639 - 2.3.6 or lower: ``--tls-version-min 1.0`` is added to the configuration
1640 when ``--tls-version-min`` is not explicitly set.
1641diff --git a/doc/man-sections/inline-files.rst b/doc/man-sections/inline-files.rst
1642index 01e4a84..e178667 100644
1643--- a/doc/man-sections/inline-files.rst
1644+++ b/doc/man-sections/inline-files.rst
1645@@ -5,7 +5,7 @@ OpenVPN allows including files in the main configuration for the ``--ca``,
1646 ``--cert``, ``--dh``, ``--extra-certs``, ``--key``, ``--pkcs12``,
1647 ``--secret``, ``--crl-verify``, ``--http-proxy-user-pass``, ``--tls-auth``,
1648 ``--auth-gen-token-secret``, ``--peer-fingerprint``, ``--tls-crypt``,
1649-``--tls-crypt-v2`` and ``--verify-hash`` options.
1650+``--tls-crypt-v2``, ``--verify-hash`` and ``--auth-user-pass`` options.
1651
1652 Each inline file started by the line ``<option>`` and ended by the line
1653 ``</option>``
1654diff --git a/doc/man-sections/vpn-network-options.rst b/doc/man-sections/vpn-network-options.rst
1655index 41d367b..abe474f 100644
1656--- a/doc/man-sections/vpn-network-options.rst
1657+++ b/doc/man-sections/vpn-network-options.rst
1658@@ -235,7 +235,7 @@ routing.
1659 address and subnet mask just as a physical ethernet adapter would be
1660 similarly configured. If you are attempting to connect to a remote
1661 ethernet bridge, the IP address and subnet should be set to values which
1662- would be valid on the the bridged ethernet segment (note also that DHCP
1663+ would be valid on the bridged ethernet segment (note also that DHCP
1664 can be used for the same purpose).
1665
1666 This option, while primarily a proxy for the ``ifconfig``\(8) command,
1667@@ -584,7 +584,7 @@ These two standalone operations will require ``--dev`` and optionally
1668 One of the advantages of persistent tunnels is that they eliminate the
1669 need for separate ``--up`` and ``--down`` scripts to run the appropriate
1670 ``ifconfig``\(8) and ``route``\(8) commands. These commands can be
1671- placed in the the same shell script which starts or terminates an
1672+ placed in the same shell script which starts or terminates an
1673 OpenVPN session.
1674
1675 Another advantage is that open connections through the TUN/TAP-based
1676diff --git a/doc/openvpn-examples.5 b/doc/openvpn-examples.5
1677index fe3d283..05fce90 100644
1678--- a/doc/openvpn-examples.5
1679+++ b/doc/openvpn-examples.5
1680@@ -1,8 +1,5 @@
1681 .\" Man page generated from reStructuredText.
1682 .
1683-.TH OPENVPN EXAMPLES 5 "" "" "Configuration files"
1684-.SH NAME
1685-openvpn examples \- Secure IP tunnel daemon
1686 .
1687 .nr rst2man-indent-level 0
1688 .
1689@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
1690 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
1691 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
1692 ..
1693+.TH "OPENVPN EXAMPLES" 5 "" "" "Configuration files"
1694+.SH NAME
1695+openvpn examples \- Secure IP tunnel daemon
1696 .SH INTRODUCTION
1697 .sp
1698 This man page gives a few simple examples to create OpenVPN setups and configuration files.
1699@@ -464,7 +464,7 @@ On bob:
1700 .ft C
1701 openvpn \-\-ifconfig 10.4.0.1 10.4.0.2 \-\-tls\-server \-\-dev tun \-\-dh none \e
1702 \-\-cert bob.pem \-\-key bob.pem \-\-cipher AES\-256\-GCM \e
1703- \-\-peer\-fingerprint "$fingerprint_of_alices_cert"
1704+ \-\-peer\-fingerprint \(dq$fingerprint_of_alices_cert\(dq
1705 .ft P
1706 .fi
1707 .UNINDENT
1708@@ -479,7 +479,7 @@ On alice:
1709 openvpn \-\-remote bob.example.com \-\-tls\-client \-\-dev tun1 \e
1710 \-\-ifconfig 10.4.0.2 10.4.0.1 \-\-cipher AES\-256\-GCM \e
1711 \-\-cert alice.pem \-\-key alice.pem \e
1712- \-\-peer\-fingerprint "$fingerprint_of_bobs_cert"
1713+ \-\-peer\-fingerprint \(dq$fingerprint_of_bobs_cert\(dq
1714 .ft P
1715 .fi
1716 .UNINDENT
1717diff --git a/doc/openvpn-examples.5.html b/doc/openvpn-examples.5.html
1718index 1f029d5..4fbaa8e 100644
1719--- a/doc/openvpn-examples.5.html
1720+++ b/doc/openvpn-examples.5.html
1721@@ -1,20 +1,20 @@
1722-<?xml version="1.0" encoding="utf-8" ?>
1723+<?xml version="1.0" encoding="utf-8"?>
1724 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1725 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
1726 <head>
1727 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
1728-<meta name="generator" content="Docutils 0.16: http://docutils.sourceforge.net/" />
1729+<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
1730 <title>openvpn examples</title>
1731 <style type="text/css">
1732
1733 /*
1734 :Author: David Goodger (goodger@python.org)
1735-:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
1736+:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
1737 :Copyright: This stylesheet has been placed in the public domain.
1738
1739 Default cascading style sheet for the HTML output of Docutils.
1740
1741-See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
1742+See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
1743 customize this style sheet.
1744 */
1745
1746diff --git a/doc/openvpn.8 b/doc/openvpn.8
1747index 2223ad6..833278e 100644
1748--- a/doc/openvpn.8
1749+++ b/doc/openvpn.8
1750@@ -76,7 +76,7 @@ with a relatively lightweight footprint.
1751 .sp
1752 OpenVPN allows any option to be placed either on the command line or in
1753 a configuration file. Though all command line options are preceded by a
1754-double\-leading\-dash ("\-\-"), this prefix can be removed when an option is
1755+double\-leading\-dash (\(dq\-\-\(dq), this prefix can be removed when an option is
1756 placed in a configuration file.
1757 .SS Generic Options
1758 .sp
1759@@ -105,7 +105,7 @@ It is always cached.
1760 .BI \-\-cd \ dir
1761 Change directory to \fBdir\fP prior to reading any files such as
1762 configuration files, key files, scripts, etc. \fBdir\fP should be an
1763-absolute path, with a leading "/", and without any references to the
1764+absolute path, with a leading \(dq/\(dq, and without any references to the
1765 current directory such as \fB\&.\fP or \fB\&..\fP\&.
1766 .sp
1767 This option is useful when you are running OpenVPN in \fB\-\-daemon\fP mode,
1768@@ -158,7 +158,7 @@ to the configuration if no other compression options are present.
1769 2.4.x or lower: The cipher in \fB\-\-cipher\fP is appended to
1770 \fB\-\-data\-ciphers\fP\&.
1771 .IP \(bu 2
1772-2.3.x or lower: \fB\-\-data\-cipher\-fallback\fP is automatically added with
1773+2.3.x or lower: \fB\-\-data\-ciphers\-fallback\fP is automatically added with
1774 the same cipher as \fB\-\-cipher\fP\&.
1775 .IP \(bu 2
1776 2.3.6 or lower: \fB\-\-tls\-version\-min 1.0\fP is added to the configuration
1777@@ -178,8 +178,8 @@ file\fP
1778 .sp
1779 Note that configuration files can be nested to a reasonable depth.
1780 .sp
1781-Double quotation or single quotation characters ("", \(aq\(aq) can be used to
1782-enclose single parameters containing whitespace, and "#" or ";"
1783+Double quotation or single quotation characters (\(dq\(dq, \(aq\(aq) can be used to
1784+enclose single parameters containing whitespace, and \(dq#\(dq or \(dq;\(dq
1785 characters in the first column can be used to denote comments.
1786 .sp
1787 Note that OpenVPN 2.0 and higher performs backslash\-based shell escaping
1788@@ -191,7 +191,7 @@ should be observed:
1789 .nf
1790 .ft C
1791 \e\e Maps to a single backslash character (\e).
1792-\e" Pass a literal doublequote character ("), don\(aqt
1793+\e\(dq Pass a literal doublequote character (\(dq), don\(aqt
1794 interpret it as enclosing a parameter.
1795 \e[SPACE] Pass a literal space or tab character, don\(aqt
1796 interpret it as a parameter delimiter.
1797@@ -206,7 +206,7 @@ For example on Windows, use double backslashes to represent pathnames:
1798 .sp
1799 .nf
1800 .ft C
1801-secret "c:\e\eOpenVPN\e\esecret.key"
1802+secret \(dqc:\e\eOpenVPN\e\esecret.key\(dq
1803 .ft P
1804 .fi
1805 .UNINDENT
1806@@ -295,7 +295,7 @@ on console) and \fB\-\-auth\-nocache\fP will fail as soon as key
1807 renegotiation (and reauthentication) occurs.
1808 .TP
1809 .B \-\-disable\-dco
1810-Disable "data channel offload" (DCO).
1811+Disable \(dqdata channel offload\(dq (DCO).
1812 .sp
1813 On Linux don\(aqt use the ovpn\-dco device driver, but rather rely on the
1814 legacy tun module.
1815@@ -304,7 +304,7 @@ You may want to use this option if your server needs to allow clients
1816 older than version 2.4 to connect.
1817 .TP
1818 .B \-\-disable\-occ
1819-\fBDEPRECATED\fP Disable "options consistency check" (OCC) in configurations
1820+\fBDEPRECATED\fP Disable \(dqoptions consistency check\(dq (OCC) in configurations
1821 that do not use TLS.
1822 .sp
1823 Don\(aqt output a warning message if option inconsistencies are detected
1824@@ -946,7 +946,7 @@ for the client, for example:
1825 .nf
1826 .ft C
1827 comp\-lzo yes
1828-push "comp\-lzo yes"
1829+push \(dqcomp\-lzo yes\(dq
1830 .ft P
1831 .fi
1832 .UNINDENT
1833@@ -1140,7 +1140,7 @@ To make use of this feature, the \fB\-\-client\-connect\fP script or
1834 .sp
1835 .nf
1836 .ft C
1837-push "auth\-token UNIQUE_TOKEN_VALUE"
1838+push \(dqauth\-token UNIQUE_TOKEN_VALUE\(dq
1839 .ft P
1840 .fi
1841 .UNINDENT
1842@@ -1184,6 +1184,24 @@ lines. If the password line is missing, OpenVPN will prompt for one.
1843 If \fBup\fP is omitted, username/password will be prompted from the
1844 console.
1845 .sp
1846+This option can also be inlined
1847+.INDENT 7.0
1848+.INDENT 3.5
1849+.sp
1850+.nf
1851+.ft C
1852+<auth\-user\-pass>
1853+username
1854+[password]
1855+</auth\-user\-pass>
1856+.ft P
1857+.fi
1858+.UNINDENT
1859+.UNINDENT
1860+.sp
1861+where password is optional, and will be prompted from the console if
1862+missing.
1863+.sp
1864 The server configuration must specify an \fB\-\-auth\-user\-pass\-verify\fP
1865 script to verify the username/password provided by the client.
1866 .TP
1867@@ -1407,7 +1425,7 @@ If the optional \fBbytes\fP parameter is included, exit if less than
1868 in \fBn\fP seconds.
1869 .sp
1870 In any case, OpenVPN\(aqs internal ping packets (which are just keepalives)
1871-and TLS control packets are not considered "activity", nor are they
1872+and TLS control packets are not considered \(dqactivity\(dq, nor are they
1873 counted as traffic, as they are used internally by OpenVPN and are not
1874 an indication of actual user activity.
1875 .TP
1876@@ -1469,7 +1487,7 @@ that
1877 .sp
1878 .nf
1879 .ft C
1880-pull\-filter ignore "route"
1881+pull\-filter ignore \(dqroute\(dq
1882 .ft P
1883 .fi
1884 .UNINDENT
1885@@ -1483,8 +1501,8 @@ embed spaces.
1886 .sp
1887 .nf
1888 .ft C
1889-pull\-filter accept "route 192.168.1."
1890-pull\-filter ignore "route "
1891+pull\-filter accept \(dqroute 192.168.1.\(dq
1892+pull\-filter ignore \(dqroute \(dq
1893 .ft P
1894 .fi
1895 .UNINDENT
1896@@ -1701,8 +1719,8 @@ kind of basic load\-balancing measure.
1897 .TP
1898 .B \-\-remote\-random\-hostname
1899 Prepend a random string (6 bytes, 12 hex characters) to hostname to
1900-prevent DNS caching. For example, "foo.bar.gov" would be modified to
1901-"<random\-chars>.foo.bar.gov".
1902+prevent DNS caching. For example, \(dqfoo.bar.gov\(dq would be modified to
1903+\(dq<random\-chars>.foo.bar.gov\(dq.
1904 .TP
1905 .BI \-\-resolv\-retry \ n
1906 If hostname resolve fails for \fB\-\-remote\fP, retry resolve for \fBn\fP
1907@@ -1800,7 +1818,7 @@ http\-proxy proxy.example.net 3128 auto\-nct
1908 http\-proxy proxy.example.net 3128 auto
1909 http\-proxy\-user\-pass authfile.txt
1910 # basic authentication, specify credentials inline
1911-http\-proxy proxy.example.net 3128 "" basic
1912+http\-proxy proxy.example.net 3128 \(dq\(dq basic
1913 <http\-proxy\-user\-pass>
1914 username
1915 password
1916@@ -1841,7 +1859,7 @@ options.
1917 Set HTTP version number to \fBversion\fP (default \fB1.0\fP).
1918 .TP
1919 .B \fBAGENT\fP \fBuser\-agent\fP
1920-Set HTTP "User\-Agent" string to \fBuser\-agent\fP\&.
1921+Set HTTP \(dqUser\-Agent\(dq string to \fBuser\-agent\fP\&.
1922 .TP
1923 .B \fBCUSTOM\-HEADER\fP \fBname\fP \fBcontent\fP
1924 Adds the custom Header with \fBname\fP as name and \fBcontent\fP as
1925@@ -1987,7 +2005,7 @@ user\-defined authentication module/script to accept or deny the client
1926 based on other factors (such as the setting of X509 certificate fields).
1927 When this option is used, and a connecting client does not submit a
1928 username/password, the user\-defined authentication module/script will
1929-see the username and password as being set to empty strings (""). The
1930+see the username and password as being set to empty strings (\(dq\(dq). The
1931 authentication module/script MUST have logic to detect this condition
1932 and respond accordingly.
1933 .TP
1934@@ -2002,7 +2020,7 @@ directory for a file having the same name as the client\(aqs X509 common
1935 name. If a matching file exists, it will be opened and parsed for
1936 client\-specific configuration options. If no matching file is found,
1937 OpenVPN will instead try to open and parse a default file called
1938-"DEFAULT", which may be provided but is not required. Note that the
1939+\(dqDEFAULT\(dq, which may be provided but is not required. Note that the
1940 configuration files must be readable by the OpenVPN process after it has
1941 dropped it\(aqs root privileges.
1942 .sp
1943@@ -2025,7 +2043,7 @@ single tun or tap interface, it is effectively a router. The
1944 client\-to\-client traffic rather than pushing all client\-originating
1945 traffic to the TUN/TAP interface.
1946 .sp
1947-When this option is used, each client will "see" the other clients which
1948+When this option is used, each client will \(dqsee\(dq the other clients which
1949 are currently connected. Otherwise, each client will only see the
1950 server. Don\(aqt use this option if you want to firewall tunnel traffic
1951 using custom, per\-client rules.
1952@@ -2308,10 +2326,10 @@ using \fB\-\-client\-config\-dir\fP or dynamically generated using a
1953 \fB\-\-client\-connect\fP script.
1954 .sp
1955 The \fB\-\-iroute\fP directive also has an important interaction with
1956-\fB\-\-push "route ..."\fP\&. \fB\-\-iroute\fP essentially defines a subnet which
1957+\fB\-\-push \(dqroute ...\(dq\fP\&. \fB\-\-iroute\fP essentially defines a subnet which
1958 is owned by a particular client (we will call this client \fIA\fP). If you
1959 would like other clients to be able to reach \fIA\fP\(aqs subnet, you can use
1960-\fB\-\-push "route ..."\fP together with \fB\-\-client\-to\-client\fP to effect
1961+\fB\-\-push \(dqroute ...\(dq\fP together with \fB\-\-client\-to\-client\fP to effect
1962 this. In order for all clients to see \fIA\fP\(aqs subnet, OpenVPN must push
1963 this route to all clients EXCEPT for \fIA\fP, since the subnet is already
1964 owned by \fIA\fP\&. OpenVPN accomplishes this by not not pushing a route to
1965@@ -2397,7 +2415,7 @@ Not implemented on Windows.
1966 .TP
1967 .BI \-\-push \ option
1968 Push a config file option back to the client for remote execution. Note
1969-that \fBoption\fP must be enclosed in double quotes (\fB""\fP). The
1970+that \fBoption\fP must be enclosed in double quotes (\fB\(dq\(dq\fP). The
1971 client must specify \fB\-\-pull\fP in its config file. The set of options
1972 which can be pushed is limited by both feasibility and security. Some
1973 options such as those which would execute scripts are banned, since they
1974@@ -2415,11 +2433,11 @@ This is a partial list of options which can currently be pushed:
1975 \fB\-\-rcvbuf\fP, \fB\-\-session\-timeout\fP
1976 .TP
1977 .BI \-\-push\-remove \ opt
1978-Selectively remove all \fB\-\-push\fP options matching "opt" from the option
1979+Selectively remove all \fB\-\-push\fP options matching \(dqopt\(dq from the option
1980 list for a client. \fBopt\fP is matched as a substring against the whole
1981 option string to\-be\-pushed to the client, so \fB\-\-push\-remove route\fP
1982 would remove all \fB\-\-push route ...\fP and \fB\-\-push route\-ipv6 ...\fP
1983-statements, while \fB\-\-push\-remove "route\-ipv6 2001:"\fP would only remove
1984+statements, while \fB\-\-push\-remove \(dqroute\-ipv6 2001:\(dq\fP would only remove
1985 IPv6 routes for \fB2001:...\fP networks.
1986 .sp
1987 \fB\-\-push\-remove\fP can only be used in a client\-specific context, like in
1988@@ -2478,7 +2496,7 @@ For example, \fB\-\-server 10.8.0.0 255.255.255.0\fP expands as follows:
1989 .ft C
1990 mode server
1991 tls\-server
1992-push "topology [topology]"
1993+push \(dqtopology [topology]\(dq
1994
1995 if dev tun AND (topology == net30 OR topology == p2p):
1996 ifconfig 10.8.0.1 10.8.0.2
1997@@ -2486,15 +2504,15 @@ if dev tun AND (topology == net30 OR topology == p2p):
1998 ifconfig\-pool 10.8.0.4 10.8.0.251
1999 route 10.8.0.0 255.255.255.0
2000 if client\-to\-client:
2001- push "route 10.8.0.0 255.255.255.0"
2002+ push \(dqroute 10.8.0.0 255.255.255.0\(dq
2003 else if topology == net30:
2004- push "route 10.8.0.1"
2005+ push \(dqroute 10.8.0.1\(dq
2006
2007 if dev tap OR (dev tun AND topology == subnet):
2008 ifconfig 10.8.0.1 255.255.255.0
2009 if !nopool:
2010 ifconfig\-pool 10.8.0.2 10.8.0.253 255.255.255.0
2011- push "route\-gateway 10.8.0.1"
2012+ push \(dqroute\-gateway 10.8.0.1\(dq
2013 if route\-gateway unset:
2014 route\-gateway 10.8.0.2
2015 .ft P
2016@@ -2535,7 +2553,7 @@ To configure ethernet bridging, you must first use your OS\(aqs bridging
2017 capability to bridge the TAP interface with the ethernet NIC interface.
2018 For example, on Linux this is done with the \fBbrctl\fP tool, and with
2019 Windows XP it is done in the Network Connections Panel by selecting the
2020-ethernet and TAP adapters and right\-clicking on "Bridge Connections".
2021+ethernet and TAP adapters and right\-clicking on \(dqBridge Connections\(dq.
2022 .sp
2023 Next you you must manually set the IP/netmask on the bridge interface.
2024 The \fBgateway\fP and \fBnetmask\fP parameters to \fB\-\-server\-bridge\fP can be
2025@@ -2557,7 +2575,7 @@ mode server
2026 tls\-server
2027
2028 ifconfig\-pool 10.8.0.128 10.8.0.254 255.255.255.0
2029-push "route\-gateway 10.8.0.4"
2030+push \(dqroute\-gateway 10.8.0.4\(dq
2031 .ft P
2032 .fi
2033 .UNINDENT
2034@@ -2573,7 +2591,7 @@ follows:
2035 mode server
2036 tls\-server
2037
2038-push "route\-gateway dhcp"
2039+push \(dqroute\-gateway dhcp\(dq
2040 .ft P
2041 .fi
2042 .UNINDENT
2043@@ -2695,11 +2713,11 @@ port of the switch. All client ports are in untagged mode and the server
2044 TAP device is VLAN\-tagged, untagged or accepts both, depending on the
2045 \fB\-\-vlan\-accept\fP setting.
2046 .sp
2047-Ethernet frames with a prepended 802.1Q tag are called "tagged". If the
2048+Ethernet frames with a prepended 802.1Q tag are called \(dqtagged\(dq. If the
2049 VLAN Identifier (VID) field in such a tag is non\-zero, the frame is
2050-called "VLAN\-tagged". If the VID is zero, but the Priority Control Point
2051-(PCP) field is non\-zero, the frame is called "prio\-tagged". If there is
2052-no 802.1Q tag, the frame is "untagged".
2053+called \(dqVLAN\-tagged\(dq. If the VID is zero, but the Priority Control Point
2054+(PCP) field is non\-zero, the frame is called \(dqprio\-tagged\(dq. If there is
2055+no 802.1Q tag, the frame is \(dquntagged\(dq.
2056 .sp
2057 Using the \fB\-\-vlan\-pvid v\fP option once per client (see
2058 \-\-client\-config\-dir), each port can be associated with a certain VID.
2059@@ -2751,8 +2769,8 @@ untagged or tagged mode respectively.
2060 .TP
2061 .B \fINote\fP:
2062 Some vendors refer to switch ports running in \fBtagged\fP mode
2063-as "trunk ports" and switch ports running in \fBuntagged\fP mode
2064-as "access ports".
2065+as \(dqtrunk ports\(dq and switch ports running in \fBuntagged\fP mode
2066+as \(dqaccess ports\(dq.
2067 .UNINDENT
2068 .sp
2069 Packets forwarded from clients to the server are VLAN\-tagged with the
2070@@ -2763,7 +2781,7 @@ If no \fIPVID\fP is configured for a given client (see \-\-vlan\-pvid) packets
2071 are tagged with 1 by default.
2072 .TP
2073 .BI \-\-vlan\-pvid \ v
2074-Specifies which VLAN identifier a "port" is associated with. Only valid
2075+Specifies which VLAN identifier a \(dqport\(dq is associated with. Only valid
2076 when \fB\-\-vlan\-tagging\fP is specified.
2077 .sp
2078 In the client context, the setting specifies which VLAN ID a client is
2079@@ -2775,8 +2793,8 @@ Valid values for \fBv\fP go from \fB1\fP through to \fB4094\fP\&. The
2080 global value defaults to \fB1\fP\&. If no \fB\-\-vlan\-pvid\fP is specified in
2081 the client context, the global value is inherited.
2082 .sp
2083-In some switch implementations, the \fIPVID\fP is also referred to as "Native
2084-VLAN".
2085+In some switch implementations, the \fIPVID\fP is also referred to as \(dqNative
2086+VLAN\(dq.
2087 .UNINDENT
2088 .SH ENCRYPTION OPTIONS
2089 .SS SSL Library information
2090@@ -3252,7 +3270,7 @@ This option is not supported in mbed TLS builds of OpenVPN.
2091 Specify a \fBfile\fP containing one or more PEM certs (concatenated
2092 together) that complete the local certificate chain.
2093 .sp
2094-This option is useful for "split" CAs, where the CA for server certs is
2095+This option is useful for \(dqsplit\(dq CAs, where the CA for server certs is
2096 different than the CA for client certs. Putting certs in this file
2097 allows them to be used to complete the local certificate chain without
2098 trusting them to verify the peer\-submitted certificate, as would be the
2099@@ -3342,7 +3360,7 @@ The \fB\-\-remote\-cert\-tls client\fP option is equivalent to
2100 .nf
2101 .ft C
2102 remote\-cert\-ku
2103-remote\-cert\-eku "TLS Web Client Authentication"
2104+remote\-cert\-eku \(dqTLS Web Client Authentication\(dq
2105 .ft P
2106 .fi
2107 .UNINDENT
2108@@ -3355,7 +3373,7 @@ The \fB\-\-remote\-cert\-tls server\fP option is equivalent to
2109 .nf
2110 .ft C
2111 remote\-cert\-ku
2112-remote\-cert\-eku "TLS Web Server Authentication"
2113+remote\-cert\-eku \(dqTLS Web Server Authentication\(dq
2114 .ft P
2115 .fi
2116 .UNINDENT
2117@@ -3386,7 +3404,7 @@ tls\-auth file 1
2118 .UNINDENT
2119 .UNINDENT
2120 .sp
2121-In a nutshell, \fB\-\-tls\-auth\fP enables a kind of "HMAC firewall" on
2122+In a nutshell, \fB\-\-tls\-auth\fP enables a kind of \(dqHMAC firewall\(dq on
2123 OpenVPN\(aqs TCP/UDP port, where TLS control channel packets bearing an
2124 incorrect HMAC signature can be dropped immediately without response.
2125 .sp
2126@@ -3457,7 +3475,7 @@ OpenSSL 1.1+ restricts the list per default to
2127 .sp
2128 .nf
2129 .ft C
2130-"X25519:secp256r1:X448:secp521r1:secp384r1".
2131+\(dqX25519:secp256r1:X448:secp521r1:secp384r1\(dq.
2132 .ft P
2133 .fi
2134 .UNINDENT
2135@@ -3500,16 +3518,16 @@ use the following approximation:
2136 .INDENT 7.0
2137 .TP
2138 .B \fBinsecure\fP
2139-sets "security level 0"
2140+sets \(dqsecurity level 0\(dq
2141 .TP
2142 .B \fBlegacy\fP (default)
2143-sets "security level 1"
2144+sets \(dqsecurity level 1\(dq
2145 .TP
2146 .B \fBpreferred\fP
2147-sets "security level 2"
2148+sets \(dqsecurity level 2\(dq
2149 .TP
2150 .B \fBsuiteb\fP
2151-sets "security level 3" and \fB\-\-tls\-cipher "SUITEB128"\fP\&.
2152+sets \(dqsecurity level 3\(dq and \fB\-\-tls\-cipher \(dqSUITEB128\(dq\fP\&.
2153 .UNINDENT
2154 .sp
2155 OpenVPN will migrate to \(aqpreferred\(aq as default in the future. Please
2156@@ -3526,7 +3544,7 @@ break your connection. Use with care!
2157 .INDENT 0.0
2158 .TP
2159 .BI \-\-tls\-cipher \ l
2160-A list \fBl\fP of allowable TLS ciphers delimited by a colon ("\fB:\fP").
2161+A list \fBl\fP of allowable TLS ciphers delimited by a colon (\(dq\fB:\fP\(dq).
2162 .sp
2163 These setting can be used to ensure that certain cipher suites are used
2164 (or not used) for the TLS connection. OpenVPN uses TLS to secure the
2165@@ -3570,7 +3588,7 @@ connection,
2166 .IP \(bu 2
2167 makes it harder to identify OpenVPN traffic as such,
2168 .IP \(bu 2
2169-provides "poor\-man\(aqs" post\-quantum security, against attackers who will
2170+provides \(dqpoor\-man\(aqs\(dq post\-quantum security, against attackers who will
2171 never know the pre\-shared key (i.e. no forward secrecy).
2172 .UNINDENT
2173 .sp
2174@@ -3690,7 +3708,7 @@ them.
2175 .TP
2176 .BI \-\-tls\-version\-min \ args
2177 Sets the minimum TLS version we will accept from the peer (default in
2178-2.6.0 and later is "1.2").
2179+2.6.0 and later is \(dq1.2\(dq).
2180 .sp
2181 Valid syntax:
2182 .INDENT 7.0
2183@@ -3903,7 +3921,7 @@ Examples:
2184 .ft C
2185 x509\-track CN # exports only X509_0_CN
2186 x509\-track +CN # exports X509_{n}_CN for chain
2187-x509\-track basicConstraints # exports value of "X509v3 Basic Constraints"
2188+x509\-track basicConstraints # exports value of \(dqX509v3 Basic Constraints\(dq
2189 x509\-track SHA256 # exports SHA256 fingerprint
2190 .ft P
2191 .fi
2192@@ -4084,7 +4102,7 @@ different backwards compatibility mechanism with older server and clients.
2193 .SS OpenVPN 2.5 and later behaviour
2194 .sp
2195 When both client and server are at least running OpenVPN 2.5, that the order of
2196-the ciphers of the server\(aqs \fB\-\-data\-ciphers\fP is used to pick the the data cipher.
2197+the ciphers of the server\(aqs \fB\-\-data\-ciphers\fP is used to pick the data cipher.
2198 That means that the first cipher in that list that is also in the client\(aqs
2199 \fB\-\-data\-ciphers\fP list is chosen. If no common cipher is found the client is rejected
2200 with a AUTH_FAILED message (as seen in client log):
2201@@ -4105,7 +4123,7 @@ For backwards compatibility OpenVPN 2.6 and later with \fB\-\-compat\-mode 2.4.x
2202 .SS OpenVPN 2.4 clients
2203 .sp
2204 The negotiation support in OpenVPN 2.4 was the first iteration of the implementation
2205-and still had some quirks. Its main goal was "upgrade to AES\-256\-GCM when possible".
2206+and still had some quirks. Its main goal was \(dqupgrade to AES\-256\-GCM when possible\(dq.
2207 An OpenVPN 2.4 client that is built against a crypto library that supports AES in GCM
2208 mode and does not have \fB\-\-ncp\-disable\fP will always announce support for
2209 \fIAES\-256\-GCM\fP and \fIAES\-128\-GCM\fP to a server by sending \fBIV_NCP=2\fP\&.
2210@@ -4285,8 +4303,8 @@ For example, \fB\-\-keepalive 10 60\fP expands as follows:
2211 if mode server:
2212 ping 10 # Argument: interval
2213 ping\-restart 120 # Argument: timeout*2
2214- push "ping 10" # Argument: interval
2215- push "ping\-restart 60" # Argument: timeout
2216+ push \(dqping 10\(dq # Argument: interval
2217+ push \(dqping\-restart 60\(dq # Argument: timeout
2218 else
2219 ping 10 # Argument: interval
2220 ping\-restart 60 # Argument: timeout
2221@@ -4613,7 +4631,7 @@ product of bandwidth and latency is high), you may want to use a larger
2222 value for \fBn\fP\&. Satellite links in particular often require this.
2223 .sp
2224 If you run OpenVPN at \fB\-\-verb 4\fP, you will see the message
2225-"PID_ERR replay\-window backtrack occurred [x]" every time the maximum sequence
2226+\(dqPID_ERR replay\-window backtrack occurred [x]\(dq every time the maximum sequence
2227 number backtrack seen thus far increases. This can be used to calibrate
2228 \fBn\fP\&.
2229 .sp
2230@@ -4702,7 +4720,7 @@ The macro expands as follows:
2231 .ft C
2232 if mode server:
2233 socket\-flags TCP_NODELAY
2234- push "socket\-flags TCP_NODELAY"
2235+ push \(dqsocket\-flags TCP_NODELAY\(dq
2236 .ft P
2237 .fi
2238 .UNINDENT
2239@@ -4781,14 +4799,14 @@ clients leaking around IPv4\-only VPN services).
2240 .UNINDENT
2241 .TP
2242 .B \fBServer config\fP
2243-Push a "valid" ipv6 config to the client and block on the server
2244+Push a \(dqvalid\(dq ipv6 config to the client and block on the server
2245 .INDENT 7.0
2246 .INDENT 3.5
2247 .sp
2248 .nf
2249 .ft C
2250-\-\-push "ifconfig\-ipv6 fd15:53b6:dead::2/64 fd15:53b6:dead::1"
2251-\-\-push "redirect\-gateway ipv6"
2252+\-\-push \(dqifconfig\-ipv6 fd15:53b6:dead::2/64 fd15:53b6:dead::1\(dq
2253+\-\-push \(dqredirect\-gateway ipv6\(dq
2254 \-\-block\-ipv6
2255 .ft P
2256 .fi
2257@@ -4842,7 +4860,7 @@ On most platforms, \fBtunN\fP (e.g. tun2, tun30) and \fBtapN\fP
2258 (e.g. tap3) will create a numbered tun/tap interface with the number
2259 specified \- this is useful if multiple OpenVPN instances are active,
2260 and the instance\-to\-device mapping needs to be known. Some platforms
2261-do not support "numbered tap", so trying \fB\-\-dev tap3\fP will fail.
2262+do not support \(dqnumbered tap\(dq, so trying \fB\-\-dev tap3\fP will fail.
2263 .sp
2264 Arbitrary device names (e.g. \fB\-\-dev tun\-home\fP) will only work on
2265 FreeBSD (with the DCO kernel driver for \fBtun\fP devices) and Linux
2266@@ -5011,11 +5029,11 @@ across the VPN.
2267 .sp
2268 For TAP devices, which provide the ability to create virtual ethernet
2269 segments, or TUN devices in \fB\-\-topology subnet\fP mode (which create
2270-virtual "multipoint networks"), \fB\-\-ifconfig\fP is used to set an IP
2271+virtual \(dqmultipoint networks\(dq), \fB\-\-ifconfig\fP is used to set an IP
2272 address and subnet mask just as a physical ethernet adapter would be
2273 similarly configured. If you are attempting to connect to a remote
2274 ethernet bridge, the IP address and subnet should be set to values which
2275-would be valid on the the bridged ethernet segment (note also that DHCP
2276+would be valid on the bridged ethernet segment (note also that DHCP
2277 can be used for the same purpose).
2278 .sp
2279 This option, while primarily a proxy for the \fBifconfig\fP(8) command,
2280@@ -5082,8 +5100,8 @@ For example, if you have a configuration where the local host uses
2281 on the local host.
2282 .sp
2283 This option will also silence warnings about potential address conflicts
2284-which occasionally annoy more experienced users by triggering "false
2285-positive" warnings.
2286+which occasionally annoy more experienced users by triggering \(dqfalse
2287+positive\(dq warnings.
2288 .TP
2289 .BI \-\-lladdr \ address
2290 Specify the link layer address, more commonly known as the MAC address.
2291@@ -5348,8 +5366,8 @@ works on Windows as well.
2292 .UNINDENT
2293 .sp
2294 \fINote:\fP Using \fB\-\-topology subnet\fP changes the interpretation of the
2295-arguments of \fB\-\-ifconfig\fP to mean "address netmask", no longer "local
2296-remote".
2297+arguments of \fB\-\-ifconfig\fP to mean \(dqaddress netmask\(dq, no longer \(dqlocal
2298+remote\(dq.
2299 .TP
2300 .BI \-\-tun\-mtu \ args
2301 Valid syntaxes:
2302@@ -5422,7 +5440,7 @@ deleted or the machine is rebooted.
2303 One of the advantages of persistent tunnels is that they eliminate the
2304 need for separate \fB\-\-up\fP and \fB\-\-down\fP scripts to run the appropriate
2305 \fBifconfig\fP(8) and \fBroute\fP(8) commands. These commands can be
2306-placed in the the same shell script which starts or terminates an
2307+placed in the same shell script which starts or terminates an
2308 OpenVPN session.
2309 .sp
2310 Another advantage is that open connections through the TUN/TAP\-based
2311@@ -5658,8 +5676,8 @@ non\-empty content, the content of this file will be used as AUTH_FAILED
2312 message. To avoid race conditions, this file should be written before
2313 \fBauth_control_file\fP\&.
2314 .sp
2315-This auth fail reason can be something simple like "User has been permanently
2316-disabled" but there are also some special auth failed messages.
2317+This auth fail reason can be something simple like \(dqUser has been permanently
2318+disabled\(dq but there are also some special auth failed messages.
2319 .sp
2320 The \fBTEMP\fP message indicates that the authentication
2321 temporarily failed and that the client should continue to retry to connect.
2322@@ -5867,23 +5885,23 @@ Three arguments will be appended to any arguments in \fBcmd\fP as follows:
2323 .INDENT 7.0
2324 .TP
2325 .B \fB$1\fP \- [operation]
2326-\fB"add"\fP, \fB"update"\fP, or \fB"delete"\fP based on whether
2327+\fB\(dqadd\(dq\fP, \fB\(dqupdate\(dq\fP, or \fB\(dqdelete\(dq\fP based on whether
2328 or not the address is being added to, modified, or deleted from
2329 OpenVPN\(aqs internal routing table.
2330 .TP
2331 .B \fB$2\fP \- [address]
2332 The address being learned or unlearned. This can be an IPv4 address
2333-such as \fB"198.162.10.14"\fP, an IPv4 subnet such as
2334-\fB"198.162.10.0/24"\fP, or an ethernet MAC address (when
2335-\fB\-\-dev tap\fP is being used) such as \fB"00:FF:01:02:03:04"\fP\&.
2336+such as \fB\(dq198.162.10.14\(dq\fP, an IPv4 subnet such as
2337+\fB\(dq198.162.10.0/24\(dq\fP, or an ethernet MAC address (when
2338+\fB\-\-dev tap\fP is being used) such as \fB\(dq00:FF:01:02:03:04\(dq\fP\&.
2339 .TP
2340 .B \fB$3\fP \- [common name]
2341 The common name on the certificate associated with the client linked
2342-to this address. Only present for \fB"add"\fP or \fB"update"\fP
2343-operations, not \fB"delete"\fP\&.
2344+to this address. Only present for \fB\(dqadd\(dq\fP or \fB\(dqupdate\(dq\fP
2345+operations, not \fB\(dqdelete\(dq\fP\&.
2346 .UNINDENT
2347 .sp
2348-On \fB"add"\fP or \fB"update"\fP methods, if the script returns
2349+On \fB\(dqadd\(dq\fP or \fB\(dqupdate\(dq\fP methods, if the script returns
2350 a failure code (non\-zero), OpenVPN will reject the address and will not
2351 modify its internal routing table.
2352 .sp
2353@@ -6137,10 +6155,10 @@ TCP/UDP connection establishment with peer.
2354 .sp
2355 In \fB\-\-proto udp\fP mode, this option normally requires the use of
2356 \fB\-\-ping\fP to allow connection initiation to be sensed in the absence of
2357-tunnel data, since UDP is a "connectionless" protocol.
2358+tunnel data, since UDP is a \(dqconnectionless\(dq protocol.
2359 .sp
2360 On Windows, this option will delay the TAP\-Win32 media state
2361-transitioning to "connected" until connection establishment, i.e. the
2362+transitioning to \(dqconnected\(dq until connection establishment, i.e. the
2363 receipt of the first authenticated packet from the peer.
2364 .TP
2365 .B \-\-up\-restart
2366@@ -6186,13 +6204,13 @@ starting with OpenVPN 2.0.1, the username is passed to the
2367 without string remapping.
2368 .TP
2369 .B \fI\-\-auth\-user\-pass password\fP
2370-Any "printable" character except CR or LF. Printable is defined to be
2371+Any \(dqprintable\(dq character except CR or LF. Printable is defined to be
2372 a character which will cause the C library isprint() function to
2373 return true.
2374 .TP
2375 .B \fI\-\-client\-config\-dir filename as derived from common name or\(gausername\fP
2376-Alphanumeric, underbar (\(aq_\(aq), dash (\(aq\-\(aq), and dot (\(aq.\(aq) except for "."
2377-or ".." as standalone strings. As of v2.0.1\-rc6, the at (\(aq@\(aq) character
2378+Alphanumeric, underbar (\(aq_\(aq), dash (\(aq\-\(aq), and dot (\(aq.\(aq) except for \(dq.\(dq
2379+or \(dq..\(dq as standalone strings. As of v2.0.1\-rc6, the at (\(aq@\(aq) character
2380 has been added as well for compatibility with the common name character
2381 class.
2382 .TP
2383@@ -6265,12 +6283,12 @@ Name of first \fB\-\-config\fP file. Set on program initiation and reset on
2384 SIGHUP.
2385 .TP
2386 .B \fBdaemon\fP
2387-Set to "1" if the \fB\-\-daemon\fP directive is specified, or "0" otherwise.
2388+Set to \(dq1\(dq if the \fB\-\-daemon\fP directive is specified, or \(dq0\(dq otherwise.
2389 Set on program initiation and reset on SIGHUP.
2390 .TP
2391 .B \fBdaemon_log_redirect\fP
2392-Set to "1" if the \fB\-\-log\fP or \fB\-\-log\-append\fP directives are
2393-specified, or "0" otherwise. Set on program initiation and reset on
2394+Set to \(dq1\(dq if the \fB\-\-log\fP or \fB\-\-log\-append\fP directives are
2395+specified, or \(dq0\(dq otherwise. Set on program initiation and reset on
2396 SIGHUP.
2397 .TP
2398 .B \fBdev\fP
2399@@ -6431,7 +6449,7 @@ script execution.
2400 A set of variables which define each route to be added, and are set
2401 prior to \fB\-\-up\fP script execution.
2402 .sp
2403-\fBparm\fP will be one of \fBnetwork\fP, \fBnetmask"\fP,
2404+\fBparm\fP will be one of \fBnetwork\fP, \fBnetmask\(dq\fP,
2405 \fBgateway\fP, or \fBmetric\fP\&.
2406 .sp
2407 \fBn\fP is the OpenVPN route number, starting from 1.
2408@@ -6456,7 +6474,7 @@ translations will be recorded rather than their names as denoted on the
2409 command line or configuration file.
2410 .TP
2411 .B \fBscript_context\fP
2412-Set to "init" or "restart" prior to up/down script execution. For more
2413+Set to \(dqinit\(dq or \(dqrestart\(dq prior to up/down script execution. For more
2414 information, see documentation for \fB\-\-up\fP\&.
2415 .TP
2416 .B \fBscript_type\fP
2417@@ -6503,8 +6521,8 @@ of \fB\-\-tls\-verify\fP script.
2418 The serial number of the certificate from the remote peer, where \fBn\fP
2419 is the verification level. Only set for TLS connections. Set prior to
2420 execution of \fB\-\-tls\-verify\fP script. This is in the form of a decimal
2421-string like "933971680", which is suitable for doing serial\-based OCSP
2422-queries (with OpenSSL, do not prepend "0x" to the string) If something
2423+string like \(dq933971680\(dq, which is suitable for doing serial\-based OCSP
2424+queries (with OpenSSL, do not prepend \(dq0x\(dq to the string) If something
2425 goes wrong while reading the value from the certificate it will be an
2426 empty string, so your code should check that. See the
2427 \fBcontrib/OCSP_check/OCSP_check.sh\fP script for an example.
2428@@ -6552,7 +6570,7 @@ the verification level. Only set for TLS connections. Set prior to
2429 execution of \fB\-\-tls\-verify\fP script. This variable is similar to
2430 \fBtls_id_{n}\fP except the component X509 subject fields are broken
2431 out, and no string remapping occurs on these field values (except for
2432-remapping of control characters to "\fB_\fP"). For example, the
2433+remapping of control characters to \(dq\fB_\fP\(dq). For example, the
2434 following variables would be set on the OpenVPN server using the sample
2435 client certificate in sample\-keys (client.crt). Note that the
2436 verification level is 0 for the client certificate and 1 for the CA
2437@@ -6631,7 +6649,7 @@ clients.
2438 .sp
2439 While the management port is designed for programmatic control of
2440 OpenVPN by other applications, it is possible to telnet to the port,
2441-using a telnet client in "raw" mode. Once connected, type \fBhelp\fP
2442+using a telnet client in \(dqraw\(dq mode. Once connected, type \fBhelp\fP
2443 for a list of commands.
2444 .sp
2445 For detailed documentation on the management interface, see the
2446@@ -6755,7 +6773,7 @@ Valid syntax:
2447 .nf
2448 .ft C
2449 plugin module\-name
2450-plugin module\-name "arguments"
2451+plugin module\-name \(dqarguments\(dq
2452 .ft P
2453 .fi
2454 .UNINDENT
2455@@ -6765,7 +6783,7 @@ The \fBmodule\-name\fP needs to be the first
2456 argument, indicating the plug\-in to load. The second argument is an
2457 optional init string which will be passed directly to the plug\-in.
2458 If the init consists of multiple arguments it must be enclosed in
2459-double\-quotes ("). Multiple plugin modules may be loaded into one
2460+double\-quotes (\(dq). Multiple plugin modules may be loaded into one
2461 OpenVPN process.
2462 .sp
2463 The \fBmodule\-name\fP argument can be just a filename or a filename
2464@@ -6865,7 +6883,7 @@ certificate\(aqs subject:
2465 .sp
2466 .nf
2467 .ft C
2468-cryptoapicert "SUBJ:Peter Runestig"
2469+cryptoapicert \(dqSUBJ:Peter Runestig\(dq
2470 .ft P
2471 .fi
2472 .UNINDENT
2473@@ -6877,7 +6895,7 @@ To select a certificate, based on certificate\(aqs thumbprint (SHA1 hash):
2474 .sp
2475 .nf
2476 .ft C
2477-cryptoapicert "THUMB:f6 49 24 41 01 b4 ..."
2478+cryptoapicert \(dqTHUMB:f6 49 24 41 01 b4 ...\(dq
2479 .ft P
2480 .fi
2481 .UNINDENT
2482@@ -6893,7 +6911,7 @@ issuer name:
2483 .sp
2484 .nf
2485 .ft C
2486-cryptoapicert "ISSUER:Sample CA"
2487+cryptoapicert \(dqISSUER:Sample CA\(dq
2488 .ft P
2489 .fi
2490 .UNINDENT
2491@@ -6911,7 +6929,7 @@ OpenVPN 2.4.1.
2492 Ask Windows to renew the TAP adapter lease on startup. This option is
2493 normally unnecessary, as Windows automatically triggers a DHCP
2494 renegotiation on the TAP adapter when it comes up, however if you set
2495-the TAP\-Win32 adapter Media Status property to "Always Connected", you
2496+the TAP\-Win32 adapter Media Status property to \(dqAlways Connected\(dq, you
2497 may need this flag.
2498 .TP
2499 .BI \-\-ip\-win32 \ method
2500@@ -6929,13 +6947,13 @@ expects the adapter to be set to.
2501 .B \fBdynamic [offset] [lease\-time]\fP
2502 Automatically set the IP address and netmask by replying to DHCP
2503 query messages generated by the kernel. This mode is probably the
2504-"cleanest" solution for setting the TCP/IP properties since it
2505+\(dqcleanest\(dq solution for setting the TCP/IP properties since it
2506 uses the well\-known DHCP protocol. There are, however, two
2507 prerequisites for using this mode:
2508 .INDENT 7.0
2509 .IP 1. 3
2510 The TCP/IP properties for the TAP\-Win32 adapter must be set
2511-to "Obtain an IP address automatically", and
2512+to \(dqObtain an IP address automatically\(dq, and
2513 .IP 2. 3
2514 OpenVPN needs to claim an IP address in the subnet for use
2515 as the virtual DHCP server address.
2516@@ -6955,7 +6973,7 @@ address + offset. If offset is negative, the DHCP server will
2517 masquerade as the IP address at broadcast address + offset.
2518 .sp
2519 The Windows \fBipconfig /all\fP command can be used to show what
2520-Windows thinks the DHCP server address is. OpenVPN will "claim"
2521+Windows thinks the DHCP server address is. OpenVPN will \(dqclaim\(dq
2522 this address, so make sure to use a free address. Having said that,
2523 different OpenVPN instantiations, including different ends of
2524 the same connection, can share the same virtual DHCP server
2525@@ -6969,7 +6987,7 @@ when the system goes to sleep. The default lease time is one year.
2526 .TP
2527 .B \fBnetsh\fP
2528 Automatically set the IP address and netmask using the Windows
2529-command\-line "netsh" command. This method appears to work correctly
2530+command\-line \(dqnetsh\(dq command. This method appears to work correctly
2531 on Windows XP but not Windows 2000.
2532 .TP
2533 .B \fBipapi\fP
2534@@ -6977,8 +6995,8 @@ Automatically set the IP address and netmask using the Windows IP
2535 Helper API. This approach does not have ideal semantics, though
2536 testing has indicated that it works okay in practice. If you use
2537 this option, it is best to leave the TCP/IP properties for the
2538-TAP\-Win32 adapter in their default state, i.e. "Obtain an IP
2539-address automatically."
2540+TAP\-Win32 adapter in their default state, i.e. \(dqObtain an IP
2541+address automatically.\(dq
2542 .TP
2543 .B \fBadaptive\fP (Default)
2544 Try \fBdynamic\fP method initially and fail over to \fBnetsh\fP
2545@@ -6991,13 +7009,13 @@ properties will be reset from DHCP to static, and this will cause
2546 future OpenVPN startups using the \fBadaptive\fP mode to use
2547 \fBnetsh\fP immediately, rather than trying \fBdynamic\fP first.
2548 .sp
2549-To "unstick" the \fBadaptive\fP mode from using \fBnetsh\fP,
2550+To \(dqunstick\(dq the \fBadaptive\fP mode from using \fBnetsh\fP,
2551 run OpenVPN at least once using the \fBdynamic\fP mode to restore
2552 the TAP\-Win32 adapter TCP/IP properties to a DHCP configuration.
2553 .UNINDENT
2554 .TP
2555 .B \-\-pause\-exit
2556-Put up a "press any key to continue" message on the console prior to
2557+Put up a \(dqpress any key to continue\(dq message on the console prior to
2558 OpenVPN program exit. This option is automatically used by the Windows
2559 explorer when OpenVPN is run on a configuration file using the
2560 right\-click explorer menu.
2561@@ -7084,7 +7102,7 @@ be the middle two addresses of a /30 subnet (netmask 255.255.255.252).
2562 .TP
2563 .BI \-\-tap\-sleep \ n
2564 Cause OpenVPN to sleep for \fBn\fP seconds immediately after the TAP\-Win32
2565-adapter state is set to "connected".
2566+adapter state is set to \(dqconnected\(dq.
2567 .sp
2568 This option is intended to be used to troubleshoot problems with the
2569 \fB\-\-ifconfig\fP and \fB\-\-ip\-win32\fP options, and is used to give the
2570@@ -7287,7 +7305,7 @@ group.
2571 An OpenVPN client will try each connection profile sequentially until it
2572 achieves a successful connection.
2573 .sp
2574-\fB\-\-remote\-random\fP can be used to initially "scramble" the connection
2575+\fB\-\-remote\-random\fP can be used to initially \(dqscramble\(dq the connection
2576 list.
2577 .sp
2578 Here is an example of connection profile usage:
2579@@ -7360,7 +7378,7 @@ OpenVPN allows including files in the main configuration for the \fB\-\-ca\fP,
2580 \fB\-\-cert\fP, \fB\-\-dh\fP, \fB\-\-extra\-certs\fP, \fB\-\-key\fP, \fB\-\-pkcs12\fP,
2581 \fB\-\-secret\fP, \fB\-\-crl\-verify\fP, \fB\-\-http\-proxy\-user\-pass\fP, \fB\-\-tls\-auth\fP,
2582 \fB\-\-auth\-gen\-token\-secret\fP, \fB\-\-peer\-fingerprint\fP, \fB\-\-tls\-crypt\fP,
2583-\fB\-\-tls\-crypt\-v2\fP and \fB\-\-verify\-hash\fP options.
2584+\fB\-\-tls\-crypt\-v2\fP, \fB\-\-verify\-hash\fP and \fB\-\-auth\-user\-pass\fP options.
2585 .sp
2586 Each inline file started by the line \fB<option>\fP and ended by the line
2587 \fB</option>\fP
2588diff --git a/doc/openvpn.8.html b/doc/openvpn.8.html
2589index 9b1992a..4e86b04 100644
2590--- a/doc/openvpn.8.html
2591+++ b/doc/openvpn.8.html
2592@@ -1,20 +1,20 @@
2593-<?xml version="1.0" encoding="utf-8" ?>
2594+<?xml version="1.0" encoding="utf-8"?>
2595 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2596 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
2597 <head>
2598 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2599-<meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
2600+<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
2601 <title>openvpn</title>
2602 <style type="text/css">
2603
2604 /*
2605 :Author: David Goodger (goodger@python.org)
2606-:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
2607+:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
2608 :Copyright: This stylesheet has been placed in the public domain.
2609
2610 Default cascading style sheet for the HTML output of Docutils.
2611
2612-See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
2613+See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
2614 customize this style sheet.
2615 */
2616
2617@@ -492,7 +492,7 @@ version specified.</p>
2618 to the configuration if no other compression options are present.</li>
2619 <li>2.4.x or lower: The cipher in <tt class="docutils literal"><span class="pre">--cipher</span></tt> is appended to
2620 <tt class="docutils literal"><span class="pre">--data-ciphers</span></tt>.</li>
2621-<li>2.3.x or lower: <tt class="docutils literal"><span class="pre">--data-cipher-fallback</span></tt> is automatically added with
2622+<li>2.3.x or lower: <tt class="docutils literal"><span class="pre">--data-ciphers-fallback</span></tt> is automatically added with
2623 the same cipher as <tt class="docutils literal"><span class="pre">--cipher</span></tt>.</li>
2624 <li>2.3.6 or lower: <tt class="docutils literal"><span class="pre">--tls-version-min</span> 1.0</tt> is added to the configuration
2625 when <tt class="docutils literal"><span class="pre">--tls-version-min</span></tt> is not explicitly set.</li>
2626@@ -1353,6 +1353,15 @@ auth-user-pass up
2627 lines. If the password line is missing, OpenVPN will prompt for one.</p>
2628 <p>If <tt class="docutils literal">up</tt> is omitted, username/password will be prompted from the
2629 console.</p>
2630+<p>This option can also be inlined</p>
2631+<pre class="literal-block">
2632+&lt;auth-user-pass&gt;
2633+username
2634+[password]
2635+&lt;/auth-user-pass&gt;
2636+</pre>
2637+<p>where password is optional, and will be prompted from the console if
2638+missing.</p>
2639 <p class="last">The server configuration must specify an <tt class="docutils literal"><span class="pre">--auth-user-pass-verify</span></tt>
2640 script to verify the username/password provided by the client.</p>
2641 </td></tr>
2642@@ -3612,7 +3621,7 @@ different backwards compatibility mechanism with older server and clients.</p>
2643 <div class="section" id="openvpn-2-5-and-later-behaviour">
2644 <h2>OpenVPN 2.5 and later behaviour</h2>
2645 <p>When both client and server are at least running OpenVPN 2.5, that the order of
2646-the ciphers of the server's <tt class="docutils literal"><span class="pre">--data-ciphers</span></tt> is used to pick the the data cipher.
2647+the ciphers of the server's <tt class="docutils literal"><span class="pre">--data-ciphers</span></tt> is used to pick the data cipher.
2648 That means that the first cipher in that list that is also in the client's
2649 <tt class="docutils literal"><span class="pre">--data-ciphers</span></tt> list is chosen. If no common cipher is found the client is rejected
2650 with a AUTH_FAILED message (as seen in client log):</p>
2651@@ -4387,7 +4396,7 @@ virtual &quot;multipoint networks&quot;), <tt class="docutils literal"><span cla
2652 address and subnet mask just as a physical ethernet adapter would be
2653 similarly configured. If you are attempting to connect to a remote
2654 ethernet bridge, the IP address and subnet should be set to values which
2655-would be valid on the the bridged ethernet segment (note also that DHCP
2656+would be valid on the bridged ethernet segment (note also that DHCP
2657 can be used for the same purpose).</p>
2658 <p>This option, while primarily a proxy for the <tt class="docutils literal">ifconfig</tt>(8) command,
2659 is designed to simplify TUN/TAP tunnel configuration by providing a
2660@@ -4720,7 +4729,7 @@ deleted or the machine is rebooted.</p>
2661 <p>One of the advantages of persistent tunnels is that they eliminate the
2662 need for separate <tt class="docutils literal"><span class="pre">--up</span></tt> and <tt class="docutils literal"><span class="pre">--down</span></tt> scripts to run the appropriate
2663 <tt class="docutils literal">ifconfig</tt>(8) and <tt class="docutils literal">route</tt>(8) commands. These commands can be
2664-placed in the the same shell script which starts or terminates an
2665+placed in the same shell script which starts or terminates an
2666 OpenVPN session.</p>
2667 <p>Another advantage is that open connections through the TUN/TAP-based
2668 tunnel will not be reset if the OpenVPN peer restarts. This can be
2669@@ -6343,7 +6352,7 @@ declared in all <tt class="docutils literal">&lt;connection&gt;</tt> blocks belo
2670 <tt class="docutils literal"><span class="pre">--cert</span></tt>, <tt class="docutils literal"><span class="pre">--dh</span></tt>, <tt class="docutils literal"><span class="pre">--extra-certs</span></tt>, <tt class="docutils literal"><span class="pre">--key</span></tt>, <tt class="docutils literal"><span class="pre">--pkcs12</span></tt>,
2671 <tt class="docutils literal"><span class="pre">--secret</span></tt>, <tt class="docutils literal"><span class="pre">--crl-verify</span></tt>, <tt class="docutils literal"><span class="pre">--http-proxy-user-pass</span></tt>, <tt class="docutils literal"><span class="pre">--tls-auth</span></tt>,
2672 <tt class="docutils literal"><span class="pre">--auth-gen-token-secret</span></tt>, <tt class="docutils literal"><span class="pre">--peer-fingerprint</span></tt>, <tt class="docutils literal"><span class="pre">--tls-crypt</span></tt>,
2673-<tt class="docutils literal"><span class="pre">--tls-crypt-v2</span></tt> and <tt class="docutils literal"><span class="pre">--verify-hash</span></tt> options.</p>
2674+<tt class="docutils literal"><span class="pre">--tls-crypt-v2</span></tt>, <tt class="docutils literal"><span class="pre">--verify-hash</span></tt> and <tt class="docutils literal"><span class="pre">--auth-user-pass</span></tt> options.</p>
2675 <p>Each inline file started by the line <tt class="docutils literal">&lt;option&gt;</tt> and ended by the line
2676 <tt class="docutils literal">&lt;/option&gt;</tt></p>
2677 <p>Here is an example of an inline file usage</p>
2678diff --git a/include/Makefile.am b/include/Makefile.am
2679index e0d4986..3e93bf0 100644
2680--- a/include/Makefile.am
2681+++ b/include/Makefile.am
2682@@ -5,7 +5,7 @@
2683 # packet encryption, packet authentication, and
2684 # packet compression.
2685 #
2686-# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
2687+# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
2688 # Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
2689 #
2690
2691diff --git a/include/Makefile.in b/include/Makefile.in
2692index 362ce79..a1715f2 100644
2693--- a/include/Makefile.in
2694+++ b/include/Makefile.in
2695@@ -21,7 +21,7 @@
2696 # packet encryption, packet authentication, and
2697 # packet compression.
2698 #
2699-# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
2700+# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
2701 # Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
2702 #
2703
2704@@ -216,6 +216,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
2705 ETAGS = @ETAGS@
2706 EXEEXT = @EXEEXT@
2707 FGREP = @FGREP@
2708+FILECMD = @FILECMD@
2709 GIT = @GIT@
2710 GREP = @GREP@
2711 IFCONFIG = @IFCONFIG@
2712diff --git a/include/openvpn-msg.h b/include/openvpn-msg.h
2713index a1464cd..657eb5e 100644
2714--- a/include/openvpn-msg.h
2715+++ b/include/openvpn-msg.h
2716@@ -5,7 +5,7 @@
2717 * packet encryption, packet authentication, and
2718 * packet compression.
2719 *
2720- * Copyright (C) 2013-2023 Heiko Hund <heiko.hund@sophos.com>
2721+ * Copyright (C) 2013-2024 Heiko Hund <heiko.hund@sophos.com>
2722 *
2723 * This program is free software; you can redistribute it and/or modify
2724 * it under the terms of the GNU General Public License version 2
2725diff --git a/include/openvpn-plugin.h b/include/openvpn-plugin.h
2726index 8f8525d..b61d3f8 100644
2727--- a/include/openvpn-plugin.h
2728+++ b/include/openvpn-plugin.h
2729@@ -6,7 +6,7 @@
2730 * packet encryption, packet authentication, and
2731 * packet compression.
2732 *
2733- * Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
2734+ * Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
2735 *
2736 * This program is free software; you can redistribute it and/or modify
2737 * it under the terms of the GNU General Public License version 2
2738@@ -53,7 +53,7 @@ extern "C" {
2739 */
2740 #define OPENVPN_VERSION_MAJOR 2
2741 #define OPENVPN_VERSION_MINOR 6
2742-#define OPENVPN_VERSION_PATCH ".9"
2743+#define OPENVPN_VERSION_PATCH ".10"
2744
2745 /*
2746 * Plug-in types. These types correspond to the set of script callbacks
2747diff --git a/include/openvpn-plugin.h.in b/include/openvpn-plugin.h.in
2748index ffbdbfc..cacef44 100644
2749--- a/include/openvpn-plugin.h.in
2750+++ b/include/openvpn-plugin.h.in
2751@@ -5,7 +5,7 @@
2752 * packet encryption, packet authentication, and
2753 * packet compression.
2754 *
2755- * Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>
2756+ * Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
2757 *
2758 * This program is free software; you can redistribute it and/or modify
2759 * it under the terms of the GNU General Public License version 2
2760diff --git a/ltmain.sh b/ltmain.sh
2761old mode 100755
2762new mode 100644
2763index 540a92a..2a50d7f
2764--- a/ltmain.sh
2765+++ b/ltmain.sh
2766@@ -1,12 +1,12 @@
2767-#! /bin/sh
2768+#! /usr/bin/env sh
2769 ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
2770-## by inline-source v2014-01-03.01
2771+## by inline-source v2019-02-19.15
2772
2773-# libtool (GNU libtool) 2.4.6
2774+# libtool (GNU libtool) 2.4.7
2775 # Provide generalized library-building support services.
2776 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
2777
2778-# Copyright (C) 1996-2015 Free Software Foundation, Inc.
2779+# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc.
2780 # This is free software; see the source for copying conditions. There is NO
2781 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
2782
2783@@ -31,8 +31,8 @@
2784
2785 PROGRAM=libtool
2786 PACKAGE=libtool
2787-VERSION="2.4.6 Debian-2.4.6-15build2"
2788-package_revision=2.4.6
2789+VERSION=2.4.7
2790+package_revision=2.4.7
2791
2792
2793 ## ------ ##
2794@@ -64,34 +64,25 @@ package_revision=2.4.6
2795 # libraries, which are installed to $pkgauxdir.
2796
2797 # Set a version string for this script.
2798-scriptversion=2015-01-20.17; # UTC
2799+scriptversion=2019-02-19.15; # UTC
2800
2801 # General shell script boiler plate, and helper functions.
2802 # Written by Gary V. Vaughan, 2004
2803
2804-# Copyright (C) 2004-2015 Free Software Foundation, Inc.
2805-# This is free software; see the source for copying conditions. There is NO
2806-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
2807-
2808-# This program is free software; you can redistribute it and/or modify
2809-# it under the terms of the GNU General Public License as published by
2810-# the Free Software Foundation; either version 3 of the License, or
2811-# (at your option) any later version.
2812-
2813-# As a special exception to the GNU General Public License, if you distribute
2814-# this file as part of a program or library that is built using GNU Libtool,
2815-# you may include this file under the same distribution terms that you use
2816-# for the rest of that program.
2817-
2818-# This program is distributed in the hope that it will be useful,
2819-# but WITHOUT ANY WARRANTY; without even the implied warranty of
2820-# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
2821-# General Public License for more details.
2822-
2823-# You should have received a copy of the GNU General Public License
2824-# along with this program. If not, see <http://www.gnu.org/licenses/>.
2825+# This is free software. There is NO warranty; not even for
2826+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
2827+#
2828+# Copyright (C) 2004-2019, 2021 Bootstrap Authors
2829+#
2830+# This file is dual licensed under the terms of the MIT license
2831+# <https://opensource.org/license/MIT>, and GPL version 2 or later
2832+# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
2833+# these licenses when using or redistributing this software or any of
2834+# the files within it. See the URLs above, or the file `LICENSE`
2835+# included in the Bootstrap distribution for the full license texts.
2836
2837-# Please report bugs or propose patches to gary@gnu.org.
2838+# Please report bugs or propose patches to:
2839+# <https://github.com/gnulib-modules/bootstrap/issues>
2840
2841
2842 ## ------ ##
2843@@ -139,9 +130,12 @@ do
2844 _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
2845 fi"
2846 done
2847-
2848-# CDPATH.
2849-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2850+# These NLS vars are set unconditionally (bootstrap issue #24). Unset those
2851+# in case the environment reset is needed later and the $save_* variant is not
2852+# defined (see the code above).
2853+LC_ALL=C
2854+LANGUAGE=C
2855+export LANGUAGE LC_ALL
2856
2857 # Make sure IFS has a sensible default
2858 sp=' '
2859@@ -159,6 +153,26 @@ if test "${PATH_SEPARATOR+set}" != set; then
2860 fi
2861
2862
2863+# func_unset VAR
2864+# --------------
2865+# Portably unset VAR.
2866+# In some shells, an 'unset VAR' statement leaves a non-zero return
2867+# status if VAR is already unset, which might be problematic if the
2868+# statement is used at the end of a function (thus poisoning its return
2869+# value) or when 'set -e' is active (causing even a spurious abort of
2870+# the script in this case).
2871+func_unset ()
2872+{
2873+ { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; }
2874+}
2875+
2876+
2877+# Make sure CDPATH doesn't cause `cd` commands to output the target dir.
2878+func_unset CDPATH
2879+
2880+# Make sure ${,E,F}GREP behave sanely.
2881+func_unset GREP_OPTIONS
2882+
2883
2884 ## ------------------------- ##
2885 ## Locate command utilities. ##
2886@@ -259,7 +273,7 @@ test -z "$SED" && {
2887 rm -f conftest.in conftest.tmp conftest.nl conftest.out
2888 }
2889
2890- func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
2891+ func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin"
2892 rm -f conftest.sed
2893 SED=$func_path_progs_result
2894 }
2895@@ -295,7 +309,7 @@ test -z "$GREP" && {
2896 rm -f conftest.in conftest.tmp conftest.nl conftest.out
2897 }
2898
2899- func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
2900+ func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin"
2901 GREP=$func_path_progs_result
2902 }
2903
2904@@ -360,6 +374,35 @@ sed_double_backslash="\
2905 s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
2906 s/\n//g"
2907
2908+# require_check_ifs_backslash
2909+# ---------------------------
2910+# Check if we can use backslash as IFS='\' separator, and set
2911+# $check_ifs_backshlash_broken to ':' or 'false'.
2912+require_check_ifs_backslash=func_require_check_ifs_backslash
2913+func_require_check_ifs_backslash ()
2914+{
2915+ _G_save_IFS=$IFS
2916+ IFS='\'
2917+ _G_check_ifs_backshlash='a\\b'
2918+ for _G_i in $_G_check_ifs_backshlash
2919+ do
2920+ case $_G_i in
2921+ a)
2922+ check_ifs_backshlash_broken=false
2923+ ;;
2924+ '')
2925+ break
2926+ ;;
2927+ *)
2928+ check_ifs_backshlash_broken=:
2929+ break
2930+ ;;
2931+ esac
2932+ done
2933+ IFS=$_G_save_IFS
2934+ require_check_ifs_backslash=:
2935+}
2936+
2937
2938 ## ----------------- ##
2939 ## Global variables. ##
2940@@ -387,7 +430,7 @@ EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
2941 # putting '$debug_cmd' at the start of all your functions, you can get
2942 # bash to show function call trace with:
2943 #
2944-# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
2945+# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
2946 debug_cmd=${debug_cmd-":"}
2947 exit_cmd=:
2948
2949@@ -580,16 +623,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then
2950 {
2951 $debug_cmd
2952
2953- func_quote_for_eval "$2"
2954- eval "$1+=\\ \$func_quote_for_eval_result"
2955+ func_quote_arg pretty "$2"
2956+ eval "$1+=\\ \$func_quote_arg_result"
2957 }'
2958 else
2959 func_append_quoted ()
2960 {
2961 $debug_cmd
2962
2963- func_quote_for_eval "$2"
2964- eval "$1=\$$1\\ \$func_quote_for_eval_result"
2965+ func_quote_arg pretty "$2"
2966+ eval "$1=\$$1\\ \$func_quote_arg_result"
2967 }
2968 fi
2969
2970@@ -1091,85 +1134,203 @@ func_relative_path ()
2971 }
2972
2973
2974-# func_quote_for_eval ARG...
2975-# --------------------------
2976-# Aesthetically quote ARGs to be evaled later.
2977-# This function returns two values:
2978-# i) func_quote_for_eval_result
2979-# double-quoted, suitable for a subsequent eval
2980-# ii) func_quote_for_eval_unquoted_result
2981-# has all characters that are still active within double
2982-# quotes backslashified.
2983-func_quote_for_eval ()
2984+# func_quote_portable EVAL ARG
2985+# ----------------------------
2986+# Internal function to portably implement func_quote_arg. Note that we still
2987+# keep attention to performance here so we as much as possible try to avoid
2988+# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
2989+func_quote_portable ()
2990 {
2991 $debug_cmd
2992
2993- func_quote_for_eval_unquoted_result=
2994- func_quote_for_eval_result=
2995- while test 0 -lt $#; do
2996- case $1 in
2997- *[\\\`\"\$]*)
2998- _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
2999- *)
3000- _G_unquoted_arg=$1 ;;
3001- esac
3002- if test -n "$func_quote_for_eval_unquoted_result"; then
3003- func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
3004- else
3005- func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
3006+ $require_check_ifs_backslash
3007+
3008+ func_quote_portable_result=$2
3009+
3010+ # one-time-loop (easy break)
3011+ while true
3012+ do
3013+ if $1; then
3014+ func_quote_portable_result=`$ECHO "$2" | $SED \
3015+ -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
3016+ break
3017 fi
3018
3019- case $_G_unquoted_arg in
3020- # Double-quote args containing shell metacharacters to delay
3021- # word splitting, command substitution and variable expansion
3022- # for a subsequent eval.
3023- # Many Bourne shells cannot handle close brackets correctly
3024- # in scan sets, so we specify it separately.
3025- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
3026- _G_quoted_arg=\"$_G_unquoted_arg\"
3027+ # Quote for eval.
3028+ case $func_quote_portable_result in
3029+ *[\\\`\"\$]*)
3030+ # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string
3031+ # contains the shell wildcard characters.
3032+ case $check_ifs_backshlash_broken$func_quote_portable_result in
3033+ :*|*[\[\*\?]*)
3034+ func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
3035+ | $SED "$sed_quote_subst"`
3036+ break
3037+ ;;
3038+ esac
3039+
3040+ func_quote_portable_old_IFS=$IFS
3041+ for _G_char in '\' '`' '"' '$'
3042+ do
3043+ # STATE($1) PREV($2) SEPARATOR($3)
3044+ set start "" ""
3045+ func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
3046+ IFS=$_G_char
3047+ for _G_part in $func_quote_portable_result
3048+ do
3049+ case $1 in
3050+ quote)
3051+ func_append func_quote_portable_result "$3$2"
3052+ set quote "$_G_part" "\\$_G_char"
3053+ ;;
3054+ start)
3055+ set first "" ""
3056+ func_quote_portable_result=
3057+ ;;
3058+ first)
3059+ set quote "$_G_part" ""
3060+ ;;
3061+ esac
3062+ done
3063+ done
3064+ IFS=$func_quote_portable_old_IFS
3065 ;;
3066- *)
3067- _G_quoted_arg=$_G_unquoted_arg
3068- ;;
3069+ *) ;;
3070 esac
3071-
3072- if test -n "$func_quote_for_eval_result"; then
3073- func_append func_quote_for_eval_result " $_G_quoted_arg"
3074- else
3075- func_append func_quote_for_eval_result "$_G_quoted_arg"
3076- fi
3077- shift
3078+ break
3079 done
3080+
3081+ func_quote_portable_unquoted_result=$func_quote_portable_result
3082+ case $func_quote_portable_result in
3083+ # double-quote args containing shell metacharacters to delay
3084+ # word splitting, command substitution and variable expansion
3085+ # for a subsequent eval.
3086+ # many bourne shells cannot handle close brackets correctly
3087+ # in scan sets, so we specify it separately.
3088+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
3089+ func_quote_portable_result=\"$func_quote_portable_result\"
3090+ ;;
3091+ esac
3092 }
3093
3094
3095-# func_quote_for_expand ARG
3096-# -------------------------
3097-# Aesthetically quote ARG to be evaled later; same as above,
3098-# but do not quote variable references.
3099-func_quote_for_expand ()
3100-{
3101- $debug_cmd
3102+# func_quotefast_eval ARG
3103+# -----------------------
3104+# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG',
3105+# but optimized for speed. Result is stored in $func_quotefast_eval.
3106+if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
3107+ printf -v _GL_test_printf_tilde %q '~'
3108+ if test '\~' = "$_GL_test_printf_tilde"; then
3109+ func_quotefast_eval ()
3110+ {
3111+ printf -v func_quotefast_eval_result %q "$1"
3112+ }
3113+ else
3114+ # Broken older Bash implementations. Make those faster too if possible.
3115+ func_quotefast_eval ()
3116+ {
3117+ case $1 in
3118+ '~'*)
3119+ func_quote_portable false "$1"
3120+ func_quotefast_eval_result=$func_quote_portable_result
3121+ ;;
3122+ *)
3123+ printf -v func_quotefast_eval_result %q "$1"
3124+ ;;
3125+ esac
3126+ }
3127+ fi
3128+else
3129+ func_quotefast_eval ()
3130+ {
3131+ func_quote_portable false "$1"
3132+ func_quotefast_eval_result=$func_quote_portable_result
3133+ }
3134+fi
3135
3136- case $1 in
3137- *[\\\`\"]*)
3138- _G_arg=`$ECHO "$1" | $SED \
3139- -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
3140- *)
3141- _G_arg=$1 ;;
3142+
3143+# func_quote_arg MODEs ARG
3144+# ------------------------
3145+# Quote one ARG to be evaled later. MODEs argument may contain zero or more
3146+# specifiers listed below separated by ',' character. This function returns two
3147+# values:
3148+# i) func_quote_arg_result
3149+# double-quoted (when needed), suitable for a subsequent eval
3150+# ii) func_quote_arg_unquoted_result
3151+# has all characters that are still active within double
3152+# quotes backslashified. Available only if 'unquoted' is specified.
3153+#
3154+# Available modes:
3155+# ----------------
3156+# 'eval' (default)
3157+# - escape shell special characters
3158+# 'expand'
3159+# - the same as 'eval'; but do not quote variable references
3160+# 'pretty'
3161+# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might
3162+# be used later in func_quote to get output like: 'echo "a b"' instead
3163+# of 'echo a\ b'. This is slower than default on some shells.
3164+# 'unquoted'
3165+# - produce also $func_quote_arg_unquoted_result which does not contain
3166+# wrapping double-quotes.
3167+#
3168+# Examples for 'func_quote_arg pretty,unquoted string':
3169+#
3170+# string | *_result | *_unquoted_result
3171+# ------------+-----------------------+-------------------
3172+# " | \" | \"
3173+# a b | "a b" | a b
3174+# "a b" | "\"a b\"" | \"a b\"
3175+# * | "*" | *
3176+# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\"
3177+#
3178+# Examples for 'func_quote_arg pretty,unquoted,expand string':
3179+#
3180+# string | *_result | *_unquoted_result
3181+# --------------+---------------------+--------------------
3182+# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\"
3183+func_quote_arg ()
3184+{
3185+ _G_quote_expand=false
3186+ case ,$1, in
3187+ *,expand,*)
3188+ _G_quote_expand=:
3189+ ;;
3190 esac
3191
3192- case $_G_arg in
3193- # Double-quote args containing shell metacharacters to delay
3194- # word splitting and command substitution for a subsequent eval.
3195- # Many Bourne shells cannot handle close brackets correctly
3196- # in scan sets, so we specify it separately.
3197- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
3198- _G_arg=\"$_G_arg\"
3199+ case ,$1, in
3200+ *,pretty,*|*,expand,*|*,unquoted,*)
3201+ func_quote_portable $_G_quote_expand "$2"
3202+ func_quote_arg_result=$func_quote_portable_result
3203+ func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
3204+ ;;
3205+ *)
3206+ # Faster quote-for-eval for some shells.
3207+ func_quotefast_eval "$2"
3208+ func_quote_arg_result=$func_quotefast_eval_result
3209 ;;
3210 esac
3211+}
3212+
3213
3214- func_quote_for_expand_result=$_G_arg
3215+# func_quote MODEs ARGs...
3216+# ------------------------
3217+# Quote all ARGs to be evaled later and join them into single command. See
3218+# func_quote_arg's description for more info.
3219+func_quote ()
3220+{
3221+ $debug_cmd
3222+ _G_func_quote_mode=$1 ; shift
3223+ func_quote_result=
3224+ while test 0 -lt $#; do
3225+ func_quote_arg "$_G_func_quote_mode" "$1"
3226+ if test -n "$func_quote_result"; then
3227+ func_append func_quote_result " $func_quote_arg_result"
3228+ else
3229+ func_append func_quote_result "$func_quote_arg_result"
3230+ fi
3231+ shift
3232+ done
3233 }
3234
3235
3236@@ -1215,8 +1376,8 @@ func_show_eval ()
3237 _G_cmd=$1
3238 _G_fail_exp=${2-':'}
3239
3240- func_quote_for_expand "$_G_cmd"
3241- eval "func_notquiet $func_quote_for_expand_result"
3242+ func_quote_arg pretty,expand "$_G_cmd"
3243+ eval "func_notquiet $func_quote_arg_result"
3244
3245 $opt_dry_run || {
3246 eval "$_G_cmd"
3247@@ -1241,8 +1402,8 @@ func_show_eval_locale ()
3248 _G_fail_exp=${2-':'}
3249
3250 $opt_quiet || {
3251- func_quote_for_expand "$_G_cmd"
3252- eval "func_echo $func_quote_for_expand_result"
3253+ func_quote_arg expand,pretty "$_G_cmd"
3254+ eval "func_echo $func_quote_arg_result"
3255 }
3256
3257 $opt_dry_run || {
3258@@ -1369,30 +1530,26 @@ func_lt_ver ()
3259 # End:
3260 #! /bin/sh
3261
3262-# Set a version string for this script.
3263-scriptversion=2015-10-07.11; # UTC
3264-
3265 # A portable, pluggable option parser for Bourne shell.
3266 # Written by Gary V. Vaughan, 2010
3267
3268-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
3269-# This is free software; see the source for copying conditions. There is NO
3270-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3271-
3272-# This program is free software: you can redistribute it and/or modify
3273-# it under the terms of the GNU General Public License as published by
3274-# the Free Software Foundation, either version 3 of the License, or
3275-# (at your option) any later version.
3276-
3277-# This program is distributed in the hope that it will be useful,
3278-# but WITHOUT ANY WARRANTY; without even the implied warranty of
3279-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3280-# GNU General Public License for more details.
3281+# This is free software. There is NO warranty; not even for
3282+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3283+#
3284+# Copyright (C) 2010-2019, 2021 Bootstrap Authors
3285+#
3286+# This file is dual licensed under the terms of the MIT license
3287+# <https://opensource.org/license/MIT>, and GPL version 2 or later
3288+# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
3289+# these licenses when using or redistributing this software or any of
3290+# the files within it. See the URLs above, or the file `LICENSE`
3291+# included in the Bootstrap distribution for the full license texts.
3292
3293-# You should have received a copy of the GNU General Public License
3294-# along with this program. If not, see <http://www.gnu.org/licenses/>.
3295+# Please report bugs or propose patches to:
3296+# <https://github.com/gnulib-modules/bootstrap/issues>
3297
3298-# Please report bugs or propose patches to gary@gnu.org.
3299+# Set a version string for this script.
3300+scriptversion=2019-02-19.15; # UTC
3301
3302
3303 ## ------ ##
3304@@ -1415,7 +1572,7 @@ scriptversion=2015-10-07.11; # UTC
3305 #
3306 # In order for the '--version' option to work, you will need to have a
3307 # suitably formatted comment like the one at the top of this file
3308-# starting with '# Written by ' and ending with '# warranty; '.
3309+# starting with '# Written by ' and ending with '# Copyright'.
3310 #
3311 # For '-h' and '--help' to work, you will also need a one line
3312 # description of your script's purpose in a comment directly above the
3313@@ -1427,7 +1584,7 @@ scriptversion=2015-10-07.11; # UTC
3314 # to display verbose messages only when your user has specified
3315 # '--verbose'.
3316 #
3317-# After sourcing this file, you can plug processing for additional
3318+# After sourcing this file, you can plug in processing for additional
3319 # options by amending the variables from the 'Configuration' section
3320 # below, and following the instructions in the 'Option parsing'
3321 # section further down.
3322@@ -1476,8 +1633,8 @@ fatal_help="Try '\$progname --help' for more information."
3323 ## ------------------------- ##
3324
3325 # This section contains functions for adding, removing, and running hooks
3326-# to the main code. A hook is just a named list of of function, that can
3327-# be run in order later on.
3328+# in the main code. A hook is just a list of function names that can be
3329+# run in order later on.
3330
3331 # func_hookable FUNC_NAME
3332 # -----------------------
3333@@ -1510,7 +1667,8 @@ func_add_hook ()
3334
3335 # func_remove_hook FUNC_NAME HOOK_FUNC
3336 # ------------------------------------
3337-# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
3338+# Remove HOOK_FUNC from the list of hook functions to be called by
3339+# FUNC_NAME.
3340 func_remove_hook ()
3341 {
3342 $debug_cmd
3343@@ -1519,10 +1677,28 @@ func_remove_hook ()
3344 }
3345
3346
3347+# func_propagate_result FUNC_NAME_A FUNC_NAME_B
3348+# ---------------------------------------------
3349+# If the *_result variable of FUNC_NAME_A _is set_, assign its value to
3350+# *_result variable of FUNC_NAME_B.
3351+func_propagate_result ()
3352+{
3353+ $debug_cmd
3354+
3355+ func_propagate_result_result=:
3356+ if eval "test \"\${${1}_result+set}\" = set"
3357+ then
3358+ eval "${2}_result=\$${1}_result"
3359+ else
3360+ func_propagate_result_result=false
3361+ fi
3362+}
3363+
3364+
3365 # func_run_hooks FUNC_NAME [ARG]...
3366 # ---------------------------------
3367 # Run all hook functions registered to FUNC_NAME.
3368-# It is assumed that the list of hook functions contains nothing more
3369+# It's assumed that the list of hook functions contains nothing more
3370 # than a whitespace-delimited list of legal shell function names, and
3371 # no effort is wasted trying to catch shell meta-characters or preserve
3372 # whitespace.
3373@@ -1530,26 +1706,21 @@ func_run_hooks ()
3374 {
3375 $debug_cmd
3376
3377- _G_rc_run_hooks=false
3378-
3379 case " $hookable_fns " in
3380 *" $1 "*) ;;
3381- *) func_fatal_error "'$1' does not support hook funcions.n" ;;
3382+ *) func_fatal_error "'$1' does not support hook functions." ;;
3383 esac
3384
3385 eval _G_hook_fns=\$$1_hooks; shift
3386
3387 for _G_hook in $_G_hook_fns; do
3388- if eval $_G_hook '"$@"'; then
3389- # store returned options list back into positional
3390- # parameters for next 'cmd' execution.
3391- eval _G_hook_result=\$${_G_hook}_result
3392- eval set dummy "$_G_hook_result"; shift
3393- _G_rc_run_hooks=:
3394+ func_unset "${_G_hook}_result"
3395+ eval $_G_hook '${1+"$@"}'
3396+ func_propagate_result $_G_hook func_run_hooks
3397+ if $func_propagate_result_result; then
3398+ eval set dummy "$func_run_hooks_result"; shift
3399 fi
3400 done
3401-
3402- $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result
3403 }
3404
3405
3406@@ -1559,14 +1730,16 @@ func_run_hooks ()
3407 ## --------------- ##
3408
3409 # In order to add your own option parsing hooks, you must accept the
3410-# full positional parameter list in your hook function, you may remove/edit
3411-# any options that you action, and then pass back the remaining unprocessed
3412-# options in '<hooked_function_name>_result', escaped suitably for
3413-# 'eval'. In this case you also must return $EXIT_SUCCESS to let the
3414-# hook's caller know that it should pay attention to
3415-# '<hooked_function_name>_result'. Returning $EXIT_FAILURE signalizes that
3416-# arguments are left untouched by the hook and therefore caller will ignore the
3417-# result variable.
3418+# full positional parameter list from your hook function. You may remove
3419+# or edit any options that you action, and then pass back the remaining
3420+# unprocessed options in '<hooked_function_name>_result', escaped
3421+# suitably for 'eval'.
3422+#
3423+# The '<hooked_function_name>_result' variable is automatically unset
3424+# before your hook gets called; for best performance, only set the
3425+# *_result variable when necessary (i.e. don't call the 'func_quote'
3426+# function unnecessarily because it can be an expensive operation on some
3427+# machines).
3428 #
3429 # Like this:
3430 #
3431@@ -1578,11 +1751,8 @@ func_run_hooks ()
3432 # usage_message=$usage_message'
3433 # -s, --silent don'\''t print informational messages
3434 # '
3435-# # No change in '$@' (ignored completely by this hook). There is
3436-# # no need to do the equivalent (but slower) action:
3437-# # func_quote_for_eval ${1+"$@"}
3438-# # my_options_prep_result=$func_quote_for_eval_result
3439-# false
3440+# # No change in '$@' (ignored completely by this hook). Leave
3441+# # my_options_prep_result variable intact.
3442 # }
3443 # func_add_hook func_options_prep my_options_prep
3444 #
3445@@ -1593,7 +1763,7 @@ func_run_hooks ()
3446 #
3447 # args_changed=false
3448 #
3449-# # Note that for efficiency, we parse as many options as we can
3450+# # Note that, for efficiency, we parse as many options as we can
3451 # # recognise in a loop before passing the remainder back to the
3452 # # caller on the first unrecognised argument we encounter.
3453 # while test $# -gt 0; do
3454@@ -1610,18 +1780,17 @@ func_run_hooks ()
3455 # args_changed=:
3456 # ;;
3457 # *) # Make sure the first unrecognised option "$_G_opt"
3458-# # is added back to "$@", we could need that later
3459-# # if $args_changed is true.
3460+# # is added back to "$@" in case we need it later,
3461+# # if $args_changed was set to 'true'.
3462 # set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
3463 # esac
3464 # done
3465 #
3466+# # Only call 'func_quote' here if we processed at least one argument.
3467 # if $args_changed; then
3468-# func_quote_for_eval ${1+"$@"}
3469-# my_silent_option_result=$func_quote_for_eval_result
3470+# func_quote eval ${1+"$@"}
3471+# my_silent_option_result=$func_quote_result
3472 # fi
3473-#
3474-# $args_changed
3475 # }
3476 # func_add_hook func_parse_options my_silent_option
3477 #
3478@@ -1632,8 +1801,6 @@ func_run_hooks ()
3479 #
3480 # $opt_silent && $opt_verbose && func_fatal_help "\
3481 # '--silent' and '--verbose' options are mutually exclusive."
3482-#
3483-# false
3484 # }
3485 # func_add_hook func_validate_options my_option_validation
3486 #
3487@@ -1649,13 +1816,8 @@ func_options_finish ()
3488 {
3489 $debug_cmd
3490
3491- _G_func_options_finish_exit=false
3492- if func_run_hooks func_options ${1+"$@"}; then
3493- func_options_finish_result=$func_run_hooks_result
3494- _G_func_options_finish_exit=:
3495- fi
3496-
3497- $_G_func_options_finish_exit
3498+ func_run_hooks func_options ${1+"$@"}
3499+ func_propagate_result func_run_hooks func_options_finish
3500 }
3501
3502
3503@@ -1668,28 +1830,27 @@ func_options ()
3504 {
3505 $debug_cmd
3506
3507- _G_rc_options=false
3508+ _G_options_quoted=false
3509
3510 for my_func in options_prep parse_options validate_options options_finish
3511 do
3512- if eval func_$my_func '${1+"$@"}'; then
3513- eval _G_res_var='$'"func_${my_func}_result"
3514- eval set dummy "$_G_res_var" ; shift
3515- _G_rc_options=:
3516+ func_unset func_${my_func}_result
3517+ func_unset func_run_hooks_result
3518+ eval func_$my_func '${1+"$@"}'
3519+ func_propagate_result func_$my_func func_options
3520+ if $func_propagate_result_result; then
3521+ eval set dummy "$func_options_result"; shift
3522+ _G_options_quoted=:
3523 fi
3524 done
3525
3526- # Save modified positional parameters for caller. As a top-level
3527- # options-parser function we always need to set the 'func_options_result'
3528- # variable (regardless the $_G_rc_options value).
3529- if $_G_rc_options; then
3530- func_options_result=$_G_res_var
3531- else
3532- func_quote_for_eval ${1+"$@"}
3533- func_options_result=$func_quote_for_eval_result
3534- fi
3535-
3536- $_G_rc_options
3537+ $_G_options_quoted || {
3538+ # As we (func_options) are top-level options-parser function and
3539+ # nobody quoted "$@" for us yet, we need to do it explicitly for
3540+ # caller.
3541+ func_quote eval ${1+"$@"}
3542+ func_options_result=$func_quote_result
3543+ }
3544 }
3545
3546
3547@@ -1699,8 +1860,7 @@ func_options ()
3548 # Note that when calling hook functions, we pass through the list of
3549 # positional parameters. If a hook function modifies that list, and
3550 # needs to propagate that back to rest of this script, then the complete
3551-# modified list must be put in 'func_run_hooks_result' before
3552-# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned).
3553+# modified list must be put in 'func_run_hooks_result' before returning.
3554 func_hookable func_options_prep
3555 func_options_prep ()
3556 {
3557@@ -1710,14 +1870,8 @@ func_options_prep ()
3558 opt_verbose=false
3559 opt_warning_types=
3560
3561- _G_rc_options_prep=false
3562- if func_run_hooks func_options_prep ${1+"$@"}; then
3563- _G_rc_options_prep=:
3564- # save modified positional parameters for caller
3565- func_options_prep_result=$func_run_hooks_result
3566- fi
3567-
3568- $_G_rc_options_prep
3569+ func_run_hooks func_options_prep ${1+"$@"}
3570+ func_propagate_result func_run_hooks func_options_prep
3571 }
3572
3573
3574@@ -1729,27 +1883,32 @@ func_parse_options ()
3575 {
3576 $debug_cmd
3577
3578- func_parse_options_result=
3579-
3580- _G_rc_parse_options=false
3581+ _G_parse_options_requote=false
3582 # this just eases exit handling
3583 while test $# -gt 0; do
3584 # Defer to hook functions for initial option parsing, so they
3585 # get priority in the event of reusing an option name.
3586- if func_run_hooks func_parse_options ${1+"$@"}; then
3587- eval set dummy "$func_run_hooks_result"; shift
3588- _G_rc_parse_options=:
3589+ func_run_hooks func_parse_options ${1+"$@"}
3590+ func_propagate_result func_run_hooks func_parse_options
3591+ if $func_propagate_result_result; then
3592+ eval set dummy "$func_parse_options_result"; shift
3593+ # Even though we may have changed "$@", we passed the "$@" array
3594+ # down into the hook and it quoted it for us (because we are in
3595+ # this if-branch). No need to quote it again.
3596+ _G_parse_options_requote=false
3597 fi
3598
3599 # Break out of the loop if we already parsed every option.
3600 test $# -gt 0 || break
3601
3602+ # We expect that one of the options parsed in this function matches
3603+ # and thus we remove _G_opt from "$@" and need to re-quote.
3604 _G_match_parse_options=:
3605 _G_opt=$1
3606 shift
3607 case $_G_opt in
3608 --debug|-x) debug_cmd='set -x'
3609- func_echo "enabling shell trace mode"
3610+ func_echo "enabling shell trace mode" >&2
3611 $debug_cmd
3612 ;;
3613
3614@@ -1760,7 +1919,7 @@ func_parse_options ()
3615
3616 --warnings|--warning|-W)
3617 if test $# = 0 && func_missing_arg $_G_opt; then
3618- _G_rc_parse_options=:
3619+ _G_parse_options_requote=:
3620 break
3621 fi
3622 case " $warning_categories $1" in
3623@@ -1815,7 +1974,7 @@ func_parse_options ()
3624 shift
3625 ;;
3626
3627- --) _G_rc_parse_options=: ; break ;;
3628+ --) _G_parse_options_requote=: ; break ;;
3629 -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
3630 *) set dummy "$_G_opt" ${1+"$@"}; shift
3631 _G_match_parse_options=false
3632@@ -1823,17 +1982,16 @@ func_parse_options ()
3633 ;;
3634 esac
3635
3636- $_G_match_parse_options && _G_rc_parse_options=:
3637+ if $_G_match_parse_options; then
3638+ _G_parse_options_requote=:
3639+ fi
3640 done
3641
3642-
3643- if $_G_rc_parse_options; then
3644+ if $_G_parse_options_requote; then
3645 # save modified positional parameters for caller
3646- func_quote_for_eval ${1+"$@"}
3647- func_parse_options_result=$func_quote_for_eval_result
3648+ func_quote eval ${1+"$@"}
3649+ func_parse_options_result=$func_quote_result
3650 fi
3651-
3652- $_G_rc_parse_options
3653 }
3654
3655
3656@@ -1846,21 +2004,14 @@ func_validate_options ()
3657 {
3658 $debug_cmd
3659
3660- _G_rc_validate_options=false
3661-
3662 # Display all warnings if -W was not given.
3663 test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
3664
3665- if func_run_hooks func_validate_options ${1+"$@"}; then
3666- # save modified positional parameters for caller
3667- func_validate_options_result=$func_run_hooks_result
3668- _G_rc_validate_options=:
3669- fi
3670+ func_run_hooks func_validate_options ${1+"$@"}
3671+ func_propagate_result func_run_hooks func_validate_options
3672
3673 # Bail if the options were screwed!
3674 $exit_cmd $EXIT_FAILURE
3675-
3676- $_G_rc_validate_options
3677 }
3678
3679
3680@@ -1916,8 +2067,8 @@ func_missing_arg ()
3681
3682 # func_split_equals STRING
3683 # ------------------------
3684-# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
3685-# splitting STRING at the '=' sign.
3686+# Set func_split_equals_lhs and func_split_equals_rhs shell variables
3687+# after splitting STRING at the '=' sign.
3688 test -z "$_G_HAVE_XSI_OPS" \
3689 && (eval 'x=a/b/c;
3690 test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
3691@@ -1932,8 +2083,9 @@ then
3692
3693 func_split_equals_lhs=${1%%=*}
3694 func_split_equals_rhs=${1#*=}
3695- test "x$func_split_equals_lhs" = "x$1" \
3696- && func_split_equals_rhs=
3697+ if test "x$func_split_equals_lhs" = "x$1"; then
3698+ func_split_equals_rhs=
3699+ fi
3700 }'
3701 else
3702 # ...otherwise fall back to using expr, which is often a shell builtin.
3703@@ -1943,7 +2095,7 @@ else
3704
3705 func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
3706 func_split_equals_rhs=
3707- test "x$func_split_equals_lhs" = "x$1" \
3708+ test "x$func_split_equals_lhs=" = "x$1" \
3709 || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
3710 }
3711 fi #func_split_equals
3712@@ -1969,7 +2121,7 @@ else
3713 {
3714 $debug_cmd
3715
3716- func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
3717+ func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'`
3718 func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
3719 }
3720 fi #func_split_short_opt
3721@@ -2011,31 +2163,44 @@ func_usage_message ()
3722 # func_version
3723 # ------------
3724 # Echo version message to standard output and exit.
3725+# The version message is extracted from the calling file's header
3726+# comments, with leading '# ' stripped:
3727+# 1. First display the progname and version
3728+# 2. Followed by the header comment line matching /^# Written by /
3729+# 3. Then a blank line followed by the first following line matching
3730+# /^# Copyright /
3731+# 4. Immediately followed by any lines between the previous matches,
3732+# except lines preceding the intervening completely blank line.
3733+# For example, see the header comments of this file.
3734 func_version ()
3735 {
3736 $debug_cmd
3737
3738 printf '%s\n' "$progname $scriptversion"
3739 $SED -n '
3740- /(C)/!b go
3741- :more
3742- /\./!{
3743- N
3744- s|\n# | |
3745- b more
3746- }
3747- :go
3748- /^# Written by /,/# warranty; / {
3749- s|^# ||
3750- s|^# *$||
3751- s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
3752- p
3753+ /^# Written by /!b
3754+ s|^# ||; p; n
3755+
3756+ :fwd2blnk
3757+ /./ {
3758+ n
3759+ b fwd2blnk
3760 }
3761- /^# Written by / {
3762- s|^# ||
3763- p
3764+ p; n
3765+
3766+ :holdwrnt
3767+ s|^# ||
3768+ s|^# *$||
3769+ /^Copyright /!{
3770+ /./H
3771+ n
3772+ b holdwrnt
3773 }
3774- /^warranty; /q' < "$progpath"
3775+
3776+ s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
3777+ G
3778+ s|\(\n\)\n*|\1|g
3779+ p; q' < "$progpath"
3780
3781 exit $?
3782 }
3783@@ -2045,12 +2210,12 @@ func_version ()
3784 # mode: shell-script
3785 # sh-indentation: 2
3786 # eval: (add-hook 'before-save-hook 'time-stamp)
3787-# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
3788+# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
3789 # time-stamp-time-zone: "UTC"
3790 # End:
3791
3792 # Set a version string.
3793-scriptversion='(GNU libtool) 2.4.6'
3794+scriptversion='(GNU libtool) 2.4.7'
3795
3796
3797 # func_echo ARG...
3798@@ -2141,12 +2306,12 @@ include the following information:
3799 compiler: $LTCC
3800 compiler flags: $LTCFLAGS
3801 linker: $LD (gnu? $with_gnu_ld)
3802- version: $progname $scriptversion Debian-2.4.6-15build2
3803+ version: $progname (GNU libtool) 2.4.7
3804 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
3805 autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
3806
3807 Report bugs to <bug-libtool@gnu.org>.
3808-GNU libtool home page: <http://www.gnu.org/s/libtool/>.
3809+GNU libtool home page: <http://www.gnu.org/software/libtool/>.
3810 General help using GNU software: <http://www.gnu.org/gethelp/>."
3811 exit 0
3812 }
3813@@ -2197,7 +2362,7 @@ fi
3814 # a configuration failure hint, and exit.
3815 func_fatal_configuration ()
3816 {
3817- func__fatal_error ${1+"$@"} \
3818+ func_fatal_error ${1+"$@"} \
3819 "See the $PACKAGE documentation for more information." \
3820 "Fatal configuration error."
3821 }
3822@@ -2375,11 +2540,9 @@ libtool_options_prep ()
3823
3824 if $_G_rc_lt_options_prep; then
3825 # Pass back the list of options.
3826- func_quote_for_eval ${1+"$@"}
3827- libtool_options_prep_result=$func_quote_for_eval_result
3828+ func_quote eval ${1+"$@"}
3829+ libtool_options_prep_result=$func_quote_result
3830 fi
3831-
3832- $_G_rc_lt_options_prep
3833 }
3834 func_add_hook func_options_prep libtool_options_prep
3835
3836@@ -2482,11 +2645,9 @@ libtool_parse_options ()
3837
3838 if $_G_rc_lt_parse_options; then
3839 # save modified positional parameters for caller
3840- func_quote_for_eval ${1+"$@"}
3841- libtool_parse_options_result=$func_quote_for_eval_result
3842+ func_quote eval ${1+"$@"}
3843+ libtool_parse_options_result=$func_quote_result
3844 fi
3845-
3846- $_G_rc_lt_parse_options
3847 }
3848 func_add_hook func_parse_options libtool_parse_options
3849
3850@@ -2543,8 +2704,8 @@ libtool_validate_options ()
3851 }
3852
3853 # Pass back the unparsed argument list
3854- func_quote_for_eval ${1+"$@"}
3855- libtool_validate_options_result=$func_quote_for_eval_result
3856+ func_quote eval ${1+"$@"}
3857+ libtool_validate_options_result=$func_quote_result
3858 }
3859 func_add_hook func_validate_options libtool_validate_options
3860
3861@@ -3510,8 +3671,8 @@ func_mode_compile ()
3862 esac
3863 done
3864
3865- func_quote_for_eval "$libobj"
3866- test "X$libobj" != "X$func_quote_for_eval_result" \
3867+ func_quote_arg pretty "$libobj"
3868+ test "X$libobj" != "X$func_quote_arg_result" \
3869 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
3870 && func_warning "libobj name '$libobj' may not contain shell special characters."
3871 func_dirname_and_basename "$obj" "/" ""
3872@@ -3584,8 +3745,8 @@ compiler."
3873
3874 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
3875 srcfile=$func_to_tool_file_result
3876- func_quote_for_eval "$srcfile"
3877- qsrcfile=$func_quote_for_eval_result
3878+ func_quote_arg pretty "$srcfile"
3879+ qsrcfile=$func_quote_arg_result
3880
3881 # Only build a PIC object if we are building libtool libraries.
3882 if test yes = "$build_libtool_libs"; then
3883@@ -3740,7 +3901,8 @@ This mode accepts the following additional options:
3884 -prefer-non-pic try to build non-PIC objects only
3885 -shared do not build a '.o' file suitable for static linking
3886 -static only build a '.o' file suitable for static linking
3887- -Wc,FLAG pass FLAG directly to the compiler
3888+ -Wc,FLAG
3889+ -Xcompiler FLAG pass FLAG directly to the compiler
3890
3891 COMPILE-COMMAND is a command to be used in creating a 'standard' object file
3892 from the given SOURCEFILE.
3893@@ -3846,6 +4008,8 @@ The following components of LINK-COMMAND are treated specially:
3894 -weak LIBNAME declare that the target provides the LIBNAME interface
3895 -Wc,FLAG
3896 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
3897+ -Wa,FLAG
3898+ -Xassembler FLAG pass linker-specific FLAG directly to the assembler
3899 -Wl,FLAG
3900 -Xlinker FLAG pass linker-specific FLAG directly to the linker
3901 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
3902@@ -4188,8 +4352,8 @@ func_mode_install ()
3903 case $nonopt in *shtool*) :;; *) false;; esac
3904 then
3905 # Aesthetically quote it.
3906- func_quote_for_eval "$nonopt"
3907- install_prog="$func_quote_for_eval_result "
3908+ func_quote_arg pretty "$nonopt"
3909+ install_prog="$func_quote_arg_result "
3910 arg=$1
3911 shift
3912 else
3913@@ -4199,8 +4363,8 @@ func_mode_install ()
3914
3915 # The real first argument should be the name of the installation program.
3916 # Aesthetically quote it.
3917- func_quote_for_eval "$arg"
3918- func_append install_prog "$func_quote_for_eval_result"
3919+ func_quote_arg pretty "$arg"
3920+ func_append install_prog "$func_quote_arg_result"
3921 install_shared_prog=$install_prog
3922 case " $install_prog " in
3923 *[\\\ /]cp\ *) install_cp=: ;;
3924@@ -4257,12 +4421,12 @@ func_mode_install ()
3925 esac
3926
3927 # Aesthetically quote the argument.
3928- func_quote_for_eval "$arg"
3929- func_append install_prog " $func_quote_for_eval_result"
3930+ func_quote_arg pretty "$arg"
3931+ func_append install_prog " $func_quote_arg_result"
3932 if test -n "$arg2"; then
3933- func_quote_for_eval "$arg2"
3934+ func_quote_arg pretty "$arg2"
3935 fi
3936- func_append install_shared_prog " $func_quote_for_eval_result"
3937+ func_append install_shared_prog " $func_quote_arg_result"
3938 done
3939
3940 test -z "$install_prog" && \
3941@@ -4273,8 +4437,8 @@ func_mode_install ()
3942
3943 if test -n "$install_override_mode" && $no_mode; then
3944 if $install_cp; then :; else
3945- func_quote_for_eval "$install_override_mode"
3946- func_append install_shared_prog " -m $func_quote_for_eval_result"
3947+ func_quote_arg pretty "$install_override_mode"
3948+ func_append install_shared_prog " -m $func_quote_arg_result"
3949 fi
3950 fi
3951
3952@@ -4570,8 +4734,8 @@ func_mode_install ()
3953 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
3954
3955 $opt_quiet || {
3956- func_quote_for_expand "$relink_command"
3957- eval "func_echo $func_quote_for_expand_result"
3958+ func_quote_arg expand,pretty "$relink_command"
3959+ eval "func_echo $func_quote_arg_result"
3960 }
3961 if eval "$relink_command"; then :
3962 else
3963@@ -5350,7 +5514,8 @@ else
3964 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3965 file=\"\$0\""
3966
3967- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
3968+ func_quote_arg pretty "$ECHO"
3969+ qECHO=$func_quote_arg_result
3970 $ECHO "\
3971
3972 # A function that is used when there is no print builtin or printf.
3973@@ -5360,7 +5525,7 @@ func_fallback_echo ()
3974 \$1
3975 _LTECHO_EOF'
3976 }
3977- ECHO=\"$qECHO\"
3978+ ECHO=$qECHO
3979 fi
3980
3981 # Very basic option parsing. These options are (a) specific to
3982@@ -6703,9 +6868,9 @@ func_mode_link ()
3983 while test "$#" -gt 0; do
3984 arg=$1
3985 shift
3986- func_quote_for_eval "$arg"
3987- qarg=$func_quote_for_eval_unquoted_result
3988- func_append libtool_args " $func_quote_for_eval_result"
3989+ func_quote_arg pretty,unquoted "$arg"
3990+ qarg=$func_quote_arg_unquoted_result
3991+ func_append libtool_args " $func_quote_arg_result"
3992
3993 # If the previous option needs an argument, assign it.
3994 if test -n "$prev"; then
3995@@ -6941,6 +7106,13 @@ func_mode_link ()
3996 prev=
3997 continue
3998 ;;
3999+ xassembler)
4000+ func_append compiler_flags " -Xassembler $qarg"
4001+ prev=
4002+ func_append compile_command " -Xassembler $qarg"
4003+ func_append finalize_command " -Xassembler $qarg"
4004+ continue
4005+ ;;
4006 xcclinker)
4007 func_append linker_flags " $qarg"
4008 func_append compiler_flags " $qarg"
4009@@ -7111,7 +7283,7 @@ func_mode_link ()
4010 # These systems don't actually have a C library (as such)
4011 test X-lc = "X$arg" && continue
4012 ;;
4013- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
4014+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
4015 # Do not include libc due to us having libc/libc_r.
4016 test X-lc = "X$arg" && continue
4017 ;;
4018@@ -7131,7 +7303,7 @@ func_mode_link ()
4019 esac
4020 elif test X-lc_r = "X$arg"; then
4021 case $host in
4022- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
4023+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
4024 # Do not include libc_r directly, use -pthread flag.
4025 continue
4026 ;;
4027@@ -7161,8 +7333,20 @@ func_mode_link ()
4028 prev=xcompiler
4029 continue
4030 ;;
4031-
4032- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
4033+ # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199.
4034+ -pthread)
4035+ case $host in
4036+ *solaris2*) ;;
4037+ *)
4038+ case "$new_inherited_linker_flags " in
4039+ *" $arg "*) ;;
4040+ * ) func_append new_inherited_linker_flags " $arg" ;;
4041+ esac
4042+ ;;
4043+ esac
4044+ continue
4045+ ;;
4046+ -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
4047 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
4048 func_append compiler_flags " $arg"
4049 func_append compile_command " $arg"
4050@@ -7303,9 +7487,9 @@ func_mode_link ()
4051 save_ifs=$IFS; IFS=,
4052 for flag in $args; do
4053 IFS=$save_ifs
4054- func_quote_for_eval "$flag"
4055- func_append arg " $func_quote_for_eval_result"
4056- func_append compiler_flags " $func_quote_for_eval_result"
4057+ func_quote_arg pretty "$flag"
4058+ func_append arg " $func_quote_arg_result"
4059+ func_append compiler_flags " $func_quote_arg_result"
4060 done
4061 IFS=$save_ifs
4062 func_stripname ' ' '' "$arg"
4063@@ -7319,16 +7503,21 @@ func_mode_link ()
4064 save_ifs=$IFS; IFS=,
4065 for flag in $args; do
4066 IFS=$save_ifs
4067- func_quote_for_eval "$flag"
4068- func_append arg " $wl$func_quote_for_eval_result"
4069- func_append compiler_flags " $wl$func_quote_for_eval_result"
4070- func_append linker_flags " $func_quote_for_eval_result"
4071+ func_quote_arg pretty "$flag"
4072+ func_append arg " $wl$func_quote_arg_result"
4073+ func_append compiler_flags " $wl$func_quote_arg_result"
4074+ func_append linker_flags " $func_quote_arg_result"
4075 done
4076 IFS=$save_ifs
4077 func_stripname ' ' '' "$arg"
4078 arg=$func_stripname_result
4079 ;;
4080
4081+ -Xassembler)
4082+ prev=xassembler
4083+ continue
4084+ ;;
4085+
4086 -Xcompiler)
4087 prev=xcompiler
4088 continue
4089@@ -7346,8 +7535,8 @@ func_mode_link ()
4090
4091 # -msg_* for osf cc
4092 -msg_*)
4093- func_quote_for_eval "$arg"
4094- arg=$func_quote_for_eval_result
4095+ func_quote_arg pretty "$arg"
4096+ arg=$func_quote_arg_result
4097 ;;
4098
4099 # Flags to be passed through unchanged, with rationale:
4100@@ -7368,14 +7557,13 @@ func_mode_link ()
4101 # -stdlib=* select c++ std lib with clang
4102 # -fsanitize=* Clang/GCC memory and address sanitizer
4103 # -fuse-ld=* Linker select flags for GCC
4104- # -static-* direct GCC to link specific libraries statically
4105- # -fcilkplus Cilk Plus language extension features for C/C++
4106+ # -Wa,* Pass flags directly to the assembler
4107 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
4108 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
4109 -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
4110- -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus)
4111- func_quote_for_eval "$arg"
4112- arg=$func_quote_for_eval_result
4113+ -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*)
4114+ func_quote_arg pretty "$arg"
4115+ arg=$func_quote_arg_result
4116 func_append compile_command " $arg"
4117 func_append finalize_command " $arg"
4118 func_append compiler_flags " $arg"
4119@@ -7396,15 +7584,15 @@ func_mode_link ()
4120 continue
4121 else
4122 # Otherwise treat like 'Some other compiler flag' below
4123- func_quote_for_eval "$arg"
4124- arg=$func_quote_for_eval_result
4125+ func_quote_arg pretty "$arg"
4126+ arg=$func_quote_arg_result
4127 fi
4128 ;;
4129
4130 # Some other compiler flag.
4131 -* | +*)
4132- func_quote_for_eval "$arg"
4133- arg=$func_quote_for_eval_result
4134+ func_quote_arg pretty "$arg"
4135+ arg=$func_quote_arg_result
4136 ;;
4137
4138 *.$objext)
4139@@ -7524,8 +7712,8 @@ func_mode_link ()
4140 *)
4141 # Unknown arguments in both finalize_command and compile_command need
4142 # to be aesthetically quoted because they are evaled later.
4143- func_quote_for_eval "$arg"
4144- arg=$func_quote_for_eval_result
4145+ func_quote_arg pretty "$arg"
4146+ arg=$func_quote_arg_result
4147 ;;
4148 esac # arg
4149
4150@@ -7666,10 +7854,7 @@ func_mode_link ()
4151 case $pass in
4152 dlopen) libs=$dlfiles ;;
4153 dlpreopen) libs=$dlprefiles ;;
4154- link)
4155- libs="$deplibs %DEPLIBS%"
4156- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
4157- ;;
4158+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
4159 esac
4160 fi
4161 if test lib,dlpreopen = "$linkmode,$pass"; then
4162@@ -7988,19 +8173,19 @@ func_mode_link ()
4163 # It is a libtool convenience library, so add in its objects.
4164 func_append convenience " $ladir/$objdir/$old_library"
4165 func_append old_convenience " $ladir/$objdir/$old_library"
4166- tmp_libs=
4167- for deplib in $dependency_libs; do
4168- deplibs="$deplib $deplibs"
4169- if $opt_preserve_dup_deps; then
4170- case "$tmp_libs " in
4171- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
4172- esac
4173- fi
4174- func_append tmp_libs " $deplib"
4175- done
4176 elif test prog != "$linkmode" && test lib != "$linkmode"; then
4177 func_fatal_error "'$lib' is not a convenience library"
4178 fi
4179+ tmp_libs=
4180+ for deplib in $dependency_libs; do
4181+ deplibs="$deplib $deplibs"
4182+ if $opt_preserve_dup_deps; then
4183+ case "$tmp_libs " in
4184+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
4185+ esac
4186+ fi
4187+ func_append tmp_libs " $deplib"
4188+ done
4189 continue
4190 fi # $pass = conv
4191
4192@@ -8733,7 +8918,7 @@ func_mode_link ()
4193 test CXX = "$tagname" && {
4194 case $host_os in
4195 linux*)
4196- case `$CC -V 2>&1 | sed 5q` in
4197+ case `$CC -V 2>&1 | $SED 5q` in
4198 *Sun\ C*) # Sun C++ 5.9
4199 func_suncc_cstd_abi
4200
4201@@ -8906,7 +9091,7 @@ func_mode_link ()
4202 #
4203 case $version_type in
4204 # correct linux to gnu/linux during the next big refactor
4205- darwin|freebsd-elf|linux|osf|windows|none)
4206+ darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none)
4207 func_arith $number_major + $number_minor
4208 current=$func_arith_result
4209 age=$number_minor
4210@@ -8924,9 +9109,6 @@ func_mode_link ()
4211 revision=$number_minor
4212 lt_irix_increment=no
4213 ;;
4214- *)
4215- func_fatal_configuration "$modename: unknown library version type '$version_type'"
4216- ;;
4217 esac
4218 ;;
4219 no)
4220@@ -9000,7 +9182,7 @@ func_mode_link ()
4221 versuffix=.$current.$revision
4222 ;;
4223
4224- freebsd-elf)
4225+ freebsd-elf | midnightbsd-elf)
4226 func_arith $current - $age
4227 major=.$func_arith_result
4228 versuffix=$major.$age.$revision
4229@@ -9226,7 +9408,7 @@ func_mode_link ()
4230 *-*-netbsd*)
4231 # Don't link with libc until the a.out ld.so is fixed.
4232 ;;
4233- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
4234+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
4235 # Do not include libc due to us having libc/libc_r.
4236 ;;
4237 *-*-sco3.2v5* | *-*-sco5v6*)
4238@@ -10037,8 +10219,8 @@ EOF
4239 for cmd in $concat_cmds; do
4240 IFS=$save_ifs
4241 $opt_quiet || {
4242- func_quote_for_expand "$cmd"
4243- eval "func_echo $func_quote_for_expand_result"
4244+ func_quote_arg expand,pretty "$cmd"
4245+ eval "func_echo $func_quote_arg_result"
4246 }
4247 $opt_dry_run || eval "$cmd" || {
4248 lt_exit=$?
4249@@ -10131,8 +10313,8 @@ EOF
4250 eval cmd=\"$cmd\"
4251 IFS=$save_ifs
4252 $opt_quiet || {
4253- func_quote_for_expand "$cmd"
4254- eval "func_echo $func_quote_for_expand_result"
4255+ func_quote_arg expand,pretty "$cmd"
4256+ eval "func_echo $func_quote_arg_result"
4257 }
4258 $opt_dry_run || eval "$cmd" || {
4259 lt_exit=$?
4260@@ -10606,12 +10788,13 @@ EOF
4261 elif eval var_value=\$$var; test -z "$var_value"; then
4262 relink_command="$var=; export $var; $relink_command"
4263 else
4264- func_quote_for_eval "$var_value"
4265- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
4266+ func_quote_arg pretty "$var_value"
4267+ relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
4268 fi
4269 done
4270- relink_command="(cd `pwd`; $relink_command)"
4271- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
4272+ func_quote eval cd "`pwd`"
4273+ func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)"
4274+ relink_command=$func_quote_arg_unquoted_result
4275 fi
4276
4277 # Only actually do things if not in dry run mode.
4278@@ -10851,13 +11034,15 @@ EOF
4279 elif eval var_value=\$$var; test -z "$var_value"; then
4280 relink_command="$var=; export $var; $relink_command"
4281 else
4282- func_quote_for_eval "$var_value"
4283- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
4284+ func_quote_arg pretty,unquoted "$var_value"
4285+ relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
4286 fi
4287 done
4288 # Quote the link command for shipping.
4289- relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
4290- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
4291+ func_quote eval cd "`pwd`"
4292+ relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
4293+ func_quote_arg pretty,unquoted "$relink_command"
4294+ relink_command=$func_quote_arg_unquoted_result
4295 if test yes = "$hardcode_automatic"; then
4296 relink_command=
4297 fi
4298diff --git a/m4/libtool.m4 b/m4/libtool.m4
4299index c4c0294..79a2451 100644
4300--- a/m4/libtool.m4
4301+++ b/m4/libtool.m4
4302@@ -1,6 +1,7 @@
4303 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
4304 #
4305-# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
4306+# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software
4307+# Foundation, Inc.
4308 # Written by Gordon Matzigkeit, 1996
4309 #
4310 # This file is free software; the Free Software Foundation gives
4311@@ -31,7 +32,7 @@ m4_define([_LT_COPYING], [dnl
4312 # along with this program. If not, see <http://www.gnu.org/licenses/>.
4313 ])
4314
4315-# serial 58 LT_INIT
4316+# serial 59 LT_INIT
4317
4318
4319 # LT_PREREQ(VERSION)
4320@@ -181,6 +182,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
4321 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
4322 m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
4323 m4_require([_LT_CMD_RELOAD])dnl
4324+m4_require([_LT_DECL_FILECMD])dnl
4325 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
4326 m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
4327 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
4328@@ -219,8 +221,8 @@ esac
4329 ofile=libtool
4330 can_build_shared=yes
4331
4332-# All known linkers require a '.a' archive for static linking (except MSVC,
4333-# which needs '.lib').
4334+# All known linkers require a '.a' archive for static linking (except MSVC and
4335+# ICC, which need '.lib').
4336 libext=a
4337
4338 with_gnu_ld=$lt_cv_prog_gnu_ld
4339@@ -728,6 +730,7 @@ _LT_CONFIG_SAVE_COMMANDS([
4340 cat <<_LT_EOF >> "$cfgfile"
4341 #! $SHELL
4342 # Generated automatically by $as_me ($PACKAGE) $VERSION
4343+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
4344 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
4345
4346 # Provide generalized library-building support services.
4347@@ -777,7 +780,7 @@ _LT_EOF
4348 # if finds mixed CR/LF and LF-only lines. Since sed operates in
4349 # text mode, it properly converts lines to CR/LF. This bash problem
4350 # is reportedly fixed, but why not run on old versions too?
4351- sed '$q' "$ltmain" >> "$cfgfile" \
4352+ $SED '$q' "$ltmain" >> "$cfgfile" \
4353 || (rm -f "$cfgfile"; exit 1)
4354
4355 mv -f "$cfgfile" "$ofile" ||
4356@@ -1041,8 +1044,8 @@ int forced_loaded() { return 2;}
4357 _LT_EOF
4358 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
4359 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
4360- echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
4361- $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
4362+ echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
4363+ $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
4364 echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
4365 $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
4366 cat > conftest.c << _LT_EOF
4367@@ -1066,17 +1069,12 @@ _LT_EOF
4368 _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
4369 darwin1.*)
4370 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
4371- darwin*) # darwin 5.x on
4372- # if running on 10.5 or later, the deployment target defaults
4373- # to the OS version, if on x86, and 10.4, the deployment
4374- # target defaults to 10.4. Don't you love it?
4375- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
4376- 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*)
4377- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
4378- 10.[[012]][[,.]]*)
4379- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
4380- 10.*|11.*)
4381- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
4382+ darwin*)
4383+ case $MACOSX_DEPLOYMENT_TARGET,$host in
4384+ 10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
4385+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
4386+ *)
4387+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
4388 esac
4389 ;;
4390 esac
4391@@ -1125,12 +1123,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
4392 output_verbose_link_cmd=func_echo_all
4393 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
4394 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
4395- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
4396- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
4397+ _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
4398+ _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
4399 m4_if([$1], [CXX],
4400 [ if test yes != "$lt_cv_apple_cc_single_mod"; then
4401 _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
4402- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
4403+ _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
4404 fi
4405 ],[])
4406 else
4407@@ -1244,7 +1242,8 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
4408 # _LT_WITH_SYSROOT
4409 # ----------------
4410 AC_DEFUN([_LT_WITH_SYSROOT],
4411-[AC_MSG_CHECKING([for sysroot])
4412+[m4_require([_LT_DECL_SED])dnl
4413+AC_MSG_CHECKING([for sysroot])
4414 AC_ARG_WITH([sysroot],
4415 [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
4416 [Search for dependent libraries within DIR (or the compiler's sysroot
4417@@ -1261,7 +1260,7 @@ case $with_sysroot in #(
4418 fi
4419 ;; #(
4420 /*)
4421- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
4422+ lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
4423 ;; #(
4424 no|'')
4425 ;; #(
4426@@ -1291,7 +1290,7 @@ ia64-*-hpux*)
4427 # options accordingly.
4428 echo 'int i;' > conftest.$ac_ext
4429 if AC_TRY_EVAL(ac_compile); then
4430- case `/usr/bin/file conftest.$ac_objext` in
4431+ case `$FILECMD conftest.$ac_objext` in
4432 *ELF-32*)
4433 HPUX_IA64_MODE=32
4434 ;;
4435@@ -1308,7 +1307,7 @@ ia64-*-hpux*)
4436 echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
4437 if AC_TRY_EVAL(ac_compile); then
4438 if test yes = "$lt_cv_prog_gnu_ld"; then
4439- case `/usr/bin/file conftest.$ac_objext` in
4440+ case `$FILECMD conftest.$ac_objext` in
4441 *32-bit*)
4442 LD="${LD-ld} -melf32bsmip"
4443 ;;
4444@@ -1320,7 +1319,7 @@ ia64-*-hpux*)
4445 ;;
4446 esac
4447 else
4448- case `/usr/bin/file conftest.$ac_objext` in
4449+ case `$FILECMD conftest.$ac_objext` in
4450 *32-bit*)
4451 LD="${LD-ld} -32"
4452 ;;
4453@@ -1342,7 +1341,7 @@ mips64*-*linux*)
4454 echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
4455 if AC_TRY_EVAL(ac_compile); then
4456 emul=elf
4457- case `/usr/bin/file conftest.$ac_objext` in
4458+ case `$FILECMD conftest.$ac_objext` in
4459 *32-bit*)
4460 emul="${emul}32"
4461 ;;
4462@@ -1350,7 +1349,7 @@ mips64*-*linux*)
4463 emul="${emul}64"
4464 ;;
4465 esac
4466- case `/usr/bin/file conftest.$ac_objext` in
4467+ case `$FILECMD conftest.$ac_objext` in
4468 *MSB*)
4469 emul="${emul}btsmip"
4470 ;;
4471@@ -1358,7 +1357,7 @@ mips64*-*linux*)
4472 emul="${emul}ltsmip"
4473 ;;
4474 esac
4475- case `/usr/bin/file conftest.$ac_objext` in
4476+ case `$FILECMD conftest.$ac_objext` in
4477 *N32*)
4478 emul="${emul}n32"
4479 ;;
4480@@ -1378,14 +1377,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
4481 # not appear in the list.
4482 echo 'int i;' > conftest.$ac_ext
4483 if AC_TRY_EVAL(ac_compile); then
4484- case `/usr/bin/file conftest.o` in
4485+ case `$FILECMD conftest.o` in
4486 *32-bit*)
4487 case $host in
4488 x86_64-*kfreebsd*-gnu)
4489 LD="${LD-ld} -m elf_i386_fbsd"
4490 ;;
4491 x86_64-*linux*)
4492- case `/usr/bin/file conftest.o` in
4493+ case `$FILECMD conftest.o` in
4494 *x86-64*)
4495 LD="${LD-ld} -m elf32_x86_64"
4496 ;;
4497@@ -1453,7 +1452,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
4498 # options accordingly.
4499 echo 'int i;' > conftest.$ac_ext
4500 if AC_TRY_EVAL(ac_compile); then
4501- case `/usr/bin/file conftest.o` in
4502+ case `$FILECMD conftest.o` in
4503 *64-bit*)
4504 case $lt_cv_prog_gnu_ld in
4505 yes*)
4506@@ -1492,9 +1491,22 @@ need_locks=$enable_libtool_lock
4507 m4_defun([_LT_PROG_AR],
4508 [AC_CHECK_TOOLS(AR, [ar], false)
4509 : ${AR=ar}
4510-: ${AR_FLAGS=cr}
4511 _LT_DECL([], [AR], [1], [The archiver])
4512-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
4513+
4514+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
4515+# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
4516+# higher priority because thats what people were doing historically (setting
4517+# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
4518+# variable obsoleted/removed.
4519+
4520+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
4521+lt_ar_flags=$AR_FLAGS
4522+_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
4523+
4524+# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
4525+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
4526+_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
4527+ [Flags to create an archive])
4528
4529 AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
4530 [lt_cv_ar_at_file=no
4531@@ -1713,7 +1725,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
4532 lt_cv_sys_max_cmd_len=8192;
4533 ;;
4534
4535- bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
4536+ bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
4537 # This has been around since 386BSD, at least. Likely further.
4538 if test -x /sbin/sysctl; then
4539 lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
4540@@ -1756,7 +1768,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
4541 sysv5* | sco5v6* | sysv4.2uw2*)
4542 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
4543 if test -n "$kargmax"; then
4544- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
4545+ lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'`
4546 else
4547 lt_cv_sys_max_cmd_len=32768
4548 fi
4549@@ -2206,26 +2218,35 @@ m4_defun([_LT_CMD_STRIPLIB],
4550 striplib=
4551 old_striplib=
4552 AC_MSG_CHECKING([whether stripping libraries is possible])
4553-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
4554- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
4555- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
4556- AC_MSG_RESULT([yes])
4557+if test -z "$STRIP"; then
4558+ AC_MSG_RESULT([no])
4559 else
4560-# FIXME - insert some real tests, host_os isn't really good enough
4561- case $host_os in
4562- darwin*)
4563- if test -n "$STRIP"; then
4564+ if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
4565+ old_striplib="$STRIP --strip-debug"
4566+ striplib="$STRIP --strip-unneeded"
4567+ AC_MSG_RESULT([yes])
4568+ else
4569+ case $host_os in
4570+ darwin*)
4571+ # FIXME - insert some real tests, host_os isn't really good enough
4572 striplib="$STRIP -x"
4573 old_striplib="$STRIP -S"
4574 AC_MSG_RESULT([yes])
4575- else
4576+ ;;
4577+ freebsd*)
4578+ if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
4579+ old_striplib="$STRIP --strip-debug"
4580+ striplib="$STRIP --strip-unneeded"
4581+ AC_MSG_RESULT([yes])
4582+ else
4583+ AC_MSG_RESULT([no])
4584+ fi
4585+ ;;
4586+ *)
4587 AC_MSG_RESULT([no])
4588- fi
4589- ;;
4590- *)
4591- AC_MSG_RESULT([no])
4592- ;;
4593- esac
4594+ ;;
4595+ esac
4596+ fi
4597 fi
4598 _LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
4599 _LT_DECL([], [striplib], [1])
4600@@ -2548,7 +2569,7 @@ cygwin* | mingw* | pw32* | cegcc*)
4601 case $host_os in
4602 cygwin*)
4603 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
4604- soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
4605+ soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
4606 m4_if([$1], [],[
4607 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
4608 ;;
4609@@ -2558,14 +2579,14 @@ m4_if([$1], [],[
4610 ;;
4611 pw32*)
4612 # pw32 DLLs use 'pw' prefix rather than 'lib'
4613- library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
4614+ library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
4615 ;;
4616 esac
4617 dynamic_linker='Win32 ld.exe'
4618 ;;
4619
4620- *,cl*)
4621- # Native MSVC
4622+ *,cl* | *,icl*)
4623+ # Native MSVC or ICC
4624 libname_spec='$name'
4625 soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
4626 library_names_spec='$libname.dll.lib'
4627@@ -2584,7 +2605,7 @@ m4_if([$1], [],[
4628 done
4629 IFS=$lt_save_ifs
4630 # Convert to MSYS style.
4631- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
4632+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
4633 ;;
4634 cygwin*)
4635 # Convert to unix form, then to dos form, then back to unix form
4636@@ -2621,7 +2642,7 @@ m4_if([$1], [],[
4637 ;;
4638
4639 *)
4640- # Assume MSVC wrapper
4641+ # Assume MSVC and ICC wrapper
4642 library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
4643 dynamic_linker='Win32 ld.exe'
4644 ;;
4645@@ -2654,7 +2675,7 @@ dgux*)
4646 shlibpath_var=LD_LIBRARY_PATH
4647 ;;
4648
4649-freebsd* | dragonfly*)
4650+freebsd* | dragonfly* | midnightbsd*)
4651 # DragonFly does not have aout. When/if they implement a new
4652 # versioning mechanism, adjust this.
4653 if test -x /usr/bin/objformat; then
4654@@ -2886,18 +2907,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
4655 dynamic_linker='GNU/Linux ld.so'
4656 ;;
4657
4658-netbsdelf*-gnu)
4659- version_type=linux
4660- need_lib_prefix=no
4661- need_version=no
4662- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
4663- soname_spec='${libname}${release}${shared_ext}$major'
4664- shlibpath_var=LD_LIBRARY_PATH
4665- shlibpath_overrides_runpath=no
4666- hardcode_into_libs=yes
4667- dynamic_linker='NetBSD ld.elf_so'
4668- ;;
4669-
4670 netbsd*)
4671 version_type=sunos
4672 need_lib_prefix=no
4673@@ -3465,7 +3474,7 @@ beos*)
4674
4675 bsdi[[45]]*)
4676 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
4677- lt_cv_file_magic_cmd='/usr/bin/file -L'
4678+ lt_cv_file_magic_cmd='$FILECMD -L'
4679 lt_cv_file_magic_test_file=/shlib/libc.so
4680 ;;
4681
4682@@ -3499,14 +3508,14 @@ darwin* | rhapsody*)
4683 lt_cv_deplibs_check_method=pass_all
4684 ;;
4685
4686-freebsd* | dragonfly*)
4687+freebsd* | dragonfly* | midnightbsd*)
4688 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
4689 case $host_cpu in
4690 i*86 )
4691 # Not sure whether the presence of OpenBSD here was a mistake.
4692 # Let's accept both of them until this is cleared up.
4693 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
4694- lt_cv_file_magic_cmd=/usr/bin/file
4695+ lt_cv_file_magic_cmd=$FILECMD
4696 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
4697 ;;
4698 esac
4699@@ -3520,7 +3529,7 @@ haiku*)
4700 ;;
4701
4702 hpux10.20* | hpux11*)
4703- lt_cv_file_magic_cmd=/usr/bin/file
4704+ lt_cv_file_magic_cmd=$FILECMD
4705 case $host_cpu in
4706 ia64*)
4707 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
4708@@ -3557,7 +3566,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
4709 lt_cv_deplibs_check_method=pass_all
4710 ;;
4711
4712-netbsd* | netbsdelf*-gnu)
4713+netbsd*)
4714 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
4715 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
4716 else
4717@@ -3567,7 +3576,7 @@ netbsd* | netbsdelf*-gnu)
4718
4719 newos6*)
4720 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
4721- lt_cv_file_magic_cmd=/usr/bin/file
4722+ lt_cv_file_magic_cmd=$FILECMD
4723 lt_cv_file_magic_test_file=/usr/lib/libnls.so
4724 ;;
4725
4726@@ -3694,13 +3703,13 @@ else
4727 mingw*) lt_bad_file=conftest.nm/nofile ;;
4728 *) lt_bad_file=/dev/null ;;
4729 esac
4730- case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
4731+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
4732 *$lt_bad_file* | *'Invalid file or object type'*)
4733 lt_cv_path_NM="$tmp_nm -B"
4734 break 2
4735 ;;
4736 *)
4737- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
4738+ case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
4739 */dev/null*)
4740 lt_cv_path_NM="$tmp_nm -p"
4741 break 2
4742@@ -3726,7 +3735,7 @@ else
4743 # Let the user override the test.
4744 else
4745 AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
4746- case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
4747+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
4748 *COFF*)
4749 DUMPBIN="$DUMPBIN -symbols -headers"
4750 ;;
4751@@ -3966,7 +3975,7 @@ esac
4752
4753 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
4754 # Gets list of data symbols to import.
4755- lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
4756+ lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
4757 # Adjust the below global symbol transforms to fixup imported variables.
4758 lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
4759 lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
4760@@ -3984,20 +3993,20 @@ fi
4761 # Transform an extracted symbol line into a proper C declaration.
4762 # Some systems (esp. on ia64) link data and code symbols differently,
4763 # so use this general approach.
4764-lt_cv_sys_global_symbol_to_cdecl="sed -n"\
4765+lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
4766 $lt_cdecl_hook\
4767 " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
4768 " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
4769
4770 # Transform an extracted symbol line into symbol name and symbol address
4771-lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
4772+lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
4773 $lt_c_name_hook\
4774 " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
4775 " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
4776
4777 # Transform an extracted symbol line into symbol name with lib prefix and
4778 # symbol address.
4779-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
4780+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
4781 $lt_c_name_lib_hook\
4782 " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
4783 " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
4784@@ -4021,7 +4030,7 @@ for ac_symprfx in "" "_"; do
4785 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
4786 # Fake it for dumpbin and say T for any non-static function,
4787 # D for any global variable and I for any imported variable.
4788- # Also find C++ and __fastcall symbols from MSVC++,
4789+ # Also find C++ and __fastcall symbols from MSVC++ or ICC,
4790 # which start with @ or ?.
4791 lt_cv_sys_global_symbol_pipe="$AWK ['"\
4792 " {last_section=section; section=\$ 3};"\
4793@@ -4039,9 +4048,9 @@ for ac_symprfx in "" "_"; do
4794 " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
4795 " ' prfx=^$ac_symprfx]"
4796 else
4797- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
4798+ lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
4799 fi
4800- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
4801+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
4802
4803 # Check to see that the pipe works correctly.
4804 pipe_works=no
4805@@ -4063,8 +4072,7 @@ _LT_EOF
4806 if AC_TRY_EVAL(ac_compile); then
4807 # Now try to grab the symbols.
4808 nlist=conftest.nm
4809- $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
4810- if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
4811+ if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
4812 # Try sorting and uniquifying the output.
4813 if sort "$nlist" | uniq > "$nlist"T; then
4814 mv -f "$nlist"T "$nlist"
4815@@ -4329,7 +4337,7 @@ m4_if([$1], [CXX], [
4816 ;;
4817 esac
4818 ;;
4819- freebsd* | dragonfly*)
4820+ freebsd* | dragonfly* | midnightbsd*)
4821 # FreeBSD uses GNU C++
4822 ;;
4823 hpux9* | hpux10* | hpux11*)
4824@@ -4412,7 +4420,7 @@ m4_if([$1], [CXX], [
4825 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4826 ;;
4827 *)
4828- case `$CC -V 2>&1 | sed 5q` in
4829+ case `$CC -V 2>&1 | $SED 5q` in
4830 *Sun\ C*)
4831 # Sun C++ 5.9
4832 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4833@@ -4436,7 +4444,7 @@ m4_if([$1], [CXX], [
4834 ;;
4835 esac
4836 ;;
4837- netbsd* | netbsdelf*-gnu)
4838+ netbsd*)
4839 ;;
4840 *qnx* | *nto*)
4841 # QNX uses GNU C++, but need to define -shared option too, otherwise
4842@@ -4704,12 +4712,6 @@ m4_if([$1], [CXX], [
4843 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4844 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4845 ;;
4846- # flang / f18. f95 an alias for gfortran or flang on Debian
4847- flang* | f18* | f95*)
4848- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4849- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4850- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4851- ;;
4852 # icc used to be incompatible with GCC.
4853 # ICC 10 doesn't accept -KPIC any more.
4854 icc* | ifort*)
4855@@ -4754,7 +4756,7 @@ m4_if([$1], [CXX], [
4856 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4857 ;;
4858 *)
4859- case `$CC -V 2>&1 | sed 5q` in
4860+ case `$CC -V 2>&1 | $SED 5q` in
4861 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
4862 # Sun Fortran 8.3 passes all unrecognized flags to the linker
4863 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4864@@ -4937,7 +4939,7 @@ m4_if([$1], [CXX], [
4865 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4866 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
4867 else
4868- _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
4869+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
4870 fi
4871 ;;
4872 pw32*)
4873@@ -4945,7 +4947,7 @@ m4_if([$1], [CXX], [
4874 ;;
4875 cygwin* | mingw* | cegcc*)
4876 case $cc_basename in
4877- cl*)
4878+ cl* | icl*)
4879 _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
4880 ;;
4881 *)
4882@@ -4954,9 +4956,6 @@ m4_if([$1], [CXX], [
4883 ;;
4884 esac
4885 ;;
4886- linux* | k*bsd*-gnu | gnu*)
4887- _LT_TAGVAR(link_all_deplibs, $1)=no
4888- ;;
4889 *)
4890 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4891 ;;
4892@@ -5005,23 +5004,20 @@ dnl Note also adjust exclude_expsyms for C++ above.
4893
4894 case $host_os in
4895 cygwin* | mingw* | pw32* | cegcc*)
4896- # FIXME: the MSVC++ port hasn't been tested in a loooong time
4897+ # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
4898 # When not using gcc, we currently assume that we are using
4899- # Microsoft Visual C++.
4900+ # Microsoft Visual C++ or Intel C++ Compiler.
4901 if test yes != "$GCC"; then
4902 with_gnu_ld=no
4903 fi
4904 ;;
4905 interix*)
4906- # we just hope/assume this is gcc and not c89 (= MSVC++)
4907+ # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
4908 with_gnu_ld=yes
4909 ;;
4910 openbsd* | bitrig*)
4911 with_gnu_ld=no
4912 ;;
4913- linux* | k*bsd*-gnu | gnu*)
4914- _LT_TAGVAR(link_all_deplibs, $1)=no
4915- ;;
4916 esac
4917
4918 _LT_TAGVAR(ld_shlibs, $1)=yes
4919@@ -5068,7 +5064,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
4920 _LT_TAGVAR(whole_archive_flag_spec, $1)=
4921 fi
4922 supports_anon_versioning=no
4923- case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
4924+ case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
4925 *GNU\ gold*) supports_anon_versioning=yes ;;
4926 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
4927 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
4928@@ -5180,6 +5176,7 @@ _LT_EOF
4929 emximp -o $lib $output_objdir/$libname.def'
4930 _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
4931 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
4932+ _LT_TAGVAR(file_list_spec, $1)='@'
4933 ;;
4934
4935 interix[[3-9]]*)
4936@@ -5194,7 +5191,7 @@ _LT_EOF
4937 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
4938 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
4939 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
4940- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
4941+ _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
4942 ;;
4943
4944 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
4945@@ -5237,7 +5234,7 @@ _LT_EOF
4946 _LT_TAGVAR(compiler_needs_object, $1)=yes
4947 ;;
4948 esac
4949- case `$CC -V 2>&1 | sed 5q` in
4950+ case `$CC -V 2>&1 | $SED 5q` in
4951 *Sun\ C*) # Sun C 5.9
4952 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
4953 _LT_TAGVAR(compiler_needs_object, $1)=yes
4954@@ -5249,7 +5246,7 @@ _LT_EOF
4955
4956 if test yes = "$supports_anon_versioning"; then
4957 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
4958- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
4959+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
4960 echo "local: *; };" >> $output_objdir/$libname.ver~
4961 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
4962 fi
4963@@ -5265,7 +5262,7 @@ _LT_EOF
4964 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
4965 if test yes = "$supports_anon_versioning"; then
4966 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
4967- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
4968+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
4969 echo "local: *; };" >> $output_objdir/$libname.ver~
4970 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
4971 fi
4972@@ -5276,7 +5273,7 @@ _LT_EOF
4973 fi
4974 ;;
4975
4976- netbsd* | netbsdelf*-gnu)
4977+ netbsd*)
4978 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
4979 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
4980 wlarc=
4981@@ -5397,7 +5394,7 @@ _LT_EOF
4982 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4983 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
4984 else
4985- _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
4986+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
4987 fi
4988 aix_use_runtimelinking=no
4989
4990@@ -5580,12 +5577,12 @@ _LT_EOF
4991
4992 cygwin* | mingw* | pw32* | cegcc*)
4993 # When not using gcc, we currently assume that we are using
4994- # Microsoft Visual C++.
4995+ # Microsoft Visual C++ or Intel C++ Compiler.
4996 # hardcode_libdir_flag_spec is actually meaningless, as there is
4997 # no search path for DLLs.
4998 case $cc_basename in
4999- cl*)
5000- # Native MSVC
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches