>>> rutorrent: Building community/rutorrent 5.3.12-r0 (using abuild 3.18.0_rc5-r1) started Mon, 31 Aug 2026 08:33:09 +0000 >>> rutorrent: Validating /home/buildozer/aports/community/rutorrent/APKBUILD... >>> rutorrent: Analyzing dependencies... >>> rutorrent: Installing for build: build-base php83 curl tar nodejs npm ( 1/16) Installing php83-common (8.3.33-r0) ( 2/16) Installing argon2-libs (20190702-r5) ( 3/16) Installing xz-libs (5.8.3-r0) ( 4/16) Installing libxml2 (2.13.9-r2) ( 5/16) Installing php83 (8.3.33-r0) ( 6/16) Installing curl (8.21.0-r0) ( 7/16) Installing ca-certificates (20260611-r0) ( 8/16) Installing ada-libs (3.3.0-r0) ( 9/16) Installing icu-data-en (78.1-r0) Executing icu-data-en-78.1-r0.post-install * If you need ICU with non-English locales and legacy charset support, install * package icu-data-full. (10/16) Installing icu-libs (78.1-r0) (11/16) Installing simdjson (4.2.4-r1) (12/16) Installing simdutf (9.1.0-r0) (13/16) Installing sqlite-libs (3.53.4-r0) (14/16) Installing nodejs (24.18.1-r1) (15/16) Installing npm (12.0.2-r0) (16/16) Installing .makedepends-rutorrent (20260831.083309) Executing busybox-1.38.0-r4.trigger Executing ca-certificates-20260611-r0.trigger OK: 349.0 MiB in 119 packages >>> rutorrent: Cleaning up srcdir >>> rutorrent: Cleaning up pkgdir >>> rutorrent: Cleaning up tmpdir >>> rutorrent: Fetching https://distfiles.alpinelinux.org/distfiles/edge/rutorrent-5.3.12.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 0 curl: (22) The requested URL returned error: 404 >>> rutorrent: Fetching rutorrent-5.3.12.tar.gz::https://github.com/Novik/ruTorrent/archive/v5.3.12.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 3.33M 100 3.33M 0 0 5.02M 0 0 100 3.33M 100 3.33M 0 0 5.02M 0 0 100 3.33M 100 3.33M 0 0 5.02M 0 0 /var/cache/distfiles/rutorrent-5.3.12.tar.gz: OK /home/buildozer/aports/community/rutorrent/fix-rss-rtorrent-tests.patch: OK >>> rutorrent: Fetching https://distfiles.alpinelinux.org/distfiles/edge/rutorrent-5.3.12.tar.gz /var/cache/distfiles/rutorrent-5.3.12.tar.gz: OK /home/buildozer/aports/community/rutorrent/fix-rss-rtorrent-tests.patch: OK >>> rutorrent: Unpacking /var/cache/distfiles/rutorrent-5.3.12.tar.gz... >>> rutorrent: fix-rss-rtorrent-tests.patch patching file tests/js/rtorrent.spec.js patching file tests/plugins/rss/init.spec.js Hunk #1 succeeded at 40 (offset 1 line). npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm warn deprecated @babel/plugin-proposal-unicode-property-regex@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. npm warn deprecated whatwg-encoding@3.1.1: Use @exodus/bytes instead for a more spec-conformant and faster implementation npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me added 423 packages, and audited 424 packages in 23s 42 packages are looking for funding run `npm fund` for details found 0 vulnerabilities npm notice run rutorrent-tests@0.0.0 test npm notice run jest --testPathIgnorePatterns=category-list PASS js/trackerstatus.spec.js getClickableTrackerStatus ✓ returns empty string for null, undefined, or empty input (13 ms) ✓ converts http and https URLs to clickable links (2 ms) ✓ handles embedded URLs with surrounding text and trailing period (1 ms) ✓ excludes trailing punctuation like '.', ')', or ',' from link (1 ms) ✓ sanitizes HTML and script tags to prevent XSS (1 ms) ✓ does not convert non-http/https links to hyperlinks (1 ms) ✓ handles torrent failure status with PtP style links and escaped quotes (1 ms) PASS js/webui-status-icon.spec.js getStatusIcon ✓ calls a started torrent with its selected files done a partial seed (26 ms) ✓ treats a stopped partially downloaded torrent like a stopped completed one (7 ms) ✓ leaves an ordinary incomplete torrent downloading (6 ms) ✓ leaves an ordinary incomplete stopped torrent stopped (6 ms) ✓ leaves a fully downloaded torrent seeding and completed (6 ms) ✓ keeps a fully downloaded torrent seeding, though the daemon calls it partially done too (6 ms) ✓ falls back to the old behaviour when the daemon sends no value (7 ms) ✓ gives an errored partial seed the upload error icon (5 ms) ✓ keeps checking ahead of everything else (5 ms) PASS js/absolute-dates.spec.js torrent list date formatter ✓ renders the creation date from the raw timestamp regardless of deltaTime (14 ms) torrent details pane ✓ keeps the creation date fixed while elapsed time still compensates for clock skew (22 ms) PASS plugins/seedingtime/init.spec.js seedingtime custom-field requests ✓ stores seedingtime as a duration that compensates for clock skew (20 ms) ✓ stores addtime as the raw epoch no matter how skewed the clock is (4 ms) ✓ flags an absent custom field with -1 (3 ms) ✓ renders the columns as a duration and a calendar date (6 ms) PASS plugins/mobile/partial-seed.spec.js mobile plugin, partial seeds ✓ keeps the partially done flag in the row snapshot (17 ms) ✓ ignores fields the row does not render (1 ms) PASS js/clock-offset.spec.js clock offset ✓ prefers X-Server-Timestamp over a stale Date header (16 ms) ✓ still measures a genuine offset from X-Server-Timestamp (3 ms) ✓ falls back to the Date header when the server timestamp is absent (3 ms) ✓ leaves the offset alone when the response carries neither header (2 ms) ✓ measures once and keeps that value until something resets it (2 ms) PASS js/webui-stale-details.spec.js webui stale details ✓ clears selected details when the selected torrent disappears from list updates (43 ms) PASS plugins/mobile/details.spec.js mobile details pane ✓ renders seeding time as the elapsed duration it already is (104 ms) ✓ renders a duration under a year, which the old year-guard hid (31 ms) ✓ leaves the row empty when the torrent has never seeded (30 ms) ✓ renders nothing rather than a 1970 date when the value is missing (31 ms) PASS plugins/mobile/settings.spec.js mobile plugin settings storedSetting ✓ returns the stored value when it is a known option (13 ms) ✓ falls back to the default when nothing is stored (2 ms) ✓ falls back to the default for an unknown value (2 ms) ✓ falls back to the default for a non-string value (2 ms) ✓ accepts every accent color offered by the settings page (5 ms) isKnownSort ✓ accepts every sort field, ascending and descending (10 ms) ✓ rejects an unknown field (1 ms) storeSetting ✓ persists the value under its webui.mobile key (2 ms) ✓ keeps settings saved elsewhere while this session was open (2 ms) showSort ✓ offers the seedingtime fields only when that plugin is loaded (49 ms) ✓ preselects the current sort field and direction (36 ms) PASS js/setsettings.spec.js setsettings on rtorrent with adjustable socket allocation ✓ sets both bounds and recomputes for max open files (77 ms) ✓ sets both bounds and recomputes for max open http (21 ms) ✓ emits adjust_alloc once at the end when both settings change together (19 ms) ✓ does not recompute when no socket setting changed (13 ms) ✓ keeps the dht setting on its own branch (13 ms) ✓ leaves other settings in the batch untouched (12 ms) settings read-back ✓ reads the allocation in effect once the socket manager owns the limits (19 ms) ✓ keeps the legacy read-back commands on 0.9.8 (13 ms) setsettings below the socket allocation version gate ✓ sends the single ceiling command on 0.16.18 (14 ms) ✓ sends the legacy command on 0.9.8 (15 ms) PASS js/common.spec.js escapeHTML ✓ returns an empty string for null and undefined (14 ms) ✓ leaves text without special characters untouched (2 ms) ✓ escapes each of the five special characters (2 ms) ✓ escapes '&' first so replacements are not double-escaped (2 ms) ✓ escapes an already-escaped entity again (no unescaping is attempted) (2 ms) ✓ neutralises a script tag payload (1 ms) ✓ escapes every occurrence, not just the first (1 ms) ✓ stringifies non-string input (2 ms) iv ✓ returns 0 for falsey input (2 ms) ✓ parses integers from numbers and numeric strings (2 ms) ✓ truncates floats towards zero (2 ms) ✓ handles negative values (1 ms) ✓ takes the leading numeric part of a partially numeric string (2 ms) ✓ returns 0 for a non-numeric string (1 ms) ✓ parses 0x-prefixed strings as hexadecimal (parseInt radix detection) ✓ returns 0 for booleans, since parseInt('true') is NaN (2 ms) ✓ coerces arrays through their string form (1 ms) ir ✓ returns 0 for falsey input (2 ms) ✓ keeps the fractional part (1 ms) ✓ parses plain integers and the string '0' (1 ms) ✓ takes the leading numeric part of a partially numeric string (1 ms) ✓ returns 0 for a non-numeric string (1 ms) ✓ understands exponent notation (1 ms) ✓ does not parse hexadecimal, unlike iv (1 ms) addslashes ✓ escapes backslashes, double quotes and single quotes (2 ms) ✓ escapes NUL, LF and CR as their two-character escapes (2 ms) ✓ leaves ordinary text unchanged (1 ms) ✓ escapes every occurrence ✓ coerces non-string input to a string (2 ms) strip_tags ✓ removes all tags when no allow list is given (2 ms) ✓ keeps the text content of a script tag but drops the tag itself (1 ms) ✓ keeps tags present in the allow list (1 ms) ✓ matches the allow list case-insensitively (1 ms) ✓ keeps the attributes of an allowed tag as-is ✓ ignores allow-list entries that carry attributes (1 ms) ✓ strips HTML comments and PHP tags (1 ms) ✓ strips comments even when their tags are in the allow list (1 ms) ✓ leaves stray angle brackets that are not tags alone (1 ms) ✓ returns the input unchanged when there is nothing to strip (1 ms) cloneObject ✓ returns null and undefined unchanged (1 ms) ✓ returns primitives unchanged (1 ms) ✓ copies a flat object by value (3 ms) ✓ deep-clones nested objects so the copy is independent (2 ms) ✓ clones arrays as arrays, including nested ones (2 ms) ✓ preserves nulls stored inside an object (1 ms) ✓ copies inherited object-valued properties but not inherited primitives (2 ms) ✓ does not preserve the value of a Date (only its type) (1 ms) propsCount ✓ counts own enumerable properties (1 ms) ✓ counts properties whose values are falsey or undefined (1 ms) ✓ ignores inherited properties (1 ms) ✓ counts array indices (1 ms) ✓ returns an inherited numeric __count__ instead of counting ✓ counts normally when __count__ is an own property (1 ms) getCRC ✓ is deterministic for the same input (1 ms) ✓ returns known values (regression guard on the CRC-16 table) (2 ms) ✓ walks the whole lookup table, catching a single corrupted entry (1 ms) ✓ produces different values for different inputs (1 ms) ✓ treats the second argument as a seed (1 ms) ✓ defaults the seed to 0 when it is missing or not a number (2 ms) ✓ returns the seed unchanged for an empty string (1 ms) ✓ can be resumed by feeding a previous result back as the seed ✓ stays inside 16 bits (4 ms) $type ✓ returns false for null and undefined (1 ms) ✓ returns 'array' for arrays (1 ms) ✓ returns the typeof for everything else (1 ms) $$ ✓ looks up an element by id when given a string (3 ms) ✓ returns null for an unknown id (1 ms) ✓ passes non-string arguments straight through (1 ms) linked ✓ enables the targets when a checkbox is checked (falsey second argument) (20 ms) ✓ disables the targets when a checkbox is unchecked (falsey second argument) (11 ms) ✓ inverts the mapping when the second argument is truthy (11 ms) ✓ disables the targets when a select matches the given value (11 ms) ✓ compares select values strictly, so a non-matching value enables (34 ms) ✓ does nothing for an element that is neither a checkbox nor a select (8 ms) ✓ does nothing for a non-checkbox input (7 ms) ✓ accepts an empty target list without throwing (9 ms) PASS plugins/rss/bbcode.spec.js bbcode mapping ✓ should handle incomplete or faulty bbcode (33 ms) ✓ should map emoticons to html (9 ms) ✓ should map styles to html (8 ms) ✓ should map bbcode tables to html (64 ms) ✓ should map bbcode lists to html code (26 ms) ✓ should map bbcode img to html code (13 ms) PASS js/rtorrent.spec.js xmlrpc calls ✓ maps rTorrent 0.16 commands without deprecated aliases (25 ms) ✓ keeps rTorrent 0.10.2 aliases available on 0.16.0 (6 ms) ✓ maps rTorrent 0.16.16 commands to canonical names (6 ms) ✓ switches port aliases at the rTorrent 0.16.18 boundary (17 ms) ✓ loads rTorrent 0.10.2 aliases at the 0.10.2 boundary (10 ms) ✓ routes d.is_partially_done to a no-op below rTorrent 0.9.0 (4 ms) ✓ should parse getprops response (25 ms) ✓ should parse gettotal response (8 ms) ✓ should parse getopen response (7 ms) ✓ should parse getsettings response (87 ms) ✓ should parse getalltrackers response (14 ms) ✓ should parse getfiles response (14 ms) ✓ should parse getpeers response (20 ms) ✓ should parse gettrackers response (10 ms) ✓ should parse list response (48 ms) ✓ reads the partially done flag from the list response (44 ms) visibilitychange handler ✓ should reset deltaTime and serverDeltaTime when tab becomes visible (4 ms) ✓ should NOT reset deltas when tab becomes hidden (1 ms) Map(31) { 'Flattenable' => { prefix: '', text: 'Flattenable' }, 'Flattenable/Path' => { prefix: '└', text: 'Path' }, 'Flattenable/Path/Label' => { prefix: ' └', text: 'Label' }, 'Misc' => { prefix: '', text: 'Misc' }, 'Misc/Other' => { prefix: '└', text: 'Other' }, 'Misc/Other/Less' => { prefix: ' ├', text: 'Less' }, 'Misc/Other/More' => { prefix: ' └', text: 'More' }, 'aaa' => { prefix: '', text: 'aaa' }, 'aaa/ccc' => { prefix: '└', text: 'ccc' }, 'aaa/ccc/aaa' => { prefix: ' ├', text: 'aaa' }, 'aaa/ccc/bbb' => { prefix: ' ├', text: 'bbb' }, 'aaa/ccc/ccc' => { prefix: ' ├', text: 'ccc' }, 'aaa/ccc/ddd' => { prefix: ' ├', text: 'ddd' }, 'aaa/ccc/eee' => { prefix: ' ├', text: 'eee' }, 'aaa/ccc/fff' => { prefix: ' ├', text: 'fff' }, 'aaa/ccc/ggg' => { prefix: ' └', text: 'ggg' }, 'bbb' => { prefix: '', text: 'bbb' }, 'bbb/ccc' => { prefix: '└', text: 'ccc' }, 'bbb/ccc/aaa' => { prefix: ' ├', text: 'aaa' }, 'bbb/ccc/bbb' => { prefix: ' ├', text: 'bbb' }, 'bbb/ccc/ccc' => { prefix: ' ├', text: 'ccc' }, 'bbb/ccc/ddd' => { prefix: ' ├', text: 'ddd' }, 'bbb/ccc/ggg' => { prefix: ' └', text: 'ggg' }, 'ccc' => { prefix: '', text: 'ccc' }, 'ccc/ccc' => { prefix: '└', text: 'ccc' }, 'ccc/ccc/aaa' => { prefix: ' ├', text: 'aaa' }, 'ccc/ccc/bbb' => { prefix: ' ├', text: 'bbb' }, 'ccc/ccc/ccc' => { prefix: ' ├', text: 'ccc' }, 'ccc/ccc/ddd' => { prefix: ' ├', text: 'ddd' }, 'ccc/ccc/eee' => { prefix: ' ├', text: 'eee' }, 'ccc/ccc/ggg' => { prefix: ' └', text: 'ggg' } } Map(28) { 'Flattenable/Path/Label' => { prefix: '', text: 'Flattenable/Path/Label' }, 'Misc/Other' => { prefix: '', text: 'Misc/Other' }, 'Misc/Other/Less' => { prefix: ' ├', text: 'Less' }, 'Misc/Other/More' => { prefix: ' └', text: 'More' }, 'aaa' => { prefix: '', text: 'aaa' }, 'aaa/ccc' => { prefix: '', text: 'aaa/ccc' }, 'aaa/ccc/aaa' => { prefix: ' ├', text: 'aaa' }, 'aaa/ccc/bbb' => { prefix: ' ├', text: 'bbb' }, 'aaa/ccc/ccc' => { prefix: ' ├', text: 'ccc' }, 'aaa/ccc/ddd' => { prefix: ' ├', text: 'ddd' }, 'aaa/ccc/eee' => { prefix: ' ├', text: 'eee' }, 'aaa/ccc/fff' => { prefix: ' ├', text: 'fff' }, 'aaa/ccc/ggg' => { prefix: ' └', text: 'ggg' }, 'bbb' => { prefix: '', text: 'bbb' }, 'bbb/ccc' => { prefix: '', text: 'bbb/ccc' }, 'bbb/ccc/aaa' => { prefix: ' ├', text: 'aaa' }, 'bbb/ccc/bbb' => { prefix: ' ├', text: 'bbb' }, 'bbb/ccc/ccc' => { prefix: ' ├', text: 'ccc' }, 'bbb/ccc/ddd' => { prefix: ' ├', text: 'ddd' }, 'bbb/ccc/ggg' => { prefix: ' └', text: 'ggg' }, 'ccc' => { prefix: '', text: 'ccc' }, 'ccc/ccc' => { prefix: '', text: 'ccc/ccc' }, 'ccc/ccc/aaa' => { prefix: ' ├', text: 'aaa' }, 'ccc/ccc/bbb' => { prefix: ' ├', text: 'bbb' }, 'ccc/ccc/ccc' => { prefix: ' ├', text: 'ccc' }, 'ccc/ccc/ddd' => { prefix: ' ├', text: 'ddd' }, 'ccc/ccc/eee' => { prefix: ' ├', text: 'eee' }, 'ccc/ccc/ggg' => { prefix: ' └', text: 'ggg' } } Map(27) { 'Flattenable/Path/Label' => { prefix: '', text: 'Flattenable/Path/Label' }, 'Misc/Other/Less' => { prefix: '', text: 'Misc/Other/Less' }, 'Misc/Other/More' => { prefix: '', text: 'Misc/Other/More' }, 'aaa' => { prefix: '', text: 'aaa' }, 'aaa/ccc' => { prefix: '', text: 'aaa/ccc' }, 'aaa/ccc/aaa' => { prefix: '', text: 'aaa/ccc/aaa' }, 'aaa/ccc/bbb' => { prefix: '', text: 'aaa/ccc/bbb' }, 'aaa/ccc/ccc' => { prefix: '', text: 'aaa/ccc/ccc' }, 'aaa/ccc/ddd' => { prefix: '', text: 'aaa/ccc/ddd' }, 'aaa/ccc/eee' => { prefix: '', text: 'aaa/ccc/eee' }, 'aaa/ccc/fff' => { prefix: '', text: 'aaa/ccc/fff' }, 'aaa/ccc/ggg' => { prefix: '', text: 'aaa/ccc/ggg' }, 'bbb' => { prefix: '', text: 'bbb' }, 'bbb/ccc' => { prefix: '', text: 'bbb/ccc' }, 'bbb/ccc/aaa' => { prefix: '', text: 'bbb/ccc/aaa' }, 'bbb/ccc/bbb' => { prefix: '', text: 'bbb/ccc/bbb' }, 'bbb/ccc/ccc' => { prefix: '', text: 'bbb/ccc/ccc' }, 'bbb/ccc/ddd' => { prefix: '', text: 'bbb/ccc/ddd' }, 'bbb/ccc/ggg' => { prefix: '', text: 'bbb/ccc/ggg' }, 'ccc' => { prefix: '', text: 'ccc' }, 'ccc/ccc' => { prefix: '', text: 'ccc/ccc' }, 'ccc/ccc/aaa' => { prefix: '', text: 'ccc/ccc/aaa' }, 'ccc/ccc/bbb' => { prefix: '', text: 'ccc/ccc/bbb' }, 'ccc/ccc/ccc' => { prefix: '', text: 'ccc/ccc/ccc' }, 'ccc/ccc/ddd' => { prefix: '', text: 'ccc/ccc/ddd' }, 'ccc/ccc/eee' => { prefix: '', text: 'ccc/ccc/eee' }, 'ccc/ccc/ggg' => { prefix: '', text: 'ccc/ccc/ggg' } } Map(31) { 'Flattenable' => { prefix: '', text: 'Flattenable' }, 'Flattenable/Path' => { prefix: '', text: 'Flattenable/Path' }, 'Flattenable/Path/Label' => { prefix: '', text: 'Flattenable/Path/Label' }, 'Misc' => { prefix: '', text: 'Misc' }, 'Misc/Other' => { prefix: '', text: 'Misc/Other' }, 'Misc/Other/Less' => { prefix: '', text: 'Misc/Other/Less' }, 'Misc/Other/More' => { prefix: '', text: 'Misc/Other/More' }, 'aaa' => { prefix: '', text: 'aaa' }, 'aaa/ccc' => { prefix: '', text: 'aaa/ccc' }, 'aaa/ccc/aaa' => { prefix: '', text: 'aaa/ccc/aaa' }, 'aaa/ccc/bbb' => { prefix: '', text: 'aaa/ccc/bbb' }, 'aaa/ccc/ccc' => { prefix: '', text: 'aaa/ccc/ccc' }, 'aaa/ccc/ddd' => { prefix: '', text: 'aaa/ccc/ddd' }, 'aaa/ccc/eee' => { prefix: '', text: 'aaa/ccc/eee' }, 'aaa/ccc/fff' => { prefix: '', text: 'aaa/ccc/fff' }, 'aaa/ccc/ggg' => { prefix: '', text: 'aaa/ccc/ggg' }, 'bbb' => { prefix: '', text: 'bbb' }, 'bbb/ccc' => { prefix: '', text: 'bbb/ccc' }, 'bbb/ccc/aaa' => { prefix: '', text: 'bbb/ccc/aaa' }, 'bbb/ccc/bbb' => { prefix: '', text: 'bbb/ccc/bbb' }, 'bbb/ccc/ccc' => { prefix: '', text: 'bbb/ccc/ccc' }, 'bbb/ccc/ddd' => { prefix: '', text: 'bbb/ccc/ddd' }, 'bbb/ccc/ggg' => { prefix: '', text: 'bbb/ccc/ggg' }, 'ccc' => { prefix: '', text: 'ccc' }, 'ccc/ccc' => { prefix: '', text: 'ccc/ccc' }, 'ccc/ccc/aaa' => { prefix: '', text: 'ccc/ccc/aaa' }, 'ccc/ccc/bbb' => { prefix: '', text: 'ccc/ccc/bbb' }, 'ccc/ccc/ccc' => { prefix: '', text: 'ccc/ccc/ccc' }, 'ccc/ccc/ddd' => { prefix: '', text: 'ccc/ccc/ddd' }, 'ccc/ccc/eee' => { prefix: '', text: 'ccc/ccc/eee' }, 'ccc/ccc/ggg' => { prefix: '', text: 'ccc/ccc/ggg' } } PASS js/panel.spec.js Panel label selection ✓ should switch (16 ms) ✓ should toggle (3 ms) ✓ should range select (3 ms) ✓ should adjust view to current (6 ms) ✓ should adjust current to view (7 ms) Category list statistic ✓ should accumulate torrent statistic (37 ms) ✓ should collect torrent label tree (22 ms) ✓ should accumulate torrent view (10 ms) ✓ ids(): known panels return bucket keys; unknown panel throws (pinned across the optional-chaining fix) (88 ms) console.log "bbcode" initialized without dynamic module import! at http:/localhost:12:16 PASS plugins/rss/init.spec.js rss details ✓ should sanitize html code (116 ms) Test Suites: 15 passed, 15 total Tests: 165 passed, 165 total Snapshots: 0 total Time: 5.252 s Ran all test suites. >>> rutorrent: Entering fakeroot... >>> rutorrent*: Running postcheck for rutorrent >>> rutorrent*: Preparing package rutorrent... >>> rutorrent*: Script found. /bin/sh added as a dependency >>> rutorrent*: Adding .pre-install >>> rutorrent*: Adding .post-install >>> rutorrent*: Tracing dependencies... php83 curl /bin/sh >>> rutorrent*: Package size: 9.1 MB >>> rutorrent*: Compressing data... >>> rutorrent*: Create checksum... >>> rutorrent*: Create rutorrent-5.3.12-r0.apk >>> rutorrent: Build complete at Mon, 31 Aug 2026 08:33:44 +0000 elapsed time 0h 0m 35s >>> rutorrent: Cleaning up srcdir >>> rutorrent: Cleaning up pkgdir >>> rutorrent: Cleaning up tmpdir >>> rutorrent: Uninstalling dependencies... ( 1/16) Purging .makedepends-rutorrent (20260831.083309) ( 2/16) Purging php83 (8.3.33-r0) ( 3/16) Purging php83-common (8.3.33-r0) ( 4/16) Purging curl (8.21.0-r0) ( 5/16) Purging npm (12.0.2-r0) ( 6/16) Purging nodejs (24.18.1-r1) ( 7/16) Purging ca-certificates (20260611-r0) Executing ca-certificates-20260611-r0.post-deinstall ( 8/16) Purging ada-libs (3.3.0-r0) ( 9/16) Purging argon2-libs (20190702-r5) (10/16) Purging icu-libs (78.1-r0) (11/16) Purging libxml2 (2.13.9-r2) (12/16) Purging simdjson (4.2.4-r1) (13/16) Purging simdutf (9.1.0-r0) (14/16) Purging sqlite-libs (3.53.4-r0) (15/16) Purging xz-libs (5.8.3-r0) (16/16) Purging icu-data-en (78.1-r0) Executing busybox-1.38.0-r4.trigger OK: 270.1 MiB in 103 packages >>> rutorrent: Updating the community/loongarch64 repository index... >>> rutorrent: Signing the index...