-
Notifications
You must be signed in to change notification settings - Fork 66
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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
Locally download and use libbpf dependencies #1602
Draft
kakkoyun
wants to merge
5
commits into
parca-dev:main
Choose a base branch
from
kakkoyun:static_deps
base: main
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
kakkoyun
changed the title
WIP: Locally download and use libbpf dependencies
Locally download and use libbpf dependencies
Jul 4, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good -- Before we merge this, could we check that:
- the generated arm64 artefact works fine in CI;
- local "native" (without x-compilation) arm64 builds work;
Was the scripts/local-dev-cluster.sh
file created by accident? 馃槃
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
kakkoyun
force-pushed
the
static_deps
branch
from
November 22, 2023 15:43
2cf5d97
to
67e0bd3
Compare
kakkoyun
added a commit
that referenced
this pull request
Jan 9, 2024
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com> > [!NOTE] > This targets https://github.com/parca-dev/parca-agent/tree/new_build_pipeline and there will be a PR in the end targets the `main`. From the users' perspective, this PR shouldn't change anything. If you want to use specified dependencies please consider installing the devbox and direnv (simply `make init`) This brings the result of the experimentation for a new build pipeline from parca-dev/testdata#27 to the agent. At first, we will start by introducing the https://www.jetpack.io/devbox > Now, we use https://www.jetpack.io/devbox for managing external and tool dependencies, such as the Go toolchain or C compiler. This tool has been chosen because it has all the benefits of [Nix](https://nixos.org/), but we don't have to deal with all the intricacies of Nix. It also has an excellent integration with [direnv](https://direnv.net/) to load the environment automatically when you enter the directory. Moreover, this PR: - Changes the directory structure a little bit to reduce the number of top-level directories (I will introduce more) and group them. - It also vendors in the dependencies of libbpf as git submodules and compiles it. It's the same strategy as in #1602 (that PR will be deprecated). It is easier to manage than using some external tool. Especially when we want to cross-compile them. (Makefile changes) - The GH actions are updated to utilize the devbox. ### Test Plan - See that CI is green. - (Locally) Just run the make targets as before.
kakkoyun
added
the
area/build-pipeline
Something to do with CI and build pipeline
label
Feb 21, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why?
After
libbpf
started requiringzstd
as a dependency, my system can't build libbpf locally. That's why I have started changes. (Thanks @javierhonduco, for the pointers).This is a first step towards to system-independent way of reproducibly building our binary. This will also simplify our CI dependencies. We need to enhance the script to handle cross-platform builds and configure goreleaser accordingly.
related: #1304
What?
馃 Generated by Copilot at f5b7e98
This pull request adds support for building the parca-agent binary with static libraries for libbpf and its dependencies. It introduces a new script
scripts/download-and-build-libbpf-deps.sh
and modifies theMakefile
and theTiltfile
accordingly. This enables the parca-agent binary to run on systems without dynamic libraries for libbpf.How?
馃 Generated by Copilot at f5b7e98
Makefile
(link, link, link, link, link)scripts/download-and-build-libbpf-deps.sh
to download and build the static libraries for libbpf dependencies (link)Tiltfile
(link)Original work: https://github.com/javierhonduco/rbperf/blob/573ebc0a90f05ca0ef9b26ae7825d27468035cf1/tools/build_deps#L8
TODO