Accepting request 449418 from GNOME:Factory

1

OBS-URL: https://build.opensuse.org/request/show/449418
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libproxy?expand=0&rev=68
This commit is contained in:
Dominique Leuenberger 2017-01-11 10:58:02 +00:00 committed by Git OBS Bridge
commit 17906ca2db
11 changed files with 61 additions and 645 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d610bc0ef81a18ba418d759c5f4f87bf7102229a9153fb397d7d490987330ffd
size 89296

3
0.4.14.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6220a6cab837a8996116a0568324cadfd09a07ec16b930d2a330e16d5c2e1eb6
size 92783

View File

@ -1,31 +0,0 @@
From 2e4546b3cde31d657df34f6d247c92c47c83bf81 Mon Sep 17 00:00:00 2001
From: Dominique Leuenberger <dimstar@opensuse.org>
Date: Thu, 29 Sep 2016 11:36:50 +0200
Subject: [PATCH 5/5] FindMono: fall back to mcs when gmcs cannot be found
With mono 4.6, gmcs is no longer an upstream shipped wrapper.
Just fallback to 'mcs' if gmcs cannot be found. Distros still shipping
gmcs are assumed to know why they do so - in this case we favor their
local scripts.
Fixes issue #37.
---
cmake/FindMono.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmake/FindMono.cmake b/cmake/FindMono.cmake
index 95930b0..d4aa0ca 100644
--- a/cmake/FindMono.cmake
+++ b/cmake/FindMono.cmake
@@ -12,7 +12,7 @@
# Redistribution and use is allowed according to the terms of the GPL license.
FIND_PROGRAM (MONO_EXECUTABLE mono)
-FIND_PROGRAM (GMCS_EXECUTABLE gmcs)
+FIND_PROGRAM (GMCS_EXECUTABLE NAMES gmcs mcs)
FIND_PROGRAM (GACUTIL_EXECUTABLE gacutil)
SET (MONO_FOUND FALSE CACHE INTERNAL "")
--
2.10.0

View File

@ -1,28 +0,0 @@
From 72bda7188408bd3c2491ea664da294cc483220bc Mon Sep 17 00:00:00 2001
From: Andrey Rakhmatullin <wrar@wrar.name>
Date: Sun, 20 Nov 2016 18:40:49 +0500
Subject: [PATCH] Set CMP0054 CMake policy to NEW.
CMake 3.7 exports a "t" variable for all projects and because of that
the elseif statement in cmake/CMakeCSharpInformation.cmake:311 works
incorrectly if CMP0054 is not set to NEW (as "t" is expanded to the
variable value).
---
CMakeLists.txt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5313787..451e7a6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,6 +3,9 @@ cmake_minimum_required(VERSION 2.6)
if(POLICY CMP0011)
cmake_policy(SET CMP0011 NEW)
endif(POLICY CMP0011)
+if(POLICY CMP0054)
+ cmake_policy(SET CMP0054 NEW)
+endif(POLICY CMP0054)
# Make sure we look in our cmake folder for additional definitions
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake )

View File

