diff options
| author | Joe Richey <joerichey@google.com> | 2019-01-19 19:27:30 -0800 |
|---|---|---|
| committer | Joe Richey <joerichey@google.com> | 2019-01-19 19:27:30 -0800 |
| commit | ae476d1f2354de43d656d0d3767c2a31017e5985 (patch) | |
| tree | a164aa6ff3ada2ce3d9c4efea2bbe086a3d6e1e4 | |
| parent | 509bb4d450cdd923bf09d05a5622cb6e98646bce (diff) | |
Install pam modules/configs to the right location
Per the FHS, manually installed programs should go under /usr/local.
This change also makes it easier to change the global installation
prefix. For example, package managers should set PREFIX=/usr
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | Makefile | 29 | ||||
| -rw-r--r-- | pam_fscrypt/config | 6 |
3 files changed, 21 insertions, 15 deletions
@@ -7,5 +7,6 @@ bin/goimports bin/staticcheck bin/gocovmerge bin/misspell +bin/config *coverage.out .vscode @@ -105,7 +105,7 @@ lint: $(BIN)/golint $(BIN)/staticcheck $(BIN)/misspell misspell -source=text $(FILES) clean: - rm -f $(BIN)/$(NAME) $(PAM_MODULE) $(TOOLS) coverage.out $(COVERAGE_FILES) + rm -f $(BIN)/$(NAME) $(PAM_MODULE) $(TOOLS) coverage.out $(COVERAGE_FILES) $(PAM_CONFIG) ###### Testing Commands (setup/teardown require sudo) ###### .PHONY: test test-setup test-teardown @@ -144,23 +144,28 @@ coverage.out: $(BIN)/gocovmerge $(COVERAGE_FILES) .PHONY: install install-bin install-pam uninstall install: install-bin install-pam -INSTALL := sudo install -DESTDIR := /usr/local/bin -PAM_MODULE_DIR := /lib/security -PAM_CONFIG_DIR := /usr/share/pam-configs +PREFIX := /usr/local +DESTDIR := $(PREFIX)/bin install-bin: $(BIN)/$(NAME) - $(INSTALL) -d $(DESTDIR) - $(INSTALL) $< $(DESTDIR) + install -d $(DESTDIR) + install $< $(DESTDIR) + +PAM_MODULE_DIR := $(PREFIX)/lib/security +PAM_INSTALL_PATH := $(PAM_MODULE_DIR)/$(PAM_NAME).so +PAM_CONFIG := $(BIN)/config +PAM_CONFIG_DIR := $(PREFIX)/share/pam-configs install-pam: $(PAM_MODULE) - $(INSTALL) -d $(PAM_MODULE_DIR) - $(INSTALL) $< $(PAM_MODULE_DIR) - $(INSTALL) -d $(PAM_CONFIG_DIR) - $(INSTALL) $(PAM_NAME)/config $(PAM_CONFIG_DIR)/$(NAME) + install -d $(PAM_MODULE_DIR) + install $(PAM_MODULE) $(PAM_MODULE_DIR) + + m4 --define=PAM_INSTALL_PATH=$(PAM_INSTALL_PATH) < $(PAM_NAME)/config > $(PAM_CONFIG) + install -d $(PAM_CONFIG_DIR) + install $(PAM_CONFIG) $(PAM_CONFIG_DIR)/$(NAME) uninstall: - rm -f $(DESTDIR)/$(NAME) $(PAM_MODULE_DIR)/$(PAM_MODULE) $(PAM_CONFIG_DIR)/$(NAME) + rm -f $(DESTDIR)/$(NAME) $(PAM_INSTALL_PATH) $(PAM_CONFIG_DIR)/$(NAME) #### Tool Building Commands #### TOOLS := $(addprefix $(BIN)/,protoc golint protoc-gen-go goimports staticcheck gocovmerge misspell) diff --git a/pam_fscrypt/config b/pam_fscrypt/config index 795a4f8..d857e3b 100644 --- a/pam_fscrypt/config +++ b/pam_fscrypt/config @@ -3,11 +3,11 @@ Default: yes Priority: 0 Auth-Type: Additional Auth-Final: - optional pam_fscrypt.so + optional PAM_INSTALL_PATH Session-Type: Additional Session-Interactive-Only: yes Session-Final: - optional pam_fscrypt.so drop_caches lock_policies + optional PAM_INSTALL_PATH drop_caches lock_policies Password-Type: Additional Password-Final: - optional pam_fscrypt.so + optional PAM_INSTALL_PATH |