[Buildroot] Add [user at host dir] back to skeleton /etc/profile

David Van Arnem dvanarnem at cmlab.biz
Wed Oct 7 18:13:20 UTC 2015


On 10/07/2015 10:56 AM, David Van Arnem wrote:
> On 10/07/2015 02:22 AM, Luca Ceresoli wrote:
>> Dear David,
>>
>> thanks for your report.
>>
>> [Cc-ing the author and the other reviewer of the mentioned commit]
>>
>> David Van Arnem wrote:
>>> Hi all,
>>>
>>> I noticed there was a commit pushed Saturday (f93c692c) which removed
>>> some bash-specific stuff from the skeleton shell profile in
>>> /etc/profile.  The default behavior for the shell prompt now is to only
>>> display "$" or "#", without the [user at host dir] prefix.  I just
>>> subscribed to the list today so I missed out on any discussion on this;
>>> was there a reason the [user at host dir] prefix was not left in the
>>> changes ("export PS1="[\u@\h \W]\\$ "")?  I have not encountered a Linux
>>> distribution that does not display this or a similar prompt, and I think
>>> it would be beneficial to add it back in.  I agree that the aliases,
>>> colors, etc should stay removed.
>>
>> This is because bash is rather unusual on embedded Linux systems. At
>> least on small devices, bash has a farily targe foot print, so in most
>> cases a simpler shell is used. For example, the default in Buildroot is
>> to use the 'ash' shell implemented by Busybox.
>>
>> Comparing with a desktop distribution, if that's what you did, is
>> misleading. Desktops distributions run on machines with large of disks
>> and RAMs, and
>>
>> However it is perfectly fine if you want to use bash on your embedded
>> system, and that's why Buildroot has a 'bash' package.
>>
>> Mmh, I realize now it's probably wise if we add back the bash-specific
>> lines, but in package/bash/bash_profile, and of course install that
>> file. This would give back bash features to bash users, out of the box,
>> and without cluttering the rootfs for other users.
>>
>> Why don't you try to do it yourself, and make your first code
>> contribution to Buildroot?
>>
>> Regards,
>
> Hi Luca, all,
>
> I'd be happy to work on putting the changes back in
> package/bash/bash_profile.  I've only used default
> packages/configurations in Buildroot so I'm not very familiar with
> modifying them, and I could use some guidance.  Should I place
> bash_profile in package/bash and then have the bash package Makefile
> copy it to system/skeleton/etc/profile?  Or is there another way I
> should install it?
>
> David
>
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

Upon more investigation, I have a (hopefully) better idea for how to 
accomplish this. Sticking with the suggestion in the commit message ("If 
the user has a specific needs, it needs to be added in /etc/profile.d/ 
by a post-build script."), I'm thinking I should create 
package/bash/bash_profile.sh, and in bash.mk set up a section to use 
$(INSTALL) to install it to $(TARGET_DIR)/etc/profile.d/bash_profile.sh. 
The skeleton /etc/profile sources any *.sh files in /etc/profile.d, so 
it should hopefully pick it up. Does this sound like a viable (and 
correct wrt best buildroot practices) approach?

Or, I'll just try it and see if it works :)
-- 
Thanks,
David



More information about the buildroot mailing list