[Gluster-devel] Python3 build process

Niels de Vos ndevos at redhat.com
Fri Sep 28 10:12:27 UTC 2018

On Thu, Sep 27, 2018 at 08:40:54AM -0400, Shyam Ranganathan wrote:
> On 09/27/2018 08:07 AM, Kaleb S. KEITHLEY wrote:
> >> The thought is,
> >> - Add a configure option "--enable-py-version-correction" to configure,
> >> that is disabled by default
> > "correction" implies there's something that's incorrect. How about
> > "conversion" or perhaps just --enable-python2
> > 
> I would not like to go with --enable-python2 as that implies it is an
> conscious choice with the understanding that py2 is on the box. Given
> the current ability to detect and hence correct the python shebangs, I
> would think we should retain it as a more detect and modify the shebangs
> option name. (I am looking at this more as an option that does the right
> thing implicitly than someone/tool using this checking explicitly, which
> can mean different things to different people, if that makes sense)
> Now "correction" seems like an overkill, maybe "conversion"?

Is it really needed to have this as an option? Instead of an option in
configure.ac, can it not be a post-install task in a Makefile.am? The
number of executable python scripts that get installed are minimal, so I
do not expect that a lot of changes are needed for this.

There do seem quite some Python files that have a shebang, but do not
need it (__init__.py, not executable, no __main__-like functions). This
should probably get reviewed as well. When those scripts get their
shebang removed, even fewer files need to be 'fixed-up'.

Is there a BZ or GitHub Issue that I can use to send some fixes?


    $ for F in $(git ls-files) ; do if ( head -n1 $F | grep -q -E '^#.+python' ) ; then echo "$F uses Python" ; fi ; done
    api/examples/getvolfile.py uses Python
    events/eventskeygen.py uses Python
    events/src/gf_event.py uses Python
    events/src/glustereventsd.py uses Python
    events/src/peer_eventsapi.py uses Python
    events/tools/eventsdash.py uses Python
    extras/create_new_xlator/generate_xlator.py uses Python
    extras/distributed-testing/distributed-test-runner.py uses Python
    extras/failed-tests.py uses Python
    extras/geo-rep/schedule_georep.py.in uses Python
    extras/git-branch-diff.py uses Python
    extras/gnfs-loganalyse.py uses Python
    extras/hook-scripts/S40ufo-stop.py uses Python
    extras/profiler/glusterfs-profiler uses Python
    extras/quota/quota_fsck.py uses Python
    extras/quota/xattr_analysis.py uses Python
    extras/rebalance.py uses Python
    extras/snap_scheduler/conf.py.in uses Python
    extras/snap_scheduler/gcron.py uses Python
    extras/snap_scheduler/snap_scheduler.py uses Python
    geo-replication/src/peer_georep-sshkey.py.in uses Python
    geo-replication/src/peer_mountbroker.in uses Python
    geo-replication/src/peer_mountbroker.py.in uses Python
    geo-replication/syncdaemon/changelogagent.py uses Python
    geo-replication/syncdaemon/conf.py.in uses Python
    geo-replication/syncdaemon/gsyncd.py uses Python
    geo-replication/syncdaemon/gsyncdstatus.py uses Python
    geo-replication/tests/__init__.py uses Python
    geo-replication/tests/unit/__init__.py uses Python
    geo-replication/tests/unit/test_gsyncdstatus.py uses Python
    geo-replication/tests/unit/test_syncdutils.py uses Python
    libglusterfs/src/gen-defaults.py uses Python
    libglusterfs/src/generator.py uses Python
    tools/gfind_missing_files/gfid_to_path.py uses Python
    tools/glusterfind/S57glusterfind-delete-post.py uses Python
    tools/glusterfind/glusterfind.in uses Python
    tools/glusterfind/src/brickfind.py uses Python
    tools/glusterfind/src/changelog.py uses Python
    tools/glusterfind/src/main.py uses Python
    tools/glusterfind/src/nodeagent.py uses Python
    xlators/experimental/fdl/src/gen_dumper.py uses Python
    xlators/experimental/fdl/src/gen_fdl.py uses Python
    xlators/experimental/fdl/src/gen_recon.py uses Python
    xlators/experimental/jbr-client/src/gen-fops.py uses Python
    xlators/experimental/jbr-server/src/gen-fops.py uses Python
    xlators/features/changelog/lib/examples/python/changes.py uses Python
    xlators/features/cloudsync/src/cloudsync-fops-c.py uses Python
    xlators/features/cloudsync/src/cloudsync-fops-h.py uses Python
    xlators/features/glupy/src/__init__.py.in uses Python
    xlators/features/utime/src/utime-gen-fops-c.py uses Python
    xlators/features/utime/src/utime-gen-fops-h.py uses Python

More information about the Gluster-devel mailing list