From 25d0defbd943c9a3b7ef52e9be0ca891b68aad46dfeed70ffac86009413e844c Mon Sep 17 00:00:00 2001 From: Luciano Santos Date: Tue, 6 Jun 2023 20:44:49 +0000 Subject: [PATCH 1/3] Accepting request 1090471 from home:dimstar:Factory - Update to version 0.5.1: + Guard PxManager test with pacrunner-duktape option. + Install libpxbackend into pkglibdir. + Move glib2 inclusion out of c++ protection. + Replace libsoup with glib socket service functions. + Use glib-object header instead of gio. + Fix libproxy rpath. + Draft: Improve ignore checks. - Update to version 0.5.0: + Complete rewrite, now actively maintained by Volkswagen. - Drop libproxy-perl-cflags.patch: no longer applicable as the bindings were ported to gobject-introspection. - Adjusted build dependencies: + Dropped cmake, gcc-c++, netcfg, pkgconfig, zlib-devel, NetworkManager-devel, dbus-1-devel, perl, python-rpm-macros, python3-devel, python-devel, pkgconfig(gio-2.0) >= 2.26, pkgconfig(gobject-2.0), pkgconfig(javascriptcoregtk-4.0), libKF5ConfigCore5, pkgconfig(mozjs-38), mono-devel. + Added meson, sysuser-tools, vala, pkgconfig(glib-2.0), pkgconfig(libpeas-1.0), pkgconfig(gi-docgen), pkgconfig(gsettings-desktop-schemas), pkgconfig(libcurl), pkgconfig(libsoup-3.0). - Change multibuild flavors to build a client library (libproxy.so.1 plus consumer include files) and a backend flavor (pxbackend, linked against cURL, duktape; the lib doing the actual work. The split is needed to break up build cycles with curl). - Drop no longer existing subpackages libproxy1-config-kde, libproxy1-config-gnome3, libproxy1-config-pacrunner, OBS-URL: https://build.opensuse.org/request/show/1090471 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/libproxy?expand=0&rev=164 --- 0.5.1.tar.gz | 3 + _multibuild | 3 +- baselibs.conf | 18 +- libproxy-0.4.18.tar.xz | 3 - libproxy-perl-cflags.patch | 47 ---- libproxy.changes | 45 ++++ libproxy.spec | 489 +++++++++---------------------------- 7 files changed, 170 insertions(+), 438 deletions(-) create mode 100644 0.5.1.tar.gz delete mode 100644 libproxy-0.4.18.tar.xz delete mode 100644 libproxy-perl-cflags.patch diff --git a/0.5.1.tar.gz b/0.5.1.tar.gz new file mode 100644 index 0000000..2efef2d --- /dev/null +++ b/0.5.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:991109f122bffc6023f7f4b587b13cde4d2a416409cdda24cff6cf70dc283e83 +size 59939 diff --git a/_multibuild b/_multibuild index 444f994..dd920a6 100644 --- a/_multibuild +++ b/_multibuild @@ -1,4 +1,5 @@ - plugins + client + backend diff --git a/baselibs.conf b/baselibs.conf index 72d7278..e814945 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,13 +1,7 @@ libproxy1 -#libproxy1-config-gnome -# supplements "packageand(libproxy1-:libproxy1-config-gnome)" -libproxy1-config-gnome3 - supplements "packageand(libproxy1-:libproxy1-config-gnome3)" -libproxy1-config-kde - supplements "packageand(libproxy1-:libproxy1-config-kde)" -#libproxy1-pacrunner-mozjs -# supplements "packageand(libproxy1-:libproxy1-config-mozjs)" -libproxy1-networkmanager - supplements "packageand(libproxy1-:libproxy1-config-networkmanager)" -libproxy1-pacrunner-webkit - supplements "packageand(libproxy1-:libproxy1-config-webkit)" + obsoletes "libproxy1-config-gnome3- < 0.5" + obsoletes "libproxy1-config-kde < 0.5" + obsoletes "libproxy1-networkman-ager < 0.5" + obsoletes "libproxy1-pacrunner-duktape- < 0.5" + obsoletes "libproxy1-pacrunner-webkit- < 0.5" + diff --git a/libproxy-0.4.18.tar.xz b/libproxy-0.4.18.tar.xz deleted file mode 100644 index 547a6ad..0000000 --- a/libproxy-0.4.18.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:69b5856e9ea42c38ac77e6b8c92ffc86a71d341fef74e77bef85f9cc6c47a4b1 -size 82020 diff --git a/libproxy-perl-cflags.patch b/libproxy-perl-cflags.patch deleted file mode 100644 index 2bf5829..0000000 --- a/libproxy-perl-cflags.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 4d7b2a237b206492cd63d0e96c0c1caf89902352 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Tue, 21 Jun 2022 10:45:50 +0200 -Subject: [PATCH] bindings: perl: Use ccflags from %Config for libproxy module - compilation - -This is needed to achieve (binary and source) compatibility. Unfortunately -there doesn't appear to be a more official way, even PERL_EXTRA_C_FLAGS is not -complete. - -Fixes #182 ---- - bindings/perl/CMakeLists.txt | 7 +++++++ - bindings/perl/src/CMakeLists.txt | 1 + - 2 files changed, 8 insertions(+) - -diff --git a/bindings/perl/CMakeLists.txt b/bindings/perl/CMakeLists.txt -index 4db28e1a..368bc56a 100644 ---- a/bindings/perl/CMakeLists.txt -+++ b/bindings/perl/CMakeLists.txt -@@ -33,6 +33,13 @@ if(PERL_FOUND AND PERLLIBS_FOUND) - OUTPUT_VARIABLE PX_PERL_ARCH) - set (PX_PERL_LIB ${PERL_SITELIB}) - endif() -+ -+ # PERL_EXTRA_C_FLAGS is not complete, we need full flags (including e.g. -+ # _FILE_OFFSET_BITS=64) for compatibility. -+ EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{ccflags}" -+ OUTPUT_VARIABLE PX_PERL_CCFLAGS) -+ # Convert it to a "list" suitable for target_compile_options. -+ string(REPLACE " " ";" PX_PERL_CCFLAGS ${PX_PERL_CCFLAGS}) - endif() - - add_subdirectory(lib) -diff --git a/bindings/perl/src/CMakeLists.txt b/bindings/perl/src/CMakeLists.txt -index 29e656d4..2800a85c 100644 ---- a/bindings/perl/src/CMakeLists.txt -+++ b/bindings/perl/src/CMakeLists.txt -@@ -18,6 +18,7 @@ if(PERL_LINK_LIBPERL) - endif() - - target_link_libraries(PLlibproxy ${PLlibproxy_LIB_DEPENDENCIES}) -+target_compile_options(PLlibproxy PRIVATE ${PX_PERL_CCFLAGS}) - set_target_properties(PLlibproxy PROPERTIES OUTPUT_NAME "Libproxy") - set_target_properties(PLlibproxy PROPERTIES PREFIX "") - - diff --git a/libproxy.changes b/libproxy.changes index c87aa1c..c9f338f 100644 --- a/libproxy.changes +++ b/libproxy.changes @@ -1,3 +1,48 @@ +------------------------------------------------------------------- +Fri Jun 2 11:44:56 UTC 2023 - Dominique Leuenberger + +- Update to version 0.5.1: + + Guard PxManager test with pacrunner-duktape option. + + Install libpxbackend into pkglibdir. + + Move glib2 inclusion out of c++ protection. + + Replace libsoup with glib socket service functions. + + Use glib-object header instead of gio. + + Fix libproxy rpath. + + Draft: Improve ignore checks. + +------------------------------------------------------------------- +Fri Jun 2 10:04:42 UTC 2023 - Dominique Leuenberger + +- Update to version 0.5.0: + + Complete rewrite, now actively maintained by Volkswagen. +- Drop libproxy-perl-cflags.patch: no longer applicable as the + bindings were ported to gobject-introspection. +- Adjusted build dependencies: + + Dropped cmake, gcc-c++, netcfg, pkgconfig, zlib-devel, + NetworkManager-devel, dbus-1-devel, perl, python-rpm-macros, + python3-devel, python-devel, pkgconfig(gio-2.0) >= 2.26, + pkgconfig(gobject-2.0), pkgconfig(javascriptcoregtk-4.0), + libKF5ConfigCore5, pkgconfig(mozjs-38), mono-devel. + + Added meson, sysuser-tools, vala, pkgconfig(glib-2.0), + pkgconfig(libpeas-1.0), pkgconfig(gi-docgen), + pkgconfig(gsettings-desktop-schemas), pkgconfig(libcurl), + pkgconfig(libsoup-3.0). +- Change multibuild flavors to build a client library + (libproxy.so.1 plus consumer include files) and a backend flavor + (pxbackend, linked against cURL, duktape; the lib doing the + actual work. The split is needed to break up build cycles with + curl). +- Drop no longer existing subpackages libproxy1-config-kde, + libproxy1-config-gnome3, libproxy1-config-pacrunner, + libproxy1-networkmanager, libproxy1-pacrunner-duktape, + libproxy1-pacrunner-webkit, libproxy1-pacrunner-mozjs, + python-libproxy, python3-libproxy, perl-Net-Libproxy, + libproxy-sharp. All the language bindings are now handled by + gobject-introspection. +- Introduce the new sub packages typelib-1_0-Libproxy-1_0, + libpxbackend-1_0, and libproxy-devel-doc. + + ------------------------------------------------------------------- Thu Jun 1 12:43:25 UTC 2023 - Frederic Crozat diff --git a/libproxy.spec b/libproxy.spec index 23f236d..72ffa30 100644 --- a/libproxy.spec +++ b/libproxy.spec @@ -18,105 +18,90 @@ %define flavor @BUILD_FLAVOR@%nil %if "%{flavor}" == "" -%define build_core_not_modules 1 +ExclusiveArch: do-not-build +%elif "%{flavor}" == "client" + %define name_suffix %{flavor} + %define dash - %else -%define name_suffix %{flavor} -%define dash - -%define build_core_not_modules 0 -%endif -%define build_mozjs 0 -%if 0%{?suse_version} > 1699 || 0%{?is_opensuse} -%bcond_without mono -%else -%bcond_with mono + %define name_suffix %{flavor} + %define dash - %endif + %define _name libproxy -%if 0%{?build_snapshot} -%define _sourcename %{_name} -%else -%define _sourcename %{_name}-%{version} -%endif -%bcond_without python2 -%{!?_assemblies_dir: %global _assemblies_dir %(pkg-config cecil --variable=assemblies_dir)} Name: libproxy%{?dash}%{?name_suffix} -Version: 0.4.18 +Version: 0.5.1 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: https://github.com/libproxy/libproxy/releases/download/%{version}/%{_name}-%{version}.tar.xz +Source: https://github.com/libproxy/libproxy/archive/refs/tags/0.5.1.tar.gz Source99: baselibs.conf -# PATCH-FIX-UPSTREAM libproxy-perl-cflags.patch dimstar@opensuse.org -- perl: Use ccflags from %Config for libproxy module compilation -Patch0: libproxy-perl-cflags.patch -BuildRequires: cmake -BuildRequires: gcc-c++ -# netcfg is needed for the test suite. -BuildRequires: netcfg -BuildRequires: pkgconfig -BuildRequires: zlib-devel -%if !%{build_core_not_modules} -%if ! 0%{?windows} -BuildRequires: NetworkManager-devel -BuildRequires: dbus-1-devel -# For directory ownership, but also because we want to rebuild the modules if -# the library changed -BuildRequires: libproxy1 = %{version} -BuildRequires: perl -BuildRequires: python-rpm-macros -BuildRequires: python3-devel -%if %{with python2} -BuildRequires: python-devel -%endif +BuildRequires: meson +BuildRequires: sysuser-tools +BuildRequires: vala +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(libpeas-1.0) +%if "%{flavor}" == "backend" BuildRequires: pkgconfig(duktape) -BuildRequires: pkgconfig(gio-2.0) >= 2.26 -BuildRequires: pkgconfig(gobject-2.0) -BuildRequires: pkgconfig(javascriptcoregtk-4.0) -%if 0%{?sle_version} > 150200 || 0%{?is_opensuse} -BuildRequires: libKF5ConfigCore5 -%endif -%if %{build_mozjs} -BuildRequires: pkgconfig(mozjs-38) -%endif -%if %{with mono} -BuildRequires: mono-devel -%endif -%endif +BuildRequires: pkgconfig(gi-docgen) +BuildRequires: pkgconfig(gsettings-desktop-schemas) +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libsoup-3.0) +#!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. -%if %build_core_not_modules -%package tools +%package -n libproxy-tools Summary: An example application using libproxy Group: System/Libraries Requires: libproxy1 = %{version} -%description tools +%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 devel +%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 devel +%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 -%if !%{build_mozjs} -Obsoletes: libproxy1-pacrunner-mozjs <= %{version} -%endif +# 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 @@ -124,352 +109,106 @@ management. Proxy autoconfiguration (PAC) requires JavaScript (which most applications do not have), and determing the PAC script location -requires a WPAD protocol implementation, which complicate proxy +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. -%else - -%package -n libproxy1-config-gnome3 -Summary: Libproxy module for GNOME3 configuration +%package -n libpxbackend-1_0 +Summary: BAckend library for libproxy, handles plugin loading Group: System/Libraries -Requires: libproxy1 = %{version} -Provides: libproxy-gnome = %{version} -Obsoletes: libproxy-gnome < %{version} -%if 0%{?suse_version} -Recommends: libproxy1-pacrunner = %{version} -Suggests: libproxy1-pacrunner-duktape -Supplements: (libproxy1 and gnome-session-core) -%else -Requires: libproxy1-pacrunner = %{version} -%endif -%description -n libproxy1-config-gnome3 - -A module to extend libproxy with capabilities to query GNOME about -proxy settings. - -%package -n libproxy1-config-kde -Summary: Libproxy module for KDE configuration -# We don't really need the library, but this package brings kreadconfig5 -Group: System/Libraries -Requires: libKF5ConfigCore5 -Requires: libproxy1 = %{version} -Provides: libproxy-kde = %{version} -Obsoletes: libproxy-kde < %{version} -# A generic KDE config loader was introduced in 0.4.12 -Obsoletes: libproxy1-config-kde4 < 0.4.12 -# The kde plugin requires 'qtpaths', which is part of libqt5-qtpaths in TW / libqt5-qttools in older releases -%if %{?suse_version} > 1320 -Requires: libqt5-qtpaths -%else -Requires: libqt5-qttools -%endif -%if 0%{?suse_version} -Recommends: libproxy1-pacrunner = %{version} -Suggests: libproxy1-pacrunner-duktape -Supplements: (libproxy1 and libkde4) -Supplements: (libproxy1 and plasma5-session) -%else -Requires: libproxy1-pacrunner = %{version} -%endif - -%description -n libproxy1-config-kde -A module to extend libproxy with capabilities to query KDE4 about proxy -settings. - -%package -n libproxy1-config-pacrunner -Summary: Libproxy module for PacRunner configuration -Group: System/Libraries -Requires: libproxy1 = %{version} - -%description -n libproxy1-config-pacrunner - -A module to extend libproxy with capabilities to query PacRunner about -proxy settings. - -%package -n libproxy1-pacrunner-mozjs -Summary: Libproxy module to support WPAD/PAC parsing via the Mozilla JavaScript Engine -Group: System/Libraries -Requires: libproxy1 = %{version} -# A virtual symbol to identify that this is a pacrunner. -Provides: libproxy1-pacrunner = %{version} -%if 0%{?suse_version} -Supplements: (libproxy1 and libmozjs185-1_0) -%endif - -%description -n libproxy1-pacrunner-mozjs -A module to extend libproxy with capabilities to pass addresses to a -WPAD/PAC script and have it find the correct proxy. - -%package -n libproxy1-pacrunner-duktape -Summary: Libproxy module to support WPAD/PAC parsing via the WebKit JavaScript Engine -Group: System/Libraries -Requires: libproxy1 = %{version} -# A virtual symbol to identify that this is a pacrunner. -Provides: libproxy1-pacrunner = %{version} -%if 0%{?suse_version} -Supplements: (libproxy1 and %(rpm --qf "%%{name}" -qf $(readlink -f %{_libdir}/libduktape.so))) -%endif - -%description -n libproxy1-pacrunner-duktape -A module to extend libproxy with capabilities to pass addresses to a -WPAD/PAC script and have it find the correct proxy. - -Relies on tuktape to do the javascript parsing - -%package -n libproxy1-pacrunner-webkit -Summary: Libproxy module to support WPAD/PAC parsing via the WebKit JavaScript Engine -Group: System/Libraries -Requires: libproxy1 = %{version} -# A virtual symbol to identify that this is a pacrunner. -Provides: libproxy1-pacrunner = %{version} -%if 0%{?suse_version} -Supplements: (libproxy1 and libjavascriptcoregtk-3_0-0) -%endif - -%description -n libproxy1-pacrunner-webkit -A module to extend libproxy with capabilities to pass addresses to a -WPAD/PAC script and have it find the correct proxy. - -%package -n libproxy1-networkmanager -Summary: Libproxy module for NetworkManager configuration -Group: System/Libraries -Requires: libproxy1 = %{version} -%if 0%{?suse_version} -Supplements: (libproxy1 and NetworkManager) -%endif - -%description -n libproxy1-networkmanager -A module to extend libproxy with capabilities to query NetworkManager -about network configuration changes. - -%package -n python3-libproxy -Summary: Python3 bindings for libproxy -Group: Development/Languages/Python -Requires: libproxy1 = %{version} -BuildArch: noarch - -%description -n python3-libproxy +%description -n libpxbackend-1_0 libproxy is a library that provides automatic proxy configuration management. -This package contains the Python 3 bindings for libproxy. +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 python-libproxy -Summary: Python bindings for libproxy -Group: Development/Languages/Python -Requires: libproxy1 = %{version} -BuildArch: noarch +%package -n typelib-1_0-Libproxy-1_0 +Summary: Gobject introspected access to libproxy -%description -n python-libproxy -libproxy is a library that provides automatic proxy configuration -management. - -This package contains the Python 2 bindings for libproxy. - -%package -n perl-Net-Libproxy -Summary: Perl bindings for libproxy -Group: Development/Languages/Perl -Requires: libproxy1 = %{version} -%if 0%{?perl_requires:1} -%{perl_requires} -%else -# For Fedora at least perl = perl_version does not work. -Requires: perl >= %{perl_version} -%endif - -%description -n perl-Net-Libproxy -libproxy is a library that provides automatic proxy configuration -management. - -This package contains the Perl for libproxy. - -%package -n libproxy-sharp -Summary: .Net bindings for libproxy -Group: Development/Languages/Mono -Requires: libproxy1 = %{version} - -%description -n libproxy-sharp -libproxy is a library that provides automatic proxy configuration -management. - -This package contains the Mono/.NET for libproxy. - -%endif %dnl build_core_not_modules +%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 -n %{_sourcename} -p1 -mkdir build +%autosetup -p1 -n %{_name}-%{version} %build -cd build -export CXXFLAGS="%{optflags}" -export CFLAGS="%{optflags}" -%if 0%{?windows} -export CXXFLAGS="%{optflags} -fno-stack-protector -static-libgcc" +%meson \ +%if "%{flavor}" == "client" + -Dcurl=false \ + -Dconfig-gnome=false \ + -Dpacrunner-duktape=false \ + -Ddocs=false \ + -Dtests=false \ %endif -cmake \ -%if 0%{?windows} - -DCMAKE_TOOLCHAIN_FILE=../cmake/mingw32.cmake \ - -DBUILD_TESTING=False \ - -DWITH_DOTNET=OFF \ -%else - -DWITH_VALA=yes \ -%if %{with mono} - -DWITH_DOTNET=1 \ -%endif -%endif - -DCMAKE_INSTALL_PREFIX=%{_prefix} \ - -DBIN_INSTALL_DIR=%{_bindir} \ - -DLIB_INSTALL_DIR=%{_libdir} \ - -DMODULE_INSTALL_DIR=%{_libdir}/libproxy-%{version}/modules \ - -DLIBEXEC_INSTALL_DIR=%{_libexecdir}/libproxy-%{version} \ - -DPYTHON_SITEPKG_DIR=%{python_sitelib} \ - -DSHARE_INSTALL_PREFIX=%{_datadir} \ - -DINCLUDE_INSTALL_DIR=%{_includedir} \ - -DPERL_VENDORINSTALL=yes \ - -DBIPR=0 \ -%if %build_core_not_modules - -DWITH_DOTNET=OFF \ - -DWITH_PERL=OFF \ - -DWITH_PYTHON2=OFF \ - -DWITH_PYTHON3=OFF \ -%endif -%if %build_core_not_modules || (! 0%{?is_opensuse} && 0%{?sle_version} <= 150200) - -DWITH_KDE=OFF \ -%endif - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_CONFIG_NAME=RelWithDebInfo \ - -DWITH_WEBKIT3=ON \ - -DWITH_GNOME3=ON \ -.. -make VERBOSE=1 +%nil +%meson_build %install -cd build -make DESTDIR=%{buildroot} install +%meson_install -# On Windows we also do not want to provide the static libraries. -%if 0%{?windows} -find %{buildroot}%{_libdir} -name '*.dll.a' -delete -print -rm %{buildroot}%{_libdir}/libmodman.dll +%if "%{flavor}" == "client" +# These are part of the backend, which is built in the flavor with cURL support +rm %{buildroot}%{_libdir}/libproxy/libpxbackend-1.0.so %endif -%if %build_core_not_modules -# Build the basic directory structure for the modules so we can -# own the directories in the main library package -install -d %{buildroot}%{_libexecdir}/libproxy-%{version} -install -d %{buildroot}%{_libdir}/%{name}-%{version}/modules -%else -# remove files that are part of the core -rm -f %{buildroot}%{_includedir}/*.h -# Delete all files that exist in the base libproxy package -rm -f %{buildroot}%{_bindir}/proxy%{?windows:.exe} -rm -f %{buildroot}%{_libdir}/libproxy.* -rm -f %{buildroot}%{_libdir}/pkgconfig/libproxy-1.0.pc -rm -f %{buildroot}%{_datadir}/cmake/Modules/Findlibproxy.cmake -rm -f %{buildroot}%{_datadir}/vala/vapi/libproxy-1.0.vapi +%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 -cd build -make test +%meson_test ||: +%endif -%if %build_core_not_modules -%post -n libproxy1 -p /sbin/ldconfig +%if "%{flavor}" == "backend" +%ldconfig_scriptlets -n libpxbackend-1_0 +%endif -%postun -n libproxy1 -p /sbin/ldconfig - -%files tools -%defattr(-, root, root) -%{_bindir}/proxy%{?windows:.exe} +%if "%{flavor}" == "client" +%ldconfig_scriptlets -n libproxy1 +%endif +%if "%{flavor}" == "client" %files -n libproxy1 -%defattr(-, root, root) -%license COPYING -%doc README AUTHORS -%if ! 0%{?windows} -%{_libdir}/libproxy.so.* -%else -%{_libdir}/libproxy.dll -%endif -%dir %{_libexecdir}/libproxy-%{version} -%dir %{_libdir}/libproxy-%{version} -%dir %{_libdir}/libproxy-%{version}/modules +%{_libdir}/libproxy.so.1 -%files devel -%defattr(-, root, root) -%{_includedir}/*.h -%if ! 0%{?windows} -%{_libdir}/*.so -%{_libdir}/pkgconfig/libproxy-1.0.pc -%{_datadir}/cmake/Modules/Findlibproxy.cmake -%dir %{_datadir}/vala +%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.vapi +%{_datadir}/vala/vapi/libproxy-1.0.* +%{_includedir}/libproxy/ +%{_libdir}/libproxy.so +%{_libdir}/pkgconfig/libproxy-1.0.pc %endif -%else -%if ! 0%{?windows} -%if 0%{?sle_version} > 150200 || 0%{?is_opensuse} -%files -n libproxy1-config-kde -%defattr(-, root, root) -%{_libdir}/libproxy-%{version}/modules/config_kde.so -%endif +%if "%{flavor}" == "backend" +%files -n libpxbackend-1_0 +%dir %{_libdir}/libproxy +%{_libdir}/libproxy/libpxbackend-1.0.so -%files -n libproxy1-config-gnome3 -%defattr(-, root, root) -%{_libdir}/libproxy-%{version}/modules/config_gnome3.so -%{_libexecdir}/libproxy-%{version}/pxgsettings - -%files -n libproxy1-config-pacrunner -%{_libdir}/libproxy-%{version}/modules/config_pacrunner.so - -%files -n libproxy1-networkmanager -%defattr(-, root, root) -%{_libdir}/libproxy-%{version}/modules/network_networkmanager.so - -%files -n libproxy1-pacrunner-duktape -%defattr(-, root, root) -%{_libdir}/libproxy-%{version}/modules/pacrunner_duktape.so - -%files -n libproxy1-pacrunner-webkit -%defattr(-, root, root) -%{_libdir}/libproxy-%{version}/modules/pacrunner_webkit.so - -%if %{build_mozjs} -%files -n libproxy1-pacrunner-mozjs -%defattr(-, root, root) -%{_libdir}/libproxy-%{version}/modules/pacrunner_mozjs.so -%endif - -%if %{with python2} -%files -n python-libproxy -%defattr(-, root, root) -%{python_sitelib}/*.py -%endif - -%files -n python3-libproxy -%defattr(-, root, root) -%{python3_sitelib}/*.py - -%files -n perl-Net-Libproxy -%defattr(-,root,root) -%dir %{perl_vendorarch}/Net -%dir %{perl_vendorarch}/auto/Net -%dir %{perl_vendorarch}/auto/Net/Libproxy -%{perl_vendorarch}/Net/Libproxy.pm -%{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so - -%if %{with mono} -%files -n libproxy-sharp -%defattr(-, root, root) -%{_assemblies_dir}/gac/libproxy-sharp -%{_assemblies_dir}/libproxy-sharp -%{_libdir}/pkgconfig/libproxy-sharp-1.0.pc -%endif -%endif +%files -n libproxy-devel-doc +%{_datadir}/doc/libproxy-1.0 %endif %changelog From 4ee216339bdee8d7e96a4d4d7fe95edfef7a88556534cc77fd61dd171b3f460a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie?= Date: Wed, 23 Aug 2023 13:32:33 +0000 Subject: [PATCH 2/3] Accepting request 1105469 from GNOME:Next - Generate libpxbackend-1_0-mini to be used inside OBS: the backend is built without additional dependencies like cURL. So there is no wpad/pac support in this variant. Helps break a build cycle. - Update to version 0.5.3: + Fix crash querying URLs without a host. + Web: Update application page. + Add appplication info about apt and python requests. - Update to version 0.5.2: + Link with libsocket where needed. + Remove libsoup from doc and CI. + Fix coverity findings. + Add a comment that docs option needs introspection. + Set pac data after download only. + Fix race condition in px_manager_get_proxies_sync. + Update gobject dependency in pkgconfig file. + Reread env variables in each get_config call. - Drop pkgconfig(libpeas-1.0) BuildRequires: libpeas is no longer needed. - Add pkgconfig(gobject-introspection-1.0) BuildRequires: this was used before, but pulled in by libpeas. For RelEng: this needs prjconf changes Prefer: -libpxbackend-1_0 Ignore: libpxbackend-1_0-mini:this-is-only-for-build-envs OBS-URL: https://build.opensuse.org/request/show/1105469 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/libproxy?expand=0&rev=165 --- 0.5.1.tar.gz | 3 --- 0.5.3.tar.gz | 3 +++ libproxy.changes | 32 ++++++++++++++++++++++++++++++++ libproxy.spec | 30 ++++++++++++++++-------------- 4 files changed, 51 insertions(+), 17 deletions(-) delete mode 100644 0.5.1.tar.gz create mode 100644 0.5.3.tar.gz diff --git a/0.5.1.tar.gz b/0.5.1.tar.gz deleted file mode 100644 index 2efef2d..0000000 --- a/0.5.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:991109f122bffc6023f7f4b587b13cde4d2a416409cdda24cff6cf70dc283e83 -size 59939 diff --git a/0.5.3.tar.gz b/0.5.3.tar.gz new file mode 100644 index 0000000..3cc9cf2 --- /dev/null +++ b/0.5.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d8d8e4dd96239ba173c2b18905c0bb6e161fd5000e1e0aeace16f754e9a9108 +size 60069 diff --git a/libproxy.changes b/libproxy.changes index c9f338f..f938c64 100644 --- a/libproxy.changes +++ b/libproxy.changes @@ -1,3 +1,31 @@ +------------------------------------------------------------------- +Wed Aug 16 07:28:37 UTC 2023 - Dominique Leuenberger + +- Generate libpxbackend-1_0-mini to be used inside OBS: the backend + is built without additional dependencies like cURL. So there is + no wpad/pac support in this variant. Helps break a build cycle. + +------------------------------------------------------------------- +Thu Jul 13 14:16:36 UTC 2023 - Dominique Leuenberger + +- Update to version 0.5.3: + + Fix crash querying URLs without a host. + + Web: Update application page. + + Add appplication info about apt and python requests. + +------------------------------------------------------------------- +Fri Jun 16 15:05:33 UTC 2023 - Dominique Leuenberger + +- Update to version 0.5.2: + + Link with libsocket where needed. + + Remove libsoup from doc and CI. + + Fix coverity findings. + + Add a comment that docs option needs introspection. + + Set pac data after download only. + + Fix race condition in px_manager_get_proxies_sync. + + Update gobject dependency in pkgconfig file. + + Reread env variables in each get_config call. + ------------------------------------------------------------------- Fri Jun 2 11:44:56 UTC 2023 - Dominique Leuenberger @@ -9,6 +37,10 @@ Fri Jun 2 11:44:56 UTC 2023 - Dominique Leuenberger + Use glib-object header instead of gio. + Fix libproxy rpath. + Draft: Improve ignore checks. +- Drop pkgconfig(libpeas-1.0) BuildRequires: libpeas is no longer + needed. +- Add pkgconfig(gobject-introspection-1.0) BuildRequires: this was + used before, but pulled in by libpeas. ------------------------------------------------------------------- Fri Jun 2 10:04:42 UTC 2023 - Dominique Leuenberger diff --git a/libproxy.spec b/libproxy.spec index 72ffa30..7144b8d 100644 --- a/libproxy.spec +++ b/libproxy.spec @@ -22,6 +22,7 @@ ExclusiveArch: do-not-build %elif "%{flavor}" == "client" %define name_suffix %{flavor} %define dash - + %define mini -mini %else %define name_suffix %{flavor} %define dash - @@ -29,19 +30,19 @@ ExclusiveArch: do-not-build %define _name libproxy Name: libproxy%{?dash}%{?name_suffix} -Version: 0.5.1 +Version: 0.5.3 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: https://github.com/libproxy/libproxy/archive/refs/tags/0.5.1.tar.gz +Source: https://github.com/libproxy/libproxy/archive/refs/tags/%{version}.tar.gz Source99: baselibs.conf BuildRequires: meson BuildRequires: sysuser-tools BuildRequires: vala BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(libpeas-1.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) %if "%{flavor}" == "backend" BuildRequires: pkgconfig(duktape) BuildRequires: pkgconfig(gi-docgen) @@ -113,11 +114,15 @@ 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 -Summary: BAckend library for libproxy, handles plugin loading +%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 +%description -n libpxbackend-1_0%{?mini} libproxy is a library that provides automatic proxy configuration management. @@ -152,11 +157,6 @@ from a wide range of programming languages. %install %meson_install -%if "%{flavor}" == "client" -# These are part of the backend, which is built in the flavor with cURL support -rm %{buildroot}%{_libdir}/libproxy/libpxbackend-1.0.so -%endif - %if "%{flavor}" == "backend" # this stuff is already shipped as part of the client library (built without cURL to break cycles) rm %{buildroot}%{_bindir}/proxy @@ -174,9 +174,7 @@ rm %{buildroot}%{_libdir}/pkgconfig/libproxy-1.0.pc %meson_test ||: %endif -%if "%{flavor}" == "backend" -%ldconfig_scriptlets -n libpxbackend-1_0 -%endif +%ldconfig_scriptlets -n libpxbackend-1_0%{?mini} %if "%{flavor}" == "client" %ldconfig_scriptlets -n libproxy1 @@ -186,6 +184,10 @@ rm %{buildroot}%{_libdir}/pkgconfig/libproxy-1.0.pc %files -n libproxy1 %{_libdir}/libproxy.so.1 +%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} From 0cda98643dd580d25946e60dbc78dcdba93198e2ef8bc9c6d5eb3d5e60370d7c Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Wed, 13 Sep 2023 11:33:57 +0000 Subject: [PATCH 3/3] Accepting request 1110851 from GNOME:Next - Add libpxbackend-1_0 to baselibs.conf: required by libproxy.so.1. OBS-URL: https://build.opensuse.org/request/show/1110851 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/libproxy?expand=0&rev=166 --- baselibs.conf | 1 + libproxy.changes | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/baselibs.conf b/baselibs.conf index e814945..43aeede 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -4,4 +4,5 @@ libproxy1 obsoletes "libproxy1-networkman-ager < 0.5" obsoletes "libproxy1-pacrunner-duktape- < 0.5" obsoletes "libproxy1-pacrunner-webkit- < 0.5" +libpxbackend-1_0 diff --git a/libproxy.changes b/libproxy.changes index f938c64..2533f60 100644 --- a/libproxy.changes +++ b/libproxy.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Sep 13 09:06:58 UTC 2023 - Dominique Leuenberger + +- Add libpxbackend-1_0 to baselibs.conf: required by libproxy.so.1. + ------------------------------------------------------------------- Wed Aug 16 07:28:37 UTC 2023 - Dominique Leuenberger