Skip to content

Release v2.1.4 - #262

Open
AldaronLau wants to merge 2 commits into
v2.1from
release-v2.1.4
Open

AldaronLau wants to merge 2 commits into
v2.1from
release-v2.1.4

Conversation

@AldaronLau

Copy link
Copy Markdown
Member

Release v2.1.4 (unix changes only)

Regression testing plan for all platforms

Set passwords / hostnames to "test" when prompted.

  • Testing complete on Fedora Silverblue 43.

    Linux / Fedora Silverblue Testing Open a terminal (outside of toolbx), and:
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release
    cargo run --example os-strings
    cargo run --example os-strings --release

    Expect to see something like:

    WhoAmI 2.0.0
    
    User's Language        whoami::lang_prefs():          Collation=en/US:en,CharClasses=en/US:en,Monetary=en/US:en,Messages=en/US:en,Numeric=en/US:en,Time=en/US:en
    User's Name            whoami::realname():            Jeryn Lau
    User's Username        whoami::username():            jerynlau
    User's Username        whoami::account():             jerynlau
    Device's Pretty Name   whoami::devicename():          Ta'ra
    Device's Hostname      whoami::hostname():            taiara
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Fedora Linux 43.20251220.0 (Silverblue)
    Device's Desktop Env.  whoami::desktop_env():         Gnome
    Device's CPU Arch      whoami::cpu_arch():            x86_64
    WhoAmI 2.0.0
    
    User's Language        whoami::lang_prefs():            LanguagePreferences { fallbacks: [Language { lang: [101, 110], country: Some([85, 83]) }, Language { lang: [101, 110], country: None }], collation: None, char_classes: None, monetary: None, messages: None, numeric: None, time: None }
    User's Name            whoami::realname_os():           "Jeryn Lau"
    User's Username        whoami::username_os():           "jerynlau"
    User's Account         whoami::account_os():            "jerynlau"
    Device's Pretty Name   whoami::devicename_os():         "Ta\'ra"
    Device's Hostname      whoami::hostname():              "taiara"
    Device's Platform      whoami::platform():              Linux
    Device's OS Distro     whoami::distro():                Ok("Fedora Linux 43.20251220.0 (Silverblue)")
    Device's Desktop Env.  whoami::desktop_env():           Some(Gnome)
    Device's CPU Arch      whoami::cpu_arch():              X64

    Now, toolbx enter, and do the same. Expecting something like:

    WhoAmI 2.0.0
    
    User's Language        whoami::lang_prefs():          Collation=en/US:en,CharClasses=en/US:en,Monetary=en/US:en,Messages=en/US:en,Numeric=en/US:en,Time=en/US:en
    User's Name            whoami::realname():            Jeryn Lau
    User's Username        whoami::username():            jerynlau
    User's Username        whoami::account():             jerynlau
    Device's Pretty Name   whoami::devicename():          <unknown>
    Device's Hostname      whoami::hostname():            toolbx
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Fedora Linux 43 (Toolbx Container Image)
    Device's Desktop Env.  whoami::desktop_env():         Gnome
    Device's CPU Arch      whoami::cpu_arch():            x86_64
    WhoAmI 2.0.0
    
    User's Language        whoami::lang_prefs():            LanguagePreferences { fallbacks: [Language { lang: [101, 110], country: Some([85, 83]) }, Language { lang: [101, 110], country: None }], collation: None, char_classes: None, monetary: None, messages: None, numeric: None, time: None }
    User's Name            whoami::realname_os():           "Jeryn Lau"
    User's Username        whoami::username_os():           "jerynlau"
    User's Account         whoami::account_os():            "jerynlau"
    Device's Pretty Name   whoami::devicename_os():         "<unknown>"
    Device's Hostname      whoami::hostname():              "toolbx"
    Device's Platform      whoami::platform():              Linux
    Device's OS Distro     whoami::distro():                Ok("Fedora Linux 43 (Toolbx Container Image)")
    Device's Desktop Env.  whoami::desktop_env():           Some(Gnome)
    Device's CPU Arch      whoami::cpu_arch():              X64
  • Testing complete on Ubuntu Linux 24.04.1 LTS

    Ubuntu Virtualized on Fedora Silverblue Testing

    Install from file within GNOME boxes (keep all defaults).

    In Ubuntu Installer, do default installation.

    sudo apt install git curl gcc tig # y
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 1
    source "$HOME/.cargo/env"

    Clone whoami, open a terminal, and run:

    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expect to see something like:

    WhoAmI 2.0.0
    
    User's Language        whoami::lang_prefs():          Collation=en/US:en,CharClasses=en/US:en,Monetary=en/US:en,Messages=en/US:en,Numeric=en/US:en,Time=en/US:en
    User's Name            whoami::realname():            Jeryn Lau
    User's Username        whoami::username():            jeryn-lau
    User's Username        whoami::account():             jeryn-lau
    Device's Pretty Name   whoami::devicename():          Taiara
    Device's Hostname      whoami::hostname():            Taiara
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Ubuntu 25.10
    Device's Desktop Env.  whoami::desktop_env():         Ubuntu
    Device's CPU Arch      whoami::cpu_arch():            x86_64
  • Testing complete on macOS Catalina

    MacOS Testing Clone whoami, and run:
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expect to see something like:

    WhoAmI 2.0.0
    
    User's Language        whoami::lang_prefs():          Collation=en/US:en,CharClasses=en/US:en,Monetary=en/US:en,Messages=en/US:en,Numeric=en/US:en,Time=en/US:en
    User's Name            whoami::realname():            Aldaron Lau
    User's Username        whoami::username():            aldaronlau
    User's Username        whoami::account():             aldaronlau
    Device's Pretty Name   whoami::devicename():          Aldaron’s MacBook Air
    Device's Hostname      whoami::hostname():            Aldarons-MacBook-Air.local
    Device's Platform      whoami::platform():            macOS
    Device's OS Distro     whoami::distro():              Mac OS X 10.15.7
    Device's Desktop Env.  whoami::desktop_env():         Aqua
    Device's CPU Arch      whoami::cpu_arch():            x86_64
  • Testing complete on FreeBSD

    FreeBSD (virtualized on Fedora Silverblue) Testing Download from within GNOME Boxes.

    Set 4 GiB memory, and 20 GiB Storage limit

    Go through the installation process, keeping all defaults.

    Install packages

    Log in as root

    pkg install git

    Log in as you

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 1
    . "$HOME/.cargo/env"
    git clone https://github.com/ardaku/whoami.git
    cd whoami
    # run both debug and release
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expect to see something like:

    WhoAmI 2.0.0
    
    User's Language        whoami::lang_prefs():          Collation=,CharClasses=,Monetary=,Messages=,Numeric=,Time=
    User's Name            whoami::realname():            Jeryn Lau
    User's Username        whoami::username():            jerynlau
    User's Username        whoami::account():             jerynlau
    Device's Pretty Name   whoami::devicename():          <unknown>
    Device's Hostname      whoami::hostname():            testing
    Device's Platform      whoami::platform():            BSD
    Device's OS Distro     whoami::distro():              FreeBSD 14.3-RELEASE
    Device's Desktop Env.  whoami::desktop_env():         <unknown>
    Device's CPU Arch      whoami::cpu_arch():            x86_64
  • Testing complete on illumos

    Tribblix (virtualized on Fedora Silverblue) Testing

    Download the 64-bit x86/x64 standard image.

    Install it in GNOME Boxes (select operating system OpenIndiana Hipster).

    Set 4 GiB memory, and 16 GiB Storage limit

    Login as jack (password jack)

    su - root # password `tribblix`
    format # 0, quit
    ./live_install -G c1t0d0 develop # replace c1t0d0 with disk
    reboot -p

    Login as jack (password jack)

    Now, install Rust (use bash instead of sh, sh doesn't work)

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash # 1
    source "$HOME/.cargo/env"

    Testing

    git clone https://github.com/ardaku/whoami.git
    cd whoami
    # run both debug and release
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expected output is

    WhoAmI 2.0.0
    
    User's Language        whoami::lang_prefs():          Collation=,CharClasses=,Monetary=,Messages=,Numeric=,Time=
    User's Name            whoami::realname():            Tribblix Jack
    User's Username        whoami::username():            jack
    User's Username        whoami::account():             jack
    Device's Pretty Name   whoami::devicename():          tribblix
    Device's Hostname      whoami::hostname():            tribblix
    Device's Platform      whoami::platform():            illumos
    Device's OS Distro     whoami::distro():              Tribblix
    Device's Desktop Env.  whoami::desktop_env():         XFCE
    Device's CPU Arch      whoami::cpu_arch():            x86_64

Changelog

Changed

  • Unix: Use getpwuid() instead of getpwuid_r() in implementation
  • Unix: hostname() now only allocates the amount required, rather than always
    256 bytes
  • Deps: Update minimum libc to 0.2.90
  • Deps: Update minimum web-sys to 0.3.94
  • Deps: Update minimum libredox to 0.1.20

Fixed

  • Unix: Properly handle missing record error for getpwuid() (first sets errno to zero)
  • Unix: Undefined behavior calling gethostname() for hostnames of exactly 255 bytes (maximum length)

@AldaronLau
AldaronLau changed the base branch from v2 to v2.1 October 7, 2026 03:54

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant