1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
<h1 align = "center"> Mesk - free, i2p-based linux package manager </h1>
<div align = "center">
<a href="https://rust-lang.org" target="_blank">
<img src="https://img.shields.io/badge/language-rust-blue?logo=rust">
</a>
<a href="https://opensource.org">
<img src="https://img.shields.io/badge/license-OSI_Compliant-brightgreen?logo=open-source-initiative&logoColor=white">
</a>
<a href="https://geti2p.net">
<img src="https://img.shields.io/badge/I2P-Supported-black?logo=data:image/png;base64,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&logoColor=white&color=1f4987">
</a>
</div>
<br>
> [!WARNING]
> Repo state: WIP
**Mesk is a source-based package manager based on i2p protocols, tailored for independence and the absence of spyware.**
> [!TIP]
> TODO:
> - Make more pragmatgic autobuild systems
> - Implement security parts like better validating for custom build-scrs
> - Implement GPG-sign validation (and other security)
> - Add an integrated i2p router for i2pd-independent operation *(debatable)
> - Fix issue with arch-checking in source-based pkgs
> Minimal profile mesk realised but refinement is still required.
> Now there are plans to add to amt the ability to automatically generate manifests in order to be able to build a repo alone.
**Themes:**
- <a href="#support"> support us </a>
- <a href="#policy"> policy in writing software </a>
# Package Structure
`.mesk` - **is a compressed gzip tarball containing information on how to build, configure and install it**.
```
# Example file-tree of package.mesk
.
├── BUILD
├── INSTALL
├── LICENSE
├── Makefile
├── SETTS
└── src
├── some_code.c
└── some_code.rs
```
- **BUILD:** Not required if the package does not require compilation/other assembly
- **INSTALL:** Where or how to install the package? For example, you can just leave make install and the package will be installed by make, not mesk.
- **SETTS:** What needs to be configured after installation? For example, install basic configurations (if this is not done in `INSTALL`) or export environment variables.
**Binary packages are also supported, but the default installation is source-based.**
You can set the package compilation parameters in the global /etc/mesk.toml. (Read more in the documentation.) For example, the compiler, optimization level settings, etc. Here we are similar to portage.
The `.mesk` package can be generated automatically, given that the software is open source and based on standard build systems: `make`, `CMake`, `meson`, `cargo`. If the package does not require compilation, you must specify how and where to install it.
**We only support open source software.** Binary builds of proprietary applications will not appear in the official repositories, but, for example, there will be open clients for messengers with a closed backend.
<h1 id="policy"> Our policy </h1>
1. **Documentation is a sore point for i2p client implementations** (even for the official i2p-rs, for example), after tinkering with a ton of non-working and undocumented libraries for i2p, **our conscience will not allow us not to work on documentation.**
_By the way, I will mention that the official examples of i2p-rs have a completely different structure of imports and library operation than crates.io versions. Over time, we plan to switch to our own implementations of client libraries for i2p._
2. **The style of the code.** So far, we have not reached a functioning prototype, the code works on a **procedural programming paradigm, but eventually we will switch to a functional one.** The code may hurt the eye, but it must contain documentation comments and its logic must be clear.
3. **Minimalism and reliability. Our programs will not contain unnecessary functions that may lead to misunderstandings of the program interface** (the CLI is also an interface), as well as functions that benefit but are controversial in their reliability.
4. **We don't use AI in our code.** The entire project code is written by a human, with the exception of unit tests and other parts that will not be included in the final release.
**A free network should be available to everyone.**
<h1 id="support"> Support us </h1>
**This project cannot be implemented without some support. The most valuable thing you can do for us is to create a Pull Request or spread information about us in any circle. We are a team of enthusiasts who do not have all the means to do this initially. All big projects absolutely always start small.**
# Development checklist
- [x] - Basic functionality (http, installation/removal of packages.)
- Implemented (some functions related to deletion and some actions with packages have not been tested properly)
- [x] - i2p funtions
- WIP (CDN server and base packages not fast work, but this is not a problem)
- Integration with I2Pd/JI2P implemented but not repo xd
# Anouncements and plans
- Initially, the distribution is inspired by the spirit of QubesOS and we plan to implement an **alternative to qubes HVM**.
- **The I2PUtils**. For i2p, you can use standard utilities like WGET/CURL, etc., but for convenience and support of all standards, we plan to create alternatives tailored specifically for this network.
- Additional documentation and eepsites for our utilities, well, where without it?
|