fix: pool entry headers

This commit is contained in:
ngn 2024-08-26 14:38:33 +03:00
parent 0526bf9c0b
commit 6e8247b5f6

View File

@ -4,32 +4,32 @@ On this page, you will find information about MatterLinux package pools.
Here is a list of all the official MatterLinux software package pools, you can 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). find URL(s) for these pools in the [mirrors page](/wiki/mirrors).
# Base ### Base
- **Name**: base - **Name**: base
- **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D` - **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D`
- **Maintainer**: ngn | [Email](mailto:ngn@ngn.tf) [PGP](https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0xF9E70878C2FB389AEC2BA34CA3654DF5AD9F641D) - **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`), 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 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. pool alone won't get you further from a simple installation.
# Desktop ### Desktop
- **Name**: desktop - **Name**: desktop
- **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D` - **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D`
- **Maintainer**: ngn | [Email](mailto:ngn@ngn.tf) [PGP](https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0xF9E70878C2FB389AEC2BA34CA3654DF5AD9F641D) - **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`), Contains software packages for your desktop needs (for example `xorg`, `xfce4`),
however they are not necessarily needed for a simple installation. however they are not necessarily needed for a simple installation.
# Server ### Server
- **Name**: desktop - **Name**: desktop
- **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D` - **Signed with**: `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D`
- **Maintainer**: ngn | [Email](mailto:ngn@ngn.tf) [PGP](https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0xF9E70878C2FB389AEC2BA34CA3654DF5AD9F641D) - **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`), 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. similar to the `desktop` pool, you do not necessarily need these for a simple installation.
# Structure # Structure
A pool contains: A pool contains:
- [Packages](/wiki/packages) (`.mpf` files) - [Packages](/wiki/packages) (`.mpf` files)
@ -38,7 +38,7 @@ A pool contains:
- Package list file (`LIST`) - Package list file (`LIST`)
### Package files and signatures ### Package files and signatures
MatterLinux pools contain at least two packages. Each package also has a PGP signature MatterLinux pools contain at least two packages. Each package also has a PGP signature
that can be used to verify the package. These signatures belong to public key fingerprint that can be used to verify the package. These signatures belong to public key fingerprint
specified in the pool info file. specified in the pool info file.
@ -49,7 +49,7 @@ Pool info file contains information about the pool itself. This information incl
- Pool maintainer - Pool maintainer
- Pool public key (used for package signatures) - Pool public key (used for package signatures)
This info file can be found in the at the root of the pool. For example the pool info file This info file can be found in the at the root of the pool. For example the pool info file
for `https://pkgs.matterlinux.xyz/base` is located at `https://pkgs.matterlinux.xyz/base/INFO`. for `https://pkgs.matterlinux.xyz/base` is located at `https://pkgs.matterlinux.xyz/base/INFO`.
`.ini` format is used for this file. `.ini` format is used for this file.
@ -61,10 +61,10 @@ is located at `https://pkgs.matterlinux.xyz/base/LIST`.
This archive has the following structure: This archive has the following structure:
``` ```
list list
├── package-one_version ├── package-one_version
│ └── DATA │ └── DATA
├── package-two_version ├── package-two_version
│ └── DATA │ └── DATA
... ...
``` ```
The `DATA` file contains the information for that specific package and it's extracted from packages. The `DATA` file contains the information for that specific package and it's extracted from packages.
@ -72,7 +72,7 @@ To learn more about these please check out the page for [packages](/wiki/package
### Pool sources ### Pool sources
Source for a pool has a simple structure. It also contains all the source files for all the packages in Source for a pool has a simple structure. It also contains all the source files for all the packages in
that pool. For example lets take a look the structure of the [`base`](https://pkgs.matterlinux.xyz/base) that pool. For example lets take a look the structure of the [`base`](https://pkgs.matterlinux.xyz/base)
pool source: pool source:
``` ```
base base
@ -109,26 +109,26 @@ Let's break this down:
- `LICENSE.txt`: License used for the pool. **All the packages in the pool should use a license - `LICENSE.txt`: License used for the pool. **All the packages in the pool should use a license
compatible with this license.** compatible with this license.**
- `README.md`: README file. Contains a small description about the pool. - `README.md`: README file. Contains a small description about the pool.
- `pool.sh`: Pool script contains information about the pool, used to build the - `pool.sh`: Pool script contains information about the pool, used to build the
pool info file. pool info file.
- `src`: Contains package sources (package scripts, extra patches, configuration files etc.) - `src`: Contains package sources (package scripts, extra patches, configuration files etc.)
- `dist`: Contains the compiled (built) packages. - `dist`: Contains the compiled (built) packages.
- `sign-dist.sh`: An extra shell script that you can find in the official pools. It is just a - `sign-dist.sh`: An extra shell script that you can find in the official pools. It is just a
small script that is used to sign all the packages in the `dist` directory if they are built small script that is used to sign all the packages in the `dist` directory if they are built
without the signatures. without the signatures.
# Using different pools # Using different pools
MatterLinux releases offer 2 different pools, `base` and `desktop`. There are also development/testing MatterLinux releases offer 2 different pools, `base` and `desktop`. There are also development/testing
`base` and `desktop` pools (named "next"). URLs for these pools and the mirrors can be found at the [mirrors page](/wiki/mirrors). `base` and `desktop` pools (named "next"). URLs for these pools and the mirrors can be found at the [mirrors page](/wiki/mirrors).
These pools can provide packages for users, these packages can be managed using the These pools can provide packages for users, these packages can be managed using the
[MatterLinux package manager (`matt`)](/wiki/matt). [MatterLinux package manager (`matt`)](/wiki/matt).
### Building an already existing pool ### Building an already existing pool
To build an already existing pool, such as the `base` or the `desktop` pool, first you will need to 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`, `desktop` and `server` 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 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 you can simply install the [`mtsc`](https://git.matterlinux.xyz/matter/mtsc) 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. package from the `base` pool.
@ -137,7 +137,7 @@ Finally to build the pool:
$ mp-pool <pool dir> $ mp-pool <pool dir>
``` ```
You will mostly likely want to disable package signing though, as you are probably don't have the You will mostly likely want to disable package signing though, as you are probably don't have the
PGP keys for the official pools: PGP keys for the official pools:
``` ```
$ mp-pool --no-sign <pool dir> $ mp-pool --no-sign <pool dir>
@ -147,7 +147,7 @@ $ mp-pool --no-sign <pool dir>
Unlike most of the package managers, `matt` does not use HTTP, FTP or RSYNC to communicate with the pools. It has it's own 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). custom protocol named [MPTP](/wiki/libmp). Pools are hosted over this protocol using [pooler](https://git.matterlinux.xyz/matter/pooler).
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. 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`). After installing it, you'll need to create/edit the configuration file (`/etc/pooler/config.ini`).
Here is an example configuration file: Here is an example configuration file:
@ -171,9 +171,9 @@ $ pooler /etc/pooler/config.ini
After running this command, pooler should start hosting your pool over MPTP on port 5858. If you experience After running this command, pooler should start hosting your pool over MPTP on port 5858. If you experience
any issues, you should check the error logs. any issues, you should check the error logs.
### Creating a new pool ### Creating a new pool
If you want to create an unofficial pool, setup the directory structure for the source pool as If you want to create an unofficial pool, setup the directory structure for the source pool as
explained above. Then create a `pool.sh` script, you can copy one from the official pools and explained above. Then create a `pool.sh` script, you can copy one from the official pools and
edit it. edit it.
After adding your packages and building them with `mp-pool`, you can host it using pooler. After adding your packages and building them with `mp-pool`, you can host it using pooler.