Hello community, here is the log from the commit of package libproxy for openSUSE:Factory checked in at 2017-09-13 21:43:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libproxy (Old) and /work/SRC/openSUSE:Factory/.libproxy.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libproxy" Wed Sep 13 21:43:53 2017 rev:70 rq:522333 version:0.4.15 Changes: -------- --- /work/SRC/openSUSE:Factory/libproxy/libproxy-plugins.changes 2017-02-10 09:46:05.330779887 +0100 +++ /work/SRC/openSUSE:Factory/.libproxy.new/libproxy-plugins.changes 2017-09-13 21:43:54.811567012 +0200 @@ -1,0 +2,19 @@ +Thu Sep 7 19:29:58 UTC 2017 - [email protected] + +- Update descriptions and RPM categories. + +------------------------------------------------------------------- +Thu May 11 09:36:16 UTC 2017 - [email protected] + +- Update to version 0.4.15: + + Port to, and require, SpiderMonkey 38. + + Fix "NetworkManager plugin not being built" + (gh#libproxy/libproxy#53). + + Fix "networkmanager plugin not working + (gh#libproxy/libproxy#58). + + Fix "Invalid read after free" (gh#libproxy/libproxy#59). + + Fix intermittent unit test failures. +- Replace pkgconfig(mozjs185) buildRequires with + pkgconfig(mozjs-38), following upstream. + +------------------------------------------------------------------- libproxy.changes: same change Old: ---- 0.4.14.tar.gz New: ---- 0.4.15.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libproxy-plugins.spec ++++++ --- /var/tmp/diff_new_pack.AJUFAo/_old 2017-09-13 21:43:55.423480921 +0200 +++ /var/tmp/diff_new_pack.AJUFAo/_new 2017-09-13 21:43:55.427480359 +0200 @@ -23,24 +23,24 @@ %else %bcond_with mono %endif - -Url: http://code.google.com/p/libproxy/ %define _name libproxy - -Name: libproxy-plugins -Summary: Libproxy provides consistent proxy configuration to applications -License: GPL-2.0+ and LGPL-2.1+ -Group: System/Libraries -Version: 0.4.14 -Release: 0 %if 0%{?build_snapshot} %define _sourcename %{_name} %else %define _sourcename %{_name}-%{version} %endif +%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%{!?_assemblies_dir: %global _assemblies_dir %(pkg-config cecil --variable=assemblies_dir)} +Name: libproxy-plugins +Version: 0.4.15 +Release: 0 +Summary: Automatic proxy configuration management for applications +License: GPL-2.0+ AND LGPL-2.1+ +Group: Development/Libraries/C and C++ +Url: http://code.google.com/p/libproxy/ Source: https://github.com/libproxy/%{_name}/archive/%{version}.tar.gz Source99: baselibs.conf -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: libmodman-devel @@ -50,11 +50,15 @@ BuildRequires: zlib-devel %if !%{build_core_not_modules} %if ! 0%{?windows} +BuildRequires: NetworkManager-devel BuildRequires: dbus-1-devel BuildRequires: gconf2-devel # For directory ownership, but also because we want to rebuild the modules if # the library changed BuildRequires: libproxy1 = %{version} +BuildRequires: perl +BuildRequires: python-devel +BuildRequires: python3-devel %if 0%{?favor_gtk2} BuildRequires: pkgconfig(gconf-2.0) BuildRequires: pkgconfig(gobject-2.0) @@ -64,98 +68,74 @@ BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(javascriptcoregtk-4.0) %endif -BuildRequires: NetworkManager-devel %if 0%{?is_opensuse} BuildRequires: libKF5ConfigCore5 %endif %if %{build_mozjs} -BuildRequires: pkgconfig(mozjs185) +BuildRequires: pkgconfig(mozjs-38) %endif %if %{with mono} BuildRequires: mono-devel %endif -BuildRequires: perl -BuildRequires: python-devel -BuildRequires: python3-devel %endif %endif -%{!?python_sitelib: %global python_sitelib %(%__python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python_sitearch: %global python_sitearch %(%__python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} -%{!?_assemblies_dir: %global _assemblies_dir %(pkg-config cecil --variable=assemblies_dir)} - %description -libproxy offers the following features: * extremely small core - footprint (< 35K) - -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios - +libproxy is a library that provides automatic proxy configuration +management. %if %build_core_not_modules - %package tools -Summary: A simple application using libproxy +Summary: An example application using libproxy Group: System/Libraries Requires: libproxy1 = %{version} %description tools -A simple application that will use libproxy to give the results you can -expect from other applications. It can be used to debug what would +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 -Summary: Libproxy provides consistent proxy configuration to applications - Development Files +Summary: Development files for libproxy, a library to do PAC/WPAD Group: Development/Libraries/C and C++ Requires: libproxy1 = %{version} %description devel -libproxy offers the following features: * extremely small core - footprint (< 35K) - -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios +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 libproxy1 -Summary: Libproxy provides consistent proxy configuration to applications +Summary: Automatic proxy configuration management for applications Group: System/Libraries %if !%{build_mozjs} Obsoletes: libproxy1-pacrunner-mozjs <= %{version} %endif %description -n libproxy1 -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios +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 +support. libproxy exists to abstract this issue and provides +an answer how to reach a certain network resource. %else - %if 0%{?favor_gtk2} - %package -n libproxy1-config-gnome - Summary: Libproxy module for GNOME configuration Group: System/Libraries %else - %package -n libproxy1-config-gnome3 Summary: Libproxy module for GNOME3 configuration Group: System/Libraries %endif Requires: libproxy1 = %{version} + %if 0%{?suse_version} Recommends: libproxy1-pacrunner = %{version} %if 0%{?favor_gtk2} @@ -170,11 +150,9 @@ Obsoletes: libproxy-gnome < %{version} %if 0%{?favor_gtk2} - %description -n libproxy1-config-gnome %else - %description -n libproxy1-config-gnome3 %endif @@ -183,10 +161,14 @@ %package -n libproxy1-config-kde Summary: Libproxy module for KDE configuration -Group: System/Libraries -Requires: libproxy1 = %{version} # 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 @@ -200,35 +182,31 @@ %else Requires: libproxy1-pacrunner = %{version} %endif -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 %description -n libproxy1-config-kde A module to extend libproxy with capabilities to query KDE4 about proxy settings. -%if %{build_mozjs} %package -n libproxy1-pacrunner-mozjs -Summary: Libproxy module to support wpad/pac parsing via Mozilla JavaScript Engine +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: packageand(libproxy1:libmozjs185-1_0) %endif -# A virtual symbol to identify that this is a pacrunner. -Provides: libproxy1-pacrunner = %{version} %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. -%endif %package -n libproxy1-pacrunner-webkit -Summary: Libproxy module to support WPAD/PAC parsing via WebKit JavaScript Engine +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} %if 0%{?favor_gtk2} Supplements: packageand(libproxy1:libjavascriptcoregtk-1_0-0) @@ -236,8 +214,6 @@ Supplements: packageand(libproxy1:libjavascriptcoregtk-3_0-0) %endif %endif -# A virtual symbol to identify that this is a pacrunner. -Provides: libproxy1-pacrunner = %{version} %description -n libproxy1-pacrunner-webkit A module to extend libproxy with capabilities to pass addresses to a @@ -257,44 +233,36 @@ %package -n python3-libproxy Summary: Python3 bindings for libproxy -Group: System/Libraries +Group: Development/Languages/Python +Requires: libproxy1 = %{version} %if 0%{?suse_version} > 1110 BuildArch: noarch %endif -Requires: libproxy1 = %{version} %description -n python3-libproxy -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios +This package contains the Python 3 bindings for libproxy. %package -n python-libproxy Summary: Python bindings for libproxy -Group: System/Libraries +Group: Development/Languages/Python +Requires: libproxy1 = %{version} %if 0%{?suse_version} > 1110 BuildArch: noarch %py_requires %endif -Requires: libproxy1 = %{version} %description -n python-libproxy -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios +This package contains the Python 2 bindings for libproxy. %package -n perl-Net-Libproxy Summary: Perl bindings for libproxy -Group: Development/Libraries/Perl +Group: Development/Languages/Perl Requires: libproxy1 = %{version} %if 0%{?perl_requires:1} %{perl_requires} @@ -304,16 +272,10 @@ %endif %description -n perl-Net-Libproxy -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios - -%if %{with mono} +This package contains the Perl for libproxy. %package -n libproxy-sharp Summary: .Net bindings for libproxy @@ -321,17 +283,12 @@ Requires: libproxy1 = %{version} %description -n libproxy-sharp -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios -%endif +This package contains the Mono/.NET for libproxy. -%endif +%endif # build_core_not_modules %prep %setup -q -n %{_sourcename} @@ -393,7 +350,7 @@ -DWITH_GNOME3=ON \ %endif .. -%{__make} VERBOSE=1 +make VERBOSE=1 %install cd build @@ -426,7 +383,6 @@ make test %if %build_core_not_modules - %post -n libproxy1 -p /sbin/ldconfig %postun -n libproxy1 -p /sbin/ldconfig @@ -460,7 +416,6 @@ %endif %else - %if ! 0%{?windows} %if 0%{?is_opensuse} %files -n libproxy1-config-kde @@ -469,13 +424,11 @@ %endif %if 0%{?favor_gtk2} - %files -n libproxy1-config-gnome %defattr(-, root, root) %{_libdir}/libproxy-%{version}/modules/config_gnome.so %{_libexecdir}/libproxy-%{version}/pxgconf %else - %files -n libproxy1-config-gnome3 %defattr(-, root, root) %{_libdir}/libproxy-%{version}/modules/config_gnome3.so @@ -513,7 +466,6 @@ %{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so %if %{with mono} - %files -n libproxy-sharp %defattr(-, root, root) %{_assemblies_dir}/gac/libproxy-sharp ++++++ libproxy.spec ++++++ --- /var/tmp/diff_new_pack.AJUFAo/_old 2017-09-13 21:43:55.471474169 +0200 +++ /var/tmp/diff_new_pack.AJUFAo/_new 2017-09-13 21:43:55.471474169 +0200 @@ -23,24 +23,24 @@ %else %bcond_with mono %endif - -Url: http://code.google.com/p/libproxy/ %define _name libproxy - -Name: libproxy -Summary: Libproxy provides consistent proxy configuration to applications -License: GPL-2.0+ and LGPL-2.1+ -Group: System/Libraries -Version: 0.4.14 -Release: 0 %if 0%{?build_snapshot} %define _sourcename %{_name} %else %define _sourcename %{_name}-%{version} %endif +%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%{!?_assemblies_dir: %global _assemblies_dir %(pkg-config cecil --variable=assemblies_dir)} +Name: libproxy +Version: 0.4.15 +Release: 0 +Summary: Automatic proxy configuration management for applications +License: GPL-2.0+ AND LGPL-2.1+ +Group: Development/Libraries/C and C++ +Url: http://code.google.com/p/libproxy/ Source: https://github.com/libproxy/%{_name}/archive/%{version}.tar.gz Source99: baselibs.conf -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: libmodman-devel @@ -50,11 +50,15 @@ BuildRequires: zlib-devel %if !%{build_core_not_modules} %if ! 0%{?windows} +BuildRequires: NetworkManager-devel BuildRequires: dbus-1-devel BuildRequires: gconf2-devel # For directory ownership, but also because we want to rebuild the modules if # the library changed BuildRequires: libproxy1 = %{version} +BuildRequires: perl +BuildRequires: python-devel +BuildRequires: python3-devel %if 0%{?favor_gtk2} BuildRequires: pkgconfig(gconf-2.0) BuildRequires: pkgconfig(gobject-2.0) @@ -64,98 +68,74 @@ BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(javascriptcoregtk-4.0) %endif -BuildRequires: NetworkManager-devel %if 0%{?is_opensuse} BuildRequires: libKF5ConfigCore5 %endif %if %{build_mozjs} -BuildRequires: pkgconfig(mozjs185) +BuildRequires: pkgconfig(mozjs-38) %endif %if %{with mono} BuildRequires: mono-devel %endif -BuildRequires: perl -BuildRequires: python-devel -BuildRequires: python3-devel %endif %endif -%{!?python_sitelib: %global python_sitelib %(%__python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python_sitearch: %global python_sitearch %(%__python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} -%{!?_assemblies_dir: %global _assemblies_dir %(pkg-config cecil --variable=assemblies_dir)} - %description -libproxy offers the following features: * extremely small core - footprint (< 35K) - -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios - +libproxy is a library that provides automatic proxy configuration +management. %if %build_core_not_modules - %package tools -Summary: A simple application using libproxy +Summary: An example application using libproxy Group: System/Libraries Requires: libproxy1 = %{version} %description tools -A simple application that will use libproxy to give the results you can -expect from other applications. It can be used to debug what would +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 -Summary: Libproxy provides consistent proxy configuration to applications - Development Files +Summary: Development files for libproxy, a library to do PAC/WPAD Group: Development/Libraries/C and C++ Requires: libproxy1 = %{version} %description devel -libproxy offers the following features: * extremely small core - footprint (< 35K) - -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios +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 libproxy1 -Summary: Libproxy provides consistent proxy configuration to applications +Summary: Automatic proxy configuration management for applications Group: System/Libraries %if !%{build_mozjs} Obsoletes: libproxy1-pacrunner-mozjs <= %{version} %endif %description -n libproxy1 -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios +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 +support. libproxy exists to abstract this issue and provides +an answer how to reach a certain network resource. %else - %if 0%{?favor_gtk2} - %package -n libproxy1-config-gnome - Summary: Libproxy module for GNOME configuration Group: System/Libraries %else - %package -n libproxy1-config-gnome3 Summary: Libproxy module for GNOME3 configuration Group: System/Libraries %endif Requires: libproxy1 = %{version} + %if 0%{?suse_version} Recommends: libproxy1-pacrunner = %{version} %if 0%{?favor_gtk2} @@ -170,11 +150,9 @@ Obsoletes: libproxy-gnome < %{version} %if 0%{?favor_gtk2} - %description -n libproxy1-config-gnome %else - %description -n libproxy1-config-gnome3 %endif @@ -183,10 +161,14 @@ %package -n libproxy1-config-kde Summary: Libproxy module for KDE configuration -Group: System/Libraries -Requires: libproxy1 = %{version} # 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 @@ -200,35 +182,31 @@ %else Requires: libproxy1-pacrunner = %{version} %endif -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 %description -n libproxy1-config-kde A module to extend libproxy with capabilities to query KDE4 about proxy settings. -%if %{build_mozjs} %package -n libproxy1-pacrunner-mozjs -Summary: Libproxy module to support wpad/pac parsing via Mozilla JavaScript Engine +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: packageand(libproxy1:libmozjs185-1_0) %endif -# A virtual symbol to identify that this is a pacrunner. -Provides: libproxy1-pacrunner = %{version} %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. -%endif %package -n libproxy1-pacrunner-webkit -Summary: Libproxy module to support WPAD/PAC parsing via WebKit JavaScript Engine +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} %if 0%{?favor_gtk2} Supplements: packageand(libproxy1:libjavascriptcoregtk-1_0-0) @@ -236,8 +214,6 @@ Supplements: packageand(libproxy1:libjavascriptcoregtk-3_0-0) %endif %endif -# A virtual symbol to identify that this is a pacrunner. -Provides: libproxy1-pacrunner = %{version} %description -n libproxy1-pacrunner-webkit A module to extend libproxy with capabilities to pass addresses to a @@ -257,44 +233,36 @@ %package -n python3-libproxy Summary: Python3 bindings for libproxy -Group: System/Libraries +Group: Development/Languages/Python +Requires: libproxy1 = %{version} %if 0%{?suse_version} > 1110 BuildArch: noarch %endif -Requires: libproxy1 = %{version} %description -n python3-libproxy -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios +This package contains the Python 3 bindings for libproxy. %package -n python-libproxy Summary: Python bindings for libproxy -Group: System/Libraries +Group: Development/Languages/Python +Requires: libproxy1 = %{version} %if 0%{?suse_version} > 1110 BuildArch: noarch %py_requires %endif -Requires: libproxy1 = %{version} %description -n python-libproxy -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios +This package contains the Python 2 bindings for libproxy. %package -n perl-Net-Libproxy Summary: Perl bindings for libproxy -Group: Development/Libraries/Perl +Group: Development/Languages/Perl Requires: libproxy1 = %{version} %if 0%{?perl_requires:1} %{perl_requires} @@ -304,16 +272,10 @@ %endif %description -n perl-Net-Libproxy -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios - -%if %{with mono} +This package contains the Perl for libproxy. %package -n libproxy-sharp Summary: .Net bindings for libproxy @@ -321,17 +283,12 @@ Requires: libproxy1 = %{version} %description -n libproxy-sharp -libproxy offers the following features: * extremely small core - footprint (< 35K) +libproxy is a library that provides automatic proxy configuration +management. -* no external dependencies within libproxy core (libproxy modules - may have dependencies) -* only 3 functions in the stable external API -* dynamic adjustment to changing network topology -* a standard way of dealing with proxy settings across all scenarios -%endif +This package contains the Mono/.NET for libproxy. -%endif +%endif # build_core_not_modules %prep %setup -q -n %{_sourcename} @@ -393,7 +350,7 @@ -DWITH_GNOME3=ON \ %endif .. -%{__make} VERBOSE=1 +make VERBOSE=1 %install cd build @@ -426,7 +383,6 @@ make test %if %build_core_not_modules - %post -n libproxy1 -p /sbin/ldconfig %postun -n libproxy1 -p /sbin/ldconfig @@ -460,7 +416,6 @@ %endif %else - %if ! 0%{?windows} %if 0%{?is_opensuse} %files -n libproxy1-config-kde @@ -469,13 +424,11 @@ %endif %if 0%{?favor_gtk2} - %files -n libproxy1-config-gnome %defattr(-, root, root) %{_libdir}/libproxy-%{version}/modules/config_gnome.so %{_libexecdir}/libproxy-%{version}/pxgconf %else - %files -n libproxy1-config-gnome3 %defattr(-, root, root) %{_libdir}/libproxy-%{version}/modules/config_gnome3.so @@ -513,7 +466,6 @@ %{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so %if %{with mono} - %files -n libproxy-sharp %defattr(-, root, root) %{_assemblies_dir}/gac/libproxy-sharp ++++++ 0.4.14.tar.gz -> 0.4.15.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/NEWS new/libproxy-0.4.15/NEWS --- old/libproxy-0.4.14/NEWS 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/NEWS 2017-05-11 11:33:33.000000000 +0200 @@ -1,3 +1,11 @@ +New in Version 0.4.15: +============================== +* Port to, and require, SpiderMonkey 38. +* Fix "NetworkManager plugin not being built" (gh#libproxy/libproxy#53). +* Fix "networkmanager plugin not working (gh#libproxy/libproxy#58). +* Fix "Invalid read after free" (gh#libproxy/libproxy#59). +* Fix intermittent unit test failures. + New in Version 0.4.14: ============================== * Parallel build support for python2 and python3. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/cmake/paths.cmk new/libproxy-0.4.15/cmake/paths.cmk --- old/libproxy-0.4.14/cmake/paths.cmk 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/cmake/paths.cmk 2017-05-11 11:33:33.000000000 +0200 @@ -1,4 +1,4 @@ -if(WIN32) +if(WIN32 AND NOT MINGW) set(CMAKE_INSTALL_PREFIX "" CACHE PATH "Install prefix") set(BIN_INSTALL_DIR . CACHE PATH "Binary install dir") set(LIB_INSTALL_DIR . CACHE PATH "Library install dir") @@ -6,7 +6,7 @@ set(INCLUDE_INSTALL_DIR include CACHE PATH "Include install dir") set(SYSCONF_INSTALL_DIR . CACHE PATH "Configuration install dir") set(SHARE_INSTALL_DIR . CACHE PATH "Data install dir") -else(WIN32) +else(WIN32 AND NOT MINGW) set(CMAKE_INSTALL_PREFIX /usr/local CACHE PATH "Install prefix") set(BIN_INSTALL_DIR bin CACHE PATH "Binary install dir") set(LIB_INSTALL_DIR lib${LIB_SUFFIX} CACHE PATH "Library install dir") @@ -14,4 +14,4 @@ set(INCLUDE_INSTALL_DIR include CACHE PATH "Include install dir") set(SYSCONF_INSTALL_DIR /etc CACHE PATH "Configuration install dir") set(SHARE_INSTALL_DIR share CACHE PATH "Data install dir") -endif(WIN32) +endif(WIN32 AND NOT MINGW) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/CMakeLists.txt new/libproxy-0.4.15/libproxy/CMakeLists.txt --- old/libproxy-0.4.14/libproxy/CMakeLists.txt 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/CMakeLists.txt 2017-05-11 11:33:33.000000000 +0200 @@ -1,6 +1,6 @@ ### Project info project(libproxy) -set_project_version(0 4 14) +set_project_version(0 4 15) ### Add a global compilation stuff if (WIN32) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/cmake/devfiles.cmk new/libproxy-0.4.15/libproxy/cmake/devfiles.cmk --- old/libproxy-0.4.14/libproxy/cmake/devfiles.cmk 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/cmake/devfiles.cmk 2017-05-11 11:33:33.000000000 +0200 @@ -1,4 +1,4 @@ -if(NOT WIN32) +if(NOT WIN32 OR MINGW) # PkgConfig file set (PKGCONFIG_PREFIX ${CMAKE_INSTALL_PREFIX}) @@ -20,4 +20,4 @@ # CMake Find helper configure_file(${CMAKE_SOURCE_DIR}/libproxy/Findlibproxy.cmake.in ${CMAKE_BINARY_DIR}/Findlibproxy.cmake @ONLY) install(FILES ${CMAKE_BINARY_DIR}/Findlibproxy.cmake DESTINATION ${SHARE_INSTALL_DIR}/cmake/Modules) -endif() +endif(NOT WIN32 OR MINGW) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/cmake/modules/network_networkmanager.cmk new/libproxy-0.4.15/libproxy/cmake/modules/network_networkmanager.cmk --- old/libproxy-0.4.14/libproxy/cmake/modules/network_networkmanager.cmk 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/cmake/modules/network_networkmanager.cmk 2017-05-11 11:33:33.000000000 +0200 @@ -1,6 +1,6 @@ if (NOT WIN32 AND NOT APPLE) px_check_modules(NM libnm dbus-1) if (NOT NM_FOUND) - px_check_modules(NM NetworkManager dbus-1) + px_check_modules(NMold NetworkManager dbus-1) endif (NOT NM_FOUND) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/cmake/modules/pacrunner_mozjs.cmk new/libproxy-0.4.15/libproxy/cmake/modules/pacrunner_mozjs.cmk --- old/libproxy-0.4.14/libproxy/cmake/modules/pacrunner_mozjs.cmk 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/cmake/modules/pacrunner_mozjs.cmk 2017-05-11 11:33:33.000000000 +0200 @@ -9,7 +9,7 @@ elseif(NOT APPLE) option(WITH_MOZJS "Search for MOZJS package" ON) if (WITH_MOZJS) - pkg_search_module(MOZJS mozjs185) + pkg_search_module(MOZJS mozjs-38) if(MOZJS_FOUND) include_directories(${MOZJS_INCLUDE_DIRS}) link_directories(${MOZJS_LIBRARY_DIRS}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/cmake/modules.cmk new/libproxy-0.4.15/libproxy/cmake/modules.cmk --- old/libproxy-0.4.14/libproxy/cmake/modules.cmk 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/cmake/modules.cmk 2017-05-11 11:33:33.000000000 +0200 @@ -38,7 +38,10 @@ px_module(ignore_domain 1 1) px_module(ignore_hostname 1 1) px_module(ignore_ip 1 1) -px_module(network_networkmanager "${NM_FOUND}" 0 ${NM_LIBRARIES}) +if(NM_FOUND OR NMold_FOUND) + set(NM_BUILD 1) +endif(NM_FOUND OR NMold_FOUND) +px_module(network_networkmanager "${NM_BUILD}" 0 ${NM_LIBRARIES}${NMold_LIBRARIES}) px_module(pacrunner_mozjs "${MOZJS_FOUND}" ${BIPR} ${MOZJS_LIBRARIES}) px_module(pacrunner_natus "${NATUS_FOUND}" ${BIPR} ${NATUS_LIBRARIES}) px_module(pacrunner_webkit "${WEBKIT_FOUND}" ${BIPR} ${WEBKIT_LIBRARIES}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/modules/network_networkmanager.cpp new/libproxy-0.4.15/libproxy/modules/network_networkmanager.cpp --- old/libproxy-0.4.14/libproxy/modules/network_networkmanager.cpp 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/modules/network_networkmanager.cpp 2017-05-11 11:33:33.000000000 +0200 @@ -62,7 +62,7 @@ // If connection was successful, set it up dbus_connection_set_exit_on_disconnect(conn, false); - dbus_bus_add_match(conn, "type='signal',interface='" NM_DBUS_INTERFACE "',member='StateChange'", NULL); + dbus_bus_add_match(conn, "type='signal',interface='" NM_DBUS_INTERFACE "',member='StateChanged'", NULL); dbus_connection_flush(conn); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/modules/pacrunner_mozjs.cpp new/libproxy-0.4.15/libproxy/modules/pacrunner_mozjs.cpp --- old/libproxy-0.4.14/libproxy/modules/pacrunner_mozjs.cpp 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/modules/pacrunner_mozjs.cpp 2017-05-11 11:33:33.000000000 +0200 @@ -32,7 +32,11 @@ #define XP_WIN #endif #endif +#pragma GCC diagnostic ignored "-Winvalid-offsetof" #include <jsapi.h> +#pragma GCC diagnostic error "-Winvalid-offsetof" +#include <js/CallArgs.h> + #include "pacutils.h" #ifndef INET_ADDRSTRLEN @@ -43,15 +47,15 @@ #define INET6_ADDRSTRLEN 46 #endif -static JSBool dnsResolve_(JSContext *cx, jsval hostname, jsval *vp) { +static void dnsResolve_(JSContext *cx, JSString *hostname, JS::CallArgs *argv) { // Get hostname argument - char *tmp = JS_EncodeString(cx, JS_ValueToString(cx, hostname)); + char *tmp = JS_EncodeString(cx, hostname); // Set the default return value - JS_SET_RVAL(cx, vp, JSVAL_NULL); + argv->rval().setNull(); // Look it up - struct addrinfo *info = NULL; + struct addrinfo *info = nullptr; if (getaddrinfo(tmp, NULL, NULL, &info)) goto out; @@ -67,29 +71,32 @@ NI_NUMERICHOST)) goto out; // We succeeded - JS_SET_RVAL(cx, vp, STRING_TO_JSVAL(JS_NewStringCopyN(cx, tmp, strlen(tmp)))); - tmp = NULL; + argv->rval().setString(JS_NewStringCopyZ(cx, tmp)); + tmp = nullptr; out: if (info) freeaddrinfo(info); JS_free(cx, tmp); - return true; } -static JSBool dnsResolve(JSContext *cx, uintN /*argc*/, jsval *vp) { - jsval *argv = JS_ARGV(cx, vp); - return dnsResolve_(cx, argv[0], vp); +static bool dnsResolve(JSContext *cx, unsigned argc, JS::Value *vp) { + JS::CallArgs argv=JS::CallArgsFromVp(argc,vp); + dnsResolve_(cx, argv[0].toString(), &argv); + return true; } -static JSBool myIpAddress(JSContext *cx, uintN /*argc*/, jsval *vp) { +static bool myIpAddress(JSContext *cx, unsigned argc, JS::Value *vp) { + JS::CallArgs argv=JS::CallArgsFromVp(argc,vp); char *hostname = (char *) JS_malloc(cx, 1024); + if (!gethostname(hostname, 1023)) { JSString *myhost = JS_NewStringCopyN(cx, hostname, strlen(hostname)); - jsval arg = STRING_TO_JSVAL(myhost); - return dnsResolve_(cx, arg, vp); + dnsResolve_(cx, myhost, &argv); + } else { + argv.rval().setNull(); } + JS_free(cx, hostname); - JS_SET_RVAL(cx, vp, JSVAL_NULL); return true; } @@ -97,40 +104,48 @@ // This MUST be a static global static JSClass cls = { "global", JSCLASS_GLOBAL_FLAGS, - JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; class mozjs_pacrunner : public pacrunner { public: mozjs_pacrunner(string pac, const url& pacurl) throw (bad_alloc) : pacrunner(pac, pacurl) { - jsval rval; // Set defaults - this->jsrun = NULL; - this->jsctx = NULL; + this->jsrun = nullptr; + this->jsctx = nullptr; + JS_Init(); // Initialize Javascript runtime environment if (!(this->jsrun = JS_NewRuntime(1024 * 1024))) goto error; if (!(this->jsctx = JS_NewContext(this->jsrun, 1024 * 1024))) goto error; - //JS_SetOptions(this->jsctx, JSOPTION_VAROBJFIX); - //JS_SetVersion(this->jsctx, JSVERSION_LATEST); - //JS_SetErrorReporter(cx, reportError); - if (!(this->jsglb = JS_NewCompartmentAndGlobalObject(this->jsctx, &cls, NULL))) goto error; - if (!JS_InitStandardClasses(this->jsctx, this->jsglb)) goto error; - - // Define Javascript functions - JS_DefineFunction(this->jsctx, this->jsglb, "dnsResolve", dnsResolve, 1, 0); - JS_DefineFunction(this->jsctx, this->jsglb, "myIpAddress", myIpAddress, 0, 0); - JS_EvaluateScript(this->jsctx, this->jsglb, JAVASCRIPT_ROUTINES, - strlen(JAVASCRIPT_ROUTINES), "pacutils.js", 0, &rval); - - // Add PAC to the environment - JS_EvaluateScript(this->jsctx, this->jsglb, pac.c_str(), - strlen(pac.c_str()), pacurl.to_string().c_str(), 0, &rval); - return; - + { + JS::RootedValue rval(this->jsctx); + JS::CompartmentOptions compart_opts; + compart_opts.setVersion(JSVERSION_LATEST); + + this->jsglb = new JS::Heap<JSObject*>(JS_NewGlobalObject( + this->jsctx, &cls, + nullptr, JS::DontFireOnNewGlobalHook, + compart_opts)); + + if (!(this->jsglb)) goto error; + JS::RootedObject global(this->jsctx,this->jsglb->get()); + if (!(this->jsac = new JSAutoCompartment(this->jsctx, global))) goto error; + if (!JS_InitStandardClasses(this->jsctx, global)) goto error; + + // Define Javascript functions + JS_DefineFunction(this->jsctx, global, "dnsResolve", dnsResolve, 1, 0); + JS_DefineFunction(this->jsctx, global, "myIpAddress", myIpAddress, 0, 0); + JS::CompileOptions options(this->jsctx); + options.setUTF8(true); + + JS::Evaluate(this->jsctx, global, options, JAVASCRIPT_ROUTINES, + strlen(JAVASCRIPT_ROUTINES), &rval); + + // Add PAC to the environment + JS::Evaluate(this->jsctx, global, options, pac.c_str(), pac.length(), &rval); + return; + } error: if (this->jsctx) JS_DestroyContext(this->jsctx); if (this->jsrun) JS_DestroyRuntime(this->jsrun); @@ -138,9 +153,11 @@ } ~mozjs_pacrunner() { + if (this->jsac) delete this->jsac; + if (this->jsglb) delete this->jsglb; if (this->jsctx) JS_DestroyContext(this->jsctx); if (this->jsrun) JS_DestroyRuntime(this->jsrun); - // JS_ShutDown()? + JS_ShutDown(); } string run(const url& url_) throw (bad_alloc) { @@ -152,17 +169,17 @@ if (tmphost) JS_free(this->jsctx, tmphost); throw bad_alloc(); } - jsval args[2] = { - STRING_TO_JSVAL(JS_NewStringCopyN(this->jsctx, tmpurl, strlen(tmpurl))), - STRING_TO_JSVAL(JS_NewStringCopyN(this->jsctx, tmphost, strlen(tmphost))) - }; + JS::AutoValueArray<2> args(this->jsctx); + args[0].setString(JS_NewStringCopyZ(this->jsctx, tmpurl)); + args[1].setString(JS_NewStringCopyZ(this->jsctx, tmphost)); // Find the proxy (call FindProxyForURL()) - jsval rval; - JSBool result = JS_CallFunctionName(this->jsctx, this->jsglb, "FindProxyForURL", 2, args, &rval); + JS::RootedValue rval(this->jsctx); + JS::RootedObject global(this->jsctx,this->jsglb->get()); + bool result = JS_CallFunctionName(this->jsctx, global, "FindProxyForURL", args, &rval); if (!result) return ""; - char * tmpanswer = JS_EncodeString(this->jsctx, JS_ValueToString(this->jsctx, rval)); + char * tmpanswer = JS_EncodeString(this->jsctx, rval.toString()); string answer = string(tmpanswer); JS_free(this->jsctx, tmpanswer); @@ -173,7 +190,8 @@ private: JSRuntime *jsrun; JSContext *jsctx; - JSObject *jsglb; + JS::Heap<JSObject*> *jsglb; + JSAutoCompartment *jsac; }; PX_PACRUNNER_MODULE_EZ(mozjs, "JS_DefineFunction", "mozjs"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/modules/wpad_dns_alias.cpp new/libproxy-0.4.15/libproxy/modules/wpad_dns_alias.cpp --- old/libproxy-0.4.14/libproxy/modules/wpad_dns_alias.cpp 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/modules/wpad_dns_alias.cpp 2017-05-11 11:33:33.000000000 +0200 @@ -39,6 +39,7 @@ lastpac = *pac = lasturl->get_pac(); if (!lastpac) { delete lasturl; + lasturl = NULL; return NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/proxy.cpp new/libproxy-0.4.15/libproxy/proxy.cpp --- old/libproxy-0.4.14/libproxy/proxy.cpp 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/proxy.cpp 2017-05-11 11:33:33.000000000 +0200 @@ -266,7 +266,7 @@ if (debug) { if (configurator) { cerr << "Configuration extension is: " << typeid(*configurator).name() << endl; - cerr << "Ingored list is: " << ignore << endl; + cerr << "Ignored list is: " << ignore << endl; } else { cerr << "No configuration extension found." << endl; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.14/libproxy/test/get-pac-test.cpp new/libproxy-0.4.15/libproxy/test/get-pac-test.cpp --- old/libproxy-0.4.14/libproxy/test/get-pac-test.cpp 2017-01-09 15:22:22.000000000 +0100 +++ new/libproxy-0.4.15/libproxy/test/get-pac-test.cpp 2017-05-11 11:33:33.000000000 +0200 @@ -119,6 +119,14 @@ csock = accept(m_sock, (sockaddr*) &addr, &len); assert(csock > 0); + // OSX/BSD may not have MSG_NOSIGNAL, try SO_NOSIGPIPE instead +#ifndef MSG_NOSIGNAL +#define MSG_NOSIGNAL 0 +#ifdef SO_NOSIGPIPE + int no_sig_pipe = 1; + setsockopt(csock, SOL_SOCKET, SO_NOSIGPIPE, &no_sig_pipe, sizeof(int)); +#endif +#endif #ifdef SO_NOSIGPIPE int i = 1; @@ -179,6 +187,7 @@ ret = send(csock, (void*)basic, strlen(basic), 0); assert(ret == strlen(basic)); shutdown(csock, SHUT_RDWR); + close(csock); } void sendTruncated(int csock) @@ -193,6 +202,7 @@ ret = send(csock, (void*)basic, strlen(basic), 0); assert(ret == strlen(basic)); shutdown(csock, SHUT_RDWR); + close(csock); } void sendOverflow(int csock) @@ -214,6 +224,7 @@ abort(); // Test failed... the socket should not accept the whole buffer delete[] buf; shutdown(csock, SHUT_RDWR); + close(csock); } void sendChunked(int csock) @@ -233,6 +244,7 @@ ret = send(csock, (void*)chunked, strlen(chunked), 0); assert(ret == strlen(chunked)); shutdown(csock, SHUT_RDWR); + close(csock); } void sendWithoutContentLength(int csock) @@ -246,6 +258,7 @@ ret = send(csock, (void*)basic, strlen(basic), 0); assert(ret == strlen(basic)); shutdown(csock, SHUT_RDWR); + close(csock); } in_port_t m_port;
