Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
This commit is contained in:
Kaleb S. KEITHLEY 2019-02-22 11:38:52 -05:00
parent 3bfdc85542
commit 188860a17f
4 changed files with 227 additions and 80 deletions

View File

@ -0,0 +1,78 @@
From 5711508032b5f280c56eb983392b58ca66de6124 Mon Sep 17 00:00:00 2001
From: "Kaleb S. KEITHLEY" <kkeithle@redhat.com>
Date: Fri, 22 Feb 2019 09:25:26 -0500
Subject: [PATCH] glusterfind: revert shebangs to #!/usr/bin/python3
Using #!/usr/bin/env python is illegal in Fedora and RHEL packaging.
(Debian and SUSE packaging will complain about it too but don't
enforce it like Fedora packaging does. Yet.)
We went through a giant exercise fixing these once already.
The python needs to be python2/python3 clean. There is a build
scriptlet that converts the shebangs back to /usr/bin/python on rhel7.
Change-Id: If208a2557f7e5d727cda98c27905e249cf485d5b
updates: bz#1193929
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
---
tools/glusterfind/glusterfind.in | 2 +-
tools/glusterfind/src/brickfind.py | 2 +-
tools/glusterfind/src/changelog.py | 2 +-
tools/glusterfind/src/main.py | 2 +-
tools/glusterfind/src/nodeagent.py | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/tools/glusterfind/glusterfind.in b/tools/glusterfind/glusterfind.in
index 569bf4121..ca154b625 100644
--- a/tools/glusterfind/glusterfind.in
+++ b/tools/glusterfind/glusterfind.in
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
# This file is part of GlusterFS.
diff --git a/tools/glusterfind/src/brickfind.py b/tools/glusterfind/src/brickfind.py
index 1e72c00e5..73b635018 100644
--- a/tools/glusterfind/src/brickfind.py
+++ b/tools/glusterfind/src/brickfind.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
diff --git a/tools/glusterfind/src/changelog.py b/tools/glusterfind/src/changelog.py
index 62669e950..40c381b59 100644
--- a/tools/glusterfind/src/changelog.py
+++ b/tools/glusterfind/src/changelog.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
diff --git a/tools/glusterfind/src/main.py b/tools/glusterfind/src/main.py
index 1145fc1e2..cc5a86f27 100644
--- a/tools/glusterfind/src/main.py
+++ b/tools/glusterfind/src/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
diff --git a/tools/glusterfind/src/nodeagent.py b/tools/glusterfind/src/nodeagent.py
index 2ddc77aff..679daa6fa 100644
--- a/tools/glusterfind/src/nodeagent.py
+++ b/tools/glusterfind/src/nodeagent.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com/>
--
2.20.1

View File

