Parabola GNU/kNuBSD-fire - ParabolaWiki

# Parabola GNU/kNuBSD-fire

Note: This is prototype wiki

Welcome to the Parabola GNU/kNuBSD-fire wiki!

## What is Parabola GNU/kNuBSD-fire?

Parabola GNU/kNuBSD-fire is a libre software project aiming to provide a fully free as in freedom GNU distribution based on Parabola GNU/Linux-libre distribution with the GNU C Library and NuBSD-fire kernel and packages optimized for i686 and x86_64 CPUs. Parabola aims to keep its package and management tools simple. The primary goal is to give the user complete control over their system with 100% Libre software.

### What is GNU Operating System?

GNU is a Unix-like operating system developed by the GNU Project to offer a Unix-compatible system that would be 100% free software.

Note:

1. The GNU/kFreeBSD software is incompatible with GNU/Linux software, due the system has different kernel.
2. The GNU/kFreeBSD software is incompatible with FreeBSD software, due the system has different C library.

### What is GNU C Library?

GNU C Library is the C standard library, which defines the "system calls" and other basic facilities such as open, malloc, printf, exit...

Is used as the C library in the GNU systems with the Linux-libre kernel, NuBSD kernel or Hurd kernel.

### What is NuBSD-fire kernel?

NuBSD-fire kernel is part to the NuBSD system project based on FreeBSD aiming to provide a fully free as in freedom BSD distribution.

Note: "Fire" specifies the exact kernel used if there will be other kernels for NuBSD, in this case it is a libre version of FreeBSD. "k" means kernel that will be used from NuBSD project.

## General documentation

The Installation Guide will walk you through the process of downloading and installing Parabola GNU/kNuBSD-fire on your system.

Be sure to take a look at the Parabola GNU/kNuBSD-fire Social Contract, it guides us in all we do.

## New Paradigm on GNU/kNuBSD-fire

### [Userland]

The GNU userland will be used as default and others are moved to [pcr] repo.

### [Init System (Service Manager)]

The GNU dmd will be used as default init system and others are moved to [pcr] repo.

### [System Directories]

The System Directories is based on "GNU/Hurd System" and "Parabola GNU/Linux-libre" without "/usr", "/local", "/libexec", "/opt", "/src", "/sys (usefull only in Linux kernel)" directory and "symlinks" ("/lib64", "/sbin", "/usr", "/var/lock" and "/var/run") like this:

- /(root), /bin, /boot, /dev, /etc, /home, /include, /lib, /mnt, /proc, /run, /share, /srv, /tmp and /var

### [Source Repositories]

PBS (Parabola Build System):

The PBS named pbs.git are available on Parabola Projects

### [Packages Repositories]

The source repo will be https://repo.parabola.nu/gnu+knubsd-fire/<repo>/os/<arch>.

The repo are:

PBS (Parabola Build System)
nonprism | core | extra
nonprism-testing | testing
PUR (Parabola User Repository)
pur

Note:

1. <arch>: is [x86_64], [i686], [mips64el], [all] or others architecture.
2. <repo>: is package repo like core

#### nonprism

The [nonprism] repository can be found in "gnu+knubsd-fire/nonprism/os/<arch>" on your mirror. It contains modified packages without prism service code, executable, dependency and recommendation

#### core

The [core] repository can be found in "gnu+knubsd-fire/core/os/<arch>" on your mirror. It contains NuBSD-fire kernel and utils (NuBSD-fire), GNU core packages and others that complete the GNU System.

Note:

In [core] repo (GNU System) contains all necessary packages for:

- booting Parabola GNU/kNuBSD-fire
- connecting to the Internet
- building packages
- management and repair of supported file systems
- the system setup process (e.g. openssh)

as well as dependencies of the above (not necessarily makedepends)

core has fairly strict quality requirements. Multiple developers/users need to signoff on updates before package updates are accepted. For packages with low usage, a reasonable exposure is enough: informing people about update, requesting signoffs, keeping in testing up to a week depending on the severity of the change, lack of outstanding bug reports, along with the implicit signoff of the package maintainer.

