BSD Ports

shells/ion 1.0.5.1509 MidnightBSD

Modern system shell written in Rust

System
MidnightBSD
Repository
mports
Maintainer
[email protected]
Port added
Last update
Commit
235dc2bfd7
License
mit
Categories
shells

Description

Ion is a modern system shell that features a simple, yet powerful, syntax. It is written entirely in Rust, which greatly increases the overall quality and security of the shell, eliminating the possibilities of a ShellShock-like vulnerability, and making development easier. It also offers a level of performance that exceeds that of Dash, when taking advantage of Ion's features. While it is developed alongside, and primarily for, RedoxOS, it is a fully capable on other *nix platforms.

In the other systems

The newest version among them is 1.0.5.1509, as upstream numbers it.

SystemPortVersionVulnerabilitiesStatusMaintainerLast update
MidnightBSDshells/ion1.0.5.1509 newestno data-[email protected]2026-11-04
FreeBSDshells/ion1.0.5.1509_22 newestnone known-[email protected]2026-10-14
HardenedBSDshells/ion1.0.5.1509_22 newestno data-[email protected]-
GhostBSDshells/ion1.0.5.1509_22 newestno data-[email protected]-

Version history 2

  1. 1.0.5-1509 235dc2bfd7
  2. 1.0.5-1509 1ed0f9823e

Upstream's version as each commit to the port's Makefile set it, or as this site first saw it in the system's packages; the tree's own revisions are not versions here.

Install

Binary package:

mport install ion-shell

From mports:

cd /usr/mports/shells/ion && make install clean

To depend on this port in another port's Makefile:

RUN_DEPENDS=	ion-shell>0:shells/ion

Dependencies

No port depends on this one.

Configuration

Options name: shells_ion

OptionDefaultDescription
DOCSoff
EXAMPLESoff
USES
cargo
Service scripts
none
Conflicts with
ion

Files

