From 2269f448edfbe3cdd78598d0b138f170ca51bb80 Mon Sep 17 00:00:00 2001 From: ngn Date: Wed, 21 Aug 2024 03:53:10 +0300 Subject: [PATCH] update: small wiki fixes and minor tweaks --- .gitea/pull_request_template/new_config.yaml | 2 +- .gitea/pull_request_template/new_wiki.yaml | 2 +- configs.md | 2 +- index.md | 13 ++-- wiki/{other => contribute}/bugs.json | 0 wiki/{other => contribute}/bugs.md | 0 wiki/{other => contribute}/chat.json | 0 wiki/{other => contribute}/chat.md | 0 wiki/{other => contribute}/conduct.json | 0 wiki/{other => contribute}/conduct.md | 0 wiki/{other => contribute}/contribute.json | 0 wiki/{other => contribute}/contribute.md | 0 wiki/main.md | 28 ++++--- wiki/other/licensing.md | 4 +- wiki/{pkg => other}/releases.json | 0 wiki/{pkg => other}/releases.md | 25 ++++--- wiki/{pkg => package}/create.json | 0 wiki/{pkg => package}/create.md | 79 +++++++++++++------- wiki/{pkg => package}/packages.json | 0 wiki/{pkg => package}/packages.md | 0 wiki/pkg/mptp.json | 6 -- wiki/pkg/mptp.md | 1 - wiki/{pkg => pools}/mirrors.json | 0 wiki/{pkg => pools}/mirrors.md | 22 +++--- wiki/{pkg => pools}/pool_guides.json | 0 wiki/{pkg => pools}/pool_guides.md | 12 ++- wiki/{pkg => pools}/pools.json | 0 wiki/{pkg => pools}/pools.md | 50 ++++++++++--- wiki/{pkg => tools}/confer.json | 0 wiki/{pkg => tools}/confer.md | 13 ++-- wiki/{pkg => tools}/libmp.json | 0 wiki/{pkg => tools}/libmp.md | 0 wiki/{pkg => tools}/matt.json | 0 wiki/{pkg => tools}/matt.md | 12 ++- 34 files changed, 168 insertions(+), 103 deletions(-) rename wiki/{other => contribute}/bugs.json (100%) rename wiki/{other => contribute}/bugs.md (100%) rename wiki/{other => contribute}/chat.json (100%) rename wiki/{other => contribute}/chat.md (100%) rename wiki/{other => contribute}/conduct.json (100%) rename wiki/{other => contribute}/conduct.md (100%) rename wiki/{other => contribute}/contribute.json (100%) rename wiki/{other => contribute}/contribute.md (100%) rename wiki/{pkg => other}/releases.json (100%) rename wiki/{pkg => other}/releases.md (78%) rename wiki/{pkg => package}/create.json (100%) rename wiki/{pkg => package}/create.md (77%) rename wiki/{pkg => package}/packages.json (100%) rename wiki/{pkg => package}/packages.md (100%) delete mode 100644 wiki/pkg/mptp.json delete mode 100644 wiki/pkg/mptp.md rename wiki/{pkg => pools}/mirrors.json (100%) rename wiki/{pkg => pools}/mirrors.md (57%) rename wiki/{pkg => pools}/pool_guides.json (100%) rename wiki/{pkg => pools}/pool_guides.md (82%) rename wiki/{pkg => pools}/pools.json (100%) rename wiki/{pkg => pools}/pools.md (67%) rename wiki/{pkg => tools}/confer.json (100%) rename wiki/{pkg => tools}/confer.md (90%) rename wiki/{pkg => tools}/libmp.json (100%) rename wiki/{pkg => tools}/libmp.md (100%) rename wiki/{pkg => tools}/matt.json (100%) rename wiki/{pkg => tools}/matt.md (90%) diff --git a/.gitea/pull_request_template/new_config.yaml b/.gitea/pull_request_template/new_config.yaml index 83afef2..fde095a 100644 --- a/.gitea/pull_request_template/new_config.yaml +++ b/.gitea/pull_request_template/new_config.yaml @@ -14,7 +14,7 @@ body: id: extra attributes: label: Extra - description: Any extra thing you want to say + description: Anything you want to add validations: required: false - type: checkboxes diff --git a/.gitea/pull_request_template/new_wiki.yaml b/.gitea/pull_request_template/new_wiki.yaml index 06cfb85..eb16030 100644 --- a/.gitea/pull_request_template/new_wiki.yaml +++ b/.gitea/pull_request_template/new_wiki.yaml @@ -21,7 +21,7 @@ body: id: extra attributes: label: Extra - description: Any extra thing you want to say + description: Anything you want to add validations: required: false - type: checkboxes diff --git a/configs.md b/configs.md index eb38347..860aa08 100644 --- a/configs.md +++ b/configs.md @@ -1,3 +1,3 @@ List of configuration packages (dotfiles) for MatterLinux. These simple configurations allow you to easily set up your desktop and they create a baseline for all of your own configurations. You can install these configurations -using the `mc` tool. [Learn more](/wiki/mc). +using the `confer` tool. [Learn more](/wiki/confer). diff --git a/index.md b/index.md index 07871b9..079cec0 100644 --- a/index.md +++ b/index.md @@ -1,7 +1,7 @@ ## Details MatterLinux is a tiny, independent, [free/libre](https://www.gnu.org/philosophy/free-sw.html) and [open source](https://opensource.com/resources/what-open-source) GNU/Linux distribution -for `x86_64` (or `amd64`) systems. It has its own package management system and its own package repos. +for `x86_64` (or `amd64`) systems. It has its own package management system and its own package pools. All source code for MatterLinux is licensed under GPLv3 and available on the [MatterLinux Gitea](https://git.matterlinux.xyz/Matter). @@ -14,15 +14,16 @@ contributors. If you are interested you can follow the development of the projec here is a rough roadmap: diff --git a/wiki/other/bugs.json b/wiki/contribute/bugs.json similarity index 100% rename from wiki/other/bugs.json rename to wiki/contribute/bugs.json diff --git a/wiki/other/bugs.md b/wiki/contribute/bugs.md similarity index 100% rename from wiki/other/bugs.md rename to wiki/contribute/bugs.md diff --git a/wiki/other/chat.json b/wiki/contribute/chat.json similarity index 100% rename from wiki/other/chat.json rename to wiki/contribute/chat.json diff --git a/wiki/other/chat.md b/wiki/contribute/chat.md similarity index 100% rename from wiki/other/chat.md rename to wiki/contribute/chat.md diff --git a/wiki/other/conduct.json b/wiki/contribute/conduct.json similarity index 100% rename from wiki/other/conduct.json rename to wiki/contribute/conduct.json diff --git a/wiki/other/conduct.md b/wiki/contribute/conduct.md similarity index 100% rename from wiki/other/conduct.md rename to wiki/contribute/conduct.md diff --git a/wiki/other/contribute.json b/wiki/contribute/contribute.json similarity index 100% rename from wiki/other/contribute.json rename to wiki/contribute/contribute.json diff --git a/wiki/other/contribute.md b/wiki/contribute/contribute.md similarity index 100% rename from wiki/other/contribute.md rename to wiki/contribute/contribute.md diff --git a/wiki/main.md b/wiki/main.md index c638cc3..b574696 100644 --- a/wiki/main.md +++ b/wiki/main.md @@ -6,7 +6,6 @@ edit a page or create a new page, make a [pull request](/wiki/contribute) to [co > Due to ongoing package system rework, the `Packaging` section is currently in a messy state > and may contain misinformation or missing links, [please see this post](/news/important_update). - ## Installation | Name | Description | | --------------------------------------- | ----------------------------------------------- | @@ -14,24 +13,33 @@ edit a page or create a new page, make a [pull request](/wiki/contribute) to [co | [Installation](/wiki/install) | Learn how to install a base MatterLinux system | | [Post-installation](/wiki/post_install) | Make your system (somewhat) usable | +## Tools/libraries +| Name | Description | +| --------------------------------------------- | ------------------------------------------------------------------------------ | +| [Working with matt](/wiki/matt) | Learn how to manage packages with MatterLinux package manager (`matt`) | +| [Working with libmp](/wiki/libmp) | Learn how to use the MatterLinux package library (`libmp`) | +| [Working with confer](/wiki/confer) | Learn how to manage your configs MatterLinux configuration manager (`confer`) | + ## Packaging | Name | Description | | --------------------------------------------- | ------------------------------------------------------------------------------ | -| [Releases](/wiki/releases) | Learn about MatterLinux release cycle | | [Packages](/wiki/packages) | Learn about MatterLinux packages | +| [Creating packages](/wiki/create) | Learn how you can create and add a package to the official pools | + +## Pools +| Name | Description | +| --------------------------------------------- | ------------------------------------------------------------------------------ | | [Pools](/wiki/pools) | Learn about MatterLinux package pools | | [Mirrors](/wiki/mirrors) | Discover pool mirros and learn how you can setup your own | | [Pool guidelines](/wiki/pool_guides) | Package guidelines for the official pools | -| [Creating packages](/wiki/create) | Learn how you can create and add a package to the official pools | -| [Working with matt](/wiki/matt) | Learn how to manage packages with MatterLinux package manager (`matt`) | -| [Working with libmp](/wiki/libmp) | Learn how to use the MatterLinux package library (`libmp`) | -| [Understanding MPTP](/wiki/mptp) | Learn about MatterLinux package transfer protocol (MPTP) | -| [Working with confer](/wiki/confer) | Learn how to manage your configs MatterLinux configuration manager (`confer`) | + +## Contribute +| [Chat](/wiki/chat) | Learn how you can contact developers and contributers | +| [Contributing](/wiki/contribute) | Learn how you can contribute to MatterLinux | +| [Bugs](/wiki/bugs) | Learn how you can report bugs/issues | ## Other | Name | Description | | -------------------------------- | ------------------------------------------------------- | -| [Chat](/wiki/chat) | Learn how you can contact developers and contributers | -| [Contributing](/wiki/contribute) | Learn how you can contribute to MatterLinux | -| [Bugs](/wiki/bugs) | Learn how you can report bugs/issues | +| [Releases](/wiki/releases) | Learn about MatterLinux release cycle | | [Licensing](/wiki/licensing) | Licensing for the MatterLinux repositories and software | diff --git a/wiki/other/licensing.md b/wiki/other/licensing.md index 20efaee..7463391 100644 --- a/wiki/other/licensing.md +++ b/wiki/other/licensing.md @@ -2,10 +2,10 @@ All of the MatterLinux software and the tools are available on [MatterLinux Git Server](https://git.matterlinux.xyz) and they are licensed under [GNU General Public License Version 3](https://www.gnu.org/licenses/gpl-3.0.en.html). -A copy of this license can be found in every repository, in the `LICENSE.txt` file. +A copy of this license can be found in every git repository, in the `LICENSE.txt` file. MatterLinux software and the tools are distributed as [free/libre](https://www.gnu.org/philosophy/free-sw.en.html) and -[open source](https://opensource.com/resources/what-open-source) software. This means anybody can: +[open source](https://opensource.com/resources/what-open-source) software. This means anybody can freely: - Use MatterLinux software and tools - Distribute copies of MatterLinux software and tools diff --git a/wiki/pkg/releases.json b/wiki/other/releases.json similarity index 100% rename from wiki/pkg/releases.json rename to wiki/other/releases.json diff --git a/wiki/pkg/releases.md b/wiki/other/releases.md similarity index 78% rename from wiki/pkg/releases.md rename to wiki/other/releases.md index 07a80a6..822559a 100644 --- a/wiki/pkg/releases.md +++ b/wiki/other/releases.md @@ -7,13 +7,15 @@ then you get a new release. So its expected to have a release or once a month. ### Package updates MatterLinux follows a slow rolling release cycle for all the packages. Packages update every -once in a while, generally to fix security issues. Packages get tested on a development repo, -[next.matterlinux.xyz](https://next.matterlinux.xyz) before they get pushed into the main repos. +once in a while, generally to fix security issues. Packages get tested on a development pool, +[next.matterlinux.xyz](https://next.matterlinux.xyz) before they get pushed into the main pools. This way we can maintain a stable experience. ### ISOs and release archives -- ISO: A bootable disk image -- Release Archive: An archive used during the installation of a release +With each release, project releases two new files, an **ISO** and a **Release Archive**: + +- **ISO**: A bootable disk image +- **Release Archive**: An archive used during the installation of a release With new release, a new ISO and a release archive will be published. This way the packages in these ISO and archive files will always be up-to-date. @@ -27,17 +29,18 @@ out the `/etc/os-release` file: ## Version numbering MatterLinux and all it's projects are version numbered after the year. -For example MatterLinux release for the year 2024 is versioned "MatterLinux 24". +For example MatterLinux release for the year 2024 is versioned "*MatterLinux 24*". Minor numbers may be added for other releases. For example the 2nd release of the -MatterLinux 24 ISO would be named "MatterLinux 24.01". +MatterLinux 24 ISO would be named "*MatterLinux 24.01*". Similarly 15th release of the MatterLinux package manager for the year 2024 -is versioned "24.14". +is versioned "*24.14*". ## Building releases -You can build an up-to-date ISO and a release archives using [MatterLinux tools](https://git.matterlinux.xyz/matter/tools). -These tools also can be installed with the `tools` package. +You can build an up-to-date ISO and a release archives using [`mtsc`](https://git.matterlinux.xyz/matter/mtsc). +`mtsc` can be found the in the [`base` pool](/wiki/pools), and can be installed using +the [package manager](/wiki/matt). > **Important** > @@ -63,8 +66,8 @@ directory to this tool, you can create an ISO image. As the configuration directory, you can clone the [official ISO configuration](https://git.matterlinux.xyz/Matter/iso). Or you can use your own custom configuration. -To build the ISO with the release archive that we created on the previous example, using the configuration directory -located at `./iso`: +To build the ISO with the release archive that we created on the previous example, using the configuration +directory located at `./iso`: ``` # matter-iso matterlinux_example-build.tar.gz iso ``` diff --git a/wiki/pkg/create.json b/wiki/package/create.json similarity index 100% rename from wiki/pkg/create.json rename to wiki/package/create.json diff --git a/wiki/pkg/create.md b/wiki/package/create.md similarity index 77% rename from wiki/pkg/create.md rename to wiki/package/create.md index b951758..e5058b8 100644 --- a/wiki/pkg/create.md +++ b/wiki/package/create.md @@ -11,34 +11,42 @@ MatterLinux package for the official pools. ## Getting started If you want to add your package to the official pools, then please check the [official pool guidelines](/wiki/pool_guides). Make sure -that your package follows the guidelines or your pull request maybe +that your package follows the guidelines or your pull request may be rejected. -Also create an account on Gitea server and configure your editor +Also, create an account on Gitea server and configure your editor as specified in the [contribution guide](/wiki/contribute). +## Install requirements +To follow this tutorial you will need a working MatterLinux installation +(minimum version 24.05). You also need to install the following packages +from the [`base` pool](/wiki/pools): + +- an editor (`vim` and `nano` is avaliable on the `base` pool) +- build-essential +- [mtsc](https://git.matterlinux.xyz/matter/mtsc) +- git + ## Selecting a pool If you want to add a new package to the official pools, you should -first choose the pool you want to add the package to. If you are -packaging a software that is fundamental to the OS, such as a kernel, -or a C library, you should add your package to the `base` pool. - -If the software is mainly targeted for server use, you should add the package -to the `server` pool. - -If none of these is the case then you should add the package to the `desktop` -pool. +first choose the pool you want to add the package to. You should check +the [list of official pools](/wiki/pools), and figure out which pool +your package belongs to. ## Fork the pool After selecting the pool, fork it on Gitea and clone it to MatterLinux system: ``` -$ git clone +$ git clone +``` +Create a new branch for your package: +``` +$ git branch -m new-package ``` -## Install requirements To build and create packages, you should install the `build-essential` package from the -`base` pool. This package will provide you with all the scripts and the tools required. +[`base` pool](/wiki/pools). This package will provide you with all the base tools +required, such as the GNU C compiler. You will also need ## Create the package template Change directory into the `src` folder of the pool you cloned, and use the `mp-new` @@ -65,7 +73,7 @@ $ mp-new lxterminal_0.4.0 ``` ## Modify the package script -`mp-temp` will create a directory for the new package, which will contain a `pkg.sh` script. +`mp-new` will create a directory for the new package, named after the package, which will contain a `pkg.sh` script. This script is called the **package script**. Open this script with the configured editor: ``` # general info @@ -191,7 +199,7 @@ HASHES=("7938dbd50e3826c11f4735a742b278d3") # install and build depends DEPENDS=("vte") -BUILD=() +BUILD=("intltool") PACKAGE() { tar xf "${NAME}-${VERSION}.tar.xz" @@ -213,33 +221,54 @@ When you are done, format the package script following these rules: - Prevent using `&&` unless it's absolutely necessary, it usually ends up messing the error checking - Split unrelated instructions with a newline +You can use the `mp-check` script to automatically check for some of these issues: +``` +$ mp-check lxterminal +``` + ## Building the package To build the newly created package, run the following in the `src` directory: ``` -$ mp-build --no-sign +$ mp-build --no-sign lxterminal ``` This will install all the required dependencies, and only build the specified package. ## Testing the package -When the package is built, check out the newly created root directory inside the package directory -to make sure that everything is placed where it should be: +When build is completed, you will have a new `.mpf` package archive in the `dist` directory +of the package directory. You can check this archive for any potential issues using `mp-check` +again: ``` -$ tree /root +$ mp-check lxterminal/dist/lxterminal_0.4.0.mpf +``` +After fixing any potential issues and warnings, you can install your newly created package using +the [package manager](/wiki/matt) and test it out: +``` +# matt install --yes lxterminal/dist/lxterminal_0.4.0.mpf +$ lxterminal ``` -## Staging and commit your changes +## Stage and commit your changes After making sure that the package is working as intended, go back to the root of the pool source directory, -and use `git add .` to stage all the changes. Then use `git commit -m ` to commit them. For the +and use `git add .` to stage all the changes. Then use `git commit -m ` command to commit them. For the commit message, follow the guidelines on the [contribution page](/wiki/contribute). For our example, the following message should be fine: ``` -$ git commit -m "new: add lxterminal package" +$ git commit -m "new: lxterminal package" ``` -Then push your changes: +Then push your branch to the remote: ``` -$ git push -u origin main +$ git push -u origin new-package ``` ## Creating a pull request Back on the Gitea, create a pull request to the official repository. Provide information about the package you added, and explain why you think its important to include this package. + +Please patiently wait for a response from the maintainer(s) after creating your pull request, +if find out any problems with your package after creating the pull request, fix them and make more commits +to your new branch, they should automatically be added to the pull request. + +## You are done! +If you follow every step correctly your pull request will be merged. After the merge, your package will +be added to the [development (next) pools](/wiki/pools) and after some testing it will make it's way to +the stable pools. diff --git a/wiki/pkg/packages.json b/wiki/package/packages.json similarity index 100% rename from wiki/pkg/packages.json rename to wiki/package/packages.json diff --git a/wiki/pkg/packages.md b/wiki/package/packages.md similarity index 100% rename from wiki/pkg/packages.md rename to wiki/package/packages.md diff --git a/wiki/pkg/mptp.json b/wiki/pkg/mptp.json deleted file mode 100644 index c3b9f13..0000000 --- a/wiki/pkg/mptp.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "id": "mptp", - "title": "Working with mptp", - "author": "ngn", - "date": "14/08/24" -} diff --git a/wiki/pkg/mptp.md b/wiki/pkg/mptp.md deleted file mode 100644 index 5c1562d..0000000 --- a/wiki/pkg/mptp.md +++ /dev/null @@ -1 +0,0 @@ -This page is currently under development. diff --git a/wiki/pkg/mirrors.json b/wiki/pools/mirrors.json similarity index 100% rename from wiki/pkg/mirrors.json rename to wiki/pools/mirrors.json diff --git a/wiki/pkg/mirrors.md b/wiki/pools/mirrors.md similarity index 57% rename from wiki/pkg/mirrors.md rename to wiki/pools/mirrors.md index 68456ac..23b9248 100644 --- a/wiki/pkg/mirrors.md +++ b/wiki/pools/mirrors.md @@ -6,14 +6,14 @@ configuration file (`/etc/matt/config.ini`). ### Creating a mirror To create a mirror you can use the [`mirp` tool](https://git.matterlinux.xyz/matter/mirp). -This package can be installed from the `server` pool. +This package can be installed from the [`server` pool](/wiki/pools). After installing `mirp`, specify an URL and an output directory (files will be downloaded -into the output directory). For example to mirror the `base` pool from `https://pkgs.matterlinux.xyz/base` +into the output directory). For example to mirror the `base` pool from `https://stable.matterlinux.xyz/base` to `base_mirror` directory: ``` $ mkdir base_mirror -$ mirp mptp://pkgs.matterlinux.xyz/base base_mirror +$ mirp mptp://stable.matterlinux.xyz/base base_mirror ``` To serve the mirror, you can setup [`pooler`](https://git.matterlinux.xyz/matter/pooler). @@ -38,14 +38,14 @@ that you can use. To add your mirror to this list get in contact with the mainta > from the list. ### Official pools -| Pool | MPTP | HTTP(S) | Location | -| -------------- | ---------------------------------------- | ----------------------------------------- | ----------- | -| base | `mptp://stable.matterlinux.xyz/base` | `https://stable.matterlinux.xyz/base` | 🇹🇷 Turkey | -| desktop | `mptp://stable.matterlinux.xyz/desktop` | `https://stable.matterlinux.xyz/desktop` | 🇹🇷 Turkey | -| server | `mptp://stable.matterlinux.xyz/server` | `https://stable.matterlinux.xyz/server` | 🇹🇷 Turkey | -| base (next) | `mptp://next.matterlinux.xyz/base` | `https://next.matterlinux.xyz/base` | 🇹🇷 Turkey | -| desktop (next) | `mptp://next.matterlinux.xyz/desktop` | `https://next.matterlinux.xyz/desktop` | 🇹🇷 Turkey | -| server (next) | `mptp://next.matterlinux.xyz/server` | `https://next.matterlinux.xyz/server` | 🇹🇷 Turkey | +| Pool | MPTP | HTTP(S) | Location | +| ---------------- | ---------------------------------------- | ----------------------------------------- | ----------- | +| base (stable) | `mptp://stable.matterlinux.xyz/base` | `https://stable.matterlinux.xyz/base` | 🇹🇷 Turkey | +| desktop (stable) | `mptp://stable.matterlinux.xyz/desktop` | `https://stable.matterlinux.xyz/desktop` | 🇹🇷 Turkey | +| server (stable) | `mptp://stable.matterlinux.xyz/server` | `https://stable.matterlinux.xyz/server` | 🇹🇷 Turkey | +| base (next) | `mptp://next.matterlinux.xyz/base` | `https://next.matterlinux.xyz/base` | 🇹🇷 Turkey | +| desktop (next) | `mptp://next.matterlinux.xyz/desktop` | `https://next.matterlinux.xyz/desktop` | 🇹🇷 Turkey | +| server (next) | `mptp://next.matterlinux.xyz/server` | `https://next.matterlinux.xyz/server` | 🇹🇷 Turkey | ### Mirrors Currently there are no available mirrors. diff --git a/wiki/pkg/pool_guides.json b/wiki/pools/pool_guides.json similarity index 100% rename from wiki/pkg/pool_guides.json rename to wiki/pools/pool_guides.json diff --git a/wiki/pkg/pool_guides.md b/wiki/pools/pool_guides.md similarity index 82% rename from wiki/pkg/pool_guides.md rename to wiki/pools/pool_guides.md index 3af2eb2..8b79afd 100644 --- a/wiki/pkg/pool_guides.md +++ b/wiki/pools/pool_guides.md @@ -3,18 +3,22 @@ Packages in the official MatterLinux pools (should) follow these guidelines: - **Packaged software should be free or/and open source**: Proprietary software won't be included to the pools. No exceptions. If you find a proprietary software package in the official pools, please create an issue or a pull request on the related Git repository to remove the package. +We also prioritize free/libre software over open source software. + - **Packaged software should be stable**: Software known to be unstable will not packaged, if the stability is related to the version of the software, we may package a different/patched version of the software. + - **Packaged software should be secure**: Outdated software that has critical vulnerabilities will not be packaged. + - **Packaged software should be (somewhat) popular**: No, we are not gonna package some random window manager that only has 3 users and was last updated in 1993. -The following software packages will **NOT** be added, so do not waste your time with PRs or issues: +The following software packages will **NOT** be added, so do not waste your time with pull requests or issues: - DWM or other Suckless tools that are configured using header files -- Any Wayland only window managers ("compositors"), status bars, terminals etc. We only have Weston which used for testing the Wayland environment +- Any Wayland only window managers ("compositors"), status bars, terminals etc. We only have weston which used for testing the Wayland environment - Other init systems (`dinit`, `runit` etc.) -- Non-libre kernel +- Non-libre Linux kernel - Other third-party package managers (apt, dnf, pacman etc.), however containerized package managers can -be packaged (except for snap, f*%#! snap) +be packaged, except for snap (I don't like snap) diff --git a/wiki/pkg/pools.json b/wiki/pools/pools.json similarity index 100% rename from wiki/pkg/pools.json rename to wiki/pools/pools.json diff --git a/wiki/pkg/pools.md b/wiki/pools/pools.md similarity index 67% rename from wiki/pkg/pools.md rename to wiki/pools/pools.md index 12786fe..2b4b3ff 100644 --- a/wiki/pkg/pools.md +++ b/wiki/pools/pools.md @@ -1,5 +1,34 @@ On this page, you will find information about MatterLinux package pools. +# List +Here is a list of all the official MatterLinux software package pools, you can +find URL(s) for these pools in the [mirrors page](/wiki/mirrors). + +# Base +- **Name**: base +- **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D` +- **Maintainer**: ngn | [Email](mailto:ngn@ngn.tf) [PGP](https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0xF9E70878C2FB389AEC2BA34CA3654DF5AD9F641D) + +Contains software packages for the core system (for example `glibc`, `grub`), +so you need these packages in order to have a bootable system, however the base +pool alone won't get you further from a simple installation. + +# Desktop +- **Name**: desktop +- **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D` +- **Maintainer**: ngn | [Email](mailto:ngn@ngn.tf) [PGP](https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0xF9E70878C2FB389AEC2BA34CA3654DF5AD9F641D) + +Contains software packages for your desktop needs (for example `xorg`, `xfce4`), +however they are not necessarily needed for a simple installation. + +# Server +- **Name**: desktop +- **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D` +- **Maintainer**: ngn | [Email](mailto:ngn@ngn.tf) [PGP](https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0xF9E70878C2FB389AEC2BA34CA3654DF5AD9F641D) + +Contains software packages for your server needs (for example `apache`, `nginx`), +similar to the `desktop` pool, you do not necessarily need these for a simple installation. + # Structure A pool contains: @@ -97,39 +126,38 @@ These pools can provide packages for users, these packages can be managed using ### Building an already existing pool To build an already existing pool, such as the `base` or the `desktop` pool, first you will need to -download the pool's source. Source for the `base` and the `desktop` pool can be found on [MatterLinux Git Server](https://git.matterlinux.xyz/matter). +download the pool's source. Source for the `base`, `desktop` and `server` pool can be found on [MatterLinux Git Server](https://git.matterlinux.xyz/matter). After downloading the pool source, you will need to install the `mp-pool` tool, which is the tool -used for building MatterLinux pools. To do so please follow the steps [here](https://git.matterlinux.xyz/Matter/mp-pool#installation). +used for building MatterLinux pools. To do so please you can simply install the [`mtsc`](https://git.matterlinux.xyz/matter/mtsc) +package from the `base` pool. Finally to build the pool: ``` $ mp-pool ``` -You will mostly likely want to disable package signing though, as you are probably not the -owner of the pool: +You will mostly likely want to disable package signing though, as you are probably don't have the +PGP keys for the official pools: ``` $ mp-pool --no-sign ``` ### Hosting pools -Unlike most of the package managers, `mp` does not use HTTP, FTP or RSYNC to communicate with the pools. It has it's own -custom protocol named [MPTP](/wiki/mptp). Pools are hosted over this protocol using [pooler](https://git.matterlinux.xyz/matter/pooler). +Unlike most of the package managers, `matt` does not use HTTP, FTP or RSYNC to communicate with the pools. It has it's own +custom protocol named [MPTP](/wiki/libmp). Pools are hosted over this protocol using [pooler](https://git.matterlinux.xyz/matter/pooler). -To get host a pool using `pooler`, download and install the `pooler` by following the instructions on the [README](https://git.matterlinux.xyz/matter/pooler). It's also in the official pools so you can install it with `matt` as well. +To host a pool using `pooler`, download and install the `pooler` by following the instructions on the [README](https://git.matterlinux.xyz/matter/pooler). It's also in the `server` pool so you can install it with `matt` as well. After installing it, you'll need to create/edit the configuration file (`/etc/pooler/config.ini`). Here is an example configuration file: ``` -# location for the pooler log file -log = /var/log/pooler.log - # address to host the MPTP server on addr = 0.0.0.0:5858 # pool name [my-pool] + # pool directory dir = /srv/my-pool @@ -141,7 +169,7 @@ After editing this configuration for your needs, you can run pooler with the con $ pooler /etc/pooler/config.ini ``` After running this command, pooler should start hosting your pool over MPTP on port 5858. If you experience -any issues, you should check the log file for any errors. +any issues, you should check the error logs. ### Creating a new pool If you want to create an unofficial pool, setup the directory structure for the source pool as diff --git a/wiki/pkg/confer.json b/wiki/tools/confer.json similarity index 100% rename from wiki/pkg/confer.json rename to wiki/tools/confer.json diff --git a/wiki/pkg/confer.md b/wiki/tools/confer.md similarity index 90% rename from wiki/pkg/confer.md rename to wiki/tools/confer.md index 9e62a6b..5a54c66 100644 --- a/wiki/pkg/confer.md +++ b/wiki/tools/confer.md @@ -2,13 +2,13 @@ On this page you will learn how you can use MatterLinux configuration manager. # MatterLinux configuration manager `confer` is a simple program that allows you to easily install and package your configurations, also -known as "dot files". +known as "dotfiles". ### Installation -`confer` can be installed with `matt` (MatterLinux package manager), it's located in the desktop -pool: +`confer` can be installed with the [package manager](/wiki/matt), it's located in the [`desktop +pool](/wiki/pools): ``` -# matt install --yes mc +# matt install --yes confer ``` In order to run `confer` as a non-root user, you will need to [install and configure `doas` or `sudo`](/wiki/post_install). @@ -54,7 +54,7 @@ the repository's path After adding all the targets, run the `gen` command, specifying the local path to the git repository that contain the `confer.ini` file: ``` -$ confer gen /path/to/your/repo +$ confer gen /path/to/your/repository ``` `confer` will copy all the target files/directories from the `dst` to the `src`. When you are done, feel free to publish the git repository and share it. @@ -79,4 +79,5 @@ After the installation `confer` will install all the requirements using `matt`, ### Config Hub MatterLinux offers a simple [configuration hub](/hub), that you can use to find official configuration packages. -You can also add your own configuration to the config hub, just create a issue or a pull request in the [website content repository](https://git.matterlinux.xyz/Matter/content/issues). +You can also add your own configuration to the config hub, just create a issue or a pull request in the +[website content git repository](https://git.matterlinux.xyz/Matter/content/issues). diff --git a/wiki/pkg/libmp.json b/wiki/tools/libmp.json similarity index 100% rename from wiki/pkg/libmp.json rename to wiki/tools/libmp.json diff --git a/wiki/pkg/libmp.md b/wiki/tools/libmp.md similarity index 100% rename from wiki/pkg/libmp.md rename to wiki/tools/libmp.md diff --git a/wiki/pkg/matt.json b/wiki/tools/matt.json similarity index 100% rename from wiki/pkg/matt.json rename to wiki/tools/matt.json diff --git a/wiki/pkg/matt.md b/wiki/tools/matt.md similarity index 90% rename from wiki/pkg/matt.md rename to wiki/tools/matt.md index ae76418..31182a5 100644 --- a/wiki/pkg/matt.md +++ b/wiki/tools/matt.md @@ -3,7 +3,7 @@ On GNU/Linux systems, package management is usually done with a package manager. # MatterLinux Package Manager In a Matter system, package management is generally done with the MatterLinux Package Manager (`matt`). -`matt` lets you install, remove, update and search different MatterLinux packages across different pools. +`matt` lets you install, remove, update and search different MatterLinux packages across different [pools](/wiki/pools). ### Installation `matt` should be already installed on a MatterLinux system. However if you want to install `matt` from @@ -137,9 +137,7 @@ You can list all the installed packages with the `list` command: # Other package managers It's a really bad idea to use multiple package managers as they may conflict and may result in an -unstable system. However package managers such as flatpak and snap offer containerized packages, -making them possible to use with other package managers. - -- Flatpak will be added to `desktop` pool in the future. Currently the only way to use flatpak is to -install it from the source. -- Snap will never be added to any official pool, so only way to use it is to install it from the source. +unstable system. However package managers such as `flatpak` and `snap` offer containerized packages, +making them possible to use with other package managers. However currently none of these package +managers are available in the official pools. If you want to use them, you will need to install them +from the source.