view contrib/packaging/debian/rules @ 43319:11c85873e106 stable

packaging: avoid running bare "make install" in debian/rules We change the "override_dh_install" target to "override_dh_auto_install" in debian/rules (see dh_auto_install(1) for details). This is because we do not want "make install" to be run automatically as we need the --install-layout=deb of "setup.py install". Otherwise, files end up in $DESTDIR/usr/local. At the moment, this is not a problem since files installed in debian/tmp (the default location) are not packed into binary packages (because there are debian/mercurial and debian/mercurial-common directories). This is cleaner to avoid running make more than needed.
author Denis Laxalde <denis.laxalde@logilab.fr>
date Wed, 23 Oct 2019 17:18:57 +0200
parents cdf6db1f4faf
children 7b638d25b8e4
line wrap: on
line source

#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1

CPUS=$(shell cat /proc/cpuinfo | grep -E ^processor | wc -l)

export HGPYTHON3=1
export PYTHON=python3

%:
	dh $@ --with python3

override_dh_auto_test:
	http_proxy='' dh_auto_test -- TESTFLAGS="-j$(CPUS)"

override_dh_python3:
	dh_python3 --shebang=/usr/bin/python3
	find debian/mercurial/usr/share -type d -empty -delete

override_dh_auto_clean:
	$(MAKE) cleanbutpackages
	$(MAKE) -C contrib/chg clean

override_dh_auto_build:
	$(MAKE) all
	$(MAKE) -C contrib/chg all

override_dh_auto_install:
	python3 setup.py install --root "$(CURDIR)"/debian/mercurial --install-layout=deb
	# chg
	make -C contrib/chg \
		DESTDIR="$(CURDIR)"/debian/mercurial \
		PREFIX=/usr \
		install
	# remove arch-independent python stuff
	find "$(CURDIR)"/debian/mercurial/usr/lib \
		! -name '*.so' ! -type d -delete , \
		-type d -empty -delete
	python3 setup.py install --root "$(CURDIR)/debian/mercurial-common" --install-layout=deb
	make install-doc PREFIX="$(CURDIR)"/debian/mercurial-common/usr
	# remove arch-dependent python stuff
	find "$(CURDIR)"/debian/mercurial-common/usr/lib \
		-name '*.so' ! -type d -delete , \
		-type d -empty -delete
	cp contrib/hg-ssh "$(CURDIR)"/debian/mercurial-common/usr/bin
	mkdir -p "$(CURDIR)"/debian/mercurial-common/usr/share/mercurial
	cp contrib/hgk "$(CURDIR)"/debian/mercurial-common/usr/share/mercurial
	mkdir -p "$(CURDIR)"/debian/mercurial-common/etc/mercurial/hgrc.d/
	cp contrib/packaging/debian/*.rc "$(CURDIR)"/debian/mercurial-common/etc/mercurial/hgrc.d/
	# completions
	mkdir -p "$(CURDIR)"/debian/mercurial-common/usr/share/bash-completion/completions
	cp contrib/bash_completion "$(CURDIR)"/debian/mercurial-common/usr/share/bash-completion/completions/hg
	mkdir -p "$(CURDIR)"/debian/mercurial-common/usr/share/zsh/vendor-completions
	cp contrib/zsh_completion "$(CURDIR)"/debian/mercurial-common/usr/share/zsh/vendor-completions/_hg
	rm "$(CURDIR)"/debian/mercurial-common/usr/bin/hg