diff options
-rw-r--r-- | nixos/doc/manual/release-notes/rl-2405.section.md | 1 | ||||
-rw-r--r-- | pkgs/by-name/oi/oil-python/package.nix (renamed from pkgs/shells/oil/default.nix) | 2 | ||||
-rw-r--r-- | pkgs/by-name/oi/oil/package.nix | 74 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
4 files changed, 76 insertions, 3 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index becfa6d45ba1..f6a77036674e 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -351,3 +351,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` diff --git a/pkgs/shells/oil/default.nix b/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/by-name/oi/oil/package.nix b/pkgs/by-name/oi/oil/package.nix new file mode 100644 index 000000000000..58e52dac3f0d --- /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 mkg20001 ]; + changelog = "https://www.oilshell.org/release/${version}/changelog.html"; + }; + + passthru = { + shellPath = "/bin/osh"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cd999726c4d5..0905cbad2961 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15375,8 +15375,6 @@ with pkgs; oh = callPackage ../shells/oh { }; - oil = callPackage ../shells/oil { }; - oksh = callPackage ../shells/oksh { }; scponly = callPackage ../shells/scponly { }; |