diff mbox

[1/2] support/scripts: add generic genimage script

Message ID 20170327164730.16271-2-etienne.phelip@savoirfairelinux.com
State Changes Requested
Headers show

Commit Message

Phelip Etienne March 27, 2017, 4:47 p.m. UTC
This script is a wrapper for the genimage tool used by most boards.
The board postimage script can now call this script instead of invoking
genimage command themselves.

Signed-off-by: Phelip Etienne <etienne.phelip@savoirfairelinux.com>
---
 support/scripts/genimage.sh | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 support/scripts/genimage.sh

Comments

Arnout Vandecappelle March 27, 2017, 8:40 p.m. UTC | #1
Hi Phelip,

 Nice to see yet another contribution from Savoir-faire!

On 27-03-17 18:47, Phelip Etienne wrote:
> This script is a wrapper for the genimage tool used by most boards.
> The board postimage script can now call this script instead of invoking
> genimage command themselves.

 Looks good except for some small comments below. It would have been nice,
however, if you had included a patch in this series that completely removes one
of the post-image scripts. Almost all of them can be removed completely,
raspberrypi is one of the exceptions...

> 
> Signed-off-by: Phelip Etienne <etienne.phelip@savoirfairelinux.com>
> ---
>  support/scripts/genimage.sh | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
>  create mode 100644 support/scripts/genimage.sh
> 
> diff --git a/support/scripts/genimage.sh b/support/scripts/genimage.sh
> new file mode 100644
> index 0000000..134fc98
> --- /dev/null
> +++ b/support/scripts/genimage.sh
> @@ -0,0 +1,26 @@
> +#!/bin/sh
> +
> +usage() {
> +  echo "Usage: genimage.sh GENIMAGE_CFG"
> +}
> +
> +# Exit if argument is missing

 Comment is redundant.

> +if [ ! -n "$1" ]; then
> +  usage >&2
> +  echo "Error: Invalid argument!" >&2

 It's a bit nicer to move the >&2 and the error message to usage(), so you can
just call it as
  usage "Error: Invalid argument!"
and actually, it's "Missing argument", not invalid.

 Also, first print the error message, then the usage itself.

> +  exit 1
> +fi
> +
> +GENIMAGE_CFG=$1
> +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
> +
> +rm -rf "${GENIMAGE_TMP}"
> +
> +genimage  \
> +	--rootpath "${TARGET_DIR}"     \
> +	--tmppath "${GENIMAGE_TMP}"    \
> +	--inputpath "${BINARIES_DIR}"  \
> +	--outputpath "${BINARIES_DIR}" \
> +	--config "${GENIMAGE_CFG}"
> +
> +exit $?

 The exit is not needed - the script will exit with the exit code of the last
command. (Almost) all other post-image scripts don't have it.

 Regards,
 Arnout
Phelip Etienne March 27, 2017, 9:06 p.m. UTC | #2
Hello Arnout!

----- Le 27 Mar 17, à 16:40, Arnout Vandecappelle arnout@mind.be a écrit :

> Hi Phelip,
> 
> Nice to see yet another contribution from Savoir-faire!
> 
> On 27-03-17 18:47, Phelip Etienne wrote:
>> This script is a wrapper for the genimage tool used by most boards.
>> The board postimage script can now call this script instead of invoking
>> genimage command themselves.
> 
> Looks good except for some small comments below. It would have been nice,
> however, if you had included a patch in this series that completely removes one
> of the post-image scripts. Almost all of them can be removed completely,
> raspberrypi is one of the exceptions...

Good, since you seem to agree with the proposed changes, I will respin
a new patch series addressing your comments, as well as applying the
change to all other boards using genimage.

In the meantime, I plan to add a Kconfig entry to specify a list of
space separated genimage config files and make Buildroot call the
wrapper automatically (after the post-image script), for each config
file. Do you think I should add this Kconfig/Makefile addition
in a future series, or directly in this one?

Thanks,
--Etienne
Arnout Vandecappelle March 27, 2017, 10:03 p.m. UTC | #3
On 27-03-17 23:06, Étienne Phélip wrote:
> Hello Arnout!
> 
> ----- Le 27 Mar 17, à 16:40, Arnout Vandecappelle arnout@mind.be a écrit :
> 
>> Hi Phelip,
>>
>> Nice to see yet another contribution from Savoir-faire!
>>
>> On 27-03-17 18:47, Phelip Etienne wrote:
>>> This script is a wrapper for the genimage tool used by most boards.
>>> The board postimage script can now call this script instead of invoking
>>> genimage command themselves.
>>
>> Looks good except for some small comments below. It would have been nice,
>> however, if you had included a patch in this series that completely removes one
>> of the post-image scripts. Almost all of them can be removed completely,
>> raspberrypi is one of the exceptions...
> 
> Good, since you seem to agree with the proposed changes, I will respin
> a new patch series addressing your comments, as well as applying the
> change to all other boards using genimage.

 I had one more idea for the script: perhaps it's better to use an explicit
option for the config argument, e.g. --genimage-cfg=... . Remember that the same
argument list is used for the post-build, post-fakeroot and post-image scripts.
So relying on the order of arguments is difficult if several scripts are used.
Look at the a20_olinuxino scripts for examples.


> In the meantime, I plan to add a Kconfig entry to specify a list of
> space separated genimage config files and make Buildroot call the
> wrapper automatically (after the post-image script), for each config

 Hm, before or after the post-image script? It's possible that the post-image
script generates something used by genimage (e.g. some postprocessing of the
kernel or bootloader image; cfr. firefly-rk3288), but it's also possible that
the post-image script does something with the result of genimage (e.g. writing
the bootloader to the start of the image, cfr. odroidc2, or writing the image to
an SD card).

> file. Do you think I should add this Kconfig/Makefile addition
> in a future series, or directly in this one?

 Well, if you first convert all defconfigs to the generic genimage script, and
then convert them again to use the new Kconfig option, that generates a lot of
useless churn. So if you have the patience, I think it's better to now post an
RFC series that also introduces the new Kconfig option and then converts one or
two defconfigs to show how it goes.

 Regards,
 Arnout

> 
> Thanks,
> --Etienne
>
diff mbox

Patch

diff --git a/support/scripts/genimage.sh b/support/scripts/genimage.sh
new file mode 100644
index 0000000..134fc98
--- /dev/null
+++ b/support/scripts/genimage.sh
@@ -0,0 +1,26 @@ 
+#!/bin/sh
+
+usage() {
+  echo "Usage: genimage.sh GENIMAGE_CFG"
+}
+
+# Exit if argument is missing
+if [ ! -n "$1" ]; then
+  usage >&2
+  echo "Error: Invalid argument!" >&2
+  exit 1
+fi
+
+GENIMAGE_CFG=$1
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+
+rm -rf "${GENIMAGE_TMP}"
+
+genimage  \
+	--rootpath "${TARGET_DIR}"     \
+	--tmppath "${GENIMAGE_TMP}"    \
+	--inputpath "${BINARIES_DIR}"  \
+	--outputpath "${BINARIES_DIR}" \
+	--config "${GENIMAGE_CFG}"
+
+exit $?