aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* build: move library flags from EXTRA_LDFLAGS to LIBSLibravatar Kelvin M. Klann2022-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | LIBS is the variable that Autoconf uses to put library flags. From the manual of GNU Autoconf (version 2.69): > -- Variable: LDFLAGS > > [...] > > This variable's contents should contain options like '-s' and '-L' > that affect only the behavior of the linker. Please see the > explanation of 'CFLAGS' for what you can do if an option also > affects other phases of the compiler. > > Don't use this variable to pass library names ('-l') to the linker; > use 'LIBS' instead. > > -- Variable: LIBS > > '-l' options to pass to the linker. The default value is empty, > but some Autoconf macros may prepend extra libraries to this > variable if those libraries are found and provide necessary > functions, see *note Libraries::. 'configure' uses this variable > when linking programs to test for C, C++, Objective C, Objective > C++, Fortran, and Go features.
* build: actually set LDFLAGS and LIBS in makefilesLibravatar Kelvin M. Klann2022-12-03
| | | | | | | | | | | Both variables are used inside on src/prog.mk and src/so.mk, but they are not currently defined in any makefile, so their values cannot be substituted by ./configure. This means that the variables can be set when running make (such as with `make LDFLAGS=-Lfoo`), but changing them in configure.ac has no effect. The same applies when trying to set them when running ./configure (such as with `./configure LDFLAGS=-Lfoo`).
* configure*: print CC and CFLAGSLibravatar Kelvin M. Klann2022-12-03
| | | | | | Currently, only EXTRA_CFLAGS and EXTRA_LDFLAGS are printed. See also the variables defined on config.mk.in.
* Merge pull request #5488 from kmk3/configure-fix-format-miscLibravatar Reiner Herrmann2022-12-01
|\ | | | | build: fix formatting and misc in configure
| * configure*: quote and line-wrap AC_CHECK_HEADER lineLibravatar Kelvin M. Klann2022-11-28
| | | | | | | | | | Misc: I missed this one on commit 221c10177 ("configure*: Add missing quotes to arguments", 2021-06-03) / PR #4712.
| * configure*: fix quotes/parens alignment (sanitizer)Libravatar Kelvin M. Klann2022-11-28
| |
| * configure*: wrap long AS_HELP_STRING line (sanitizer)Libravatar Kelvin M. Klann2022-11-28
| |
| * configure*: wrap long shell command output linesLibravatar Kelvin M. Klann2022-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | Instead of binding them together with conditionals in a single line, split shell commands into multiple lines to make them more readable. Note that for the macro arguments in question, the content inside [] quotes is output literally into ./configure, so the commands can be written as if they were in a shell script directly (save for any special characters/tokens in Autoconf). Misc: Relates to commit 2c64d1fdd ("use AX_CHECK_COMPILE_FLAG to check for spectre flags", 2019-06-21).
| * configure*: remove extraneous blank lines (warning)Libravatar Kelvin M. Klann2022-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added on commit d1acb31c9 ("compile time: enable LTS", 2021-02-28). Note: Do not print a preceding blank line because one is already printed right before the warning message, right after the items on "Features:". Example of the resulting warning message: $ autoconf && ./configure [...] configure: creating ./config.status config.status: creating config.mk config.status: creating config.sh Compile options: [...] prefix: /usr/local sysconfdir: ${prefix}/etc Spectre compiler patch: yes Features: [...] SELinux labeling support: user namespace: -DHAVE_USERNS X11 sandboxing support: -DHAVE_X11 ********************************************************* * Warning: Long-term support (LTS) was enabled! * * Most compile-time options have been rewritten! * ********************************************************* $
| * configure*: remove extraneous blank linesLibravatar Kelvin M. Klann2022-11-28
| |
| * configure*: fix indentationLibravatar Kelvin M. Klann2022-11-28
| |
| * configure*: fix trailing comma in HAVE_CONTRIB_INSTALLLibravatar Kelvin M. Klann2022-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider the current code: AS_IF([test "x$enable_lts" = "xyes"], [ # ... HAVE_CONTRIB_INSTALL="no", Result of testing the value: $ HAVE_CONTRIB_INSTALL="no", $ printf '%s\n' "$HAVE_CONTRIB_INSTALL" no, $ test "x$HAVE_CONTRIB_INSTALL" = "xno" && echo equal || echo 'not equal' not equal This means that whenever HAVE_LTS is enabled, HAVE_CONTRIB_INSTALL is always considered enabled when testing against "no". But luckily, in the current code the latter variable is only tested against "yes", so nothing should be affected: $ git grep HAVE_CONTRIB_INSTALL | grep -v -e '^configure:' -e '^configure.ac:' Makefile:ifeq ($(HAVE_CONTRIB_INSTALL),yes) config.mk.in:HAVE_CONTRIB_INSTALL=@HAVE_CONTRIB_INSTALL@ Added on commit d1acb31c9 ("compile time: enable LTS", 2021-02-28).
| * configure*: fix typo of "been"Libravatar Kelvin M. Klann2022-11-28
| | | | | | | | | | | | s/bean/been Added on commit d1acb31c9 ("compile time: enable LTS", 2021-02-28).
* | firefox-common-addons: fix whitelisting in ${RUNUSER} (#5497)Libravatar glitsj162022-12-01
| | | | | | | | | | | | | | * fix whitelisting in ${RUNUSER} See discussions https://github.com/netblue30/firejail/discussions/5495 for context. * Prevent whitelisting ${RUNUSER} comment
* | AppArmor: add more examples to firejail-local (#5493)Libravatar glitsj162022-12-01
| | | | | | | | | | * AppArmor: add more examples to firejail-local * comments fixes
* | RELNOTES: add ci and docs itemsLibravatar Kelvin M. Klann2022-11-28
| | | | | | | | Relates to #5189 #5349 #5439 #5485.
* | [firefox-common.profile] Add DRM support when using psd (#5486)Libravatar glitsj162022-11-28
|/
* ci: ignore profile-checks.yml on other workflowsLibravatar Kelvin M. Klann2022-11-28
| | | | | | | | | | To avoid running CI unnecessarily. Misc: I noticed this on commit a42c1de0b ("profile-checks.yml: sort paths-ignore", 2022-11-27). See also commit 768410cf5 ("Run profile-ckeck on workflow edits", 2022-11-27). Relates to #5481.
* profile-checks.yml: sort paths-ignoreLibravatar Kelvin M. Klann2022-11-27
| | | | | See commit 9bf5e453c ("ci: sort items on paths-ignore lists", 2022-07-12) / PR #5481 for details.
* Run profile-ckeck on workflow editsLibravatar rusty-snake2022-11-27
|
* Workflows: Change egress-policy to block (#5485)Libravatar rusty-snake2022-11-27
|
* Workflows: Change egress-policy to blockLibravatar rusty-snake2022-11-26
|
* RELNOTES: add build and ci itemsLibravatar Kelvin M. Klann2022-11-25
| | | | Relates to #5429 #5478 #5481.
* Merge pull request #5415 from kmk3/ktorrent-fix-mkfileLibravatar netblue302022-11-25
|\ | | | | ktorrent.profile: fix mkfile without mkdir & comment legacy paths
| * ktorrent.profile: add missing private-bin pathsLibravatar Kelvin M. Klann2022-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | Package-provided binaries: $ pacman -Q ktorrent ktorrent 22.08.3-1.2 $ pacman -Qlq ktorrent | grep bin/. /usr/bin/ktmagnetdownloader /usr/bin/ktorrent /usr/bin/ktupnptest Environment: Artix Linux
| * ktorrent.profile: stop creating legacy KDE pathsLibravatar Kelvin M. Klann2022-11-22
| | | | | | | | Leave them commented.
| * ktorrent.profile: fix mkfile without mkdirLibravatar Kelvin M. Klann2022-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | firejail fails to create the following files: * ~/.kde/share/config/ktorrentrc * ~/.kde4/share/config/ktorrentrc Because it does not create the preceding directories beforehand: * ~/.kde/share/config * ~/.kde4/share/config Relates to #5414.
* | Merge pull request #5476 from k4leg/fix_pycharmLibravatar netblue302022-11-25
|\ \ | | | | | | fix: PyCharm profiles
| * | fix: PyCharm profilesLibravatar Bogdan Ruslanovich Drozd2022-11-23
| | | | | | | | | | | | | | | | | | | | | Do not use `private-cache`, because PyCharm places in cache directories stuff like spelling dictionary (i. e. if you download spelling dictionary with `private-cache`, on restart PyCharm you need to download spelling dictionary again).
* | | Merge pull request #5478 from kmk3/build-dedup-makefilesLibravatar netblue302022-11-25
|\ \ \ | | | | | | | | build: deduplicate makefiles
| * | | makefiles: organize CFLAGSLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Line-wrap them and make the order of the flags more similar across src/prog.mk and src/so.mk. This should make it easier to see the differences in CFLAGS between both files.
| * | | makefiles: mention variables intended to be used by includersLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | On src/prog.mk and src/so.mk.
| * | | makefiles: add TOCLEAN and TODISTCLEAN variablesLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So that includers of src/prog.mk or src/so.mk can just define anything extra that needs to be cleaned without having to override the "clean" target (or having to declare a "distclean" target). Example usage: TOCLEAN += foo TODISTCLEAN += bar
| * | | makefiles: rename common.mk to prog.mkLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For clarity, as it is included by the Makefiles that create programs and non-shared-objects, but not by the ones that create shared objects (see src/so.mk). Commands used to move and search and replace: $ git mv src/common.mk src/prog.mk $ git grep -IFlz 'common.mk' -- src | xargs -0 -I '{}' sh -c \ "printf '%s\n' \"\$(sed 's/common.mk/prog.mk/' '{}')\" >'{}'"
| * | | makefiles: deduplicate lib makefiles into so.mkLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following makefiles are nearly identical, except for the main target name and for any extra headers that they might use: * src/libpostexecseccomp/Makefile * src/libtrace/Makefile * src/libtracelog/Makefile So move all of their (duplicated) code into a new src/so.mk file, and add an include of src/so.mk, which leaves only variables, and the includes of config.mk and src/so.mk in place. With this commit, CFLAGS and LDFLAGS are only defined/changed in the following files: * config.mk.in * src/common.mk * src/so.mk
| * | | makefiles: deduplicate main target name into new SO varLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Put the main target name into a new SO variable, put SO into a new TARGET variable, make "all" depend on `$(TARGET)` and replace every other occurrence of the main target name with `$(SO)`. On the makefiles that build shared objects, to make them more similar. With this commit, all of their targets are identical.
| * | | makefiles: deduplicate many makefiles into common.mkLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The makefiles that both build C programs and include src/common.mk are nearly identical, save for the main target name and for any extra headers and objects that they might use. So move all of their (duplicated) code into src/common.mk, which (other than the "lib" target on src/lib/Makefile) leaves only variables and the includes of config.mk and src/common.mk in place.
| * | | makefiles: deduplicate main target name into new PROG varLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Put the main target name into a new PROG variable, put PROG into a new TARGET variable, make "all" depend on `$(TARGET)` and replace every other occurrence of the main target name with `$(PROG)`. On the makefiles that build non-shared objects, to make them more similar. With this commit, all of their targets are identical (except for the extra "lib" target on src/lib/Makefile).
| * | | makefiles: line-wrap MOD_HDRS and MOD_OBJSLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | For increased readability, list one item per line on lines that are currently longer than 80 characters.
| * | | makefiles: move extra deps into new MOD varsLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To make the makefiles more similar. That is, add the following new variables: * MOD_HDRS * MOD_SRCS * MOD_OBJS And move existing module-specific header and object dependencies into `MOD_HDRS` and `MOD_OBJS`, respectively. `MOD_SRCS` is added mostly for symmetry/consistency. Note: Use `MOD_` as a prefix instead of `EXTRA_` to avoid confusion, as the latter is currently used for global variables (such as `EXTRA_CFLAGS`), as opposed to module-specific variables. Note2: Add them directly into the HDRS/SRCS/OBJS variables to avoid cluttering the existing recipes with an extra variables unnecessarily. This also allows, for example, referencing all of the object dependencies with `$<` if `$(OBJS)` is the first dependency (at least in GNU make). Note3: Since HDRS/SRCS/OBJS use simple assignment (through `:=`), the MOD variables should appear before including src/common.mk (or src/so.mk).
| * | | makefiles: expand HDRS, SRCS and OBJS immediatelyLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use immediate expansion of the right-hand side (with `:=`) to set the variables to the output of the commands rather than to the (text of the) commands themselves. This should prevent deferred/lazy evaluation, which is something that might potentially result in the relevant files being looked up each time that HDRS and SRCS are evaluated. Commands used to search and replace: git grep -Ilz '^SRCS' -- src | xargs -0 -I '{}' \ sh -c "printf '%s\n' \"\$(sed \ -e 's/^HDRS =/HDRS :=/' \ -e 's/^SRCS =/SRCS :=/' \ -e 's/^OBJS =/OBJS :=/' '{}')\" >'{}'"
| * | | makefiles: rename H_FILE_LIST and C_FILE_LISTLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To HDRS and SRCS, respectively. To be more consistent with the OBJS variable. Misc: These names also appear to be more common from the makefiles that I've seen. Commands used to search and replace: git grep -IFlz -e H_FILE_LIST -e C_FILE_LIST -- src | xargs -0 -I '{}' sh -c "printf '%s\n' \"\$(sed \ -e 's/^H_FILE_LIST *=/HDRS =/' \ -e 's/\$(H_FILE_LIST)/\$(HDRS)/g' \ -e 's/^C_FILE_LIST *=/SRCS =/' \ -e 's/\$(C_FILE_LIST:/\$(SRCS:/g' \ '{}')\" >'{}'"
| * | | makefiles: equalize object dependencies in program targetsLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compared to the objects that are actually used in a given recipe, some program targets are missing object dependencies, while others appear to have unused object dependencies. Make each of those targets depend on the objects that are actually used when linking. Note: No check was done for extraneous/missing objects when linking; this commit only makes the object dependencies equal to the objects that are linked.
| * | | makefiles: include config.mk directlyLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of including it through src/common.mk. This allows each makefile to directly override any value defined in config.mk.
| * | | Makefile: put the all target after variablesLibravatar Kelvin M. Klann2022-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This should make it more consistent with the other makefiles (especially considering the subsequent deduplication commits on this branch) and enables it to depend on the variables in question (as variables in dependencies are immediately expanded, at least by default).
| * | | lib/Makefile: put all target before include of common.mkLibravatar Kelvin M. Klann2022-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "all" target is usually intended to be the default one and when running make, the first target on a makefile is the one that gets built if no target is specified (such as when running `make` with no arguments). Also, note that unlike config.mk, src/common.mk may define its own targets, so move the "all" target to before the include of src/common.mk, to ensure that "all" keeps being the default target regardless of what is defined in src/common.mk. Note: If the "all" target is defined as depending directly on `$(OBJS)` while it is empty (that is, before src/common.mk is included), running `make` (or `make all`) will result in make always concluding that there is nothing to be done and exiting. So make "all" depend on an intermediary phony "lib" target instead, which in turn depends on `$(OBJS)` (and is declared after `$(OBJS)` is populated).
| * | | makefiles: remove unused BINOBJS variableLibravatar Kelvin M. Klann2022-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is unclear what its intended purpose would be. Example: $ cat Makefile OBJS = a b c BINOBJS = $(foreach file, $(OBJS), $file) all: printf '"%s"\n' "$(BINOBJS)" $ make printf '"%s"\n' " ile ile ile" " ile ile ile" Added on commit 137985136 ("Baseline firejail 0.9.28", 2015-08-08).
| * | | fids/Makefile: remove code commentLibravatar Kelvin M. Klann2022-11-20
| | | | | | | | | | | | | | | | Added on commit a627071b3 ("intrusion detection system", 2021-07-28).
* | | | Merge pull request #5481 from kmk3/ci-sort-ignore-pathsLibravatar netblue302022-11-25
|\ \ \ \ | | | | | | | | | | ci: sort and ignore more paths
| * | | | ci: ignore man/vim paths in build-extra/codeql workflowsLibravatar Kelvin M. Klann2022-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ignore the following paths: - 'contrib/vim/**' - 'src/man/*.txt' To avoid running CI unnecessarily. Note: build-extra essentially only builds with clang and runs linters on the C code, so changes to the man pages and vim files should not affect the result. Do not ignore them on .github/workflows/build.yml because they are part of DISTFILES (see the root Makefile). Misc: I noticed this on #5296 (man pages).