pkg-plist 198
  • @shell bin/ion
  • share/doc/ion-shell/SUMMARY.md
  • share/doc/ion-shell/control/00-flow.md
  • share/doc/ion-shell/control/01-conditionals.md
  • share/doc/ion-shell/control/02-loops.md
  • share/doc/ion-shell/control/03-matches.md
  • share/doc/ion-shell/expansions/00-expansions.md
  • share/doc/ion-shell/expansions/01-variable.md
  • share/doc/ion-shell/expansions/02-process.md
  • share/doc/ion-shell/expansions/03-brace.md
  • share/doc/ion-shell/expansions/04-arithmetic.md
  • share/doc/ion-shell/expansions/05-method.md
  • share/doc/ion-shell/expansions/06-stringmethods.md
  • share/doc/ion-shell/expansions/07-arraymethods.md
  • share/doc/ion-shell/expansions/08-on_redox_os.md
  • share/doc/ion-shell/functions.md
  • share/doc/ion-shell/general.md
  • share/doc/ion-shell/history.md
  • share/doc/ion-shell/introduction.md
  • share/doc/ion-shell/jobs.md
  • share/doc/ion-shell/migrating.md
  • share/doc/ion-shell/pipelines.md
  • share/doc/ion-shell/repl.md
  • share/doc/ion-shell/scripts/00-scripts.md
  • share/doc/ion-shell/scripts/01-sourcing_another_file.md
  • share/doc/ion-shell/scripts/02-init_file.md
  • share/doc/ion-shell/signals.md
  • share/doc/ion-shell/slicing.md
  • share/doc/ion-shell/variables/00-variables.md
  • share/doc/ion-shell/variables/01-strings.md
  • share/doc/ion-shell/variables/02-arrays.md
  • share/doc/ion-shell/variables/03-maps.md
  • share/doc/ion-shell/variables/04-arithmetic.md
  • share/doc/ion-shell/variables/05-exporting.md
  • share/doc/ion-shell/variables/06-scopes.md
  • share/doc/ion-shell/variables/07-namespaces.md
  • share/examples/ion-shell/advanced/cpu-model.ion
  • share/examples/ion-shell/advanced/rxtx-stats.ion
  • share/examples/ion-shell/alias.ion
  • share/examples/ion-shell/alias.out
  • share/examples/ion-shell/and.ion
  • share/examples/ion-shell/and.out
  • share/examples/ion-shell/arithmetic_vars.ion
  • share/examples/ion-shell/arithmetic_vars.out
  • share/examples/ion-shell/array_methods.ion
  • share/examples/ion-shell/array_methods.out
  • share/examples/ion-shell/array_test.ion
  • share/examples/ion-shell/array_test.out
  • share/examples/ion-shell/array_vars.ion
  • share/examples/ion-shell/array_vars.out
  • share/examples/ion-shell/arrays_with_braces.ion
  • share/examples/ion-shell/arrays_with_braces.out
  • share/examples/ion-shell/basic_condition.ion
  • share/examples/ion-shell/basic_condition.out
  • share/examples/ion-shell/brace_exp.ion
  • share/examples/ion-shell/brace_exp.out
  • share/examples/ion-shell/braces.ion
  • share/examples/ion-shell/braces.out
  • share/examples/ion-shell/break.ion
  • share/examples/ion-shell/break.out
  • share/examples/ion-shell/builtin_piping.ion
  • share/examples/ion-shell/builtin_piping.out
  • share/examples/ion-shell/builtin_set.ion
  • share/examples/ion-shell/builtin_set.out
  • share/examples/ion-shell/builtin_status.ion
  • share/examples/ion-shell/builtin_status.out
  • share/examples/ion-shell/check.out
  • share/examples/ion-shell/check.params
  • share/examples/ion-shell/cmdfile_fail.out
  • share/examples/ion-shell/cmdfile_fail.params
  • share/examples/ion-shell/color_test.ion
  • share/examples/ion-shell/color_test.out
  • share/examples/ion-shell/command-substitutions.ion
  • share/examples/ion-shell/command-substitutions.out
  • share/examples/ion-shell/command.out
  • share/examples/ion-shell/command.params
  • share/examples/ion-shell/comments.ion
  • share/examples/ion-shell/comments.out
  • share/examples/ion-shell/conditionals.ion
  • share/examples/ion-shell/conditionals.out
  • share/examples/ion-shell/continue.ion
  • share/examples/ion-shell/continue.out
  • share/examples/ion-shell/else_if.ion
  • share/examples/ion-shell/else_if.out
  • share/examples/ion-shell/empty_loop_test.ion
  • share/examples/ion-shell/empty_loop_test.out
  • share/examples/ion-shell/exists.ion
  • share/examples/ion-shell/exists.out
  • share/examples/ion-shell/fail.ion
  • share/examples/ion-shell/fail.out
  • share/examples/ion-shell/fibonacci.ion
  • share/examples/ion-shell/fibonacci.out
  • share/examples/ion-shell/fibonacci.sh
  • share/examples/ion-shell/fn-root-vars.ion
  • share/examples/ion-shell/fn.ion
  • share/examples/ion-shell/fn.out
  • share/examples/ion-shell/for.ion
  • share/examples/ion-shell/for.out
  • share/examples/ion-shell/function_piping.ion
  • share/examples/ion-shell/function_piping.out

The first 100 are listed.

