[Buildroot] [PATCH 1/9] support/scripts/genimage.sh: pass an empty rootpath to genimage

Arnout Vandecappelle arnout at mind.be
Mon Oct 14 15:06:57 UTC 2019



On 14/10/2019 14:34, Carlos Santos wrote:
> On Sun, Oct 13, 2019 at 7:11 PM Arnout Vandecappelle <arnout at mind.be> wrote:
>>
>>
>>
>> On 13/10/2019 02:22, unixmania at gmail.com wrote:
>>> From: Carlos Santos <unixmania at gmail.com>
>>>
>>> genimage makes a full copy of the given rootpath to ${GENIMAGE_TMP}/root
>>> so passing TARGET_DIR would be a waste of time and disk space. We don't
>>> rely on genimage to build the rootfs image, just to insert a pre-built
>>> one in the disk image.
>>>
>>> Signed-off-by: Carlos Santos <unixmania at gmail.com>
>>> ---
>>>  support/scripts/genimage.sh | 10 +++++++++-
>>>  1 file changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/support/scripts/genimage.sh b/support/scripts/genimage.sh
>>> index 039b3fef1d..2796e19eb7 100755
>>> --- a/support/scripts/genimage.sh
>>> +++ b/support/scripts/genimage.sh
>>> @@ -30,10 +30,18 @@ done
>>>
>>>  [ -n "${GENIMAGE_CFG}" ] || die "Missing argument"
>>>
>>> +# Pass an empty rootpath. genimage makes a full copy of the given rootpath to
>>> +# ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
>>> +# space. We don't rely on genimage to build the rootfs image, just to insert a
>>> +# pre-built one in the disk image.
>>> +
>>> +trap 'rm -rf "${ROOTPATH_TMP}"' EXIT
>>> +ROOTPATH_TMP="$(mktemp -d)"
>>
>>  Instead of a temporary directory, I think it would make sense to use a fixed
>> directory, e.g. $(BINARIES_DIR)/rootpath. This would allow the path to be used
>> for some other things, i.e. packages could install stuff in there that could be
>> used to generate a filesystem. Cfr. [1].
> 
> That's exactly what I'm attempting to avoid.
> 
>>
>>  Regards,
>>  Arnout
>>
>> [1] http://patchwork.ozlabs.org/patch/1156956/
> 
> I had to deal with that situation in the recent past. It requires a
> post-fakeroot script. You can't set ownership and permissions o the
> mount points in a post-image script.

 It only needs to be in a post-fakeroot script if you actually want to set
ownership and permissions.

 And even so, there's no reason why you couldn't run it as a post-fakeroot
script instead of a post-image script.

 That said, it remains kludgy to use genimage.sh in this way, so the patch is
definitely OK as is. I just didn't have time to do the merge yesterday.

 Regards,
 Arnout

> 
>>> +
>>>  rm -rf "${GENIMAGE_TMP}"
>>>
>>>  genimage \
>>> -     --rootpath "${TARGET_DIR}"     \
>>> +     --rootpath "${ROOTPATH_TMP}"     \
>>>       --tmppath "${GENIMAGE_TMP}"    \
>>>       --inputpath "${BINARIES_DIR}"  \
>>>       --outputpath "${BINARIES_DIR}" \
>>>
> 



More information about the buildroot mailing list