From 9e206b7f2cef2db87b964da8d8199cc47c5c4a8b Mon Sep 17 00:00:00 2001 From: netblue30 Date: Fri, 7 Jul 2023 14:01:20 -0400 Subject: rework src/man Makefile --- .gitignore | 8 ++++++++ Makefile | 34 ++++++++++------------------------ mkman.sh | 12 ------------ src/man/Makefile | 41 ++++++++++++++++++++++++++++++++++++----- src/man/mkman.sh | 12 ++++++++++++ 5 files changed, 66 insertions(+), 41 deletions(-) delete mode 100755 mkman.sh create mode 100755 src/man/mkman.sh diff --git a/.gitignore b/.gitignore index aae7b817d..180f623eb 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,11 @@ aclocal.m4 __pycache__ *.pyc *.pyo +src/fnettrace/static-ip-map +src/man/firecfg.1.gz +src/man/firejail-login.5.gz +src/man/firejail-profile.5.gz +src/man/firejail-users.5.gz +src/man/firejail.1.gz +src/man/firemon.1.gz +src/man/jailcheck.1.gz diff --git a/Makefile b/Makefile index 35bd9dc44..30e1ad176 100644 --- a/Makefile +++ b/Makefile @@ -2,11 +2,6 @@ ROOT = . -include config.mk -ifneq ($(HAVE_MAN),no) -MAN_TARGET = man -MAN_SRC = src/man -endif - ifneq ($(HAVE_CONTRIB_INSTALL),no) CONTRIB_TARGET = contrib endif @@ -19,11 +14,10 @@ SBOX_APPS_NON_DUMPABLE = src/fcopy/fcopy src/fldd/fldd src/fnet/fnet src/fnetfil SBOX_APPS_NON_DUMPABLE += src/fsec-optimize/fsec-optimize src/fsec-print/fsec-print src/fseccomp/fseccomp SBOX_APPS_NON_DUMPABLE += src/fnettrace/fnettrace src/fnettrace-dns/fnettrace-dns src/fnettrace-sni/fnettrace-sni SBOX_APPS_NON_DUMPABLE += src/fnettrace-icmp/fnettrace-icmp -MYDIRS = src/lib $(MAN_SRC) $(COMPLETIONDIRS) +MYDIRS = src/lib src/man $(COMPLETIONDIRS) MYLIBS = src/libpostexecseccomp/libpostexecseccomp.so src/libtrace/libtrace.so src/libtracelog/libtracelog.so COMPLETIONS = src/zsh_completion/_firejail src/bash_completion/firejail.bash_completion SECCOMP_FILTERS = seccomp seccomp.debug seccomp.32 seccomp.block_secondary seccomp.mdwx seccomp.mdwx.32 -MANPAGES = firejail.1 firemon.1 firecfg.1 firejail-profile.5 firejail-login.5 firejail-users.5 jailcheck.1 SYSCALL_HEADERS := $(sort $(wildcard src/include/syscall*.h)) @@ -43,7 +37,7 @@ SYNTAX_FILES := $(SYNTAX_FILES_IN:.in=) ALL_ITEMS = $(APPS) $(SBOX_APPS) $(SBOX_APPS_NON_DUMPABLE) $(MYLIBS) .PHONY: all -all: all_items mydirs filters $(MAN_TARGET) $(CONTRIB_TARGET) +all: all_items mydirs filters $(CONTRIB_TARGET) config.mk config.sh: @printf 'error: run ./configure to generate %s\n' "$@" >&2 @@ -82,12 +76,6 @@ seccomp.mdwx: src/fseccomp/fseccomp seccomp.mdwx.32: src/fseccomp/fseccomp src/fseccomp/fseccomp memory-deny-write-execute.32 seccomp.mdwx.32 -$(MANPAGES): src/man config.mk - ./mkman.sh $(VERSION) src/man/$(basename $@).man $@ - -.PHONY: man -man: $(MANPAGES) - # Makes all targets in contrib/ .PHONY: contrib contrib: syntax @@ -158,7 +146,7 @@ clean: done $(MAKE) -C test clean rm -f $(SECCOMP_FILTERS) - rm -f $(MANPAGES) $(MANPAGES:%=%.gz) firejail*.rpm + rm -f firejail*.rpm rm -f $(SYNTAX_FILES) rm -f src/fnettrace/static-ip-map rm -f test/utils/index.html* @@ -248,15 +236,13 @@ endif ifneq ($(HAVE_MAN),no) # man pages install -m 0755 -d $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 - for man in $(MANPAGES); do \ - rm -f $$man.gz; \ - gzip -9n $$man; \ - case "$$man" in \ - *.1) install -m 0644 $$man.gz $(DESTDIR)$(mandir)/man1/; ;; \ - *.5) install -m 0644 $$man.gz $(DESTDIR)$(mandir)/man5/; ;; \ - esac; \ - done - rm -f $(MANPAGES) $(MANPAGES:%=%.gz) + install -m 0644 src/man/firejail.1.gz $(DESTDIR)$(mandir)/man1/ + install -m 0644 src/man/firemon.1.gz $(DESTDIR)$(mandir)/man1/ + install -m 0644 src/man/firecfg.1.gz $(DESTDIR)$(mandir)/man1/ + install -m 0644 src/man/jailcheck.1.gz $(DESTDIR)$(mandir)/man1/ + install -m 0644 src/man/firejail-login.5.gz $(DESTDIR)$(mandir)/man5/ + install -m 0644 src/man/firejail-users.5.gz $(DESTDIR)$(mandir)/man5/ + install -m 0644 src/man/firejail-profile.5.gz $(DESTDIR)$(mandir)/man5/ endif # bash completion install -m 0755 -d $(DESTDIR)$(datarootdir)/bash-completion/completions diff --git a/mkman.sh b/mkman.sh deleted file mode 100755 index 58a44ecda..000000000 --- a/mkman.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# This file is part of Firejail project -# Copyright (C) 2014-2023 Firejail Authors -# License GPL v2 - -set -e - -sed "s/VERSION/$1/g" "$2" > "$3" -MONTH="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%b)" -sed -i "s/MONTH/$MONTH/g" "$3" -YEAR="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y)" -sed -i "s/YEAR/$YEAR/g" "$3" diff --git a/src/man/Makefile b/src/man/Makefile index 197f76192..17c5cde13 100644 --- a/src/man/Makefile +++ b/src/man/Makefile @@ -2,14 +2,45 @@ ROOT = ../.. -include $(ROOT)/config.mk -.PHONY: all -all: firecfg.man firejail.man firejail-login.man firejail-users.man firejail-profile.man firemon.man jailcheck.man +all: firecfg.1.gz firejail.1.gz firejail-login.5.gz firejail-users.5.gz firejail-profile.5.gz firemon.1.gz jailcheck.1.gz + +#firecfg.1.gz: firecfg.txt +# gawk -f ./preproc.awk -- $(MANFLAGS) < $< > firecfg.1 +# ./mkman.sh $(VERSION) firecfg.1 +# gzip -n9 firecfg.1 + +# a small function to build a manpage +define build + gawk -f ./preproc.awk -- $(MANFLAGS) < $1 > $2 + ./mkman.sh $(VERSION) ./$2 + rm -f $2.gz + gzip -n9 $2 +endef + +firecfg.1.gz: firecfg.txt + $(call build,firecfg.txt,firecfg.1) + +firejail.1.gz: firejail.txt + $(call build,firejail.txt,firejail.1) + +firejail-login.5.gz: firejail-login.txt + $(call build,firejail-login.txt,firejail-login.5) + +firejail-users.5.gz: firejail-users.txt + $(call build,firejail-users.txt,firejail-users.5) + +firejail-profile.5.gz: firejail-profile.txt + $(call build,firejail-profile.txt,firejail-profile.5) + +firemon.1.gz: firemon.txt + $(call build,firemon.txt,firemon.1) + +jailcheck.1.gz: jailcheck.txt + $(call build,jailcheck.txt,jailcheck.1) -%.man: %.txt $(ROOT)/config.mk - gawk -f ./preproc.awk -- $(MANFLAGS) < $< > $@ .PHONY: clean -clean:; rm -fr *.man +clean:; rm -fr *.1 *.5 *.gz .PHONY: distclean distclean: clean diff --git a/src/man/mkman.sh b/src/man/mkman.sh new file mode 100755 index 000000000..b538b0126 --- /dev/null +++ b/src/man/mkman.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# This file is part of Firejail project +# Copyright (C) 2014-2023 Firejail Authors +# License GPL v2 + +set -e + +sed -i "s/VERSION/$1/g" "$2" +MONTH="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%b)" +sed -i "s/MONTH/$MONTH/g" "$2" +YEAR="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y)" +sed -i "s/YEAR/$YEAR/g" "$2" -- cgit v1.2.3-54-g00ecf