Comments (4)
Hi @taotieren ,
I believe the check
target was intended to invoke any static code analyzers (like shellcheck) during development and review. I'm not sure if that squares with Arch's notion of building a package, but perhaps it doesn't need to gate your distro's package build.
That said, thanks for the report. Let us know if you would like to take a crack at fixing them. Patches welcome :) A quick review of the report, my suggestions would be:
- Unreachable break
break
^---^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
Yup, the preceding die
function will end the script. The break
is redundant.
- Globbing flag command line arguments
In kpatch-build/kpatch-build line 1346:
"$TOOLSDIR"/create-diff-object $CDO_FLAGS "orig/$i" "patched/$i" "$KOBJFILE_NAME" \
^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
In kpatch-build/kpatch-build line 1432:
"$TOOLSDIR"/create-klp-module $extra_flags "$TEMPDIR/patch/tmp.ko" "$TEMPDIR/patch/$MODNAME.ko" 2>&1 | logger 1
^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
These two are the same problem and the shellcheck suggestion is wrong. We need the first exception documented here:
https://www.shellcheck.net/wiki/SC2086
Sometimes you want to split on spaces, like when building a command line:
options="-j 5 -B"
[[ $debug == "yes" ]] && options="$options -d"
make $options file
Just quoting this doesn't work. Instead, you should have used an array (bash, ksh, zsh):
options=(-j 5 -B) # ksh88: set -A options -- -j 5 -B
[[ $debug == "yes" ]] && options=("${options[@]}" -d)
make "${options[@]}" file
- Arithmetic syntax style
In kpatch-build/kpatch-build line 1416:
MAKEVARS[$idx]=${MAKEVARS[$idx]/${KPATCH_CC_PREFIX}/}
^--^ SC2004 (style): $/${} is unnecessary on arithmetic variables.
I don't have a strong opinion on this one, but would follow shellcheck's suggestion here.
from kpatch.
Thanks for the answer, I will comment the check function in the AUR package.
from kpatch.
This issue has been open for 30 days with no activity and no assignee. It will be closed in 7 days unless a comment is added.
from kpatch.
This issue was closed because it was inactive for 7 days after being marked stale.
from kpatch.
Related Issues (20)
- Need suggestions for CONFIG_LTO_CLANG support HOT 40
- New error building patch for 6.2-rc2? HOT 12
- kpatch-build errors for kernel v6.1.4 HOT 4
- ubsan for kpatch HOT 2
- find_local_syms for <modified-file>: found_none HOT 2
- 6.3 failure with setlocalversion HOT 5
- Outstanding clang issues for 6.2 HOT 3
- x86 NOP padded functions without __pfx_ symbol HOT 4
- Linux 6.1 LTS: livepatch module fails to load HOT 26
- create-diff-object static local variable correlation and inlining HOT 5
- 1.0 release HOT 2
- Do we need more robust archeticture protection HOT 4
- kpatch-build: verify_patch_files might miss a parameter HOT 2
- ERROR in find_local_syms, couldn't find matching XXX local symbols in vmlinux symbol table HOT 14
- Can you add support for Rocky and Alma? HOT 1
- relocation with type R_X86_64_GOTPCREL is not supported HOT 5
- Regarding "statically allocated data" again HOT 2
- kpatch-build error when modifying an object file's only syscall
- nowhere to find the definition of klp_register_patch HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kpatch.