RFC: [PATCH]: Test for presence of distcc before preclean to avoid failure

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

RFC: [PATCH]: Test for presence of distcc before preclean to avoid failure

M. J. Everitt
It would appear that the clean_stages function manages to successfully
remove distcc before the clean_distcc and subsequent functions are
called in stage3_preclean_chroot.sh, so the final 'emerge -C distcc'
fails because the package is no longer installed. This patch tests for
the existence of distcc before attempting an Unmerge. This may not be
the cleanest/best method of doing this, and doesn't account presently
for the failure of portageq or grep, but otherwise it has been tested on
my imx6 armv7a using distcc to my x86_64 crossdev box(es). Ack to Zac
for the suggestion.
Regards,

Michael.

001-stage3-preclean-test-for-distcc.patch (530 bytes) Download Attachment
signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFC: [PATCH]: Test for presence of distcc before preclean to avoid failure

Mike Frysinger
On 24 Jan 2018 00:13, M. J. Everitt wrote:
> --- a/targets/stage3/stage3-preclean-chroot.sh
> +++ b/targets/stage3/stage3-preclean-chroot.sh
> @@ -11,7 +11,10 @@ cleanup_stages
>  
>  if [ -n "${clst_DISTCC}" ]
>  then
> - run_merge -C sys-devel/distcc || exit 1
> + portageq match / sys-devel/distcc 2>&1 | grep -s -q distcc

just do a -n test on the output instead

although seems like portageq should be better with its exit status

> + if [ $? == 0 ]; then

use `[[` instead of `[` when writing bash, especially when using
bash code like "==".
-mike

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFC: [PATCH]: Test for presence of distcc before preclean to avoid failure

M. J. Everitt
On 24/01/18 03:45, Mike Frysinger wrote:

> On 24 Jan 2018 00:13, M. J. Everitt wrote:
>> --- a/targets/stage3/stage3-preclean-chroot.sh
>> +++ b/targets/stage3/stage3-preclean-chroot.sh
>> @@ -11,7 +11,10 @@ cleanup_stages
>>  
>>  if [ -n "${clst_DISTCC}" ]
>>  then
>> - run_merge -C sys-devel/distcc || exit 1
>> + portageq match / sys-devel/distcc 2>&1 | grep -s -q distcc
> just do a -n test on the output instead
>
> although seems like portageq should be better with its exit status
Thanks Mike - I did take a look at the portageq source code, but after
consulting with Zac, we decided against changing exit codes at this
time, to preserve the [minimal] existing return code behaviour. I agree,
for this purpose, it would seem much more sensible, though, to simply
have a grep-like exit code to test straight-off ... Added to FEATUREREQ ;)
>> + if [ $? == 0 ]; then
> use `[[` instead of `[` when writing bash, especially when using
> bash code like "==".
> -mike
Ooops, I usually do double-brackets - the curse of late-night coding .. :D

Michael.


signature.asc (836 bytes) Download Attachment