make install needs root for a personal tool, and uninstall leaves man pages behind #91

Closed
opened 2026-08-13 14:33:51 +00:00 by a73x · 0 comments
a73x commented 2026-08-13 14:33:51 +00:00 (Migrated from git.a73x.sh)

PREFIX ?= /usr/local, and install-man writes to $(PREFIX)/share/man/man1. So a plain make install fails without sudo:

install -d /usr/local/share/man/man1
install: cannot create directory '/usr/local/share/man/man1': Permission denied

The README documents make install with no qualification, so the documented path does not work for the ordinary case. This tool is a personal forge — the common install is a single user's own machine, not a system-wide package.

I have been working around it with make install PREFIX=$HOME/.local for an entire session of development and never filed it, which is its own evidence: a workaround you type often enough stops registering as a bug.

A second, separate defect: uninstall removes the two binaries and not the man pages it installed. make install && make uninstall leaves $(PREFIX)/share/man/man1/git-collab*.1 behind.

Wanted:

  • Default PREFIX to something a user can write to. $HOME/.local is the obvious choice and matches where ~/.local/bin already sits on most PATHs; a system install stays available as make install PREFIX=/usr/local with sudo.
  • uninstall must remove exactly what install created, man pages included.
  • Update the README so the documented command is the one that works, and mention the system-wide variant rather than making it the default.

Worth checking while in there: whether install-man failing should abort the binary install at all. Man pages are a convenience; a user without a writable man directory arguably still wants the binaries.


Migrated from git-collab issue 4876fba0bb2cec33b1e14e29b5c1446efd8fc529.

Original author: a73x dev@a73x.sh.

Close reason: merged in patch b7480bbb

`PREFIX ?= /usr/local`, and `install-man` writes to `$(PREFIX)/share/man/man1`. So a plain `make install` fails without sudo: ``` install -d /usr/local/share/man/man1 install: cannot create directory '/usr/local/share/man/man1': Permission denied ``` The README documents `make install` with no qualification, so the documented path does not work for the ordinary case. This tool is a personal forge — the common install is a single user's own machine, not a system-wide package. I have been working around it with `make install PREFIX=$HOME/.local` for an entire session of development and never filed it, which is its own evidence: a workaround you type often enough stops registering as a bug. **A second, separate defect:** `uninstall` removes the two binaries and **not the man pages** it installed. `make install && make uninstall` leaves `$(PREFIX)/share/man/man1/git-collab*.1` behind. Wanted: - Default `PREFIX` to something a user can write to. `$HOME/.local` is the obvious choice and matches where `~/.local/bin` already sits on most PATHs; a system install stays available as `make install PREFIX=/usr/local` with sudo. - `uninstall` must remove exactly what `install` created, man pages included. - Update the README so the documented command is the one that works, and mention the system-wide variant rather than making it the default. Worth checking while in there: whether `install-man` failing should abort the binary install at all. Man pages are a convenience; a user without a writable man directory arguably still wants the binaries. --- Migrated from git-collab issue `4876fba0bb2cec33b1e14e29b5c1446efd8fc529`. Original author: a73x <dev@a73x.sh>. Close reason: merged in patch b7480bbb
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
a73x/git-collab#91
No description provided.