Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display useful message when Linux post-install script has insufficient permissions #893

Merged
merged 1 commit into from
Jun 10, 2024

Conversation

per1234
Copy link
Contributor

@per1234 per1234 commented Jun 10, 2024

The Arduino Boards Manager automatically executes the post_install.sh script during installation of the platform on a Linux machine:

https://arduino.github.io/arduino-cli/dev/platform-specification/#post-install-script

This platform's post-install script is intended to create a udev rules file that gives write permissions for the USB devices of the platform's boards. These permissions are required in order to upload to the boards.

The creation of the udev rules file requires superuser privileges, which are typically not available in the context of the post-install script's execution by the Arduino development software. The script contains code to check whether the necessary privileges are available. If not, it prints a message and skips the udev rules file creation.

Previously the message printed when the udev rules file creation was not possible was "Please run as root":

Downloading packages
arduino:mbed_nano@4.1.3
Installing platform arduino:mbed_nano@4.1.3
Configuring platform.
Please run as root

Platform arduino:mbed_nano@4.1.3 installed

That "Please run as root" message was completely meaningless to the user when printed during the Boards Manager installation. Worse, it might cause them
to think they must run the Arduino development software as root user, which is a bad idea and also wouldn't result in
the udev rules file being created since the installation of the platform to the user's account was already completed.

The script is here updated to provide a meaningful explanation of the potential problem as well as the specific command the user can run from the terminal to execute the script as superuser:

Downloading packages
arduino:mbed_nano@4.1.3
Installing platform arduino:mbed_nano@4.1.3
Configuring platform.

You might need to configure write permissions for uploading.
Run the following command from the terminal:
sudo "/home/per/.arduino15/packages/arduino/hardware/mbed_nano/4.1.3/post_install.sh"


Platform arduino:mbed_nano@4.1.3 installed

This is a propagation of a change originally implemented in the arduino/ArduinoCore-renesas repo: arduino/ArduinoCore-renesas#334

…t permissions

The Arduino Boards Manager automatically executes the `post_install.sh` script during installation of the platform on a
Linux machine.

This platform's post-install script is intended to create a udev rules file that gives write permissions for the USB
devices of the platform's boards. These permissions are required in order to upload to the boards.

The creation of the udev rules file requires superuser privileges, which are typically not available in the context of
the post-install script's execution. The script contains code to check whether the necessary privileges are available.
If not, it prints a message and skips the udev rules file creation.

Previously the message printed when the udev rules file creation was not possible was "Please run as root". This message
was completely meaningless to the user when printed during the Boards Manager installation. Worse, it might cause them
to think they must run the Arduino development software as root user, which is a bad idea and also wouldn't result in
the udev rules file being created since the installation of the platform to the user's account was already completed.

The message is hereby updated to provide a meaningful explanation of the potential problem as well as the specific
command the user can run from the terminal to execute the script as superuser.
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.

None yet

2 participants