diff mbox series

[v2] zram-swap: robustify mkswap/swapon/swapoff invocation

Message ID 20210622075422.2425-1-rsalvaterra@gmail.com
State Superseded
Headers show
Series [v2] zram-swap: robustify mkswap/swapon/swapoff invocation | expand

Commit Message

Rui Salvaterra June 22, 2021, 7:54 a.m. UTC
Instead of assuming /sbin contains the correct BusyBox symlinks, directly invoke
the busybox executable. The required utilities are guaranteed to be present,
since the zram-swap package selects them. Additionally, don't assume busybox
resides in /bin, rely on PATH to find it.

While at it, update the copyright year, use SPDX and switch to AUTORELEASE.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
---
v2: update the copyright year, use SPDX and switch to AUTORELEASE.

 package/system/zram-swap/Makefile        |  9 ++----
 package/system/zram-swap/files/zram.init | 39 ++++++------------------
 2 files changed, 13 insertions(+), 35 deletions(-)

Comments

Paul Spooren June 24, 2021, 6:47 p.m. UTC | #1
Hi,

On 6/21/21 9:54 PM, Rui Salvaterra wrote:
> Instead of assuming /sbin contains the correct BusyBox symlinks, directly invoke
> the busybox executable. The required utilities are guaranteed to be present,
> since the zram-swap package selects them. Additionally, don't assume busybox
> resides in /bin, rely on PATH to find it.
>
> While at it, update the copyright year, use SPDX and switch to AUTORELEASE.
>
> Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
> ---
> v2: update the copyright year, use SPDX and switch to AUTORELEASE.
>
>   package/system/zram-swap/Makefile        |  9 ++----
>   package/system/zram-swap/files/zram.init | 39 ++++++------------------
>   2 files changed, 13 insertions(+), 35 deletions(-)
>
> diff --git a/package/system/zram-swap/Makefile b/package/system/zram-swap/Makefile
> index 80f87fcdff..d0d1baddd1 100644
> --- a/package/system/zram-swap/Makefile
> +++ b/package/system/zram-swap/Makefile
> @@ -1,14 +1,11 @@
> +# SPDX-License-Identifier: GPL-2.0-only
>   #
> -# Copyright (C) 2013 OpenWrt.org
> -#
> -# This is free software, licensed under the GNU General Public License v2.
> -# See /LICENSE for more information.
> -#
> +# Copyright (C) 2013-2021 OpenWrt.org
>   
>   include $(TOPDIR)/rules.mk
>   
>   PKG_NAME:=zram-swap
> -PKG_RELEASE:=8
> +PKG_RELEASE:=$(AUTORELEASE)
>   
>   PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
>   
> diff --git a/package/system/zram-swap/files/zram.init b/package/system/zram-swap/files/zram.init
> index d97e85efa5..4c645d6013 100755
> --- a/package/system/zram-swap/files/zram.init
> +++ b/package/system/zram-swap/files/zram.init
> @@ -25,31 +25,6 @@ zram_getsize()	# in megabytes
>   	fi
>   }
>   
> -zram_applicable()
> -{
> -	local zram_dev="$1"
> -
> -	[ -e "$zram_dev" ] || {
> -		logger -s -t zram_applicable -p daemon.crit "[ERROR] device '$zram_dev' not found"
> -		return 1
> -	}
> -
> -	[ -x /sbin/mkswap ] || {
> -		logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox mkswap' not installed"
> -		return 1
> -	}
> -
> -	[ -x /sbin/swapon ] || {
> -		logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox swapon' not installed"
> -		return 1
> -	}
> -
> -	[ -x /sbin/swapoff ] || {
> -		logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox swapoff' not installed"
> -		return 1
> -	}
> -}
> -
>   zram_dev()
>   {
>   	local idx="$1"
> @@ -160,8 +135,14 @@ start()
>   		return 1
>   	fi
>   
> -	local zram_size="$( zram_getsize )"
>   	local zram_dev="$( zram_getdev )"
> +
> +	[ -e "$zram_dev" ] || {
> +		logger -s -t zram_applicable -p daemon.crit "[ERROR] device '$zram_dev' not found"
> +		return 1
> +	}
> +
> +	local zram_size="$( zram_getsize )"
>   	zram_applicable "$zram_dev" || return 1
This line should be removed, too.
>   	local zram_priority="$( uci -q get system.@system[0].zram_priority )"
>   	zram_priority=${zram_priority:+-p $zram_priority}
> @@ -171,8 +152,8 @@ start()
>   	zram_reset "$zram_dev" "enforcing defaults"
>   	zram_comp_algo "$zram_dev"
>   	echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename "$zram_dev" )/disksize"
> -	/sbin/mkswap "$zram_dev"
> -	/sbin/swapon -d $zram_priority "$zram_dev"
> +	busybox mkswap "$zram_dev"
> +	busybox swapon -d $zram_priority "$zram_dev"
>   }
>   
>   stop()
> @@ -181,7 +162,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"
> -		/sbin/swapoff "$zram_dev" && zram_reset "$zram_dev" "claiming memory back"
> +		busybox 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"
diff mbox series

