distutils: Create MANIFEST.in instead of MANIFEST in Makefile
When running 'python setup.py sdist' many files were omitted from the resulting
tarball that are required for a complete build, including the .h file for the
inotify extension due to a python2.7+ distutils bug. This would cause 'make dist'
to fail to build a correct dist on python2.7
By building a MANIFEST.in that is the same as the old MANIFEST with 'include'
at the start of each line will cause a correct MANIFEST to be built and used
by distutils.
--- a/Makefile Thu Jun 09 18:39:14 2011 +0200
+++ b/Makefile Thu Jun 09 10:15:24 2011 +1000
@@ -46,7 +46,7 @@
-$(PYTHON) setup.py clean --all # ignore errors from this command
find . \( -name '*.py[cdo]' -o -name '*.so' \) -exec rm -f '{}' ';'
rm -f $(addprefix mercurial/,$(notdir $(wildcard mercurial/pure/*.py)))
- rm -f MANIFEST tests/*.err
+ rm -f MANIFEST MANIFEST.in tests/*.err
rm -rf build mercurial/locale
$(MAKE) -C doc clean
@@ -69,14 +69,14 @@
MANIFEST-doc:
$(MAKE) -C doc MANIFEST
-MANIFEST: MANIFEST-doc
- hg manifest > MANIFEST
- echo mercurial/__version__.py >> MANIFEST
- cat doc/MANIFEST >> MANIFEST
+MANIFEST.in: MANIFEST-doc
+ hg manifest | sed -e 's/^/include /' > MANIFEST.in
+ echo include mercurial/__version__.py >> MANIFEST.in
+ sed -e 's/^/include /' < doc/MANIFEST >> MANIFEST.in
dist: tests dist-notests
-dist-notests: doc MANIFEST
+dist-notests: doc MANIFEST.in
TAR_OPTIONS="--owner=root --group=root --mode=u+w,go-w,a+rX-s" $(PYTHON) setup.py -q sdist
check: tests