##// END OF EJS Templates
packaging: use "python3" for fedora29 ... and as buildrpm default...
packaging: use "python3" for fedora29 ... and as buildrpm default Change the buidrpm default. The CentOS targets explicitly use "python", and changing the default will only influence Fedora 29. A Python 3 package needs python3 dependencies, so pythonexe (and pythonver) is used for specifying dependencies. Other OS versions will keep using "python" as before ... or potentially change to explicit "python2". Fedora 29 packages can thus also still be built for Python 2 - just not in the docker image that is updated for Python 3.

File last commit:

r42378:ae68418c stable
r43675:51865531 stable
Show More
Makefile.python
76 lines | 3.1 KiB | text/x-makefile | MakefileLexer
Antonio Muci
buildrpm: bump bundled Python version to 2.7.16 when building for centos{5,6}...
r42378 PYTHONVER=2.7.16
Mads Kiilerich
contrib/Makefile.python: build local Python from source...
r20388 PYTHONNAME=python-
PREFIX=$(HOME)/bin/prefix-$(PYTHONNAME)$(PYTHONVER)
SYMLINKDIR=$(HOME)/bin
help:
@echo
@echo 'Make a custom installation of a Python version'
@echo
@echo 'Common make parameters:'
@echo ' PYTHONVER=... [$(PYTHONVER)]'
@echo ' PREFIX=... [$(PREFIX)]'
@echo ' SYMLINKDIR=... [$(SYMLINKDIR) creating $(PYTHONNAME)$(PYTHONVER)]'
@echo
@echo 'Common make targets:'
@echo ' python - install Python $$PYTHONVER in $$PREFIX'
@echo ' symlink - create a $$SYMLINKDIR/$(PYTHONNAME)$$PYTHONVER symlink'
@echo
@echo 'Example: create a temporary Python installation:'
Mads Kiilerich
contrib: offer Python 2.7.10
r26735 @echo ' $$ make -f Makefile.python python PYTHONVER=${PYTHONVER} PREFIX=/tmp/p27'
@echo ' $$ /tmp/p27/bin/python -V'
@echo ' Python 2.7'
Mads Kiilerich
contrib/Makefile.python: build local Python from source...
r20388 @echo
@echo 'Some external libraries are required for building Python: zlib bzip2 openssl.'
@echo 'Make sure their development packages are installed systemwide.'
# fedora: yum install zlib-devel bzip2-devel openssl-devel
# debian: apt-get install zlib1g-dev libbz2-dev libssl-dev
@echo
@echo 'To build a nice collection of interesting Python versions:'
Mads Kiilerich
contrib: offer Python 2.7.10
r26735 @echo ' $$ for v in 2.{6{,.1,.2,.9},7{,.8,.10}}; do'
Mads Kiilerich
contrib/Makefile.python: build local Python from source...
r20388 @echo ' make -f Makefile.python symlink PYTHONVER=$$v || break; done'
@echo 'To run a Mercurial test on all these Python versions:'
@echo ' $$ for py in `cd ~/bin && ls $(PYTHONNAME)2.*`; do'
@echo ' echo $$py; $$py run-tests.py test-http.t; echo; done'
@echo
export LANGUAGE=C
export LC_ALL=C
python: $(PREFIX)/bin/python docutils
Mads Kiilerich
contrib: drop Python < 2.6 from Makefile.python
r26734 printf 'import sys, zlib, bz2, docutils, ssl' | $(PREFIX)/bin/python
Mads Kiilerich
contrib/Makefile.python: build local Python from source...
r20388
PYTHON_SRCDIR=Python-$(PYTHONVER)
PYTHON_SRCFILE=$(PYTHON_SRCDIR).tgz
$(PREFIX)/bin/python:
Augie Fackler
Makefile.python: try curl if wget fails...
r23824 [ -f $(PYTHON_SRCFILE) ] || wget http://www.python.org/ftp/python/$(PYTHONVER)/$(PYTHON_SRCFILE) || curl -OL http://www.python.org/ftp/python/$(PYTHONVER)/$(PYTHON_SRCFILE) || [ -f $(PYTHON_SRCFILE) ]
Mads Kiilerich
contrib/Makefile.python: build local Python from source...
r20388 rm -rf $(PYTHON_SRCDIR)
tar xf $(PYTHON_SRCFILE)
Yuya Nishihara
contrib: disable SSLv3_method() to build old Python with recent libssl...
r27230 # Debian/Ubuntu disables SSLv2,3 the hard way, disable it on old Pythons too
-sed -i 's,self.*SSLv[23]_method(),0;//\0,g' $(PYTHON_SRCDIR)/Modules/_ssl.c
Mads Kiilerich
contrib/Makefile.python: build local Python from source...
r20388 # Find multiarch system libraries on Ubuntu and disable fortify error when setting argv
LDFLAGS="-L/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`"; \
BASECFLAGS=-U_FORTIFY_SOURCE; \
export LDFLAGS BASECFLAGS; \
cd $(PYTHON_SRCDIR) && ./configure --prefix=$(PREFIX) && make all SVNVERSION=pwd && make install
Mads Kiilerich
contrib: drop Python < 2.6 from Makefile.python
r26734 printf 'import sys, zlib, bz2, ssl' | $(PREFIX)/bin/python
Mads Kiilerich
contrib/Makefile.python: build local Python from source...
r20388 rm -rf $(PYTHON_SRCDIR)
Mads Kiilerich
contrib: update build defaults to latest Python and docutils versions...
r23140 DOCUTILSVER=0.12
Mads Kiilerich
contrib/Makefile.python: build local Python from source...
r20388 DOCUTILS_SRCDIR=docutils-$(DOCUTILSVER)
DOCUTILS_SRCFILE=$(DOCUTILS_SRCDIR).tar.gz
docutils: $(PREFIX)/bin/python
@$(PREFIX)/bin/python -c 'import docutils' || ( set -ex; \
[ -f $(DOCUTILS_SRCFILE) ] || wget http://downloads.sourceforge.net/project/docutils/docutils/$(DOCUTILSVER)/$(DOCUTILS_SRCFILE) || [ -f $(DOCUTILS_SRCFILE) ]; \
rm -rf $(DOCUTILS_SRCDIR); \
tar xf $(DOCUTILS_SRCFILE); \
cd $(DOCUTILS_SRCDIR) && $(PREFIX)/bin/python setup.py install --prefix=$(PREFIX); \
$(PREFIX)/bin/python -c 'import docutils'; \
rm -rf $(DOCUTILS_SRCDIR); )
symlink: python $(SYMLINKDIR)
ln -sf $(PREFIX)/bin/python $(SYMLINKDIR)/$(PYTHONNAME)$(PYTHONVER)
.PHONY: help python docutils symlink