From ed78991edc4755c0276dcb4eb454b43fa38296fc Mon Sep 17 00:00:00 2001 From: dacctal Date: Fri, 3 Apr 2026 14:56:05 +0000 Subject: countless changes --- README.md | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 168 insertions(+), 7 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 68894c3..97812f1 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,174 @@ +
+ + ![logo](./assets/logo.png) + +*(package it!)* + +
+ +# What is this? +pkgit is an unconventional package manager designed to compile & install packages directly from their git repository. + +> ***[DISCLAIMER]*** +> +> Due to the nature of pkgit, you are solely responsible for vetting the repos that you add to your system. +> +> Use at your own risk. + # Compile pkgit Enter the project directory, and follow one of the following procedures. -## Using Muon + +## Using Make ``` -muon setup build -muon build build +make ``` -## Using Meson + +## Using bldit ``` -meson setup build -ninja -C build +./bldit ``` -Both methods will put the executable for pkgit into the `build` directory. +Both methods will create an executable in the root directory of the project. + +# Install pkgit +After compiling, run the following with root privilages: +``` +make install +``` + +# Usage +## Installing Packages +### Basic install +Assuming you have already added its respective repo, you can install a package by specifying its name: +``` +pkgit install [pkg_name] +``` +Or you can use the short command: +``` +pkgit i [pkg_name] +``` + +If you want to specify a version other than the latest, you can use `--tag:` or `-t:`: +``` +pkgit install [pkg_name] --tag:[tag] +``` + +### Repo install +If you haven't added the package's repository yet, or you just want to be specific, you can install the package using its git URL: +``` +pkgit install [url.git] +``` + +Installing specific versions works the same as with the package name: +``` +pkgit install [url.git] --tag:[tag] +``` + +### List install +If you have multiple packages you want to install at once, you have a couple options. +1. The one-liner: +``` +pkgit install [pkg1Name] [pkg2Name] --tag:[tag] [url1.git] [url2.git] --tag:[tag] +``` +2. The package list: + - Create a file with all the packages you want to install. The following is that file's syntax: + ``` + [pkg_name] + [pkg_name] [tag] + [url.git] + [url.git] [tag] + ``` + - Run the install command with `--list:` or `-l:`: + ``` + pkgit install --list:[filename] + ``` + +## Removal +### Packages +Removing (uninstalling) a package is as simple as it seems: +``` +pkgit remove [pkg_name] +``` +Or the short command: +``` +pkgit r [pkg_name] +``` + +### Repositories +Removing a repository is also relatively simple. Run the following command: +``` +pkgit remove --repo:[pkg_name] +``` +It will then prompt you with every URL in your repo that matches this package's name. Select the index of the one you want to remove. + +## Dependency Management +As it is, pkgit is capable of dependency management, but you will likely have to determine the dependency URLs for each package you install (`/etc/pkgit/deps/[pkg-name].pkgdeps`). There's not a universal way to check for dependencies without using an existing package manager (unless the repo you're installing has a pkgdeps file). + +### [USER]: Creating a .pkgdeps file +Thankfully, this is a very simple process. + +For each dependency, all you need to do in the .pkgdeps file is paste the dependency's remote git URL in its own line. + +Here's an example for `/etc/pkgit/deps/mush.pkgdeps`: +``` +https://github.com/mpv-player/mpv +https://github.com/yt-dlp/yt-dlp +https://github.com/FFmpeg/FFmpeg +https://github.com/curl/curl +https://github.com/quodlibet/mutagen +``` + +That's it! pkgit will read from this file and resolve these dependencies automatically. + +### [DEVELOPER]: Pkgdeps in your package +If you want your own package's dependencies to be resolved in pkgit, you can create a `pkgdeps` file in the root directory of your project's git repo. + +Do not name it anything other than `pkgdeps`, or pkgit will not find the file. + +The syntax displayed above applies to this file. + +> [!WARNING] +> Recursive dependency management does NOT work in pkgit, so you may want to list your dependencies accordingly. + +## Custom Compile Instructions - bldit +The bldit file is a very basic shell script, and is meant exclusively to COMPILE the program. + +NOT to install the program. + +Creating a custom bldit file is useful for those comfortable with going through compile steps manually. + +The file is stored in `/etc/pkgit/bldit/` and is named after the package exactly (all lowercase). + +It is also a very simple process to create a bldit file. A great example of a bldit file +is right here in the pkgit repository: +``` +make +``` +Basically, this contains the steps to compile the program. + +### [USER]: Creating a bldit file +If you wanted to create your own custom bldit file for pkgit, +you would make a file: `/etc/pkgit/bldit/pkgit` and create your own bldit script in there. + +### [DEVELOPER]: Bldit in your package +If your package doesn't build correctly using pkgit, you can create a `bldit` file in the root directory of your project's repo. + +Do not name it anything other than `bldit`, or pkgit will not find the file. + +The syntax displayed above applies to this file. + +## Custom Repositories +A custom repository is as simple to create as a `pkgdeps` file. + +All you need is URLs separated by new lines. Each URL must correspond to a remote git repository of a package. + +The file name doesn't matter in this case, because you will add this repository by running: +`pkgit a [filename]` + +You can also add repositories from a URL by running: +`pkgit a [URL]` +> [!NOTE] +> This only works if the URL leads to the RAW file. + +From here, pkgit will add all the URLs into its own local repository in `/usr/pkgit/repos/repos`. + +Because of this simplistic format, you can easily create and share repositories on your own, or using existing larger repos like the AUR and GURU repos. -- cgit v1.2.3