| @@ -1,122 +1,122 @@ | |||
| #!/usr/bin/env python | |||
| # | |||
| # Copyright (c) 2015, SmartFile <tcunningham@smartfile.com> | |||
| # All rights reserved. | |||
| # | |||
| # Redistribution and use in source and binary forms, with or without | |||
| # modification, are permitted provided that the following conditions are met: | |||
| # * Redistributions of source code must retain the above copyright | |||
| # notice, this list of conditions and the following disclaimer. | |||
| # * Redistributions in binary form must reproduce the above copyright | |||
| # notice, this list of conditions and the following disclaimer in the | |||
| # documentation and/or other materials provided with the distribution. | |||
| # * Neither the name of the organization nor the | |||
| # names of its contributors may be used to endorse or promote products | |||
| # derived from this software without specific prior written permission. | |||
| # | |||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |||
| # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |||
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
| # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY | |||
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |||
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |||
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| from os import environ | |||
| try: | |||
| from setuptools import setup, Extension | |||
| from setuptools.command.build_ext import build_ext | |||
| except ImportError: | |||
| from distutils.core import setup, Extension | |||
| from distutils.command.build_ext import build_ext | |||
| # Use a provided libarchive else default to hard-coded path. | |||
| libarchivePrefix = environ.get('LIBARCHIVE_PREFIX') | |||
| if libarchivePrefix: | |||
| includePath = libarchivePrefix + '/include' | |||
| else: | |||
| includePath = '/usr/local/include' | |||
| name = 'python-libarchive' | |||
| version = '4.2.0' | |||
| readme = 'README.rst' | |||
| repourl = 'https://github.com/smartfile/python-libarchive' | |||
| long_description = open(readme).read() | |||
| class build_ext_extra(build_ext, object): | |||
| """ | |||
| Extend build_ext allowing extra_compile_args and extra_link_args to be set | |||
| on the command-line. | |||
| """ | |||
| user_options = build_ext.user_options | |||
| user_options.append(('extra-compile-args=', None, 'Extra arguments passed directly to the compiler')) | |||
| user_options.append(('extra-link-args=', None, 'Extra arguments passed directly to the linker')) | |||
| def initialize_options(self): | |||
| build_ext.initialize_options(self) | |||
| self.extra_compile_args = None | |||
| self.extra_link_args = None | |||
| def build_extension(self, ext): | |||
| if self.extra_compile_args: | |||
| ext.extra_compile_args.append(self.extra_compile_args) | |||
| if self.extra_link_args: | |||
| ext.extra_link_args.append(self.extra_link_args) | |||
| super(build_ext_extra, self).build_extension(ext) | |||
| if libarchivePrefix: | |||
| extra_compile_args = ['-I{0}/include'.format(libarchivePrefix)] | |||
| extra_link_args = ['-Wl,-rpath,{0}/lib'.format(libarchivePrefix)] | |||
| environ['LDFLAGS'] = '-L{0}/lib {1}'.format(libarchivePrefix, environ.get('LDFLAGS', '')) | |||
| else: | |||
| extra_compile_args = [] | |||
| extra_link_args = ['-l:libarchive.so'] | |||
| __libarchive = Extension( | |||
| name='libarchive.__libarchive', | |||
| sources=['libarchive/_libarchive_wrap.c'], | |||
| libraries=['archive'], | |||
| extra_compile_args=extra_compile_args, | |||
| extra_link_args=extra_link_args, | |||
| include_dirs=[includePath, 'libarchive'], | |||
| ) | |||
| setup( | |||
| name=name, | |||
| version=version, | |||
| description='A libarchive wrapper for Python supporting password protection.', | |||
| long_description=long_description, | |||
| license='BSD-style license', | |||
| platforms=['any'], | |||
| author='Vadim Lebedev, Ben Timby, Travis Cunningham, Ryan Johnston, SmartFile', | |||
| author_email='tech@smartfile.com', | |||
| url=repourl, | |||
| packages=['libarchive'], | |||
| classifiers=[ | |||
| 'Development Status :: 5 - Production/Stable', | |||
| 'Intended Audience :: Developers', | |||
| 'Operating System :: OS Independent', | |||
| 'Programming Language :: C', | |||
| 'Programming Language :: Python', | |||
| 'Topic :: System :: Archiving :: Compression', | |||
| 'Topic :: Software Development :: Libraries :: Python Modules', | |||
| ], | |||
| cmdclass={ | |||
| 'build_ext': build_ext_extra, | |||
| }, | |||
| ext_modules=[__libarchive], | |||
| ) | |||
| #!/usr/bin/env python | |||
| # | |||
| # Copyright (c) 2015, SmartFile <tcunningham@smartfile.com> | |||
| # All rights reserved. | |||
| # | |||
| # Redistribution and use in source and binary forms, with or without | |||
| # modification, are permitted provided that the following conditions are met: | |||
| # * Redistributions of source code must retain the above copyright | |||
| # notice, this list of conditions and the following disclaimer. | |||
| # * Redistributions in binary form must reproduce the above copyright | |||
| # notice, this list of conditions and the following disclaimer in the | |||
| # documentation and/or other materials provided with the distribution. | |||
| # * Neither the name of the organization nor the | |||
| # names of its contributors may be used to endorse or promote products | |||
| # derived from this software without specific prior written permission. | |||
| # | |||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |||
| # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |||
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
| # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY | |||
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |||
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |||
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
| from os import environ | |||
| try: | |||
| from setuptools import setup, Extension | |||
| from setuptools.command.build_ext import build_ext | |||
| except ImportError: | |||
| from distutils.core import setup, Extension | |||
| from distutils.command.build_ext import build_ext | |||
| # Use a provided libarchive else default to hard-coded path. | |||
| libarchivePrefix = environ.get('LIBARCHIVE_PREFIX') | |||
| if libarchivePrefix: | |||
| includePath = libarchivePrefix + '/include' | |||
| else: | |||
| includePath = '/usr/local/include' | |||
| name = 'python-libarchive' | |||
| version = '4.2.0' | |||
| readme = 'README.rst' | |||
| repourl = 'https://github.com/smartfile/python-libarchive' | |||
| long_description = open(readme).read() | |||
| class build_ext_extra(build_ext, object): | |||
| """ | |||
| Extend build_ext allowing extra_compile_args and extra_link_args to be set | |||
| on the command-line. | |||
| """ | |||
| user_options = build_ext.user_options | |||
| user_options.append(('extra-compile-args=', None, 'Extra arguments passed directly to the compiler')) | |||
| user_options.append(('extra-link-args=', None, 'Extra arguments passed directly to the linker')) | |||
| def initialize_options(self): | |||
| build_ext.initialize_options(self) | |||
| self.extra_compile_args = None | |||
| self.extra_link_args = None | |||
| def build_extension(self, ext): | |||
| if self.extra_compile_args: | |||
| ext.extra_compile_args.append(self.extra_compile_args) | |||
| if self.extra_link_args: | |||
| ext.extra_link_args.append(self.extra_link_args) | |||
| super(build_ext_extra, self).build_extension(ext) | |||
| if libarchivePrefix: | |||
| extra_compile_args = ['-I{0}/include'.format(libarchivePrefix)] | |||
| extra_link_args = ['-Wl,-rpath,{0}/lib'.format(libarchivePrefix)] | |||
| environ['LDFLAGS'] = '-L{0}/lib {1}'.format(libarchivePrefix, environ.get('LDFLAGS', '')) | |||
| else: | |||
| extra_compile_args = [] | |||
| extra_link_args = ['-l:libarchive.so'] | |||
| __libarchive = Extension( | |||
| name='libarchive.__libarchive', | |||
| sources=['libarchive/_libarchive_wrap.c'], | |||
| libraries=['archive'], | |||
| extra_compile_args=extra_compile_args, | |||
| extra_link_args=extra_link_args, | |||
| include_dirs=[includePath, 'libarchive'], | |||
| ) | |||
| setup( | |||
| name=name, | |||
| version=version, | |||
| description='A libarchive wrapper for Python supporting password protection.', | |||
| long_description=long_description, | |||
| license='BSD-style license', | |||
| platforms=['any'], | |||
| author='Vadim Lebedev, Ben Timby, Travis Cunningham, Ryan Johnston, SmartFile', | |||
| author_email='tech@smartfile.com', | |||
| url=repourl, | |||
| packages=['libarchive'], | |||
| classifiers=[ | |||
| 'Development Status :: 5 - Production/Stable', | |||
| 'Intended Audience :: Developers', | |||
| 'Operating System :: OS Independent', | |||
| 'Programming Language :: C', | |||
| 'Programming Language :: Python', | |||
| 'Topic :: System :: Archiving :: Compression', | |||
| 'Topic :: Software Development :: Libraries :: Python Modules', | |||
| ], | |||
| cmdclass={ | |||
| 'build_ext': build_ext_extra, | |||
| }, | |||
| ext_modules=[__libarchive], | |||
| ) | |||