Sortix 1.1dev nightly manual
This manual documents Sortix 1.1dev nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.
instructions for following development
development(7) or cross-development(7). The list is in reverse chronological order. The system has policies that handle incompatible changes gracefully.If you are updating to new source code, be sure you are reading the new version of this document, rather than an old copy installed on the system or on an online manual page viewer. To view the new version from the command line:The sysmerge(8) and sysupgrade(8) programs automatically handle compatibility issues when upgrading an existing system to a new build. They can handle incompatible ABI changes and automatically fix configuration files and other issues.When building the system from source code, you must have the latest build tools installed as detailed in development(7) and cross-development(7). After upgrading to newer source code, you must first install the new build tools before building. If this is needed, there will be a notice in this document. Build tools will likely complain about missing options or invalid parameters if they are not up to date. Automatic build scripts should use the install-build-tools target provided by the root makefile.Changes to the source code may rely on the newest build tools, but the build tools must retain the ability to build all the way back to the latest stable release. The build tools of release N+1 must be able to build release N. The build tools must be portable to the latest stable release and the supported cross-development(7) systems. If a build tool needs an incompatible change, there must be added a way to opt into the new behavior, and the build system must use that option and not use the old behavior any more. This forward compatibility will allow the removal of the old behavior after the next release. Temporary compatibility must be mentioned with a condition for when it can be removed and it must have instructions for what needs to be done. Use a comment in the format "TODO: After releasing Sortix x.y, foo." to allow the maintainer to easily grep(1) for it after a release.
cd /src # system source code location mandoc share/man/man7/following-development.7 | pager # natively man share/man/man7/following-development.7 # non-natively
socket(2) system call. This is a major incompatible ABI change. Only Unix sockets were exposed this way. In the base system, sf(1) is the only program with Unix socket capabilities. Ports using Unix sockets must be updated. Otherwise the system is compatible except accessing Unix sockets fails with ENOENT.
tix-build(8) has gained a number of features that will soon be required in order to build certain ports. In particular, it now supports the pkg.use-bootstrap, pkg.source-package, and pkg.alias-of variables; bugs in the pkg.subdir variable have been fixed; and a --source-directory option has been added. tix-build(8) must be upgraded before building ports using any of those features.If not developing natively, set PREFIX to the desired location.If the new program isn't used, ports may fail to build due to local software not being the exact same version (pkg.use-bootstrap), clean or post-install in the wrong subdirectory (pkg.subdir), the --source-directory option not being recognized or failing to locate the source code (pkg.source-package), stopping because pkg.build-system isn't set (pkg.alias-of), or other mysterious circumstances.
cd /src/tix && make clean && make install
kblayout-compiler(1) build tool has gained support for modifier combinations used by the German keyboard layout, and the new German keyboard layout relies on this. kblayout-compiler(1) must be upgraded before building the system.If not developing natively, set PREFIX to the desired location.If the new program isn't used, the build will still complete successfully but an incorrect German keyboard layout will be installed.
cd /src/kblayout-compiler && make clean && make install
module /boot/random.seed --random-seed
carray(1) build tool has gained the -EGHot options and the build system now relies on this. carray(1) must be upgraded before building the system.If not developing natively, set PREFIX to the desired location.
cd /src/carray && make clean && make install