From 2a34cd5747ca9e22fb62bfce6b9f4333e6f0d5cd Mon Sep 17 00:00:00 2001 From: Ingo Date: Fri, 14 Sep 2018 18:44:42 +0200 Subject: [PATCH 1/3] Setting required permissions on installation Remake of the Makefile for installation. The conditional installation for system and user with variable USER=1 is replaced by four rules native-install-system, native-uninstall-system, native-install-user and native-uninstall-user. This is because distinct rules simplify setting different permissions and locations. --- .gitignore | 1 + Makefile | 82 +++++++++++++++++++++++++++++++++--------------------- 2 files changed, 52 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index 45165f9..40a882d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +*.swp *.pyc /native/textern.json diff --git a/Makefile b/Makefile index b44f9e4..ec10037 100644 --- a/Makefile +++ b/Makefile @@ -1,40 +1,60 @@ -ifneq ($(USER),1) - PREFIX ?= /usr/local - MOZILLA_PREFIX ?= /usr - MOZILLA_NATIVE ?= $(MOZILLA_PREFIX)/lib64/mozilla/native-messaging-hosts -else - PREFIX ?= $(HOME)/.local - MOZILLA_NATIVE ?= $(HOME)/.mozilla/native-messaging-hosts -endif +MOZILLA ?= /usr/lib/mozilla +MOZILLA_NATIVE_SYSTEM ?= $(MOZILLA)/native-messaging-hosts +#MOZILLA64 ?= /usr/lib64/mozilla +#MOZILLA_NATIVE_SYSTEM64 ?= $(MOZILLA64)/native-messaging-hosts +LIBEXEC_SYSTEM ?= /usr/local/libexec +TEXTERN_SYSTEM ?= $(LIBEXEC_SYSTEM)/textern -LIBEXEC ?= $(PREFIX)/libexec +MOZILLA_NATIVE_USER ?= $(HOME)/.mozilla/native-messaging-hosts +TEXTERN_USER ?= $(HOME)/.local/libexec/textern .PHONY: all all: @echo "No build step. Available targets:" - @echo "native-install install native app" - @echo "native-uninstall uninstall native app" - @echo "xpi create XPI webex archive" - @echo - @echo "Set USER=1 to target user directories instead." - -# make phony and don't depend on .in file in case $USER changes -.PHONY: native/textern.json -native/textern.json: - sed -e 's|@@NATIVE_PATH@@|$(LIBEXEC)/textern/textern.py|' $@.in > $@ - -.PHONY: native-install -native-install: native/textern.json - mkdir -p $(DESTDIR)$(MOZILLA_NATIVE) - cp -f native/textern.json $(DESTDIR)$(MOZILLA_NATIVE) - mkdir -p $(DESTDIR)$(LIBEXEC)/textern - cp -rf native/textern.py native/inotify_simple $(DESTDIR)$(LIBEXEC)/textern - -.PHONY: native-uninstall -native-uninstall: - rm -f $(DESTDIR)$(MOZILLA_NATIVE)/textern.json - rm -rf $(DESTDIR)$(LIBEXEC)/textern + @echo "native-install-system install native app for all user" + @echo "native-uninstall-system uninstall native app for all user" + @echo "native-install-user install native app only for current user" + @echo "native-uninstall-user uninstall native app for current user" + @echo "xpi create XPI webex archive" + +.PHONY: native-install-system +native-install-system: + mkdir -p $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM) + chmod o+rX $(DESTDIR)$(MOZILLA) + chmod o+rX $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM) + sed -e 's|@@NATIVE_PATH@@|$(TEXTERN_SYSTEM)/textern.py|' native/textern.json.in > $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM)/textern.json + chmod o+r $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM)/textern.json + #mkdir -p $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64) + #chmod o+rX $(DESTDIR)$(MOZILLA64) + #chmod o+rX $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64) + #ln -s $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM)/textern.json $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64)/textern.json + + mkdir -p $(DESTDIR)$(TEXTERN_SYSTEM) + chmod o+rX $(DESTDIR)$(LIBEXEC_SYSTEM) + cp -rf native/textern.py native/inotify_simple $(DESTDIR)$(TEXTERN_SYSTEM) + chmod -R o+rX $(DESTDIR)$(TEXTERN_SYSTEM) + +.PHONY: native-uninstall-system +native-uninstall-system: + rm -f $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM)/textern.json + rm -f $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64)/textern.json + rm -rf $(DESTDIR)$(TEXTERN_SYSTEM) + +.PHONY: native-install-user +native-install-user: + mkdir -p $(DESTDIR)$(MOZILLA_NATIVE_USER) + sed -e 's|@@NATIVE_PATH@@|$(TEXTERN_USER)/textern.py|' native/textern.json.in > $(DESTDIR)$(MOZILLA_NATIVE_USER)/textern.json + + mkdir -p $(DESTDIR)$(TEXTERN_USER) + cp -rf native/textern.py native/inotify_simple $(DESTDIR)$(TEXTERN_USER) + +.PHONY: native-uninstall-user +native-uninstall-user: + rm -f $(DESTDIR)$(MOZILLA_NATIVE_USER)/textern.json + rm -rf $(DESTDIR)$(TEXTERN_USER) .PHONY: xpi xpi: @rm -f textern.xpi && cd webex && zip -r -FS ../textern.xpi * + +# vim: filetype=make tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab autoindent nowrap From 23c4fd2d80db54b7a76da7aeeace419d26160bd7 Mon Sep 17 00:00:00 2001 From: Ingo Date: Fri, 14 Sep 2018 19:35:19 +0200 Subject: [PATCH 2/3] Corrected README Changed installation instruction to use native-install-system, native-uninstall-system, native-install-user and native-uninstall-user. --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f3bf913..f502fd9 100644 --- a/README.md +++ b/README.md @@ -34,23 +34,29 @@ submodules (either use the `--recurse-submodules` when running `git clone` as shown above, or use `git submodule update --init` if already cloned). -To install the native app, run: +To install the native app for all user, run: ``` -$ sudo make native-install +$ sudo make native-install-system ``` To uninstall it, run: ``` -$ sudo make native-uninstall +$ sudo make native-uninstall-system ``` If you do not have root privileges or wish to only install the native app for the current user, run: ``` -$ make native-install USER=1 +$ make native-install-user +``` + +To uninstall it, run: + +``` +$ make native-uninstall-user ``` ## Usage From 43fb3a27cd5328b5c031bd1e6f53a0c1fe87c3c5 Mon Sep 17 00:00:00 2001 From: Ingo Date: Fri, 14 Sep 2018 20:55:39 +0200 Subject: [PATCH 3/3] Suppress output of commented lines --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index ec10037..2311004 100644 --- a/Makefile +++ b/Makefile @@ -24,10 +24,10 @@ native-install-system: chmod o+rX $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM) sed -e 's|@@NATIVE_PATH@@|$(TEXTERN_SYSTEM)/textern.py|' native/textern.json.in > $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM)/textern.json chmod o+r $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM)/textern.json - #mkdir -p $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64) - #chmod o+rX $(DESTDIR)$(MOZILLA64) - #chmod o+rX $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64) - #ln -s $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM)/textern.json $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64)/textern.json + @#mkdir -p $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64) + @#chmod o+rX $(DESTDIR)$(MOZILLA64) + @#chmod o+rX $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64) + @#ln -s $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM)/textern.json $(DESTDIR)$(MOZILLA_NATIVE_SYSTEM64)/textern.json mkdir -p $(DESTDIR)$(TEXTERN_SYSTEM) chmod o+rX $(DESTDIR)$(LIBEXEC_SYSTEM)