Pi-hole Core v5.2.3, Web v5.3 and FTL v5.4 released!

Pi-hole Core v5.2.3, Web v5.3 and FTL v5.4 released!

2021-01-15 Updates 17

A new year, a new release!

Before running pihole -up to update, make sure you’ve read over the release notes below to ensure there’s nothing that would stop you from upgrading. Pi-hole docker containers will be updated in due course… (before anyone asks “Where’s the Docker update??”) 

Update: Docker containers now tagged at :v5.4






  • Implement support for displaying exact type instead of just OTHER #1013
    Screenshot from 2021-01-03 21-52-16
  • Add new query types SVCB and HTTPS #1010 (@DL6ER)
    These queries where shown as OTHER before. Now they can be distinguished on the query log pages and are included as separate items in the daily statistics.
  • Detect and handle interface changes of clients with the same IP #999 (@DL6ER)
  • Update SQLite3 to 3.34.0 #1006 (@DL6ER)
    We also expose a full-fledged SQLite3 shell interface through pihole-FTL sqlite3


  • Fix for errno not being set by posix_fallocate() #1023 (@DL6ER)
  • Check for validity of iface pointer before dereferencing it #1018 (@DL6ER)
  • Don’t show retried queries when filtering for blocked queries #1022 (@Daxtorim)
  • Do not record NXDOMAIN from DNS cache as “regex blocked” #1014 (@DL6ER)
  • Added missing NS query type to getQueryTypes() #1007 (@Daxtorim)
  • Do not return regex idx if privacy level > 0 #1016 (@DL6ER)

Notable Replies

  1. That.


    You can actually symlink pihole-FTL to sqlite3 and run sqlite3 normally on the command line.

  2. Seems like everyone is saying it, and I feel left out.


  3. Nice.
    For the ones that dont have the sqlite3 package installed:

    pi@ph5:~ $ apt policy sqlite3
      Installed: none
      Candidate: 3.27.2-3+deb10u1

    pi@ph5:~ $ stat /usr/bin/sqlite3
    stat: cannot stat '/usr/bin/sqlite3': No such file or directory

    But still want sqlite3 available on the prompt, you can symlink with below:

    pi@ph5:~ $ sudo ln -s /usr/bin/pihole-FTL /usr/bin/sqlite3
    pi@ph5:~ $

    And test:

    pi@ph5:~ $ sqlite3 --version
    3.34.0 2020-12-01 16:14:00 a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b

    pi@ph5:~ $ sqlite3 /etc/pihole/pihole-FTL.db ".stats"
    Memory Used:                         0 (max 0) bytes
    Number of Outstanding Allocations:   0 (max 0)
    Number of Pcache Overflow Bytes:     4104 (max 4104) bytes
  4. Yes, that's the plan. Embedding dnsmasq into FTL made our scripts a lot easier as we could remove all the if(version == ...) elif(version == ...) ... stuff. Only later on, we hooked more inanimately into dnsmasq to make possible what Pi-hole can do today (regex, groups, CNAME inspection and all the things).

    Embedding SQLIte3 into FTL was also meant to give us precise control about what we can expect for our scripts. Exposing the sqlite3 CLI to the user via various methods (including the symlink drop-in replacement) was just a convenience feature for those who always want up-to-date sqlite3 on their systems without yet another third-party repos or compiling from source.

    The main driver for this was the new UPDATE FROM which only became part of sqlite3 last fall. This command will likely never arrive in existing/older repositories. Sometime in 2020 is too bleeding-edge for them (and that's okay!).

    It is planned to (read as: I plan to) replace sqlite3 by pihole-FTL sqlite3 in all the scripts, but I haven't found the time to do so.

    We should discuss this. My plans are:

    • Remove sqlite3 as dependency from the installer. New installs will not get it, existing ones won't care (it would also not be removed)
    • Use pihole-FTL sqlite3 everywhere in the scripts. pihole-FTL will be available before the first gravity run which is where sqlite3 will be used for the first time.
    • If users what to do something where sqlite3 is needed, they will get command not found. They can then either install the OS package or symlink (if they are aware of this). Those who want to play with the CLI likely already have the binary.
    • I don't see us making the symlink for user automatically, even not if the binary is not installed. apt overwriting our symlink if they later decide to install the OS package seems correct, whichever decision we make. This can be debated, for sure.

    We're all looking towards Pi-hole v6.0 here. I don't expect much further development for the v5.x branches - except frm bug fixes, of course. Pi-hole v6.0 currently uses the embedded PH7 library for interpreting PHP. Pi-hole v6.0 already has zero dependencies on any external web server or PHP (so also not on PHP extensions like php-sqlite3).

Continue the discussion discourse.pi-hole.net

12 more replies