Gallopsled / Gallopsled/pwntools

Namespace pollution: generic CLI commands installed by default (`main`, `errno`, `update`, etc.)

Open
#2,589 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
13.7k
Forks
1.9k
Avg merge
6d 23h
Merged PRs (30d)
3

Description

I maintain the FreeBSD port of the Python package `pwntools`. I recently received a report highlighting that `pwntools` installs a large number of extremely generic CLI commands into `$PATH` by default (`main`, `version`, `update`, `debug`, `errno`, etc.).

Aside from clutter, this leads to direct conflicts. For example, `errno` conflicts with the `errno` utility from `moreutils`. The interfaces aren’t identical, so it isn’t straightforward for users to alias around this without uninstalling one or the other.

I’m aware of and appreciate the existence of the `--only-use-pwn-command` flag, which I can pass during packaging to install only the pwn command. However, I wanted to raise the possibility of:

* Making `--only-use-pwn-command` the default, requiring explicit opt-in for the additional generic aliases.

* Alternatively, prefixing the CLI aliases (e.g., `pwn-main`, `pwn-update`) to reduce namespace conflicts while retaining functionality.

Downstream issue (funny read):
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287992

Contributor guide

Open the contributing guide

Research direction

No source files or tests are named. Start by tracing the packaging entry points and the existing --only-use-pwn-command option, then inventory the generic aliases and their compatibility constraints. Done requires a decided approach, updated packaging behavior, and tests or documentation covering the resulting command names.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.