[OE-core] [PATCH] base-files/profile: change EDITOR to not be busybox specific

Mike Looijmans mike.looijmans at topic.nl
Thu Jan 22 14:08:37 UTC 2015


On 21-01-15 20:29, Dan McGregor wrote:
> On 21 January 2015 at 12:25, Paul Gortmaker
> <paul.gortmaker at windriver.com> wrote:
>> Setting "EDITOR=/bin/vi" breaks on non-busybox systems, as
>> vim will populate /usr/bin/vi instead, and you get stuff like:
>>
>>    op3:~/poky/meta-builder$ git commit -s
>>    error: cannot run /bin/vi: No such file or directory
>>    error: unable to start editor '/bin/vi'
>>    Please supply the message using either -m or -F option.
>>    op3:~/poky/meta-builder$ which vi
>>    /usr/bin/vi
>>    op3:~/poky/meta-builder$
>>
>> Since we've already specified a proper path above in the profile,
>> we've no need to call out where in the path vi lives, and hence
>> this will work with busybox and a full vim install w/o busybox.
>>
>> Signed-off-by: Paul Gortmaker <paul.gortmaker at windriver.com>
>> ---
>>   meta/recipes-core/base-files/base-files/profile | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/recipes-core/base-files/base-files/profile b/meta/recipes-core/base-files/base-files/profile
>> index 88ab8d877b0d..53c2680409dd 100644
>> --- a/meta/recipes-core/base-files/base-files/profile
>> +++ b/meta/recipes-core/base-files/base-files/profile
>> @@ -2,7 +2,7 @@
>>   # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
>>
>>   PATH="/usr/local/bin:/usr/bin:/bin"
>> -EDITOR="/bin/vi"                       # needed for packages like cron
>> +EDITOR="vi"                    # needed for packages like cron, git-commit
>>   test -z "$TERM" && TERM="vt100"        # Basic terminal capab. For screen etc.
>>
>>   if [ ! -e /etc/localtime -a ! -e /etc/TZ ]; then
>
> While I agree with this change, arguably busybox should also be
> changed. Everywhere I look "vi" lives in /usr/bin. FreeBSD, NetBSD,
> Ubuntu, and Slackware all seem to put vi in /usr/bin.
>
> The same is true of getopt.
>
> What are other people's thoughs?
>

If I remember my history lessons correctly, the distinction between /bin and 
/usr/bin was that /bin will reside in the root mount, while /usr may mount 
something else. Busybox seems to consider "vi" and "getopt" things that need 
to be available at all times. Which is not a strange thought, it would be 
frustrating to know that all you need to fix the system is to edit a file, but 
you're stuck without editor when /usr can't be mounted for whatever reason.

On the other hand, if you have a busybox system, you can always run vi using 
"/bin/busybox vi" and /bin/vi is just a symbolic link for that. If all other 
systems use /usr/bin/vi, I think busybox should be changed to follow suit.

In the end, my vote would be on a busybox modification. I can't think of a 
convincing reason why it should reside in /bin/, while there are plenty 
reasons to move it to /usr/bin.


Met vriendelijke groet / kind regards,

Mike Looijmans
System Expert


TOPIC Embedded Systems
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: (+31) (0) 499 33 69 79
Telefax:  (+31) (0) 499 33 69 70
E-mail: mike.looijmans at topic.nl
Website: www.topic.nl

Please consider the environment before printing this e-mail

Visit us at Embedded World 2015 Nuernberg, 24.02.2015 till 26.02.2015, Hall 1, stand number 136.
https://www.embedded-world.de/de/ausstellerprodukte/?focus=edb3exhibitor&focus2=14017667&focus3=embwld15&highlight=topic




More information about the Openembedded-core mailing list