# HG changeset patch # User Gregory Szorc # Date 1526173550 25200 # Node ID 768bd75835d751a3a8b3a3e86c9a0ead831301b7 # Parent 917f635b5c6a9c08f1dc635e1a5942373e1631ea packaging: move most packaging targets to own Makefile Since we're putting everything packaging under one roof, let's define the make targets related to packaging there as well. I didn't move the "osx" target because it is non-trivial. Some targets did change slightly as part of the move. But it was mostly around path normalization. Differential Revision: https://phab.mercurial-scm.org/D3552 diff -r 917f635b5c6a -r 768bd75835d7 Makefile --- a/Makefile Sat May 12 12:27:51 2018 -0700 +++ b/Makefile Sat May 12 18:05:50 2018 -0700 @@ -164,6 +164,37 @@ # Packaging targets +packaging_targets := \ + centos5 \ + centos6 \ + centos7 \ + deb \ + docker-centos5 \ + docker-centos6 \ + docker-centos7 \ + docker-debian-jessie \ + docker-debian-stretch \ + docker-fedora20 \ + docker-fedora21 \ + docker-ubuntu-trusty \ + docker-ubuntu-trusty-ppa \ + docker-ubuntu-xenial \ + docker-ubuntu-xenial-ppa \ + docker-ubuntu-artful \ + docker-ubuntu-artful-ppa \ + docker-ubuntu-bionic \ + docker-ubuntu-bionic-ppa \ + fedora20 \ + fedora21 \ + linux-wheels \ + linux-wheels-x86_64 \ + linux-wheels-i686 \ + ppa + +# Forward packaging targets for convenience. +$(packaging_targets): + $(MAKE) -C contrib/packaging $@ + osx: rm -rf build/mercurial /usr/bin/python2.7 setup.py install --optimize=1 \ @@ -203,121 +234,8 @@ --resources contrib/packaging/macosx/ \ "$${OUTPUTDIR:-dist/}"/Mercurial-"$${HGVER}"-macosx"$${OSXVER}".pkg -deb: - contrib/packaging/builddeb - -ppa: - contrib/packaging/builddeb --source-only - -contrib/packaging/docker/debian-%: contrib/packaging/docker/debian.template - sed "s/__CODENAME__/$*/" $< > $@ - -docker-debian-jessie: contrib/packaging/docker/debian-jessie - contrib/packaging/dockerdeb debian jessie - -docker-debian-stretch: contrib/packaging/docker/debian-stretch - contrib/packaging/dockerdeb debian stretch - -contrib/packaging/docker/ubuntu-%: contrib/packaging/docker/ubuntu.template - sed "s/__CODENAME__/$*/" $< > $@ - -docker-ubuntu-trusty: contrib/packaging/docker/ubuntu-trusty - contrib/packaging/dockerdeb ubuntu trusty - -docker-ubuntu-trusty-ppa: contrib/packaging/docker/ubuntu-trusty - contrib/packaging/dockerdeb ubuntu trusty --source-only - -docker-ubuntu-xenial: contrib/packaging/docker/ubuntu-xenial - contrib/packaging/dockerdeb ubuntu xenial - -docker-ubuntu-xenial-ppa: contrib/packaging/docker/ubuntu-xenial - contrib/packaging/dockerdeb ubuntu xenial --source-only - -docker-ubuntu-artful: contrib/packaging/docker/ubuntu-artful - contrib/packaging/dockerdeb ubuntu artful - -docker-ubuntu-artful-ppa: contrib/packaging/docker/ubuntu-artful - contrib/packaging/dockerdeb ubuntu artful --source-only - -docker-ubuntu-bionic: contrib/packaging/docker/ubuntu-bionic - contrib/packaging/dockerdeb ubuntu bionic - -docker-ubuntu-bionic-ppa: contrib/packaging/docker/ubuntu-bionic - contrib/packaging/dockerdeb ubuntu bionic --source-only - -fedora20: - mkdir -p packages/fedora20 - contrib/packaging/buildrpm - cp rpmbuild/RPMS/*/* packages/fedora20 - cp rpmbuild/SRPMS/* packages/fedora20 - rm -rf rpmbuild - -docker-fedora20: - mkdir -p packages/fedora20 - contrib/packaging/dockerrpm fedora20 - -fedora21: - mkdir -p packages/fedora21 - contrib/packaging/buildrpm - cp rpmbuild/RPMS/*/* packages/fedora21 - cp rpmbuild/SRPMS/* packages/fedora21 - rm -rf rpmbuild - -docker-fedora21: - mkdir -p packages/fedora21 - contrib/packaging/dockerrpm fedora21 - -centos5: - mkdir -p packages/centos5 - contrib/packaging/buildrpm --withpython - cp rpmbuild/RPMS/*/* packages/centos5 - cp rpmbuild/SRPMS/* packages/centos5 - -docker-centos5: - mkdir -p packages/centos5 - contrib/packaging/dockerrpm centos5 --withpython - -centos6: - mkdir -p packages/centos6 - contrib/packaging/buildrpm --withpython - cp rpmbuild/RPMS/*/* packages/centos6 - cp rpmbuild/SRPMS/* packages/centos6 - -docker-centos6: - mkdir -p packages/centos6 - contrib/packaging/dockerrpm centos6 --withpython - -centos7: - mkdir -p packages/centos7 - contrib/packaging/buildrpm - cp rpmbuild/RPMS/*/* packages/centos7 - cp rpmbuild/SRPMS/* packages/centos7 - -docker-centos7: - mkdir -p packages/centos7 - contrib/packaging/dockerrpm centos7 - -linux-wheels: linux-wheels-x86_64 linux-wheels-i686 - -linux-wheels-x86_64: - docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`:/src quay.io/pypa/manylinux1_x86_64 /src/contrib/packaging/build-linux-wheels.sh - -linux-wheels-i686: - docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`:/src quay.io/pypa/manylinux1_i686 linux32 /src/contrib/packaging/build-linux-wheels.sh - .PHONY: help all local build doc cleanbutpackages clean install install-bin \ install-doc install-home install-home-bin install-home-doc \ dist dist-notests check tests check-code format-c update-pot \ - osx deb ppa \ - docker-debian-jessie \ - docker-debian-stretch \ - docker-ubuntu-trusty docker-ubuntu-trusty-ppa \ - docker-ubuntu-xenial docker-ubuntu-xenial-ppa \ - docker-ubuntu-artful docker-ubuntu-artful-ppa \ - docker-ubuntu-bionic docker-ubuntu-bionic-ppa \ - fedora20 docker-fedora20 \ - fedora21 docker-fedora21 \ - centos5 docker-centos5 \ - centos6 docker-centos6 \ - centos7 docker-centos7 \ - linux-wheels + $(packaging_targets) \ + osx diff -r 917f635b5c6a -r 768bd75835d7 contrib/packaging/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/packaging/Makefile Sat May 12 18:05:50 2018 -0700 @@ -0,0 +1,167 @@ +$(eval HGROOT := $(shell cd ../..; pwd)) + +help: + @echo 'Packaging Make Targets' + @echo '' + @echo 'docker-centos-{5, 6, 7}' + @echo ' Build an RPM for a specific CentOS version using Docker.' + @echo '' + @echo 'docker-debian-{jessie, stretch}' + @echo ' Build Debian packages specific to a Debian distro using Docker.' + @echo '' + @echo 'docker-fedora-{20, 21}' + @echo ' Build an RPM for a specific Fedora version using Docker.' + @echo '' + @echo 'docker-ubuntu-{trusty, xenial, artful, bionic}' + @echo ' Build Debian package specific to an Ubuntu distro using Docker.' + @echo '' + @echo 'docker-ubuntu-{trusty, xenial, artful, bionic}-ppa' + @echo ' Build a source-only Debian package specific to an Ubuntu distro' + @echo ' using Docker.' + @echo '' + @echo 'linux-wheels' + @echo ' Build Linux manylinux wheels using Docker.' + @echo '' + @echo 'linux-wheels-{x86_64, i686}' + @echo ' Build Linux manylinux wheels for a specific architecture using Docker' + @echo '' + @echo 'deb' + @echo ' Build a Debian package locally targeting the current system' + @echo '' + @echo 'ppa' + @echo ' Build a Debian source package locally targeting the current system' + @echo '' + @echo 'centos-{5, 6, 7}' + @echo ' Build an RPM for a specific CentOS version locally' + @echo '' + @echo 'fedora-{20, 21}' + @echo ' Build an RPM for a specific Fedora version locally' + +.PHONY: help + +.PHONY: deb +deb: + ./builddeb + +.PHONY: ppa +ppa: + ./builddeb --source-only + +docker/debian-%: docker/debian.template + sed "s/__CODENAME__/$*/" $< > $@ + +.PHONY: docker-debian-jessie +docker-debian-jessie: docker/debian-jessie + ./dockerdeb debian jessie + +.PHONY: docker-debian-stretch +docker-debian-stretch: docker/debian-stretch + ./dockerdeb debian stretch + +docker/ubuntu-%: docker/ubuntu.template + sed "s/__CODENAME__/$*/" $< > $@ + +.PHONY: docker-ubuntu-trusty +docker-ubuntu-trusty: docker/ubuntu-trusty + ./dockerdeb ubuntu trusty + +.PHONY: docker-ubuntu-trusty-ppa +docker-ubuntu-trusty-ppa: docker/ubuntu-trusty + ./dockerdeb ubuntu trusty --source-only + +.PHONY: docker-ubuntu-xenial +docker-ubuntu-xenial: docker/ubuntu-xenial + ./dockerdeb ubuntu xenial + +.PHONY: docker-ubuntu-xenial-ppa +docker-ubuntu-xenial-ppa: docker/ubuntu-xenial + ./dockerdeb ubuntu xenial --source-only + +.PHONY: docker-ubuntu-artful +docker-ubuntu-artful: docker/ubuntu-artful + ./dockerdeb ubuntu artful + +.PHONY: docker-ubuntu-artful-ppa +docker-ubuntu-artful-ppa: docker/ubuntu-artful + ./dockerdeb ubuntu artful --source-only + +.PHONY: docker-ubuntu-bionic +docker-ubuntu-bionic: docker/ubuntu-bionic + ./dockerdeb ubuntu bionic + +.PHONY: docker-ubuntu-bionic-ppa +docker-ubuntu-bionic-ppa: docker/ubuntu-bionic + ./dockerdeb ubuntu bionic --source-only + +.PHONY: fedora20 +fedora20: + mkdir -p $(HGROOT)/packages/fedora20 + ./buildrpm + cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/fedora20 + cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/fedora20 + rm -rf $(HGROOT)/rpmbuild + +.PHONY: docker-fedora20 +docker-fedora20: + mkdir -p $(HGROOT)/packages/fedora20 + ./dockerrpm fedora20 + +.PHONY: fedora21 +fedora21: + mkdir -p $(HGROOT)/packages/fedora21 + ./buildrpm + cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/fedora21 + cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/fedora21 + rm -rf $(HGROOT)/rpmbuild + +.PHONY: docker-fedora21 +docker-fedora21: + mkdir -p $(HGROOT)packages/fedora21 + ./dockerrpm fedora21 + +.PHONY: centos5 +centos5: + mkdir -p $(HGROOT)/packages/centos5 + ./buildrpm --withpython + cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/centos5 + cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/centos5 + +.PHONY: docker-centos5 +docker-centos5: + mkdir -p $(HGROOT)/packages/centos5 + ./dockerrpm centos5 --withpython + +.PHONY: centos6 +centos6: + mkdir -p $(HGROOT)/packages/centos6 + ./buildrpm --withpython + cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/centos6 + cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/centos6 + +.PHONY: docker-centos6 +docker-centos6: + mkdir -p $(HGROOT)/packages/centos6 + ./dockerrpm centos6 --withpython + +.PHONY: centos7 +centos7: + mkdir -p $(HGROOT)/packages/centos7 + ./buildrpm + cp $(HGROOT)/rpmbuild/RPMS/*/* $(HGROOT)/packages/centos7 + cp $(HGROOT)/rpmbuild/SRPMS/* $(HGROOT)/packages/centos7 + +.PHONY: docker-centos7 +docker-centos7: + mkdir -p $(HGROOT)/packages/centos7 + ./dockerrpm centos7 + +.PHONY: linux-wheels +linux-wheels: linux-wheels-x86_64 linux-wheels-i686 + +.PHONY: linux-wheels-x86_64 +linux-wheels-x86_64: + docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_x86_64 /src/contrib/packaging/build-linux-wheels.sh + +.PHONY: linux-wheels-i686 +linux-wheels-i686: + docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_i686 linux32 /src/contrib/packaging/build-linux-wheels.sh