[Python-apps-team] Bug#909224: Debian's mercurial-common installs /etc/mercurial/hgrc.d/mergetools.rc, upstream does not

Kyle Lippincott spectral at google.com
Wed Sep 19 23:00:29 BST 2018


Package: mercurial-common

When installing mercurial+mercurial-common from debian, we get a
/etc/mercurial/hgrc.d/mergetools.rc file. As far as I can tell, this file
hasn't been in this location since cd0c51c07e5f (Sun Oct 19 03:22:23 2014
+0200, https://www.mercurial-scm.org/repo/hg/rev/cd0c51c07e5f).

I package newer versions of mercurial/mercurial-common for my users, and we
use `make deb` in the Mercurial repo to build these packages. Since using
this newer version of the mercurial package is currently optional, what
happens is that the initial installation of the machines will get the
debian version of the package, producing this file, and then they install
our version which doesn't delete the file, it just marks it as 'obsolete'
in `dpkg --status mercurial-common`.

Due to the way that Mercurial loads configuration files, this file existing
takes precedence over the version installed in
/usr/lib/python2.7/dist-packages/mercurial/default.d/mergetools.rc, meaning
that users aren't seeing any changes being made here until they reinstall
their machine, get a new version from the debian package, and then install
our version (losing track of the file again).

I propose that the debian packaging of mercurial-common not include the
following two files, since they aren't part of the .deb file produced by
running `make deb` in mercurial:
/etc/mercurial/hgrc
/etc/mercurial/hgrc.d/mergetools.rc


Unsure if this is helpful or not, but here's the `dpkg --status
mercurial-common` output for our in-house package on my machine; we had
version 4.6 in our internal debian mirror when I installed the machine, I
think:
Package: mercurial-common
Status: install ok installed
Priority: optional
Section: vcs
Installed-Size: 12160
Maintainer: Mercurial Developers <mercurial-devel at mercurial-scm.org>
Architecture: all
Source: mercurial
Version: 4.7rc0+14.1-rodete-545a3e6650cd~trusty
Replaces: mercurial (<< 2.6.3)
Depends: python:any (>= 2.7.5-5~), python:any (<< 2.8), python
Recommends: mercurial (= 4.7rc0+14.1-rodete-545a3e6650cd~trusty),
ca-certificates
Suggests: wish
Breaks: mercurial (<< 4.7rc0+14.1-rodete-545a3e6650cd~trusty)
Conffiles:
 /etc/mercurial/hgrc.d/default-tools.rc 6ca18558925e294c4e385835f82dc6ef
 /etc/mercurial/hgrc.d/hgkpath.rc a2c1cf5bc41fcdb8e8645a1089d708ab
 /etc/mercurial/hgrc.d/cacerts.rc c54ae955e78a2bbb427aec44751017ba
 /etc/mercurial/hgrc.d/mergetools.rc 74c7c4c1c7b76bd7fc3646df152f046d
obsolete
 /etc/mercurial/hgrc bcefdbdbe45da0913c9ae243149fd497 obsolete
Description: easy-to-use, scalable distributed version control system
(common files)
 Mercurial is a fast, lightweight Source Control Management system designed
 for efficient handling of very large distributed projects.
 .
 This package contains the architecture independent components of Mercurial,
 and is generally useless without the mercurial package.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/python-apps-team/attachments/20180919/da801427/attachment-0001.html>


More information about the Python-apps-team mailing list