From bd13421b2b70f3f125061018c800439ef2d43e8d Mon Sep 17 00:00:00 2001 From: Adam Dinwoodie Date: Fri, 8 Aug 2025 21:19:29 +0100 Subject: [PATCH] fetchtorrent: test using Sintel torrent The current torrent used for testing fetchtorrent isn't free, which prevents the tests running in a lot of environments. Swap for a torrent of the Sintel film, which has a free license. This unfortunately increases the closure size of the tests: Sintel is 124MB, compared to 54MB for the Wired CD. This was the smallest torrent I could find that both had a free license and was sufficiently well seeded to be useful for testing. --- pkgs/build-support/fetchtorrent/tests.nix | 65 +++++++++++++---------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/pkgs/build-support/fetchtorrent/tests.nix b/pkgs/build-support/fetchtorrent/tests.nix index a05c7993ac36..392d53b8956d 100644 --- a/pkgs/build-support/fetchtorrent/tests.nix +++ b/pkgs/build-support/fetchtorrent/tests.nix @@ -1,50 +1,57 @@ -{ testers, fetchtorrent, ... }: +{ + lib, + testers, + fetchtorrent, + ... +}: let - wired-cd.meta.license = [ - # track 1, 4 and 11 - { - spdxID = "CC NC-SAMPLING+ 1.0 Deed"; - fullName = "NonCommercial Sampling Plus 1.0 Generic"; - url = "https://creativecommons.org/licenses/nc-sampling+/1.0/"; - free = false; # for noncommercial purposes only - } - # the rest - { - spdxID = "CC SAMPLING+ 1.0 Deed"; - fullName = "Sampling Plus 1.0 Generic"; - url = "https://creativecommons.org/licenses/sampling+/1.0/"; - free = true; # no use in advertisement - } - ]; + sintel.meta = { + description = "An open source short film to show off open source technologies."; + longDescription = '' + An independently produced short film, initiated by the Blender Foundation + as a means to further improve andvalidate the free/open source 3D + creation suite Blender. + ''; + license = lib.licenses.cc-by-30; + homepage = "https://durian.blender.org/"; + }; + + # Via https://webtorrent.io/free-torrents + httpUrl = "https://webtorrent.io/torrents/sintel.torrent"; + magnetUrl = "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent"; + + # All routes to download the torrent should produce the same output and + # therefore have the same FOD hash. + hash = "sha256-EzbmBiTEWOlFUNaV5R4eDeD9EBbp6d93rfby88ACg0s="; in { http-link = testers.invalidateFetcherByDrvHash fetchtorrent { - url = "https://webtorrent.io/torrents/wired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + inherit hash; + url = httpUrl; backend = "transmission"; - inherit (wired-cd) meta; + inherit (sintel) meta; }; magnet-link = testers.invalidateFetcherByDrvHash fetchtorrent { - url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + inherit hash; + url = magnetUrl; backend = "transmission"; - inherit (wired-cd) meta; + inherit (sintel) meta; }; http-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent { - url = "https://webtorrent.io/torrents/wired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + inherit hash; + url = httpUrl; backend = "rqbit"; - meta = wired-cd.meta // { + meta = sintel.meta // { broken = true; }; }; magnet-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent { - url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + inherit hash; + url = magnetUrl; backend = "rqbit"; - meta = wired-cd.meta // { + meta = sintel.meta // { broken = true; }; };