Skip to content

aix: install rust#4273

Open
abmusse wants to merge 5 commits intonodejs:mainfrom
abmusse:rust-aix
Open

aix: install rust#4273
abmusse wants to merge 5 commits intonodejs:mainfrom
abmusse:rust-aix

Conversation

@abmusse
Copy link
Copy Markdown
Contributor

@abmusse abmusse commented Mar 13, 2026

Add rust, cargo, and rustfmt to the list of packages to install.

@abmusse abmusse requested review from richardlau and sxa March 13, 2026 21:49
@richardlau
Copy link
Copy Markdown
Member

It looks like on AIX, cargo/rustc are not installed into /opt/freeware/bin so are not on the PATH, e.g. https://ci.nodejs.org/job/node-test-commit-aix/61998/nodes=aix72-power9/console

It looks like they are in /opt/freeware/lib/RustSDK/1.88/bin. We either need to:

  • Add this path to the PATH in the Jenkins start script:
    export PATH="/opt/freeware/bin:/usr/opt/python3/bin/:$PATH"; \
  • Add the path into select-compiler.sh for AIX.
  • Export CARGO and RUSTC environment variables in select-compiler.sh for AIX with fully qualified paths to cargo/rustc.
  • Create symlinks in /opt/freeware/bin to cargo/rustc (i.e. the symlinks would be on the PATH).

Copy link
Copy Markdown
Member

@sxa sxa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I'm sure you'd agree, none of these options are good :'(

I guess that since the version is hardcoded to 1.88 we could legitimately use any of those. I might lean towards the symlinks (mostly to make any manual building/debugging on the machine easier) although I do wonder if there was a good reason the package maintainer decided to keep it isolated like this and not include a symlink.

@abmusse
Copy link
Copy Markdown
Contributor Author

abmusse commented Apr 13, 2026

As I'm sure you'd agree, none of these options are good :'(

I guess that since the version is hardcoded to 1.88 we could legitimately use any of those. I might lean towards the symlinks (mostly to make any manual building/debugging on the machine easier) although I do wonder if there was a good reason the package maintainer decided to keep it isolated like this and not include a symlink.

I'm ok with creating the symlinks, just wondering where would best spot to do so in the playbooks? I guess I could do that in select-compiler.sh or the AIX Jenkins start script.

@richardlau
Copy link
Copy Markdown
Member

richardlau commented Apr 13, 2026

As I'm sure you'd agree, none of these options are good :'(
I guess that since the version is hardcoded to 1.88 we could legitimately use any of those. I might lean towards the symlinks (mostly to make any manual building/debugging on the machine easier) although I do wonder if there was a good reason the package maintainer decided to keep it isolated like this and not include a symlink.

I'm ok with creating the symlinks, just wondering where would best spot to do so in the playbooks? I guess I could do that in select-compiler.sh or the AIX Jenkins start script.

Don't create symlinks in select-compiler.sh -- We only want to set env variables in there (e.g. setting PATH). If you opt for symlinks, create a new aix.yml in ansible/roles/baselayout/tasks/partials/postinstall which gets run after the package installs by

- name: run os-specific steps after package install
include_tasks: "{{ post_include }}"
loop_control:
loop_var: post_include
with_first_found:
- files:
- "{{ role_path }}/tasks/partials/postinstall/{{ os }}.yml"
- "{{ role_path }}/tasks/partials/postinstall/{{ os|stripversion }}.yml"
skip: true
.

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.

4 participants