@ -0,0 +1,102 @@
From b235a56394c09bb1d7308a620053dbe098d15967 Mon Sep 17 00:00:00 2001
From: Niels de Vos <ndevos@redhat.com>
Date: Fri, 22 Feb 2019 15:17:48 +0100
Subject: [PATCH] build: include gluster/__init__.* files for python packaging
The gluster/__init__.py file was originaly part of the glupy
installation. This file is required to have the python-gluster package
function correctly, it is expected to provide the 'gluster' namespace
for other python packages (like from the libgfapi-python project).
Because glupy does not exist anymore, this file is now added to in a new
extras/python directory.
Change-Id: I14fe959778ee3344d7d54ba342c7928a4d8080a2
Fixes: c3fcff9ccbfcec1be242fd5cf210c9995586b078
Fixes: 8293d21280fd6ddfc9bb54068cf87794fc6be207
Updates: bz#1642810
Signed-off-by: Niels de Vos <ndevos@redhat.com>
---
configure.ac | 2 ++
extras/Makefile.am | 2 +-
extras/python/Makefile.am | 7 +++++++
extras/python/__init__.py | 2 ++
glusterfs.spec.in | 3 +++
5 files changed, 15 insertions(+), 1 deletion(-)
create mode 100644 extras/python/Makefile.am
create mode 100644 extras/python/__init__.py
diff --git a/configure.ac b/configure.ac
index 3aa7f4e77..e055e8c8f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -226,6 +226,7 @@ AC_CONFIG_FILES([Makefile
extras/hook-scripts/reset/Makefile
extras/hook-scripts/reset/post/Makefile
extras/hook-scripts/reset/pre/Makefile
+ extras/python/Makefile
extras/snap_scheduler/Makefile
events/Makefile
events/src/Makefile
@@ -630,6 +631,7 @@ AM_PATH_PYTHON([2.6],,[:])
if test -n "${PYTHON}"; then
have_python=yes
fi
+AM_CONDITIONAL(HAVE_PYTHON, test "x$have_python" = "xyes")
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
diff --git a/extras/Makefile.am b/extras/Makefile.am
index cf4e9264b..de062f37e 100644
--- a/extras/Makefile.am
+++ b/extras/Makefile.am
@@ -11,7 +11,7 @@ EditorModedir = $(docdir)
EditorMode_DATA = glusterfs-mode.el glusterfs.vim
SUBDIRS = init.d systemd benchmarking hook-scripts $(OCF_SUBDIR) LinuxRPM \
- $(GEOREP_EXTRAS_SUBDIR) snap_scheduler firewalld cliutils
+ $(GEOREP_EXTRAS_SUBDIR) snap_scheduler firewalld cliutils python
confdir = $(sysconfdir)/glusterfs
if WITH_SERVER
diff --git a/extras/python/Makefile.am b/extras/python/Makefile.am
new file mode 100644
index 000000000..7d81fa031
--- /dev/null
+++ b/extras/python/Makefile.am
@@ -0,0 +1,7 @@
+if HAVE_PYTHON
+# Install __init__.py into the Python site-packages area
+pypkgdir = @BUILD_PYTHON_SITE_PACKAGES@/gluster
+pypkg_PYTHON = __init__.py
+endif
+
+EXTRA_DIST = __init__.py
diff --git a/extras/python/__init__.py b/extras/python/__init__.py
new file mode 100644
index 000000000..3ad9513f4
--- /dev/null
+++ b/extras/python/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git a/glusterfs.spec.in b/glusterfs.spec.in
index 45b671e33..205b51d4b 100644
--- a/glusterfs.spec.in
+++ b/glusterfs.spec.in
@@ -1186,9 +1186,12 @@ exit 0
# 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/__pycache__
%{python3_sitelib}/gluster/cliutils
%else
%dir %{python2_sitelib}/gluster
+ %{python2_sitelib}/gluster/__init__.*
%{python2_sitelib}/gluster/cliutils
%endif
--
2.20.1

View File

@ -7,7 +7,7 @@
%global _for_fedora_koji_builds 1
# uncomment and add '%' to use the prereltag for pre-releases
# %%global prereltag rc1
%global prereltag rc0
##-----------------------------------------------------------------------------
## All argument definitions should be placed here and keep them sorted
@ -115,6 +115,15 @@
%global _without_syslog --disable-syslog
%endif
# tsan
# if you wish to compile an rpm with thread sanitizer...
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with tsan
%{?_with_tsan:%global _with_tsan --enable-tsan}
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
%global _with_tsan %{nil}
%endif
# valgrind
# if you wish to compile an rpm to run all processes under valgrind...
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind
@ -143,11 +152,10 @@
%global _without_events --disable-events
%global _without_georeplication --disable-georeplication
%global _with_gnfs %{nil}
%global _without_tiering --disable-tiering
%global _without_ocf --without-ocf
%endif
%if ( 0%{?fedora} && 0%{?fedora} > 26 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
%global _usepython3 1
%global _pythonver 3
%else
@ -218,8 +226,8 @@
Summary: Distributed File System
%if ( 0%{_for_fedora_koji_builds} )
Name: glusterfs
Version: 5.3
Release: %{?prereltag:0.}2%{?prereltag:.%{prereltag}}%{?dist}
Version: 6.0
Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}
%else
Name: @PACKAGE_NAME@
Version: @PACKAGE_VERSION@
@ -236,7 +244,8 @@ Source8: glusterfsd.init
%else
Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz
%endif
Patch0001: 0001-glusterfind-revert-shebangs-to-usr-bin-python3.patch
Patch0002: 0002-build-include-gluster-__init__.-files-for-python-pac.patch
Requires(pre): shadow-utils
%if ( 0%{?_with_systemd:1} )
@ -250,6 +259,9 @@ Requires: %{name}-libs = %{version}-%{release}
%if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
BuildRequires: libasan
%endif
%if 0%{?_with_tsan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
BuildRequires: libtsan
%endif
BuildRequires: bison flex
BuildRequires: gcc make libtool
BuildRequires: ncurses-devel readline-devel
@ -273,9 +285,6 @@ BuildRequires: libuuid-devel
%if ( 0%{?_with_cmocka:1} )
BuildRequires: libcmocka-devel >= 1.0.1
%endif
%if ( 0%{!?_without_tiering:1} )
BuildRequires: sqlite-devel
%endif
%if ( 0%{!?_without_bd:1} )
BuildRequires: lvm2-devel
%endif
@ -375,6 +384,21 @@ is in user space and easily manageable.
This package provides the translators needed on any GlusterFS client.
%package cloudsync-plugins
Summary: Cloudsync Plugins
BuildRequires: libcurl-devel
%description cloudsync-plugins
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 provides cloudsync plugins for archival feature.
%package devel
Summary: Development Libraries
Requires: %{name} = %{version}-%{release}
@ -467,21 +491,6 @@ is in user space and easily manageable.
This package provides support to FUSE based clients and includes the
glusterfsd and glusterfs binaries.
%package cloudsync-plugins
Summary: Cloudsync Plugins
BuildRequires: libcurl-devel
%description cloudsync-plugins
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 provides cloudsync plugins for archival feature.
%if ( 0%{!?_without_georeplication:1} )
%package geo-replication
Summary: GlusterFS Geo-replication
@ -684,6 +693,8 @@ This package provides the glusterfs server daemon.
%prep
%setup -q -n %{name}-%{version}%{?prereltag}
%patch0001 -p1
%patch0002 -p1
%if ( ! %{_usepython3} )
echo "fixing python shebangs..."
for f in api events extras geo-replication libglusterfs tools xlators; do
@ -701,6 +712,7 @@ sed -i -e 's/--quiet//' configure.ac
%{?_with_firewalld} \
%{?_with_gnfs} \
%{?_with_tmpfilesdir} \
%{?_with_tsan} \
%{?_with_valgrind} \
%{?_without_bd} \
%{?_without_epoll} \
@ -711,7 +723,6 @@ sed -i -e 's/--quiet//' configure.ac
%{?_without_rdma} \
%{?_without_server} \
%{?_without_syslog} \
%{?_without_tiering} \
%{?_with_ipv6default} \
%{?_without_libtirpc}
@ -855,12 +866,6 @@ exit 0
exit 0
%endif
%if ( 0%{?rhel} == 5 )
%post fuse
modprobe fuse
exit 0
%endif
%if ( 0%{!?_without_georeplication:1} )
%post geo-replication
if [ $1 -ge 1 ]; then
@ -1055,8 +1060,6 @@ exit 0
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so
@ -1117,50 +1120,23 @@ exit 0
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so
%files cloudsync-plugins
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins
%{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so
%files devel
%dir %{_includedir}/glusterfs
%{_includedir}/glusterfs/*
%exclude %{_includedir}/glusterfs/api
%exclude %{_libdir}/libgfapi.so
%{_libdir}/*.so
# Glupy Translator examples
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.*
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.*
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.*
%{_libdir}/pkgconfig/libgfchangelog.pc
%if ( 0%{!?_without_tiering:1} )
%{_libdir}/pkgconfig/libgfdb.pc
%endif
%files extra-xlators
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption
%{_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/playground
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing
%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.
@ -1174,10 +1150,6 @@ exit 0
%{_bindir}/fusermount-glusterfs
%endif
%files cloudsync-plugins
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins
%{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so
%if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} )
%files gnfs
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs
@ -1230,10 +1202,6 @@ exit 0
%{_libdir}/*.so.*
%exclude %{_libdir}/libgfapi.*
# libgfdb is only needed server-side
%if ( 0%{!?_without_tiering:1} )
# libgfdb is only needed server-side
%exclude %{_libdir}/libgfdb.*
%endif
%files -n python%{_pythonver}-gluster
# introducing glusterfs module in site packages.
@ -1241,6 +1209,7 @@ exit 0
%if ( %{_usepython3} )
%dir %{python3_sitelib}/gluster
%{python3_sitelib}/gluster/__init__.*
%{python3_sitelib}/gluster/__pycache__
%{python3_sitelib}/gluster/cliutils
%else
%dir %{python2_sitelib}/gluster
@ -1312,10 +1281,6 @@ exit 0
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/sdfs.so
%if ( 0%{!?_without_tiering:1} )
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so
%{_libdir}/libgfdb.so.*
%endif
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix*
@ -1331,9 +1296,6 @@ exit 0
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage
%if ( 0%{!?_without_bd:1} )
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/bd.so
%endif
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so
@ -1353,6 +1315,8 @@ exit 0
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/db-workload
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/distributed-virt
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/samba
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd
@ -1449,6 +1413,9 @@ exit 0
%endif
%changelog
* Fri Feb 22 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 6.0rc0-0.1
- 6.0 RC0
* Wed Feb 20 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.3-2
- re-rebuild for f31/rawhide

View File

@ -1 +1 @@
SHA512 (glusterfs-5.3.tar.gz) = 8b5405dbbfcc57ece25ac5934c1d63e9a1f8936bcf6d53ebfdca5c144e963550d99bdee667b7ed7b06c608ddfbf40b5738e9c15b17a11362c8478b02a7e0e15f
SHA512 (glusterfs-6.0rc0.tar.gz) = 637a73c59ecbad4c4ab2db5af10f1e2dd6ed4a566ab58a6f5641c50a85962a411b46b73e45e0d59cb2c4136e9b3c86e92ff0119991ed9fadbb2789dde3e21ce2