dequis/purple-facebook

hg is aborting when I try to update, even with a clean install.

smeagolthellama opened this issue · 6 comments

Steps to reproduce (for me): update.sh or autogen.sh
affected version: latest git
hg version: 4.8.2

the problem:

$ ./autogen.sh 
abort: error: Permission denied

I have narrowed it down to the line that ends up calling the following:

$ hg clone https://keep.imfreedom.org/pidgin/pidgin/ 
abort: error: Permission denied

The previous command doesn't seem to work in any directory on my machine, so it doesn't appear to be a problem with my folder permissions. Also, I have plenty of space on the disk so it isn't that either.

No idea. Works for me. I'm not very familiar with mercurial, try to get more debugging info out of it?

Found some debugging options, output is below.

$ hg -v --traceback --debug clone https://keep.imfreedom.org/pidgin/pidgin/ 
using https://keep.imfreedom.org/pidgin/pidgin/
sending capabilities command
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/mercurial/scmutil.py", line 166, in callcatch
    return func()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 354, in _runcatchfunc
    return _dispatch(req)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 994, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 737, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 1003, in _runcommand
    return cmdfunc()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 991, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1646, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 1557, in clone
    depth=opts.get('depth') or None)
  File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 536, in clone
    srcpeer = peer(ui, peeropts, source)
  File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 200, in peer
    createopts=createopts).peer()
  File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 161, in _peerorrepo
    createopts=createopts)
  File "/usr/lib/python2.7/dist-packages/mercurial/httppeer.py", line 997, in instance
    inst = makepeer(ui, path)
  File "/usr/lib/python2.7/dist-packages/mercurial/httppeer.py", line 961, in makepeer
    respurl, info = performhandshake(ui, url, opener, requestbuilder)
  File "/usr/lib/python2.7/dist-packages/mercurial/httppeer.py", line 881, in performhandshake
    resp = sendrequest(ui, opener, req)
  File "/usr/lib/python2.7/dist-packages/mercurial/httppeer.py", line 275, in sendrequest
    res = opener.open(req)
  File "/usr/lib/python2.7/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 447, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/dist-packages/mercurial/url.py", line 391, in https_open
    return self.do_open(self._makeconnection, req)
  File "/usr/lib/python2.7/dist-packages/mercurial/keepalive.py", line 251, in do_open
    raise urlerr.urlerror(err)
URLError: <urlopen error [Errno 13] Permission denied>
abort: error: Permission denied

https://stackoverflow.com/questions/28081350/what-causes-urlopen-error-errno-13-permission-denied-errors/56782099

It says it's selinux nonsense. Probably a bug in your distro, if you installed mercurial from your distro's packages.

As far as I can tell, I don't have any selinux stuff, so none of that is helping.

The only things I can imagine that would throw permission denied when opening a network connection are system-call level security enhancements of that sort. So either selinux or something equivalent. Anyway - really not my area of expertise, more likely to be about your distro.

working workaround: use the release tarballs.