|/
|\ISS

News
Blog

Wiki

Install KISS
FAQ

Package System
Package Manager
Software

Guidestones

Testimonials
Screenshots
Team

Contact
Donate
Website
IRC

GitHub
Git (mirror)
ML (archive)



SOFTWARE
________________________________________________________________________________

Linux distributions are more or less a package manager, repositories of software
and some sugar on top. The software choices made by a distribution are largely
what define it.

KISS takes a different approach to its software offerings by having highly
focused defaults with limitless user choice as a counterbalance. The
defaults are just that, defaults. Nothing is tightly coupled.

This page will explain the many software choices, the status of packages like
Python 2 and the further removal of unneeded software. This is only in relation
to the official repositories as the Community make KISS boundless.


[0.0] Index
________________________________________________________________________________

- The Defaults                                                             [1.0]
    - C/POSIX Library                                                      [1.1]
    - Core Utilities and Shell                                             [1.2]
    - Init System and Service Manager                                      [1.3]
    - SSL Library                                                          [1.4]
- Removed Software                                                         [2.0]
- Excluded Software                                                        [3.0]


[1.0] The Defaults
________________________________________________________________________________

KISS provides a somewhat atypical software stack. It's small in size and
contains little software. As a user, you may find that some things work
differently to other distributions.

This is not a complete list, it is merely the interesting bits. The true
strength of KISS is not in its software choices but in its software omissions.


    [1.1] C/POSIX Library
    ____________________________________________________________________________

    Most major distributions tend to use GNU's C library whereas KISS uses musl.

    Musl has better support for static linking, is smaller in size and has an
    emphasis on correctness + conformance to standards. The dynamic runtime is a
    single file with a stable ABI allowing for worry-free and race-free updates.

    It is not without its caveats though. Software compiled for GNU's C library
    will not work on a musl-based system. Large amounts of software also rely on
    library extensions which are exclusive to the GNU C library.

    Making this software work on musl is not impossible however. A tiny patch is
    all that is needed in the majority of cases and this overall situation has
    improved immensely in recent years.

    To paint a clearer picture; our Firefox package no longer requires a series
    of patches for musl compatibility as the portability issues were fixed
    upstream (Thanks to $/michaelforney).

    More information: https://wiki.musl-libc.org/design-concepts.html


    [1.2] Core Utilities and Shell
    ____________________________________________________________________________

    The default provider of the core utilities (ls, cat, etc) and the POSIX
    shell is busybox. Distributions typically use the GNU coreutils and bash to
    fill this hole.

    Busybox combines tiny versions of each utility into a single, small
    executable. This is statically linked in KISS and comes in at 1MB for the
    entire package. Each utility is simply a symlink to the single binary.

    More information: https://www.busybox.net/about.html


    [1.3] Init System and Service Manager
    ____________________________________________________________________________

    Busybox is also the provider of KISS' default init and service manager. This
    works really well as no additional software is required and the overall
    system integration is very minimal.

    The service manager provided by busybox is its own implementation of the
    runit family of utilities. Writing services for this system is really nice
    as services are no larger than a line or two a file.

    The boot-up and power-off procedures however, are not covered by busybox and
    must be implemented externally. KISS provides an init-agnostic and portable
    base with which any init and service manager can be used.

    More information: $/kiss-community/init


    [1.4] SSL Library
    ____________________________________________________________________________

    KISS' default SSL library is LibreSSL, an OpenSSL fork by the OpenBSD folk.
    The purpose of the fork is to modernize OpenSSL, improve security and apply
    development best practices.

    It also has a nicer build system and no reliance on Perl during compilation.
    This made it very easy to include in KISS' tiny core.

    More information: https://libressl.org/index.html


[2.0] Removed Software
________________________________________________________________________________

Through tireless effort, a large amount of software has been rendered unneeded
and the entire distribution works without their presence. Let's get the smaller
stuff out of the way first.

KISS has no need for:

    bash, dbus, fakeroot, file, ca-certificates, atk-brige-*, gettext,
    intltool, autoconf, automake, libtool, yasm, shared-mime-info, ...


Additionally, Python2 and GTK+2 are no longer in the main repository, but are in
community. These were previously required for Firefox, but that requirement has
since been dropped! The only package remaining is Perl, which is a far trickier
dependency to remove - it is integrated throughout firefox's build system.


Trying to convey what software is excluded from the distribution is quite the
difficult task. It might make things clearer if I mention that the official
repositories are made up of only 150 or so packages (and this number has shrunk
over time).


[3.0] Excluded Software
________________________________________________________________________________

You might be surprised to hear that a lot of popular software is explicitly
excluded from the official repositories. What this means is that they will never
make their way into the distribution officially.

The reasons why will be explained below, the (by no means complete) list:

- dbus
- elogind
- polkit
- pulseaudio
- pam
- wayland
- All Desktop Environments.


KISS' official repositories exclude this software to ensure that the
distribution is fully functional without them. The word "fully" implies
everything up to and including a web browser (Firefox) and a media player (mpv).

It is a easier to add software to a system than it is to try and pry it out of
one. This also ensures that this software remains _optional_ and is not forced
onto users. Choices must remain so.

The Community have packaged this entire list (and then some) for those looking
to use this software. This is the #1 strength of the distribution: a highly
opinionated and minimal base with limitless extensibility.

See: $/topics/kiss-repo


________________________________________________________________________________

Dylan Araps    (C) 2019-2020
kiss-community (C) 2020-2021
Dilyn Corner   (C) 2021

Linux(R) is the registered trademark of Linus Torvalds in the U.S. and
other countries.