Skip to content

Releases: lynxthecat/adblock-lean

v0.7.3

28 May 09:55
841f62d
Compare
Choose a tag to compare

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 and medium 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

23 May 18:28
fab9dbe
Compare
Choose a tag to compare

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:
    # ABL_VERSION=<upd_channel>_<version>
    
    use 2 variables:
    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

06 May 09:17
b0b15e6
Compare
Choose a tag to compare

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 in parse_config() rather than in load_config() - fixes direct calls to parse_config() from the luci app
  • Implement check_func(), use check_func() when checking for functions
  • Document API for calling report_update()

Full Changelog: v0.7.0...v0.7.1

v0.7.0

25 Apr 18:56
31236dc
Compare
Choose a tag to compare

This is a pretty big update to adblock-lean, featuring following main changes:

  • Implement parallel downloads and processing

  • Add option MAX_PARALLEL_JOBS, default to auto

  • Replace option initial_dnsmasq_restart with unload_blocklist_before_update, default to auto

  • Increase "expected/max" elements count for presets large and large_relaxed from 1M to 1.2M

  • Tweaks in algorithm calculating the max_* and min_* config options in order to accommodate recent increase in Hagezi's Pro 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

29 Mar 01:42
7711a98
Compare
Choose a tag to compare

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

10 Mar 16:45
fb65872
Compare
Choose a tag to compare

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

23 Feb 19:40
fb47cce
Compare
Choose a tag to compare

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 (was K4adblock-lean, should be K04adblock-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 or service 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 (was K4adblock-lean, should be K04adblock-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

02 Feb 09:35
b2c7d31
Compare
Choose a tag to compare

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

17 Jan 11:39
35fc6ef
Compare
Choose a tag to compare

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

13 Jan 12:53
c1656d1
Compare
Choose a tag to compare

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