aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@protonmail.com>2023-07-13 12:56:26 -0400
committerLibravatar GitHub <noreply@github.com>2023-07-13 12:56:26 -0400
commit0d9c266c86e32b763f13b7d27a5a63b38d1a0fba (patch)
tree3fd235c83d6ce45451abc80dca27420203d3aad6
parentMerge branch 'master' of ssh://github.com/netblue30/firejail (diff)
parentbuild: simplify code related to man pages (diff)
downloadfirejail-0d9c266c86e32b763f13b7d27a5a63b38d1a0fba.tar.gz
firejail-0d9c266c86e32b763f13b7d27a5a63b38d1a0fba.tar.zst
firejail-0d9c266c86e32b763f13b7d27a5a63b38d1a0fba.zip
Merge pull request #5898 from kmk3/build-simplify-man
build: simplify code related to man pages
-rw-r--r--.gitignore19
-rw-r--r--Makefile55
-rw-r--r--RELNOTES5
-rw-r--r--src/man/Makefile59
-rw-r--r--src/man/firecfg.1.in (renamed from src/man/firecfg.txt)0
-rw-r--r--src/man/firejail-login.5.in (renamed from src/man/firejail-login.txt)0
-rw-r--r--src/man/firejail-profile.5.in (renamed from src/man/firejail-profile.txt)0
-rw-r--r--src/man/firejail-users.5.in (renamed from src/man/firejail-users.txt)0
-rw-r--r--src/man/firejail.1.in (renamed from src/man/firejail.txt)0
-rw-r--r--src/man/firemon.1.in (renamed from src/man/firemon.txt)0
-rw-r--r--src/man/jailcheck.1.in (renamed from src/man/jailcheck.txt)0
-rwxr-xr-xsrc/man/mkman.sh8
12 files changed, 68 insertions, 78 deletions
diff --git a/.gitignore b/.gitignore
index 549f12738..2285c3e5d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,9 +6,9 @@
6*.rpm 6*.rpm
7*.gcda 7*.gcda
8*.gcno 8*.gcno
9*.gz
9*.DS_Store 10*.DS_Store
10.directory 11.directory
11*.man
12.vscode 12.vscode
13/firejail-*/ 13/firejail-*/
14autom4te.cache/ 14autom4te.cache/
@@ -20,14 +20,6 @@ contrib/syntax/files/example
20contrib/syntax/files/firejail-profile.lang 20contrib/syntax/files/firejail-profile.lang
21contrib/syntax/files/firejail.vim 21contrib/syntax/files/firejail.vim
22firejail-*.tar.xz 22firejail-*.tar.xz
23firejail-login.5
24firejail-profile.5
25firejail-config.5
26firejail-users.5
27firejail.1
28firemon.1
29firecfg.1
30jailcheck.1
31src/fnettrace-dns/fnettrace-dns 23src/fnettrace-dns/fnettrace-dns
32src/fnettrace-sni/fnettrace-sni 24src/fnettrace-sni/fnettrace-sni
33src/fnettrace-icmp/fnettrace-icmp 25src/fnettrace-icmp/fnettrace-icmp
@@ -68,10 +60,5 @@ __pycache__
68*.pyc 60*.pyc
69*.pyo 61*.pyo
70src/fnettrace/static-ip-map 62src/fnettrace/static-ip-map
71src/man/firecfg.1.gz 63src/man/*.1
72src/man/firejail-login.5.gz 64src/man/*.5
73src/man/firejail-profile.5.gz
74src/man/firejail-users.5.gz
75src/man/firejail.1.gz
76src/man/firemon.1.gz
77src/man/jailcheck.1.gz
diff --git a/Makefile b/Makefile
index 1343cb87d..53b57a0e1 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,10 @@
2ROOT = . 2ROOT = .
3-include config.mk 3-include config.mk
4 4
5ifneq ($(HAVE_MAN),no)
6MAN_TARGET = man
7endif
8
5ifneq ($(HAVE_CONTRIB_INSTALL),no) 9ifneq ($(HAVE_CONTRIB_INSTALL),no)
6CONTRIB_TARGET = contrib 10CONTRIB_TARGET = contrib
7endif 11endif
@@ -14,11 +18,16 @@ SBOX_APPS_NON_DUMPABLE = src/fcopy/fcopy src/fldd/fldd src/fnet/fnet src/fnetfil
14SBOX_APPS_NON_DUMPABLE += src/fsec-optimize/fsec-optimize src/fsec-print/fsec-print src/fseccomp/fseccomp 18SBOX_APPS_NON_DUMPABLE += src/fsec-optimize/fsec-optimize src/fsec-print/fsec-print src/fseccomp/fseccomp
15SBOX_APPS_NON_DUMPABLE += src/fnettrace/fnettrace src/fnettrace-dns/fnettrace-dns src/fnettrace-sni/fnettrace-sni 19SBOX_APPS_NON_DUMPABLE += src/fnettrace/fnettrace src/fnettrace-dns/fnettrace-dns src/fnettrace-sni/fnettrace-sni
16SBOX_APPS_NON_DUMPABLE += src/fnettrace-icmp/fnettrace-icmp 20SBOX_APPS_NON_DUMPABLE += src/fnettrace-icmp/fnettrace-icmp
17MYDIRS = src/lib src/man $(COMPLETIONDIRS) 21MYDIRS = src/lib $(COMPLETIONDIRS)
18MYLIBS = src/libpostexecseccomp/libpostexecseccomp.so src/libtrace/libtrace.so src/libtracelog/libtracelog.so 22MYLIBS = src/libpostexecseccomp/libpostexecseccomp.so src/libtrace/libtrace.so src/libtracelog/libtracelog.so
19COMPLETIONS = src/zsh_completion/_firejail src/bash_completion/firejail.bash_completion 23COMPLETIONS = src/zsh_completion/_firejail src/bash_completion/firejail.bash_completion
20SECCOMP_FILTERS = seccomp seccomp.debug seccomp.32 seccomp.block_secondary seccomp.mdwx seccomp.mdwx.32 seccomp.namespaces seccomp.namespaces.32 24SECCOMP_FILTERS = seccomp seccomp.debug seccomp.32 seccomp.block_secondary seccomp.mdwx seccomp.mdwx.32 seccomp.namespaces seccomp.namespaces.32
21 25
26MANPAGES1_IN := $(sort $(wildcard src/man/*.1.in))
27MANPAGES5_IN := $(sort $(wildcard src/man/*.5.in))
28MANPAGES1_GZ := $(MANPAGES1_IN:.in=.gz)
29MANPAGES5_GZ := $(MANPAGES5_IN:.in=.gz)
30
22SYSCALL_HEADERS := $(sort $(wildcard src/include/syscall*.h)) 31SYSCALL_HEADERS := $(sort $(wildcard src/include/syscall*.h))
23 32
24# Lists of keywords used in profiles; used for generating syntax files. 33# Lists of keywords used in profiles; used for generating syntax files.
@@ -37,13 +46,13 @@ SYNTAX_FILES := $(SYNTAX_FILES_IN:.in=)
37ALL_ITEMS = $(APPS) $(SBOX_APPS) $(SBOX_APPS_NON_DUMPABLE) $(MYLIBS) 46ALL_ITEMS = $(APPS) $(SBOX_APPS) $(SBOX_APPS_NON_DUMPABLE) $(MYLIBS)
38 47
39.PHONY: all 48.PHONY: all
40all: all_items mydirs $(CONTRIB_TARGET) 49all: all_items mydirs filters $(MAN_TARGET) $(CONTRIB_TARGET)
41 50
42config.mk config.sh: 51config.mk config.sh:
43 @printf 'error: run ./configure to generate %s\n' "$@" >&2 52 @printf 'error: run ./configure to generate %s\n' "$@" >&2
44 @false 53 @false
45 54
46.PHONY: all_items $(ALL_ITEMS) 55.PHONY: all_items
47all_items: $(ALL_ITEMS) 56all_items: $(ALL_ITEMS)
48$(ALL_ITEMS): $(MYDIRS) 57$(ALL_ITEMS): $(MYDIRS)
49 $(MAKE) -C $(dir $@) 58 $(MAKE) -C $(dir $@)
@@ -53,21 +62,38 @@ mydirs: $(MYDIRS)
53$(MYDIRS): 62$(MYDIRS):
54 $(MAKE) -C $@ 63 $(MAKE) -C $@
55 64
56define build_filters 65.PHONY: filters
66filters: $(SECCOMP_FILTERS)
67seccomp: src/fseccomp/fseccomp src/fsec-optimize/fsec-optimize
57 src/fseccomp/fseccomp default seccomp 68 src/fseccomp/fseccomp default seccomp
58 src/fsec-optimize/fsec-optimize seccomp 69 src/fsec-optimize/fsec-optimize seccomp
70
71seccomp.debug: src/fseccomp/fseccomp src/fsec-optimize/fsec-optimize
59 src/fseccomp/fseccomp default seccomp.debug allow-debuggers 72 src/fseccomp/fseccomp default seccomp.debug allow-debuggers
60 src/fsec-optimize/fsec-optimize seccomp.debug 73 src/fsec-optimize/fsec-optimize seccomp.debug
74
75seccomp.32: src/fseccomp/fseccomp src/fsec-optimize/fsec-optimize
61 src/fseccomp/fseccomp secondary 32 seccomp.32 76 src/fseccomp/fseccomp secondary 32 seccomp.32
62 src/fsec-optimize/fsec-optimize seccomp.32 77 src/fsec-optimize/fsec-optimize seccomp.32
78
79seccomp.block_secondary: src/fseccomp/fseccomp
63 src/fseccomp/fseccomp secondary block seccomp.block_secondary 80 src/fseccomp/fseccomp secondary block seccomp.block_secondary
81
82seccomp.mdwx: src/fseccomp/fseccomp
64 src/fseccomp/fseccomp memory-deny-write-execute seccomp.mdwx 83 src/fseccomp/fseccomp memory-deny-write-execute seccomp.mdwx
84
85seccomp.mdwx.32: src/fseccomp/fseccomp
65 src/fseccomp/fseccomp memory-deny-write-execute.32 seccomp.mdwx.32 86 src/fseccomp/fseccomp memory-deny-write-execute.32 seccomp.mdwx.32
87
88seccomp.namespaces: src/fseccomp/fseccomp
66 src/fseccomp/fseccomp restrict-namespaces seccomp.namespaces cgroup,ipc,net,mnt,pid,time,user,uts 89 src/fseccomp/fseccomp restrict-namespaces seccomp.namespaces cgroup,ipc,net,mnt,pid,time,user,uts
67 src/fseccomp/fseccomp restrict-namespaces seccomp.namespaces.32 cgroup,ipc,net,mnt,pid,time,user,uts
68endef
69 90
91seccomp.namespaces.32: src/fseccomp/fseccomp
92 src/fseccomp/fseccomp restrict-namespaces seccomp.namespaces.32 cgroup,ipc,net,mnt,pid,time,user,uts
70 93
94.PHONY: man
95man:
96 $(MAKE) -C src/man
71 97
72# Makes all targets in contrib/ 98# Makes all targets in contrib/
73.PHONY: contrib 99.PHONY: contrib
@@ -137,6 +163,7 @@ clean:
137 for dir in $$(dirname $(ALL_ITEMS)) $(MYDIRS); do \ 163 for dir in $$(dirname $(ALL_ITEMS)) $(MYDIRS); do \
138 $(MAKE) -C $$dir clean; \ 164 $(MAKE) -C $$dir clean; \
139 done 165 done
166 $(MAKE) -C src/man clean
140 $(MAKE) -C test clean 167 $(MAKE) -C test clean
141 rm -f $(SECCOMP_FILTERS) 168 rm -f $(SECCOMP_FILTERS)
142 rm -f firejail*.rpm 169 rm -f firejail*.rpm
@@ -180,7 +207,6 @@ endif
180 # libraries and plugins 207 # libraries and plugins
181 install -m 0755 -d $(DESTDIR)$(libdir)/firejail 208 install -m 0755 -d $(DESTDIR)$(libdir)/firejail
182 install -m 0755 -t $(DESTDIR)$(libdir)/firejail src/firecfg/firejail-welcome.sh 209 install -m 0755 -t $(DESTDIR)$(libdir)/firejail src/firecfg/firejail-welcome.sh
183 $(call build_filters)
184 install -m 0644 -t $(DESTDIR)$(libdir)/firejail $(MYLIBS) $(SECCOMP_FILTERS) 210 install -m 0644 -t $(DESTDIR)$(libdir)/firejail $(MYLIBS) $(SECCOMP_FILTERS)
185 install -m 0755 -t $(DESTDIR)$(libdir)/firejail $(SBOX_APPS) 211 install -m 0755 -t $(DESTDIR)$(libdir)/firejail $(SBOX_APPS)
186 install -m 0755 -t $(DESTDIR)$(libdir)/firejail src/profstats/profstats 212 install -m 0755 -t $(DESTDIR)$(libdir)/firejail src/profstats/profstats
@@ -230,13 +256,8 @@ endif
230ifneq ($(HAVE_MAN),no) 256ifneq ($(HAVE_MAN),no)
231 # man pages 257 # man pages
232 install -m 0755 -d $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 258 install -m 0755 -d $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5
233 install -m 0644 src/man/firejail.1.gz $(DESTDIR)$(mandir)/man1/ 259 install -m 0644 $(MANPAGES1_GZ) $(DESTDIR)$(mandir)/man1/
234 install -m 0644 src/man/firemon.1.gz $(DESTDIR)$(mandir)/man1/ 260 install -m 0644 $(MANPAGES5_GZ) $(DESTDIR)$(mandir)/man5/
235 install -m 0644 src/man/firecfg.1.gz $(DESTDIR)$(mandir)/man1/
236 install -m 0644 src/man/jailcheck.1.gz $(DESTDIR)$(mandir)/man1/
237 install -m 0644 src/man/firejail-login.5.gz $(DESTDIR)$(mandir)/man5/
238 install -m 0644 src/man/firejail-users.5.gz $(DESTDIR)$(mandir)/man5/
239 install -m 0644 src/man/firejail-profile.5.gz $(DESTDIR)$(mandir)/man5/
240endif 261endif
241 # bash completion 262 # bash completion
242 install -m 0755 -d $(DESTDIR)$(datarootdir)/bash-completion/completions 263 install -m 0755 -d $(DESTDIR)$(datarootdir)/bash-completion/completions
@@ -264,10 +285,8 @@ uninstall: config.mk
264 rm -f $(DESTDIR)$(bindir)/jailcheck 285 rm -f $(DESTDIR)$(bindir)/jailcheck
265 rm -fr $(DESTDIR)$(libdir)/firejail 286 rm -fr $(DESTDIR)$(libdir)/firejail
266 rm -fr $(DESTDIR)$(datarootdir)/doc/firejail 287 rm -fr $(DESTDIR)$(datarootdir)/doc/firejail
267 for man in $(MANPAGES); do \ 288 rm -f $(addprefix $(DESTDIR)$(mandir)/man1/,$(notdir $(MANPAGES1_GZ)))
268 rm -f $(DESTDIR)$(mandir)/man5/$$man*; \ 289 rm -f $(addprefix $(DESTDIR)$(mandir)/man5/,$(notdir $(MANPAGES5_GZ)))
269 rm -f $(DESTDIR)$(mandir)/man1/$$man*; \
270 done
271 rm -f $(DESTDIR)$(datarootdir)/bash-completion/completions/firejail 290 rm -f $(DESTDIR)$(datarootdir)/bash-completion/completions/firejail
272 rm -f $(DESTDIR)$(datarootdir)/bash-completion/completions/firemon 291 rm -f $(DESTDIR)$(datarootdir)/bash-completion/completions/firemon
273 rm -f $(DESTDIR)$(datarootdir)/bash-completion/completions/firecfg 292 rm -f $(DESTDIR)$(datarootdir)/bash-completion/completions/firecfg
diff --git a/RELNOTES b/RELNOTES
index 0244d9741..dfa62a7c0 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -21,8 +21,6 @@ firejail (0.9.73) baseline; urgency=low
21 #5618) 21 #5618)
22 * bugfix: fix --hostname and --hosts-file commands 22 * bugfix: fix --hostname and --hosts-file commands
23 * bugfix: arp.c: ensure positive timeout on select(2) (#5806) 23 * bugfix: arp.c: ensure positive timeout on select(2) (#5806)
24 * build: fixed problem with seccomp filters and man pages built every
25 time when running make
26 * build: auto-generate syntax files (#5627) 24 * build: auto-generate syntax files (#5627)
27 * build: mark all phony targets as such (#5637) 25 * build: mark all phony targets as such (#5637)
28 * build: mkdeb.sh: pass all arguments to ./configure (#5654) 26 * build: mkdeb.sh: pass all arguments to ./configure (#5654)
@@ -32,6 +30,9 @@ firejail (0.9.73) baseline; urgency=low
32 * build: remove -mretpoline and NO_EXTRA_CFLAGS (#5859) 30 * build: remove -mretpoline and NO_EXTRA_CFLAGS (#5859)
33 * build: disable all built-in implicit make rules (#5864) 31 * build: disable all built-in implicit make rules (#5864)
34 * build: organize and standardize make vars and targets (#5866) 32 * build: organize and standardize make vars and targets (#5866)
33 * build: fix seccomp filters and man pages always being rebuilt when running
34 make
35 * build: simplify code related to man pages (#5898)
35 * ci: always update the package db before installing packages (#5742) 36 * ci: always update the package db before installing packages (#5742)
36 * ci: fix codeql unable to download its own bundle (#5783) 37 * ci: fix codeql unable to download its own bundle (#5783)
37 * ci: split configure/build/install commands on gitlab (#5784) 38 * ci: split configure/build/install commands on gitlab (#5784)
diff --git a/src/man/Makefile b/src/man/Makefile
index 1c0d94244..526ed7fcb 100644
--- a/src/man/Makefile
+++ b/src/man/Makefile
@@ -2,44 +2,25 @@
2ROOT = ../.. 2ROOT = ../..
3-include $(ROOT)/config.mk 3-include $(ROOT)/config.mk
4 4
5all: firecfg.1.gz firejail.1.gz firejail-login.5.gz firejail-users.5.gz firejail-profile.5.gz firemon.1.gz jailcheck.1.gz 5MOD_DIR := $(ROOT)/src/man
6 6MANPAGES_IN := $(sort $(wildcard $(MOD_DIR)/*.in))
7#firecfg.1.gz: firecfg.txt 7MANPAGES_GZ := $(MANPAGES_IN:.in=.gz)
8# gawk -f ./preproc.awk -- $(MANFLAGS) < $< > firecfg.1 8TARGET = $(MANPAGES_GZ)
9# ./mkman.sh $(VERSION) firecfg.1 9
10# gzip -n9 firecfg.1 10.PHONY: all
11 11all: $(TARGET)
12# a small function to build a manpage 12
13define build 13# foo.1: foo.1.in
14 gawk -f ./preproc.awk -- $(MANFLAGS) < $1 > $2 14$(MOD_DIR)/%: $(MOD_DIR)/%.in $(ROOT)/config.mk
15 ./mkman.sh $(VERSION) ./$2 15 @printf 'Generating %s from %s\n' $@ $<
16 rm -f $2.gz 16 @gawk -f $(MOD_DIR)/preproc.awk -- $(MANFLAGS) <$< | \
17 gzip -n9 $2 17 $(MOD_DIR)/mkman.sh $(VERSION) >$@
18endef 18
19 19# foo.1.gz: foo.1
20firecfg.1.gz: firecfg.txt 20$(MOD_DIR)/%.gz: $(MOD_DIR)/%
21 $(call build,firecfg.txt,firecfg.1) 21 @printf 'Generating %s from %s\n' $@ $<
22 22 @rm -f $@
23firejail.1.gz: firejail.txt 23 @gzip -n9 $<
24 $(call build,firejail.txt,firejail.1)
25
26firejail-login.5.gz: firejail-login.txt
27 $(call build,firejail-login.txt,firejail-login.5)
28
29firejail-users.5.gz: firejail-users.txt
30 $(call build,firejail-users.txt,firejail-users.5)
31
32firejail-profile.5.gz: firejail-profile.txt
33 $(call build,firejail-profile.txt,firejail-profile.5)
34
35firemon.1.gz: firemon.txt
36 $(call build,firemon.txt,firemon.1)
37
38jailcheck.1.gz: jailcheck.txt
39 $(call build,jailcheck.txt,jailcheck.1)
40 24
41.PHONY: clean 25.PHONY: clean
42clean:; rm -fr *.1 *.5 *.gz 26clean:; rm -f *.1 *.5 *.gz
43
44.PHONY: distclean
45distclean: clean
diff --git a/src/man/firecfg.txt b/src/man/firecfg.1.in
index 42add6a41..42add6a41 100644
--- a/src/man/firecfg.txt
+++ b/src/man/firecfg.1.in
diff --git a/src/man/firejail-login.txt b/src/man/firejail-login.5.in
index f03fc3c37..f03fc3c37 100644
--- a/src/man/firejail-login.txt
+++ b/src/man/firejail-login.5.in
diff --git a/src/man/firejail-profile.txt b/src/man/firejail-profile.5.in
index fa294d888..fa294d888 100644
--- a/src/man/firejail-profile.txt
+++ b/src/man/firejail-profile.5.in
diff --git a/src/man/firejail-users.txt b/src/man/firejail-users.5.in
index 7aa151680..7aa151680 100644
--- a/src/man/firejail-users.txt
+++ b/src/man/firejail-users.5.in
diff --git a/src/man/firejail.txt b/src/man/firejail.1.in
index 19fc94ebd..19fc94ebd 100644
--- a/src/man/firejail.txt
+++ b/src/man/firejail.1.in
diff --git a/src/man/firemon.txt b/src/man/firemon.1.in
index fb0cf1175..fb0cf1175 100644
--- a/src/man/firemon.txt
+++ b/src/man/firemon.1.in
diff --git a/src/man/jailcheck.txt b/src/man/jailcheck.1.in
index e889ea91b..e889ea91b 100644
--- a/src/man/jailcheck.txt
+++ b/src/man/jailcheck.1.in
diff --git a/src/man/mkman.sh b/src/man/mkman.sh
index b538b0126..0302e0778 100755
--- a/src/man/mkman.sh
+++ b/src/man/mkman.sh
@@ -5,8 +5,10 @@
5 5
6set -e 6set -e
7 7
8sed -i "s/VERSION/$1/g" "$2"
9MONTH="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%b)" 8MONTH="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%b)"
10sed -i "s/MONTH/$MONTH/g" "$2"
11YEAR="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y)" 9YEAR="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y)"
12sed -i "s/YEAR/$YEAR/g" "$2" 10
11sed \
12 -e "s/VERSION/$1/g" \
13 -e "s/MONTH/$MONTH/g" \
14 -e "s/YEAR/$YEAR/g"