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

*BREAKING* Drop support for ancient ARMv4 and ARMv5 #5445

Merged
merged 1 commit into from
Oct 21, 2023

Conversation

DL6ER
Copy link
Member

@DL6ER DL6ER commented Oct 19, 2023

What does this implement/fix?

Drop support for ancient ARMv4 and ARMv5, the Debian binaries turn out to cause unsolvable SIGFPE on ARMv6 and lower. Fortunately, we can still use the Alpine binaries on all Raspberry Pi models (even the oldest ones). Use them on ARMv6 devices to restore compatibility of Pi-hole with the very early boards like Raspberry Pi 1B and Zero (W).

Both feature a BCM2835 chip which is a member of the ARM11 family (type ARM1176JZF-S ) which turns out to be the armv6KZ architecture so exactly what alpine/arm/v6 is designed for.

Related issue or feature (if applicable): https://discourse.pi-hole.net/t/failure-to-create-gravity-floating-point-error/65705

Pull request in docs with documentation (if applicable): to be checked


By submitting this pull request, I confirm the following:

  1. I have read and understood the contributors guide, as well as this entire template. I understand which branch to base my commits and Pull Requests against.
  2. I have commented my proposed changes within the code.
  3. I am willing to help maintain this change if there are issues with it later.
  4. It is compatible with the EUPL 1.2 license
  5. I have squashed any insignificant commits. (git rebase)

Checklist:

  • The code change is tested and works locally.
  • I based my code and PRs against the repositories developmental branch.
  • I signed off all commits. Pi-hole enforces the DCO for all contributions
  • I signed all my commits. Pi-hole requires signatures to verify authorship
  • I have read the above and my PR is ready for review.

@DL6ER DL6ER requested a review from a team October 19, 2023 20:09
…t to cause unresolvable SIGFPE on ARMv6 and lower. Fortunately, we can still use the Alpine binaries on all Raspberry Pi models (even the oldest ones)

Signed-off-by: DL6ER <dl6er@dl6er.de>
@yubiuser
Copy link
Member

Does this mean, we can also drop the Debian based build image?

@DL6ER
Copy link
Member Author

DL6ER commented Oct 20, 2023

Yes, we can drop https://github.com/pi-hole/docker-base-images/tree/master/ftl-build/debian (and move ftl-build/alpine/Dockerfile ftl-build) as well as https://github.com/pi-hole/FTL/blob/74432a9476429d83ab9d8d925577950bad596ef8/.github/workflows/build.yml#L66-L71 and a few related things like the ability to specify the builder type and simplify the arch_tests.

But this would be the first step and would need to be merged first before the others can land. It simplifies quite a few things!

@yubiuser
Copy link
Member

Maybe we should rename the title as it is not that drastic

BREAKING Drop support for ancient ARMv4 and ARMv5

To something like
"Switch binary for ancient ARMv4 and ARMv5 from debian to alpine builds"

@pralor-bot
Copy link

This pull request has been mentioned on Pi-hole Userspace. There might be relevant details there:

https://discourse.pi-hole.net/t/failure-to-create-gravity-floating-point-error/65705/19

@DL6ER DL6ER merged commit 8bcd1d4 into development-v6 Oct 21, 2023
15 checks passed
@DL6ER DL6ER deleted the tweak/drop_ARM_v4_v5 branch October 21, 2023 16:27
@pralor-bot
Copy link

This pull request has been mentioned on Pi-hole Userspace. There might be relevant details there:

https://discourse.pi-hole.net/t/beta6-fails-on-rpi2-on-bookworm-detected-as-arm6/65625/12

@derfasthirnlosenick
Copy link

derfasthirnlosenick commented Oct 21, 2023

Hm tried it on my Zero W (which should be ArmV6) and seems like the detection is off. At least now install fails with "this architecture is not supported" anymore.

user@raspberrypi:~ $ cat /proc/cpuinfo
processor       : 0
model name      : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 997.08
Features        : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7

