From e9dd7eec231edfd631cc19f164bba6506f96384b Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Sun, 21 Jun 2026 20:16:00 +1200 Subject: Start implementing the library and switch the spec to entirely INI because YAML is harder to parse --- README.md | 75 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 40 insertions(+), 35 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 5121644..b3a76ab 100644 --- a/README.md +++ b/README.md @@ -16,24 +16,21 @@ A package is a `.tar.zst` archive with the file extension `.mpk`. ``` pkgname-1.2.3.mpk --> pkg.yml # Metadata +-> pkg.ini # Metadata -> _install.tar.zst # This will be extracted to / -> post-install # Optional, runs after install -> pre-remove # Optional, runs before remove ``` -#### pkg.yml - -```yaml -name: pkgname -version: 1.2.3 -desc: testing testing 123, i like chicken nuggets, not 3 -deps: - - dep1 - - dep2 - - dep3 -maintainer: French Hacker -license: WTFPL +#### pkg.ini + +```ini +name = pkgname +version = 1.2.3 +desc = testing testing 123, i like chicken nuggets, not 3 +deps = dep1 dep2 dep +maintainer = French Hacker +license = WTFPL ``` #### Scripts @@ -54,44 +51,50 @@ Configuration format is as follows: # Example repository configuration for mbpk # Format: name = url -core = https://repo.yerba.arslaancodes.com/core -extra = https://repo.yerba.arslaancodes.com/extra +[core] +url = https://repo.yerba.arslaancodes.com/core + +[extra] +url = https://repo.yerba.arslaancodes.com/extra ``` +Repos will be synchronized by copying them into `/var/lib/mbpk-repo/`. +For example, the repos from the previous configuration example would be at the following locations: +- `/var/lib/mbpk-repo/core` +- `/var/lib/mbpk-repo/extra` + ### Structure Repository structure is as follows: ``` core/ # Example repository name --> repo.yml # Repository metadata +-> repo.ini # Repository metadata -> pkg/ - -> pkg/pkgname.yml # Package metadata - -> pkg/pkgname2.yml # More package metadata + -> pkgname.ini # Package metadata + -> pkgname2.ini # More package metadata -> files/ -> pkgname-1.2.3.mpk # Example package file ``` -#### repo.yml +#### repo.ini -```yaml -name: core -desc: Core repo for Yerba Linux +```ini +name = core +desc = Core repo for Yerba Linux +url = https://repo.yerba.arslaancodes.com/core ``` -#### pkg/pkgname.yml - -```yaml -name: pkgname -version: 1.2.3 -desc: testing testing 123, i like chicken nuggets, not 3 -url: https://repo.yerba.arslaancodes.com/core/files/pkgname-1.2.3.mpk -deps: - - dep1 - - dep2 - - dep3 -maintainer: French Hacker -license: WTFPL +#### pkg/pkgname.ini + +```ini +name = pkgname +version = 1.2.3 +desc = testing testing 123, i like chicken nuggets, not 3 +url = https://repo.yerba.arslaancodes.com/core/files/pkgname-1.2.3.mpk +deps = dep1 dep2 dep3 +maintainer = French Hacker +license = WTFPL ``` ## Database & Package Installation/Removal @@ -119,3 +122,5 @@ Removal of a package is simple: - `mbpk-upgrade `: upgrades the specified package - `mbpk-search `: searches repositories for a specified term - `mbpk-info `: shows metadata of a requested installed package + +Running these commands require superuser privileges or for the user to be in the `mbpk` group. Users that are in the `mbpk` group will be able to run `mbpk` commands without superuser access. For this reason all `mbpk-*` wrapper binaries will be setuid. -- cgit v1.2.3