Releases: lynxthecat/adblock-lean
v0.7.3
This is mainly a bugfix/maintenance release, but it also introduces a new feature: support for short list identifiers instead of URLs for Hagezi and oisd lists. This README section has more details about this feature. adblock-lean continues to support fetching lists from download URLs.
- Presets
small
andmedium
default URLs were adjusted to account for some Hagezi lists increasing in size - Fix color highlighting for warnings and errors (thank you @justops1337 for reporting the issue)
- Fix regression introduced in v0.7.2 with calls to Busybox applets not issued correctly on some systems (thank you @lazyzyf @VoQZHD for reporting the issue and OpenWrt forum user d687r02j8g for testing)
- New feature: support short list identifiers for Hagezi and oisd lists (thank you OpenWrt forum user d687r02j8g for testing)
- README updates
NOTE that because of config incompatibility, downgrade from v0.7.3 to earlier adblock-lean versions is not supported by the update
command. The abl-install.sh script can still downgrade to earlier versions but it will remove current config when downgrading (a backup copy will be made).
Full Changelog: v0.7.2...v0.7.3
v0.7.2
This is a rather large release which mainly implements improvements to the self-update mechanism:
- Rather than writing the version string into each of the installed files, only write it into the main file
- Rather than checking libraries by comparing version strings, create a file with md5sums of all installed files and check against that.
This is both more robust and allows to minimize the number of flash writes when updating adblock-lean scripts as only the main script will be re-written unconditionally and other scripts will be only re-written when they actually change.
- Implement local API query caching which works around GitHub limits on consecutive API queries - this helps when testing various adblock-lean versions in rapid succession.
- Support a new update channel:
branch=<gh_branch>
- Rather than registering the version string like so:
use 2 variables:
# ABL_VERSION=<upd_channel>_<version>
ABL_VERSION="<version>" ABL_UPD_CHANNEL="<upd_channel>"
Additional changes:
- Implement support for additional compression utils: GNU gzip, pigz, zstd (thank you @justops1337 for the feature request) - this also changes some config options
- Support the
-y
option to auto-approve all suggested changes during adblock-lean version updates (thank you OpenWrt user openwrter for the feature request) - Various minor bug fixes and improvements
- README was updated and improved
Full Changelog: v0.7.1...v0.7.2
v0.7.1
This is a small bugfix/maintenance release with following changes:
- Fix ANSI colors contained in message passed to report_success() in custom script (if defined)
- Fix ANSI colors contained in some logged messages
- pick_opt(): fix options sometimes not printed
- Create
$ABL_CONF_STAGING_DIR
inparse_config()
rather than inload_config()
- fixes direct calls toparse_config()
from the luci app - Implement
check_func()
, usecheck_func()
when checking for functions - Document API for calling
report_update()
Full Changelog: v0.7.0...v0.7.1
v0.7.0
This is a pretty big update to adblock-lean, featuring following main changes:
-
Implement parallel downloads and processing
-
Add option
MAX_PARALLEL_JOBS
, default toauto
-
Replace option
initial_dnsmasq_restart
withunload_blocklist_before_update
, default toauto
-
Increase "expected/max" elements count for presets
large
andlarge_relaxed
from 1M to 1.2M -
Tweaks in algorithm calculating the
max_*
andmin_*
config options in order to accommodate recent increase in Hagezi'sPro
preset entries count -
parse_config(): rewrite parser in awk
-
abl_process: skip dnsmasq restart if adblock-lean run state is stopped
-
fix
status
command reported entries count being off by 1 -
The custom script (optionally set in adblock-lean config) can now have the
report_update()
function as requested by OpenWrt forum user vJoseph, which will be called when updates are available -
Multiple major improvements in error detection, handling and reporting
-
Compacted and improved console messages
-
Minor usability improvements
-
Various console messages improvements
-
Various bugfixes
-
Various minor code optimizations
-
The README was improved updated
Special thank you to OpenWrt forum user spence for massive help with testing and to d687r02j8g for testing and reporting issues, and all other users who tested and reported back - your help is greatly appreciated!
Full Changelog: v0.6.2...v0.7.0
v0.6.2
This is a small bugfix release. We are planning a much larger release soon, and v0.6.2 is just meant to have the current stable code released.
Bugs fixed:
- Rogue elements check not working
- Config version updates failing with Busybox
sed
(thank you @splintering for reporting the issue)
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
- Revert attaching session log when calling
report_success()
from custom script - Minor improvement to console messages
- Fix old libraries still used while updating adblock-lean and accepting the 'Start adblock-lean now?' dialog
- Fix error while updating adblock-lean and the new version has a different config format
Full Changelog: v0.6.0...v0.6.1
v0.6.0
This release fixes a few minor issues:
- Fix adblock-lean not showing up in Startup in Luci on OpenWrt 24.10 and current OpenWrt snapshot (thanks OpenWrt forum user openwrter for reporting the issue).
- Fix the symlink created in
/etc/rc.d
(wasK4adblock-lean
, should beK04adblock-lean
) - Fix GNU utils not detected correctly during the same run when they are installed
- Additional minor fixes and improvements
But mostly this release focuses on changing the code structure of adblock-lean, implementing proper versioning and enhancing the version update functionality.
The code is now split between the service file - /etc/init.d/adblock-lean
and 2 library files - /usr/lib/adblock-lean/abl-lib.sh
and /usr/lib/adblock-lean/abl-process.sh
. This is mainly to make it easier to maintain and develop the project.
adblock-lean now supports 2 version update channels: release
and snapshot
. When updating from a previous version, the update channel is automatically set to release
. When on this channel, changes to adblock-lean master branch will no longer trigger the update notification. Rather, adblock-lean will detect new released versions and notify users about them. Mostly for troubleshooting purposes, we implemented additional options which can be specified when issuing the command service adblock-lean update
- you can learn more from the release details.
We also changed the version update mechanism - rather than downloading the raw scripts, tar archives are now fetched from our Github and then unpacked. This should improve the reliability of version updates.
adblock-lean now supports a new command - service adblock-lean version
- which is self-explanatory.
This release also introduces the abl-install.sh
script which can be used for initial adblock-lean installation. We updated the installation instructions in the README accordingly.
Details
- Refactor into 3 scripts (adblock-lean, usr/lib/adblock-lean/abl-lib.sh, usr/lib/adblock-lean/abl-process.sh)
- Add abl-install.sh
- Implement versioning in scripts
- Implement
version
command - start(), status(): print adblock-lean version
- status(): check and print service enabled state
- Implement support for update channels: 'release' and 'snapshot'
- Update and install can fetch any of: latest released version (
service adblock-lean update
if on release channel orservice adblock-lean update -v latest
if not), any previously released version (service adblock-lean update -v v[version]
), any version on any branch corresponding to a GH tag (service adblock-lean update -v tag=[tag]
), latest snapshot on master (service adblock-lean update -v snapshot
), any version corresponding to a commit on any branch (service adblock-lean update -v commit=[commit_hash]
) - Upon update from previous versions, set update channel to 'release'
- When updating or installing, fetch and unpack tar archives rather than fetching raw files (should improve reliability)
- Re-detect GNU utils after installing any of them
- Fix the K symlink in
/etc/rc.d
(wasK4adblock-lean
, should beK04adblock-lean
) - Fix adblock-lean not showing up in Startup in Luci on OpenWrt 24.10 and current OpenWrt snapshot (workaround for openwrt/packages#25963)
- Minor optimizations in
int2human()
(suggested by Dantes on OpenWrt forum) - Additional minor fixes and improvements
- Update the README
Full Changelog: v0.5.4...v0.6.0
v0.5.4
This is a maintenance and bugfix release with following changes since v0.5.3:
- Fix dnsmasq instances detection with built-in Busybox utils
- Always detect utils on script initialization
- Decouple utils detection from utils reporting
- init_command(): fix writing to session log when command is gen_config
- setup(): use log_msg() rather than print_msg() for messages which should be logged
- setup(): ignore ${luci_use_old_config} when config file doesn't exist
- setup(): communicate fatal errors via error codes
- parse_config(): remove irrelevant code for recommended preset detection
- write_config(): correctly handle $luci_preset=auto
- parse_config(): add error message
- parse_config(): use 'return' rather than 'exit'
- fix_config(): use 'return' rather than 'exit'
- get_dnsmasq_instance_ns(): use $SED_CMD
- Change some colors and add some spacers in console output
- check_lock(): when detecting stale pid file, report PID which used to own that file
- init_command(): do not reset $lock_req on each command initialization
- init_command(): make sure to always set $log_file
- Implement rc_enable(), rc_enabled(), rc_disable()
- Use more straightforward logic for 'enable', 'disable' commands
- Increase 'large' preset target entries count to 1M
- Add preset 'large_relaxed' intended for 1024MiB+ devices, same default lists selection as in 'large' but max limits are multiplied by 2
- Various minor bugfixes and improvements
v0.5.3
This is a pretty big release with following main changes:
- Implement proper support for selecting the dnsmasq instance and automatically acquiring its properties (including the conf-dir), which fixes compatibility with OpenWrt snapshots, and with systems which are using multiple dnsmasq instances
- Support the 'apk' package manager for OpenWrt snapshots
- Multiple (mostly minor) bugfixes
- Various code quality improvements
- Minor improvements in console, log and error messages
- Improve and update documentation
Full Changelog: v0.5.2...v0.5.3
Cheers!
v0.5.2
In preparation for the next major release, we are releasing this version which has shown itself to be stable and reliable for the past 3 monts. This has only minor changes, compared to v0.5.1.
What's Changed
- Fix cron job removal when uninstalling by @friendly-bits in #82
- Update brevo example, mailsend smtp address by @Wizballs in #83