contrib/Makefile.python
author Martin von Zweigbergk <martinvonz@google.com>
Sat, 08 Nov 2014 23:13:39 -0800
changeset 23259 9f4778027bc2
parent 23140 fbd79c2552a6
child 23824 e278fc8bb0c3
permissions -rw-r--r--
addremove: add back forgotten files (BC) After running "hg forget README && hg addremove", README will still be reported as removed, while "hg forget README && hg add README" adds it back so it gets reported as clean. It seems like they should behave the same. Furthermore, it seems like no files should remain untracked after 'hg addremove && hg commit' (or 'hg commit -A'). For these reasons, change the behavior of addremove so it does add forgotten files back. The problem is with scmutil._interestingfiles(), which reports the file as removed, so scmutil.addremove() does not add it. Fix by teaching _interestingfiles() to report forgotten files separately from removed files and make addremove() add forgotten files back. However, do not treat forgotten files as sources for rename detection. Note that since removed and forgotten files are treated the same before this change, forgotten files were considered sources for rename detection. Also update the other caller, marktouched(), in the same way as addremove().
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23140
fbd79c2552a6 contrib: update build defaults to latest Python and docutils versions
Mads Kiilerich <madski@unity3d.com>
parents: 20388
diff changeset
     1
PYTHONVER=2.7.8
20388
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
     2
PYTHONNAME=python-
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
     3
PREFIX=$(HOME)/bin/prefix-$(PYTHONNAME)$(PYTHONVER)
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
     4
SYMLINKDIR=$(HOME)/bin
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
     5
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
     6
help:
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
     7
	@echo
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
     8
	@echo 'Make a custom installation of a Python version'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
     9
	@echo
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    10
	@echo 'Common make parameters:'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    11
	@echo '  PYTHONVER=...    [$(PYTHONVER)]'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    12
	@echo '  PREFIX=...       [$(PREFIX)]'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    13
	@echo '  SYMLINKDIR=...   [$(SYMLINKDIR) creating $(PYTHONNAME)$(PYTHONVER)]'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    14
	@echo
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    15
	@echo 'Common make targets:'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    16
	@echo '  python    - install Python $$PYTHONVER in $$PREFIX'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    17
	@echo '  symlink   - create a $$SYMLINKDIR/$(PYTHONNAME)$$PYTHONVER symlink'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    18
	@echo
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    19
	@echo 'Example: create a temporary Python installation:'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    20
	@echo '  $$ make -f Makefile.python python PYTHONVER=2.4 PREFIX=/tmp/p24'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    21
	@echo '  $$ /tmp/p24/bin/python -V'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    22
	@echo '  Python 2.4'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    23
	@echo
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    24
	@echo 'Some external libraries are required for building Python: zlib bzip2 openssl.'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    25
	@echo 'Make sure their development packages are installed systemwide.'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    26
# fedora: yum install zlib-devel bzip2-devel openssl-devel
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    27
# debian: apt-get install zlib1g-dev libbz2-dev libssl-dev
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    28
	@echo
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    29
	@echo 'To build a nice collection of interesting Python versions:'
23140
fbd79c2552a6 contrib: update build defaults to latest Python and docutils versions
Mads Kiilerich <madski@unity3d.com>
parents: 20388
diff changeset
    30
	@echo '  $$ for v in 2.{4{,.2,.3},5{,.6},6{,.1,.2,.9},7{,.8}}; do'
20388
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    31
	@echo '    make -f Makefile.python symlink PYTHONVER=$$v || break; done'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    32
	@echo 'To run a Mercurial test on all these Python versions:'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    33
	@echo '  $$ for py in `cd ~/bin && ls $(PYTHONNAME)2.*`; do'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    34
	@echo '    echo $$py; $$py run-tests.py test-http.t; echo; done'
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    35
	@echo
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    36
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    37
export LANGUAGE=C
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    38
export LC_ALL=C
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    39
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    40
python: $(PREFIX)/bin/python docutils
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    41
	printf 'import sys, zlib, bz2, docutils\nif sys.version_info >= (2,6):\n import ssl' | $(PREFIX)/bin/python
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    42
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    43
PYTHON_SRCDIR=Python-$(PYTHONVER)
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    44
PYTHON_SRCFILE=$(PYTHON_SRCDIR).tgz
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    45
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    46
$(PREFIX)/bin/python:
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    47
	[ -f $(PYTHON_SRCFILE) ] || wget http://www.python.org/ftp/python/$(PYTHONVER)/$(PYTHON_SRCFILE) || [ -f $(PYTHON_SRCFILE) ]
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    48
	rm -rf $(PYTHON_SRCDIR)
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    49
	tar xf $(PYTHON_SRCFILE)
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    50
	# Ubuntu disables SSLv2 the hard way, disable it on old Pythons too
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    51
	-sed -i 's,self.*SSLv2_method(),0;//\0,g' $(PYTHON_SRCDIR)/Modules/_ssl.c
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    52
	# Find multiarch system libraries on Ubuntu with Python 2.4.x
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    53
	# http://lipyrary.blogspot.dk/2011/05/how-to-compile-python-on-ubuntu-1104.html
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    54
	-sed -i "s|lib_dirs = .* \[|\0'/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`',|g" $(PYTHON_SRCDIR)/setup.py
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    55
	# Find multiarch system libraries on Ubuntu and disable fortify error when setting argv
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    56
	LDFLAGS="-L/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`"; \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    57
	BASECFLAGS=-U_FORTIFY_SOURCE; \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    58
	export LDFLAGS BASECFLAGS; \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    59
	cd $(PYTHON_SRCDIR) && ./configure --prefix=$(PREFIX) && make all SVNVERSION=pwd && make install
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    60
	printf 'import sys, zlib, bz2\nif sys.version_info >= (2,6):\n import ssl' | $(PREFIX)/bin/python
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    61
	rm -rf $(PYTHON_SRCDIR)
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    62
23140
fbd79c2552a6 contrib: update build defaults to latest Python and docutils versions
Mads Kiilerich <madski@unity3d.com>
parents: 20388
diff changeset
    63
DOCUTILSVER=0.12
20388
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    64
DOCUTILS_SRCDIR=docutils-$(DOCUTILSVER)
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    65
DOCUTILS_SRCFILE=$(DOCUTILS_SRCDIR).tar.gz
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    66
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    67
docutils: $(PREFIX)/bin/python
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    68
	@$(PREFIX)/bin/python -c 'import docutils' || ( set -ex; \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    69
	[ -f $(DOCUTILS_SRCFILE) ] || wget http://downloads.sourceforge.net/project/docutils/docutils/$(DOCUTILSVER)/$(DOCUTILS_SRCFILE) || [ -f $(DOCUTILS_SRCFILE) ]; \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    70
	rm -rf $(DOCUTILS_SRCDIR); \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    71
	tar xf $(DOCUTILS_SRCFILE); \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    72
	cd $(DOCUTILS_SRCDIR) && $(PREFIX)/bin/python setup.py install --prefix=$(PREFIX); \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    73
	$(PREFIX)/bin/python -c 'import docutils'; \
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    74
	rm -rf $(DOCUTILS_SRCDIR); )
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    75
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    76
symlink: python $(SYMLINKDIR)
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    77
	ln -sf $(PREFIX)/bin/python $(SYMLINKDIR)/$(PYTHONNAME)$(PYTHONVER)
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    78
9fe578297b5c contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
    79
.PHONY: help python docutils symlink