File openconnect.spec of Package openconnect

#
# spec file for package openconnect
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define libname libopenconnect5
Name:           openconnect
Version:        9.12
Release:        0
Summary:        Client for Cisco AnyConnect VPN
License:        LGPL-2.1-or-later
Group:          Productivity/Networking/Security
URL:            http://www.infradead.org/openconnect.html
#Git-Web:       https://gitlab.com/openconnect/openconnect
Source0:        ftp://ftp.infradead.org/pub/%{name}/%{name}-%{version}.tar.gz
Source1:        vpnc-script
Source98:       ftp://ftp.infradead.org/pub/%{name}/%{name}-%{version}.tar.gz.asc#/%{name}-%{version}.tar.gz.sig
Source99:       %{name}.keyring
BuildRequires:  groff-full
BuildRequires:  libtomcrypt-devel
BuildRequires:  pkgconfig
BuildRequires:  python3-base
BuildRequires:  python3-xml
BuildRequires:  pkgconfig(dbus-1)
BuildRequires:  pkgconfig(gnutls) >= 3.2.10
BuildRequires:  pkgconfig(krb5)
BuildRequires:  pkgconfig(liblz4)
BuildRequires:  pkgconfig(libpcsclite)
BuildRequires:  pkgconfig(libproxy-1.0)
BuildRequires:  pkgconfig(libpskc)
BuildRequires:  pkgconfig(libxml-2.0)
BuildRequires:  pkgconfig(socket_wrapper)
BuildRequires:  pkgconfig(stoken)
BuildRequires:  pkgconfig(uid_wrapper)

%description
This package provides a multi-protocol client for a number of SSL
VPNs, such as:

* Cisco's "AnyConnect" VPN (HTTPS/DTLS) supported by the ASA5500 Series,
  by IOS 12.4(9)T or later on Cisco SR500, 870, 880, 1800, 2800, 3800,
  7200 Series and Cisco 7301 Routers, and probably others.
* Array Networks AG SSL VPN
* Juniper SSL VPN
* Pulse Connect Secure
* Palo Alto Networks GlobalProtect SSL VPN
* F5 Big-IP SSL VPN
* Fortinet Fortigate SSL VPN

%package -n %{libname}
Summary:        Libraries for %{name}
Group:          System/Libraries

%description -n %{libname}
This package provides a multi-protocol client for a number of SSL
VPNs, including Cisco's "AnyConnect" VPN.

%package devel
Summary:        Development files and headers for %{name}
Group:          Development/Libraries/C and C++
Requires:       %{libname} = %{version}

%description devel
This package provides a multi-protocol client for a number of SSL
VPNs, including Cisco's "AnyConnect" VPN.

This packages provides development files and headers needed to build
packages against openconnect.

%package doc
Summary:        Documentation for %{name}
Group:          Documentation/HTML
Recommends:     %{name} = %{version}
BuildArch:      noarch

%description doc
This package provides a multi-protocol client for a number of SSL
VPNs, including Cisco's "AnyConnect" VPN.

This packages provides documentation and help files for openconnect.

%package bash-completion
Summary:        Bash Completion for %{name}
Group:          Productivity/Networking/Security
Requires:       %{name} = %{version}
Requires:       bash-completion
Supplements:    (openconnect and bash-completion)
BuildArch:      noarch

%description bash-completion
Bash completion script for %{name}.



%lang_package

%prep
%autosetup -p1

%build
%configure \
  --docdir=%{_docdir}/%{name} \
  --disable-silent-rules \
  --with-vpnc-script=%{_sysconfdir}/openconnect/vpnc-script \
  --with-gnutls \
  --without-openssl --without-openssl-version-check \
  --without-gnutls-version-check \
  --with-lz4 \
  --with-libproxy \
  --with-stoken \
  --with-libpcsclite \
  --with-libpskc \
  --with-gssapi
%make_build

%install
%make_install
# do not install androit script
rm %{buildroot}%{_libexecdir}/%{name}/*android.sh
# remove py2 only script due to python2 removal
rm %{buildroot}%{_libexecdir}/%{name}/tncc-wrapper.py
install -D -m0644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/openconnect/vpnc-script

find %{buildroot} -type f -name "*.la" -delete -print
%find_lang %{name}
%if %{suse_version} >= 1600
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/openconnect/*
%endif

%check
%make_build check

%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig

%files
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/*.{py,sh}
%{_mandir}/man8/*
%{_sbindir}/openconnect
%dir %{_sysconfdir}/openconnect
%config %attr(0755,root,root) %{_sysconfdir}/openconnect/vpnc-script

%files -n %{libname}
%license COPYING.LGPL
%{_libdir}/libopenconnect.so.*

%files devel
%{_includedir}/openconnect.h
%{_libdir}/libopenconnect.so
%{_libdir}/pkgconfig/openconnect.pc

%files doc
%doc AUTHORS TODO
%dir %{_docdir}/%{name}
%dir %{_docdir}/%{name}/styles
%dir %{_docdir}/%{name}/images
%dir %{_docdir}/%{name}/inc
%doc %{_docdir}/%{name}/*.html
%doc %{_docdir}/%{name}/styles/main.css
%doc %{_docdir}/%{name}/images/*.png
%doc %{_docdir}/%{name}/images/*.svg
%doc %{_docdir}/%{name}/inc/*.tmpl

%files bash-completion
%{_datadir}/bash-completion/completions/openconnect

%files lang -f %{name}.lang

%changelog
openSUSE Build Service is sponsored by