[Python-apps-team] Bug#729153: mercurial: fails to build from source on stable.

Faheem Mitha faheem at faheem.info
Tue Nov 26 09:41:21 UTC 2013


On Fri, 22 Nov 2013, Faheem Mitha wrote:

> On looking at this more closely, I see the problem. As you can see from the 
> error message, the errors occur at the lines

> # Move templates and help installed by setup.py to their FHS-correct location

> mv 
> $(CURDIR)/debian/mercurial-common/usr/lib/python*/dist-packages/mercurial/templates 
> $(CURDIR)/debian/mercurial-common/usr/lib/python*/dist-packages/mercurial/help 
> $(CURDIR)/debian/mercurial-common/usr/share/mercurial

> mv 
> $(CURDIR)/debian/mercurial-common/usr/lib/python*/dist-packages/mercurial/locale 
> $(CURDIR)/debian/mercurial-common/usr/share

> On my system I have both python 2.6 and 2.7 installed. So I have two 
> directories under debian/mercurial-common/usr/lib, namely 'python2.6' and 
> 'python2.7',

> faheem at orwell:/usr/local/src/mercurial/mercurial-2.8/debian/mercurial-common/usr/lib$ 
> ls
> python2.6  python2.7

> Ok, so given that this is the case, the problem is obvious. Because of the 
> wild card, each of these commands runs twice, for each version of python, and 
> presumably tries to copy the same files each time. So, it fails the second 
> time because the files are already there.

> I looked at the packaging for mercurial 2.7.2, and those lines were not 
> there. So I guess they were added recently. It looks to me like they are 
> buggy.

The attached patch fixes this for me. I'm not guaranteeing that it is
correct, of course.

                                                       Regards, Faheem
-------------- next part --------------
diff -r 28fe2be2eabb rules
--- a/rules
+++ b/rules
@@ -8,6 +8,7 @@
 	dh $@ --with python2,bash-completion
 
 PYVERS=$(shell pyversions -vs)
+DEFAULT_PYVER=$(shell pyversions -dv)
 DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
 
 override_dh_auto_build:
@@ -77,8 +78,8 @@
 		debian/cacerts.hgrc \
 		$(CURDIR)/debian/mercurial-common/etc/mercurial/hgrc.d/cacerts.rc
 	# Move templates and help installed by setup.py to their FHS-correct location
-	mv $(CURDIR)/debian/mercurial-common/usr/lib/python*/dist-packages/mercurial/templates $(CURDIR)/debian/mercurial-common/usr/lib/python*/dist-packages/mercurial/help $(CURDIR)/debian/mercurial-common/usr/share/mercurial
-	mv $(CURDIR)/debian/mercurial-common/usr/lib/python*/dist-packages/mercurial/locale $(CURDIR)/debian/mercurial-common/usr/share
+	mv $(CURDIR)/debian/mercurial-common/usr/lib/python$(DEFAULT_PYVER)/dist-packages/mercurial/templates $(CURDIR)/debian/mercurial-common/usr/lib/python$(DEFAULT_PYVER)/dist-packages/mercurial/help $(CURDIR)/debian/mercurial-common/usr/share/mercurial
+	mv $(CURDIR)/debian/mercurial-common/usr/lib/python$(DEFAULT_PYVER)/dist-packages/mercurial/locale $(CURDIR)/debian/mercurial-common/usr/share
 	# remove arch-dependent python stuff
 	find debian/mercurial-common/usr/lib \
 		-name '*.so' ! -type d -delete , \


More information about the Python-apps-team mailing list