Нужно собрать ksh.
Написал вот такой вот ksh/default/nix:
{ stdenv, fetchurl, meson, ninja, fetchFromGitHub, gcc-unwrapped}:
stdenv.mkDerivation rec {
name = "ksh-${version}";
version = "93v";
src = fetchFromGitHub {
owner = "att";
repo = "ast";
rev = "b8d88244ae87857e7bbd6da230ffbbc51165df70";
sha256 = "12kf14n8vz36hnsy3wp6lnyv1841p7hcq25y1d78w532dil69lx9";
};
doCheck = true;
# unpackPhase = true;
nativeBuildInputs = [ meson ninja gcc-unwrapped ];
BuildInputs = [ meson ninja gcc-unwrapped ];
meta = with stdenv.lib; {
description = "KornShell Command And Programming Language";
longDescription = ''
The KornShell language was designed and developed by David G. Korn at
AT&T Bell Laboratories. It is an interactive command language that
provides access to the UNIX system and to many other systems, on the
many different computers and workstations on which it is implemented.
'';
homepage = http://www.kornshell.com/i;
license = licenses.cpl;
maintainers = with maintainers; [ ];
platforms = platforms.all;
};
passthru = {
shellPath = "/bin/ksh";
};
}
В GitHub ksh (https://github.com/att/ast) сказано:
Building ksh requires the Meson build system. To build ksh execute these commands from the project root directory:meson build ninja -C build
You can add a --prefix flag followed by a path to the meson build command to specify where the binaries and libraries are installed. The default is /usr/local.
Installing
The ksh executable, helper libraries and man page can be installed with:ninja -C build install
После запуска установки
$ nix-env -f . -iA ksh
Сборка начинается,
meson build
отрабатывает. Затем появляется ошибка:
src/lib/libast/meson.build:20:0: ERROR: File /build/source/build/src/lib/libast/comp/conftab.c does not exist.
A full log can be found at /build/source/build/meson-logs/meson-log.txt
builder for '/nix/store/2y1r2bpi0yjcpaw9fcygd9f7fzrd9xwv-ksh-93v.drv' failed with exit code 1
error: build of '/nix/store/2y1r2bpi0yjcpaw9fcygd9f7fzrd9xwv-ksh-93v.drv' failed
Все сообщения выводимые при сборке здесь: https://pastebin.com/8A20WxnS
Добраться до полного лога сборки /build/source/build/meson-logs/meson-log.txt не представляется возможным. Или я не знаю, как это сделать.
Пробовал провести сборку в VM с Ubuntu, там всё собирается без ошибок. С помощью strace узнал, что файл source/build/src/lib/libast/comp/conftab.c должен создаваться в процессе ninja -C, то есть meson отрабатывает нормально. Куда копать дальше я не знаю.