-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
add Debian Forky as CSC target #8814
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughAdds a new Debian distribution "Forky" via multiple config files (config/distributions/forky/{architectures,name,order,support,upgrade}) and simple entries for CLI and desktop (config/cli/forky, config/desktop/forky). Updates config/distributions/sid/order from 9 to 10 and changes config/distributions/trixie/upgrade from "testing" to "forky,testing". Extends release handling in lib/functions/rootfs/distro-specific.sh to recognize trixie and forky alongside existing releases. Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Changes are repetitive configuration additions and a small, localized update to a shell case statement; review mainly verifies correctness of new values and that the release mapping was updated consistently. Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro Disabled knowledge base sources:
📒 Files selected for processing (10)
✅ Files skipped from review due to trivial changes (3)
🚧 Files skipped from review as they are similar to previous changes (6)
🔇 Additional comments (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (10)
config/cli/forky(1 hunks)config/desktop/forky(1 hunks)config/distributions/forky/architectures(1 hunks)config/distributions/forky/name(1 hunks)config/distributions/forky/order(1 hunks)config/distributions/forky/support(1 hunks)config/distributions/forky/upgrade(1 hunks)config/distributions/sid/order(1 hunks)config/distributions/trixie/upgrade(1 hunks)lib/functions/rootfs/distro-specific.sh(2 hunks)
🔇 Additional comments (11)
config/cli/forky (1)
1-1: CLI alias to trixie matches desktop—verified and correct.Both
config/cli/forkyandconfig/desktop/forkyare symlinks pointing totrixie, and both target directories exist. Aliases maintain parity as intended.config/desktop/forky (1)
1-1: Verified: aliases and targets are correctly configured.Both
config/desktop/forkyandconfig/cli/forkyare properly set as symlinks totrixie, and both target directories exist. The structural differences between them (appgroups/environments vs debootstrap/main) reflect their different distribution-specific schemas, which is expected. No action needed.config/distributions/forky/upgrade (1)
1-1: Code is correct; no changes needed.The codebase already properly recognizes "forky" as Debian (line 88, lib/functions/rootfs/distro-specific.sh) and maps it to the correct APT suites:
forkyandforky-updates. The newconfig/distributions/forky/upgradefile containing "testing" is metadata only (used in /etc/armbian-distribution-status), not APT suite configuration. The suite names are hardcoded based on the${release}variable and correctly reflect that Forky is Debian's testing branch.config/distributions/trixie/upgrade (1)
1-1: Change is correct and follows the established multi-target upgrade pattern.All distributions consistently use comma-separated targets in their upgrade files (e.g., bookworm:
trixie,testing; bullseye:bookworm,trixie,testing). Theforky,testingformat for trixie aligns with this convention, representing a fallback sequence: prefer forky, fall back to testing. This is consumed by armbian-config and motd as documented in the build code.Optional: Consider dropping
,testingfrom trixie/upgrade once Forky reaches stable status, similar to how forky/upgrade currently lists onlytesting.config/distributions/forky/support (1)
1-1: Distribution support level correctly set.The "csc" value properly marks Forky as a Community-Supported Component target, aligning with the PR objective.
config/distributions/forky/order (1)
1-1: Ordering value is logically sound.Forky (9) will sort before Sid (10), which is appropriate since Forky is testing and Sid is unstable.
config/distributions/forky/name (1)
1-1: Distribution display name is clear and follows Debian's official naming."Debian 14 Forky" is appropriate and aligns with the Debian release nomenclature.
lib/functions/rootfs/distro-specific.sh (3)
72-72: Documentation comment correctly updated to reflect supported releases.Forky is now listed as a valid release parameter, keeping the documentation in sync with the implementation.
87-99: Forky correctly integrated into Debian-based distribution handling.Adding Forky to the case statement alongside Trixie ensures it receives the appropriate APT source configuration with security updates and backports (since it's neither buster nor bullseye). The release will be treated as a tested distribution rather than unstable, which is correct for Forky's testing branch status.
101-216: Forky will correctly utilize existing Debian infrastructure.The release will leverage the standard Debian APT configuration, keyrings, and mirrors without requiring special handling. Armbian repository logic uses the RELEASE variable generically, so Forky components (main, desktop, utils) will be available automatically through the standard Armbian mirror configuration.
config/distributions/forky/architectures (1)
1-1: Format is consistent with all other distributions.The verification confirms that all architecture configuration files across distributions use the same comma-separated format without spaces. The forky file matches this standard.
| @@ -1 +1 @@ | |||
| 9 | |||
| 10 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Ensure order values remain unique across distributions.
Bumping Sid to 10 makes sense after adding Forky at 9. Verify no duplicate order numbers.
Run:
🏁 Script executed:
#!/bin/bash
set -e
# List all orders and detect duplicates
find config/distributions -type f -name order -print0 \
| xargs -0 -I{} sh -c 'v=$(tr -d " \t\r" < "{}"); echo "${v} {}"' \
| sort -n \
| tee /tmp/orders.txt \
| awk 'NR>1 && $1==prev {dup=1; print "DUP:",$0} {prev=$1} END{exit dup?1:0}'Length of output: 41
🏁 Script executed:
#!/bin/bash
set -e
# List all orders and detect duplicates (without tee)
find config/distributions -type f -name order | while read file; do
v=$(tr -d " \t\r" < "$file")
echo "$v $file"
done | sort -n -k1,1 | awk 'NR>1 && $1==prev {print "DUPLICATE:", $0; dup=1} {prev=$1} END{if(dup) exit 1}'
# Also show all unique orders for inspection
echo "---"
echo "All order files and values:"
find config/distributions -type f -name order | while read file; do
v=$(tr -d " \t\r" < "$file")
echo "$v $file"
done | sort -n -k1,1Length of output: 143
🏁 Script executed:
#!/bin/bash
# Find all "order" files and check for duplicates
echo "Finding all 'order' files in repository..."
find . -type f -name "order" 2>/dev/null | head -20
echo ""
echo "Extracting and sorting order values..."
find . -type f -name "order" 2>/dev/null | while read file; do
v=$(tr -d " \t\r\n" < "$file")
echo "$v $file"
done | sort -n -k1,1
echo ""
echo "Checking for duplicates..."
find . -type f -name "order" 2>/dev/null | while read file; do
v=$(tr -d " \t\r\n" < "$file")
echo "$v"
done | sort -n | uniq -d | while read dup; do
echo "DUPLICATE ORDER VALUE: $dup"
doneLength of output: 948
Critical: Pre-existing duplicate order values detected—oracular and plucky both have order 8.
Sid's change to 10 is unique and correct. However, verification revealed a pre-existing duplicate: both oracular/order and plucky/order contain value 8. This must be resolved to maintain order uniqueness across distributions.
🤖 Prompt for AI Agents
In config/distributions/sid/order at line 1: Sid's change to 10 is fine, but
there is a pre-existing duplicate where oracular/order and plucky/order both use
value 8; update one of those two files (preferably the one that is less
semantically constrained) to a unique, non-conflicting order value (e.g., pick
the next unused integer), ensure no other distribution uses that value, commit
the change, and run the distribution-order validation/tests to confirm
uniqueness across all distributions.
Description
This adds the new Debian 14 (forky) as target which is currently in testing.
Because the last release Debian 13 (trixie) is quite recent there should not be any major breaking changing, so all the appgroups are symlinked to trixie.
How Has This Been Tested?
./compile.sh SKIP_ARMBIAN_REPO=yesfor several board / desktop combinations, tested on physical rock5b with GnomeChecklist:
Please delete options that are not relevant.