Skip to content

fix(quickget): support new kde neon directory structure with editions#1926

Open
MightyCoderX wants to merge 2 commits into
quickemu-project:masterfrom
MightyCoderX:master
Open

fix(quickget): support new kde neon directory structure with editions#1926
MightyCoderX wants to merge 2 commits into
quickemu-project:masterfrom
MightyCoderX:master

Conversation

@MightyCoderX

@MightyCoderX MightyCoderX commented Jun 22, 2026

Copy link
Copy Markdown

Description

KDE Neon download link was broken since they now have a different directory structure.

I considered their new division based on devices like an edition and added support for editions by adding the editions_kdeneon function and updating the get_kdeneon function to build the correct iso and hash urls according to the new directory structure and file names.

./quickemu --url kdeneon

kdeneon-user-bigscreen:              https://files.kde.org/neon/images/bigscreen/user/current/neon-user-bigscreen-20260621-0633.iso
kdeneon-user-desktop:                https://files.kde.org/neon/images/desktop/user/current/neon-user-desktop-20260618-0758.iso
kdeneon-user-dev:                    https://files.kde.org/neon/images/dev/user/current/PUBLIC
kdeneon-user-ko:                     https://files.kde.org/neon/images/ko/user/current/neon-user-ko-20260619-1132.iso
kdeneon-user-mobile:                 https://files.kde.org/neon/images/mobile/user/current/neon-user-mobile-20260621-0517.iso
kdeneon-testing-bigscreen:           https://files.kde.org/neon/images/bigscreen/testing/current/neon-testing-bigscreen-20260621-1913.iso
kdeneon-testing-desktop:             https://files.kde.org/neon/images/desktop/testing/current/neon-testing-desktop-20260617-1014.iso
kdeneon-testing-dev:                 https://files.kde.org/neon/images/dev/testing/current/PUBLIC
kdeneon-testing-ko:                  https://files.kde.org/neon/images/ko/testing/current/neon-testing-ko-20260619-1142.iso
kdeneon-testing-mobile:              https://files.kde.org/neon/images/mobile/testing/current/neon-testing-mobile-20260621-1549.iso
kdeneon-unstable-bigscreen:          https://files.kde.org/neon/images/bigscreen/unstable/current/neon-unstable-bigscreen-20260621-1325.iso
kdeneon-unstable-desktop:            https://files.kde.org/neon/images/desktop/unstable/current/neon-unstable-desktop-20260621-0642.iso
kdeneon-unstable-dev:                https://files.kde.org/neon/images/dev/unstable/current/neon-unstable-dev-20260622-1147.iso
kdeneon-unstable-ko:                 https://files.kde.org/neon/images/ko/unstable/current/neon-unstable-ko-20260619-0359.iso
kdeneon-unstable-mobile:             https://files.kde.org/neon/images/mobile/unstable/current/neon-unstable-mobile-20260621-1256.iso

./quickget --check kdeneon

PASS: kdeneon-user-bigscreen              https://files.kde.org/neon/images/bigscreen/user/current/neon-user-bigscreen-20260621-0633.iso
PASS: kdeneon-user-desktop                https://files.kde.org/neon/images/desktop/user/current/neon-user-desktop-20260618-0758.iso
FAIL: kdeneon-user-dev                    https://files.kde.org/neon/images/dev/user/current/PUBLIC
PASS: kdeneon-user-ko                     https://files.kde.org/neon/images/ko/user/current/neon-user-ko-20260619-1132.iso
PASS: kdeneon-user-mobile                 https://files.kde.org/neon/images/mobile/user/current/neon-user-mobile-20260621-0517.iso
PASS: kdeneon-testing-bigscreen           https://files.kde.org/neon/images/bigscreen/testing/current/neon-testing-bigscreen-20260621-1913.iso
PASS: kdeneon-testing-desktop             https://files.kde.org/neon/images/desktop/testing/current/neon-testing-desktop-20260617-1014.iso
FAIL: kdeneon-testing-dev                 https://files.kde.org/neon/images/dev/testing/current/PUBLIC
PASS: kdeneon-testing-ko                  https://files.kde.org/neon/images/ko/testing/current/neon-testing-ko-20260619-1142.iso
PASS: kdeneon-testing-mobile              https://files.kde.org/neon/images/mobile/testing/current/neon-testing-mobile-20260621-1549.iso
PASS: kdeneon-unstable-bigscreen          https://files.kde.org/neon/images/bigscreen/unstable/current/neon-unstable-bigscreen-20260621-1325.iso
PASS: kdeneon-unstable-desktop            https://files.kde.org/neon/images/desktop/unstable/current/neon-unstable-desktop-20260621-0642.iso
PASS: kdeneon-unstable-dev                https://files.kde.org/neon/images/dev/unstable/current/neon-unstable-dev-20260622-1147.iso
PASS: kdeneon-unstable-ko                 https://files.kde.org/neon/images/ko/unstable/current/neon-unstable-ko-20260619-0359.iso
PASS: kdeneon-unstable-mobile             https://files.kde.org/neon/images/mobile/unstable/current/neon-unstable-mobile-20260621-1256.iso

What would be a clean way to fix those two failing ones (kdeneon-user-dev, kdeneon-testing-dev)?

./quickget --check-all-arch

