Message ID | 20210622075422.2425-1-rsalvaterra@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [v2] zram-swap: robustify mkswap/swapon/swapoff invocation | expand |
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 --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"
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(-)