Commit graph

607 commits

Author SHA1 Message Date
Kelvin M. Klann
200f389ed0 build: use config.sh in more scripts
This removes the need to manually pass variables such as `$(TARNAME)`
and `$(VERSION)` to shell scripts in the root Makefile.

Relates to #5140.
2023-07-28 14:10:31 -03:00
Kelvin M. Klann
59ed39ec46 build: fix shellcheck issues in mkrpm.sh/compile.sh 2023-07-28 14:08:01 -03:00
Kelvin M. Klann
5f27852906 build: remove unnecessary distclean targets
This also fixes the duplicate execution of the "clean" targets.
2023-07-20 05:03:47 -03:00
glitsj16
9863f982ca
modif: drop deprecated 'shell' option references (#5894)
The `shell` option has been removed. Remove stale references.

This does NOT remove `shell none`-related code comments in:

- src/firejail/fs_lib.c (L433-L441)
- src/firejail/join.c (L415-L417)

Relates to #5196.

Suggested by #5891.
2023-07-19 12:54:53 +00:00
Kelvin M. Klann
b963fe41ae Improve errExit error messages
Changes:

* Move msg to the end of errExit (right before perror(3p))
* Include the full file path (within the repository)
* Add "()" to function name for clarity

Before:

    Error malloc: main.c:123 main: Cannot allocate memory

After:

    Error src/firejail/main.c:123 main(): malloc: Cannot allocate memory

Note: This clarifies which is the exact file that the error message
comes from, as there are many source files with the same name.  For
example:

    $ git ls-files 'src/*/main.c' | wc -l
    20
2023-06-28 04:00:13 -03:00
Kelvin M. Klann
c0c284e33c build: move MAKEFLAGS to config.mk.in
To reduce the amount of boilerplate in the makefiles.

This amends commit 9789c263a ("build: disable all built-in implicit make
rules", 2023-06-21) / PR #5864.
2023-06-24 11:54:15 -03:00
Kelvin M. Klann
9789c263a2 build: disable all built-in implicit make rules
Use `make -r` to reduce unnecessary filesystem lookups.

Overall, this appears to reduce the amount of implicit rule searches by
~93.3% (~97.5% compared to a8f01a383) for the default build and by
~83.3% (~99.3% compared to a8f01a383) for the "man" target (as an
example):

    $ git show --pretty='%h %ai %s' -s
    a8f01a383 2023-06-20 05:26:23 +0000 Merge pull request #5859 from kmk3/build-remove-retpoline
    $ ./configure >/dev/null
    $ make clean >/dev/null && make --debug=i -j 4     | grep -F 'Trying implicit' | wc -l
    6798
    $ make clean >/dev/null && make --debug=i -j 4 man | grep -F 'Trying implicit' | wc -l
    1085
    # (in the previous commit)
    $ make clean >/dev/null && make --debug=i -j 4     | grep -F 'Trying implicit' | wc -l
    2535
    $ make clean >/dev/null && make --debug=i -j 4 man | grep -F 'Trying implicit' | wc -l
    42
    # (with this commit applied)
    $ make clean >/dev/null && make --debug=i -j 4     | grep -F 'Trying implicit' | wc -l
    170
    $ make clean >/dev/null && make --debug=i -j 4 man | grep -F 'Trying implicit' | wc -l
    7

Environment: GNU make 4.4.1-2 on Artix Linux.

Note: According to make(1p) in POSIX.1-2017, "If .SUFFIXES does not have
any prerequisites, the list of known suffixes shall be cleared.", while
"The result of setting MAKEFLAGS in the Makefile is unspecified."

Commands used to search and replace:

    $ git ls-files -z -- '*Makefile*' | xargs -0 -I '{}' sh -c \
      "printf '%s\n' \"\$(sed -E \
        's/^(.SUFFIXES:)/\1\nMAKEFLAGS += -r\n/' '{}')\" >'{}'"
2023-06-21 14:21:09 -03:00
Kelvin M. Klann
d4be8e512d build: disable most built-in implicit make rules
Clear `.SUFFIXES:` to reduce unnecessary filesystem lookups.

Overall, this appears to reduce the amount of implicit rule searches by
~62% for the default build and by ~96% for the "man" target (as an
example):

    $ git checkout master >/dev/null 2>&1
    $ git show --pretty='%h %ai %s' -s
    a8f01a383 2023-06-20 05:26:23 +0000 Merge pull request #5859 from kmk3/build-remove-retpoline
    $ ./configure >/dev/null
    $ make clean >/dev/null && make --debug=i -j 4     | grep -F 'Trying implicit' | wc -l
    6798
    $ make clean >/dev/null && make --debug=i -j 4 man | grep -F 'Trying implicit' | wc -l
    1085
    # (with this commit applied)
    $ make clean >/dev/null && make --debug=i -j 4     | grep -F 'Trying implicit' | wc -l
    2535
    $ make clean >/dev/null && make --debug=i -j 4 man | grep -F 'Trying implicit' | wc -l
    42

Environment: GNU make 4.4.1-2 on Artix Linux.

Commands used to search and replace:

    $ git ls-files -z -- '*Makefile*' | xargs -0 -I '{}' sh -c \
      "printf '%s\n' \"\$(sed '1s/^/.SUFFIXES:\n/' '{}')\" >'{}'"

See also commit f48886f25 ("build: mark most phony targets as such",
2023-02-01) / PR #5637.
2023-06-21 12:22:34 -03:00
Kelvin M. Klann
6ece8cec3d build: standardize commands on top of makefiles
To make the makefiles look more similar.
2023-06-21 12:22:10 -03:00
Kelvin M. Klann
6d0ffc75d8 tests: disable ping test in test/chroot/fs_chroot.exp
Sometimes ping just works normally.

Log from build_and_test[1]:

    TESTING: chroot (test/chroot/fs_chroot.exp)
    spawn /bin/bash
    firejail  --chroot=/tmp/chroot
    runner@fv-az615-403:~/work/firejail/firejail/test/chroot$
    [...]
    bash-5.1$ /bin/ping 1.1.1.1
    PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
    TESTING ERROR 9

[1] https://github.com/kmk3/firejail/actions/runs/4875037540/jobs/8696877757
2023-05-03 15:20:07 -03:00
netblue30
18765f2358 testing 2023-03-09 09:21:35 -05:00
netblue30
c79aa14295 testing 2023-03-09 08:39:25 -05:00
netblue30
8835b130e2 testing 2023-03-08 17:32:20 -05:00
netblue30
aa0194eae7 testing 2023-03-08 17:09:17 -05:00
netblue30
acf8efb878 testing 2023-03-08 16:23:30 -05:00
netblue30
0e48f9933c remove firemon --interface option - it is a duplication of firejail --net.print 2023-03-08 11:13:02 -05:00
netblue30
4b760f4f3d add ipv6 support in --net.print 2023-03-08 06:53:22 -05:00
netblue30
7ba317267e testing 2023-03-07 17:59:48 -05:00
netblue30
ec7d55fc44 testing 2023-03-07 17:49:25 -05:00
netblue30
51f25677e6 remove DNS lookup for --netfilter.print and --netfilter6.print commands 2023-03-07 09:50:22 -05:00
netblue30
a12601f02a testing 2023-03-07 08:30:53 -05:00
Kelvin M. Klann
1f5f84f959 Run make codespell
Environment: codespell 2.2.2-3 on Artix Linux.
2023-03-07 03:29:31 -03:00
netblue30
c79beb5a15 testing 2023-03-06 16:09:33 -05:00
netblue30
d78fc96ee0 codespell github action 2023-03-05 09:57:04 -05:00
netblue30
1bab42a724 test apparmor 2023-03-04 11:48:00 -05:00
netblue30
295a207490 testing: moving apparmor out from filters group 2023-03-03 17:23:43 -05:00
netblue30
774fadedee testing firecfg 2023-03-03 17:16:45 -05:00
netblue30
5b1d1d5cf1 more testing 2023-03-03 17:05:15 -05:00
smitsohu
eb8dfc1284 restrict-namespaces testing 2023-03-02 17:34:07 +01:00
netblue30
336ecb5d65 network testing; merges 2023-03-02 10:34:03 -05:00
netblue30
91235785e0 network testing 2023-03-02 08:19:41 -05:00
netblue30
6d92028545 appimage testing 2023-03-01 09:04:07 -05:00
netblue30
b50812ff5e appimage testing 2023-03-01 08:52:53 -05:00
netblue30
55fb69f4f5 chroot testing 2023-02-28 10:07:35 -05:00
netblue30
27c4d069f3 chroot testing 2023-02-28 09:51:26 -05:00
netblue30
e4f9f36a47 random hostname by default; fix --hostname and --hosts-file 2023-02-27 17:50:02 -05:00
Kelvin M. Klann
bdb4f03ed9 test2.profile: restore leading spaces
As pointed out by @rusty-snake[1]:

> I think this is intentional to test if firejail can parse commands
> with leading spaces.

This amends commit b406b2420 ("tests: Fix mixed space/tabs indentation",
2023-02-19) / PR #5674.

Note: This is the only profile in test/ that the commit changed:

    $ git show --pretty= --name-only b406b2420 -- test/
    test/fs/private-whitelist.exp
    test/network/firemon-route.exp
    test/profiles/test2.profile

[1] https://github.com/netblue30/firejail/pull/5674#discussion_r1117891957
2023-02-25 14:42:38 -03:00
netblue30
d657245f73
Merge pull request #5674 from kmk3/fix-ws-add-editorconfig
build: Fix whitespace and add .editorconfig
2023-02-24 20:44:48 -05:00
netblue30
2531759b80 more private-etc 2023-02-24 20:37:35 -05:00
Kelvin M. Klann
b406b2420a tests: Fix mixed space/tabs indentation
Command used to find the errors:

    $ git grep -I '^ [^*]' -- test/

Misc: All of the affected files were added in 2016.
2023-02-20 17:39:31 -03:00
Kelvin M. Klann
def30f6d1e test/filters/namespaces.c: use tabs for indentation
This appears to be the only C file in the repository that uses spaces
for indentation.

Commands used to check for the above:

    $ git grep '^        ' -- '*.c' '*.h'

Commands used to search and replace:

    $ f=test/filters/namespaces.c; printf '%s\n' \
        "$(sed 's/    /\t/g' "$f")" >"$f"

Note: The mmap call was aligned manually.

Added on commit 5116c1ced ("testing", 2022-12-24).
2023-02-20 17:39:31 -03:00
Kelvin M. Klann
3812c139a6 Fix EOL at EOF
Commands used to search and replace:

    $ git grep -Ilz '.' | xargs -0 -I '{}' sh -c \
      "printf '%s\n' \"\$(cat '{}')\" >'{}'"

The above commands ensure that there is exaclty 1 line terminator at EOF
(rather than 0 or more than 1) on all non-empty text files.

This fixes all of the "new blank line at EOF" errors raised by git:

    $ git diff --check 4b825dc642cb6eb9a060e54bf8d69288fbee4904..HEAD |
      grep '^[^+]' | cut -f 3 -d : | LC_ALL=C sort | uniq -c
         21  new blank line at EOF.
         72  space before tab in indent.
          4  trailing whitespace.
2023-02-19 20:57:12 -03:00
netblue30
80bc00e40f merges, testing, private-etc 2023-02-16 08:21:50 -05:00
David Fetter
2dc16cc247
Update copyright to 2023 (#5664) 2023-02-15 18:57:44 +00:00
netblue30
18a4af4f77 testing --name 2023-02-14 16:11:39 -05:00
netblue30
29da82d08a private-etc: kdiff3, gzip, gunzip, tar etc 2023-02-10 14:38:57 -05:00
netblue30
7176e6324d private-etc: libreoffice, audacity, forzen-bubble, transmission, md5sum/sha512sum, more sysutils testing, fix electron-hardened.inc.profile 2023-02-08 17:50:44 -05:00
netblue30
45a641deab testing 2023-02-06 22:34:03 -05:00
netblue30
cb1104edf9 private-etc testing 2023-02-06 22:28:25 -05:00
netblue30
4a4bd8a617 testing 2023-02-06 14:13:12 -05:00