-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build-deb.sh: Allow building source packages, pass options #178
base: master
Are you sure you want to change the base?
Conversation
Allow end users to build source packages, sign packages with their own GnuPG key, and perform other interactions with `dpkg-buildpackage`.
@@ -1,17 +1,38 @@ | |||
# ------------------------------------------------------------------------------ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran shell check on this script and got this output:
$ shellcheck build-deb.sh
In build-deb.sh line 1:
# ------------------------------------------------------------------------------
^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
In build-deb.sh line 62:
debuild -i ${BUILD_OPTS} "$@"
^-----------^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
debuild -i "${BUILD_OPTS}" "$@"
For more information:
https://www.shellcheck.net/wiki/SC2148 -- Tips depend on target shell and y...
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
Personally, I belive that the current line 62 is correct, it may conatin several comman line options.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I think double-quoting that will do more harm than good. I see what they're getting at but in this case we want the arguments in the variable to be split apart and interpreted separately.
case "$1" in | ||
--build-source-pkg) | ||
BUILD_SOURCE=1 | ||
;; | ||
--skip-binary) | ||
BUILD_BINARY=0 | ||
;; | ||
--sign-key|-l) | ||
SIGN_KEY=$2 | ||
shift | ||
;; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This block (lines 17-27) would accept misspelled and random flags.
./build-deb --foo --bar -mokey 7 --skip-binary --hello --
No online help/usage.
``` RC=0 stuartl@rikishi ~/vrt/projects/metermaster/libs/libmbus $ ./build-deb.sh --foo --bar -mokey 7 --skip-binary --hello -- Usage: ./build-deb.sh [--build-source-pkg] [--skip-binary] [{--sign-key|-l} <GPG KEY ID>] [-- <dpkg-buildpackage options>] Unrecognised argument --foo RC=1 stuartl@rikishi ~/vrt/projects/metermaster/libs/libmbus $ ./build-deb.sh -h Usage: ./build-deb.sh [--build-source-pkg] [--skip-binary] [{--sign-key|-l} <GPG KEY ID>] [-- <dpkg-buildpackage options>] RC=0 stuartl@rikishi ~/vrt/projects/metermaster/libs/libmbus $ ./build-deb.sh -? Usage: ./build-deb.sh [--build-source-pkg] [--skip-binary] [{--sign-key|-l} <GPG KEY ID>] [-- <dpkg-buildpackage options>] RC=0 stuartl@rikishi ~/vrt/projects/metermaster/libs/libmbus $ ./build-deb.sh --help Usage: ./build-deb.sh [--build-source-pkg] [--skip-binary] [{--sign-key|-l} <GPG KEY ID>] [-- <dpkg-buildpackage options>] ```
5679638
to
2bf18df
Compare
Allow end users to build source packages, sign packages with their own
GnuPG key, and perform other interactions with
dpkg-buildpackage
.The new build script works well for unsigned binaries, but users might want source packages (since then re-building is simple), or might require package signing. This caters for those use cases.