Patch

diff --git a/package/system/zram-swap/Makefile b/package/system/zram-swap/Makefile
index 80f87fcdff..d0d1baddd1 100644
--- a/package/system/zram-swap/Makefile
+++ b/package/system/zram-swap/Makefile
@@ -1,14 +1,11 @@ 
+# SPDX-License-Identifier: GPL-2.0-only
 #
-# Copyright (C) 2013 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
+# Copyright (C) 2013-2021 OpenWrt.org
 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zram-swap
-PKG_RELEASE:=8
+PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
diff --git a/package/system/zram-swap/files/zram.init b/package/system/zram-swap/files/zram.init
index d97e85efa5..4c645d6013 100755
--- a/package/system/zram-swap/files/zram.init
+++ b/package/system/zram-swap/files/zram.init
@@ -25,31 +25,6 @@  zram_getsize()	# in megabytes
 	fi
 }
 
-zram_applicable()
-{
-	local zram_dev="$1"
-
-	[ -e "$zram_dev" ] || {
-		logger -s -t zram_applicable -p daemon.crit "[ERROR] device '$zram_dev' not found"
-		return 1
-	}
-
-	[ -x /sbin/mkswap ] || {
-		logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox mkswap' not installed"
-		return 1
-	}
-
-	[ -x /sbin/swapon ] || {
-		logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox swapon' not installed"
-		return 1
-	}
-
-	[ -x /sbin/swapoff ] || {
-		logger -s -t zram_applicable -p daemon.err "[ERROR] 'BusyBox swapoff' not installed"
-		return 1
-	}
-}
-
 zram_dev()
 {
 	local idx="$1"
@@ -160,8 +135,14 @@  start()
 		return 1
 	fi
 
-	local zram_size="$( zram_getsize )"
 	local zram_dev="$( zram_getdev )"
+
+	[ -e "$zram_dev" ] || {
+		logger -s -t zram_applicable -p daemon.crit "[ERROR] device '$zram_dev' not found"
+		return 1
+	}
+
+	local zram_size="$( zram_getsize )"
 	zram_applicable "$zram_dev" || return 1
 	local zram_priority="$( uci -q get system.@system[0].zram_priority )"
 	zram_priority=${zram_priority:+-p $zram_priority}
@@ -171,8 +152,8 @@  start()
 	zram_reset "$zram_dev" "enforcing defaults"
 	zram_comp_algo "$zram_dev"
 	echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename "$zram_dev" )/disksize"
-	/sbin/mkswap "$zram_dev"
-	/sbin/swapon -d $zram_priority "$zram_dev"
+	busybox mkswap "$zram_dev"
+	busybox swapon -d $zram_priority "$zram_dev"
 }
 
 stop()
@@ -181,7 +162,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"
-		/sbin/swapoff "$zram_dev" && zram_reset "$zram_dev" "claiming memory back"
+		busybox 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"