Re: [PATCH] secilc/docs: fix use of TMPDIR #240

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 15.5.2020 14.09, Petr Lautrbach wrote:
On Fri, May 15, 2020 at 01:51:05PM +0300, Topi Miettinen wrote:
Environment variable TMPDIR may be already set for the user building
and this could be equal to $XDG_RUNTIME_DIR or /tmp which are existing
directories. Then when running 'make clean', there are unintended side
effects:

rm -rf /run/user/1000
rm: cannot remove '/run/user/1000/dconf/user': Permission denied
rm: cannot remove '/run/user/1000/systemd': Permission denied
rm: cannot remove '/run/user/1000/gnupg': Permission denied
rm: cannot remove '/run/user/1000/dbus-1': Is a directory
rm: cannot remove '/run/user/1000/inaccessible': Permission denied
make[1]: *** [Makefile:68: clean] Error 1

Fix by using a different name.

Signed-off-by: Topi Miettinen <toiwoton@xxxxxxxxx>
---
  secilc/docs/Makefile | 20 ++++++++++----------
  1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/secilc/docs/Makefile b/secilc/docs/Makefile
index 6b07ce7f..90214e0d 100644
--- a/secilc/docs/Makefile
+++ b/secilc/docs/Makefile
@@ -1,7 +1,7 @@
  CWD ?= $(shell pwd)
  HTMLDIR ?= $(CWD)/html
  PDFDIR ?= $(CWD)/pdf
-TMPDIR ?= $(CWD)/tmp
+TMP_DIR ?= $(CWD)/tmp
  TESTDIR ?= $(CWD)/../test

Maybe it would be enough to drop `?=`:

CWD = $(shell pwd)
HTMLDIR = $(CWD)/html
PDFDIR = $(CWD)/pdf
TMPDIR = $(CWD)/tmp
TESTDIR = $(CWD)/../test

That could work, assuming that the higher level Makefiles or builders don't use the variables.

Other approaches could be to rework build process to use 'mktemp -d' and immediately removing the temporary directory, or generating the temporary files with a prefix (%.md -> %.sedded) in the build directory.

-Topi




  # All the markdown files that make up the guide:
@@ -26,7 +26,7 @@ FILE_LIST ?= cil_introduction.md \
  	cil_infiniband_statements.md \
  	cil_xen_statements.md
-PANDOC_FILE_LIST = $(addprefix $(TMPDIR)/,$(FILE_LIST))
+PANDOC_FILE_LIST = $(addprefix $(TMP_DIR)/,$(FILE_LIST))
PDF_OUT=CIL_Reference_Guide.pdf
  HTML_OUT=CIL_Reference_Guide.html
@@ -40,29 +40,29 @@ endif
all: html pdf -$(TMPDIR):
-	mkdir -p $(TMPDIR)
+$(TMP_DIR):
+	mkdir -p $(TMP_DIR)
-$(TMPDIR)/%.md: %.md | $(TMPDIR)
-	cp -f $< $(TMPDIR)/
+$(TMP_DIR)/%.md: %.md | $(TMP_DIR)
+	cp -f $< $(TMP_DIR)/
  	@# Substitute markdown links for conversion into PDF links
  	$(SED) -i -re 's:(\[`[^`]*`\])\([^#]*([^\)]):\1\(\2:g' $@
-$(TMPDIR)/policy.cil: $(TESTDIR)/policy.cil
+$(TMP_DIR)/policy.cil: $(TESTDIR)/policy.cil
  	cp -f $< $@
  	@# add a title for the TOC to policy.cil. This is needed to play nicely with the PDF conversion.
  	$(SED) -i '1i Example Policy\n=========\n```' $@
  	echo '```' >> $@
-html: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil
+html: $(PANDOC_FILE_LIST) $(TMP_DIR)/policy.cil
  	mkdir -p $(HTMLDIR)
  	$(PANDOC) -t html $^ -o $(HTMLDIR)/$(HTML_OUT)
-pdf: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil
+pdf: $(PANDOC_FILE_LIST) $(TMP_DIR)/policy.cil
  	mkdir -p $(PDFDIR)
  	$(PANDOC) --standalone --toc $^ -o $(PDFDIR)/$(PDF_OUT)
clean:
  	rm -rf $(HTMLDIR)
  	rm -rf $(PDFDIR)
-	rm -rf $(TMPDIR)
+	rm -rf $(TMP_DIR)
--
2.26.2






[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux