| Summary: | pkg-plist of editors/emacs-devel breaks for consecutive `make install' runs | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Ports & Packages | Reporter: | Giorgos Keramidas <keramida> | ||||
| Component: | Individual Port(s) | Assignee: | Andrey Slusar <anray> | ||||
| Status: | Closed FIXED | ||||||
| Severity: | Affects Only Me | CC: | anrays | ||||
| Priority: | Normal | ||||||
| Version: | Latest | ||||||
| Hardware: | Any | ||||||
| OS: | Any | ||||||
| Attachments: |
|
||||||
Class Changed From-To: maintainer-update->change-request Fix category (submitter is not maintainer) Responsible Changed From-To: freebsd-ports-bugs->keramida Submitter has GNATS access State Changed From-To: open->feedback Awaiting maintainers feedback Responsible Changed From-To: keramida->freebsd-ports-bugs Submitter is not ports committer. Responsible Changed From-To: freebsd-ports-bugs->anray I'll take it. State Changed From-To: feedback->open Submitter is maintainer. Class Changed From-To: change-request->maintainer-update Submitter is maintainer. State Changed From-To: open->closed Committed. Thanks! |
The `make install' target of editors/emacs-devel reuses the `emacs' binary from ${WRKSRC}/src/emacs, but this means that the internal version of the generated Emacs binary is bumped every time the user runs `make install' in ports/editors/emacs-devel. The attached patch cleans the ${WRKSRC}/src/emacs* binaries before running `make install' and rebuilds them with an internal Emacs version number of 22.0.50.1. Then the build of Emacs runs make-docfile twice, thus installing `etc/DOC', `etc/DOC-22.0.50.1' and `22.0.50.2'. By rebuilding the src/emacs* binaries right before we install, we make sure that these are the only DOC* files and adding them to the pkg-plist fixes the recent problems reported to me by Mark Linimon. How-To-Repeat: * Run `make install' in ports/editors/emacs-devel. * Run it once again. * Run `make deinstall' and when the warnings about non-empty dirs are printed, look at `/usr/local/share/emacs/22.0.50/etc' for files named `DOC*': $ find /usr/local/share/emacs/22.0.50/etc -name DOC\* /usr/local/share/emacs/22.0.50/etc/DOC-22.0.50.3 /usr/local/share/emacs/22.0.50/etc/DOC-22.0.50.4 [...] * Every time you re-run `make install' without removing the `work' directory of the port a new stale file is left behind with the documentation strings of an internal Emacs version that have not been recorded to the pkg-plist.