################################################################### # unbound-adblock 0.5 Release Notes / Changelog # Copyright 2018-2021 Jordan Geoghegan ################################################################### # Acknowledgements * Thanks to Mischa Peters and OpenBSD Amsterdam for sponsoring the project! They were kind enough to offer the project free computing resources to help facilitate development and testing of unbound-adblock. * Thanks to Pedro Guizeline for his financial contributions to the project and for testing code and finding bugs! * Thank you to everyone who read through and tested the pre-release beta code and for all your help finding and fixing bugs! # Changelog unbound-adblock version 5 is our biggest release to date: unbound-adblock has been confirmed to run on: * OpenBSD * FreeBSD * NetBSD * DragonflyBSD * Alpine Linux * Ubuntu 20.04 If you have successfully run unbound-adblock on different OS, please send me an email and tell me about it! Release Notes: * Update notification service established: To receive email notifications of new unbound-adblock releases send an email to with this subject line and body: "subscribe unbound-adblock" * Major rewrite: Numerous code correctness, quality and useability improvements * Program has been documented and a man page written * Revised 'User Configuration Area' now serves as an integrated config file * Support added for getopts style command-line arguments * unbound-adblock by default now uses standard RPZ syntax for generated blocklists * No more DNS cache flushes! * Support added for unwind as an alternate backend * Retry logic added to reattempt download should a list fail to be fetched * "Strict mode" option added which tells unbound-adblock to abort should it fail to download a blocklist after 'N' retries (3 by default) * unbound-adblock can now be used to fetch, validate, merge and export blocklists into several different formats including RPZ, unbound local-data and raw domains. * Numerous Quality of Life Improvements - Easier user configuration: * Enabling optional features is now far more accessible and user friendly * User Configuration Area better organized and moved to top of file * Most user-configurable options are now available on the commandline * Support added for domain-only blocklists * Support added for gzip/tar.gz compressed lists * Examples provided for using local files as a list source * Improved whitelist ease-of-use * Power-users can now add arbitrary custom filters to list parser * Add '-x' option to output generated blocklist to stdout This allows blocklists generated by unbound-adblock to be exported and easily used elsewhere - Performance Improvements: * It is no longer required to flush the DNS cache on blocklist reload * RipGrep/GNUgrep and mawk/gawk are now used opportunistically for a large performance increase * Unbound/unwind is now reloaded only if there are blocklist changes - Better Error Handling and Logging: * Blocklist logging and RPZ actions are now logged to syslog * Error messages are now much more informative * Error/abort logic improved to ensure we "Do The Right Thing(tm)" * Error and informational messages are now logged to /var/log/messages * Blocklist changes are now logged to /var/log/unbound-adblock/ - Quality + Correctness: * Improved input sanitization * Addressed numerous documentation issues * unbound-adblock has been confirmed to run on any shell supporting 'typeset' and KSH array syntax Tested on: oksh, pdksh, mksh, ksh93, bash, zsh --- * unbound-adblock is now run at a random time between midnight and 2am to ensure that unbound-adblock users don't overwhelm blocklist hosts --- * unbound-adblock must now be called with a mandatory OS type argument: Example: unbound-adblock -O openbsd