-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
Request: rename tools/* to not conflict with perf-tools #291
Comments
@brendangregg do you have any suggestions on how to have these cooperate? Should our tools go into a directory under /usr/share/bcc perhaps, or prefix with something? |
Not sure I understand the original problem. Does this make sense?:
In the future, I'll be rewriting a lot of the perf-tools in bcc/eBPF anyway. |
@troyengel can you point us to the details of where perf-tools is being installed? Concrete examples of what the conflicts are would probably help. @brendangregg I'm honestly not a linux filesystem hierarchy expert, so it seems okay to me but maybe Troy can weigh in with an opinion as well. |
I think the fundamental question is: as project maintainers, what is the intent of the tools/ subdirectory, are they meant as examples/helpers, or are they meant as ready to use utilities? If it's the former, somewhere in /usr/share/ works but if it's the latter they belong in /usr/bin (or sbin) for use. Because neither project has a Makefile that actually installs the tools, as AUR (Arch) packaging goes the perf-tools have been around longer, and the package installation is manual to /usr/bin: While building the bcc AUR project (it's not checked in to git yet) I wrote the same basic concept, but instead (for now) am putting them in /usr/share/bcc/tools (next to the examples/) to prevent /usr/bin conflicts with perf-tools. This is all based on the assumption to the question posed above "these are ready to use tools". The Red Hat RPM, for instance, just completely ignores the tools/ subdir entirely and they're not in the RPMs. Right now the basics of the bcc package (I'm planning on compiling both python2 and python3 modules and breaking out subpackages) look like this:
We can do anything here, and as @brendangregg points out his bigger plan is to migrate everything to bcc/eBPF. |
Awesome detail @troyengel , thanks for the insight. To answer the question at hand, I envision the items in tools/ to be ready-to-use utilities. However, I absolutely don't want to break perf-tools, so for the time being bcc-tools make more sense in /usr/share/bcc, with the caveat that they may move or be deprecated in the future. Users should use them with caution, and a manpage warning or readme in the installed tools/ subdirectory could help. I see two options to avoid breakage, feel free to critique:
I think in either case, whatever /usr/bin/* entries end up being created should be a separate subpackage, either the primary one out of perf-tools or a subpackage of bcc. My selfish preference is for # 2. I believe it would ease somewhat synchronization of features and the API, as well as keeping testing in the same location. But, since @brendangregg is the author of both incarnations of these tools, I will defer to him. |
I'm a little busy right now, but a quick comment about intent of directories:
There's a third category that we don't have examples of yet. Maybe call it the "dump":
|
Erring on the side of caution, I will plan to commit a change to add tools/* into /usr/share/bcc for the time being. Please advise if this is being overly cautious. |
+1 for /usr/share/bcc/tools/ |
+1 here as well, works for me |
+1, can always move some later on to /usr/bin |
Ticket: #291 Signed-off-by: Brenden Blanco <[email protected]>
This should depend on python-bcc, which itself depends on libbcc. Fixes: #291 Signed-off-by: Brenden Blanco <[email protected]>
I package Brendan's perf-tools (https://github.com/brendangregg/perf-tools) and am working on a good package for bcc and it's tools. The tools/* names from Brendan in this project using python+libbcc conflict with the bash-oriented tools with the same name from perf-tools, preventing both packages from cleanly being installed at the same time.
I'd like to request that we rename the tools/* in this project in some fashion so as not to conflict with the other project that's been around for awhile and both are awesome. No preconceived naming convention by me, just looking to resolve the conflict between the two. :)
The text was updated successfully, but these errors were encountered: