Compare commits

...

25 Commits

Author SHA1 Message Date
Adam Warner 74a44cad7a
v5.18.1 (#5618)
1 month ago
Adam Warner 32c640e838
Remove double quotes that prevented _any_ local files from being read by gravity (#5617)
1 month ago
Adam Warner eb7daf4d2c
Fix file permission check in gravity.sh. Remove quotes that were added after complaints from shellcheck, this stopped the comparisson from working
1 month ago
Adam Warner 7442454d32
Sync master back into development (#5616)
1 month ago
Adam Warner 3c7a6ce535
Release 5.18 (#5615)
1 month ago
Adam Warner f3af03174e
Merge pull request from GHSA-95g6-7q26-mp9x
1 month ago
yubiuser eaa878e7a4
Bump tox from 4.13.0 to 4.14.1 in /test (#5602)
2 months ago
dependabot[bot] 8042d9e3fd
Bump tox from 4.13.0 to 4.14.1 in /test
2 months ago
DL6ER 9dd138b033
Only use local files (file://) when they have explicit permissions a+r
2 months ago
yubiuser 0597128de8
Bump pytest-testinfra from 10.0.0 to 10.1.0 in /test (#5579)
2 months ago
dependabot[bot] 0fdd959c7f
Bump pytest-testinfra from 10.0.0 to 10.1.0 in /test
2 months ago
yubiuser e03ddf5d41
Bump pytest from 8.0.0 to 8.0.2 in /test (#5598)
2 months ago
dependabot[bot] cb3e448b38
Bump pytest from 8.0.0 to 8.0.2 in /test
2 months ago
yubiuser b57cf27103
Bump tox from 4.12.1 to 4.13.0 in /test (#5581)
2 months ago
dependabot[bot] 5b75cb1950
Bump tox from 4.12.1 to 4.13.0 in /test
2 months ago
yubiuser 3ba6ab5ec7
Bump pytest from 7.4.4 to 8.0.0 in /test (#5566)
3 months ago
dependabot[bot] f0878c0890
Bump pytest from 7.4.4 to 8.0.0 in /test
3 months ago
Adam Warner 2009fa85ec
Fedora (#5568)
3 months ago
Christian König 7b6f0d1596
Also remove Fedora 37
3 months ago
Christian König f8bfd59f11
Drop Fedora 36 and add Fedora 39 to the test suite
3 months ago
yubiuser 37c6b353b3
Bump tox from 4.12.0 to 4.12.1 in /test (#5555)
3 months ago
dependabot[bot] ba2682c907
Bump tox from 4.12.0 to 4.12.1 in /test
3 months ago
yubiuser e773d0399f
Bump tox from 4.11.4 to 4.12.0 in /test (#5547)
4 months ago
dependabot[bot] 9eb47319f5
Bump tox from 4.11.4 to 4.12.0 in /test
4 months ago
Adam Warner aa4ceb4198
Sync master back into development (#5537)
4 months ago

@ -57,9 +57,8 @@ jobs:
ubuntu_23,
centos_8,
centos_9,
fedora_36,
fedora_37,
fedora_38,
fedora_38,
fedora_39,
]
env:
DISTRO: ${{matrix.distro}}

@ -503,6 +503,7 @@ compareLists() {
gravity_DownloadBlocklistFromUrl() {
local url="${1}" adlistID="${2}" saveLocation="${3}" target="${4}" compression="${5}"
local heisenbergCompensator="" listCurlBuffer str httpCode success="" ip cmd_ext
local file_path permissions ip_addr port blocked=false download=true
# Create temp file to store content on disk instead of RAM
# We don't use '--suffix' here because not all implementations of mktemp support it, e.g. on Alpine
@ -519,7 +520,6 @@ gravity_DownloadBlocklistFromUrl() {
str="Status:"
echo -ne " ${INFO} ${str} Pending..."
blocked=false
case $BLOCKINGMODE in
"IP-NODATA-AAAA"|"IP")
# Get IP address of this domain
@ -560,8 +560,36 @@ gravity_DownloadBlocklistFromUrl() {
cmd_ext="--resolve $domain:$port:$ip"
fi
# shellcheck disable=SC2086
httpCode=$(curl --connect-timeout ${curl_connect_timeout} -s -L ${compression} ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" "${url}" -o "${listCurlBuffer}" 2> /dev/null)
# If we are going to "download" a local file, we first check if the target
# file has a+r permission. We explicitly check for all+read because we want
# to make sure that the file is readable by everyone and not just the user
# running the script.
if [[ $url == "file://"* ]]; then
# Get the file path
file_path=$(echo "$url" | cut -d'/' -f3-)
# Check if the file exists
if [[ ! -e $file_path ]]; then
# Output that the file does not exist
echo -e "${OVER} ${CROSS} ${file_path} does not exist"
download=false
else
# Check if the file has a+r permissions
permissions=$(stat -c "%a" "$file_path")
if [[ $permissions == *4 || $permissions == *5 || $permissions == *6 || $permissions == *7 ]]; then
# Output that we are using the local file
echo -e "${OVER} ${INFO} Using local file ${file_path}"
else
# Output that the file does not have the correct permissions
echo -e "${OVER} ${CROSS} Cannot read file (file needs to have a+r permission)"
download=false
fi
fi
fi
if [[ "${download}" == true ]]; then
# shellcheck disable=SC2086
httpCode=$(curl --connect-timeout ${curl_connect_timeout} -s -L ${compression} ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" "${url}" -o "${listCurlBuffer}" 2> /dev/null)
fi
case $url in
# Did we "download" a local file?
@ -569,7 +597,7 @@ gravity_DownloadBlocklistFromUrl() {
if [[ -s "${listCurlBuffer}" ]]; then
echo -e "${OVER} ${TICK} ${str} Retrieval successful"; success=true
else
echo -e "${OVER} ${CROSS} ${str} Not found / empty list"
echo -e "${OVER} ${CROSS} ${str} Retrieval failed / empty list"
fi;;
# Did we "download" a remote file?
*)

@ -1,18 +0,0 @@
FROM fedora:37
RUN dnf install -y git initscripts
ENV GITDIR /etc/.pihole
ENV SCRIPTDIR /opt/pihole
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
ADD . $GITDIR
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
RUN true && \
chmod +x $SCRIPTDIR/*
ENV SKIP_INSTALL true
ENV OS_CHECK_DOMAIN_NAME dev-supportedos.pi-hole.net
#sed '/# Start the installer/Q' /opt/pihole/basic-install.sh > /opt/pihole/stub_basic-install.sh && \

@ -1,4 +1,4 @@
FROM fedora:36
FROM fedora:39
RUN dnf install -y git initscripts
ENV GITDIR /etc/.pihole

@ -1,6 +1,6 @@
pyyaml == 6.0.1
pytest == 7.4.4
pytest == 8.0.2
pytest-xdist == 3.5.0
pytest-testinfra == 10.0.0
tox == 4.11.4
pytest-testinfra == 10.1.0
tox == 4.14.1

@ -1,8 +0,0 @@
[tox]
envlist = py3
[testenv:py3]
allowlist_externals = docker
deps = -rrequirements.txt
commands = docker buildx build --load --progress plain -f _fedora_36.Dockerfile -t pytest_pihole:test_container ../
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py ./test_centos_fedora_common_support.py ./test_fedora_support.py

@ -4,5 +4,5 @@ envlist = py3
[testenv]
allowlist_externals = docker
deps = -rrequirements.txt
commands = docker buildx build --load --progress plain -f _fedora_37.Dockerfile -t pytest_pihole:test_container ../
commands = docker buildx build --load --progress plain -f _fedora_39.Dockerfile -t pytest_pihole:test_container ../
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py ./test_centos_fedora_common_support.py ./test_fedora_support.py
Loading…
Cancel
Save