libproxy/libproxy.spec

218 lines
6.5 KiB
RPMSpec

#
# spec file for package libproxy
#
# 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 flavor @BUILD_FLAVOR@%nil
%if "%{flavor}" == ""
ExclusiveArch: do-not-build
%else
%if "%{flavor}" == "client"
%define name_suffix %{flavor}
%define dash -
%define mini -mini
%else
%define name_suffix %{flavor}
%define dash -
%endif
%endif
%define _name libproxy
Name: libproxy%{?dash}%{?name_suffix}
Version: 0.5.6
Release: 0
Summary: Automatic proxy configuration management for applications
License: GPL-2.0-or-later AND LGPL-2.1-or-later
Group: Development/Libraries/C and C++
URL: http://libproxy.github.io/libproxy/
Source: %{_name}-%{version}.tar.zst
Source99: baselibs.conf
BuildRequires: meson
BuildRequires: sysuser-tools
BuildRequires: vala
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
%if "%{flavor}" == "backend"
BuildRequires: pkgconfig(duktape)
BuildRequires: pkgconfig(gi-docgen)
BuildRequires: pkgconfig(gsettings-desktop-schemas)
BuildRequires: pkgconfig(libcurl)
#!BuildIgnore: libproxy1
# We require a config module, at worst the env reader
Requires: PxPlugin(config)
# the env reader is part of this package
Provides: PxPlugin(config)
# If pac/wpad is used, we need to interpret it
Recommends: PxPlugin(pacrunner)
# config plugins envvar and sysconfig are shipped with the daemon
Provides: PxPlugin(config)
%endif
%description
libproxy is a library that provides automatic proxy configuration
management.
%package -n libproxy-tools
Summary: An example application using libproxy
Group: System/Libraries
Requires: libproxy1 = %{version}
%description -n libproxy-tools
An example application that will use libproxy to give the results that can
be expected from other applications. It can be used to debug what would
happen in various cases.
%package -n libproxy-devel
Summary: Development files for libproxy, a library to do PAC/WPAD
Group: Development/Libraries/C and C++
Requires: libproxy1 = %{version}
%description -n libproxy-devel
libproxy is a library that provides automatic proxy configuration
management.
This subpackage contains header files for developing applications
that want to make use of libproxy.
%package -n libproxy-devel-doc
Summary: Libproxy developers documentation
BuildArch: noarch
%description -n libproxy-devel-doc
The developers documentation to libproxy (consumer library)
%package -n libproxy1
Summary: Automatic proxy configuration management for applications
Group: System/Libraries
# Starting with version 0.5.0, libproxy, the client library, has no plugins
# all plugins are moved to the backend
Obsoletes: libproxy1-config-gnome3 < 0.5
Obsoletes: libproxy1-config-kde < 0.5
Obsoletes: libproxy1-networkmanager < 0.5
Obsoletes: libproxy1-pacrunner-duktape < 0.5
Obsoletes: libproxy1-pacrunner-webkit < 0.5
%description -n libproxy1
libproxy is a library that provides automatic proxy configuration
management.
Proxy autoconfiguration (PAC) requires JavaScript (which most
applications do not have), and determing the PAC script location
requires a WPAD protocol implementation, which complicates proxy
support. libproxy exists to abstract this issue and provides
an answer how to reach a certain network resource.
%package -n libpxbackend-1_0%{?mini}
Summary: Backend library for libproxy, handles plugin loading
Group: System/Libraries
%if "%{flavor}" == "client"
Conflicts: libpxbackend-1_0
Requires: this-is-only-for-build-envs
%endif
%description -n libpxbackend-1_0%{?mini}
libproxy is a library that provides automatic proxy configuration
management.
Proxy autoconfiguration (PAC) requires JavaScript (which most
applications do not have), and determing the PAC script location
requires a WPAD protocol implementation, which complicates proxy
support. libproxy exists to abstract this issue and provides
an answer how to reach a certain network resource.
%package -n typelib-1_0-Libproxy-1_0
Summary: Gobject introspected access to libproxy
%description -n typelib-1_0-Libproxy-1_0
Libproxy is using gobject-introspection and is thus usable
from a wide range of programming languages.
%prep
%autosetup -p1 -n %{_name}-%{version}
%build
%meson \
%if "%{flavor}" == "client"
-Dcurl=false \
-Dconfig-gnome=false \
-Dpacrunner-duktape=false \
-Ddocs=false \
-Dtests=false \
%endif
%nil
%meson_build
%install
%meson_install
%if "%{flavor}" == "backend"
# this stuff is already shipped as part of the client library (built without cURL to break cycles)
rm %{buildroot}%{_bindir}/proxy
rm %{buildroot}%{_mandir}/man8/proxy*
rm %{buildroot}%{_libdir}/libproxy.so*
rm %{buildroot}%{_libdir}/girepository-1.0/Libproxy*.typelib
rm -rf %{buildroot}%{_includedir}/libproxy
rm -rf %{buildroot}%{_datadir}/gir-1.0
rm -rf %{buildroot}%{_datadir}/vala
rm %{buildroot}%{_libdir}/pkgconfig/libproxy-1.0.pc
%endif
%if "%{flavor}" == "backend"
%check
%meson_test ||:
%endif
%ldconfig_scriptlets -n libpxbackend-1_0%{?mini}
%if "%{flavor}" == "client"
%ldconfig_scriptlets -n libproxy1
%endif
%if "%{flavor}" == "client"
%files -n libproxy1
%{_libdir}/libproxy.so.*
%files -n libpxbackend-1_0%{?mini}
%dir %{_libdir}/libproxy
%{_libdir}/libproxy/libpxbackend-1.0.so
%files -n libproxy-tools
%{_bindir}/proxy
%{_mandir}/man8/proxy.8%{?ext_man}
%files -n typelib-1_0-Libproxy-1_0
%{_libdir}/girepository-1.0/Libproxy-1.0.typelib
%files -n libproxy-devel
%{_datadir}/gir-1.0/Libproxy-1.0.gir
%dir %{_datadir}/vala/vapi
%{_datadir}/vala/vapi/libproxy-1.0.*
%{_includedir}/libproxy/
%{_libdir}/libproxy.so
%{_libdir}/pkgconfig/libproxy-1.0.pc
%endif
%if "%{flavor}" == "backend"
%files -n libpxbackend-1_0
%dir %{_libdir}/libproxy
%{_libdir}/libproxy/libpxbackend-1.0.so
%files -n libproxy-devel-doc
%{_datadir}/doc/libproxy-1.0
%endif
%changelog