Hardware        : BCM2835
Revision        : 9000c1
Serial          : 00000000d363b1a9
Model           : Raspberry Pi Zero W Rev 1.1
user@raspberrypi:~ $ sudo PIHOLE_SKIP_OS_CHECK=true pihole checkout core development-v6
  Please note that changing branches severely alters your Pi-hole subsystems
  Features that work on the master branch, may not on a development branch
  This feature is NOT supported unless a Pi-hole developer explicitly asks!
  Have you read and understood this? [y/N] y

  [✓] Fetching branches from https://github.com/pi-hole/pi-hole.git
  [i] 15 branches available for Pi-hole Core

  [✓] Switching to branch: 'development-v6' from 'refs/heads/development-v6'
  [i] Already up to date.
  [i] Running installer to upgrade your installation

  [✓] Root user check

        .;;,.
        .ccccc:,.
         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           'ccll:;ll .oooodc
             .;cll.;;looo:.
                 .. ','.
                .',,,,,,'.
              .',,,,,,,,,,.
            .',,,,,,,,,,,,....
          ....''',,,,,,,'.......
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........
          ........,,,,,,,'......
            ....',,,,,,,,,,,,.
               .',,,,,,,,,'.
                .',,,,,,'.
                  ..'''.

  [i] SELinux not detected
  [✓] Update local cache of available packages

  [✓] Checking apt-get for upgraded packages... up to date!

  [i] Checking for / installing Required dependencies for OS Check...
  [✓] Checking for grep
  [✓] Checking for dnsutils

  [i] PIHOLE_SKIP_OS_CHECK env variable set to true - installer will continue
  [i] Checking for / installing Required dependencies for this install script...
  [✓] Checking for git
  [✓] Checking for iproute2
  [✓] Checking for dialog
  [✓] Checking for ca-certificates
  [✓] Checking for binutils

  [i] Performing unattended setup, no dialogs will be displayed
  [✓] Check for existing repository in /etc/.pihole
  [✓] Update repo in /etc/.pihole

  [✓] Check for existing repository in /var/www/html/admin
  [✓] Update repo in /var/www/html/admin

  [i] Checking for / installing Required dependencies for Pi-hole software...
  [✓] Checking for cron
  [✓] Checking for curl
  [✓] Checking for iputils-ping
  [✓] Checking for psmisc
  [✓] Checking for sudo
  [✓] Checking for unzip
  [✓] Checking for idn2
  [✓] Checking for libcap2-bin
  [✓] Checking for dns-root-data
  [✓] Checking for libcap2
  [✓] Checking for netcat-openbsd
  [✓] Checking for procps
  [✓] Checking for jq

  [✓] Checking for user 'pihole'

  [i] FTL Checks...

  [✓] Detected GLIBC version 2.36
  [✗] This processor architecture is not supported by Pi-hole (v6)  [i] Checking for existing FTL binary...
curl: (3) bad range in URL position 53:
  [✓] Detected GLIBC version 2.36
  [✗] This processor architecture is not supported by Pi-hole (v6).sha1
                                                    ^
  [i] Checksums do not match, downloading from ftl.pi-hole.net.
  [i] Downloading and Installing FTL...curl: (3) bad range in URL position 53:
  [✓] Detected GLIBC version 2.36
  [✗] This processor architecture is not supported by Pi-hole (v6)
                                                    ^
  [✗] Downloading and Installing FTL
  [✓] Detected GLIBC version 2.36
  [✗] This processor architecture is not supported by Pi-hole (v6) not found
  [✗] FTL Engine not installed
   Error: Unable to complete update, please contact support

@DL6ER
Copy link
Member Author

DL6ER commented Oct 21, 2023

Thanks for the report! This was due to a glitch and should be fixed by #5451

@pralor-bot
Copy link

This pull request has been mentioned on Pi-hole Userspace. There might be relevant details there:

https://discourse.pi-hole.net/t/pi-hole-beta-6-0-on-pogoplug-pro/70643/5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants