The required BusyBox applets are enabled by default, so we can rely on them
being present in the system. This way, we make sure there are no conflicts with
less featured variants of these same applets which might also be present in the
system.

v3: Make sure the required applets are enabled at build time.

Fixes: 0bd7dfa3ed60588ec83a8f60f48b6991ebb16940

Signed-off-by: Rui Salvaterra <[email protected]>
---
 package/system/zram-swap/Makefile        |  2 +-
 package/system/zram-swap/files/zram.init | 18 +++++++++---------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/package/system/zram-swap/Makefile 
b/package/system/zram-swap/Makefile
index 4422c351ea..32b17ca7a3 100644
--- a/package/system/zram-swap/Makefile
+++ b/package/system/zram-swap/Makefile
@@ -17,7 +17,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/zram-swap
   SECTION:=utils
   CATEGORY:=Base system
-  DEPENDS:=+kmod-zram 
+!(BUSYBOX_CONFIG_MKSWAP&&BUSYBOX_CONFIG_SWAPON&&BUSYBOX_CONFIG_SWAPOFF):swap-utils
+  DEPENDS:=+kmod-zram +@BUSYBOX_CONFIG_MKSWAP +@BUSYBOX_CONFIG_SWAPON 
+@BUSYBOX_CONFIG_FEATURE_SWAPON_DISCARD +@BUSYBOX_CONFIG_FEATURE_SWAPON_PRI 
+@BUSYBOX_CONFIG_SWAPOFF
   TITLE:=ZRAM swap scripts
   PKGARCH:=all
 endef
diff --git a/package/system/zram-swap/files/zram.init 
b/package/system/zram-swap/files/zram.init
index a6126e578f..f31a87438c 100755
--- a/package/system/zram-swap/files/zram.init
+++ b/package/system/zram-swap/files/zram.init
@@ -35,18 +35,18 @@ zram_applicable()
                return 1
        }
 
-       which mkswap >/dev/null || {
-               logger -s -t zram_applicable -p daemon.err "[ERROR] 'mkswap' 
not installed"
+       [ -x /sbin/mkswap ] || {
+               logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox 
mkswap' not installed"
                return 1
        }
 
-       which swapon >/dev/null || {
-               logger -s -t zram_applicable -p daemon.err "[ERROR] 'swapon' 
not installed"
+       [ -x /sbin/swapon ] || {
+               logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox 
swapon' not installed"
                return 1
        }
 
-       which swapoff >/dev/null || {
-               logger -s -t zram_applicable -p daemon.err "[ERROR] 'swapoff' 
not installed"
+       [ -x /sbin/swapoff ] || {
+               logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox 
swapoff' not installed"
                return 1
        }
 }
@@ -181,8 +181,8 @@ start()
        zram_comp_algo "$zram_dev"
        zram_comp_streams "$zram_dev"
        echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename 
"$zram_dev" )/disksize"
-       mkswap "$zram_dev"
-       swapon -d $zram_priority "$zram_dev"
+       /sbin/mkswap "$zram_dev"
+       /sbin/swapon -d $zram_priority "$zram_dev"
 }
 
 stop()
@@ -191,7 +191,7 @@ stop()
 
        for zram_dev in $( grep zram /proc/swaps |awk '{print $1}' ); do {
                logger -s -t zram_stop -p daemon.debug "deactivate swap 
$zram_dev"
-               swapoff "$zram_dev" && zram_reset "$zram_dev" "claiming memory 
back"
+               /sbin/swapoff "$zram_dev" && zram_reset "$zram_dev" "claiming 
memory back"
                local dev_index="$( echo $zram_dev | grep -o "[0-9]*$" )"
                if [ $dev_index -ne 0 ]; then
                        logger -s -t zram_stop -p daemon.debug "removing zram 
$zram_dev"
-- 
2.27.0


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to