Skip to content

Adding and Updating Packages

Fabio Scaccabarozzi edited this page Aug 29, 2026 · 2 revisions

Adding and Updating Packages

Adding a brand-new COSMIC package

If the package exists as a submodule in cosmic-epoch at the target tag, use the script's built-in creation flow instead of hand-rolling an ebuild:

./scripts/bump_and_qa_ebuild.sh -v epoch-<version> \
  -c <pkg> --description "<short description>"

This generates the -9999 live ebuild + metadata.xml from scripts/ebuild_template/, commits them, then runs the normal bump pipeline to produce the tagged ebuild, Manifest, and (unless --no-upload) the vendor tarball release.

If you're bootstrapping from a sibling package instead (faster when the new package is structurally similar to an existing one, e.g. another cosmic-comp-shaped daemon):

cp cosmic-base/<similar-pkg>/<similar-pkg>-9999.ebuild cosmic-base/<new-pkg>/<new-pkg>-9999.ebuild
# edit: package name references, description, any package-specific install bits
./scripts/bump_and_qa_ebuild.sh -v epoch-<version> -p <new-pkg> --no-commit
# inspect the result before letting it commit

Always diff the new package's live and tagged ebuilds against a working sibling package to catch leftover copy-paste (a wrong src_install path, a stale target-dir reference) before committing.

Updating an existing package

Normal path: use Bumping Ebuilds. Skip to a manual cp+edit only when the automated bump can't handle the case (e.g. a package split/rename upstream).

Non-COSMIC toolchain packages

dev-lang/dart, dev-util/buf, dev-util/dart-sass, dev-util/dart-sass-bin, x11-themes/adw-gtk3, and similar support packages aren't covered by bump_and_qa_ebuild.sh (it's COSMIC/cosmic-epoch-specific). Bump these manually:

cp <pkg>-<old-version>.ebuild <pkg>-<new-version>.ebuild
ebuild <pkg>-<new-version>.ebuild manifest
ebuild <pkg>-<new-version>.ebuild clean install   # test it actually builds
ebuild <pkg>-<new-version>.ebuild clean
git commit -m "<category>/<pkg>: bump to latest (<new-version>)"

Drop superseded versions once the new one is confirmed working:

rm <pkg>-<old-version>.ebuild
git commit -a -m "<category>/<pkg>: drop <old-version>"

These are usually batched into a feature branch (git switch -c feature/util-bumps) since they're unrelated to a COSMIC release and don't need to ship in lockstep with one.

Watching upstream for new community packages

./scripts/check_cosmic_utils_versions.sh                # table of all tracked cosmic-utils packages
./scripts/check_cosmic_utils_versions.sh updates-only    # only what changed
./scripts/check_cosmic_utils_versions.sh new-only        # packages not yet in the overlay

Rate limit is 60/hr unauthenticated, 5000/hr with a token — the script picks up gh auth login's token from ~/.config/gh/hosts.yml automatically if present, otherwise set GITHUB_TOKEN yourself. Worth having for a full run against 38+ tracked packages.

Clone this wiki locally