mirror of
https://github.com/pi-hole/pi-hole
synced 2025-01-03 04:30:55 +00:00
*BREAKING* Drop support for ancient ARMv4 and ARMv5 (#5445)
This commit is contained in:
commit
8bcd1d4c54
@ -1887,9 +1887,9 @@ get_binary_name() {
|
|||||||
printf "%b %b Detected AArch64 (64 Bit ARM) architecture\\n" "${OVER}" "${TICK}"
|
printf "%b %b Detected AArch64 (64 Bit ARM) architecture\\n" "${OVER}" "${TICK}"
|
||||||
# set the binary to be used
|
# set the binary to be used
|
||||||
l_binary="pihole-FTL-arm64"
|
l_binary="pihole-FTL-arm64"
|
||||||
elif [[ "${cpu_arch}" == "armv6KZ" ]]; then
|
elif [[ "${cpu_arch}" == "armv6"* ]]; then
|
||||||
printf "%b %b Detected ARMv6KZ architecture\\n" "${OVER}" "${TICK}"
|
printf "%b %b Detected ARMv6 architecture\\n" "${OVER}" "${TICK}"
|
||||||
# set the binary to be used
|
# set the binary to be used (e.g., BCM2835 as found in Raspberry Pi Zero and Model 1)
|
||||||
l_binary="pihole-FTL-armv6"
|
l_binary="pihole-FTL-armv6"
|
||||||
else
|
else
|
||||||
# If ARMv8 or higher is found (e.g., BCM2837 as found in Raspberry Pi Model 3B)
|
# If ARMv8 or higher is found (e.g., BCM2837 as found in Raspberry Pi Model 3B)
|
||||||
@ -1902,24 +1902,10 @@ get_binary_name() {
|
|||||||
printf "%b %b Detected ARMv7 architecture (%s)\\n" "${OVER}" "${TICK}" "${cpu_arch}"
|
printf "%b %b Detected ARMv7 architecture (%s)\\n" "${OVER}" "${TICK}" "${cpu_arch}"
|
||||||
# set the binary to be used
|
# set the binary to be used
|
||||||
l_binary="pihole-FTL-armv6"
|
l_binary="pihole-FTL-armv6"
|
||||||
elif [[ "${cpu_arch}" == "v5TE" || "${rev}" -gt 5 ]]; then
|
|
||||||
# Check if the system is using GLIBC 2.29 or higher
|
|
||||||
if [[ -n "${l_glibc_version}" && "$(printf '%s\n' "2.29" "${l_glibc_version}" | sort -V | head -n1)" == "2.29" ]]; then
|
|
||||||
# If so, use the ARMv6 binary (e.g., BCM2835 as found in Raspberry Pi Zero and Model 1)
|
|
||||||
printf "%b %b Detected ARMv6 architecture (running GLIBC 2.29 or higher, %s)\\n" "${OVER}" "${TICK}" "${cpu_arch}"
|
|
||||||
# set the binary to be used
|
|
||||||
l_binary="pihole-FTL-armv5"
|
|
||||||
else
|
|
||||||
# Otherwise, use the ARMv5 binary (e.g., BCM2835 as found in Raspberry Pi Zero and Model 1)
|
|
||||||
printf "%b %b Detected ARMv6 architecture (running GLIBC older than 2.29, %s)\\n" "${OVER}" "${TICK}" "${cpu_arch}"
|
|
||||||
# set the binary to be used
|
|
||||||
l_binary="pihole-FTL-armv4"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
# Otherwise, use the ARMv4 binary (e.g., BCM2835 as found in Raspberry Pi Zero and Model 1)
|
# Otherwise, Pi-hole does not support this architecture
|
||||||
printf "%b %b Detected ARMv4 or ARMv5 architecture (%s)\\n" "${OVER}" "${TICK}" "${cpu_arch}"
|
printf "%b %b This processor architecture is not supported by Pi-hole (%s)\\n" "${OVER}" "${CROSS}" "${cpu_arch}"
|
||||||
# set the binary to be used
|
l_binary=""
|
||||||
l_binary="pihole-FTL-armv4"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
elif [[ "${machine}" == "x86_64" ]]; then
|
elif [[ "${machine}" == "x86_64" ]]; then
|
||||||
|
@ -259,158 +259,12 @@ def test_FTL_detect_aarch64_no_errors(host):
|
|||||||
assert expected_stdout in detectPlatform.stdout
|
assert expected_stdout in detectPlatform.stdout
|
||||||
|
|
||||||
|
|
||||||
def test_FTL_detect_armv4_no_errors(host):
|
def test_FTL_detect_armv6_no_errors(host):
|
||||||
"""
|
|
||||||
confirms only armv4 package is downloaded for FTL engine
|
|
||||||
"""
|
|
||||||
# mock uname to return armv4 platform
|
|
||||||
mock_command("uname", {"-m": ("armv4t", "0")}, host)
|
|
||||||
# mock readelf to respond with armv4 CPU architecture
|
|
||||||
mock_command_2(
|
|
||||||
"readelf",
|
|
||||||
{
|
|
||||||
"-A /bin/sh": ("Tag_CPU_arch: armv4t", "0"),
|
|
||||||
"-A /usr/bin/sh": ("Tag_CPU_arch: armv4t", "0"),
|
|
||||||
},
|
|
||||||
host,
|
|
||||||
)
|
|
||||||
detectPlatform = host.run(
|
|
||||||
"""
|
|
||||||
source /opt/pihole/basic-install.sh
|
|
||||||
create_pihole_user
|
|
||||||
funcOutput=$(get_binary_name)
|
|
||||||
binary="pihole-FTL${funcOutput##*pihole-FTL}"
|
|
||||||
theRest="${funcOutput%pihole-FTL*}"
|
|
||||||
FTLdetect "${binary}" "${theRest}"
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
expected_stdout = info_box + " FTL Checks..."
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
expected_stdout = tick_box + " Detected ARMv4 or ARMv5 architecture (armv4t)"
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
expected_stdout = tick_box + " Downloading and Installing FTL"
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
|
|
||||||
|
|
||||||
def test_FTL_detect_armv5_no_errors(host):
|
|
||||||
"""
|
|
||||||
confirms only armv5 package is downloaded for FTL engine
|
|
||||||
"""
|
|
||||||
# mock uname to return armv5te platform
|
|
||||||
mock_command("uname", {"-m": ("armv5te", "0")}, host)
|
|
||||||
# mock readelf to respond with armv5 CPU architecture
|
|
||||||
mock_command_2(
|
|
||||||
"readelf",
|
|
||||||
{
|
|
||||||
"-A /bin/sh": ("Tag_CPU_arch: armv5te", "0"),
|
|
||||||
"-A /usr/bin/sh": ("Tag_CPU_arch: armv5te", "0"),
|
|
||||||
},
|
|
||||||
host,
|
|
||||||
)
|
|
||||||
detectPlatform = host.run(
|
|
||||||
"""
|
|
||||||
source /opt/pihole/basic-install.sh
|
|
||||||
create_pihole_user
|
|
||||||
funcOutput=$(get_binary_name)
|
|
||||||
binary="pihole-FTL${funcOutput##*pihole-FTL}"
|
|
||||||
theRest="${funcOutput%pihole-FTL*}"
|
|
||||||
FTLdetect "${binary}" "${theRest}"
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
expected_stdout = info_box + " FTL Checks..."
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
expected_stdout = tick_box + " Detected ARMv4 or ARMv5 architecture (armv5te)"
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
expected_stdout = tick_box + " Downloading and Installing FTL"
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
|
|
||||||
|
|
||||||
def test_FTL_detect_armv6_old_no_errors(host):
|
|
||||||
"""
|
"""
|
||||||
confirms only armv6 package is downloaded for FTL engine
|
confirms only armv6 package is downloaded for FTL engine
|
||||||
"""
|
"""
|
||||||
# mock uname to return armv6l platform
|
# mock uname to return armv6 platform
|
||||||
mock_command("uname", {"-m": ("armv6l", "0")}, host)
|
mock_command("uname", {"-m": ("armv6", "0")}, host)
|
||||||
# mock readelf to respond with armv6l CPU architecture
|
|
||||||
mock_command_2(
|
|
||||||
"readelf",
|
|
||||||
{
|
|
||||||
"-A /bin/sh": ("Tag_CPU_arch: armv6l", "0"),
|
|
||||||
"-A /usr/bin/sh": ("Tag_CPU_arch: armv6l", "0"),
|
|
||||||
},
|
|
||||||
host,
|
|
||||||
)
|
|
||||||
# Mock old ldd GLIBC version
|
|
||||||
mock_command(
|
|
||||||
"ldd", {"--version": ("ldd (Debian GLIBC 2.13-38+deb7u8) 2.13", "0")}, host
|
|
||||||
)
|
|
||||||
|
|
||||||
detectPlatform = host.run(
|
|
||||||
"""
|
|
||||||
source /opt/pihole/basic-install.sh
|
|
||||||
create_pihole_user
|
|
||||||
funcOutput=$(get_binary_name)
|
|
||||||
binary="pihole-FTL${funcOutput##*pihole-FTL}"
|
|
||||||
theRest="${funcOutput%pihole-FTL*}"
|
|
||||||
FTLdetect "${binary}" "${theRest}"
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
expected_stdout = info_box + " FTL Checks..."
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
expected_stdout = tick_box + (
|
|
||||||
" Detected ARMv6 architecture (running GLIBC older than 2.29, armv6l)"
|
|
||||||
)
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
expected_stdout = tick_box + " Downloading and Installing FTL"
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
|
|
||||||
|
|
||||||
def test_FTL_detect_armv6_recent_no_errors(host):
|
|
||||||
"""
|
|
||||||
confirms only armv6 package is downloaded for FTL engine
|
|
||||||
"""
|
|
||||||
# mock uname to return armv6l platform
|
|
||||||
mock_command("uname", {"-m": ("armv6l", "0")}, host)
|
|
||||||
# mock readelf to respond with armv6l CPU architecture
|
|
||||||
mock_command_2(
|
|
||||||
"readelf",
|
|
||||||
{
|
|
||||||
"-A /bin/sh": ("Tag_CPU_arch: armv6l", "0"),
|
|
||||||
"-A /usr/bin/sh": ("Tag_CPU_arch: armv6l", "0"),
|
|
||||||
},
|
|
||||||
host,
|
|
||||||
)
|
|
||||||
# Mock old ldd GLIBC version
|
|
||||||
mock_command(
|
|
||||||
"ldd", {"--version": ("'ldd (Debian GLIBC 2.35-38+deb7u8) 2.35'", "0")}, host
|
|
||||||
)
|
|
||||||
|
|
||||||
detectPlatform = host.run(
|
|
||||||
"""
|
|
||||||
source /opt/pihole/basic-install.sh
|
|
||||||
create_pihole_user
|
|
||||||
funcOutput=$(get_binary_name)
|
|
||||||
binary="pihole-FTL${funcOutput##*pihole-FTL}"
|
|
||||||
theRest="${funcOutput%pihole-FTL*}"
|
|
||||||
FTLdetect "${binary}" "${theRest}"
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
expected_stdout = info_box + " FTL Checks..."
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
expected_stdout = tick_box + (
|
|
||||||
" Detected ARMv6 architecture (running GLIBC 2.29 or higher, armv6l)"
|
|
||||||
)
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
expected_stdout = tick_box + " Downloading and Installing FTL"
|
|
||||||
assert expected_stdout in detectPlatform.stdout
|
|
||||||
|
|
||||||
|
|
||||||
def test_FTL_detect_armv6KZ_no_errors(host):
|
|
||||||
"""
|
|
||||||
confirms only armv6KZ package is downloaded for FTL engine
|
|
||||||
"""
|
|
||||||
# mock uname to return armv6KZ platform
|
|
||||||
mock_command("uname", {"-m": ("armv6KZ", "0")}, host)
|
|
||||||
# mock readelf to respond with armv6l CPU architecture
|
# mock readelf to respond with armv6l CPU architecture
|
||||||
mock_command_2(
|
mock_command_2(
|
||||||
"readelf",
|
"readelf",
|
||||||
@ -432,7 +286,7 @@ def test_FTL_detect_armv6KZ_no_errors(host):
|
|||||||
)
|
)
|
||||||
expected_stdout = info_box + " FTL Checks..."
|
expected_stdout = info_box + " FTL Checks..."
|
||||||
assert expected_stdout in detectPlatform.stdout
|
assert expected_stdout in detectPlatform.stdout
|
||||||
expected_stdout = tick_box + " Detected ARMv6KZ architecture"
|
expected_stdout = tick_box + " Detected ARMv6 architecture"
|
||||||
assert expected_stdout in detectPlatform.stdout
|
assert expected_stdout in detectPlatform.stdout
|
||||||
expected_stdout = tick_box + " Downloading and Installing FTL"
|
expected_stdout = tick_box + " Downloading and Installing FTL"
|
||||||
assert expected_stdout in detectPlatform.stdout
|
assert expected_stdout in detectPlatform.stdout
|
||||||
|
Loading…
Reference in New Issue
Block a user