Does not work on NixOS
By installing dotnet-sdk_9 and setting $DOTNET_ROOT=/nix/store/747wjggf941dljw64nprasfnsk7aqlwp-dotnet-sdk-9.0.200/share/dotnet as described here (https://github.com/unoplatform/uno/discussions/8962), I could run uno-check, but it does not " suggest a way to fix them yourself":
$ uno-check
╓╣╜"╙╬╖
╓╣` "╣╗
,@Ñ╜╩╬╗ ╙▒Ñ%,
╓╬╝ ]╣╦ ╓▓ ╙╣╖
╬╝ ,@╜ ╚@╬╜ ▒
╬╗ ,╣╜ ╝@╦╣` ╓╣╜
╙╬╦ ▒ ╙@╖ ╓╣╜
╙╝@ "╙╣▒
╚h ,@╝
╙Ñ@Ñ╜
_ _
_ _ _ __ ___ ___ | |__ ___ ___ | | __
| | | | | '_ \ / _ \ _____ / __| | '_ \ / _ \ / __| | |/ /
| |_| | | | | | | (_) | |_____| | (__ | | | | | __/ | (__ | <
\__,_| |_| |_| \___/ \___| |_| |_| \___| \___| |_|\_\
¤ Uno Platform Check v1.29.4.0 ¤
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
This tool will check your Uno Platform development environment.
If problems are detected, it will offer the option to try and fix them for you, or suggest a way to fix them
yourself.
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
» Synchronizing configuration... ok
» Scheduling appointments... ok
› OpenJDK 11.0 Checkup...
× Skipped: Android SDK
× Skipped: Android Emulator
› .NET SDK Checkup...
× Skipped: Git
× Skipped: Linux Ninja Build
› dotnet new Uno Project Command Line Templates Checkup...
× Skipped: Uno SDK
× Skipped: .NET SDK - Workloads (9.0.101)
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
! There were one or more problems detected.
Please review the errors and correct them and run uno-check again.
Press Enter to finish...
Is there documentation on the procedure for manual installation of Uno Platform dependencies?
(Using NixOS 24.11)
Thanks for the report. We're not explicitly supporting NixOS at this time, but it's worth knowing what we can change to improve the support.
Can you run uno-check --verbose ?
By doing the following, I was able to pass uno-check:
- Install dotnet using dotnet-install.sh and add environmental variables
export $DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1andexport $DOTNET_ROOT="~/.dotnet" - Run
dotnet tool install -g uno.check - Run
sudo ln -s /run/current-system/sw/bin/bash /bin/bashas/bin/bashdoes not exist by default in NixOS (https://discourse.nixos.org/t/add-bin-bash-to-avoid-unnecessary-pain/5673) - Manually run
dotnet workload install androiddotnet workload install maui-androiddotnet workload install maui-tizenas automatic fix fails
$ uno-check
╓╣╜"╙╬╖
╓╣` "╣╗
,@Ñ╜╩╬╗ ╙▒Ñ%,
╓╬╝ ]╣╦ ╓▓ ╙╣╖
╬╝ ,@╜ ╚@╬╜ ▒
╬╗ ,╣╜ ╝@╦╣` ╓╣╜
╙╬╦ ▒ ╙@╖ ╓╣╜
╙╝@ "╙╣▒
╚h ,@╝
╙Ñ@Ñ╜
_ _
_ _ _ __ ___ ___ | |__ ___ ___ | | __
| | | | | '_ \ / _ \ _____ / __| | '_ \ / _ \ / __| | |/ /
| |_| | | | | | | (_) | |_____| | (__ | | | | | __/ | (__ | <
\__,_| |_| |_| \___/ \___| |_| |_| \___| \___| |_|\_\
¤ Uno Platform Check v1.29.4.0 ¤
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
This tool will check your Uno Platform development environment.
If problems are detected, it will offer the option to try and fix them for you, or suggest a way to fix them yourself.
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
» Synchronizing configuration... ok
» Scheduling appointments... ok
› OpenJDK 11.0 Checkup...
– 17.0.13 (/nix/store/z7wgnb3pdml3rgkqrhc640kg1wwrp9pa-openjdk-17.0.13+11/lib/openjdk/bin/..)
– 21.0.5 (/nix/store/fmca27lspmmwcb4ln366x15cfwckhi0c-openjdk-21.0.5+11/lib/openjdk/bin/..)
› Android SDK Checkup...
– emulator (35.3.12)
– build-tools;35.0.0 (35.0.0)
– platforms;android-35 (2)
– system-images;android-35;google_apis;x86_64 (9)
– platform-tools (35.0.2)
– cmdline-tools;12.0 (12.0)
› Android Emulator Checkup...
– Emulator: Android_Emulator_35 found.
› .NET SDK Checkup...
– 8.0.406 - /home/z/.dotnet/sdk/8.0.406
– 9.0.200 - /home/z/.dotnet/sdk/9.0.200
× Skipped: Git
× Skipped: Linux Ninja Build
› dotnet new Uno Project Command Line Templates Checkup...
› Uno SDK Checkup...
› .NET SDK - Workloads (9.0.101) Checkup...
– microsoft.net.sdk.android (35.0.39/9.0.100) is installed.
– microsoft.net.sdk.maui (9.0.14/9.0.100) is installed.
– microsoft.net.workload.mono.toolchain.current (9.0.2/9.0.100) is installed.
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
– Congratulations, everything looks great!
Press Enter to finish...
And this should be also related.
Thanks for the update! Indeed, uno-check could be smarter when finding bash.
As for DOTNET_SYSTEM_GLOBALIZATION_INVARIANT this is surprising, what was the error that prompted to add this specific configuration?
Finally, for the workloads, what was the error reported by uno-check when run inside?
Sorry but I am discouraged to do further discussion because
- Installation by dotnet-install.sh is already so far from Nix practice. I need to do a little more research before suggesting any changes. (Related: https://github.com/NixOS/nixpkgs/issues/226107#issuecomment-2686757386)
- I am not familiar with making Nix systems closer to FHS, so in order to minimize the workaround procedure I need to do some more research.
- I am also beginning to think that what is really needed in NixOS case is to add a configuration to the documentation rather than seeking some workaround for running uno-check.
Sorry for messing.
Thanks for the update. If there are additional information that are available, we'll include them in our documentation.