KO add-apt-repository ppa:duplicity-team/duplicity-release-git

Fresh install of MIAB 70 on Ubuntu 22.04 OVH server

Mail-in-a-Box Version: v70
FAILED: add-apt-repository -y ppa:duplicity-team/duplicity-release-git

Traceback (most recent call last):
File “/usr/bin/add-apt-repository”, line 364, in
sys.exit(0 if addaptrepo.main() else 1)
File “/usr/bin/add-apt-repository”, line 347, in main
shortcut = handler(source, **shortcut_params)
File “/usr/lib/python3/dist-packages/softwareproperties/shortcuts.py”, line 40, in shortcut_handler
return handler(shortcut, **kwargs)
File “/usr/lib/python3/dist-packages/softwareproperties/ppa.py”, line 82, in init
if self.lpppa.publish_debug_symbols:
File “/usr/lib/python3/dist-packages/softwareproperties/ppa.py”, line 120, in lpppa
self._lpppa = self.lpteam.getPPAByName(name=self.ppaname)
File “/usr/lib/python3/dist-packages/softwareproperties/ppa.py”, line 107, in lpteam
self._lpteam = self.lp.people(self.teamname)
File “/usr/lib/python3/dist-packages/softwareproperties/ppa.py”, line 98, in lp
self._lp = login_func(“%s.%s” % (self.module, self.class.name),
File “/usr/lib/python3/dist-packages/launchpadlib/launchpad.py”, line 494, in login_anonymously
return cls(
File “/usr/lib/python3/dist-packages/launchpadlib/launchpad.py”, line 230, in init
super(Launchpad, self).init(
File “/usr/lib/python3/dist-packages/lazr/restfulclient/resource.py”, line 472, in init
self._wadl = self._browser.get_wadl_application(self._root_uri)
File “/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py”, line 447, in get_wadl_application
response, content = self._request(url, media_type=wadl_type)
File “/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py”, line 389, in _request
response, content = self._request_and_retry(
File “/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py”, line 359, in _request_and_retry
response, content = self._connection.request(
File “/usr/lib/python3/dist-packages/httplib2/init.py”, line 1725, in request
(response, content) = self._request(
File “/usr/lib/python3/dist-packages/launchpadlib/launchpad.py”, line 144, in _request
response, content = super(LaunchpadOAuthAwareHttp, self)._request(
File “/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py”, line 184, in _request
return super(RestfulHttp, self)._request(
File “/usr/lib/python3/dist-packages/httplib2/init.py”, line 1441, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File “/usr/lib/python3/dist-packages/httplib2/init.py”, line 1363, in _conn_request
conn.connect()
File “/usr/lib/python3/dist-packages/httplib2/init.py”, line 1153, in connect
sock.connect((self.host, self.port))
TimeoutError: [Errno 110] Connection timed out

I got the answer:

PING ppa.launchpadcontent.net(ppa.launchpadcontent.net (2620:2d:4000:1::81)) 56 data bytes
ppa.launchpadcontent.net ping statistics —
9 packets transmitted, 0 received, 100% packet loss, time 8187ms

Is this X86 or Arm server.

Type uname -m
Does it say aarch64 >>> if so it is arm. There is a workaround in this forum to use duplicity with arm.

This suggests your have issues with your IPv6 connectivity, this should work by default on OVH. Maybe you installed a firewall that blocks outgoing ICMPv6 or something is wrong with your IPv6 config/route.

You should definitely be able to ping that address (also e.g. ping -6 google.com) before looking into anything related to MIAB specifically.

Hi
It’s a X86 server (new KS-1 line).
IPv6 works perfectly

:~# ping -6 google.com

PING google.com(par21s20-in-x0e.1e100.net (2a00:1450:4007:818::200e)) 56 data bytes

64 bytes from par21s20-in-x0e.1e100.net (2a00:1450:4007:818::200e): icmp_seq=1 ttl=112 time=4.79 ms

64 bytes from par21s20-in-x0e.1e100.net (2a00:1450:4007:818::200e): icmp_seq=2 ttl=112 time=4.70 ms
64 bytes from par21s20-in-x0e.1e100.net (2a00:1450:4007:818::200e): icmp_seq=3 ttl=112 time=4.72 ms
64 bytes from par21s20-in-x0e.1e100.net (2a00:1450:4007:818::200e): icmp_seq=4 ttl=112 time=4.70 ms
64 bytes from par21s20-in-x0e.1e100.net (2a00:1450:4007:818::200e): icmp_seq=5 ttl=112 time=4.72 ms

You still can’t ping ppa.launchpadcontent.net as in your above post? If you can did you already try re-running the add-apt-repository command?

This sounds like the ARM problem

See here for the arm workaround

I have the same issue on x86_64 Ubuntu 22.04 hosted at Contabo.net

I made a couple of tests and I believe the error happens because the VPS is unable to connect to ppa.launchpadcontent.net using ipv4, it only works with ipv6:

Netcat query on port TCP 443 (https) of ppa.launchpadcontent.net using ipv6 (“-6” flag)=> OK:

root@vmi3288129:~# nc -6 -v ppa.launchpadcontent.net 443
Connection to ppa.launchpadcontent.net (2620:2d:4000:1009::15f) 443 port [tcp/https] succeeded!

Netcat query on port TCP 443 (https) of ppa.launchpadcontent.net using ipv4 (“-4” flag) => KO:

root@vmi3288129:~# nc -4 -v ppa.launchpadcontent.net 443
nc: connect to ppa.launchpadcontent.net (185.125.189.187) port 443 (tcp) failed: Connection timed out

I tried updating /etc/gai.conf to force ipv4 precedence, but it didn’t help.

I also have a support ticket open on their end, but it’s been more than a week and I’m losing hope, so a workaroud would be welcome.

Just an update about how I resolved this issue.

I used mtr (kindof a new flavour of traceroute) to find out that Cloudflare was blocking the requests to the Duplicity apt repo; the whole block of ip 162.158.85.xxx belongs to them

mtr ppa.launchpadcontent.net
Host Loss% Snt Last Avg Best Wrst StDev

  1. 10.243.2.101 0.0% 142 7.2 3.6 0.2 86.6 8.7
  2. 10.0.66.1 0.0% 142 13.6 3.8 0.3 45.2 7.5
  3. laut-b1-link.ip.twelve99.net 0.0% 142 13.4 7.3 1.2 42.6 7.3
  4. ffm-bb1-link.ip.twelve99.net 0.0% 142 24.3 8.4 3.0 136.1 15.1
  5. ffm-b11-link.ip.twelve99.net 0.0% 142 5.7 7.1 3.0 61.1 8.4
  6. cloudflare-ic-328337.ip.twelve99-cust.net 0.0% 142 4.5 6.1 2.7 47.9 6.8
  7. 162.158.84.245 0.0% 141 8.5 10.8 3.0 98.6 12.9
  8. 162.158.85.12 0.0% 141 12.3 7.2 3.0 42.2 7.2
    162.158.85.163
    162.158.85.131
    162.158.85.48
    162.158.85.137
    162.158.85.154
    162.158.85.150
    162.158.85.29
    162.158.85.217
  9. 162.158.85.38 0.0% 141 7.7 7.4 3.1 37.5 6.5
    162.158.85.7
    162.158.85.131
    162.158.85.169
    162.158.85.158
    162.158.85.201
    162.158.85.111
    162.158.85.71
    162.158.85.10610. (waiting for reply)

I then checked Email Blacklist Check - IP Blacklist Check - See if your server is blacklisted to find out if the ip address Contabo just gave me was blacklisted, and indeed it was all over the place. It took another whole week for them to admit that was the issue and gave me another one that also ended up being blacklisted, but just in one list (SpamRat), so rather that negotiating another IP with Contabo, I went ahead and requested myself the removal from the list with SpamRat, which went smoothly.

I’ve been with Contabo for over 10 years and I’m going to stick with them because they are dirt cheap (not aware of a better deal in terms of GB/$) and also because their data centers are in the EU, but I pray that I won’t ever have to deal with their customer support again.

As I’ve posted in these threads over the years, snap is one of the primary recommended methods for installing duplicity on the project site. I switched to snap years ago and my problems with duplicity vanished.

I understand that people really hate snap, but this just works.

$ sudo apt remove duplicity
$ sudo rm -rf /etc/apt/sources.list.d/duplicity-team-ubuntu-duplicity-release-git-jammy.list
$ sudo apt update
$ sudo snap install duplicity --classic
$ sudo ln -s /snap/bin/duplicity /usr/bin/duplicity
$ duplicity --version
duplicity 3.0.7 December 31, 2025

An update of MiaB will likely reinstall duplicity on top of the snap symlink. So you’ll also want to block duplicity from being installed via apt. Do this by creating an apt preference file:

$ sudo echo -e "# Duplicity is installed via snap\nPackage: duplicity\nPin: release *\nPin-Priority: -1" > /etc/apt/preferences.d/duplicity