From fb988d2f7a085c849ef3cbdf16af3641c6896304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Sun, 4 Feb 2024 21:52:17 +0100 Subject: [PATCH 1/4] oil: rename to oil-python --- .../oil/default.nix => by-name/oi/oil-python/package.nix} | 2 +- pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) rename pkgs/{shells/oil/default.nix => by-name/oi/oil-python/package.nix} (96%) diff --git a/pkgs/shells/oil/default.nix b/pkgs/by-name/oi/oil-python/package.nix similarity index 96% rename from pkgs/shells/oil/default.nix rename to pkgs/by-name/oi/oil-python/package.nix index de3116c19949..0c5cf044e09a 100644 --- a/pkgs/shells/oil/default.nix +++ b/pkgs/by-name/oi/oil-python/package.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { dontStrip = true; meta = { - description = "A new unix shell"; + description = "A new unix shell - Old python build"; homepage = "https://www.oilshell.org/"; license = with lib.licenses; [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fc5e7a94999f..57e020e11307 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15358,8 +15358,6 @@ with pkgs; oh = callPackage ../shells/oh { }; - oil = callPackage ../shells/oil { }; - oksh = callPackage ../shells/oksh { }; scponly = callPackage ../shells/scponly { }; 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 2/4] 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"; + }; +} From d339fffc7d514b53511ea528d3d6f770e5a79365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Sun, 4 Feb 2024 21:57:01 +0100 Subject: [PATCH 3/4] oil: add myself as maintainer --- pkgs/by-name/oi/oil/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/oi/oil/package.nix b/pkgs/by-name/oi/oil/package.nix index 78109a5396fe..58e52dac3f0d 100644 --- a/pkgs/by-name/oi/oil/package.nix +++ b/pkgs/by-name/oi/oil/package.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation rec { ]; platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ lheckemann alva ]; + maintainers = with lib.maintainers; [ lheckemann alva mkg20001 ]; changelog = "https://www.oilshell.org/release/${version}/changelog.html"; }; From bca04fb384f6c432ce09db9d8d8033d785fa4458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Thu, 8 Feb 2024 09:58:18 +0100 Subject: [PATCH 4/4] release-notes: add oil c++ note --- nixos/doc/manual/release-notes/rl-2405.section.md | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index bad1fd449bbb..efb54da3fee7 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -325,3 +325,4 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS). The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform. +- The oil shell is now using the c++ version by default. The python based build is still available as `oil-python`