Add openwsman-python3 subpackage

This commit is contained in:
Vitezslav Crhonek 2016-08-11 12:29:52 +02:00
parent 30156671fc
commit f647523456
2 changed files with 220 additions and 15 deletions

View File

@ -0,0 +1,179 @@
diff -up openwsman-2.6.2/bindings/CMakeLists.txt.orig openwsman-2.6.2/bindings/CMakeLists.txt
--- openwsman-2.6.2/bindings/CMakeLists.txt.orig 2015-10-19 15:27:46.000000000 +0200
+++ openwsman-2.6.2/bindings/CMakeLists.txt 2016-08-10 11:55:36.588710280 +0200
@@ -10,6 +10,7 @@ include_directories(${CMAKE_BINARY_DIR})
IF( BUILD_PYTHON )
add_subdirectory(python)
+add_subdirectory(python3)
ENDIF( BUILD_PYTHON )
IF( BUILD_RUBY )
diff -up openwsman-2.6.2/bindings/python3/CMakeLists.txt.orig openwsman-2.6.2/bindings/python3/CMakeLists.txt
--- openwsman-2.6.2/bindings/python3/CMakeLists.txt.orig 2016-08-10 11:55:36.577710278 +0200
+++ openwsman-2.6.2/bindings/python3/CMakeLists.txt 2016-08-10 15:15:46.005991322 +0200
@@ -12,11 +12,28 @@ enable_testing()
add_subdirectory(tests)
-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" OUTPUT_VARIABLE PYTHON_LIB_DIR)
-STRING(REPLACE "\n" "" PYTHON_LIB_DIR "${PYTHON_LIB_DIR}")
+MESSAGE(STATUS "Python3 build:")
+unset(Python_ADDITIONAL_VERSIONS)
+set(Python_ADDITIONAL_VERSIONS 3.5)
+FIND_PACKAGE(PythonLibs)
+IF (PYTHON_LIBRARY)
+ FIND_PACKAGE(PythonInterp REQUIRED)
+ #MESSAGE(STATUS "Found PythonLibs...")
+ FIND_PACKAGE(PythonLinkLibs)
+ #IF (PYTHON_LINK_LIBS)
+ # MESSAGE(STATUS "Building Python...")
+ #ENDIF (PYTHON_LINK_LIBS)
+ENDIF (PYTHON_LIBRARY)
+
+set(PYTHON3_EXECUTABLE "${PYTHON_EXECUTABLE}")
+set(PYTHON3_INCLUDE_DIRS "${PYTHON_INCLUDE_DIRS}")
+set({PYTHON3_INCLUDE_PATH "${PYTHON_INCLUDE_PATH}")
-MESSAGE(STATUS "Python executable: ${PYTHON_EXECUTABLE}")
-MESSAGE(STATUS "Python lib dir: ${PYTHON_LIB_DIR}")
+EXECUTE_PROCESS(COMMAND ${PYTHON3_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))" OUTPUT_VARIABLE PYTHON3_LIB_DIR)
+STRING(REPLACE "\n" "" PYTHON3_LIB_DIR "${PYTHON3_LIB_DIR}")
+
+MESSAGE(STATUS "Python executable: ${PYTHON3_EXECUTABLE}")
+MESSAGE(STATUS "Python lib dir: ${PYTHON3_LIB_DIR}")
SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/openwsman_wrap.c" )
@@ -36,14 +53,14 @@ SET(pywsman_SRCS ${SWIG_OUTPUT} ${CMAKE_
ADD_LIBRARY( pywsman SHARED ${pywsman_SRCS} )
SET_TARGET_PROPERTIES( pywsman PROPERTIES PREFIX "_" )
-INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_DIRS} )
+INCLUDE_DIRECTORIES( ${PYTHON3_INCLUDE_DIRS} )
# RHEL5 needs this:
-INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_PATH} )
+INCLUDE_DIRECTORIES( ${PYTHON3_INCLUDE_PATH} )
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/bindings ${CMAKE_SOURCE_DIR}/include )
TARGET_LINK_LIBRARIES( pywsman wsman )
TARGET_LINK_LIBRARIES( pywsman wsman_client )
-INSTALL(TARGETS pywsman LIBRARY DESTINATION ${PYTHON_LIB_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pywsman.py DESTINATION ${PYTHON_LIB_DIR} )
+INSTALL(TARGETS pywsman LIBRARY DESTINATION ${PYTHON3_LIB_DIR})
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pywsman.py DESTINATION ${PYTHON3_LIB_DIR} )
diff -up openwsman-2.6.2/bindings/python/CMakeLists.txt.orig openwsman-2.6.2/bindings/python/CMakeLists.txt
--- openwsman-2.6.2/bindings/python/CMakeLists.txt.orig 2015-10-19 15:27:46.000000000 +0200
+++ openwsman-2.6.2/bindings/python/CMakeLists.txt 2016-08-10 15:00:21.126141161 +0200
@@ -12,11 +12,52 @@ enable_testing()
add_subdirectory(tests)
-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" OUTPUT_VARIABLE PYTHON_LIB_DIR)
-STRING(REPLACE "\n" "" PYTHON_LIB_DIR "${PYTHON_LIB_DIR}")
+MESSAGE(STATUS "Python2 build:")
+set(Python_ADDITIONAL_VERSIONS 2.7)
+FIND_PACKAGE(PythonLibs)
+IF (PYTHON_LIBRARY)
+ FIND_PACKAGE(PythonInterp REQUIRED)
+ #MESSAGE(STATUS "Found PythonLibs...")
+ FIND_PACKAGE(PythonLinkLibs)
+ #IF (PYTHON_LINK_LIBS)
+ # MESSAGE(STATUS "Building Python...")
+ #ENDIF (PYTHON_LINK_LIBS)
+ENDIF (PYTHON_LIBRARY)
+
+set(PYTHON2_EXECUTABLE "${PYTHON_EXECUTABLE}")
+set(PYTHON2_INCLUDE_DIRS "${PYTHON_INCLUDE_DIRS}")
+set(PYTHON2_INCLUDE_PATH "${PYTHON_INCLUDE_PATH}")
+
+# clear FIND_PACKAGE(PythonLibs) side effects
+unset(PYTHONLIBS_FOUND)
+unset(PYTHON_LIBRARIES)
+unset(PYTHON_INCLUDE_PATH)
+unset(PYTHON_INCLUDE_DIRS)
+unset(PYTHON_DEBUG_LIBRARIES)
+unset(PYTHONLIBS_VERSION_STRING)
+unset(PYTHON_DEBUG_LIBRARY CACHE)
+unset(PYTHON_LIBRARY)
+unset(PYTHON_LIBRARY_DEBUG)
+unset(PYTHON_LIBRARY_RELEASE)
+unset(PYTHON_LIBRARY CACHE)
+unset(PYTHON_LIBRARY_DEBUG CACHE)
+unset(PYTHON_LIBRARY_RELEASE CACHE)
+unset(PYTHON_INCLUDE_DIR CACHE)
+unset(PYTHON_INCLUDE_DIR2 CACHE)
+
+# clear FIND_PACKAGE(PythonInterp) side effects
+unset(PYTHONINTERP_FOUND)
+unset(PYTHON_EXECUTABLE CACHE)
+unset(PYTHON_VERSION_STRING)
+unset(PYTHON_VERSION_MAJOR)
+unset(PYTHON_VERSION_MINOR)
+unset(PYTHON_VERSION_PATCH)
-MESSAGE(STATUS "Python executable: ${PYTHON_EXECUTABLE}")
-MESSAGE(STATUS "Python lib dir: ${PYTHON_LIB_DIR}")
+EXECUTE_PROCESS(COMMAND ${PYTHON2_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" OUTPUT_VARIABLE PYTHON2_LIB_DIR)
+STRING(REPLACE "\n" "" PYTHON2_LIB_DIR "${PYTHON2_LIB_DIR}")
+
+MESSAGE(STATUS "Python executable: ${PYTHON2_EXECUTABLE}")
+MESSAGE(STATUS "Python lib dir: ${PYTHON2_LIB_DIR}")
SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/openwsman_wrap.c" )
@@ -36,14 +77,14 @@ SET(pywsman_SRCS ${SWIG_OUTPUT} ${CMAKE_
ADD_LIBRARY( pywsman SHARED ${pywsman_SRCS} )
SET_TARGET_PROPERTIES( pywsman PROPERTIES PREFIX "_" )
-INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_DIRS} )
+INCLUDE_DIRECTORIES( ${PYTHON2_INCLUDE_DIRS} )
# RHEL5 needs this:
-INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_PATH} )
+INCLUDE_DIRECTORIES( ${PYTHON2_INCLUDE_PATH} )
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/bindings ${CMAKE_SOURCE_DIR}/include )
TARGET_LINK_LIBRARIES( pywsman wsman )
TARGET_LINK_LIBRARIES( pywsman wsman_client )
-INSTALL(TARGETS pywsman LIBRARY DESTINATION ${PYTHON_LIB_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pywsman.py DESTINATION ${PYTHON_LIB_DIR} )
+INSTALL(TARGETS pywsman LIBRARY DESTINATION ${PYTHON2_LIB_DIR})
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pywsman.py DESTINATION ${PYTHON2_LIB_DIR} )
diff -up openwsman-2.6.2/CMakeLists.txt.orig openwsman-2.6.2/CMakeLists.txt
--- openwsman-2.6.2/CMakeLists.txt.orig 2015-10-19 15:27:46.000000000 +0200
+++ openwsman-2.6.2/CMakeLists.txt 2016-08-10 11:55:36.588710280 +0200
@@ -168,30 +168,6 @@ MESSAGE(STATUS "Building Ruby bindings"
ENDIF(NOT RUBY_INCLUDE_PATH )
ENDIF( BUILD_RUBY )
-IF( BUILD_PYTHON )
- MESSAGE(STATUS "Building Python bindings" )
- FIND_PACKAGE(PythonLibs)
- IF (PYTHON_LIBRARY)
- FIND_PACKAGE(PythonInterp REQUIRED)
- MESSAGE(STATUS "Found PythonLibs...")
- FIND_PACKAGE(PythonLinkLibs)
- IF (PYTHON_LINK_LIBS)
- MESSAGE(STATUS "Building Python...")
- ENDIF (PYTHON_LINK_LIBS)
- ENDIF (PYTHON_LIBRARY)
- IF(NOT PYTHON_INCLUDE_DIRS )
- # fallback for older versions of cmake
- SET(PYTHON_INCLUDE_DIRS PYTHON_INCLUDE_PATH)
- ENDIF(NOT PYTHON_INCLUDE_DIRS )
- IF(NOT PYTHON_INCLUDE_DIRS )
- IF(BUILD_PYTHON_EXPLICIT)
- NO_HEADERS_WARNING_EXPL(BUILD_PYTHON Python)
- ELSE(BUILD_PYTHON_EXPLICIT)
- NO_HEADERS_WARNING(BUILD_PYTHON Python)
- ENDIF(BUILD_PYTHON_EXPLICIT)
- ENDIF(NOT PYTHON_INCLUDE_DIRS )
-ENDIF( BUILD_PYTHON )
-
IF( BUILD_PERL )
INCLUDE(FindPerl)
IF(PERL_EXECUTABLE)

View File

@ -1,22 +1,15 @@
%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5)
%{!?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))")}
%endif
# RubyGems's macros expect gem_name to exist.
%global gem_name %{name}
Name: openwsman
BuildRequires: swig
BuildRequires: libcurl-devel libxml2-devel pam-devel sblim-sfcc-devel
BuildRequires: python python-devel ruby ruby-devel rubygems-devel perl
BuildRequires: python python-devel perl
BuildRequires: python3 python3-devel python2 python2-devel ruby ruby-devel rubygems-devel perl
BuildRequires: perl-devel perl-generators pkgconfig openssl-devel
BuildRequires: cmake
BuildRequires: systemd-units
Version: 2.6.2
Release: 6%{?dist}
Release: 7%{?dist}
Url: http://www.openwsman.org/
License: BSD
Group: Applications/System
@ -33,6 +26,7 @@ Source3: owsmantestcert.sh
Patch1: openwsman-2.2.7-libssl.patch
Patch2: openwsman-2.4.0-pamsetup.patch
Patch3: openwsman-2.4.12-ruby-binding-build.patch
Patch4: openwsman-2.6.2-python3.patch
%description
Openwsman is a project intended to provide an open-source
@ -107,11 +101,25 @@ Openwsman Server and service libraries
License: BSD
Group: Development/Libraries
Summary: Python bindings for openwsman client API
Requires: python
Requires: python2
Requires: libwsman1 = %{version}-%{release}
%description python
This package provides Python bindings to access the openwsman client
This package provides Python2 bindings to access the openwsman client
API.
%package python3
License: BSD
Group: Development/Libraries
Summary: Python bindings for openwsman client API
Requires: python3
Requires: libwsman1 = %{version}-%{release}
%description python3
This package provides Python3 bindings to access the openwsman client
API.
@ -165,9 +173,16 @@ can use it to send shell commands to a remote Windows hosts.
%prep
%setup -q
# support python3
pushd bindings
cp -r python python3
popd
%patch1 -p1 -b .libssl
%patch2 -p1 -b .pamsetup
%patch3 -p1 -b .ruby-binding-build
%patch4 -p1 -b .python3
# support ruby 2.2
pushd bindings/ruby
@ -176,6 +191,7 @@ chmod 0755 rdoc2.2
ln -sf %{_bindir}/rdoc rdoc2_2.rb
popd
%build
# Removing executable permissions on .c and .h files to fix rpmlint warnings.
chmod -x src/cpp/WsmanClient.h
@ -281,10 +297,16 @@ rm -f /var/log/wsmand.log
%doc AUTHORS COPYING ChangeLog README.md
%files python
%{python_sitearch}/*.so
%{python_sitearch}/*.py
%{python_sitearch}/*.pyc
%{python_sitearch}/*.pyo
%{python2_sitearch}/*.so
%{python2_sitearch}/*.py
%{python2_sitearch}/*.pyc
%{python2_sitearch}/*.pyo
%doc AUTHORS COPYING ChangeLog README.md
%files python3
%{python3_sitearch}/*.so
%{python3_sitearch}/*.py
%{python3_sitearch}/__pycache__/*
%doc AUTHORS COPYING ChangeLog README.md
%files -n rubygem-%{gem_name}
@ -335,6 +357,10 @@ rm -f /var/log/wsmand.log
%changelog
* Thu Aug 11 2016 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.2-7
- Add openwsman-python3 subpackage
Resolves: #1354481
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.2-6
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages