mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
python: Add a Python setup.py script.
This is not used by libguestfs right now, but it does allow you to build a python "distribution" of libguestfs, like this: make -C python sdist The distribution tarball will be in python/dist/ You can copy the distribution tarball somewhere, unpack it, and use regular 'python setup.py' commands such as: python setup.py build python setup.py install [--prefix=...] python setup.py --name In future we hope to be able to upload the distribution tarball to PyPi, but licensing issues prevent this at present.
This commit is contained in:
22
python/MANIFEST.in
Normal file
22
python/MANIFEST.in
Normal file
@@ -0,0 +1,22 @@
|
||||
# libguestfs Python bindings
|
||||
# Copyright (C) 2009-2014 Red Hat Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
include guestfs-py.h
|
||||
include config.h
|
||||
include guestfs-internal-all.h
|
||||
include guestfs-internal-frontend-cleanups.h
|
||||
include guestfs-internal-frontend.h
|
||||
@@ -24,12 +24,16 @@ generator_built = \
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(generator_built) \
|
||||
MANIFEST.in \
|
||||
setup.py.in \
|
||||
run-bindtests \
|
||||
run-python-tests \
|
||||
t/*.py
|
||||
|
||||
if HAVE_PYTHON
|
||||
|
||||
# Build the library.
|
||||
|
||||
pythondir = $(PYTHON_INSTALLDIR)
|
||||
|
||||
python_DATA = guestfs.py
|
||||
@@ -55,6 +59,47 @@ libguestfsmod_la_LIBADD = \
|
||||
|
||||
libguestfsmod_la_LDFLAGS = -avoid-version -shared -module -shrext $(PYTHON_EXT_SUFFIX)
|
||||
|
||||
# Currently we don't use setup.py to build the Python library for
|
||||
# distribution with libguestfs (although maybe we should in future).
|
||||
# For now, these are some rules which use setup.py to make a source
|
||||
# distribution for pip, and a few other bits.
|
||||
|
||||
sdist: setup.py stamp-extra-files
|
||||
$(PYTHON) setup.py $@
|
||||
|
||||
setup-build: setup.py stamp-extra-files
|
||||
$(PYTHON) setup.py build
|
||||
|
||||
setup-install: setup.py stamp-extra-files
|
||||
$(PYTHON) setup.py install $(SETUP_INSTALL_ARGS)
|
||||
|
||||
# Python's crappy MANIFEST file cannot graft single files, so we have
|
||||
# to hard-link any extra files we need into the local directory.
|
||||
stamp-extra-files: \
|
||||
config.h \
|
||||
guestfs-internal-all.h \
|
||||
guestfs-internal-frontend-cleanups.h \
|
||||
guestfs-internal-frontend.h \
|
||||
utils.c
|
||||
touch $@
|
||||
|
||||
config.h:
|
||||
ln ../config.h $@
|
||||
|
||||
guestfs-internal-all.h:
|
||||
ln $(top_srcdir)/src/guestfs-internal-all.h $@
|
||||
|
||||
guestfs-internal-frontend-cleanups.h:
|
||||
ln $(top_srcdir)/src/guestfs-internal-frontend-cleanups.h $@
|
||||
|
||||
guestfs-internal-frontend.h:
|
||||
ln $(top_srcdir)/src/guestfs-internal-frontend.h $@
|
||||
|
||||
utils.c:
|
||||
ln $(top_srcdir)/src/utils.c $@
|
||||
|
||||
# Tests.
|
||||
|
||||
TESTS_ENVIRONMENT = $(top_builddir)/run --test
|
||||
|
||||
TESTS = run-bindtests
|
||||
@@ -64,3 +109,16 @@ TESTS += run-python-tests
|
||||
endif ENABLE_APPLIANCE
|
||||
|
||||
endif HAVE_PYTHON
|
||||
|
||||
# Extra clean.
|
||||
CLEANFILES = \
|
||||
*~ examples/*~ t/*~ \
|
||||
config.h \
|
||||
guestfs-internal-all.h \
|
||||
guestfs-internal-frontend-cleanups.h \
|
||||
guestfs-internal-frontend.h \
|
||||
stamp-extra-files \
|
||||
utils.c
|
||||
|
||||
clean-local:
|
||||
rm -rf build dist
|
||||
|
||||
4
python/README.txt
Normal file
4
python/README.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
libguestfs is a library and set of tools for accessing and modifying
|
||||
virtual machine (VM) disk images.
|
||||
|
||||
This package contains the Python bindings for libguestfs.
|
||||
62
python/setup.py.in
Normal file
62
python/setup.py.in
Normal file
@@ -0,0 +1,62 @@
|
||||
# libguestfs Python bindings -*- python -*-
|
||||
# @configure_input@
|
||||
# Copyright (C) 2009-2014 Red Hat Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
from distutils.core import setup, Extension
|
||||
|
||||
setup (name='guestfs',
|
||||
version='@PACKAGE_VERSION@',
|
||||
|
||||
description='access and modify virtual machine disk images',
|
||||
long_description="""
|
||||
libguestfs is a library and set of tools for accessing and modifying
|
||||
virtual machine (VM) disk images.
|
||||
|
||||
This package contains the Python bindings for libguestfs.
|
||||
""",
|
||||
|
||||
author='The @PACKAGE_NAME@ team',
|
||||
author_email='libguestfs@redhat.com',
|
||||
url='http://libguestfs.org',
|
||||
|
||||
license='LGPLv2+',
|
||||
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Console',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)',
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: C',
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: Implementation :: CPython',
|
||||
'Topic :: Utilities',
|
||||
],
|
||||
|
||||
py_modules=['guestfs'],
|
||||
ext_modules=[
|
||||
Extension (
|
||||
'libguestfsmod',
|
||||
['guestfs-py-byhand.c', 'guestfs-py.c', 'utils.c'],
|
||||
|
||||
include_dirs=['.', '../src'],
|
||||
libraries=['guestfs'],
|
||||
define_macros=[('GUESTFS_PRIVATE', '1')],
|
||||
)
|
||||
]
|
||||
)
|
||||
Reference in New Issue
Block a user