Skip to content

Latest commit

 

History

285 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

header

BigCommunity iso-profiles

Package lists and overlay files that describe a BigCommunity ISO. This repository does not build ISOs — buildiso (manjaro-tools) reads bigcommunity/<edition>/ from it.

The one rule

shared/         <- what applies to every edition
bigcommunity/   <- one directory per edition; the rest is symlinks into shared/

No CI generates bigcommunity/: everything here is edited by hand. What keeps it from being duplicated is symlinks — 140 of them today. Each edition's Packages-Root, Packages-Live, Packages-Mhwd and user-repos.conf point at ../../shared/, and the overlays link directory by directory (live-overlay/usr, desktop-overlay/etc, …). Editing shared/Packages-Root changes every edition at once, which is what you usually want.

Layout

shared/
├── Packages-Root            installed-system packages (common base)
├── Packages-Live            live session only
├── Packages-Mhwd            driver packages
├── profile.conf             template: services, live user, label
├── pacman.conf              shipped as /etc/pacman.conf by the overlays
├── user-repos.conf          BigCommunity pacman repositories
├── root-overlay/            files for the installed system
├── desktop-overlay/         files for the desktop image
├── live-overlay/            live session only (GRUB, calamares, memtest)
├── grub-assets/icons/       live GRUB menu icons
└── grub-i18n/               po/ + LINGUAS + update-translations.sh

bigcommunity/
└── kde/  gnome/  xfce/  cinnamon/  cosmic/  deepin/  hyprland/  core/
    ├── Packages-Desktop     the ONLY package file the edition owns
    ├── profile.conf         hostname, live user, custom_boot_args
    ├── Desktop-remove       (optional) removals from the desktop list
    ├── Root-remove          (optional) removals from the root list
    ├── *-overlay/           links into shared/ plus its own files
    └── Packages-{Root,Live,Mhwd}, user-repos.conf  -> ../../shared/

What to edit

Goal Edit
Add a package to every edition shared/Packages-Root
Change a live-session-only package shared/Packages-Live
Change a driver package shared/Packages-Mhwd
Change an edition's desktop bigcommunity/<edition>/Packages-Desktop
Drop a package in one edition only bigcommunity/<edition>/Desktop-remove or Root-remove
Ship a file in the installed system shared/root-overlay/
Ship a file only in the live session shared/live-overlay/
Change the live user, password or hostname bigcommunity/<edition>/profile.conf
Change the live GRUB menu shared/live-overlay/usr/share/grub/cfg/

Push and build an ISO — there is no bot and no intermediate step.

Three things that surprise people

Editing inside one edition may edit them all. bigcommunity/kde/Packages-Root is a symlink to shared/Packages-Root. An editor that follows the link writes to the shared file; one that replaces the file breaks the link and that edition starts drifting from the others silently. Check with ls -l first.

Every edition's profile.conf is a real file. shared/profile.conf is the reference template, not the source: editions override hostname, username, password and custom_boot_args (KDE, for instance, boots with wayland). Editing only shared/profile.conf changes no ISO.

core swaps the files around. Its Packages-Desktop holds a single line (btop); the entire desktop — Cinnamon, themes, input drivers, udev rules — lives in its own Packages-Live, which is not a link into shared/. Looking for a core package in Packages-Desktop finds nothing.

Live session GRUB

The live menu lives in shared/live-overlay/usr/share/grub/ (cfg/, themes/ and locales/) and is translated from shared/grub-i18n/ — 28 languages listed in LINGUAS, regenerated by update-translations.sh.

That menu's contracts (boot arguments, module blacklist, expected entries, themes present) are covered by tests:

pytest tests/     # 22 tests, ~0.3 s

Run them after touching anything under live-overlay/.

Reference

repo_info in the root is not documentation: manjaro-tools finds a profile repository by searching for exactly that file.

root-overlay/ lands in the installed system, desktop-overlay/ in the desktop image, live-overlay/ only in the live session — the names are fixed, they are what manjaro-tools expects to find.

Repositories come from user-repos.conf. A profile-level pacman-default.conf is never read, which is why this repository does not ship one.

In Packages-*, >extra, >multilib and >i686 are manjaro-tools target markers, and KERNEL is a placeholder, not a package: buildiso -k linux612 expands KERNEL-broadcom-wl into linux612-broadcom-wl. Leave it as KERNEL.

About

ISO Profiles from DEs and WMs

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages