Yam::Agama::LiveIso - Retrieve Agama Live ISO metadata (image info and package versions) and expose it through openQA variables.
_run_and_slurp($errmsg, @cmd);
Run @cmd as a child process and return its slurped output. @cmd is passed as a LIST, so no shell is spawned and its arguments can never be parsed as shell syntax (command injection fix, poo#202788). Dies with $errmsg if the command exits non-zero.
_write_tempfile($content, $suffix);
Write binary $content to a temporary file (auto-removed at exit) and return its path. $suffix defaults to .tmp.
_isoinfo_extract($member, $errmsg);
Extract $member from the ISO (get_var('ISO')) via isoinfo and return its content. Dies with $errmsg on failure. Returns an empty string, without dying, if $member is not present on the ISO (isoinfo exits 0 with no output in that case).
_read_packages_json();
Read /LiveOS/.packages.json.gz (a gzipped JSON array of {name, version, ...}) from the ISO, decompress it via the gunzip binary over a temp file (no shell pipe, deadlock-free) and return the decoded arrayref. Some media (e.g. the Online medium) don't ship this file at all; isoinfo then returns empty output rather than failing, so that case is treated as "no package info available" instead of a decompression error.