Commit Graph
196 Commits
Author SHA1 Message Date
Abdessamad Derraz 8100d671f9 chore: merge origin/main 2026-11-06 13:02:20 +01:00
Abdessamad Derraz 44565a07bb feat: read the EmuELEC device in the installer
EmuELEC's scripts/image writes COREELEC_DEVICE to os-release (v4.8, line
189), as a GameForce image shows. The installer reads it the way it does
for AmberELEC and applies install/targets/emuelec.json. MiSTer FPGA takes
EmuELEC's place in the test of a platform without targets.
2026-11-06 12:09:09 +01:00
Abdessamad Derraz 4d3f589ef4 refactor: drop the archived platform status
RetroPie was the only platform with status: archived, which kept it out
of verify --all, slots, the pipeline and list_platforms unless
--include-archived was typed. release_pack already decides which packs a
release publishes and the installer serves every platform, so the status
set nothing apart. The field, its schema entry and the flag are gone, and
RetroPie is covered by every full run like any other platform.
2026-11-06 11:52:34 +01:00
Abdessamad Derraz c0e4bd8379 chore: merge resolver fixes, fourth pass 2026-11-06 10:28:27 +01:00
Abdessamad Derraz a29b836730 chore: merge installer fixes, fourth pass 2026-11-06 10:28:14 +01:00
Abdessamad Derraz 333f1ac3ca fix: resume a cut data archive
A data archive cut mid-download was deleted on every failure: the retry and the next run started from zero, while the run said nothing was lost. The archive is now kept beside its tree with the validator its server sent, and the rest is asked for with Range and If-Range. Checked against the release: fbneo-samples stopped at 16 MB, the next run downloaded 34.6 MB of 50.5.
2026-11-06 09:04:52 +01:00
Abdessamad Derraz 43cb0f84ab feat: add AmberELEC hardware targets
AmberELEC's metapackage adds LIBRETRO_CORES_EXTRA (bsnes, Mesen, melonDS, geolith) only on RG552, RG353 and RG503, and deletes those cores from es_systems.cfg on every other device (packages/amberelec/package.mk:23-31, 45-58 at a21975bf). The new target scraper reads the Makefile's device images, that test and es_systems.cfg the way the platform scraper does: RG351P, RG351V and RG351MP list 125 cores, the other three 136. The installer reads the device from COREELEC_DEVICE in os-release (scripts/image:168).
2026-11-06 09:04:51 +01:00
Abdessamad Derraz ada7738fa7 feat: pin_installer writes the installer pins
Every change to install.py meant a sha256sum pasted by hand into
install.sh and install.ps1, and the tests that caught a stale pin
failed on two bare hashes. scripts/pin_installer.py writes both pins
(--check only reports), the pin tests name it, check_freshness reads
the pins through it and refresh_stale runs it for a stale pin row.
2026-11-06 09:02:18 +01:00
Abdessamad Derraz 725325f0a1 fix: announce a data tree at its archive size
A tarball tree was announced at its extracted size: yaps2 at 6.5 MB for a 21.2 MB download, Cemu's game profiles at 9.9 KB for 21.4 MB. refresh_data_dirs records the size of each archive it downloads (a tree current from before is measured, not refetched), the install lists carry it as archive_size, and the plan, the menu and the data event count it.
2026-11-06 08:59:10 +01:00
Abdessamad Derraz eb99131a6e fix: stop advising --save-dir a list cannot serve
RetroPie, ROCKNIX, AmberELEC, EmuELEC and RomM keep their save directory in no fixed place, and their lists leave those files out with no hash or address. The run said to name the folder with --save-dir, and said it again when --save-dir was given. It now says the list holds none of them.
2026-11-06 08:45:03 +01:00
Abdessamad Derraz b3f8f64395 fix: refuse options a listing does not read
Two listing options printed one list, and --list-platforms, --list-targets and --list-emulators printed the same output with --system, --region or --core as without, code 0. A run now prints one list, and an option a listing ignores is refused.
2026-11-06 08:33:01 +01:00
Abdessamad Derraz f696d4974f fix: name a --dest that is a file
A BIOS folder that is a file, or lies under one, failed at mkdir with EEXIST or ENOTDIR, and the run blamed permissions and offered sudo. It is now refused before anything is checked, with an error event whose reason is not_a_folder.
2026-11-06 08:22:18 +01:00
Abdessamad Derraz 97d0a478d2 fix: read RetroArch's config under XDG_CONFIG_HOME
Native RetroArch on Linux keeps retroarch.cfg under $XDG_CONFIG_HOME/retroarch when the variable is set, and falls back to ~/.retroarch.cfg (file_path_special.c fill_pathname_application_data, configuration.c open_default_config_file at e98e1da0). Detection read ~/.config/retroarch only.
2026-11-06 08:18:59 +01:00
Abdessamad Derraz 422de84ac8 chore: ask for the Lakka card in the platform menu
The manual platform menu test expected /storage/system for Lakka on a computer. Lakka is a card setup now, so the menu finds its card's STORAGE part: the default-folder case uses RetroPie, and a Lakka case checks the card.
2026-11-06 03:51:54 +01:00
Abdessamad Derraz 7e504e8469 fix: show and count data archive downloads
A data tree's archive came with no progress line, and the run ended on the BIOS bytes alone (310.5 KB where 82 MB arrived). Its download now draws the progress line and adds its bytes and time to the end line, a cut attempt taken back. It writes no progress event: those count the download event's files.
2026-11-06 03:51:36 +01:00
Abdessamad Derraz a2e8809945 fix: map a card's image name to its board
Batocera and KNULLI write the image name, not the board, to the card's board file (post-image-script.sh). The target scraper now records each board's images from Config.in, the target lists carry them, and the installer maps a card's image to its board. KNULLI's boot/knulli.board is read too.
2026-11-06 03:40:34 +01:00
Abdessamad Derraz a78d5ea316 fix: count data files in the check fetch line 2026-11-05 19:35:27 +01:00
Abdessamad Derraz 101757675b fix: say in place only with data files in place 2026-11-05 19:33:05 +01:00
Abdessamad Derraz aaaafd5771 fix: name the address a download was refused at 2026-11-05 19:31:42 +01:00
Abdessamad Derraz d78af1b00d feat: narrow a retropie install to its pi 2026-11-05 19:29:58 +01:00
Abdessamad Derraz fbc530123e fix: say offline that a platform has no targets 2026-11-05 19:28:28 +01:00
Abdessamad Derraz bb5ac226d6 fix: find a python3.x beside an old python3 2026-11-05 19:26:51 +01:00
Abdessamad Derraz 62568f6d76 fix: stop the windows bootstrap on a silent server 2026-11-05 19:26:12 +01:00
Abdessamad Derraz c54a68c6ca fix: end the bootstrap with 130 on ctrl+c 2026-11-05 19:25:33 +01:00
Abdessamad Derraz 66dae2a974 fix: refuse a cores folder that cannot be listed 2026-11-05 19:20:14 +01:00
Abdessamad Derraz c0bb3443c0 fix: read a batocera zen3 board as its target 2026-11-05 19:18:50 +01:00
Abdessamad Derraz 289c180bfa feat: narrow a knulli install to its board 2026-11-05 19:18:29 +01:00
Abdessamad Derraz b90f8bb0b9 chore: merge tooling batch 2026-11-05 15:57:19 +01:00
Abdessamad Derraz ad810f0c68 fix: run the card board test in a child process 2026-11-05 13:05:09 +01:00
Abdessamad Derraz 806cb6c719 fix: expect code 2 for a typo in two more tests 2026-11-05 13:01:25 +01:00
Abdessamad Derraz 9c128e46b2 feat: apply the board a mounted card names 2026-11-05 12:34:38 +01:00
Abdessamad Derraz fd36670532 fix: name --from-pack and the packs beside a typo 2026-11-05 12:20:44 +01:00
Abdessamad Derraz 3d694c7d70 feat: tell RomM users to scan after an install 2026-11-05 12:20:08 +01:00
Abdessamad Derraz 964812f977 chore: drop review tags from comments
Comments, docstrings and test texts ended on tags that name private review notes no clone holds. The tags go, the facts stay. Test methods named after a finding number are named after what they hold. test_prose_style refuses a tag that comes back. install.py changes in comments only: its pin and the launcher index follow.
2026-11-05 12:19:12 +01:00
Abdessamad Derraz 4dd43aa627 feat: set up Termux storage from the one-liner 2026-11-05 12:18:39 +01:00
Abdessamad Derraz bc6bd590f1 fix: keep the dry-run total in view 2026-11-05 12:13:04 +01:00
Abdessamad Derraz 0d5911f614 fix: name only the platform's cores as readers 2026-11-05 12:12:03 +01:00
Abdessamad Derraz 860fa575d9 feat: link each emulator page under a needed file 2026-11-05 12:11:29 +01:00
Abdessamad Derraz 505cfc044b fix: say what a platform's own check compares 2026-11-05 12:10:51 +01:00
Abdessamad Derraz 9a1d7390e6 fix: try every Python candidate in install.ps1 2026-11-05 12:10:08 +01:00
Abdessamad Derraz 9aa26143ad fix: name the old Python the bootstrap found 2026-11-05 12:08:54 +01:00
Abdessamad Derraz 3389651549 fix: name a sign-in page sent for the file list 2026-11-05 12:08:12 +01:00
Abdessamad Derraz f6de9a0ae3 feat: answer ES-DE, LaunchBox and Android by name 2026-11-05 12:07:25 +01:00
Abdessamad Derraz da4773a0be fix: answer the system names the listing prints 2026-11-05 12:06:36 +01:00
Abdessamad Derraz 94b5195590 fix: exit 2 on an unknown name, as for an option 2026-11-05 12:05:44 +01:00
Abdessamad Derraz 3f0dfbce31 feat: emit an error event for an unknown name 2026-11-05 11:59:02 +01:00
Abdessamad Derraz bcedd22a9e fix: pick a Python that can do HTTPS 2026-11-05 11:53:49 +01:00
Abdessamad Derraz 4d46587693 fix: name a Python built without ssl or zlib 2026-11-05 11:48:50 +01:00
Abdessamad Derraz 33add072cb chore: merge installer page refresh 2026-11-04 05:52:02 +01:00
Abdessamad Derraz 27bd4f1a50 fix: one failure line per file, tests stay local 2026-11-03 14:31:49 +01:00