Skip to content

feat: KDE Neon infrastructure integration#38

Open
Interested-Deving-1896 wants to merge 6 commits into
mainfrom
feat/kde-neon-infra
Open

feat: KDE Neon infrastructure integration#38
Interested-Deving-1896 wants to merge 6 commits into
mainfrom
feat/kde-neon-infra

Conversation

@Interested-Deving-1896

Copy link
Copy Markdown
Owner

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.rb

Pangea 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.sh

Queries build.neon.kde.org for 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.sh

kdesrc-build source backend. Generates a kdesrc-buildrc from KPort channel/prefix settings, applies patches from packages/<name>/patches/*.patch after fetch, and records build metadata.

stage3/build.sh

Bootstraps a minimal KDE Neon root via debootstrap, adds the Neon apt archive, installs plasma-desktop + KF6 runtime, installs KPort into /opt/kport, and writes stage3-release metadata. Supports cross-arch via qemu-user-static and optional tarball output.

lib/kport/devuan.sh + patches to detect.sh, install.sh, neon-channels.conf.tpl

Init system detection (systemd/sysvinit/openrc/runit). kport_devuan_gate() masks or substitutes systemd-dependent packages at install time (e.g. sddm → lightdm). kport detect appends INIT_SYSTEM and KPORT_EFFECTIVE_CHANNEL to hardware.conf.

scripts/kport/kport-binhost.sh

apt-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 via KPORT_BINHOST_SIGN.

Interested-Deving-1896 and others added 6 commits May 27, 2026 16:47
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>
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