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:
Kaleb S. KEITHLEY 2018-08-29 11:09:27 -04:00 committed by Amar Tumballi
parent eda69f2e32
commit af0d5a9b53
57 changed files with 178 additions and 156 deletions

View File

@ -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 \

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import ctypes

View File

@ -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])

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>

View File

@ -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

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import os

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import absolute_import
from __future__ import division

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import blessings

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
"""
Schedule Geo-replication
------------------------

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
import os
from optparse import OptionParser

View File

@ -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.

View File

@ -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.

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import atexit

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function

View File

@ -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.

View File

@ -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.

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import sys

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
import string

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import sys

View File

@ -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).
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import ctypes

View File

@ -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

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import os

View File

@ -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.

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import sys

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
import os
import sys

View File

@ -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.

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
import os
import shutil
from errno import ENOENT

View File

@ -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.

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import os

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import os

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import os

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import os

View File

@ -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

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from __future__ import print_function
import os

View File

@ -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

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)