From c627c0f561795577e75438598745cac758f7fea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Fri, 26 Jan 2024 17:03:58 +0100 Subject: [PATCH] oil: init at 0.20.0 This is the new C++ version Co-authored-by: Szymon Scholz --- pkgs/by-name/oi/oil/package.nix | 74 +++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 pkgs/by-name/oi/oil/package.nix diff --git a/pkgs/by-name/oi/oil/package.nix b/pkgs/by-name/oi/oil/package.nix new file mode 100644 index 000000000000..78109a5396fe --- /dev/null +++ b/pkgs/by-name/oi/oil/package.nix @@ -0,0 +1,74 @@ +{ stdenv, lib, fetchurl, symlinkJoin, withReadline ? true, readline }: + +let + readline-all = symlinkJoin { + name = "readline-all"; paths = [ readline readline.dev ]; + }; +in +stdenv.mkDerivation rec { + pname = "oil"; + version = "0.20.0"; + + src = fetchurl { + url = "https://www.oilshell.org/download/oils-for-unix-${version}.tar.gz"; + hash = "sha256-d4BIRj8bPyd7awZyJPlZYBwr+o82IKGh4y4/urOYOxc="; + }; + + postPatch = '' + patchShebangs _build + ''; + + preInstall = '' + mkdir -p $out/bin + ''; + + buildPhase = '' + runHook preBuild + + _build/oils.sh + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + ./install + + runHook postInstall + ''; + + strictDeps = true; + buildInputs = lib.optional withReadline readline; + # As of 0.19.0 the build generates an error on MacOS (using clang version 16.0.6 in the builder), + # whereas running it outside of Nix with clang version 15.0.0 generates just a warning. The shell seems to + # work just fine though, so we disable the error here. + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=incompatible-function-pointer-types"; + configureFlags = [ + "--datarootdir=${placeholder "out"}" + ] ++ lib.optionals withReadline [ + "--with-readline" + "--readline=${readline-all}" + ]; + + # Stripping breaks the bundles by removing the zip file from the end. + dontStrip = true; + + meta = { + description = "A new unix shell"; + homepage = "https://www.oilshell.org/"; + + license = with lib.licenses; [ + psfl # Includes a portion of the python interpreter and standard library + asl20 # Licence for Oil itself + ]; + + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ lheckemann alva ]; + changelog = "https://www.oilshell.org/release/${version}/changelog.html"; + }; + + passthru = { + shellPath = "/bin/osh"; + }; +}