distinfo 312
FileSizeSHA256
rust/crates/ab_glyph_rasterizer-0.1.8.crate11010c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046
rust/crates/adler-1.0.2.crate12778f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
rust/crates/adler32-1.2.0.crate6411aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234
rust/crates/aho-corasick-1.1.3.crate1833118e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
rust/crates/andrew-0.3.1.crate140308c4afb09dd642feec8408e33f92f3ffc4052946f6b20f32fb99c1f58cd4fa7cf
rust/crates/android_glue-0.2.3.crate1572000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407
rust/crates/ansi_term-0.12.1.crate24838d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2
rust/crates/arrayref-0.3.7.crate96206b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545
rust/crates/arrayvec-0.5.2.crate2783823b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b
rust/crates/atty-0.2.14.crate5470d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
rust/crates/auto_enums-0.7.12.crate29589fe0dfe45d75158751e195799f47ea02e81f570aa24bc5ef999cdd9e888c4b5c3
rust/crates/auto_enums_core-0.7.12.crate16676da47c46001293a2c4b744d731958be22cff408a2ab76e2279328f9713b1267b4
rust/crates/auto_enums_derive-0.7.12.crate1419841aed1da83ecdc799503b7cb94da1b45a34d72b49caf40a61d9cf5b88ec07cfd
rust/crates/autocfg-1.2.0.crate14808f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80
rust/crates/base64-0.13.1.crate610029e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8
rust/crates/bitflags-1.3.2.crate23021bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
rust/crates/bitflags-2.5.0.crate43821cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
rust/crates/blake2b_simd-0.5.11.crate34096afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587
rust/crates/block-0.1.6.crate40770d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a
rust/crates/bumpalo-3.15.4.crate850287ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa

Commit history 3

DateCommitCreditsLog message
235dc2bfd7 Lucas Holt Restore ports tree accidentally deleted by Rails PR #2213 (#2232)
Restore the 63,146 unrelated files accidentally deleted when malformed Rails PR #2213 was merged. Retain the intended databases/rubygem-activemodel81 update to 8.1.4.1. Verified the repaired tree has all 63,148 tracked files. Compared with master before #2213 (141a9523ba), only databases/rubygem-activemodel81/Makefile and distinfo differ. The update itself was already built, packaged and hash-verified. The cause was preparing sparse worktrees with an empty index. The remaining Rails branches are receiving corrective commits, with explicit final-tree and per-port diff validation before push. This recovery changes no port semantics beyond the intended ActiveModel update. Signed-off-by: Lucas Holt <[email protected]>
1123a1dfb9 Lucas Holt databases/rubygem-activemodel81: update to 8.1.4.1 for security fixes (#2213)
Update databases/rubygem-activemodel81 to 8.1.4.1. Part of the coordinated Rails security update addressing the 21 advisories published November 4, 2026. Preserve this port's existing Rails release series; update all version-linked component ports together. Validation on MidnightBSD 4.0.9 amd64, Ruby 3.3.11: official release SHA256 matches the supplied announcement; MIT license unchanged; makesum, patch, build, fake including gem dependency QA, and package passed. Portlint: zero fatal errors (existing advisories only). Runtime dependency gems were isolated under /tmp; NO_DEPENDS=yes prevented installing host packages, so mport dependency installation/closure itself was not tested. Targeted security validation for the Rails 8.1 release: twelve …
1ed0f9823e Lucas Holt shells: port 33 shells and utilities from FreeBSD (plus 7 prerequisites) (#2196)
## Summary Port 33 missing shells and shell utilities from FreeBSD ports into `shells/`, along with 7 prerequisite ports in `devel/`, `lang/`, and `textproc/`. ### Prerequisites Added (7) - `devel/p5-Data-Dump-Streamer` - `devel/p5-Term-Screen` - `devel/p5-Tree-Trie` - `devel/schilybase` - `devel/smake` - `lang/chez-scheme` - `textproc/p5-YAML-Syck` ### Shells & Utilities Added (33) - `shells/antibody` - `shells/bash-completion-zfs` - `shells/bicon` - `shells/bosh` - `shells/carapace` - `shells/git-prompt.zsh` - `shells/ion` - `shells/iris` - `shells/meka` - `shells/modernish` - `shells/murex` - `shells/nsh` - `shells/nu_plugin_formats` - `shells/nu_plugin_gstat` - `shells/nu_plugin_inc` - `shells/nu_plugin_polars` - `shells/nu_plugin_query` - `shells/ohmyzsh` …