#### extra

The [extra] repository can be found in "gnu+knubsd-fire/extra/os/<arch>" on your mirror. It contains GNU packages and others, but is not essential for the core the GNU System (such as iceweasel, gimp, etc).

#### testing

The [testing] or [<repo>-testing] repository can be found in "gnu+knubsd-fire/testing/os/<arch>" or "gnu+knubsd-fire/<repo>-testing/os/<arch>" on your mirror. It is testing packages that wait to form part of the stable repo.

### [Group and Meta Packages]

The group and meta packages like "knubsdfire-base", "gnu", "gnu-core", "gnu-core-devel", "gnu-extra" and "gnu-unstable" will be available.

### [System Name and System Version]

The Name and Version of the OS will be renamed like:

- GNU/kFreeBSD, gnu+kfreebsd, gnu-plus-kfreebsd, GFB, gfb
- uname: GNU/kFreeBSD
- uname -o: GNU/kFreeBSD
- uname -s: FreeBSD-kernel
- uname -a: GNU/kFreeBSD <nodename> <machine> FreeBSD-kernel <kernel-release> <kernel-version>
- Build Operating System: GNU/kFreeBSD <machine> - kernel <kernel-release>
- Current Operating System: GNU/kFreeBSD <nodename> <machine> - kernel <kernel-release> <kernel-version>

### [Documentation]

We suggest terms like 'open-source', 'closed-source' be renamed to 'free-software', 'proprietary-software' respectively.

### [Games, Logos and Mascots]

Logos, mascots or games that contains 'Tux', 'Beastie' and/or similar cases are changed or moved to [pcr] repo.

Note: We suggest use "GNU" mascot for this system

### [Optional Packages]

Optional packages named as 'Open', any operating systems that is not GNU/kNuBSD-fire like syslinux and openshot are moved to [pcr] repo.

### [Emulators and 32bit Packages]

The emulators and 32bit packages will be maintained on [pcr] repo.

### [NuBSD-fire kernel]

CDDL code (ZFS, Illumos compatibility and others),NDIS, GNU/Linux compatibility and others operating system compatibility modules are dropped on this default kernel, for better freedom.

## Diferences between Parabola GNU/Linux-libre and Parabola GNU/kNuBSD-fire versions

Type | GNU/Linux-libre | GNU/kNuBSD-fire
--- | --- | ---
device nodes and init | systemd | gnudmd(part of gnu project) and devd(part of nubsd-fire source)
firewall | ip{,6}tables/nftables | pf(part of nubsd-fire source)
kernel | linux-libre | knubsd-fire(part of nubsd-fire source)
kernel utils | util-linux | util-knubsdfire(part of nubsd-fire source)
loadable kernel module | kmod | kld(part of nubsd-fire source)
network | iproute2 | net-tools(part of nubsd-fire source)
procfs | procps-ng / psmisc / procinfo-ng | procps-ng / psmisc / <none>
sound | alsa-lib, alsa-oss, alsa-plugins, alsa-tools, alsa-utils and oss | oss
sysfs (Linux kernel only feature) | sysfsutils | <none>

## Porting

- Debian GNU/kFreeBSD
- Porting
- loongson2f port

### Port needed for Parabola GNU/kNuBSD-fire

- Nouveau (Libre nVidia Driver) - (GSOC OpenBSD)
- evdev (GSOC FreeBSD)
- mtdev[1]
- libinput

## Tasks to do

1. Help on FreeBSD kernel deblobbing
2. Create new "GCC" and "Binutils" on Parabola GNU/Linux-libre to build Parabola GNU/kNuBSD-fire packages -> DONE
3. Create libretools port
4. Create new repos for Parabola GNU/kNuBSD-fire (separated from Parabola GNU/Linux-libre)
5. Add "ufsutils" on Parabola GNU/Linux-libre
6. ...

## How to help

Parabola GNU/kNuBSD-fire is made by volunteers.

Note: You can find us on #parabola or mailing list.

See our How to help page for things you can do.