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

Build error "Not find BROTLIDEC" #4867

Open
SoftStoneDevelop opened this issue Jan 30, 2025 · 9 comments
Open

Build error "Not find BROTLIDEC" #4867

SoftStoneDevelop opened this issue Jan 30, 2025 · 9 comments
Assignees
Labels
area-doc Documentation improvements

Comments

@SoftStoneDevelop
Copy link

Description

I try build dotnet/dotnet repo following instructions in:
https://github.com/dotnet/dotnet/blob/main/README.md#dev-instructions
but i get error.

Reproduction Steps

  1. Clone repo
    https://github.com/dotnet/dotnet/
    and switch to release/9.0.1xx branch

  2. Execute

./prep-source-build.sh
  1. On machine i install dependencies:
apt install -y cmake llvm lld clang build-essential \
  python-is-python3 curl git lldb libicu-dev liblttng-ust-dev \
  libssl-dev libkrb5-dev ninja-build pigz cpio
apt install -y build-essential gettext locales cmake llvm clang lld lldb liblldb-dev libunwind8-dev libicu-dev liblttng-ust-dev \
                libssl-dev libkrb5-dev zlib1g-dev pigz cpio
sudo apt install build-essential checkinstall zlib1g-dev libssl-dev -y

  1. Try to build
./build.sh -sb --clean-while-building

Expected behavior

Successfully build SDK

Actual behavior

Get Error

Image

Regression?

No response

Known Workarounds

No response

Configuration

OS is Debian 12

Other information

No response

Copy link

Tagging subscribers to this area: @hoyosjs
See info in area-owners.md if you want to be subscribed.

@SoftStoneDevelop SoftStoneDevelop changed the title Fix build with -DCLR_CMAKE_USE_SYSTEM_BROTLI=true Build error "Not find BROTLIDEC" Jan 30, 2025
@jkotas
Copy link
Member

jkotas commented Jan 30, 2025

On machine i install dependencies:

Where did you get the list of dependencies from? It seems to be missing brotli. The source-build uses system brotli by default, so it has to be installed as a dependency.

cc @omajid

@SoftStoneDevelop
Copy link
Author

SoftStoneDevelop commented Jan 30, 2025

install brotli

On machine i install dependencies:

Where did you get the list of dependencies from? It seems to be missing brotli. The source-build uses system brotli by default, so it has to be installed as a dependency.

cc @omajid

From https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/linux-requirements.md#debian-and-ubuntu
+
https://github.com/dotnet/runtime/blob/main/eng/common/native/install-dependencies.sh(I installed this when I was already desperate)

But even if I install brotli directly

sudo apt install brotli

this is not help

@jkotas
Copy link
Member

jkotas commented Jan 30, 2025

https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/linux-requirements.md#debian-and-ubuntu

These are requirements for building dotnet/runtime repo. Source build has different requirements.

sudo apt install brotli

You need to install brotli dev package, like brotli-dev ?

@omajid
Copy link
Member

omajid commented Jan 30, 2025

Source build has different requirements.

The VMR readme at https://github.com/dotnet/dotnet/blob/main/README.md#dev-instructions points to https://github.com/dotnet/runtime/tree/main/docs/workflow/requirements and as pointed out in this issue, the build requirements are different between runtime and VMR now.

Should we consider adding more conditionals or extra package dependencies to the runtime docs or should we add custom VMR build instructions to the VMR?

cc @MichaelSimons @mthalman

@jkotas
Copy link
Member

jkotas commented Jan 31, 2025

Can we fix this by switching the default dotnet/dotnet build configuration to non-source-build? It would make the set of prerequisites same between dotnet/runtime and dotnet/dotnet by default, and it would make things consistent across platform. (source-build is Linux specific).

@omajid
Copy link
Member

omajid commented Jan 31, 2025

@jkotas That's already the case. The reporter ran ./build.sh -sb. The -sb stands for source-build.

@SoftStoneDevelop
Copy link
Author

SoftStoneDevelop commented Jan 31, 2025

You need to install brotli dev package, like brotli-dev ?

Indeed, installing libbrotli-dev helped. The error is gone, thanks.
For me the problem is solved.

@jkotas
Copy link
Member

jkotas commented Jan 31, 2025

In general, I expect that VMR has more pre-requisites than individual repos, irrespective of source build.

For example, building ASP.NET requires node.js (https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md#visual-studio-on-windows). I assume that building VMR (on Windows) requires node.js as well. Is that correct?
 
I think the full set of dependencies for building both default and non-default VMR configurations should be documented in the VMR. It is ok to link to dotnet/runtime and other repos in that documentation.

@jkotas jkotas transferred this issue from dotnet/runtime Jan 31, 2025
@jkotas jkotas added the area-doc Documentation improvements label Jan 31, 2025
@MichaelSimons MichaelSimons moved this from Backlog to 10.0 Preview 2 in .NET Source Build Feb 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-doc Documentation improvements
Projects
Status: 10.0 Preview 2
Status: No status
Development

No branches or pull requests

5 participants