Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Development v6 #1950

Open
wants to merge 1,926 commits into
base: development
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1926 commits
Select commit Hold shift + click to select a range
f6fb93e
Update embedded dnsmasq version to 2.90test4
DL6ER Feb 13, 2024
7a919cb
Allow narrowing down the (ad)list type using the (optional) query par…
DL6ER Feb 13, 2024
8b3c390
Add RFC 8482 filtering (Providing Minimal-Sized Responses to DNS Quer…
DL6ER Feb 13, 2024
fbd7aa7
Check for UNKNOWN status and replies during CI testing
DL6ER Feb 13, 2024
8325db3
Set REPLY of queries that failed DNSSEC validation to NONE (if not al…
DL6ER Feb 13, 2024
fc635e0
Ensure webserver.api.maxClients is honored even in the presence of re…
DL6ER Feb 13, 2024
81a1da6
Improve description of GET /auth/app endpoint
DL6ER Feb 13, 2024
ebbfb89
Protection against pathalogical DNSSEC domains.
simonkelley Dec 30, 2023
aa565b1
Update header with new EDE values.
simonkelley Dec 31, 2023
ddf44bf
Update NSEC3 iterations handling to conform with RFC 9276.
simonkelley Dec 31, 2023
0b9e554
Measure cryptographic work done by DNSSEC.
simonkelley Jan 1, 2024
d92159a
Fix error introduced in 635bc51cac3d5d7dd49ce9e27149cf7e402b7e79
simonkelley Jan 2, 2024
f141efd
Parameterise work limits for DNSSEC validation.
simonkelley Jan 2, 2024
b5e7dd4
Update EDE code -> text conversion.
simonkelley Jan 4, 2024
1dbbdc9
Rework validate-by-DS to avoid DoS vuln without arbitrary limits.
simonkelley Jan 4, 2024
84161ed
Overhaul data checking in NSEC code.
simonkelley Jan 5, 2024
dcd12a2
Better stats and logging from DNSSEC resource limiting.
simonkelley Jan 6, 2024
cb577f3
Better allocation code for DS digest cache.
simonkelley Jan 6, 2024
4b351cb
Add --dnssec-limits option.
simonkelley Jan 7, 2024
c95816f
Reverse suppression of ANY query answer logging.
simonkelley Feb 13, 2024
96f4acb
Add documentation for automatically added new DNSSEC-related metrics
DL6ER Feb 13, 2024
2c7c19c
Update expected dnsmasq warnings
DL6ER Feb 13, 2024
a326d80
Update dnsmasq version to 2.90
DL6ER Feb 13, 2024
2582043
Apply code review
DL6ER Feb 13, 2024
6681804
Merge pull request #1875 from pi-hole/update/dnsmasq
DL6ER Feb 13, 2024
41725fd
Merge pull request #1887 from pi-hole/tweak/apppw_descrition
DL6ER Feb 13, 2024
750db7e
Merge branch 'development-v6' into tweak/allow_adlist_dups
DL6ER Feb 13, 2024
93e621c
Report only as many clients as we have added to the sorting array
DL6ER Feb 14, 2024
b986a82
apply the same fix to other places in the API
DL6ER Feb 15, 2024
e3c4dcf
Restructure API response from /history/clients and /history/database/…
DL6ER Feb 16, 2024
d74d2a1
Improve config migration logging
DL6ER Feb 17, 2024
d5cf579
Merge branch 'development' into merge-v5-6
DL6ER Feb 11, 2024
814362c
Apply the same fix also to /stats/upstreams - this endpoint is actual…
DL6ER Feb 18, 2024
485080a
Use correct index for domains in the Top Lists
DL6ER Feb 18, 2024
157b589
Fix spurious "resource limit exceeded" messages.
simonkelley Feb 19, 2024
cf06e53
Update embedded dnsmasq version to 2.90+1
DL6ER Feb 19, 2024
47f4878
Merge branch 'development-v6' into new/migrate_dnsmasq_conf
DL6ER Feb 19, 2024
bffd2bd
Merge pull request #1892 from pi-hole/fix/dnsmasq_resource_warning
DL6ER Feb 20, 2024
a1d6f85
Bump the github_action-dependencies group with 3 updates
dependabot[bot] Mar 2, 2024
661d9e3
Merge pull request #1897 from pi-hole/dependabot-github_actions-devel…
yubiuser Mar 2, 2024
d4792bb
Merge pull request #1886 from pi-hole/tweak/allow_adlist_dups
DL6ER Mar 2, 2024
7ef8e6c
Merge pull request #1882 from pi-hole/merge-v5-6
DL6ER Mar 2, 2024
4b2a4be
Merge pull request #1868 from pi-hole/new/useWAL
DL6ER Mar 4, 2024
93d01d9
Merge pull request #1891 from pi-hole/fix/migration_message
DL6ER Mar 4, 2024
b53d969
Update config.c fix typo 5335 instead of 5353
bungh0l10 Mar 5, 2024
595fc6c
Merge pull request #1899 from bungh0l10/fix-mdns-typo
DL6ER Mar 7, 2024
84d6e2d
Try building on self-hosted GHA runner
DL6ER Mar 7, 2024
59c1e2b
Build x86 binaries on GHA, only build ARM/RISCV on our self-hosted AR…
DL6ER Mar 7, 2024
d85492d
Independent building of RISCV64
DL6ER Mar 7, 2024
ef84283
Use correct variable when migrating possible revServer settings from …
DL6ER Mar 7, 2024
4f3bd87
Only add active entries
DL6ER Mar 8, 2024
9318909
Reduce code duplication by outsourcing into composite actions
DL6ER Mar 8, 2024
753bdd3
Do not try to upload documentation in deferred riscv64 upload step
DL6ER Mar 9, 2024
4019bd7
Try direct deployment
DL6ER Mar 9, 2024
af7d521
Download documentation in amd64 build and further reduce code duplica…
DL6ER Mar 9, 2024
082543e
Bump the github_action-dependencies group with 2 updates
dependabot[bot] Mar 9, 2024
62566e9
Merge pull request #1903 from pi-hole/dependabot-github_actions-devel…
yubiuser Mar 9, 2024
d41fbee
Include RISCV64 in GHA job
DL6ER Mar 9, 2024
9cfd936
Merge branch 'development-v6' into new/self-hosted
DL6ER Mar 9, 2024
c6a0b81
Merge pull request #1902 from pi-hole/new/self-hosted
DL6ER Mar 11, 2024
abcbcc5
Merge pull request #1901 from pi-hole/fix/revServerImporting
DL6ER Mar 11, 2024
aa7deb9
Add CI tests for deep config validation
DL6ER Mar 11, 2024
0eeeb81
Goodbye Adam mode
DL6ER Mar 12, 2024
1bb74b3
Merge pull request #1773 from pi-hole/new/validator
DL6ER Mar 12, 2024
ac21427
Add missing validator for database.useWAL
DL6ER Mar 12, 2024
ad06e92
Merge pull request #1907 from pi-hole/fix/validate_useWAL
DL6ER Mar 12, 2024
2f38061
Merge pull request #1906 from pi-hole/tweak/goodbye_adam_mode
DL6ER Mar 12, 2024
2e23e76
Add searching for domains and clients in the Query Log. Wildcards (*)…
DL6ER Mar 14, 2024
a0d6554
Merge pull request #1908 from pi-hole/new/query_log_search
DL6ER Mar 15, 2024
4cd500d
demote warning log message about not being able to open /sys/class/hw…
PromoFaux Mar 15, 2024
8d4bf22
Uncomment previously commented line which prevented the domain valida…
PromoFaux Mar 16, 2024
a2a77eb
Merge pull request #1909 from pi-hole/v6/suppress_hwmon_warning
DL6ER Mar 16, 2024
4f6225c
Merge pull request #1910 from pi-hole/tweak/config-validation
DL6ER Mar 16, 2024
74eba5f
Remove config option database.DBexport. Its implementation was broken…
DL6ER Feb 1, 2024
33d5472
Remove obsoleted config option from test/pihole.toml
DL6ER Feb 2, 2024
d408362
Remove (undocumented) advanced flag in details config output
DL6ER Feb 11, 2024
e3f9aa7
Work on a copy of the env vars to avoid modifying the original causin…
DL6ER Mar 16, 2024
66653ae
Merge branch 'development-v6' into fix/overTimeGraphs
DL6ER Mar 16, 2024
ccbe642
Add validator for webserver.api.client_history_global_max
DL6ER Mar 16, 2024
779e6ae
Merge pull request #1911 from pi-hole/fix/enviroment_after_restart
DL6ER Mar 16, 2024
c835795
Merge pull request #1884 from pi-hole/fix/overTimeGraphs
DL6ER Mar 16, 2024
75b792f
Update embedded SQLite3 to 3.45.2
DL6ER Mar 17, 2024
0d2fcd0
Merge pull request #1872 from pi-hole/tweak/DBexport
DL6ER Mar 17, 2024
16fb8b6
Bump the github_action-dependencies group with 1 update
dependabot[bot] Mar 23, 2024
2a2c4d1
Report the hex-code of the found invalid character
DL6ER Mar 23, 2024
9c7384e
Add new dhcp.logging option
DL6ER Mar 24, 2024
05867e2
Ensure cJSON is used in a thread-safe manner and add CI tests ensurin…
DL6ER Mar 24, 2024
079c66c
Use cJSON to escape hostnames possibly containing control characters
DL6ER Mar 24, 2024
20cc8c3
Only check non-empty hostnames
DL6ER Mar 24, 2024
c82561c
Define a general function escape_json() similar to the already existi…
DL6ER Mar 24, 2024
bfd2136
Further reduce code-duplication by using the new escape_json() functi…
DL6ER Mar 24, 2024
8e9b1dc
Merge pull request #1914 from pi-hole/dependabot-github_actions-devel…
DL6ER Mar 24, 2024
63571bb
Merge pull request #1918 from pi-hole/new/log-dhcp
DL6ER Mar 26, 2024
a23f334
Merge pull request #1917 from pi-hole/tweak/hostname_err_pos
DL6ER Mar 26, 2024
91d8738
Merge pull request #1916 from pi-hole/update/sqlite_3.45.2
DL6ER Mar 28, 2024
557d6a4
Fix a left-over "whitelisted" instead of "allowed" message in debug mode
DL6ER Mar 28, 2024
bc46302
Merge branch 'development-v6' into HEAD
DL6ER Mar 28, 2024
f94fe11
Mark query as allowed when atigravity matches to prevent further chec…
DL6ER Mar 28, 2024
9dcdfa8
Merge pull request #1921 from pi-hole/tweak/allowed_debug
DL6ER Mar 28, 2024
549bc16
Slightly simplify the CI tests
DL6ER Mar 28, 2024
b20df82
Merge pull request #1924 from pi-hole/tweak/ci_risvc64
DL6ER Mar 29, 2024
daf5eb8
Remove two characters TLDs constraint in hostname validation. Empty l…
DL6ER Mar 28, 2024
70a02b1
Merge pull request #1923 from pi-hole/fix/antigravity_mark
DL6ER Mar 29, 2024
ea90056
Merge pull request #1922 from pi-hole/tweak/tld_checks
DL6ER Mar 30, 2024
f7cd4fb
Merge pull request #1919 from pi-hole/tweak/cJSON_threadsafe
DL6ER Mar 30, 2024
dab6ec7
Merge branch 'development-v6' into tweak/select_teleporter
DL6ER Mar 30, 2024
40864d5
Bump the github_action-dependencies group with 1 update
dependabot[bot] Mar 30, 2024
fff34fb
Merge pull request #1927 from pi-hole/dependabot-github_actions-devel…
DL6ER Mar 30, 2024
ed36a9a
Simplify v5 gravity table import condition
DL6ER Mar 30, 2024
8875a0e
Add further debugging output if files are NOT imported
DL6ER Mar 30, 2024
5075144
Fix importing logic for v5 teleporter files
DL6ER Mar 30, 2024
27ff979
Reintroduce a workaround for docker on macOS accidentally removed in …
DL6ER Mar 30, 2024
58ca959
Add proper memory allocation checking in the message formatting subro…
DL6ER Mar 30, 2024
df1f70d
Add further debug output concerning disk usage when debug.gc=true
DL6ER Mar 31, 2024
16c541e
Show warning when in debug mode and stat() failed to get file system …
DL6ER Mar 31, 2024
485faac
Merge pull request #1874 from pi-hole/tweak/select_teleporter
DL6ER Mar 31, 2024
90dda14
Use fragment size when computing filesystem sizes
DL6ER Apr 1, 2024
5b2dda8
Store message in database as well
DL6ER Apr 1, 2024
d88e52d
Improve diagnosis message adding subroutine to not require manually t…
DL6ER Apr 1, 2024
ed41584
Add extra logging around network issues (EDE: network error)
DL6ER Mar 24, 2024
563b02c
Add new CONNECTION_ERROR message to the Pi-hole diagnosis system
DL6ER Apr 2, 2024
f2a7662
Be more verbose in which tables are imported during teleporter importing
DL6ER Apr 2, 2024
b12f93c
Merge pull request #1931 from pi-hole/tweak/selective_teleporter
DL6ER Apr 7, 2024
0cffd8c
Merge pull request #1928 from pi-hole/fix/check_disk
DL6ER Apr 7, 2024
c7ce555
Update embedded SQLite3 to 3.45.3
DL6ER Apr 16, 2024
a05cce0
Merge pull request #1934 from pi-hole/update/sqlite_3.45.3
DL6ER Apr 16, 2024
4734e01
Merge pull request #1930 from pi-hole/tweak/ede_neterr
DL6ER Apr 18, 2024
e29bcb0
Fix a crash resulting from a bad interaction between PRs #1928 and #1930
DL6ER Apr 20, 2024
1b71a44
Merge pull request #1936 from pi-hole/fix/connection_error_crash
DL6ER Apr 21, 2024
49a5a0c
Provide human-readable message about the session status when authenti…
DL6ER Apr 25, 2024
44377ad
Address review comments
DL6ER Apr 27, 2024
771db50
Bump actions/checkout
dependabot[bot] Apr 27, 2024
db32e4d
Merge pull request #1940 from pi-hole/dependabot-github_actions-devel…
yubiuser Apr 27, 2024
af521c9
Merge pull request #1939 from pi-hole/new/session_message
DL6ER May 2, 2024
0169766
API /clients: Add note that {client} needs to be URI-encoded (if spec…
DL6ER May 3, 2024
1611da2
Improve error logging when TCP connections are prematurely closed by …
DL6ER May 4, 2024
240a2fe
Merge pull request #1945 from pi-hole/tweak/tcp_conn_err
DL6ER May 5, 2024
e10bb5c
Merge pull request #1944 from pi-hole/fix/clients_docs
DL6ER May 5, 2024
633b825
Add artifact attestation
DL6ER May 5, 2024
73b5170
Merge branch 'development' into merge-dev
DL6ER May 10, 2024
6ce1668
Change database permissions to -rw-r----- (640)
DL6ER May 10, 2024
5cc5b37
Update tests, remove duplicated test
DL6ER May 10, 2024
c72a913
Merge pull request #1953 from pi-hole/merge-dev
DL6ER May 10, 2024
7de24a0
FTL_lua: Properly guard readline
oliv3r May 10, 2024
be3d4cd
FTL: Avoid hidden HAVE_READLINE define
oliv3r May 10, 2024
bf0c8cd
Merge pull request #1955 from pi-hole/fix/FTL_db_read_perms
DL6ER May 10, 2024
ede7340
Bump the github_action-dependencies group with 2 updates
dependabot[bot] May 11, 2024
30215fc
Merge pull request #1958 from pi-hole/dependabot-github_actions-devel…
yubiuser May 11, 2024
b83fcad
Remove all-in build option - we aren't using it in Pi-hole v6.0
DL6ER May 12, 2024
fccbe2b
Add missing #include
DL6ER May 12, 2024
91b1ced
Fix use-after-free warning
DL6ER May 12, 2024
5525815
Allocate memory for basename()
DL6ER May 12, 2024
d4a89f3
Update bundled cJSON from 1.7.17 -> 1.7.18 released earlier today
DL6ER May 13, 2024
bccfa22
Merge pull request #1959 from pi-hole/update/cJSON_1.7.18
DL6ER May 13, 2024
688a551
Improve query storing algorithm to better cope with bursts of queries…
DL6ER May 14, 2024
30cade6
Use new constant also as back-off factor for exporting into the database
DL6ER May 14, 2024
32de390
Add Clang compiler support, tested with Clang 14.0.0 (Ubuntu 22.04.3 …
DL6ER May 15, 2024
3d4cc1b
Merge pull request #1960 from pi-hole/fix/database_queries
DL6ER May 15, 2024
ecd2e81
Fix error message mentioning wrong file
jacklul May 17, 2024
12bebfb
Merge pull request #1961 from jacklul/v6-patch-1
DL6ER May 17, 2024
4628219
Merge pull request #1956 from oliv3r/readline_detection
DL6ER May 17, 2024
95b1dc1
Merge pull request #1964 from pi-hole/new/artifact_attestations
DL6ER May 18, 2024
98407e3
Update DNS records after pruning DHCP leases
May 18, 2024
ebc195a
Update custom dnsmasq version
DL6ER May 18, 2024
a078106
Merge pull request #1965 from pi-hole/fix/dhcp_names
DL6ER May 18, 2024
9446b25
Merge branch 'development-v6' into special/CI_development
DL6ER May 18, 2024
f894910
Remove explicit static instructions - binaries compiled on alpine wil…
DL6ER May 18, 2024
9fbd40e
Avoid ambigious else
DL6ER May 18, 2024
313cb23
Update C standard to C17
DL6ER May 18, 2024
ab373bc
Merge branch 'special/CI_development' into new/clang
DL6ER May 18, 2024
6fed81a
Bump actions/checkout in the github_action-dependencies group
dependabot[bot] May 18, 2024
6de3d81
Merge pull request #1968 from pi-hole/dependabot-github_actions-devel…
DL6ER May 18, 2024
e286d4b
Properly guard X.509 functions to allow compiling FTL without mbedTLS…
DL6ER May 18, 2024
4b2cb98
Enforce minimum version of mbedTLS (3.5.0)
DL6ER May 18, 2024
e3346ff
Ensure we also change ownership of the WAL database files
DL6ER May 18, 2024
139facd
Merge pull request #1969 from pi-hole/fix/mbedtls
DL6ER May 18, 2024
5243083
Merge pull request #1970 from pi-hole/fix/wal-ownership
DL6ER May 18, 2024
2017343
Merge branch 'development-v6' into new/clang
DL6ER May 18, 2024
d579417
Ensure target lua_scripts is built before target ftl_lua depending on it
DL6ER May 19, 2024
67fdf29
Fix conditional for readline inclusion in LUA code
DL6ER May 19, 2024
25ab7b7
Print GLIBC version in pihole-FTL -vv and not during compile time as …
DL6ER May 19, 2024
f88d96a
Skip attestation and deployment steps for fork-based PRs having no ac…
DL6ER May 19, 2024
2a1ae11
Merge pull request #1972 from pi-hole/fix/fork_pr
DL6ER May 20, 2024
bfbe309
Update build containers to ftl-build v2.5.1
DL6ER May 20, 2024
c957f78
Add Visual Studio Code CMake configuration to get ccompile-time defin…
DL6ER May 20, 2024
8c5da71
Add clang build
DL6ER May 20, 2024
212d0f0
Use ftl-build:nightly for devcontainer
DL6ER May 20, 2024
4a70b59
Use new-clang ftl-build containers
DL6ER May 20, 2024
1a72da3
Do not build static exectuable in clang test to avoid LTO linking issue
DL6ER May 20, 2024
e10d2a5
Clang-built binaries are expected to be dynamic
DL6ER May 21, 2024
be9fe87
Always try to chown auxiliary database files, not only when chown of …
DL6ER May 20, 2024
0f48ea8
Merge pull request #1973 from pi-hole/fix/database_aux_files
DL6ER May 21, 2024
6241314
Only one builder is allowed to push the API documentation
DL6ER May 21, 2024
782178c
Run tests with attached debugger
DL6ER May 22, 2024
3afd9f0
Update embedded SQLite3 to 3.46.0
DL6ER May 23, 2024
825a14a
Merge pull request #1974 from pi-hole/update/sqlite_3.46.0
DL6ER May 23, 2024
dc204a4
Use v2.6 CI containers and nightly for the devcontainer
DL6ER May 25, 2024
40eee1a
Addres spellchecker complaints
DL6ER May 25, 2024
36cb3a4
Add more debugging for the internal name resolution process: (1) abou…
DL6ER May 26, 2024
2843fb0
Fix forgotten update of lastQuery of upstream servers
DL6ER May 26, 2024
5db4ade
Use TCP queries for internal name resolution to avoid truncated replies
DL6ER May 26, 2024
090c1ad
Implement later retrying if name resolution attempt failed temporaril…
DL6ER May 27, 2024
3de9e12
Change magic comment put next to config options which are forced thro…
DL6ER May 28, 2024
2cb6b36
Print config file statistics at the end of the config file
DL6ER May 28, 2024
a5f5092
List forced environment variables at end of the config file
DL6ER May 28, 2024
7bfe4dc
Reset config options previously forced by env vars but not any longer
DL6ER May 28, 2024
980cc84
Reset special debug.all in a similar way
DL6ER May 29, 2024
23d9476
Merge pull request #1962 from pi-hole/new/clang
DL6ER May 29, 2024
c6e776d
Merge branch 'development-v6' into tweak/env_reset
DL6ER May 29, 2024
86d6833
Merge branch 'development-v6' into fix/resolver
DL6ER May 29, 2024
60b1a75
Merge pull request #1979 from pi-hole/tweak/env_reset
DL6ER May 29, 2024
19715ea
Add help description of new optional ptr IP [tcp] flag
DL6ER May 29, 2024
47c7de6
Merge pull request #1976 from pi-hole/fix/resolver
DL6ER May 30, 2024
7ff016f
Merge pull request #1737 from pi-hole/new/migrate_dnsmasq_conf
DL6ER May 30, 2024
8e34c3e
Merge branch 'development-v6' into tweak/remove_expert_flag
DL6ER May 30, 2024
1a5e7f6
Add new dhcp.ignoreUnknownClients option
DL6ER May 30, 2024
96da0d4
Synchronize test/pihole.toml with the many config file changes that h…
DL6ER May 30, 2024
1f6d9c1
Explicitly chown PID and remove old PORT file
DL6ER May 30, 2024
306710e
Add timezone information where this is appropriate. We do not include…
DL6ER May 30, 2024
7db4483
Update macvendor script
DL6ER May 31, 2024
021c0a1
Merge pull request #1983 from pi-hole/fix/macvendor_db
DL6ER May 31, 2024
f4b9ca2
Merge pull request #1980 from pi-hole/new/dhcp_ignoreUnknownClients
DL6ER Jun 1, 2024
aac9968
Merge branch 'development-v6' into new/timezone
DL6ER Jun 1, 2024
4be0ff6
Bump eps1lon/actions-label-merge-conflict
dependabot[bot] Jun 1, 2024
d66db45
Merge pull request #1984 from pi-hole/dependabot-github_actions-devel…
yubiuser Jun 1, 2024
14ea246
Always include timezone in human-readable timestamps
DL6ER Jun 2, 2024
58c59a0
Skip certificate domain check when TLS is not actually used even if a…
DL6ER Jun 2, 2024
d343959
Default to resolve internal PTRs using UDP, fall back to TCP for indi…
DL6ER Jun 2, 2024
9f8c4c2
Merge pull request #1981 from pi-hole/new/timezone
DL6ER Jun 2, 2024
d343781
Merge pull request #1986 from pi-hole/fix/retry_truncated
DL6ER Jun 2, 2024
f2c14cc
Fix incorrect unification of regex warnings
DL6ER Jun 3, 2024
1899792
Store correct database ID when issuing a warning
DL6ER Jun 3, 2024
b20d80f
Merge pull request #1989 from pi-hole/fix/regex_diagnosis
DL6ER Jun 3, 2024
af0468e
Fix very long DNS names (>64 bytes) potentially crashing the internal…
DL6ER Jun 3, 2024
a564e32
Merge pull request #1990 from pi-hole/fix/long_dns_names
DL6ER Jun 3, 2024
a724402
Merge pull request #1987 from pi-hole/tweak/cert_no_tls
DL6ER Jun 3, 2024
61826a4
Merge pull request #1883 from pi-hole/tweak/remove_expert_flag
PromoFaux Jun 5, 2024
44d57e5
Add checking of return status of sqlite3_open_v2 to ensure we are not…
DL6ER Jun 6, 2024
9491cdf
Merge pull request #1992 from pi-hole/fix/no_gravity
DL6ER Jun 6, 2024
2406e1a
Check if the newly set password is the same as the old one
DL6ER Jun 6, 2024
ec6750d
Make definition of __USE_MISC conditional
DL6ER Jun 10, 2024
7adda9a
Merge pull request #1993 from pi-hole/tweak/pogo
DL6ER Jun 12, 2024
5a6a212
Add special handling for systems without password in the password che…
DL6ER Jun 13, 2024
01c5c56
Merge pull request #1994 from pi-hole/fix/env_password
DL6ER Jun 15, 2024
bf47650
Bump actions/checkout in the github_action-dependencies group
dependabot[bot] Jun 15, 2024
b318256
Fix API hint
yubiuser Jun 15, 2024
a09088e
Merge pull request #1996 from pi-hole/dependabot-github_actions-devel…
yubiuser Jun 15, 2024
c82676b
Merge pull request #1998 from pi-hole/no_dnsmasq
yubiuser Jun 15, 2024
9e329be
Fix DNS-SD query analysis
DL6ER Jun 21, 2024
75b5e5f
Merge pull request #2000 from pi-hole/fix/dns-sd
DL6ER Jun 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
28 changes: 19 additions & 9 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
{
"name": "FTL x86_64 Build Env",
"image": "ghcr.io/pi-hole/ftl-build:x86_64",
"extensions": [
"jetmartin.bats",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"eamodio.gitlens"
],
}
"name": "FTL x86_64 Build Env",
"image": "ghcr.io/pi-hole/ftl-build:nightly",
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
"customizations": {
"vscode": {
"extensions": [
"jetmartin.bats",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"eamodio.gitlens"
]
}
},
"mounts": [
"type=bind,source=/home/${localEnv:USER}/.ssh,target=/root/.ssh,readonly",
"type=bind,source=/var/www/html,target=/var/www/html,readonly"
]

}
7 changes: 6 additions & 1 deletion .github/.codespellignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,10 @@ ssudo
tre
ede
nd
doubleclick
requestor
requestors
requestors
punycode
bitap
mmapped
dnsmasq
3 changes: 3 additions & 0 deletions .github/.codespellignore_lines
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
self.errors.append("Exception when GETing from FTL: " + str(e))
// sitten -> sittin (substitution of "i" for "e"),
// sittin -> sitting (insertion of "g" at the end).
30 changes: 30 additions & 0 deletions .github/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
FROM ghcr.io/pi-hole/ftl-build:v2.6 AS builder

WORKDIR /app

COPY . /app

ARG CI_ARCH="linux/amd64"
ENV CI_ARCH ${CI_ARCH}
ARG GIT_BRANCH="test"
ENV GIT_BRANCH ${GIT_BRANCH}
ARG GIT_TAG="test"
ENV GIT_TAG ${GIT_TAG}
ARG BUILD_OPTS=""
ENV BUILD_OPTS ${BUILD_OPTS}

# Build FTL
# Remove possible old build files
RUN rm -rf cmake && \
# Build and test FTL
bash build.sh "-DSTATIC=${STATIC}" test ${BUILD_OPTS} && \
# Move FTL binary to root directory
cd / &&\
mv /app/pihole-FTL . && \
# Create tarball of API docs
tar -C /app/src/api/docs/content/ -czvf /api-docs.tar.gz .

# Create final image containing only the FTL binary and API docs
FROM scratch AS result
COPY --from=builder /pihole-FTL /pihole-FTL
COPY --from=builder /api-docs.tar.gz /api-docs.tar.gz
142 changes: 142 additions & 0 deletions .github/actions/build-and-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
name: Build and test
description: Builds and tests FTL on all supported platforms

inputs:
platform:
required: true
description: The platform to build for
build_opts:
required: true
description: Any extra build opts to use
git_branch:
required: true
description: The branch to build from
git_tag:
required: true
description: The tag to build from (if any)
bin_name:
required: true
description: The name of the binary to build
artifact_name:
required: true
description: The name of the artifact to upload
event_name:
required: true
description: The name of the event that triggered the workflow run
actor:
required: true
description: The name of the user or app that initiated the workflow run
target_dir:
required: true
description: The directory to deploy the artifacts to
# Secrets cannot be accessed in the action.yml file so we need to pass them as
# inputs to the action.
SSH_KEY:
required: true
description: The SSH private key to use for authentication
KNOWN_HOSTS:
required: true
description: The SSH known hosts file
SSH_USER:
required: true
description: The SSH user to use for authentication
SSH_HOST:
required: true
description: The SSH host to connect to

# Both the definition of environment variables and checking out the code
# needs to be done outside of the composite action as
# - environment variables cannot be defined using inputs
# - the checkout action needs to be the first step in the workflow, otherwise we
# cannot use the composite action as the corresponding "action.yml" isn't
# there yet
runs:
using: "composite"
steps:
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.1.0
-
name: Print directory contents
shell: bash
run: ls -l
-
name: Build and test FTL in ftl-build container (QEMU)
uses: Wandalen/wretry.action@v1.4.8
with:
attempt_limit: 3
action: docker/build-push-action@v5.0.0
with: |
platforms: ${{ inputs.platform }}
pull: true
push: false
context: .
target: result
file: .github/Dockerfile
outputs: |
type=tar,dest=build.tar
build-args: |
"CI_ARCH=${{ inputs.platform }}"
"GIT_BRANCH=${{ inputs.git_branch }}"
"GIT_TAG=${{ inputs.git_tag }}"
"BUILD_OPTS=${{ inputs.build_opts }}"
-
name: List files in current directory
shell: bash
run: ls -l
-
name: Extract FTL binary from container
shell: bash
run: |
tar -xf build.tar pihole-FTL
-
name: "Generate checksum file"
shell: bash
run: |
mv pihole-FTL "${{ inputs.bin_name }}"
sha1sum pihole-FTL-* > ${{ inputs.bin_name }}.sha1
-
name: Store binary artifacts for later deployoment
if: inputs.event_name != 'pull_request'
uses: actions/upload-artifact@v4.3.1
with:
name: ${{ inputs.artifact_name }}
path: '${{ inputs.bin_name }}*'
-
name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
# Skip attestation if ACTIONS_ID_TOKEN_REQUEST_URL env variable is not
# available (e.g., PR originating from a fork)
if: ${{ env.ACTIONS_ID_TOKEN_REQUEST_URL != '' }}
with:
subject-path: ${{ inputs.bin_name }}
-
name: Extract documentation files from container
if: inputs.event_name != 'pull_request' && inputs.platform == 'linux/amd64' && inputs.build_opts == ''
shell: bash
run: |
tar -xf build.tar api-docs.tar.gz
-
name: Upload documentation artifacts for deployoment
if: inputs.event_name != 'pull_request' && inputs.platform == 'linux/amd64' && inputs.build_opts == ''
uses: actions/upload-artifact@v4.3.1
with:
name: pihole-api-docs
path: 'api-docs.tar.gz'
-
name: Deploy
# Skip deployment step if:
# - this is a triggered by a PR event (we only push on commit to branch
# events)
# - no SSH key is provided (this is a PR from a fork)
if: inputs.event_name != 'pull_request' && ${{ inputs.SSH_KEY != '' }}
uses: ./.github/actions/deploy
with:
pattern: ${{ inputs.bin_name }}-binary
target_dir: ${{ inputs.target_dir }}
event_name: ${{ inputs.event_name }}
actor: ${{ inputs.actor }}
SSH_KEY: ${{ inputs.SSH_KEY }}
KNOWN_HOSTS: ${{ inputs.KNOWN_HOSTS }}
SSH_USER: ${{ inputs.SSH_USER }}
SSH_HOST: ${{ inputs.SSH_HOST }}
96 changes: 96 additions & 0 deletions .github/actions/deploy/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Deploy
description: Deploy the FTL binary and documentation

inputs:
pattern:
required: true
description: The pattern to match the artifacts to download
target_dir:
required: true
description: The directory to deploy the artifacts to
event_name:
required: true
description: The name of the event that triggered the workflow run
actor:
required: true
description: The name of the user or app that initiated the workflow run
# Secrets cannot be accessed in the action.yml file so we need to pass them as
# inputs to the action.
SSH_KEY:
required: true
description: The SSH private key to use for authentication
KNOWN_HOSTS:
required: true
description: The SSH known hosts file
SSH_USER:
required: true
description: The SSH user to use for authentication
SSH_HOST:
required: true
description: The SSH host to connect to

runs:
using: "composite"
steps:
-
name: Get binaries built in previous jobs
uses: actions/download-artifact@v4.1.4
id: download
with:
path: ftl_builds/
pattern: ${{ inputs.pattern }}
merge-multiple: true
-
name: Get documentation files built in previous jobs
if: inputs.pattern == 'pihole-FTL-amd64-binary'
uses: actions/download-artifact@v4.1.4
with:
path: ftl_builds/
name: pihole-api-docs
-
name: Display structure of downloaded files
shell: bash
run: ls -R
working-directory: ${{steps.download.outputs.download-path}}
-
name: Install SSH Key
uses: benoitchantre/setup-ssh-authentication-action@1.0.1
with:
private-key: ${{ inputs.SSH_KEY }}
private-key-name: id_rsa
known-hosts: ${{ inputs.KNOWN_HOSTS }}
-
name: Set private key permissions
shell: bash
run: chmod 600 ~/.ssh/id_rsa
-
name: Untar documentation files
if: inputs.pattern == 'pihole-FTL-amd64-binary'
working-directory: ftl_builds/
shell: bash
run: |
mkdir docs/
tar xzvf api-docs.tar.gz -C docs/
-
name: Display structure of files ready for upload
working-directory: ftl_builds/
shell: bash
run: ls -R
-
name: Transfer Builds to Pi-hole server for pihole checkout
if: inputs.actor != 'dependabot[bot]'
env:
USER: ${{ inputs.SSH_USER }}
HOST: ${{ inputs.SSH_HOST }}
TARGET_DIR: ${{ inputs.target_dir }}
SOURCE_DIR: ftl_builds/
shell: bash
run: |
bash ./deploy.sh
-
name: Attach binaries to release
if: inputs.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: |
ftl_builds/*