Skip to content
Dennis Wölfing edited this page Feb 26, 2023 · 13 revisions

Ports

This page contains information about all ports available for Dennix. All patches and the installation script are available at https://github.com/dennis95/dennix-ports.

awk

Version: 5.1.1
Release date: 2021-10-28
Dependencies: gettext-runtime libmpfr

  • Provides internet sockets to awk script, but we do not have internet sockets.
  • io.c includes <sys/select.h> only if sockets are available but uses select even when sockets are not supported.
  • Unconditionally uses its own implementation of getopt and causes a conflict with libc getopt.
  • Uses isascii.

bim

Version: 2.6.2
Release date: 2020-11-10

A text editor originally written for ToaruOs.

  • Relies on PATH_MAX.
  • The install-strip target uses install -s which invokes strip which is for the build system instead of the host.

binutils

Version: 2.34
Release date: 2020-02-01
Dependencies: gettext-runtime, libz

A fork of binutils with Dennix support.

  • Patched to add a Dennix target.
  • Inclusions of <memory.h> and <sys/param.h>.

crispy-doom

Version: 5.10.1
Release date: 2021-03-24
Dependencies: doom-shareware, libSDL2, libSDL2_mixer, libz

A limit-removing enhanced-resolution Doom source port.

  • Uses putenv.
  • Leaves the alpha value uninitialized when setting a color palette.
  • Patched to disable the network functionality.

doom-shareware

Version: 1.9
Release date: 1995-02-01

The first episode of DOOM.

  • If you happen to own a copy of DOOM you can play the full version by copying your DOOM.WAD into /share/games/doom.

dxcompress

Version: 1.1
Release date: 2023-02-25
Dependencies: liblzma, libz

My own compression/decompression utility. The first implementation that conforms to the POSIX.1-202x draft 1 compress specification. It also provides the gzip and xz utilities.

gcc

Version: 9.3.0
Release date: 2020-03-12
Dependencies: binutils, gettext-runtime, libmpc, libstdc++

A fork of GCC with Dennix support.

  • Patched to add a Dennix target.
  • Patched to provide a __SSIZE_TYPE__ builtin define.
  • Patched to allow installing libstdc++ separately.
  • Cannot properly detect endianness when cross-compiling a C++ program to Dennix. This is actually a bug in autoconf (fixed upstream). Patched to assume that Dennix is always little-endian.
  • Uses putenv.
  • Provides a <float.h> with an incorrect FLT_ROUNDS definition. Patched to use the libm header instead.

gettext-runtime

Version: 0.21
Release date: 2020-07-27
Dependencies: libiconv

This provides the gettext functions and utilities.

  • This is going to be standardized in POSIX.1-202x.
  • We should ideally implement this ourselves.
  • The implementation is not namespace-clean.
  • This port will need some modifications for strict conformance to POSIX.1-202x.

grep

Version: 3.7
Release date: 2021-08-14
Dependencies: gettext-runtime

  • Tries to build gnulib-tests as part of the main build which fails. (patched)
  • Assumes that fnmatch() is broken when cross-compiling despite --enable-cross-guesses=risky.

less

Version: 590
Release date: 2021-07-10
Dependencies: ncurses

This provides less and the POSIX more utility.

  • Used realpath with second argument non-null. (patched)

libarchive

Version: 3.4.2
Release date: 2020-02-11
Dependencies: liblzma, libz

A library for cpio and tar archives. Also provides the cpio and tar utilities.

  • Does a configure check to detect the signature of readdir_r which produces the wrong result if readdir_r does not exist. (patched)
  • Assumes that the S_IFMT constants match exactly the bits of the cpio format. I patched it to fix it for tar but that broke it for cpio. Now Dennix just uses the same constants as all the other systems, so the patch can be removed.
  • Includes <memory.h>.

libgmp

Version: 6.1.2
Release date: 2016-12-19

libiconv

Version: 1.17
Release date: 2022-05-15

  • Provides implementation of the <iconv.h> header, which is part of POSIX.
  • We should ideally implement this ourselves, but it is unclear how this should be done.
  • The implementation is not namespace-clean.
  • All supported codesets are part of the library and thus get linked into every program that wants to use iconv.

liblzma

Version: 5.2.5
Release date: 2020-03-17

XZ utils usually also provides the xz utility, but on Dennix this is handled by dxcompress. So this is just the library.

  • Needs an OS-specific way to get the amount of available memory.

libmpc

Version: 1.1.0
Release date: 2018-01-11
Dependencies: libmpfr

  • The tarball contains files with missing write permission.

libmpfr

Version: 4.0.2
Release date: 2019-01-31
Dependencies: libgmp

  • Fails to properly detect cross-compilation unless --build is given explicitly.

libSDL2

Version: 2.0.14
Release date: 2020-12-21

  • Installs a sdl2-config program by default.
  • Dynamic linking can only be disabled by patching a header.
  • Assumes that unix systems have a xdg-open program.
  • Added a libdxui backend.

libSDL2_mixer

Version: 2.0.4
Release date: 2018-10-28
Dependencies: libSDL2

An audio library on an OS without audio.

libstdc++

Version: 9.3.0
Release date: 2020-03-12

The C++ standard library. It is usually provided as part of GCC but we detach it from the GCC source tree.

  • Patched to build with a newer C++ standard because otherwise some libc features do not get detected.
  • Needs to be explicitly told about some features of unknown operating systems.

libz

Version: 1.2.8.f

This is Sortix libz.

  • Has lots of changes for cleanup compared to upstream zlib.
  • Unfortunately it has not been updated to the latest upstream for some time.

make

Version: 4.3
Release date: 2020-01-19
Dependencies: gettext-runtime

GNU make.

  • Tries to use sizeof on the d_name member of struct dirent.
  • Uses putenv.
  • Patched to not use pathconf. This can be removed.
  • Patched gnulib getdtablesize. This can probably be removed.
  • Uses POSIX advisory locks. (patched)

nano

Version: 5.7
Release date: 2021-04-29
Dependencies: gettext-runtime, libz, ncurses

  • Uses strncasecmp without including <strings.h>.
  • Uses P_tmpdir.

ncurses

Version: 6.2
Release date: 2021-02-12

  • Uses an ancient autoconf version.
  • Handles feature test macros incorrectly.
  • Included <sys/signal.h> instead of <signal.h> in a configure check.
  • Assumes that an operating system cannot have TIOCGWINSZ without TIOCSWINSZ.
  • Missing <time.h> include.
  • Uses isascii.
  • Contains a buffer overflow (off-by-one) in infocmp.c (patched).
  • Added a dennix entry in the terminfo database.
  • There might still be issues with this port. Not all test programs worked properly. The reason for this still needs to be investigated. It might be that these tests relied on some terminal features that we don't have yet.

nyancat

Version: 1.5.2
Release date: 2018-08-18

Nyancat in a terminal!

  • Makefile does not use DESTDIR. (patched)
  • Patched to not rely on SIGWINCH. (not needed anymore)
  • Patched to not print floating point numbers.

sed

Version: 4.8
Release date: 2020-01-15
Dependencies: gettext-runtime

  • Tries to build gnulib-tests as part of the main build which fails. (patched)
  • isascii() used in lib/regex_internal.c.