feat: KDE Neon infrastructure integration#38
Open
Interested-Deving-1896 wants to merge 6 commits into
Open
Conversation
config/pangea.yml: channel definitions, archive layout, version format, component groups, Jenkins job structure, systemd-dependent package list, and Devuan substitution map. lib/kport/pangea.rb: Ruby module with helpers for channel/package name mapping, Neon version parsing and comparison, component group resolution, Jenkins API queries, and apt archive index queries (Packages.gz). Co-authored-by: Ona <no-reply@ona.com>
kport-jenkins.sh: queries KDE Neon Jenkins for build status, last successful build version, and binary availability. Subcommands: status, version, gate, check-all, sync. Writes JSON cache to ~/.cache/kport/jenkins-status.json. Co-authored-by: Ona <no-reply@ona.com>
lib/kport/cmd/source-build.sh: builds KDE packages from source using kdesrc-build. Generates a kdesrc-buildrc config from KPort channel/prefix settings, applies patches from packages/<name>/patches/*.patch after fetch, and records build metadata to ~/.cache/kport/source-builds/. Co-authored-by: Ona <no-reply@ona.com>
stage3/build.sh: bootstraps a minimal KDE Neon root via debootstrap, adds the Neon apt archive, installs plasma-desktop and KF6 runtime, installs KPort into /opt/kport, and writes stage3-release metadata. Supports cross-arch via qemu-user-static and optional tarball output. Co-authored-by: Ona <no-reply@ona.com>
lib/kport/devuan.sh: init system detection (systemd/sysvinit/openrc/runit), kport_devuan_gate() masks or substitutes systemd-dependent packages at install time, kport_effective_channel() appends -devuan suffix on Devuan. lib/kport/cmd/detect.sh: sources devuan.sh, appends INIT_SYSTEM and KPORT_EFFECTIVE_CHANNEL to hardware.conf, warns on non-systemd systems. lib/kport/cmd/install.sh: sources devuan.sh, applies kport_devuan_gate() before each package install — skips masked packages, redirects to substitutes (e.g. sddm → lightdm on Devuan). config/neon-channels.conf.tpl: documents stable/unstable/nightly -devuan channel variants (informational; same archive, systemd filtering active). Co-authored-by: Ona <no-reply@ona.com>
scripts/kport/kport-binhost.sh: manages a local/remote apt-compatible .deb cache. Subcommands: add, remove, list, index (Packages.gz + Release), fetch (local or remote via Packages.gz), push/pull (rsync), verify (SHA256 against index), clean (keep N versions per package). Layout: <root>/<channel>/<arch>/<pkg>_<ver>_<arch>.deb Optionally signs Release with a GPG key (KPORT_BINHOST_SIGN). Co-authored-by: Ona <no-reply@ona.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds KDE Neon build infrastructure to KPort: Pangea Tooling conventions, Jenkins CI integration, kdesrc-build source backend, Stage3 bootstrap, Devuan/non-systemd support, and a binary package host.
Changes
config/pangea.yml+lib/kport/pangea.rbPangea Tooling conventions: channel definitions, archive layout, Neon version format, component group resolution (frameworks/plasma/gear/pim), Jenkins job path structure, systemd-dependent package list, and Devuan substitution map. Ruby module exposes helpers for name mapping, version parsing/comparison, Jenkins API queries, and apt Packages.gz queries.
scripts/kport/kport-jenkins.shQueries
build.neon.kde.orgfor build status, last successful version, and binary availability. Subcommands:status,version,gate,check-all,sync. Writes JSON cache to~/.cache/kport/jenkins-status.json.lib/kport/cmd/source-build.shkdesrc-build source backend. Generates a
kdesrc-buildrcfrom KPort channel/prefix settings, applies patches frompackages/<name>/patches/*.patchafter fetch, and records build metadata.stage3/build.shBootstraps a minimal KDE Neon root via
debootstrap, adds the Neon apt archive, installsplasma-desktop+ KF6 runtime, installs KPort into/opt/kport, and writesstage3-releasemetadata. Supports cross-arch viaqemu-user-staticand optional tarball output.lib/kport/devuan.sh+ patches todetect.sh,install.sh,neon-channels.conf.tplInit system detection (systemd/sysvinit/openrc/runit).
kport_devuan_gate()masks or substitutes systemd-dependent packages at install time (e.g.sddm → lightdm).kport detectappendsINIT_SYSTEMandKPORT_EFFECTIVE_CHANNELtohardware.conf.scripts/kport/kport-binhost.shapt-compatible binary package host. Subcommands:
add,remove,list,index(Packages.gz + Release),fetch,push/pull(rsync),verify(SHA256),clean(keep N versions). Optional GPG signing viaKPORT_BINHOST_SIGN.