@ -1,36 +0,0 @@
From 8472b3b8ba8c50aedad50d5d8fe8d25cbcb10a30 Mon Sep 17 00:00:00 2001
From: Dominique Leuenberger <dimstar@opensuse.org>
Date: Fri, 22 Jul 2016 14:21:45 +0200
Subject: [PATCH] GNOME3: Wait for pxgsettings to vanish while destroying the
plugin
This helps avoiding zombie processes in case a caller creates/destroys
ProxyFactories for each URL (even though we recommend to have a long-living
PF for caching reasons).
Originally reported at https://bugzilla.opensuse.org/show_bug.cgi?id=967601
---
libproxy/modules/config_gnome3.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libproxy/modules/config_gnome3.cpp b/libproxy/modules/config_gnome3.cpp
index 47e7a42..666d639 100644
--- a/libproxy/modules/config_gnome3.cpp
+++ b/libproxy/modules/config_gnome3.cpp
@@ -24,6 +24,7 @@
#include <sys/types.h> // For stat()
#include <sys/stat.h> // For stat()
#include <unistd.h> // For pipe(), close(), vfork(), dup(), execl(), _exit()
+#include <sys/wait.h> // For waitpid()
#include <signal.h> // For kill()
#include "../extension_config.hpp"
@@ -161,6 +162,7 @@ class gnome_config_extension : public config_extension {
fclose(this->read);
fclose(this->write);
kill(this->pid, SIGTERM);
+ waitpid(this->pid, NULL, 0);
}
void store_response(const string &type,

View File

@ -1,3 +1,28 @@
-------------------------------------------------------------------
Mon Jan 9 14:33:04 UTC 2017 - dimstar@opensuse.org
- Update to version 0.4.14:
+ Parallel build support for python2 and python3.
-DWITH_PYTHON has been replaced with -DWITH_PYTHON2 and
-DWITH_PYTHON3 to have full control over this. Default is
ON for both (gh#libproxy/libproxy#22).
+ Minor fixes to the PAC retriever code
(gh#libproxy/libproxy#40).
+ Fallback to mcs instead of gmcs for the mono bindings
(gh#libproxy/libproxy#37).
+ Fix build using cmake 3.7.
+ Fix deprecation warnings of pxgsettings with glib 2.46.
+ Improve the get-pac test suite (gh#libproxy/libproxy#47).
- Drop update-from-svn.sh: The script has not been usable for
years, since libproxy is no longer hosted in this svn repo.
- Drop upstream merged patches:
+ libproxy-cmake-3.7.patch
+ libproxy-FindMono-4.6.patch
+ libproxy-gnome-waitpid.patch
+ libproxy-python3-support.patch
- Re-enable the test suite: with the upstream changes this should
now be more reliable.
-------------------------------------------------------------------
Tue Nov 22 08:18:37 UTC 2016 - dimstar@opensuse.org

View File

@ -1,7 +1,7 @@
#
# spec file for package libproxy-plugins
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2017 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,26 +31,15 @@ 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.13
Version: 0.4.14
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}
%define _sourcename %{_name}
%else
%define _sourcename %{_name}-%{version}
%endif
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-gnome-waitpid.patch boo#967601 dimstar@opensuse.org -- GNOME3: Wait for pxgsettings to vanish while destroying the plugin
Patch0: libproxy-gnome-waitpid.patch
# PATCH-FIX-UPSTREAM libproxy-python3-support.patch dimstar@opensuse.org -- Add support to build python2 and python3 bindings together
Patch1: libproxy-python3-support.patch
# PATCH-FIX-UPSTREAM libproxy-FindMono-4.6.patch gh#libproxy/libproxy#37 dimstar@opensuse.org -- Fall back to mcs if gmcs cannot be found
Patch2: libproxy-FindMono-4.6.patch
# PATCH-FIX-UPSTREAM libproxy-cmake-3.7.patch gh#libproxy/libproxy#46 dimstar@opensuse.org -- Fix build with cmake 3.7
Patch3: libproxy-cmake-3.7.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cmake
BuildRequires: gcc-c++
@ -342,10 +331,6 @@ libproxy offers the following features: * extremely small core
%prep
%setup -q -n %{_sourcename}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
mkdir build
%build
@ -433,8 +418,8 @@ rm -f %{buildroot}%{_datadir}/vala/vapi/libproxy-1.0.vapi
%endif
%check
#cd build
#make test
cd build
make test
%if %build_core_not_modules

View File

@ -1,481 +0,0 @@
From b655e2103ff9d572b4145722f98b14e9ebe49f10 Mon Sep 17 00:00:00 2001
From: Dominique Leuenberger <dimstar@opensuse.org>
Date: Thu, 4 Aug 2016 12:07:27 +0200
Subject: [PATCH] Add support to build Python2 and Python3 bindings in parallel
Fixes issue #22
---
.travis.yml | 2 +-
INSTALL | 4 +-
NEWS | 7 ++
bindings/CMakeLists.txt | 11 ++-
bindings/python/CMakeLists.txt | 25 ------
bindings/python/python2/CMakeLists.txt | 25 ++++++
bindings/python/python3/CMakeLists.txt | 25 ++++++
cmake/FindPython2Interp.cmake | 145 +++++++++++++++++++++++++++++++++
cmake/FindPython3Interp.cmake | 145 +++++++++++++++++++++++++++++++++
9 files changed, 359 insertions(+), 30 deletions(-)
delete mode 100644 bindings/python/CMakeLists.txt
create mode 100644 bindings/python/python2/CMakeLists.txt
create mode 100644 bindings/python/python3/CMakeLists.txt
create mode 100644 cmake/FindPython2Interp.cmake
create mode 100644 cmake/FindPython3Interp.cmake
diff --git a/.travis.yml b/.travis.yml
index 01f0312..b64a7d5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,7 +25,7 @@ script:
- |
cmake . \
-DWITH_PERL=ON \
- -DWITH_PYTHON=ON \
+ -DWITH_PYTHON2=ON \
-DWITH_GNOME3=ON \
-DWITH_KDE=ON \
-DWITH_WEBKIT3=ON \
diff --git a/INSTALL b/INSTALL
index 8fc0c1a..bf04881 100644
--- a/INSTALL
+++ b/INSTALL
@@ -110,7 +110,9 @@ WITH_NM: Default to ON. Enable NetworkManager bindings.
WITH_PERL: Default to ON. Enable Perl bindings.
-WITH_PYTHON: Default to ON. Enable Python bindings.
+WITH_PYTHON2: Default to ON. Enable Python bindings.
+
+WITH_PYTHON3: Default to ON. Enable Python bindings.
WITH_VALA: Default to OFF. Enable Vala bindings.
diff --git a/NEWS b/NEWS
index f822bbd..9eb8136 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,10 @@
+New in Version 0.4.14:
+==============================
+* Parallel build support for python2 and python3.
+ -DWITH_PYTHON has been replaced with -DWITH_PYTHON2 and
+ -DWITH_PYTHON3 to have full control over this. Default is
+ ON for both (issue#22)
+
New in Version 0.4.13
==============================
* Allow linking webkit pacrunner against javascriptcore-4.0
diff --git a/bindings/CMakeLists.txt b/bindings/CMakeLists.txt
index 28bad03..2b0ede4 100644
--- a/bindings/CMakeLists.txt
+++ b/bindings/CMakeLists.txt
@@ -1,6 +1,11 @@
-option(WITH_PYTHON "Enables Python bindings" ON)
-if (WITH_PYTHON)
- add_subdirectory(python)
+option(WITH_PYTHON2 "Enables Python 2 bindings" ON)
+if (WITH_PYTHON2)
+ add_subdirectory(python/python2)
+endif()
+
+option(WITH_PYTHON3 "Enables Python 3 bindings" ON)
+if (WITH_PYTHON3)
+ add_subdirectory(python/python3)
endif()
option(WITH_DOTNET "Enables C# bindings" OFF)
diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt
deleted file mode 100644
index aca852f..0000000
--- a/bindings/python/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-find_package(PythonInterp)
-
-if(PYTHONINTERP_FOUND)
- set(PYTHON_SITEPKG_DIR "${PYTHON_SITEPKG_DIR}" CACHE PATH "Python site-package directory.")
-
- if(NOT PYTHON_SITEPKG_DIR)
- execute_process(COMMAND
- ${PYTHON_EXECUTABLE}
- -c "import sys; print sys.version[0:3]"
- OUTPUT_VARIABLE PYTHON_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- message(STATUS "Found python version ${PYTHON_VERSION}")
-
- execute_process(COMMAND
- ${PYTHON_EXECUTABLE}
- -c "import distutils.sysconfig ; print distutils.sysconfig.get_python_lib(plat_specific=0)"
- OUTPUT_VARIABLE PYTHON_SITEPKG_DIR
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif()
-
- message(STATUS "Using PYTHON_SITEPKG_DIR=${PYTHON_SITEPKG_DIR}")
-
- install(FILES libproxy.py DESTINATION ${PYTHON_SITEPKG_DIR})
-endif()
diff --git a/bindings/python/python2/CMakeLists.txt b/bindings/python/python2/CMakeLists.txt
new file mode 100644
index 0000000..00df551
--- /dev/null
+++ b/bindings/python/python2/CMakeLists.txt
@@ -0,0 +1,25 @@
+find_package(Python2Interp)
+
+if(PYTHON2INTERP_FOUND)
+ set(PYTHON2_SITEPKG_DIR "${PYTHON2_SITEPKG_DIR}" CACHE PATH "Python 2 site-package directory.")
+
+ if(NOT PYTHON2_SITEPKG_DIR)
+ execute_process(COMMAND
+ ${PYTHON2_EXECUTABLE}
+ -c "import sys; print (sys.version[0:3])"
+ OUTPUT_VARIABLE PYTHON2_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ message(STATUS "Found python 2 version ${PYTHON2_VERSION}")
+
+ execute_process(COMMAND
+ ${PYTHON2_EXECUTABLE}
+ -c "import distutils.sysconfig ; print (distutils.sysconfig.get_python_lib(plat_specific=0))"
+ OUTPUT_VARIABLE PYTHON2_SITEPKG_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+
+ message(STATUS "Using PYTHON2_SITEPKG_DIR=${PYTHON2_SITEPKG_DIR}")
+
+ install(FILES ../libproxy.py DESTINATION ${PYTHON2_SITEPKG_DIR})
+endif()
diff --git a/bindings/python/python3/CMakeLists.txt b/bindings/python/python3/CMakeLists.txt
new file mode 100644
index 0000000..bf87dfc
--- /dev/null
+++ b/bindings/python/python3/CMakeLists.txt
@@ -0,0 +1,25 @@
+find_package(Python3Interp)
+
+if(PYTHON3INTERP_FOUND)
+ set(PYTHON3_SITEPKG_DIR "${PYTHON3_SITEPKG_DIR}" CACHE PATH "Python 3 site-package directory.")
+
+ if(NOT PYTHON3_SITEPKG_DIR)
+ execute_process(COMMAND
+ ${PYTHON3_EXECUTABLE}
+ -c "import sys; print (sys.version[0:3])"
+ OUTPUT_VARIABLE PYTHON3_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ message(STATUS "Found python 3 version ${PYTHON3_VERSION}")
+
+ execute_process(COMMAND
+ ${PYTHON3_EXECUTABLE}
+ -c "import distutils.sysconfig ; print (distutils.sysconfig.get_python_lib(plat_specific=0))"
+ OUTPUT_VARIABLE PYTHON3_SITEPKG_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+
+ message(STATUS "Using PYTHON3_SITEPKG_DIR=${PYTHON3_SITEPKG_DIR}")
+
+ install(FILES ../libproxy.py DESTINATION ${PYTHON3_SITEPKG_DIR})
+endif()
diff --git a/cmake/FindPython2Interp.cmake b/cmake/FindPython2Interp.cmake
new file mode 100644
index 0000000..fbece44
--- /dev/null
+++ b/cmake/FindPython2Interp.cmake
@@ -0,0 +1,145 @@
+#.rst:
+# FindPython2Interp
+# ----------------
+#
+# Find python 3 interpreter (based on original FindPythonInterp from cmake)
+#
+# This module finds if Python interpreter is installed and determines
+# where the executables are. This code sets the following variables:
+#
+# ::
+#
+# PYTHON2INTERP_FOUND - Was the Python executable found
+# PYTHON2_EXECUTABLE - path to the Python interpreter
+#
+#
+#
+# ::
+#
+# PYTHON2_VERSION_STRING - Python version found e.g. 2.5.1
+# PYTHON2_VERSION_MAJOR - Python major version found e.g. 1
+# PYTHON2_VERSION_MINOR - Python minor version found e.g. 5
+# PYTHON2_VERSION_PATCH - Python patch version found e.g. 1
+#
+#=============================================================================
+# Copyright 2005-2010 Kitware, Inc.
+# Copyright 2011 Bjoern Ricks <bjoern.ricks@gmail.com>
+# Copyright 2012 Rolf Eike Beer <eike@sf-mail.de>
+# Copyright 2016 Dominique Leuenberger <dimstar@opensuse.org>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+unset(_Python2_NAMES)
+
+set(_PYTHON2_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
+
+if(Python2Interp_FIND_VERSION)
+ if(Python2Interp_FIND_VERSION_COUNT GREATER 1)
+ set(_PYTHON2_FIND_MAJ_MIN "${Python2Interp_FIND_VERSION_MAJOR}.${Python2Interp_FIND_VERSION_MINOR}")
+ list(APPEND _Python2_NAMES
+ python${_PYTHON2_FIND_MAJ_MIN}
+ python${Python2Interp_FIND_VERSION_MAJOR})
+ unset(_PYTHON2_FIND_OTHER_VERSIONS)
+ if(NOT Python2Interp_FIND_VERSION_EXACT)
+ foreach(_PYTHON2_V ${_PYTHON${Python2Interp_FIND_VERSION_MAJOR}_VERSIONS})
+ if(NOT _PYTHON2_V VERSION_LESS _PYTHON2_FIND_MAJ_MIN)
+ list(APPEND _PYTHON2_FIND_OTHER_VERSIONS ${_PYTHON2_V})
+ endif()
+ endforeach()
+ endif()
+ unset(_PYTHON2_FIND_MAJ_MIN)
+ else()
+ list(APPEND _Python2_NAMES python${Python2Interp_FIND_VERSION_MAJOR})
+ set(_PYTHON2_FIND_OTHER_VERSIONS ${_PYTHON${Python2Interp_FIND_VERSION_MAJOR}_VERSIONS})
+ endif()
+else()
+ set(_PYTHON2_FIND_OTHER_VERSIONS ${_PYTHON2_VERSIONS})
+endif()
+find_program(PYTHON2_EXECUTABLE NAMES ${_Python2_NAMES})
+
+# If FindPythonInterp has already found the major and minor version,
+# insert that version next to get consistent versions of the interpreter and
+# library.
+if(DEFINED PYTHON2LIBS_VERSION_STRING)
+ string(REPLACE "." ";" _PYTHON2LIBS_VERSION "${PYTHON2LIBS_VERSION_STRING}")
+ list(GET _PYTHON2LIBS_VERSION 0 _PYTHON2LIBS_VERSION_MAJOR)
+ list(GET _PYTHON2LIBS_VERSION 1 _PYTHON2LIBS_VERSION_MINOR)
+ list(APPEND _Python2_VERSIONS ${_PYTHON2LIBS_VERSION_MAJOR}.${_PYTHON2LIBS_VERSION_MINOR})
+endif()
+# Search for the current active python version first
+list(APPEND _Python2_VERSIONS ";")
+
+unset(_PYTHON2_VERSIONS)
+
+# Search for newest python version if python executable isn't found
+if(NOT PYTHON2_EXECUTABLE)
+ foreach(_CURRENT_VERSION IN LISTS _Python2_VERSIONS)
+ set(_Python2_NAMES python${_CURRENT_VERSION})
+ if(WIN32)
+ list(APPEND _Python2_NAMES python)
+ endif()
+ find_program(PYTHON2_EXECUTABLE
+ NAMES ${_Python2_NAMES}
+ PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
+ )
+ endforeach()
+endif()
+
+# determine python version string
+if(PYTHON2_EXECUTABLE)
+ execute_process(COMMAND "${PYTHON2_EXECUTABLE}" -c
+ "import sys; sys.stdout.write(';'.join([str(x) for x in sys.version_info[:3]]))"
+ OUTPUT_VARIABLE _VERSION
+ RESULT_VARIABLE _PYTHON2_VERSION_RESULT
+ ERROR_QUIET)
+ if(NOT _PYTHON2_VERSION_RESULT)
+ string(REPLACE ";" "." PYTHON2_VERSION_STRING "${_VERSION}")
+ list(GET _VERSION 0 PYTHON2_VERSION_MAJOR)
+ list(GET _VERSION 1 PYTHON2_VERSION_MINOR)
+ list(GET _VERSION 2 PYTHON2_VERSION_PATCH)
+ if(PYTHON2_VERSION_PATCH EQUAL 0)
+ # it's called "Python 3.1", not "3.1.0"
+ string(REGEX REPLACE "\\.0$" "" PYTHON2_VERSION_STRING "${PYTHON2_VERSION_STRING}")
+ endif()
+ else()
+ # sys.version predates sys.version_info, so use that
+ execute_process(COMMAND "${PYTHON2_EXECUTABLE}" -c "import sys; sys.stdout.write(sys.version)"
+ OUTPUT_VARIABLE _VERSION
+ RESULT_VARIABLE _PYTHON2_VERSION_RESULT
+ ERROR_QUIET)
+ if(NOT _PYTHON2_VERSION_RESULT)
+ string(REGEX REPLACE " .*" "" PYTHON2_VERSION_STRING "${_VERSION}")
+ string(REGEX REPLACE "^([0-9]+)\\.[0-9]+.*" "\\1" PYTHON2_VERSION_MAJOR "${PYTHON2_VERSION_STRING}")
+ string(REGEX REPLACE "^[0-9]+\\.([0-9])+.*" "\\1" PYTHON2_VERSION_MINOR "${PYTHON2_VERSION_STRING}")
+ if(PYTHON2_VERSION_STRING MATCHES "^[0-9]+\\.[0-9]+\\.([0-9]+)")
+ set(PYTHON2_VERSION_PATCH "${CMAKE_MATCH_1}")
+ else()
+ set(PYTHON2_VERSION_PATCH "0")
+ endif()
+ else()
+ # sys.version was first documented for Python 1.5, so assume
+ # this is older.
+ set(PYTHON2_VERSION_STRING "1.4")
+ set(PYTHON2_VERSION_MAJOR "1")
+ set(PYTHON2_VERSION_MINOR "4")
+ set(PYTHON2_VERSION_PATCH "0")
+ endif()
+ endif()
+ unset(_PYTHON2_VERSION_RESULT)
+ unset(_VERSION)
+endif()
+
+# handle the QUIETLY and REQUIRED arguments and set PYTHON2INTERP_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Python2Interp REQUIRED_VARS PYTHON2_EXECUTABLE VERSION_VAR PYTHON2_VERSION_STRING)
+
+mark_as_advanced(PYTHON2_EXECUTABLE)
diff --git a/cmake/FindPython3Interp.cmake b/cmake/FindPython3Interp.cmake
new file mode 100644
index 0000000..c6cbe3d
--- /dev/null
+++ b/cmake/FindPython3Interp.cmake
@@ -0,0 +1,145 @@
+#.rst:
+# FindPython3Interp
+# ----------------
+#
+# Find python 3 interpreter (based on original FindPythonInterp from cmake)
+#
+# This module finds if Python interpreter is installed and determines
+# where the executables are. This code sets the following variables:
+#
+# ::
+#
+# PYTHON3INTERP_FOUND - Was the Python executable found
+# PYTHON3_EXECUTABLE - path to the Python interpreter
+#
+#
+#
+# ::
+#
+# PYTHON3_VERSION_STRING - Python version found e.g. 3.5.1
+# PYTHON3_VERSION_MAJOR - Python major version found e.g. 3
+# PYTHON3_VERSION_MINOR - Python minor version found e.g. 5
+# PYTHON3_VERSION_PATCH - Python patch version found e.g. 1
+#
+#=============================================================================
+# Copyright 2005-2010 Kitware, Inc.
+# Copyright 2011 Bjoern Ricks <bjoern.ricks@gmail.com>
+# Copyright 2012 Rolf Eike Beer <eike@sf-mail.de>
+# Copyright 2016 Dominique Leuenberger <dimstar@opensuse.org>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+unset(_Python3_NAMES)
+
+set(_Python3_VERSIONS 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
+
+if(Python3Interp_FIND_VERSION)
+ if(Python3Interp_FIND_VERSION_COUNT GREATER 1)
+ set(_PYTHON3_FIND_MAJ_MIN "${Python3Interp_FIND_VERSION_MAJOR}.${Python3Interp_FIND_VERSION_MINOR}")
+ list(APPEND _Python3_NAMES
+ python${_PYTHON3_FIND_MAJ_MIN}
+ python${Python3Interp_FIND_VERSION_MAJOR})
+ unset(_PYTHON3_FIND_OTHER_VERSIONS)
+ if(NOT Python3Interp_FIND_VERSION_EXACT)
+ foreach(_PYTHON3_V ${_PYTHON${Python3Interp_FIND_VERSION_MAJOR}_VERSIONS})
+ if(NOT _PYTHON3_V VERSION_LESS _PYTHON3_FIND_MAJ_MIN)
+ list(APPEND _PYTHON3_FIND_OTHER_VERSIONS ${_PYTHON3_V})
+ endif()
+ endforeach()
+ endif()
+ unset(_PYTHON3_FIND_MAJ_MIN)
+ else()
+ list(APPEND _Python3_NAMES python${Python3Interp_FIND_VERSION_MAJOR})
+ set(_PYTHON3_FIND_OTHER_VERSIONS ${_PYTHON${Python3Interp_FIND_VERSION_MAJOR}_VERSIONS})
+ endif()
+else()
+ set(_PYTHON3_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS})
+endif()
+find_program(PYTHON3_EXECUTABLE NAMES ${_Python3_NAMES})
+
+# If FindPythonInterp has already found the major and minor version,
+# insert that version next to get consistent versions of the interpreter and
+# library.
+if(DEFINED PYTHON3LIBS_VERSION_STRING)
+ string(REPLACE "." ";" _PYTHON3LIBS_VERSION "${PYTHON3LIBS_VERSION_STRING}")
+ list(GET _PYTHON3LIBS_VERSION 0 _PYTHON3LIBS_VERSION_MAJOR)
+ list(GET _PYTHON3LIBS_VERSION 1 _PYTHON3LIBS_VERSION_MINOR)
+ list(APPEND _Python3_VERSIONS ${_PYTHON3LIBS_VERSION_MAJOR}.${_PYTHON3LIBS_VERSION_MINOR})
+endif()
+# Search for the current active python version first
+list(APPEND _Python3_VERSIONS ";")
+
+unset(_PYTHON3_VERSIONS)
+
+# Search for newest python version if python executable isn't found
+if(NOT PYTHON3_EXECUTABLE)
+ foreach(_CURRENT_VERSION IN LISTS _Python3_VERSIONS)
+ set(_Python3_NAMES python${_CURRENT_VERSION})
+ if(WIN32)
+ list(APPEND _Python3_NAMES python3)
+ endif()
+ find_program(PYTHON3_EXECUTABLE
+ NAMES ${_Python3_NAMES}
+ PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
+ )
+ endforeach()
+endif()
+
+# determine python version string
+if(PYTHON3_EXECUTABLE)
+ execute_process(COMMAND "${PYTHON3_EXECUTABLE}" -c
+ "import sys; sys.stdout.write(';'.join([str(x) for x in sys.version_info[:3]]))"
+ OUTPUT_VARIABLE _VERSION3
+ RESULT_VARIABLE _PYTHON3_VERSION_RESULT
+ ERROR_QUIET)
+ if(NOT _PYTHON3_VERSION_RESULT)
+ string(REPLACE ";" "." PYTHON3_VERSION_STRING "${_VERSION3}")
+ list(GET _VERSION3 0 PYTHON3_VERSION_MAJOR)
+ list(GET _VERSION3 1 PYTHON3_VERSION_MINOR)
+ list(GET _VERSION3 2 PYTHON3_VERSION_PATCH)
+ if(PYTHON3_VERSION_PATCH EQUAL 0)
+ # it's called "Python 3.1", not "3.1.0"
+ string(REGEX REPLACE "\\.0$" "" PYTHON3_VERSION_STRING "${PYTHON3_VERSION_STRING}")
+ endif()
+ else()
+ # sys.version predates sys.version_info, so use that
+ execute_process(COMMAND "${PYTHON3_EXECUTABLE}" -c "import sys; sys.stdout.write(sys.version)"
+ OUTPUT_VARIABLE _VERSION3
+ RESULT_VARIABLE _PYTHON3_VERSION_RESULT
+ ERROR_QUIET)
+ if(NOT _PYTHON3_VERSION_RESULT)
+ string(REGEX REPLACE " .*" "" PYTHON3_VERSION_STRING "${_VERSION3}")
+ string(REGEX REPLACE "^([0-9]+)\\.[0-9]+.*" "\\1" PYTHON3_VERSION_MAJOR "${PYTHON3_VERSION_STRING}")
+ string(REGEX REPLACE "^[0-9]+\\.([0-9])+.*" "\\1" PYTHON3_VERSION_MINOR "${PYTHON3_VERSION_STRING}")
+ if(PYTHON3_VERSION_STRING MATCHES "^[0-9]+\\.[0-9]+\\.([0-9]+)")
+ set(PYTHON3_VERSION_PATCH "${CMAKE_MATCH_1}")
+ else()
+ set(PYTHON3_VERSION_PATCH "0")
+ endif()
+ else()
+ # sys.version was first documented for Python 1.5, so assume
+ # this is older.
+ set(PYTHON3_VERSION_STRING "1.4")
+ set(PYTHON3_VERSION_MAJOR "1")
+ set(PYTHON3_VERSION_MINOR "4")
+ set(PYTHON3_VERSION_PATCH "0")
+ endif()
+ endif()
+ unset(_PYTHON3_VERSION_RESULT)
+ unset(_VERSION3)
+endif()
+
+# handle the QUIETLY and REQUIRED arguments and set PYTHON3INTERP_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Python3Interp REQUIRED_VARS PYTHON3_EXECUTABLE PYTHON3_VERSION_STRING)
+
+mark_as_advanced(PYTHON3_EXECUTABLE)

View File

@ -1,3 +1,28 @@
-------------------------------------------------------------------
Mon Jan 9 14:33:04 UTC 2017 - dimstar@opensuse.org
- Update to version 0.4.14:
+ Parallel build support for python2 and python3.
-DWITH_PYTHON has been replaced with -DWITH_PYTHON2 and
-DWITH_PYTHON3 to have full control over this. Default is
ON for both (gh#libproxy/libproxy#22).
+ Minor fixes to the PAC retriever code
(gh#libproxy/libproxy#40).
+ Fallback to mcs instead of gmcs for the mono bindings
(gh#libproxy/libproxy#37).
+ Fix build using cmake 3.7.
+ Fix deprecation warnings of pxgsettings with glib 2.46.
+ Improve the get-pac test suite (gh#libproxy/libproxy#47).
- Drop update-from-svn.sh: The script has not been usable for
years, since libproxy is no longer hosted in this svn repo.
- Drop upstream merged patches:
+ libproxy-cmake-3.7.patch
+ libproxy-FindMono-4.6.patch
+ libproxy-gnome-waitpid.patch
+ libproxy-python3-support.patch
- Re-enable the test suite: with the upstream changes this should
now be more reliable.
-------------------------------------------------------------------
Tue Nov 22 08:18:37 UTC 2016 - dimstar@opensuse.org

View File

@ -1,7 +1,7 @@
#
# spec file for package libproxy
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2017 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,26 +31,15 @@ Name: libproxy
Summary: Libproxy provides consistent proxy configuration to applications
License: GPL-2.0+ and LGPL-2.1+
Group: System/Libraries
Version: 0.4.13
Version: 0.4.14
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}
%define _sourcename %{_name}
%else
%define _sourcename %{_name}-%{version}
%endif
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-gnome-waitpid.patch boo#967601 dimstar@opensuse.org -- GNOME3: Wait for pxgsettings to vanish while destroying the plugin
Patch0: libproxy-gnome-waitpid.patch
# PATCH-FIX-UPSTREAM libproxy-python3-support.patch dimstar@opensuse.org -- Add support to build python2 and python3 bindings together
Patch1: libproxy-python3-support.patch
# PATCH-FIX-UPSTREAM libproxy-FindMono-4.6.patch gh#libproxy/libproxy#37 dimstar@opensuse.org -- Fall back to mcs if gmcs cannot be found
Patch2: libproxy-FindMono-4.6.patch
# PATCH-FIX-UPSTREAM libproxy-cmake-3.7.patch gh#libproxy/libproxy#46 dimstar@opensuse.org -- Fix build with cmake 3.7
Patch3: libproxy-cmake-3.7.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cmake
BuildRequires: gcc-c++
@ -342,10 +331,6 @@ libproxy offers the following features: * extremely small core
%prep
%setup -q -n %{_sourcename}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
mkdir build
%build
@ -433,8 +418,8 @@ rm -f %{buildroot}%{_datadir}/vala/vapi/libproxy-1.0.vapi
%endif
%check
#cd build
#make test
cd build
make test
%if %build_core_not_modules

View File

@ -1,28 +0,0 @@
#!/bin/sh
MODULE=$(basename $(pwd))
if [ ! -x /usr/bin/svn ]; then
echo "subversion is missing - aborting"
return 1
fi
if [ ! -d $MODULE ]; then
echo "Base directory of $MODULE checkout is missing - aborting"
exit 2
fi
pushd $MODULE
svn update
VERSION=$(grep "version" $MODULE/CMakeLists.txt | awk -F'(' '{print $2}' | awk '{print $1+0"."$2+0"."$3+0}')
SVNREV=$(svn info | awk '/Revision:/ { print $2 }')
popd
# Adjust the version information and svn rev in the spec file to what we get from the svn checkout.
sed -i "s/Version:.*/Version: ${VERSION}.svn.$SVNREV/" $MODULE.spec
tar cjf $MODULE.tar.bz2 $MODULE
[ -f pre_checkin.sh ] && sh pre_checkin.sh
osc ci -m "Update to ${VERSION/git/svn.$SVNREV}" --skip-validation