PASS: kdeneon-user-bigscreen              https://files.kde.org/neon/images/bigscreen/user/current/neon-user-bigscreen-20260621-0633.iso
PASS: kdeneon-user-desktop                https://files.kde.org/neon/images/desktop/user/current/neon-user-desktop-20260618-0758.iso
FAIL: kdeneon-user-dev                    https://files.kde.org/neon/images/dev/user/current/PUBLIC
PASS: kdeneon-user-ko                     https://files.kde.org/neon/images/ko/user/current/neon-user-ko-20260619-1132.iso
PASS: kdeneon-user-mobile                 https://files.kde.org/neon/images/mobile/user/current/neon-user-mobile-20260621-0517.iso
PASS: kdeneon-testing-bigscreen           https://files.kde.org/neon/images/bigscreen/testing/current/neon-testing-bigscreen-20260621-1913.iso
PASS: kdeneon-testing-desktop             https://files.kde.org/neon/images/desktop/testing/current/neon-testing-desktop-20260617-1014.iso
FAIL: kdeneon-testing-dev                 https://files.kde.org/neon/images/dev/testing/current/PUBLIC
PASS: kdeneon-testing-ko                  https://files.kde.org/neon/images/ko/testing/current/neon-testing-ko-20260619-1142.iso
PASS: kdeneon-testing-mobile              https://files.kde.org/neon/images/mobile/testing/current/neon-testing-mobile-20260621-1549.iso
PASS: kdeneon-unstable-bigscreen          https://files.kde.org/neon/images/bigscreen/unstable/current/neon-unstable-bigscreen-20260621-1325.iso
PASS: kdeneon-unstable-desktop            https://files.kde.org/neon/images/desktop/unstable/current/neon-unstable-desktop-20260621-0642.iso
PASS: kdeneon-unstable-dev                https://files.kde.org/neon/images/dev/unstable/current/neon-unstable-dev-20260622-1147.iso
PASS: kdeneon-unstable-ko                 https://files.kde.org/neon/images/ko/unstable/current/neon-unstable-ko-20260619-0359.iso
PASS: kdeneon-unstable-mobile             https://files.kde.org/neon/images/mobile/unstable/current/neon-unstable-mobile-20260621-1256.iso
SKIP: kdeneon-user-bigscreen              (not available for arm64)
SKIP: kdeneon-user-desktop                (not available for arm64)
SKIP: kdeneon-user-dev                    (not available for arm64)
SKIP: kdeneon-user-ko                     (not available for arm64)
SKIP: kdeneon-user-mobile                 (not available for arm64)
SKIP: kdeneon-testing-bigscreen           (not available for arm64)
SKIP: kdeneon-testing-desktop             (not available for arm64)
SKIP: kdeneon-testing-dev                 (not available for arm64)
SKIP: kdeneon-testing-ko                  (not available for arm64)
SKIP: kdeneon-testing-mobile              (not available for arm64)
SKIP: kdeneon-unstable-bigscreen          (not available for arm64)
SKIP: kdeneon-unstable-desktop            (not available for arm64)
SKIP: kdeneon-unstable-dev                (not available for arm64)
SKIP: kdeneon-unstable-ko                 (not available for arm64)
SKIP: kdeneon-unstable-mobile             (not available for arm64)

I tested getting the image and running a vm (kdeneon unstable desktop) and it boots fine.

For the changes i looked at how you handled similar stuff and I tried to make the change properly, if something is off tell me and I'll fix it!

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Checklist:

  • I have performed a self-review of my code

Review in cubic

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Confidence score: 3/5

  • quickget appears to accept KDE Neon dev metadata where PUBLIC is returned instead of an ISO filename without validating it, which can produce a bad download/checksum target and break image retrieval for those editions; add explicit handling/validation for non-ISO PUBLIC responses (fail fast or resolve the real ISO URL) before merging.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="quickget">

<violation number="1" location="quickget:2231">
P1: KDE Neon checksum/ISO resolution lacks validation for dev editions that return PUBLIC instead of an ISO filename</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread quickget Outdated
ISO=$(web_pipe "${URL}/neon-${RELEASE}-current.sha256sum" | cut -d' ' -f3-)
HASH=$(web_pipe "${URL}/neon-${RELEASE}-current.sha256sum" | cut -d' ' -f1)
local URL="https://files.kde.org/neon/images/${EDITION}/${RELEASE}/current"
ISO=$(web_pipe "${URL}/neon-${RELEASE}-${EDITION}-current.sha256sum" | cut -d' ' -f3-)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: KDE Neon checksum/ISO resolution lacks validation for dev editions that return PUBLIC instead of an ISO filename

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At quickget, line 2231:

<comment>KDE Neon checksum/ISO resolution lacks validation for dev editions that return PUBLIC instead of an ISO filename</comment>

<file context>
@@ -2223,9 +2227,9 @@ function get_kali() {
-    ISO=$(web_pipe "${URL}/neon-${RELEASE}-current.sha256sum" | cut -d' ' -f3-)
-    HASH=$(web_pipe "${URL}/neon-${RELEASE}-current.sha256sum" | cut -d' ' -f1)
+    local URL="https://files.kde.org/neon/images/${EDITION}/${RELEASE}/current"
+    ISO=$(web_pipe "${URL}/neon-${RELEASE}-${EDITION}-current.sha256sum" | cut -d' ' -f3-)
+    HASH=$(web_pipe "${URL}/neon-${RELEASE}-${EDITION}-current.sha256sum" | cut -d' ' -f1)
     echo "${URL}/${ISO} ${HASH}"
</file context>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0 issues found across 1 file (changes from recent commits).

Requires human review: Auto-approval blocked by 1 unresolved issue from previous reviews.

Re-trigger cubic

@MightyCoderX

Copy link
Copy Markdown
Author

Since the get_* functions are called inside a subshell, it is not possible to terminate the whole script with an error message from within the get_kdeneon function, when the checksum file doesn't exist (which right now means that the current combination of release and edition doesn't exist).

So there needs to be a check somewhere else, and since I don't know where it would be the proper place to put this very specific check, without changing too much of the code, I haven't done it yet.

If someone more familiar with the code base could point out the best solution, I would be glad.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant