From 86487edbf05f712bf6b351ae639cd10bcf87ba63 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Tue, 11 Nov 2014 16:02:56 +0000 Subject: setup.py: Force import extensions to have execute permissions preserved Code for this was taken from Morph's setup.py file. It would possibly be more correct to install these files into a subdirectory of /usr/libexec but it'd be a more complex solution for little actual benefit. --- setup.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/setup.py b/setup.py index f8396ef..7a30fcc 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,29 @@ from distutils.core import setup +from distutils.command.build import build + +import os +import os.path +import stat + + +class GenerateResources(build): + + def run(self): + build.run(self) + + # Set exec permissions on import extensions. + for dirname, subdirs, basenames in os.walk('baserockimport/exts'): + for basename in basenames: + orig = os.path.join(dirname, basename) + built = os.path.join('build/lib', dirname, basename) + st = os.lstat(orig) + bits = (st.st_mode & + (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)) + if bits != 0: + st2 = os.lstat(built) + os.chmod(built, st2.st_mode | bits) setup(name='baserockimport', @@ -44,4 +67,7 @@ setup(name='baserockimport', 'exts/*', ] }, + cmdclass={ + 'build': GenerateResources, + } ) -- cgit v1.2.1