Bug 256432

Summary: www/youtube_dl: distfile fetch fails over IPv6-only network
Product: Ports & Packages Reporter: Evgeniy Khramtsov <evgeniy>
Component: Individual Port(s)Assignee: freebsd-multimedia (Nobody) <multimedia>
Status: Closed FIXED    
Severity: Affects Only Me CC: arrowd, diizzy, evgeniy
Priority: --- Flags: evgeniy: maintainer-feedback-
Version: Latest   
Hardware: Any   
OS: Any   
Description Flags
evgeniy: maintainer-approval?
v2 evgeniy: maintainer-approval?

Description Evgeniy Khramtsov 2021-06-06 00:15:37 UTC
MASTER_SITES points to yt-dl.org which has both A and AAAA RRs:

$ host yt-dl.org
yt-dl.org has address
yt-dl.org has IPv6 address 2001:1a50:11:0:5f:8f:acaa:177

Dual-stack nodes would fallback to if AAAA failed,
but IPv6-only nodes (with DNS64 or not) can only try AAAA, which 
is unreachable from at least AS8359 and AS207996:

(AS8359) $ traceroute6 2001:1a50:11:0:5f:8f:acaa:177
traceroute6 to 2001:1a50:11:0:5f:8f:acaa:177 (2001:1a50:11:0:5f:8f:acaa:177) from 2001:db8::1, 64 hops max, 28 byte packets
 1  2001:1a50:11:60::1  2109.865 ms !A  2999.323 ms !A  3199.868 ms !A

(AS207996) $ traceroute6 2001:1a50:11:0:5f:8f:acaa:177
traceroute6 to 2001:1a50:11:0:5f:8f:acaa:177 (2001:1a50:11:0:5f:8f:acaa:177) from 2001:db8::2, 64 hops max, 28 byte packets
 1  2a0a-e5c0-2-12--5.loves.ipv6.at.ungleich.ch  0.553 ms  0.613 ms  0.643 ms
 2  2a01:330:1000:1003::1  8.677 ms  8.489 ms  8.561 ms
 3  2a01:330:0:102::2  8.884 ms  8.677 ms *
 4  10gigabitethernet1-4.core1.zrh1.he.net  9.361 ms  9.272 ms  9.185 ms
 5  100ge8-1.core1.zrh2.he.net  5.551 ms  5.945 ms  5.870 ms
 6  100ge15-1.core1.fra1.he.net  11.129 ms  10.995 ms  10.997 ms
 7  decix-100g.e3.mk.de  11.820 ms  12.161 ms  12.027 ms
 8  ae1.lr1.mk.de  12.694 ms
    ae1.lr2.mk.de  12.122 ms
    ae1.lr1.mk.de  12.580 ms
 9  ae3.cr2b.mk.de  12.784 ms  11.690 ms  11.827 ms
10  2001:1640::4b:2  11.703 ms  11.686 ms  11.811 ms
11  2001:1a50:ffff:fffe::1042  13.008 ms  12.563 ms  12.413 ms
12  2001:1a50:11:60::1  12.009 ms  12.065 ms  11.998 ms
13  2001:1a50:11:60::1  3082.651 ms !A  2659.112 ms !A  3071.638 ms !A

Upstream was notified via e-mail to hostmaster from SOA of zone in April,
no response and no issue resolution since then.

I think switching to USE_GITHUB (DNS64) or mirroring distfile on FreeBSD cluster
would fix this, until the issue is fixed by yt-dl.org hostmaster.
Comment 1 Evgeniy Khramtsov 2021-06-22 10:08:46 UTC
Created attachment 225989 [details]

Patch attached with commit message ("git am").

I used upstream provided tarball instead, as in https://cgit.freebsd.org/ports/commit/?id=29e87cd021e8fb0ef77948bc5e049f1283e2a493
Comment 2 Daniel Engberg freebsd_committer 2021-06-24 11:05:36 UTC
Stick do DISTVERSION everywhere rather than mixing PORT and DISTVERSION and why not keep main site as fallback?
Comment 3 Evgeniy Khramtsov 2021-06-24 13:33:51 UTC
Created attachment 226032 [details]

> why not keep main site as fallback?

GH likely has better bandwidth and uptime; I don't see the need to keep
yt-dl.org. Hostmaster ignores mail, so if the website is down, it would
likely remain down longer than any possible GH outage. I think it would
not hurt to have yt-dl.org as a fallback, attached v2 after your review.

A better solution would be to mirror the distfile at distcache.FreeBSD.org,
which has AAAA RR without the need of DNS64/NAT64. I think only a committer
can do that.

> Stick do DISTVERSION everywhere rather than mixing PORT and DISTVERSION

Right, I wanted to minimize the amount of change, so a maintainer is more
likely to approve the patch. V2 changes more as you suggested.

Thanks for review.
Comment 4 Daniel Engberg freebsd_committer 2021-06-25 09:29:57 UTC
yt-dl.org link stil uses PORTVERSION, as a workaround for those who don't want to fetch it manually for now at least might be www/yt-dlp which is a compatible fork (uses github.com)
Comment 5 Evgeniy Khramtsov 2021-06-25 11:25:51 UTC
(In reply to Daniel Engberg from comment #4)

Well, seems like I wasn't paying much attention and just copied it as-is... I was distracted with something else yesterday; this is trivial enough to change if someone commits it, sorry for that.

> as a workaround for those who don't want to fetch it manually

/etc/hosts entry (uses nat64.net):

2a00:1098:2b:: yt-dl.org
Comment 6 Evgeniy Khramtsov 2021-07-09 23:12:13 UTC
Maintainer timeout.
Comment 7 commit-hook freebsd_committer 2021-07-25 10:48:00 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1138b7cb7a81f7a0348788a7aca8ccc85aaf1367

commit 1138b7cb7a81f7a0348788a7aca8ccc85aaf1367
Author:     Evgeniy Khramtsov <evgeniy@khramtsov.org>
AuthorDate: 2021-07-25 10:44:21 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2021-07-25 10:46:09 +0000

    www/youtube_dl: Add Github to MASTER_SITES.

    The original site is unreachable from IPv6-only networks.

    While there, switch to using DISTVERSION.

    PR:             256432
    Tested by:      arrowd
    Approved by:    multimedia (maintainer timeout)

 www/youtube_dl/Makefile | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
Comment 8 Gleb Popov freebsd_committer 2021-07-25 10:48:20 UTC
Pushed in, thanks.