update: small wiki fixes and minor tweaks
This commit is contained in:
6
wiki/pools/mirrors.json
Normal file
6
wiki/pools/mirrors.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"id": "mirrors",
|
||||
"title": "Mirrors",
|
||||
"author": "ngn",
|
||||
"date": "04/08/24"
|
||||
}
|
51
wiki/pools/mirrors.md
Normal file
51
wiki/pools/mirrors.md
Normal file
@ -0,0 +1,51 @@
|
||||
On this page, you will find information about MatterLinux package mirrors.
|
||||
|
||||
# Using different mirrors
|
||||
To use a mirror with `matt`, change the pool URL for the target pool in your `matt`
|
||||
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](/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://stable.matterlinux.xyz/base`
|
||||
to `base_mirror` directory:
|
||||
```
|
||||
$ mkdir base_mirror
|
||||
$ mirp mptp://stable.matterlinux.xyz/base base_mirror
|
||||
```
|
||||
|
||||
To serve the mirror, you can setup [`pooler`](https://git.matterlinux.xyz/matter/pooler).
|
||||
To learn more about `pooler`, see the [wiki page for pools](/wikş/pools.md).
|
||||
|
||||
You will mostly likely want to update your mirror every once in a while. To do so you can
|
||||
create a cron job. For example to update your mirror every day at 00:00, you can add the
|
||||
following entry to your `/etc/crontab`:
|
||||
```
|
||||
0 0 * * * <user> mirp <url> <output dir path>
|
||||
```
|
||||
|
||||
# Mirror lists
|
||||
This section contains information about different MatterLinux pools and mirros
|
||||
that you can use. To add your mirror to this list get in contact with the maintainer/developers.
|
||||
|
||||
> **Note**
|
||||
>
|
||||
> Official mirrors are **ALWAYS** signed with the `F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D`
|
||||
> fingerprint (belongs to the maintainer, ngn). If syncing with a mirror tells you otherwise, then
|
||||
> **DO NOT USE THAT MIRROR** and report it to the maintainer/developers in order to remove it
|
||||
> from the list.
|
||||
|
||||
### Official pools
|
||||
| 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.
|
6
wiki/pools/pool_guides.json
Normal file
6
wiki/pools/pool_guides.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"id": "pool_guides",
|
||||
"title": "Pool guidelines",
|
||||
"author": "ngn",
|
||||
"date": "19/06/24"
|
||||
}
|
24
wiki/pools/pool_guides.md
Normal file
24
wiki/pools/pool_guides.md
Normal file
@ -0,0 +1,24 @@
|
||||
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 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
|
||||
- Other init systems (`dinit`, `runit` etc.)
|
||||
- Non-libre Linux kernel
|
||||
- Other third-party package managers (apt, dnf, pacman etc.), however containerized package managers can
|
||||
be packaged, except for snap (I don't like snap)
|
6
wiki/pools/pools.json
Normal file
6
wiki/pools/pools.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"id": "pools",
|
||||
"title": "Pools",
|
||||
"author": "ngn",
|
||||
"date": "04/08/24"
|
||||
}
|
182
wiki/pools/pools.md
Normal file
182
wiki/pools/pools.md
Normal file
@ -0,0 +1,182 @@
|
||||
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:
|
||||
|
||||
- [Packages](/wiki/packages) (`.mpf` files)
|
||||
- Package signatures (`.mpf.sig` files)
|
||||
- Pool info file (`INFO`)
|
||||
- Package list file (`LIST`)
|
||||
|
||||
### Package files and signatures
|
||||
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
|
||||
specified in the pool info file.
|
||||
|
||||
### Pool info file
|
||||
Pool info file contains information about the pool itself. This information includes
|
||||
- Pool name
|
||||
- Pool size
|
||||
- Pool maintainer
|
||||
- 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
|
||||
for `https://pkgs.matterlinux.xyz/base` is located at `https://pkgs.matterlinux.xyz/base/INFO`.
|
||||
`.ini` format is used for this file.
|
||||
|
||||
### Package list file
|
||||
A list containing all the package information can be found in an archive file named `LIST`.
|
||||
This file is located at the root of the pool. For example the package list for `https://pkgs.matterlinux.xyz/base`
|
||||
is located at `https://pkgs.matterlinux.xyz/base/LIST`.
|
||||
|
||||
This archive has the following structure:
|
||||
```
|
||||
list
|
||||
├── package-one_version
|
||||
│ └── DATA
|
||||
├── package-two_version
|
||||
│ └── DATA
|
||||
...
|
||||
```
|
||||
The `DATA` file contains the information for that specific package and it's extracted from packages.
|
||||
To learn more about these please check out the page for [packages](/wiki/packages).
|
||||
|
||||
### Pool sources
|
||||
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)
|
||||
pool source:
|
||||
```
|
||||
base
|
||||
├── dist
|
||||
│ ├── acl_2.3.1.mpf
|
||||
│ ├── acl_2.3.1.mpf.sig
|
||||
│ ├── INFO
|
||||
│ ...
|
||||
│ ├── LIST
|
||||
│ ├── sed_4.9.mpf
|
||||
│ ├── sed_4.9.mpf.sig
|
||||
│ ...
|
||||
├── LICENSE.txt
|
||||
├── README.md
|
||||
├── pool.sh
|
||||
├── sign-dist.sh
|
||||
└── src
|
||||
├── acl
|
||||
│ └── pkg.sh
|
||||
├── attr
|
||||
│ └── pkg.sh
|
||||
├── autoconf
|
||||
│ └── pkg.sh
|
||||
├── automake
|
||||
│ └── pkg.sh
|
||||
├── bash
|
||||
│ ├── pkg.sh
|
||||
│ ├── skelprof
|
||||
│ └── skelrc
|
||||
...
|
||||
```
|
||||
Let's break this down:
|
||||
|
||||
- `LICENSE.txt`: License used for the pool. **All the packages in the pool should use a license
|
||||
compatible with this license.**
|
||||
- `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 info file.
|
||||
- `src`: Contains package sources (package scripts, extra patches, configuration files etc.)
|
||||
- `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
|
||||
small script that is used to sign all the packages in the `dist` directory if they are built
|
||||
without the signatures.
|
||||
|
||||
# Using different pools
|
||||
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).
|
||||
|
||||
These pools can provide packages for users, these packages can be managed using the
|
||||
[MatterLinux package manager (`matt`)](/wiki/matt).
|
||||
|
||||
### 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`, `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 you can simply install the [`mtsc`](https://git.matterlinux.xyz/matter/mtsc)
|
||||
package from the `base` pool.
|
||||
|
||||
Finally to build the pool:
|
||||
```
|
||||
$ mp-pool <pool dir>
|
||||
```
|
||||
|
||||
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 <pool dir>
|
||||
```
|
||||
|
||||
### Hosting pools
|
||||
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 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:
|
||||
```
|
||||
# address to host the MPTP server on
|
||||
addr = 0.0.0.0:5858
|
||||
|
||||
# pool name
|
||||
[my-pool]
|
||||
|
||||
# pool directory
|
||||
dir = /srv/my-pool
|
||||
|
||||
# pool hostname
|
||||
host = my-pool.example.com
|
||||
```
|
||||
After editing this configuration for your needs, you can run pooler with the configuration file:
|
||||
```
|
||||
$ 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 error logs.
|
||||
|
||||
### Creating a new pool
|
||||
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
|
||||
edit it.
|
||||
|
||||
After adding your packages and building them with `mp-pool`, you can host it using pooler.
|
||||
I suggest you also host them on a HTTP or a FTP server just to make them easier to access.
|
||||
|
||||
Also you can add your unofficial pool to this wiki page [by creating an issue](https://git.matterlinux.xyz/Matter/content/issues).
|
Reference in New Issue
Block a user