core: python3
see https://review.gluster.org/#/c/19788/, https://review.gluster.org/#/c/19871/, https://review.gluster.org/#/c/19952/, https://review.gluster.org/#/c/20104/, https://review.gluster.org/#/c/20162/, https://review.gluster.org/#/c/20185/, https://review.gluster.org/#/c/20207/, https://review.gluster.org/#/c/20227/, https://review.gluster.org/#/c/20307/, https://review.gluster.org/#/c/20320/, https://review.gluster.org/#/c/20332/, https://review.gluster.org/#/c/20364/, https://review.gluster.org/#/c/20441/, and https://review.gluster.org/#/c/20484 shebangs changed from /usr/bin/python2 to /usr/bin/python3. (Reminder, various distribution packaging guidelines require use of explicit python version and don't allow '#!/usr/bin/env python', regardless of how handy that idiom may be.) glusterfs.spec(.in) package python{2,3}-gluster and python2 or python3 dependencies as appropriate. configure(.ac): + test for and use python2 or python3 as appropriate. If build machine has python2 and python3, use python3. Override by setting PYTHON=/usr/bin/python2 when running configure. + PYTHONDEV_CPPFLAGS from python[23]-config --includes is a better match to the original python sysconfig.get_python_inc(). All those other extraneous flags breaks the build. + Only change the shebangs once. Changing them over and over again, e.g., during a `make glusterrpms` in extras/LinuxRPM just sends make (is it really make that's looping?) into an infinite loop. If you figure out why, let me know. + Oldest python2 is python2.6 on CentOS 6 and Debian 8 (Jessie). Everything else has 2.7 or 3.x + logic from https://review.gluster.org/c/glusterfs/+/21050, which needs to be removed/merged after that patch is merged. Builds on CentOS 6, CentOS 7, Fedora 28, Fedora rawhide, and the mysterious RHEL > 7. Change-Id: Idae21d3b6f58b32372e1daa0d234e491e563198f updates: #411 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
This commit is contained in:
parent
eda69f2e32
commit
af0d5a9b53
@ -7,6 +7,7 @@ EXTRA_DIST = autogen.sh \
|
||||
run-tests.sh \
|
||||
build-aux/pkg-version \
|
||||
contrib/umountd \
|
||||
python-shebangs \
|
||||
$(shell find $(top_srcdir)/tests -type f -print)
|
||||
|
||||
SUBDIRS = $(ARGP_STANDALONE_DIR) rpc/xdr/gen libglusterfs rpc api xlators \
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import ctypes
|
||||
|
87
configure.ac
87
configure.ac
@ -635,53 +635,55 @@ fi
|
||||
|
||||
dnl Check Python Availability
|
||||
have_python=no
|
||||
dnl if the user has not specified a python, pick one
|
||||
if test -z "${PYTHON}"; then
|
||||
case $host_os in
|
||||
freebsd*)
|
||||
if test -x /usr/local/bin/python3; then
|
||||
PYTHON=/usr/local/bin/python3
|
||||
else
|
||||
PYTHON=/usr/local/bin/python2
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if test -x /usr/bin/python3; then
|
||||
PYTHON=/usr/bin/python3
|
||||
else
|
||||
PYTHON=/usr/bin/python2
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AM_PATH_PYTHON([2.6],,[:])
|
||||
if test "x${PYTHON}" != "x:"; then
|
||||
if test -n "${PYTHON}"; then
|
||||
have_python=yes
|
||||
fi
|
||||
|
||||
echo "python = ${PYTHON}"
|
||||
echo "PYTHON = ${PYTHON} ${PYTHON_VERSION}"
|
||||
|
||||
dnl Check if version matches that we require
|
||||
PYTHONDEV_CPPFLAGS=
|
||||
PYTHONDEV_LDFLAGS=
|
||||
BUILD_PYTHON_SITE_PACKAGES=
|
||||
BUILD_PYTHON_INC=
|
||||
BUILD_PYTHON_LIB=
|
||||
have_Python_h="no"
|
||||
|
||||
dnl Use pkg-config to get runtime search patch missing from ${PYTHON}-config
|
||||
dnl Use pkg-config to get runtime search path missing from ${PYTHON}-config
|
||||
dnl Just do "true" on failure so that configure does not bail out
|
||||
dnl Note: python 2.6's devel pkg (e.g. in CentOS/RHEL 6) does not have
|
||||
dnl pkg-config files, so this work-around instead
|
||||
if test "x${PYTHON_VERSION}" = "x2.6"; then
|
||||
PYTHON_CFLAGS=$(python-config --includes)
|
||||
PYTHON_LIBS=$(python-config --libs)
|
||||
else
|
||||
PKG_CHECK_MODULES([PYTHON], "python-${PYTHON_VERSION}",,true)
|
||||
fi
|
||||
|
||||
PYTHONDEV_CPPFLAGS="`${PYTHON}-config --cflags`"
|
||||
dnl Edit out the flags that are not required or are conflicting
|
||||
PYTHONDEV_CPPFLAGS=`echo ${PYTHONDEV_CPPFLAGS} | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[[0-9]]//g'`
|
||||
|
||||
dnl Find python libs at user configured libdir and also "lib" under prefix
|
||||
PYTHONDEV_LDFLAGS="${PYTHON_LIBS} -L`${PYTHON}-config --prefix`/lib -L`${PYTHON}-config --prefix`/$libdir `${PYTHON}-config --ldflags`"
|
||||
PYTHON_CFLAGS=$(echo ${PYTHON_CFLAGS} | sed -e 's|-I|-isystem |')
|
||||
|
||||
BUILD_PYTHON_SITE_PACKAGES=${pythondir}
|
||||
BUILD_PYTHON_INC=`${PYTHON} -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_inc())" 2>/dev/null`
|
||||
BUILD_PYTHON_LIB=python${PYTHON_VERSION}
|
||||
|
||||
dnl Now check for python header using the include path obtained above
|
||||
AC_CHECK_HEADERS([${BUILD_PYTHON_INC}/Python.h],[have_Python_h=yes],[])
|
||||
|
||||
AC_SUBST(PYTHONDEV_CPPFLAGS)
|
||||
AC_SUBST(PYTHONDEV_LDFLAGS)
|
||||
AC_SUBST(BUILD_PYTHON_SITE_PACKAGES)
|
||||
AC_SUBST(BUILD_PYTHON_INC)
|
||||
AC_SUBST(BUILD_PYTHON_LIB)
|
||||
|
||||
# Eval two times to expand fully. First eval replaces $exec_prefix into $prefix
|
||||
# Second eval will expand $prefix
|
||||
build_python_site_packages_temp="${pythondir}"
|
||||
eval build_python_site_packages_temp=\"${build_python_site_packages_temp}\"
|
||||
eval build_python_site_packages_temp=\"${build_python_site_packages_temp}\"
|
||||
BUILD_PYTHON_SITE_PACKAGES_EXPANDED=${build_python_site_packages_temp}
|
||||
AC_SUBST(BUILD_PYTHON_SITE_PACKAGES_EXPANDED)
|
||||
|
||||
# FUSE section
|
||||
AC_ARG_ENABLE([fuse-client],
|
||||
@ -1002,7 +1004,7 @@ fi
|
||||
dnl cloudsync section
|
||||
BUILD_CLOUDSYNC="no"
|
||||
AC_CHECK_LIB([curl], [curl_easy_setopt], [LIBCURL="-lcurl"])
|
||||
if test "x$LIBCURL" != "x";then
|
||||
if test -n "$LIBCURL";then
|
||||
HAVE_LIBCURL="yes"
|
||||
fi
|
||||
AC_CHECK_HEADERS([openssl/hmac.h openssl/evp.h openssl/bio.h openssl/buffer.h], [HAVE_OPENSSL="yes"])
|
||||
@ -1369,19 +1371,11 @@ sysconfdirtemp="${sysconfdir}"
|
||||
eval sysconfdirtemp=\"${sysconfdirtemp}\"
|
||||
SYSCONF_DIR=${sysconfdirtemp}
|
||||
|
||||
# Eval two times to expand fully. First eval replaces $exec_prefix into $prefix
|
||||
# Second eval will expand $prefix
|
||||
build_python_site_packages_temp="${BUILD_PYTHON_SITE_PACKAGES}"
|
||||
eval build_python_site_packages_temp=\"${build_python_site_packages_temp}\"
|
||||
eval build_python_site_packages_temp=\"${build_python_site_packages_temp}\"
|
||||
BUILD_PYTHON_SITE_PACKAGES_EXPANDED=${build_python_site_packages_temp}
|
||||
|
||||
prefix=$prefix_temp
|
||||
exec_prefix=$exec_prefix_temp
|
||||
|
||||
AC_SUBST(SBIN_DIR)
|
||||
AC_SUBST(SYSCONF_DIR)
|
||||
AC_SUBST(BUILD_PYTHON_SITE_PACKAGES_EXPANDED)
|
||||
|
||||
# lazy umount emulation
|
||||
UMOUNTD_SUBDIR=""
|
||||
@ -1425,7 +1419,7 @@ AC_CHECK_LIB([readline -lcurses],[readline],[RLLIBS="-lreadline -lcurses"])
|
||||
AC_CHECK_LIB([readline -ltermcap],[readline],[RLLIBS="-lreadline -ltermcap"])
|
||||
AC_CHECK_LIB([readline -lncurses],[readline],[RLLIBS="-lreadline -lncurses"])
|
||||
|
||||
if test "x$RLLIBS" != "x"; then
|
||||
if test -n "$RLLIBS"; then
|
||||
if test "x$RL_UNDO" = "xyes"; then
|
||||
AC_DEFINE(HAVE_READLINE, 1, [readline enabled CLI])
|
||||
BUILD_READLINE=yes
|
||||
@ -1438,7 +1432,7 @@ fi
|
||||
BUILD_LIBAIO=no
|
||||
AC_CHECK_LIB([aio],[io_setup],[LIBAIO="-laio"])
|
||||
|
||||
if test "x$LIBAIO" != "x"; then
|
||||
if test -n "$LIBAIO"; then
|
||||
AC_DEFINE(HAVE_LIBAIO, 1, [libaio based POSIX enabled])
|
||||
BUILD_LIBAIO=yes
|
||||
fi
|
||||
@ -1454,7 +1448,7 @@ if test "x$enable_glupy" = "xyes"; then
|
||||
GLUPY_SUBDIR_MAKEFILE=xlators/features/glupy/Makefile
|
||||
GLUPY_SUBDIR_SRC_MAKEFILE=xlators/features/glupy/src/Makefile
|
||||
|
||||
if test "x${have_python}" = "xyes" -a "x${have_Python_h}" = "xyes"; then
|
||||
if test "x${have_python}" = "xyes" -a -n "${PYTHON_CFLAGS}"; then
|
||||
case $host_os in
|
||||
darwin*)
|
||||
BUILD_GLUPY=no
|
||||
@ -1472,7 +1466,7 @@ if test "x$enable_glupy" = "xyes"; then
|
||||
|
||||
if test "x$BUILD_GLUPY" = "xyes"; then
|
||||
|
||||
echo "building glupy with -isystem $BUILD_PYTHON_INC -l $BUILD_PYTHON_LIB"
|
||||
echo "building glupy with -isystem ${PYTHON_CFLAGS} ${PYTHON_LIBS}"
|
||||
|
||||
AC_SUBST(GLUPY_SUBDIR)
|
||||
AC_SUBST(GLUPY_SUBDIR_MAKEFILE)
|
||||
@ -1723,6 +1717,19 @@ AC_SUBST(GFAPI_EXTRA_LDFLAGS)
|
||||
GFAPI_LIBS="${ACL_LIBS}"
|
||||
AC_SUBST(GFAPI_LIBS)
|
||||
|
||||
pushd $(dirname $0)
|
||||
if test ! -e python-shebangs; then
|
||||
touch python-shebangs
|
||||
if test "x${PYTHON}" = "x/usr/bin/python2"; then
|
||||
echo "fixing python shebangs..."
|
||||
for f in api events extras geo-replication libglusterfs tests tools xlators; do
|
||||
find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \;
|
||||
done
|
||||
echo "...done"
|
||||
fi
|
||||
fi
|
||||
popd
|
||||
|
||||
dnl this change necessary for run-tests.sh
|
||||
AC_CONFIG_FILES([tests/env.rc],[ln -s ${ac_abs_builddir}/env.rc ${ac_abs_srcdir}/env.rc 2>/dev/null])
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
|
@ -81,7 +81,7 @@ to address the following issues
|
||||
Create a file in `$LIBEXEC/glusterfs/peer_message.py` with following
|
||||
content.
|
||||
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
from gluster.cliutils import Cmd, runcli, execute_in_peers, node_output_ok
|
||||
|
||||
class NodeHello(Cmd):
|
||||
@ -149,7 +149,7 @@ Now users can use `gluster-message` instead of calling
|
||||
Following example uses prettytable library, which can be installed
|
||||
using `pip install prettytable` or `dnf install python-prettytable`
|
||||
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
from prettytable import PrettyTable
|
||||
from gluster.cliutils import Cmd, runcli, execute_in_peers, node_output_ok
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import blessings
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
"""
|
||||
Schedule Geo-replication
|
||||
------------------------
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
import os
|
||||
from optparse import OptionParser
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright (c) 2006-2012 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# Below script has two purposes
|
||||
# 1. Display xattr of entire FS tree in a human readable form
|
||||
# 2. Display all the directory where contri and size mismatch.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import atexit
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -151,6 +151,14 @@
|
||||
%global _without_ocf --without-ocf
|
||||
%endif
|
||||
|
||||
%if ( 0%{?fedora} && 0%{?fedora} > 26 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
|
||||
%global _usepython3 1
|
||||
%global _pythonver 3
|
||||
%else
|
||||
%global _usepython3 0
|
||||
%global _pythonver 2
|
||||
%endif
|
||||
|
||||
# From https://fedoraproject.org/wiki/Packaging:Python#Macros
|
||||
%if ( 0%{?rhel} && 0%{?rhel} <= 6 )
|
||||
%{!?python2_sitelib: %global python2_sitelib %(python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
||||
@ -243,9 +251,6 @@ Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
|
||||
Requires(pre): shadow-utils
|
||||
%if ( 0%{?rhel} && 0%{?rhel} <= 5 )
|
||||
BuildRequires: python-simplejson
|
||||
%endif
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
BuildRequires: systemd
|
||||
%endif
|
||||
@ -259,8 +264,8 @@ BuildRequires: gcc make libtool
|
||||
BuildRequires: ncurses-devel readline-devel
|
||||
BuildRequires: libxml2-devel openssl-devel
|
||||
BuildRequires: libaio-devel libacl-devel
|
||||
BuildRequires: python2-devel
|
||||
%if ( 0%{?fedora} && 0%{?fedora} < 26 ) || ( 0%{?rhel} && 0%{?rhel} <= 7 )
|
||||
BuildRequires: python%{_pythonver}-devel
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
|
||||
BuildRequires: python-ctypes
|
||||
%endif
|
||||
%if ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} )
|
||||
@ -392,8 +397,8 @@ Summary: Extra Gluster filesystem Translators
|
||||
Group: Applications/File
|
||||
# We need python-gluster rpm for gluster module's __init__.py in Python
|
||||
# site-packages area
|
||||
Requires: python2-gluster = %{version}-%{release}
|
||||
Requires: python2
|
||||
Requires: python%{_pythonver}-gluster = %{version}-%{release}
|
||||
Requires: python%{_pythonver}
|
||||
|
||||
%description extra-xlators
|
||||
GlusterFS is a distributed file-system capable of scaling to several
|
||||
@ -453,9 +458,10 @@ Summary: GlusterFS Geo-replication
|
||||
Group: Applications/File
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-server%{?_isa} = %{version}-%{release}
|
||||
Requires: python2
|
||||
Requires: python-prettytable
|
||||
Requires: python2-gluster = %{version}-%{release}
|
||||
Requires: python%{_pythonver}
|
||||
Requires: python%{_pythonver}-prettytable
|
||||
Requires: python%{_pythonver}-gluster = %{version}-%{release}
|
||||
|
||||
Requires: rsync
|
||||
Requires: util-linux
|
||||
|
||||
@ -506,37 +512,27 @@ is in user space and easily manageable.
|
||||
|
||||
This package provides the base GlusterFS libraries
|
||||
|
||||
%package -n python-gluster
|
||||
%package -n python%{_pythonver}-gluster
|
||||
Summary: GlusterFS python library
|
||||
Group: Development/Tools
|
||||
%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) )
|
||||
# EL5 does not support noarch sub-packages
|
||||
BuildArch: noarch
|
||||
%endif
|
||||
|
||||
%global _python_gluster_description \
|
||||
GlusterFS is a distributed file-system capable of scaling to several\
|
||||
petabytes. It aggregates various storage bricks over Infiniband RDMA\
|
||||
or TCP/IP interconnect into one large parallel network file\
|
||||
system. GlusterFS is one of the most sophisticated file systems in\
|
||||
terms of features and extensibility. It borrows a powerful concept\
|
||||
called Translators from GNU Hurd kernel. Much of the code in GlusterFS\
|
||||
is in user space and easily manageable.\
|
||||
\
|
||||
This package contains the python modules of GlusterFS and own gluster\
|
||||
namespace.
|
||||
|
||||
%description -n python-gluster %{_python_gluster_description}
|
||||
|
||||
%package -n python2-gluster
|
||||
Summary: GlusterFS python library
|
||||
Group: Development/Tools
|
||||
%{?python_provide:%python_provide python2-gluster}
|
||||
Requires: python2
|
||||
Requires: python%{_pythonver}
|
||||
%if ( ! %{_usepython3} )
|
||||
%{?python_provide:%python_provide python-gluster}
|
||||
Provides: python-gluster = %{version}-%{release}
|
||||
Obsoletes: python-gluster < 3.10
|
||||
%endif
|
||||
|
||||
%description -n python2-gluster %{_python_gluster_description}
|
||||
%description -n python%{_pythonver}-gluster
|
||||
GlusterFS is a distributed file-system capable of scaling to several
|
||||
petabytes. It aggregates various storage bricks over Infiniband RDMA
|
||||
or TCP/IP interconnect into one large parallel network file
|
||||
system. GlusterFS is one of the most sophisticated file systems in
|
||||
terms of features and extensibility. It borrows a powerful concept
|
||||
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
|
||||
is in user space and easily manageable.
|
||||
|
||||
This package contains the python modules of GlusterFS and own gluster
|
||||
namespace.
|
||||
|
||||
%if ( 0%{!?_without_rdma:1} )
|
||||
%package rdma
|
||||
@ -571,7 +567,8 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release}
|
||||
## thin provisioning support
|
||||
Requires: lvm2 >= 2.02.89
|
||||
Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng
|
||||
Requires: python2 attr dbench file git libacl-devel net-tools
|
||||
Requires: python%{_pythonver}
|
||||
Requires: attr dbench file git libacl-devel net-tools
|
||||
Requires: nfs-utils xfsprogs yajl psmisc bc
|
||||
|
||||
%description regression-tests
|
||||
@ -652,8 +649,8 @@ Obsoletes: %{name}-geo-replication = %{version}-%{release}
|
||||
%if ( 0%{?rhel} && 0%{?rhel} <= 6 )
|
||||
Requires: python-argparse
|
||||
%endif
|
||||
%if ( 0%{?fedora} && 0%{?fedora} >= 28 )
|
||||
Requires: python2-pyxattr
|
||||
%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
|
||||
Requires: python%{_pythonver}-pyxattr
|
||||
%else
|
||||
Requires: pyxattr
|
||||
%endif
|
||||
@ -693,12 +690,12 @@ This package provides the translators needed on any GlusterFS client.
|
||||
Summary: GlusterFS Events
|
||||
Group: Applications/File
|
||||
Requires: %{name}-server%{?_isa} = %{version}-%{release}
|
||||
Requires: python2 python-prettytable
|
||||
Requires: python2-gluster = %{version}-%{release}
|
||||
%if ( 0%{?rhel} )
|
||||
Requires: python%{_pythonver} python%{_pythonver}-prettytable
|
||||
Requires: python%{_pythonver}-gluster = %{version}-%{release}
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
|
||||
Requires: python-requests
|
||||
%else
|
||||
Requires: python2-requests
|
||||
Requires: python%{_pythonver}-requests
|
||||
%endif
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
Requires: python-argparse
|
||||
@ -1185,6 +1182,10 @@ exit 0
|
||||
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so
|
||||
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
|
||||
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so
|
||||
%if ( %{_usepython3} )
|
||||
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/__pycache__
|
||||
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/__pycache__/*
|
||||
%endif
|
||||
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so
|
||||
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing
|
||||
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground
|
||||
@ -1192,9 +1193,17 @@ exit 0
|
||||
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance
|
||||
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so
|
||||
# Glupy Python files
|
||||
%if ( %{_usepython3} )
|
||||
%dir %{python3_sitelib}/gluster
|
||||
%dir %{python3_sitelib}/gluster/__pycache__
|
||||
%{python3_sitelib}/gluster/__pycache__/*
|
||||
%dir %{python3_sitelib}/gluster/glupy
|
||||
%{python3_sitelib}/gluster/glupy/*
|
||||
%else
|
||||
%dir %{python2_sitelib}/gluster
|
||||
%dir %{python2_sitelib}/gluster/glupy
|
||||
%{python2_sitelib}/gluster/glupy/*
|
||||
%endif
|
||||
|
||||
%files fuse
|
||||
# glusterfs is a symlink to glusterfsd, -server depends on -fuse.
|
||||
@ -1274,12 +1283,18 @@ exit 0
|
||||
%exclude %{_libdir}/libgfdb.*
|
||||
%endif
|
||||
|
||||
%files -n python2-gluster
|
||||
%files -n python%{_pythonver}-gluster
|
||||
# introducing glusterfs module in site packages.
|
||||
# so that all other gluster submodules can reside in the same namespace.
|
||||
%if ( %{_usepython3} )
|
||||
%dir %{python3_sitelib}/gluster
|
||||
%{python3_sitelib}/gluster/__init__.*
|
||||
%{python3_sitelib}/gluster/cliutils
|
||||
%else
|
||||
%dir %{python2_sitelib}/gluster
|
||||
%{python2_sitelib}/gluster/__init__.*
|
||||
%{python2_sitelib}/gluster/cliutils
|
||||
%endif
|
||||
|
||||
%if ( 0%{!?_without_rdma:1} )
|
||||
%files rdma
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
import string
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Create a unix domain socket and test if it is a socket (and not a fifo/pipe).
|
||||
#
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import ctypes
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
# This script was developed by Vijaykumar Koppad (vkoppad@redhat.com)
|
||||
# The latest version of this script can found at
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
import os
|
||||
import shutil
|
||||
from errno import ENOENT
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
|
||||
# This file is part of GlusterFS.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
# This script generates the boilerplate versions of most fops and cbks in the
|
||||
# server. This allows the details of leadership-status checking, sequencing
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
@ -4,24 +4,23 @@ xlator_LTLIBRARIES = glupy.la
|
||||
xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features
|
||||
glupydir = $(xlatordir)/glupy
|
||||
|
||||
AM_CPPFLAGS = $(PYTHONDEV_CPPFLAGS) $(GF_CPPFLAGS) \
|
||||
AM_CPPFLAGS = $(GF_CPPFLAGS) \
|
||||
-I$(top_srcdir)/libglusterfs/src \
|
||||
-I$(top_srcdir)/rpc/xdr/src -I$(top_builddir)/rpc/xdr/src \
|
||||
-isystem $(BUILD_PYTHON_INC)
|
||||
-I$(top_srcdir)/rpc/xdr/src -I$(top_builddir)/rpc/xdr/src
|
||||
|
||||
AM_CFLAGS = $(PYTHONDEV_CPPFLAGS) -Wall -fno-strict-aliasing \
|
||||
AM_CFLAGS = -Wall -fno-strict-aliasing \
|
||||
-DGLUSTER_PYTHON_PATH=\"$(glupydir)\" \
|
||||
-DPATH_GLUSTERFS_GLUPY_MODULE=\"${xlatordir}/glupy${shrext_cmds}\" \
|
||||
$(GF_CFLAGS)
|
||||
$(GF_CFLAGS) $(PYTHON_CFLAGS)
|
||||
|
||||
# Flags to build glupy.so with
|
||||
glupy_la_LDFLAGS = $(PYTHONDEV_LDFLAGS) -module -avoid-version -nostartfiles \
|
||||
glupy_la_LDFLAGS = -module -avoid-version -nostartfiles \
|
||||
-export-symbols $(top_srcdir)/xlators/features/glupy/src/glupy.sym \
|
||||
$(GF_NO_UNDEFINED)
|
||||
$(GF_NO_UNDEFINED) $(PYTHON_LIBS)
|
||||
|
||||
glupy_la_SOURCES = glupy.c
|
||||
glupy_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
|
||||
-lpthread -l$(BUILD_PYTHON_LIB) $(LIB_DL)
|
||||
-lpthread $(LIB_DL)
|
||||
|
||||
noinst_HEADERS = glupy.h
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python2
|
||||
#!/usr/bin/python3
|
||||
|
||||
from pkgutil import extend_path
|
||||
__path__ = extend_path(__path__, __name__)
|
||||
|
Loading…
x
Reference in New Issue
Block a user