aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* makefiles: add generated files as dependenciesLibravatar Kelvin M. Klann2022-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the previous commit ("makefiles: stop failing when config.mk does not exist", 2022-06-23), make will not immediately fail when trying to build a target without having the proper compile-time flags (which are defined on common.mk). For example, when running the command below: make distclean && make It will throw an error only after (mis-)compiling multiple objects. So add a dependency on config.mk on every target that uses output variables (such as @NAME@ / $(NAME)) on its recipe. And add a dependency on config.sh on targets that call shell scripts that use output variables (such as @NAME@ / $NAME). Also, add a recipe for config.mk / config.sh telling to run ./configure, to make it a bit more obvious just in case. With this commit, make will abort earlier, by detecting that the config.mk / config.sh dependency does not exist. This happens before trying to execute the recipe. This also makes the dependencies more accurate, since if config.mk (which defines some CFLAGS) is changed, the CFLAGS may also have changed, so a target that uses CFLAGS should probably be considered out of date in this case anyway. Relates to #5140.
* makefiles: stop failing when config.mk does not existLibravatar Kelvin M. Klann2022-06-30
| | | | | | | | | | | | | | | | | | | This allows running `make clean` and `make distclean` (and possibly others) without having to run ./configure beforehand. Note that some packaging-related targets still depend on the existence of generated files. For example: * dist: config.mk * deb: config.sh Commands used to search and replace: $ git grep -Elz 'include *([^ ]*/)?config.mk' | xargs -0 -I '{}' \ sh -c "printf '%s\n' \ \"\$(sed -E 's|^include *(([^ ]*/)?config.mk)|-include \1|' '{}')\" >'{}'" Relates to #5140.
* build: reduce autoconf input files from 32 to 2Libravatar Kelvin M. Klann2022-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Configure summary: autoconf essentially only parses configure.ac and generates the configure script (that is, the "./configure" shell script). The latter is what actually checks what is available on the system and internally sets the value of the output variables. It then, for every filename foo in AC_CONFIG_FILES (and for every output variable name BAR in AC_SUBST), reads foo.in, replaces every occurrence of `@BAR@` with the value of the shell variable `$BAR` and generates the file foo from the result. After this, configure is finished and `make` could be executed to start the build. Now that (as of #5140) all output variables are only defined on config.mk.in and on config.sh.in, there is no need to generate any makefile nor any other mkfile or shell script at configure time. So rename every "Makefile.in" to "Makefile", mkdeb.sh.in to mkdeb.sh, src/common.mk.in to src/common.mk and leave just config.mk and config.sh as the files to be generated at configure time. This allows editing and committing all makefiles directly, without potentially having to run ./configure in between. Commands used to rename the makefiles: $ git ls-files -z -- '*Makefile.in' | xargs -0 -I '{}' sh -c \ "git mv '{}' \"\$(dirname '{}')/Makefile\"" Additionally, from my (rudimentary) testing, this commit reduces the time it takes to run ./configure by about 20~25% compared to commit 72ece92ea ("Transmission fixes: drop private-lib (#5213)", 2022-06-22). Environment: dash 0.5.11.5-1, gcc 12.1.0-2, Artix Linux, ext4 on an HDD. Commands used for benchmarking each commit: $ : >time_configure && ./configure && make distclean && for i in $(seq 1 10); do { time -p ./configure; } 2>>time_configure; done $ grep real time_configure | awk '{ total += $2 } END { print total/NR }'
* Transmission fixes: drop private-lib (#5213)Libravatar glitsj162022-06-22
| | | | | | | * drop private-lib * drop private-lib * drop private-lib
* deprecating --shell (3) (#5196)Libravatar netblue302022-06-21
|
* Revert "xonotic.profile: fix audit denial spam"Libravatar Tad2022-06-20
| | | | | | | Logging is now default disabled in c7e4c8ed592fee7f1644152a23c3e1343b01b922 See https://github.com/netblue30/firejail/issues/5207 This reverts commit c0d314f945b405f1e90a1a43719059cd22f55de7.
* deprecating --shell (2) (#5196)Libravatar netblue302022-06-20
|
* compile fixLibravatar netblue302022-06-20
|
* deprecating --shell (#5196)Libravatar netblue302022-06-20
|
* reverting previous seccomp log fix (#5207)Libravatar netblue302022-06-20
|
* shell none set as default (6)Libravatar netblue302022-06-19
|
* Merge pull request #5209 from rusty-snake/shell-none-defaultLibravatar netblue302022-06-19
|\ | | | | Remove shell none from profiles
| * Remove shell none from profilesLibravatar rusty-snake2022-06-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Command: sed -i "/^shell none/d" etc/*/* TODO: ``` etc/profile-a-l/beaker.profile:ignore shell none etc/profile-a-l/default.profile:# shell none etc/profile-a-l/fdns.profile:#shell none etc/profile-a-l/gnome-nettool.profile:#shell none etc/profile-a-l/jitsi-meet-desktop.profile:ignore shell none etc/profile-m-z/pidgin.profile:# shell none etc/profile-m-z/rocketchat.profile:ignore shell none etc/profile-m-z/server.profile:# shell none etc/templates/profile.template:# OPTIONS (caps*, net*, no*, protocol, seccomp*, shell none, tracelog) etc/templates/profile.template:#shell none ``` - manpage - RELNOTES - fbuilder
* | shell none set as default (5)Libravatar netblue302022-06-19
| |
* | shell none set as default (4)Libravatar netblue302022-06-19
| |
* | shell none set as default (3)Libravatar netblue302022-06-19
| |
* | shell none set as default (2)Libravatar netblue302022-06-19
|/
* shell none set as defaultLibravatar netblue302022-06-19
|
* removing guess_shell() function and using instead the shell configured in ↵Libravatar netblue302022-06-19
| | | | the password database (/etc/passwd file)
* Update SECURITY.mdLibravatar rusty-snake2022-06-18
|
* Merge branch 'master' of ssh://github.com/netblue30/firejailLibravatar netblue302022-06-18
|\
| * update_deb.sh: fix not building with apparmor supportLibravatar Kelvin M. Klann2022-06-18
| | | | | | | | | | | | | | This amends commit 9a0fbbd71 ("mkdeb.sh.in: pass remaining arguments to ./configure", 2022-05-13) / PR #5154. See also #5176.
| * errno.c: fix reference to extract_errnos.sh in commentLibravatar Kelvin M. Klann2022-06-18
| | | | | | | | | | | | | | See src/tools/extract_errnos.sh. Added on commit 081d1fbf2 ("Add seccomp errno filter support", 2015-09-23) / PR #66.
* | seccomp-log support in firejail.configLibravatar netblue302022-06-18
|/
* remving src/fgitLibravatar netblue302022-06-17
|
* Merge pull request #5206 from kmk3/fix-file-mode-shLibravatar netblue302022-06-17
|\ | | | | build: fix file mode of shell scripts (644 -> 755)
| * build: fix file mode of shell scripts (644 -> 755)Libravatar Kelvin M. Klann2022-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some shell scripts are not executable, so fix their file modes: $ git grep -Elz '^#!/bin/(ba)?sh' | xargs -0 -I '{}' \ chmod +x '{}' Files changed: * src/fgit/fgit-uninstall.sh * src/tools/extract_errnos.sh Note: I have manually checked that the files above are indeed intended to be executable directly and not just sourced, as a script of the latter kind could also contain a shebang (for example, to help ensure proper syntax highlighting). Misc: The affected files were added on commit e46dd3e95 ("git-install", 2017-02-04) and on commit 081d1fbf2 ("Add seccomp errno filter support", 2015-09-23) / PR #66, respectively.
* | fixing seccomp log (#5207)Libravatar netblue302022-06-17
|/
* fix artha and add dbus-user filteringLibravatar glitsj162022-06-16
|
* update_deb.sh: remove cgroup-related codeLibravatar Kelvin M. Klann2022-06-16
| | | | | | | The "cgroup" option was removed from etc/firejail.config on commit 73b089092 ("disable cgroup code", 2022-06-13). Relates to #5200.
* more on removing cgroups (#5200)Libravatar netblue302022-06-16
|
* fix CILibravatar netblue302022-06-15
|
* configure*: Move LDFLAGS below CFLAGSLibravatar Kelvin M. Klann2022-06-15
| | | | | | | To match the usual usage order. Relates to commit 222a2d772 ("order options alphabetically in configure.ac report", 2022-06-13).
* configure*: fix typo in output (--ouput -> --output)Libravatar Kelvin M. Klann2022-06-15
| | | | | This amends commit 72ba0b7e5 ("compile time: disable --output", 2021-02-28).
* test/fs/invalid_filename.exp: s/end/send/Libravatar Kelvin M. Klann2022-06-14
| | | | | This amends commit c165510dc ("CI: remove cgroup test because feature has been removed", 2022-06-13).
* CI: remove cgroup test because feature has been removedLibravatar Reiner Herrmann2022-06-13
|
* disable chroot by default in /etc/firejail/firejail.configLibravatar netblue302022-06-13
|
* order options alphabetically in configure.ac reportLibravatar netblue302022-06-13
|
* compile time: changed --disable-firetunnel into --enable-firetunnelLibravatar netblue302022-06-13
|
* more on disable cgroupsLibravatar netblue302022-06-13
|
* disable cgroup codeLibravatar netblue302022-06-13
|
* Merge pull request #5140 from kmk3/build-dedup-config-varsLibravatar Kelvin M. Klann2022-06-13
|\ | | | | build: deduplicate configure-time vars into new config files
| * mkdeb.sh.in: move configure-time vars into new config.sh.inLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | For better organization and so that they can be used by other shell scripts by just sourcing config.sh.
| * makefiles: include config.mk instead of common.mk where possibleLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | | | | | | | | | | | | common.mk contains definitions for building programs and it includes config.mk. Some makefiles that include common.mk do not contain any targets for building programs. They depend only on configure-time variable definitions (which are defined on config.mk) rather than anything specific to common.mk. So change their includes of common.mk to config.mk.
| * makefiles: deduplicate configure-time vars into new config.mk.inLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | | | | | | | | | | | | Currently, the configure-time variables (that is, the ones that assign to placeholders, such as "@HAVE_MAN@", which are set/replaced at configure-time) are defined on multiple files (such as on Makefile.in and on common.mk.in). To avoid duplication, centralize these variables on a single file (config.mk.in) and replace all of the other definitions of them with an include of config.mk.
| * makefiles: define root dir and include relative to itLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A non-absolute path on an include command is always treated as being relative to the directory in which "make" was started in, rather than being relative to the makefile that contains the command. For example, given the following project structure and file contents: * Makefile: include src/foo.mk * src/foo.mk: include bar.mk * src/bar.mk: Running "make" on the root project directory (that is, where "Makefile" is) yields the following: src/foo.mk:1: bar.mk: No such file or directory As "bar.mk" in "include bar.mk" is relative to the current (process) directory (that is, "./bar.mk") and not to where foo.mk is located in ("./src/bar.mk"). So on every makefile that contains an include command, define the root project directory in the ROOT variable and always include relative to it, to later enable any included mkfiles to include other mkfiles without having to worry about the correct path. Commands used to search and replace: $ git grep -Flz 'include ../common.mk' -- src | xargs -0 -I '{}' sh -c \ "printf '%s\n' \"\`sed 's|include ../common.mk|ROOT = ../..\ninclude \$(ROOT)/src/common.mk|' '{}'\`\" >'{}'" Environment: GNU make 4.3-3.1 on Artix Linux
| * common.mk.in: fix comment about file usage intentLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It currently claims to contain "common definitions for all makefiles", but it is not included by all makefiles under src/ and it contains variable definitions that may possibly clash with the ones defined on certain makefiles. Mainly, the following makefiles (which are used for building shared objects) use a different set of CFLAGS compared to src/common.mk.in: * src/libpostexecseccomp/Makefile.in * src/libtrace/Makefile.in * src/libtracelog/Makefile.in Given the contents of common.mk.in, it seems to be intended only for makefiles that build C programs and/or non-shared objects (which are most of, but not all of the makefiles under src/), so put that in the comment instead.
| * Makefile.in: stop trying to remove config.h on distcleanLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no config.h nor config.h.in in the repository: $ git ls-files -- '*config.h*' $ The filename is only mentioned on the generated configure script, as a generic example of an autoconf config file: $ git grep -F -A 1 -B 2 config.h | grep -v '^Makefile.in' -- configure-# Set up the scripts for CONFIG_FILES section. configure-# No need to generate them if there are no CONFIG_FILES. configure:# This happens for instance with `./config.status config.h'. configure-if test -n "$CONFIG_FILES"; then -- configure- # Let's still pretend it is `configure' which instantiates (i.e., don't configure- # use $as_me), people would be surprised to read: configure: # /* config.h. Generated by config.status. */ configure- configure_input='Generated from '`
| * Makefile.in: sort DISTFILESLibravatar Kelvin M. Klann2022-06-12
| |
| * Makefile.in: list one file per line on DISTFILESLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | | | | | | To make it easier to read and edit them and to make the diffs clearer. vim commands used to search and replace: :0/DISTFILES/ | s/\v ([^=])/ \\\r\1/g | s/$/\r/