aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 346a37583f10963f0c4e5fc996232f61876079f3 (plain)
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
# shh-portable-utils

Shhh!

This project aims to create a set of small, correct and POSIX-conformant set of
default utilities for the UNIX system, like echo and chmod.

Powered by skalibs.
Works best with musl libc.

## Dependencies
- POSIX system with default C programming environment.
- GNU Make, version 3.81 or later;
- [skalibs](https://skarnet.org/software/skalibs). This is a build-time
  dependency and a run-time dependency if you do not link binaries statically.
- (***Optional***) [nsss](https://skarnet.org/software/nsss) if you have musl
  and want nsswitch-like functionality, or if you just want sane nsswitch on
  your system. This is build-time and run-time dependency.

## Compilation and installation
```
./configure && make && sudo make install
```
will do. Alternatively, it can be built with muon build system and samurai (not
guaranteed to work!):
```
muon setup build && samu -C build && muon install -C build
```

## License
This is free software licensed under MIT license. See COPYING for details.

## TODO
- Draw the rest of the freaking owl!
- Create shh-linux-utils, a set of base utilities that cannot be implemented in
  a nonportable fashion. This utilities are going to be Linux-specific, I
  primarily use Linux distros and BSDs are unlikely to adopt them.
- I18n. I believe that utilities should be able to display text in the user's
  native language. But, since language support drastically increases size of
  programs, there should be a possibility to disable this at compile-tume.
- Documentation, obviously. For now, POSIX will do.
- Move repository to another server.

## Why
- As far as the author knows, none of existing projects provide POSIX-conformant
  set of utilities, while there is a demand for such set.
- Existing projects do not satisfy the author for some reasons:
    - [GNU Coreutils](https//www.gnu.prg/software/coreutils): well, this is GNU,
      which is translated as 'bloated, inefficient, insecure'.
    - [Busybox](https://busybox.net), [Toybox](https://landley.net/toybox):
      these projects provide multicall binaries. This approach has its
      advantages, but it also has its drawbacks. The goal of shh-utils is
      provide standalone binaries.
    - [sbase](https://core.suckless.org/sbase/): Idk, need to check this out.
- Last but not least: NIH syndrome of course!