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

[Arch Linux] workload 'android' missing on .NET 8 Linux #97319

Closed
ChristophSchmidpeter opened this issue Jan 22, 2024 · 19 comments
Closed

[Arch Linux] workload 'android' missing on .NET 8 Linux #97319

ChristophSchmidpeter opened this issue Jan 22, 2024 · 19 comments
Labels
area-Workloads Workloads like wasm-tools os-android
Milestone

Comments

@ChristophSchmidpeter
Copy link

Description

On Linux with .NET 8.0 I get the following:

dotnet workload list

aspire .NET Aspire SDK (Preview)
wasi-experimental workloads/wasi-experimental/description
wasm-experimental workloads/wasm-experimental/description
wasm-experimental-net7 .NET WebAssembly experimental tooling for net7.0
wasm-tools .NET WebAssembly build tools
wasm-tools-net6 .NET WebAssembly build tools for net6.0
wasm-tools-net7 .NET WebAssembly build tools for net7.0

The 'android' workspace is missing, which used to be working on .NET 7 (see #85505)
I need the 'android' workspace for Fabulous.Avalonia on Linux. Is there a reason why it is not included in .NET 8?

Reproduction Steps

See above

Expected behavior

'android' is listed

Actual behavior

'android' is miising

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jan 22, 2024
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jan 22, 2024
@ChristophSchmidpeter ChristophSchmidpeter changed the title workload android missing on .NET 8 Linux workload 'android' missing on .NET 8 Linux Jan 22, 2024
@lambdageek
Copy link
Member

lambdageek commented Jan 22, 2024

Update It's not available on linux-arm64; that is expected, see below

Confirmed on linux-arm64
$ uname -a
Linux ubuntu-linux-20-04-desktop 5.15.0-67-generic #74~20.04.1-Ubuntu SMP Wed Feb 22 14:52:19 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
$ dotnet --info
.NET SDK:
 Version:           8.0.101
 Commit:            6eceda187b
 Workload version:  8.0.100-manifests.69afb982

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         linux-arm64
 Base Path:   /home/parallels/local-net8/sdk/8.0.101/

.NET workloads installed:
 Workload version: 8.0.100-manifests.69afb982
There are no installed workloads to display.

Host:
  Version:      8.0.1
  Architecture: arm64
  Commit:       bf5e279d92

.NET SDKs installed:
  8.0.101 [/home/parallels/local-net8/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.1 [/home/parallels/local-net8/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.1 [/home/parallels/local-net8/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/home/parallels/local-net8]

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download
$ dotnet workload install android
Workload ID android isn't supported on this platform.

@lambdageek lambdageek added os-android area-Workloads Workloads like wasm-tools labels Jan 22, 2024
@ghost
Copy link

ghost commented Jan 22, 2024

Tagging subscribers to 'arch-android': @steveisok, @akoeplinger
See info in area-owners.md if you want to be subscribed.

Issue Details

Description

On Linux with .NET 8.0 I get the following:

dotnet workload list

aspire .NET Aspire SDK (Preview)
wasi-experimental workloads/wasi-experimental/description
wasm-experimental workloads/wasm-experimental/description
wasm-experimental-net7 .NET WebAssembly experimental tooling for net7.0
wasm-tools .NET WebAssembly build tools
wasm-tools-net6 .NET WebAssembly build tools for net6.0
wasm-tools-net7 .NET WebAssembly build tools for net7.0

The 'android' workspace is missing, which used to be working on .NET 7 (see #85505)
I need the 'android' workspace for Fabulous.Avalonia on Linux. Is there a reason why it is not included in .NET 8?

Reproduction Steps

See above

Expected behavior

'android' is listed

Actual behavior

'android' is miising

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

Author: ChristophSchmidpeter
Assignees: -
Labels:

os-android, untriaged, needs-area-label

Milestone: -

@lambdageek lambdageek removed the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jan 22, 2024
@lambdageek lambdageek added this to the 8.0.x milestone Jan 22, 2024
@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Jan 22, 2024
@lambdageek
Copy link
Member

@lewing

@lambdageek
Copy link
Member

@vitek-karas I think this may be on your plate now. @steveisok may have some ideas for how to approach this

@lambdageek
Copy link
Member

@ChristophSchmidpeter Are you on an x64 or an arm64 linux distro?
Can you send the output of dotnet --info

@lambdageek
Copy link
Member

Apparently the linux-arm64 android workload is relatively new (the PR went into .NET 9) dotnet/android#8500

@lambdageek
Copy link
Member

lambdageek commented Jan 25, 2024

A coworker with a linux-x64 machine verified that android workload is available there:

vbrezae@ubuntu:~/.dotnet$ ./dotnet workload search android

Welcome to .NET 8.0!
---------------------
SDK Version: 8.0.101

Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate, view the instructions: https://aka.ms/dotnet-https-linux

----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------

Workload ID       Description                                         
----------------------------------------------------------------------
android           .NET SDK Workload for building Android applications.
maui-android      .NET MAUI SDK for Android

@lambdageek lambdageek added the needs-author-action An issue or pull request that requires more info or actions from the author. label Jan 25, 2024
@ghost
Copy link

ghost commented Jan 25, 2024

This issue has been marked needs-author-action and may be missing some important information.

@ChristophSchmidpeter
Copy link
Author

ChristophSchmidpeter commented Jan 26, 2024

@ChristophSchmidpeter Are you on an x64 or an arm64 linux distro? Can you send the output of

@lambdageek I am on x64

dotnet --info                                                                        ~/Key
.NET SDK:
 Version:           8.0.101
 Commit:            6eceda187b
 Workload version:  8.0.100-manifests.839fd78c

Runtime Environment:
 OS Name:     arch
 OS Version:  
 OS Platform: Linux
 RID:         arch-x64
 Base Path:   /usr/share/dotnet/sdk/8.0.101/

.NET workloads installed:
 Workload version: 8.0.100-manifests.839fd78c
 [wasi-experimental]
   Installation Source: SDK 8.0.100
   Manifest Version:    8.0.1/8.0.100
   Manifest Path:       /usr/share/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.1/WorkloadManifest.json
   Install Type:        FileBased


Host:
  Version:      8.0.1
  Architecture: x64
  Commit:       bf5e279d92

.NET SDKs installed:
  5.0.408 [/usr/share/dotnet/sdk]
  6.0.126 [/usr/share/dotnet/sdk]
  7.0.115 [/usr/share/dotnet/sdk]
  8.0.101 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.26 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.15 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

@ghost ghost added needs-further-triage Issue has been initially triaged, but needs deeper consideration or reconsideration and removed needs-author-action An issue or pull request that requires more info or actions from the author. labels Jan 26, 2024
@ivanpovazan
Copy link
Member

@ChristophSchmidpeter @lambdageek

Could you help me understand what is the issue here?

I tried installing the android workload via dotnet workload install android with 8.101 sdk on linux-x64, and it seems to work.

  • dotnet --info
@ivanpovazan ➜ /workspaces/runtime (trim-ios-on-helix) $ ./dotnet.sh --info
.NET SDK:
 Version:           8.0.101
 Commit:            6eceda187b
 Workload version:  8.0.100-manifests.ba313bcd

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  22.04
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /workspaces/runtime/.dotnet/sdk/8.0.101/

.NET workloads installed:
 Workload version: 8.0.100-manifests.ba313bcd
 [android]
   Installation Source: SDK 8.0.100
   Manifest Version:    34.0.52/8.0.100
   Manifest Path:       /workspaces/runtime/.dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.android/34.0.52/WorkloadManifest.json
   Install Type:        FileBased


Host:
  Version:      8.0.1
  Architecture: x64
  Commit:       bf5e279d92

.NET SDKs installed:
  8.0.100 [/workspaces/runtime/.dotnet/sdk]
  8.0.101 [/workspaces/runtime/.dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.0 [/workspaces/runtime/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.1 [/workspaces/runtime/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.0 [/workspaces/runtime/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.1 [/workspaces/runtime/.dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  /workspaces/runtime/global.json

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download
  • dotnet workload list
@ivanpovazan ➜ /workspaces/runtime (trim-ios-on-helix) $ ./dotnet.sh workload list

Installed Workload Id      Manifest Version      Installation Source
--------------------------------------------------------------------
android                    34.0.52/8.0.100       SDK 8.0.100        

Use `dotnet workload search` to find additional workloads to install.

@lambdageek
Copy link
Member

I think the issue is arch-x64.

@lambdageek lambdageek changed the title workload 'android' missing on .NET 8 Linux [Arch Linux] workload 'android' missing on .NET 8 Linux Jan 26, 2024
@lambdageek
Copy link
Member

lambdageek commented Jan 26, 2024

@ChristophSchmidpeter did you install the dotnet-sdk arch Linux package or did you download an official microsoft binary (from https://get.dot.net/ or using the dotnet-install.sh script as noted in the Arch Wiki )?

Workloads are only supported with the official microsoft binaries, not with the AUR binaries.

@ChristophSchmidpeter
Copy link
Author

@ChristophSchmidpeter did you install the dotnet-sdk arch Linux package or did you download an official microsoft binary (from get.dot.net or using the dotnet-install.sh script as noted in the Arch Wiki )?

@lambdageek I have installed the dotnet-sdk arch Linux [package]

1 extra/dotnet-sdk 8.0.1.sdk101-1 (85.3 MiB 299.2 MiB) (Installed)
The .NET Core SDK

@ChristophSchmidpeter
Copy link
Author

Installed via dotnet-sdk arch Linux package:

$ dotnet --version
8.0.101
$ dotnet workload search

Workload ID                 Description                                     
----------------------------------------------------------------------------
aspire                      .NET Aspire SDK (Preview)                       
wasi-experimental           workloads/wasi-experimental/description         
wasm-experimental           workloads/wasm-experimental/description         
wasm-experimental-net7      .NET WebAssembly experimental tooling for net7.0
wasm-tools                  .NET WebAssembly build tools                    
wasm-tools-net6             .NET WebAssembly build tools for net6.0         
wasm-tools-net7             .NET WebAssembly build tools for net7.0

Via ./dotnet-install.sh --install-dir /my/path -version latest

$ ./dotnet --version
8.0.101

$ ./dotnet workload search
Workload ID                 Description                                         
--------------------------------------------------------------------------------
android                     .NET SDK Workload for building Android applications.
aspire                      .NET Aspire SDK (Preview)                           
macos                       .NET SDK Workload for building macOS applications.  
maui-android                .NET MAUI SDK for Android                           
maui-tizen                  .NET MAUI SDK for Tizen                             
maui-windows                .NET MAUI SDK for Windows                           
wasi-experimental           workloads/wasi-experimental/description             
wasm-experimental           workloads/wasm-experimental/description             
wasm-experimental-net7      .NET WebAssembly experimental tooling for net7.0    
wasm-tools                  .NET WebAssembly build tools                        
wasm-tools-net6             .NET WebAssembly build tools for net6.0             
wasm-tools-net7             .NET WebAssembly build tools for net7.0

@lambdageek lambdageek removed the needs-further-triage Issue has been initially triaged, but needs deeper consideration or reconsideration label Jan 26, 2024
@ChristophSchmidpeter
Copy link
Author

How come the Arch Linux dotnet-sdk does not include some workloads like the android one?
Are there some build parameters passed to the build system to include/exclude the availability of particular workloads, or how does it work?

@lambdageek
Copy link
Member

lambdageek commented Jan 26, 2024

How come the Arch Linux dotnet-sdk does not include some workloads like the android one?
Are there some build parameters passed to the build system to include/exclude the availability of particular workloads, or how does it work?

Looks like this is tracked as part of dotnet/source-build#3242 - that might be a better place to ask these questions; i'm far from an expert on how workloads work, sorry.


please use the official microsoft binaries, if possible.

@lambdageek
Copy link
Member

Duplicate of dotnet/source-build#3242

@lambdageek lambdageek marked this as a duplicate of dotnet/source-build#3242 Jan 26, 2024
@lambdageek lambdageek closed this as not planned Won't fix, can't repro, duplicate, stale Jan 26, 2024
@arkady-marchenko
Copy link

arkady-marchenko commented Feb 1, 2024

For those who'd like to overcome the issue, there are steps:

  1. download dotnet-install.sh
  2. run it as './dotnet-install.sh -DryRun'
  3. Copy url of the dotnet tar.gz file
  4. download that file and unpack
  5. goto sdk-manifests folder and replace ones in your /usr/share/dotnet folder
    That's it!

@emitrackman
Copy link

For those who'd like to overcome the issue, there are steps:

1. download dotnet-install.sh

2. run it as './dotnet-install.sh -DryRun'

3. Copy url of the dotnet tar.gz file

4. download that file and unpack

5. goto sdk-manifests folder and replace ones in your /usr/share/dotnet folder
   That's it!

Thanks! Actually files are identical (whitespace/line-endings change) except for missing android/maui/etc manifests -- which explains why they are missing from dotnet workload search

$ diff -rw ./sdk-manifests/8.0.100/ /usr/share/dotnet/sdk-manifests/8.0.100/
Only in ./sdk-manifests/8.0.100/: microsoft.net.sdk.android
Only in ./sdk-manifests/8.0.100/: microsoft.net.sdk.ios
Only in ./sdk-manifests/8.0.100/: microsoft.net.sdk.maccatalyst
Only in ./sdk-manifests/8.0.100/: microsoft.net.sdk.macos
Only in ./sdk-manifests/8.0.100/: microsoft.net.sdk.maui
Only in ./sdk-manifests/8.0.100/: microsoft.net.sdk.tvos

@github-actions github-actions bot locked and limited conversation to collaborators Mar 23, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Workloads Workloads like wasm-tools os-android
Projects
None yet
Development

No branches or pull requests

5 participants