uno.check icon indicating copy to clipboard operation
uno.check copied to clipboard

Does not work on NixOS

Open 34j opened this issue 9 months ago • 5 comments

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":

Image

$ 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)

34j avatar Feb 26 '25 10:02 34j

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 ?

jeromelaban avatar Feb 26 '25 14:02 jeromelaban

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=1 and export $DOTNET_ROOT="~/.dotnet"
  • Run dotnet tool install -g uno.check
  • Run sudo ln -s /run/current-system/sw/bin/bash /bin/bash as /bin/bash does not exist by default in NixOS (https://discourse.nixos.org/t/add-bin-bash-to-avoid-unnecessary-pain/5673)
  • Manually run dotnet workload install android dotnet workload install maui-android dotnet workload install maui-tizen as 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.

34j avatar Feb 27 '25 06:02 34j

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?

jeromelaban avatar Feb 28 '25 16:02 jeromelaban

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.

34j avatar Mar 04 '25 05:03 34j

Thanks for the update. If there are additional information that are available, we'll include them in our documentation.

jeromelaban avatar Mar 04 '25 13:03 jeromelaban