Hello community,
here is the log from the commit of package libproxy for openSUSE:Factory checked in at 2016-01-21 23:41:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libproxy (Old)
and /work/SRC/openSUSE:Factory/.libproxy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libproxy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libproxy/libproxy-plugins.changes 2015-07-16 17:16:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libproxy.new/libproxy-plugins.changes 2016-01-21 23:41:14.000000000 +0100
@@ -1,0 +2,26 @@
+Tue Jan 12 16:46:37 UTC 2016 - dimstar@opensuse.org
+
+- Update to version 0.4.12:
+ + Move development to github.com/libproxy/libproxy.
+ + Fix fd leak in get_pac (Bug #185).
+ + Detect running MATE session (Bug #186, Part1).
+ + Fix linking of perl bindings to pthread (Bug #182).
+ + Correctly detect spidermonky (mozjs185) (Bug #188).
+ + Stop pxgsettings from segfaulting on exit (Bug #192).
+ + Fix test #10 (Bug #189).
+ + Fix build on Mac OS X (Bug #183).
+ + Add a generic KDE Config module (fix crashes of Qt5 based
+ apps) (issue#4).
+- Drop upstream fixed patches:
+ + libproxy-pxgsettings-crash.patch
+ + libproxy-no-libperl.patch
+ + libproxy-pxgsettings-signals.patch
+- Rename libproxy1-config-kde4 subpackage to libproxy-config-kde,
+ following upstreams introduction of the generic config loader.
+- Require libKF5ConfigCore5 from libproxy1-config-kde (we don't
+ really need the library, but kreadconfig5 in this package).
+- Replace libkde4-devel and libqt4-devel BuildRequires with
+ libKF5ConfigCore5: the new KDE config parser interacts directly
+ with kreadconfig5 and does not link to Qt.
+
+-------------------------------------------------------------------
libproxy.changes: same change
Old:
----
libproxy-0.4.11.tar.gz
libproxy-no-libperl.patch
libproxy-pxgsettings-crash.patch
libproxy-pxgsettings-signals.patch
New:
----
0.4.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libproxy-plugins.spec ++++++
--- /var/tmp/diff_new_pack.t96Dq4/_old 2016-01-21 23:41:16.000000000 +0100
+++ /var/tmp/diff_new_pack.t96Dq4/_new 2016-01-21 23:41:16.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libproxy-plugins
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -31,7 +31,7 @@
Summary: Libproxy provides consistent proxy configuration to applications
License: GPL-2.0+ and LGPL-2.1+
Group: System/Libraries
-Version: 0.4.11
+Version: 0.4.12
Release: 0
# FIXME: verify if test suite works - 0.4.10 has weird behavior in some cases, where the internal server times out.
%if 0%{?build_snapshot}
@@ -39,16 +39,10 @@
%else
%define _sourcename %{_name}-%{version}
%endif
-Source: http://libproxy.googlecode.com/files/%{_name}-%{version}.tar.gz
+Source: https://github.com/libproxy/%{_name}/archive/%{version}.tar.gz
# Script used for automatic snapshot updates
Source98: update-from-svn.sh
Source99: baselibs.conf
-# PATCH-FIX-UPSTREAM libproxy-pxgsettings-crash.patch bnc#836576 dimstar@opensuse.org -- Fix crash when pxgsettings is closing, taken from svn.
-Patch0: libproxy-pxgsettings-crash.patch
-# PATCH-FIX-UPSTREAM libproxy-no-libperl.patch mls@suse.de -- Do not link against libperl. Submitted upstream.
-Patch1: libproxy-no-libperl.patch
-# PATCH-FIX-UPSTREAM libproxy-pxgsettings-signals.patch dimstar@opensuse.org -- Due to changes in glib, signals are not emited on settings that are not read AFTER connecting the signal
-Patch2: libproxy-pxgsettings-signals.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cmake
BuildRequires: gcc-c++
@@ -74,8 +68,7 @@
BuildRequires: pkgconfig(webkitgtk-3.0)
%endif
BuildRequires: NetworkManager-devel
-BuildRequires: libkde4-devel
-BuildRequires: libqt4-devel
+BuildRequires: libKF5ConfigCore5
%if %{build_mozjs}
BuildRequires: pkgconfig(mozjs185)
%endif
@@ -188,10 +181,12 @@
A module to extend libproxy with capabilities to query GNOME about
proxy settings.
-%package -n libproxy1-config-kde4
+%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
+Requires: libKF5ConfigCore5
%if 0%{?suse_version}
Recommends: libproxy1-pacrunner = %{version}
Supplements: packageand(libproxy1:libkde4)
@@ -200,8 +195,10 @@
%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-kde4
+%description -n libproxy1-config-kde
A module to extend libproxy with capabilities to query KDE4 about proxy
settings.
@@ -314,9 +311,6 @@
%prep
%setup -q -n %{_sourcename}
-%patch0
-%patch1
-%patch2 -p1
mkdir build
%build
@@ -441,9 +435,9 @@
%if ! 0%{?windows}
-%files -n libproxy1-config-kde4
+%files -n libproxy1-config-kde
%defattr(-, root, root)
-%{_libdir}/libproxy-%{version}/modules/config_kde4.so
+%{_libdir}/libproxy-%{version}/modules/config_kde.so
%if 0%{?favor_gtk2}
++++++ libproxy.spec ++++++
--- /var/tmp/diff_new_pack.t96Dq4/_old 2016-01-21 23:41:16.000000000 +0100
+++ /var/tmp/diff_new_pack.t96Dq4/_new 2016-01-21 23:41:16.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libproxy
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -31,7 +31,7 @@
Summary: Libproxy provides consistent proxy configuration to applications
License: GPL-2.0+ and LGPL-2.1+
Group: System/Libraries
-Version: 0.4.11
+Version: 0.4.12
Release: 0
# FIXME: verify if test suite works - 0.4.10 has weird behavior in some cases, where the internal server times out.
%if 0%{?build_snapshot}
@@ -39,16 +39,10 @@
%else
%define _sourcename %{_name}-%{version}
%endif
-Source: http://libproxy.googlecode.com/files/%{_name}-%{version}.tar.gz
+Source: https://github.com/libproxy/%{_name}/archive/%{version}.tar.gz
# Script used for automatic snapshot updates
Source98: update-from-svn.sh
Source99: baselibs.conf
-# PATCH-FIX-UPSTREAM libproxy-pxgsettings-crash.patch bnc#836576 dimstar@opensuse.org -- Fix crash when pxgsettings is closing, taken from svn.
-Patch0: libproxy-pxgsettings-crash.patch
-# PATCH-FIX-UPSTREAM libproxy-no-libperl.patch mls@suse.de -- Do not link against libperl. Submitted upstream.
-Patch1: libproxy-no-libperl.patch
-# PATCH-FIX-UPSTREAM libproxy-pxgsettings-signals.patch dimstar@opensuse.org -- Due to changes in glib, signals are not emited on settings that are not read AFTER connecting the signal
-Patch2: libproxy-pxgsettings-signals.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cmake
BuildRequires: gcc-c++
@@ -74,8 +68,7 @@
BuildRequires: pkgconfig(webkitgtk-3.0)
%endif
BuildRequires: NetworkManager-devel
-BuildRequires: libkde4-devel
-BuildRequires: libqt4-devel
+BuildRequires: libKF5ConfigCore5
%if %{build_mozjs}
BuildRequires: pkgconfig(mozjs185)
%endif
@@ -188,10 +181,12 @@
A module to extend libproxy with capabilities to query GNOME about
proxy settings.
-%package -n libproxy1-config-kde4
+%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
+Requires: libKF5ConfigCore5
%if 0%{?suse_version}
Recommends: libproxy1-pacrunner = %{version}
Supplements: packageand(libproxy1:libkde4)
@@ -200,8 +195,10 @@
%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-kde4
+%description -n libproxy1-config-kde
A module to extend libproxy with capabilities to query KDE4 about proxy
settings.
@@ -314,9 +311,6 @@
%prep
%setup -q -n %{_sourcename}
-%patch0
-%patch1
-%patch2 -p1
mkdir build
%build
@@ -441,9 +435,9 @@
%if ! 0%{?windows}
-%files -n libproxy1-config-kde4
+%files -n libproxy1-config-kde
%defattr(-, root, root)
-%{_libdir}/libproxy-%{version}/modules/config_kde4.so
+%{_libdir}/libproxy-%{version}/modules/config_kde.so
%if 0%{?favor_gtk2}
++++++ libproxy-0.4.11.tar.gz -> 0.4.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/NEWS new/libproxy-0.4.12/NEWS
--- old/libproxy-0.4.11/NEWS 2012-11-30 23:31:17.000000000 +0100
+++ new/libproxy-0.4.12/NEWS 2016-01-12 17:41:07.000000000 +0100
@@ -1,3 +1,16 @@
+New in version 0.4.12
+==============================
+* Move development to github.com/libproxy/libproxy
+* Fix fd leak in get_pac (Bug #185)
+* Detect running MATE session (Bug #186, Part1).
+* Fix linking of perl bindings to pthread (Bug #182)
+* Correctly detect spidermonky (mozjs185) (Bug #188)
+* Stop pxgsettings from segfaulting on exit (Bug #192)
+* Fix test #10 (Bug #189)
+* Fix build on Mac OS X (Bug #183)
+* Add a generic KDE Config module (fix crashes of Qt5 based
+ apps) (issue#4)
+
New in version 0.4.11
==============================
* Build fixes with cmake 2.8.10+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/bindings/perl/src/CMakeLists.txt new/libproxy-0.4.12/bindings/perl/src/CMakeLists.txt
--- old/libproxy-0.4.11/bindings/perl/src/CMakeLists.txt 2010-11-24 21:50:12.000000000 +0100
+++ new/libproxy-0.4.12/bindings/perl/src/CMakeLists.txt 2016-01-12 17:41:07.000000000 +0100
@@ -12,7 +12,7 @@
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/perl/blib/arch/auto/Net)
add_library(PLlibproxy SHARED ${Libproxy_LIB_SRCS})
-target_link_libraries(PLlibproxy ${PERL_LIBRARY} libproxy)
+target_link_libraries(PLlibproxy libproxy pthread)
set_target_properties(PLlibproxy PROPERTIES OUTPUT_NAME "Libproxy")
set_target_properties(PLlibproxy PROPERTIES PREFIX "")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/cmake/cpack.cmk new/libproxy-0.4.12/cmake/cpack.cmk
--- old/libproxy-0.4.11/cmake/cpack.cmk 2010-08-22 16:02:23.000000000 +0200
+++ new/libproxy-0.4.12/cmake/cpack.cmk 2016-01-12 17:41:07.000000000 +0100
@@ -1,6 +1,6 @@
set(CPACK_IGNORE_FILES "CMakeCache.txt;install_manifest.txt;/Testing/;/Makefile$;\\\\.tar.gz$;\\\\.so[.0-9]*$;/build/;/_CPack_Packages/;/CMakeFiles/;/CVS/;/\\\\.svn/;/\\\\.git/;\\\\.swp$;\\\\.#;/#")
set(CPACK_SOURCE_IGNORE_FILES ${CPACK_IGNORE_FILES})
-set(CPACK_SOURCE_GENERATOR TGZ ZIP)
+set(CPACK_SOURCE_GENERATOR TXZ ZIP)
set(CPACK_SOURCE_TOPLEVEL_TAG "")
function(set_project_version MAJOR MINOR PATCH)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/CMakeLists.txt new/libproxy-0.4.12/libproxy/CMakeLists.txt
--- old/libproxy-0.4.11/libproxy/CMakeLists.txt 2012-11-30 23:31:35.000000000 +0100
+++ new/libproxy-0.4.12/libproxy/CMakeLists.txt 2016-01-12 17:41:07.000000000 +0100
@@ -1,6 +1,6 @@
### Project info
project(libproxy)
-set_project_version(0 4 11)
+set_project_version(0 4 12)
### Add a global compilation stuff
if (WIN32)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/Libproxy-1.0.gir new/libproxy-0.4.12/libproxy/Libproxy-1.0.gir
--- old/libproxy-0.4.11/libproxy/Libproxy-1.0.gir 2011-08-11 18:12:37.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/Libproxy-1.0.gir 1970-01-01 01:00:00.000000000 +0100
@@ -1,84 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations. -->
-http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-
- <record name="ProxyFactory" c:type="pxProxyFactory" disguised="1">
- <method name="free" c:identifier="px_proxy_factory_free">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="get_proxies" c:identifier="px_proxy_factory_get_proxies">
- <doc xml:whitespace="preserve">Get which proxies to use for the specified URL.
-A NULL-terminated array of proxy strings is returned.
-If the first proxy fails, the second should be tried, etc...
-Don't forget to free the strings/array when you are done.
-If an unrecoverable error occurs, this function returns NULL.
-in a separate thread (is thread-safe). In most cases, the time
-required to complete this function call is simply the time required
-to read the configuration (i.e. from gconf, kconfig, etc).
-In the case of PAC, if no valid PAC is found in the cache (i.e.
-configuration has changed, cache is invalid, etc), the PAC file is
-downloaded and inserted into the cache. This is the most expensive
-operation as the PAC is retrieved over the network. Once a PAC exists
-in the cache, it is merely a javascript invocation to evaluate the PAC.
-One should note that DNS can be called from within a PAC during
-javascript invocation.
-In the case of WPAD, WPAD is used to automatically locate a PAC on the
-network. Currently, we only use DNS for this, but other methods may
-be implemented in the future. Once the PAC is located, normal PAC
-performance (described above) applies.
-The format of the returned proxy strings are as follows:
-- http://[username:password@]proxy:port
-- socks://[username:password@]proxy:port
-- socks5://[username:password@]proxy:port
-- socks4://[username:password@]proxy:port
-- <procotol>://[username:password@]proxy:port
-- direct://
-Please note that the username and password in the above URLs are optional
-and should be use to authenticate the connection if present.
-For SOCKS proxies, when the protocol version is specified (socks4:// or
-sock5://), it is expected that only this version is used. When only
-socks:// is set, the client MUST try SOCKS version 5 protocol and, on
-connection failure, fallback to SOCKS version 4.
-Other proxying protocols may exist. It is expected that the returned
-configuration scheme shall match the network service name of the
-proxy protocol or the service name of the protocol being proxied if the
-previous does not exist. As an example, on Mac OS X you can configure a
-RTSP streaming proxy. The expected returned configuration would be:
-- rtsp://[username:password@]proxy:port</doc>
- <return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">A NULL-terminated array of proxy strings to use</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="url" transfer-ownership="none">
- <doc xml:whitespace="preserve">The URL we are trying to reach</doc>
- <type name="utf8" c:type="char*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <function name="proxy_factory_new" c:identifier="px_proxy_factory_new">
- <doc xml:whitespace="preserve">Creates a new pxProxyFactory instance. This instance should be kept
-around as long as possible as it contains cached data to increase
-performance. Memory usage should be minimal (cache is small) and the
-cache lifespan is handled automatically.</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">A new pxProxyFactory instance or NULL on error</doc>
- <type name="ProxyFactory" c:type="pxProxyFactory*"/>
- </return-value>
- </function>
- </namespace>
-</repository>
Files old/libproxy-0.4.11/libproxy/Libproxy-1.0.typelib and new/libproxy-0.4.12/libproxy/Libproxy-1.0.typelib differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/cmake/libproxy.cmk new/libproxy-0.4.12/libproxy/cmake/libproxy.cmk
--- old/libproxy-0.4.11/libproxy/cmake/libproxy.cmk 2012-04-01 14:41:55.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/cmake/libproxy.cmk 2016-01-12 17:41:07.000000000 +0100
@@ -19,6 +19,7 @@
PROPERTY COMPILE_DEFINITIONS MODULEDIR="${MODULEDIR}";BUILTIN_MODULES=${BUILTIN_MODULES})
# When changing the SOVERSION here remember to also bump the 'favorite proxy .so' in python bindings.
set_target_properties(libproxy PROPERTIES PREFIX "" VERSION 1.0.0 SOVERSION 1)
+set_target_properties(libproxy PROPERTIES INTERFACE_LINK_LIBRARIES "")
set_target_properties(libproxy PROPERTIES LINK_INTERFACE_LIBRARIES "")
install(TARGETS libproxy DESTINATION ${LIB_INSTALL_DIR})
install(FILES proxy.h DESTINATION ${INCLUDE_INSTALL_DIR})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/cmake/modules/config_kde.cmk new/libproxy-0.4.12/libproxy/cmake/modules/config_kde.cmk
--- old/libproxy-0.4.11/libproxy/cmake/modules/config_kde.cmk 1970-01-01 01:00:00.000000000 +0100
+++ new/libproxy-0.4.12/libproxy/cmake/modules/config_kde.cmk 2016-01-12 17:41:07.000000000 +0100
@@ -0,0 +1,6 @@
+find_program(KDE4_CONF kreadconfig)
+find_program(KF5_CONF kreadconfig5)
+
+if (KDE4_CONF OR KF5_CONF)
+ set(KDE_FOUND 1)
+endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/cmake/modules/config_kde4.cmk new/libproxy-0.4.12/libproxy/cmake/modules/config_kde4.cmk
--- old/libproxy-0.4.11/libproxy/cmake/modules/config_kde4.cmk 2010-07-29 14:14:59.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/cmake/modules/config_kde4.cmk 1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-if (NOT WIN32 AND NOT APPLE)
- option(WITH_KDE4 "Search for KDE4 package" ON)
- if (WITH_KDE4)
- find_package(KDE4)
- find_package(Qt4)
- if(KDE4_FOUND AND QT4_FOUND)
- include(KDE4Defaults)
- set(KDE4_FOUND 1)
- set(KDE4_LIBRARIES ${KDE4_KDECORE_LIBS} ${QT_LIBRARIES})
- include_directories(${KDE4_INCLUDES} ${QT_INCLUDES})
- link_directories(${KDE_LIB_DIR})
- string(REGEX REPLACE " *-fno-exceptions" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
- else()
- set(KDE4_FOUND 0)
- endif()
- else()
- set(KDE4_FOUND 0)
- endif()
-endif()
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/cmake/modules/pacrunner_mozjs.cmk new/libproxy-0.4.12/libproxy/cmake/modules/pacrunner_mozjs.cmk
--- old/libproxy-0.4.11/libproxy/cmake/modules/pacrunner_mozjs.cmk 2011-06-20 12:31:41.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/cmake/modules/pacrunner_mozjs.cmk 2016-01-12 17:41:07.000000000 +0100
@@ -9,7 +9,7 @@
elseif(NOT APPLE)
option(WITH_MOZJS "Search for MOZJS package" ON)
if (WITH_MOZJS)
- pkg_search_module(MOZJS mozjs185>=1.8.5)
+ pkg_search_module(MOZJS mozjs185)
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.11/libproxy/cmake/modules.cmk new/libproxy-0.4.12/libproxy/cmake/modules.cmk
--- old/libproxy-0.4.11/libproxy/cmake/modules.cmk 2012-03-09 18:52:57.000000000 +0100
+++ new/libproxy-0.4.12/libproxy/cmake/modules.cmk 2016-01-12 17:41:07.000000000 +0100
@@ -11,7 +11,7 @@
include(cmake/modules/config_envvar.cmk)
include(cmake/modules/config_sysconfig.cmk)
include(cmake/modules/config_gnome.cmk)
-include(cmake/modules/config_kde4.cmk)
+include(cmake/modules/config_kde.cmk)
include(cmake/modules/config_macosx.cmk)
include(cmake/modules/network_networkmanager.cmk)
include(cmake/modules/pacrunner_mozjs.cmk)
@@ -32,7 +32,7 @@
px_module(config_sysconfig "${SYSCONFIG_FOUND}" 1)
px_module(config_gnome "${GNOME2_FOUND}" 0)
px_module(config_gnome3 "${GNOME3_FOUND}" 0)
-px_module(config_kde4 "${KDE4_FOUND}" 0 ${KDE4_LIBRARIES})
+px_module(config_kde "${KDE_FOUND}" 0)
px_module(config_macosx "${SC_FOUND}" 1 ${SC_LIBRARIES} ${CF_LIBRARIES})
px_module(config_w32reg "${WIN32}" 1)
px_module(ignore_domain 1 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/libproxy-config.cmake.in new/libproxy-0.4.12/libproxy/libproxy-config.cmake.in
--- old/libproxy-0.4.11/libproxy/libproxy-config.cmake.in 2011-06-11 23:58:39.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/libproxy-config.cmake.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-# - Try to find libproxy
-# Once done this will define
-#
-# LIBPROXY_FOUND - system has libproxy
-# LIBPROXY_INCLUDE_DIR - the libproxy include directory
-# LIBPROXY_LIBRARIES - libproxy library
-#
-# Copyright (c) 2010, Dominique Leuenberger
-#
-# Redistribution and use is allowed according the license terms
-# of libproxy, which this file is integrated part of.
-
-# Find proxy.h and the corresponding library (libproxy.so)
-FIND_PATH(LIBPROXY_INCLUDE_DIR proxy.h )
-FIND_LIBRARY(LIBPROXY_LIBRARIES NAMES proxy )
-
-# Set library version
-SET(LIBPROXY_VERSION @PROJECT_VERSION@)
-SET(LIBPROXY_VERSION_MAJOR @PROJECT_VERSION_MAJOR@)
-SET(LIBPROXY_VERSION_MINOR @PROJECT_VERSION_MINOR@)
-SET(LIBPROXY_VERSION_PATCH @PROJECT_VERSION_PATCH@)
-
-# Give output, should this be wished (this handles also QUIET and REQUIRED
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(libproxy DEFAULT_MSG LIBPROXY_LIBRARIES LIBPROXY_INCLUDE_DIR)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/config_gnome3.cpp new/libproxy-0.4.12/libproxy/modules/config_gnome3.cpp
--- old/libproxy-0.4.11/libproxy/modules/config_gnome3.cpp 2012-07-05 18:50:06.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/config_gnome3.cpp 2016-01-12 17:41:07.000000000 +0100
@@ -288,7 +288,9 @@
static bool gnome_config_extension_test() {
return (getenv("GNOME_DESKTOP_SESSION_ID")
|| (getenv("DESKTOP_SESSION")
- && string(getenv("DESKTOP_SESSION")) == "gnome"));
+ && string(getenv("DESKTOP_SESSION")) == "gnome")
+ || (getenv("DESKTOP_SESSION")
+ && string(getenv("DESKTOP_SESSION")) == "mate"));
}
MM_MODULE_INIT(gnome_config_extension,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/config_kde.cpp new/libproxy-0.4.12/libproxy/modules/config_kde.cpp
--- old/libproxy-0.4.11/libproxy/modules/config_kde.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/libproxy-0.4.12/libproxy/modules/config_kde.cpp 2016-01-12 17:41:07.000000000 +0100
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * libproxy - A library for proxy configuration
+ * Copyright (C) 2006 Nathaniel McCallum
+ * Copyright (C) 2016 Fabian Vogt
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ ******************************************************************************/
+
+#include <algorithm>
+#include <cstdlib>
+#include <cstdio>
+
+#include "../extension_config.hpp"
+using namespace libproxy;
+
+class kde_config_extension : public config_extension {
+public:
+ kde_config_extension()
+ {
+ try {
+ // Try the KF5 one first
+ command = "kreadconfig5";
+ kde_config_val("proxyType", "-1");
+ return; // Worked
+ }
+ catch(...) {}
+
+ try {
+ // The KDE4 one next
+ command = "kreadconfig";
+ kde_config_val("proxyType", "-1");
+ return; // Worked
+ }
+ catch(...) {}
+
+ // Neither worked, so throw in get_config
+ command = "";
+ }
+
+ vector<url> get_config(const url &dst) throw (runtime_error) {
+ // See constructor
+ if(command.empty())
+ throw runtime_error("Unable to read configuration");
+
+ vector<url> response;
+
+ string tmp, proxyType = kde_config_val("ProxyType", "-1");
+
+ // Just switch on the first byte, either a digit, '-' ("-1") or '\0'
+ switch(proxyType.c_str()[0])
+ {
+ case '1':
+ tmp = kde_config_val(dst.get_scheme() + "Proxy", "");
+ if(tmp.empty()) {
+ tmp = kde_config_val("httpProxy", "");
+ if(tmp.empty()) {
+ tmp = kde_config_val("socksProxy", "");
+ if(tmp.empty())
+ tmp = "direct://";
+ }
+ }
+
+ // KDE uses "http://127.0.0.1 8080" instead of "http://127.0.0.1:8080"
+ replace(tmp.begin(), tmp.end(), ' ', ':');
+
+ response.push_back(url(tmp));
+ break;
+
+ case '2':
+ tmp = "pac+" + kde_config_val("Proxy Config Script", "");
+ if (url::is_valid(tmp))
+ {
+ response.push_back(url(tmp));
+ break;
+ }
+ // else fallthrough
+
+ case '3':
+ response.push_back(url(string("wpad://")));
+ break;
+
+ case '4':
+ throw runtime_error("User config_envvar"); // We'll bypass this config plugin and let the envvar plugin wor
+
+ case '0':
+ default: // Not set or unknown/illegal
+ response.push_back(url("direct://"));
+ break;
+ }
+
+ return response;
+ }
+
+ string get_ignore(const url&) {
+ // See constructor
+ if(command.empty())
+ return "";
+
+ string proxyType = kde_config_val("ProxyType", "-1");
+ if(proxyType.c_str()[0] != '1')
+ return ""; // Not manual config
+
+ string prefix = kde_config_val("ReversedException", "false") != "false" ? "-" : "";
+ return prefix + kde_config_val("NoProxyFor", ""); // Already in the right format
+ }
+
+private:
+ // Neither key nor def must contain '
+ string kde_config_val(const string &key, const string &def) throw (runtime_error) {
+ string cmdline =
+ command + " --file kioslaverc --group 'Proxy Settings' --key '" + key + "' --default '" + def + "'";
+
+ FILE *pipe = popen(cmdline.c_str(), "r");
+ if (!pipe)
+ throw runtime_error("Unable to run command");
+
+ char buffer[128];
+ string result = "";
+ while (!feof(pipe)) {
+ if (fgets(buffer, 128, pipe) != NULL)
+ result += buffer; // TODO: If this throws bad_alloc, pipe is leaked
+ }
+
+ pclose(pipe);
+
+ // Trim newlines and whitespace at end
+ result.erase(result.begin() + (result.find_last_not_of(" \n\t")+1), result.end());
+ return result;
+ }
+
+ // Whether to use kreadconfig or kreadconfig5
+ string command;
+};
+
+MM_MODULE_INIT_EZ(kde_config_extension, getenv("KDE_FULL_SESSION"), NULL, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/config_kde4.cpp new/libproxy-0.4.12/libproxy/modules/config_kde4.cpp
--- old/libproxy-0.4.11/libproxy/modules/config_kde4.cpp 2012-07-05 18:50:06.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/config_kde4.cpp 1970-01-01 01:00:00.000000000 +0100
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * libproxy - A library for proxy configuration
- * Copyright (C) 2006 Nathaniel McCallum
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- ******************************************************************************/
-
-#include
-#include
-#include
-
-#include "../extension_config.hpp"
-using namespace libproxy;
-
-static void dummyMessageHandler(QtMsgType, const char *) {}
-
-class kde_config_extension : public config_extension {
-public:
- kde_config_extension() {
- /* The constructor of KConfig uses qAppName() which asumes a QApplication object to exist.
- If not, an error message is written. This error message and all others seems to be disabled for
- libraries, but to be sure, we can reemplace temporaly Qt's internal message handler by a
- dummy implementation. */
-
- // Open the config file
- QtMsgHandler oldHandler = qInstallMsgHandler(dummyMessageHandler);
- this->cfg = new KConfig("kioslaverc", KConfig::NoGlobals);
- this->grp = new KConfigGroup(this->cfg, "Proxy Settings");
- qInstallMsgHandler(oldHandler);
- }
-
- ~kde_config_extension() {
- delete this->grp;
- delete this->cfg;
- }
-
- vector<url> get_config(const url &dst) throw (runtime_error) {
- string tmp;
- QString prxy;
- vector<url> response;
-
- switch (this->grp->readEntry("ProxyType", 0)) {
- case 1: // Use a manual proxy
- prxy = this->grp->readEntry(QString(dst.get_scheme().c_str()) + "Proxy", "");
- if (prxy.isEmpty()) {
- prxy = this->grp->readEntry("httpProxy", "");
- if (prxy.isEmpty()) {
- prxy = this->grp->readEntry("socksProxy", "");
- if (prxy.isEmpty())
- prxy = "direct://";
- };
- };
- // The result of toLatin1() is undefined for non-Latin1 strings.
- // However, KDE saves this entry using IDN and percent-encoding, so no problem...
- response.push_back(string(prxy.toLatin1().data()));
- break;
- case 2: // Use a manual PAC
- // The result of toLatin1() is undefined for non-Latin1 strings.
- // However, KDE saves this entry using IDN and percent-encoding, so no problem...
- tmp = string(this->grp->readEntry("Proxy Config Script", "").toLatin1().data());
- if (url::is_valid("pac+" + tmp))
- response.push_back(url("pac+" + tmp));
- else
- response.push_back(string("wpad://"));
- break;
- case 3: // Use WPAD
- response.push_back(string("wpad://"));
- break;
- case 4: // Use envvar
- throw runtime_error("User config_envvar"); // We'll bypass this config plugin and let the envvar plugin work
- default:
- response.push_back(url("direct://"));
- break;
- };
-
- return response;
- }
-
- string get_ignore(const url& /*dst*/) {
- // Apply ignore list only for manual proxy configuration
- if (this->grp->readEntry("ProxyType", 0) == 1) {
- string prefix = this->grp->readEntry("ReversedException", false) ? "-" : "";
- QStringList list = this->grp->readEntry("NoProxyFor", QStringList());
- for (int i = 0; i < list.size(); ++i)
- list[i] = QUrl(list.at(i)).toEncoded();
- return prefix + string(list.join(",").toLatin1().data());
- }
- return "";
- }
-
-private:
- KConfig* cfg;
- KConfigGroup* grp;
-};
-
-MM_MODULE_INIT_EZ(kde_config_extension, getenv("KDE_FULL_SESSION"), NULL, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/config_macosx.cpp new/libproxy-0.4.12/libproxy/modules/config_macosx.cpp
--- old/libproxy-0.4.11/libproxy/modules/config_macosx.cpp 2012-07-05 18:50:06.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/config_macosx.cpp 2016-01-12 17:41:07.000000000 +0100
@@ -114,7 +114,7 @@
class macosx_config_extension : public config_extension {
public:
- vector<url> get_config(const url &url) throw (runtime_error) {
+ vector<url> get_config(const url &the_url) throw (runtime_error) {
string tmp;
CFDictionaryRef proxies = SCDynamicStoreCopyProxies(NULL);
vector<url> response;
@@ -136,8 +136,8 @@
}
// http:// or socks:// (TODO: gopher:// and rtsp:// ???)
- else if ((protocol_url(proxies, toupper(url.get_scheme()), tmp) && url::is_valid(tmp)) ||
- (protocol_url(proxies, capitalize(url.get_scheme()), tmp) && url::is_valid(tmp)) ||
+ else if ((protocol_url(proxies, toupper(the_url.get_scheme()), tmp) && url::is_valid(tmp)) ||
+ (protocol_url(proxies, capitalize(the_url.get_scheme()), tmp) && url::is_valid(tmp)) ||
(protocol_url(proxies, toupper("http"), tmp) && url::is_valid(tmp)) ||
(protocol_url(proxies, toupper("socks"), tmp) && url::is_valid(tmp))) {
CFRelease(proxies);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/config_sysfile.cpp new/libproxy-0.4.12/libproxy/modules/config_sysfile.cpp
--- old/libproxy-0.4.11/libproxy/modules/config_sysfile.cpp 2011-08-11 17:34:08.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/config_sysfile.cpp 1970-01-01 01:00:00.000000000 +0100
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * libproxy - A library for proxy configuration
- * Copyright (C) 2010 Dominique Leuenberger
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- ******************************************************************************/
-
-#include <cstdlib>
-
-#include "../extension_config.hpp"
-// include "helper_configfile.hpp"
-using namespace libproxy;
-
-#define SYSCONFDIR /etc
-#define CFGFILE libproxy.conf
-
-class sysfile_config_extension : public config_extension {
-public:
- url get_config(url url) throw (runtime_error) {
- pxConfigFile pxCFG(abolute_cfgpath);
- switch case pxCFG.pxConfigType
- case PX_TYPE_AUTO:
- return "wpad://";
- break;
- case PX_TYPE_PAC:
- break;
- case_PX_TYPE_MANUAL:
- break;
- case PX_TYPE_NONE:
- return "direct://";
- break;
- }
-
-};
-
-
-bool function cfg_file_exists {
- struct stat stFileInfo;
- return ! stat("/etc/libproxy.conf", stFileInfo);
-}
-
-MM_MODULE_INIT_EZ(sysfile_config_extension, cfg_file_exists, NULL, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/helper_configfile.cpp new/libproxy-0.4.12/libproxy/modules/helper_configfile.cpp
--- old/libproxy-0.4.11/libproxy/modules/helper_configfile.cpp 2010-09-26 15:53:35.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/helper_configfile.cpp 1970-01-01 01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * libproxy - A library for proxy configuration
- * Copyright (C) 2010 Dominique Leuenberger
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- ******************************************************************************/
-
-Class pxConfigFile {
- public:
- enum pxConfigType {
- PX_TYPE_NONE,
- PX_TYPE_MANUAL,
- PX_TYPE_PAC,
- PX_TYPE_AUTO
- }
-
- void pxConfigFile() {
- // Initialize the class, read the config file and get the arrays filled
-
- }
-};
-
-pxConfigFile::pxConfigFile {
-
-}
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/helper_configfile.hpp new/libproxy-0.4.12/libproxy/modules/helper_configfile.hpp
--- old/libproxy-0.4.11/libproxy/modules/helper_configfile.hpp 2010-09-26 15:48:00.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/helper_configfile.hpp 1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * libproxy - A library for proxy configuration
- * Copyright (C) 2010 Dominique Leuenberger
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- ******************************************************************************/
-
-Class pxConfigFile {
- public:
- enum pxConfigType {
- PX_TYPE_NONE,
- PX_TYPE_MANUAL,
- PX_TYPE_PAC,
- PX_TYPE_AUTO
- }
-
- virtual void pxConfigFile() {
- // Initialize the class, read the config file and get the arrays filled
-
- }
-}
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/ignore_ip.cpp.orig new/libproxy-0.4.12/libproxy/modules/ignore_ip.cpp.orig
--- old/libproxy-0.4.11/libproxy/modules/ignore_ip.cpp.orig 2012-07-05 20:24:05.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/ignore_ip.cpp.orig 1970-01-01 01:00:00.000000000 +0100
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * libproxy - A library for proxy configuration
- * Copyright (C) 2006 Nathaniel McCallum
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- ******************************************************************************/
-
-#include <cstdio>
-#include <cstring>
-
-#include "../extension_ignore.hpp"
-using namespace libproxy;
-
-static inline bool
-sockaddr_equals(const struct sockaddr *ip_a, const struct sockaddr *ip_b, const struct sockaddr *nm)
-{
- if (!ip_a || !ip_b) return false;
- if (ip_a->sa_family != ip_b->sa_family) return false;
- if (nm && ip_a->sa_family != nm->sa_family) return false;
-
- /* Setup the arrays */
- uint8_t bytes = 0, *a_data = NULL, *b_data = NULL, *nm_data = NULL;
- if (ip_a->sa_family == AF_INET)
- {
- bytes = 32 / 8;
- a_data = (uint8_t *) &((struct sockaddr_in *) ip_a)->sin_addr;
- b_data = (uint8_t *) &((struct sockaddr_in *) ip_b)->sin_addr;
- nm_data = nm ? (uint8_t *) &((struct sockaddr_in *) nm)->sin_addr : NULL;
- }
- else if (ip_a->sa_family == AF_INET6)
- {
- bytes = 128 / 8;
- a_data = (uint8_t *) &((struct sockaddr_in6 *) ip_a)->sin6_addr;
- b_data = (uint8_t *) &((struct sockaddr_in6 *) ip_b)->sin6_addr;
- nm_data = nm ? (uint8_t *) &((struct sockaddr_in6 *) nm)->sin6_addr : NULL;
- }
- else
- return false;
-
- for (int i=0 ; i < bytes ; i++)
- {
- if (nm && (a_data[i] & nm_data[i]) != (b_data[i] & nm_data[i]))
- return false;
- else if (!nm && (a_data[i] != b_data[i]))
- return false;
- }
- return true;
-}
-
-static inline sockaddr *
-sockaddr_from_string(string ip)
-{
- struct sockaddr *result = NULL;
-
- /* Try to parse */
- struct addrinfo *info = NULL;
- struct addrinfo flags;
- flags.ai_family = AF_UNSPEC;
- flags.ai_socktype = 0;
- flags.ai_protocol = 0;
- flags.ai_flags = AI_NUMERICHOST;
- if (getaddrinfo(ip.c_str(), NULL, &flags, &info) != 0 || !info) return result;
-
- /* Copy the results into our buffer */
- result = (sockaddr *) new char[info->ai_addrlen];
- if (!result) {
- freeaddrinfo(info);
- return result;
- }
- memcpy(result, info->ai_addr, info->ai_addrlen);
- freeaddrinfo(info);
- return result;
-}
-
-static inline sockaddr *
-sockaddr_from_cidr(sa_family_t af, uint8_t cidr)
-{
- /* IPv4 */
- if (af == AF_INET)
- {
- sockaddr_in *mask = new sockaddr_in;
- mask->sin_family = af;
- mask->sin_addr.s_addr = htonl(~0 << (32 - (cidr > 32 ? 32 : cidr)));
-
- return (struct sockaddr *) mask;
- }
-
- /* IPv6 */
- else if (af == AF_INET6)
- {
- sockaddr_in6 *mask = new sockaddr_in6;
- mask->sin6_family = af;
- for (uint8_t i=0 ; i < sizeof(mask->sin6_addr) ; i++)
- mask->sin6_addr.s6_addr[i] = ~0 << (8 - (8*i > cidr ? 0 : cidr-8*i < 8 ? cidr-8*i : 8) );
-
- return (sockaddr *) mask;
- }
-
- return NULL;
-}
-
-class ip_ignore_extension : public ignore_extension {
-public:
- virtual bool ignore(url& url, const string &ignore) {
- bool result = false;
- uint16_t port = 0;
- const struct sockaddr *dst_ip = url.get_ips(false) ? url.get_ips(false)[0] : NULL;
- struct sockaddr *ign_ip = NULL, *net_ip = NULL;
-
- /*
- * IPv4
- * IPv6
- */
- if ((ign_ip = sockaddr_from_string(ignore)))
- goto out;
-
- /*
- * IPv4/CIDR
- * IPv4/IPv4
- * IPv6/CIDR
- * IPv6/IPv6
- */
- if (ignore.find('/') != string::npos)
- {
- ign_ip = sockaddr_from_string(ignore.substr(0, ignore.find('/')));
-
- uint32_t cidr = 0;
- string mask = ignore.substr(ignore.find('/') + 1);
-
- if (mask.find('.') != string::npos)
- {
- /* A dotted netmask was used */
- net_ip = sockaddr_from_string(mask);
- }
- else
- {
- /* If CIDR notation was used, get the netmask */
- if (sscanf(mask.c_str(), "%d", &cidr) == 1)
- net_ip = sockaddr_from_cidr(ign_ip->sa_family, cidr);
- }
-
- if (ign_ip && net_ip && ign_ip->sa_family == net_ip->sa_family)
- goto out;
-
- delete ign_ip;
- delete net_ip;
- ign_ip = NULL;
- net_ip = NULL;
- }
-
- /*
- * IPv4:port
- * [IPv6]:port
- */
- if (ignore.rfind(':') != string::npos && sscanf(ignore.substr(ignore.rfind(':')).c_str(), ":%hu", &port) == 1 && port > 0)
- {
- ign_ip = sockaddr_from_string(ignore.substr(ignore.rfind(':')).c_str());
-
- /* Make sure this really is just a port and not just an IPv6 address */
- if (ign_ip && (ign_ip->sa_family != AF_INET6 || ignore[0] == '['))
- goto out;
-
- delete[] ign_ip;
- ign_ip = NULL;
- port = 0;
- }
-
- out:
- result = sockaddr_equals(dst_ip, ign_ip, net_ip);
- delete[] ign_ip;
- delete[] net_ip;
- return port != 0 ? (port == url.get_port() && result) : result;
- }
-};
-
-MM_MODULE_INIT_EZ(ip_ignore_extension, true, NULL, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/ignore_ip.cpp.rej new/libproxy-0.4.12/libproxy/modules/ignore_ip.cpp.rej
--- old/libproxy-0.4.11/libproxy/modules/ignore_ip.cpp.rej 2012-07-05 20:25:17.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/ignore_ip.cpp.rej 1970-01-01 01:00:00.000000000 +0100
@@ -1,31 +0,0 @@
---- libproxy/modules/ignore_ip.cpp
-+++ libproxy/modules/ignore_ip.cpp
-@@ -90,7 +90,7 @@
- /* IPv4 */
- if (af == AF_INET)
- {
-- sockaddr_in *mask = new sockaddr_in;
-+ sockaddr_in *mask = (sockaddr_in*) new char[sizeof(sockaddr_in)];
- mask->sin_family = af;
- mask->sin_addr.s_addr = htonl(~0 << (32 - (cidr > 32 ? 32 : cidr)));
-
-@@ -100,7 +100,7 @@
- /* IPv6 */
- else if (af == AF_INET6)
- {
-- sockaddr_in6 *mask = new sockaddr_in6;
-+ sockaddr_in6 *mask = (sockaddr_in6*) new char[sizeof(sockaddr_in6)];
- mask->sin6_family = af;
- for (uint8_t i=0 ; i < sizeof(mask->sin6_addr) ; i++)
- mask->sin6_addr.s6_addr[i] = ~0 << (8 - (8*i > cidr ? 0 : cidr-8*i < 8 ? cidr-8*i : 8) );
-@@ -154,8 +154,8 @@
- if (ign_ip && net_ip && ign_ip->sa_family == net_ip->sa_family)
- goto out;
-
-- delete ign_ip;
-- delete net_ip;
-+ delete[] ign_ip;
-+ delete[] net_ip;
- ign_ip = NULL;
- net_ip = NULL;
- }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/modules/pxgsettings.cpp new/libproxy-0.4.12/libproxy/modules/pxgsettings.cpp
--- old/libproxy-0.4.11/libproxy/modules/pxgsettings.cpp 2011-05-02 19:46:03.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/modules/pxgsettings.cpp 2016-01-12 17:41:07.000000000 +0100
@@ -143,23 +143,20 @@
g_io_add_watch(outchan, G_IO_ERR, err, NULL);
g_io_add_watch(outchan, G_IO_HUP, err, NULL);
- // Get GConf client
- GSettings* client;
+ // Get GSettings obkecy
+ GSettings* settings;
for (int i=1; i // for abort()
+#include // for EINTR
#include
#include
#include
@@ -58,7 +60,12 @@
void stop()
{
- assert (write(m_pipe[1], (void*)"q", 1) == 1);
+ int ret;
+ do
+ {
+ ret = write(m_pipe[1], (void*)"q", 1);
+ } while (errno == EINTR);
+ if (ret < 0) abort(); // We could not write to the pipe anymore
pthread_join (m_thread, NULL);
close(m_pipe[1]);
m_pipe[1] = -1;
@@ -188,7 +195,8 @@
ret = send(csock, (void*)basic, strlen(basic), 0);
assert(ret == strlen(basic));
ret = send(csock, (void*)buf, size, 0);
- assert(ret != size);
+ if (!(errno == EBADF))
+ abort(); // Test failed... the socket did not close on us
delete[] buf;
shutdown(csock, SHUT_RDWR);
close(ret);
@@ -235,21 +243,21 @@
server.start();
pac = basic.get_pac();
- assert(pac != NULL);
- assert(strlen(pac) == 10);
- assert(!strcmp("0123456789", pac));
- delete[] pac;
+ if (!(pac != NULL && strlen(pac) == 10 && !strcmp("0123456789", pac)))
+ return 1; // test failed, exit with error code
+ delete[] pac; // test succesful, cleanup
pac = truncated.get_pac();
- assert(pac == NULL);
+ if (pac != NULL)
+ return 2; // Test failed, exit with error code
pac = overflow.get_pac();
- assert(pac == NULL);
+ if (pac != NULL)
+ return 3; // Test failed, exit with error code
pac = chunked.get_pac();
- assert(pac != NULL);
- assert(strlen(pac) == 10);
- assert(!strcmp("0123456789", pac));
+ if (!(pac != NULL && strlen(pac) == 10 && !strcmp("0123456789", pac)))
+ return 4; // Test failed, exit with error code
delete[] pac;
server.stop();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy/url.cpp new/libproxy-0.4.12/libproxy/url.cpp
--- old/libproxy-0.4.11/libproxy/url.cpp 2012-10-16 19:52:03.000000000 +0200
+++ new/libproxy-0.4.12/libproxy/url.cpp 2016-01-12 17:41:07.000000000 +0100
@@ -403,6 +403,7 @@
buffer = NULL;
}
}
+ close(sock);
return buffer;
}
@@ -496,6 +497,7 @@
// Clean up
shutdown(sock, SHUT_RDWR);
+ close(sock);
return buffer;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/libproxy-CVE-2012-4504.patch new/libproxy-0.4.12/libproxy-CVE-2012-4504.patch
--- old/libproxy-0.4.11/libproxy-CVE-2012-4504.patch 2012-10-10 21:25:54.000000000 +0200
+++ new/libproxy-0.4.12/libproxy-CVE-2012-4504.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-Index: libproxy/url.cpp
-===================================================================
---- libproxy/url.cpp (revision 852)
-+++ libproxy/url.cpp (revision 853)
-@@ -474,9 +474,10 @@
- // Add this chunk to our content length,
- // ensuring that we aren't over our max size
- content_length += chunk_length;
-- if (content_length >= PAC_MAX_SIZE) break;
- }
-
-+ if (content_length >= PAC_MAX_SIZE) break;
-+
- while (recvd != content_length) {
- int r = recv(sock, buffer + recvd, content_length - recvd, 0);
- if (r < 0) break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/samples/dotnet/Makefile new/libproxy-0.4.12/samples/dotnet/Makefile
--- old/libproxy-0.4.11/samples/dotnet/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ new/libproxy-0.4.12/samples/dotnet/Makefile 2016-01-12 17:41:07.000000000 +0100
@@ -0,0 +1,8 @@
+
+all: proxy.exe
+
+proxy.exe: proxy.cs
+ gmcs -pkg:libproxy-sharp-1.0 proxy.cs
+
+clean:
+ rm proxy.exe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/samples/libcurl/Makefile new/libproxy-0.4.12/samples/libcurl/Makefile
--- old/libproxy-0.4.11/samples/libcurl/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ new/libproxy-0.4.12/samples/libcurl/Makefile 2016-01-12 17:41:07.000000000 +0100
@@ -0,0 +1,9 @@
+
+
+all: curlget
+
+curlget: curlget.c
+ gcc curlget.c -o curlget -Wall -lcurl -std=c99 $(shell pkg-config --libs libproxy-1.0)
+
+clean:
+ rm curlget
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/samples/seed/main.js new/libproxy-0.4.12/samples/seed/main.js
--- old/libproxy-0.4.11/samples/seed/main.js 2011-08-11 18:10:14.000000000 +0200
+++ new/libproxy-0.4.12/samples/seed/main.js 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-
-Libproxy = imports.gi.Libproxy;
-px = Libproxy.proxy_factory_new;
-
-print (Libproxy.get_proxies("http://www.google.com"));
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libproxy-0.4.11/samples/vala/Makefile new/libproxy-0.4.12/samples/vala/Makefile
--- old/libproxy-0.4.11/samples/vala/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ new/libproxy-0.4.12/samples/vala/Makefile 2016-01-12 17:41:07.000000000 +0100
@@ -0,0 +1,7 @@
+all: sample
+
+sample: sample.vala
+ valac --pkg libproxy-1.0 sample.vala
+
+clean:
+ rm sample
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.t96Dq4/_old 2016-01-21 23:41:16.000000000 +0100
+++ /var/tmp/diff_new_pack.t96Dq4/_new 2016-01-21 23:41:16.000000000 +0100
@@ -3,7 +3,7 @@
# supplements "packageand(libproxy1-<targettype>:libproxy1-config-gnome)"
libproxy1-config-gnome3
supplements "packageand(libproxy1-<targettype>:libproxy1-config-gnome3)"
-libproxy1-config-kde4
+libproxy1-config-kde
supplements "packageand(libproxy1-<targettype>:libproxy1-config-kde)"
#libproxy1-pacrunner-mozjs
# supplements "packageand(libproxy1-<targettype>:libproxy1-config-mozjs)"