mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +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:
10
.gitignore
vendored
10
.gitignore
vendored
@@ -377,13 +377,23 @@ Makefile.in
|
|||||||
/podwrapper.pl
|
/podwrapper.pl
|
||||||
/po/*.gmo
|
/po/*.gmo
|
||||||
/python/bindtests.py
|
/python/bindtests.py
|
||||||
|
/python/build
|
||||||
|
/python/config.h
|
||||||
|
/python/dist
|
||||||
/python/examples/guestfs-python.3
|
/python/examples/guestfs-python.3
|
||||||
/python/examples/stamp-guestfs-python.pod
|
/python/examples/stamp-guestfs-python.pod
|
||||||
/python/guestfs.py
|
/python/guestfs.py
|
||||||
/python/guestfs-py.c
|
/python/guestfs-py.c
|
||||||
/python/guestfs.pyc
|
/python/guestfs.pyc
|
||||||
/python/guestfs.pyo
|
/python/guestfs.pyo
|
||||||
|
/python/guestfs-internal-all.h
|
||||||
|
/python/guestfs-internal-frontend-cleanups.h
|
||||||
|
/python/guestfs-internal-frontend.h
|
||||||
|
/python/MANIFEST
|
||||||
/python/__pycache__
|
/python/__pycache__
|
||||||
|
/python/setup.py
|
||||||
|
/python/stamp-extra-files
|
||||||
|
/python/utils.c
|
||||||
/qemu-wrapper.sh
|
/qemu-wrapper.sh
|
||||||
/rescue/stamp-virt-rescue.pod
|
/rescue/stamp-virt-rescue.pod
|
||||||
/rescue/virt-rescue
|
/rescue/virt-rescue
|
||||||
|
|||||||
@@ -316,6 +316,7 @@ all-local:
|
|||||||
find $(DIST_SUBDIRS) -name '*.c' -o -name '*.pl' -o -name '*.pm' | \
|
find $(DIST_SUBDIRS) -name '*.c' -o -name '*.pl' -o -name '*.pm' | \
|
||||||
grep -v -E '^(examples|gnulib|perl/(blib|examples)|po-docs|tests)/' | \
|
grep -v -E '^(examples|gnulib|perl/(blib|examples)|po-docs|tests)/' | \
|
||||||
grep -v -E '/((guestfs|rc)_protocol\.c)$$' | \
|
grep -v -E '/((guestfs|rc)_protocol\.c)$$' | \
|
||||||
|
grep -v -E '^python/utils.c$$' | \
|
||||||
LC_ALL=C sort > po/POTFILES
|
LC_ALL=C sort > po/POTFILES
|
||||||
cd $(srcdir); \
|
cd $(srcdir); \
|
||||||
find builder mllib resize sparsify sysprep -name '*.ml' | \
|
find builder mllib resize sparsify sysprep -name '*.ml' | \
|
||||||
|
|||||||
@@ -1661,6 +1661,7 @@ AC_CONFIG_FILES([Makefile
|
|||||||
po/Makefile
|
po/Makefile
|
||||||
python/Makefile
|
python/Makefile
|
||||||
python/examples/Makefile
|
python/examples/Makefile
|
||||||
|
python/setup.py
|
||||||
rescue/Makefile
|
rescue/Makefile
|
||||||
resize/Makefile
|
resize/Makefile
|
||||||
ruby/Makefile
|
ruby/Makefile
|
||||||
|
|||||||
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 = \
|
EXTRA_DIST = \
|
||||||
$(generator_built) \
|
$(generator_built) \
|
||||||
|
MANIFEST.in \
|
||||||
|
setup.py.in \
|
||||||
run-bindtests \
|
run-bindtests \
|
||||||
run-python-tests \
|
run-python-tests \
|
||||||
t/*.py
|
t/*.py
|
||||||
|
|
||||||
if HAVE_PYTHON
|
if HAVE_PYTHON
|
||||||
|
|
||||||
|
# Build the library.
|
||||||
|
|
||||||
pythondir = $(PYTHON_INSTALLDIR)
|
pythondir = $(PYTHON_INSTALLDIR)
|
||||||
|
|
||||||
python_DATA = guestfs.py
|
python_DATA = guestfs.py
|
||||||
@@ -55,6 +59,47 @@ libguestfsmod_la_LIBADD = \
|
|||||||
|
|
||||||
libguestfsmod_la_LDFLAGS = -avoid-version -shared -module -shrext $(PYTHON_EXT_SUFFIX)
|
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_ENVIRONMENT = $(top_builddir)/run --test
|
||||||
|
|
||||||
TESTS = run-bindtests
|
TESTS = run-bindtests
|
||||||
@@ -64,3 +109,16 @@ TESTS += run-python-tests
|
|||||||
endif ENABLE_APPLIANCE
|
endif ENABLE_APPLIANCE
|
||||||
|
|
||||||
endif HAVE_PYTHON
|
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