support /usr/local/share/* installation
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.9k
- Forks
- 1.4k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 1
Description
Currently, setuptools supports package installation to /usr/local/bin via entry_points in setup(). For all other files it appears that MANIFEST is recommended, which bundles non-code files into the package distribution directly. This is not useful for resources whose destination pathing is expected by system utilties - such as manual pages under /usr/local/share. This presents a large painpoint. Example: https://github.com/beetbox/beets/issues/1501#issuecomment-110141520
I see value in keeping package files as as discreet as possible, however the current API of entry_points leads to incomplete command line interfaces.
I think it would make sense to introduce support at least two additional parameters:
setup(
...
manuals=['path/to/man.1', 'path/to/man.2'],
share=['path/to/share/dir']
)
These resources would still be distributed via MANIFEST or package_data, but would now be accompanied by symlinks to the appropriate directories. This is similar to how Homebrew distributes resources out of the Cellar.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how setup() handles entry_points and how MANIFEST or package_data distribute non-code files. Define the behavior for manuals and share resources, including the expected symlinks under /usr/local/share, and verify that installation produces the intended paths without breaking existing packaging.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100