On 2020-06-20 16:58 -0500, Bruce Dubbs via lfs-dev wrote:
> On 6/20/20 2:42 PM, Xi Ruoyao via lfs-dev wrote:
> > The discussion with Frans de Boer in lfs-support shown that the environment
> > variables from host can catch us completely off guard.  Though in his case
> > the
> > problem is that he forgot to create /home/lfs/.bash_profile, normally
> > /etc/bash.bashrc would be more dangerous (the book has no consideration of
> > this
> > file), and used by many distros.
> > 
> > So if there is no objection I'll commit the change we've discussed in last
> > Nov.:
> > 
> > /home/lfs/.bash_profile:
> > 
> >      exec env -i ENV=$HOME/.lfs_bashrc \
> >                  HOME=$HOME            \
> >                  TERM=$TERM            \
> >                  PS1='\u:\w\$ '        \
> >                  /bin/bash --posix
> > 
> > /home/lfs/.lfs_bashrc:
> > 
> >      set +o posix
> >      set +h
> >      umask 022
> >      LFS=/mnt/lfs
> >      LC_ALL=POSIX
> >      LFS_TGT=$(uname -m)-lfs-linux-gnu
> >      PATH=/usr/bin
> >      if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
> >      PATH=$LFS/tools/bin:$PATH
> >      export LFS LC_ALL LFS_TGT PATH
> 
> So the --posix in .bash_profile allows the use of
> ENV=$HOME/.lfs_bashrc and then the first line in .lfs_bashrc turns posix 
> mode off?
> 
> At a minimum this looks like a hack that needs a fair amount of explanation.
> 
> The reason for this is because a user forgot to create .bash_profile? 
> In that case the above doesn't work.

The discussion just proved that environment variables from host are really
harmful.

>  From https://sources.debian.org/src/bash/5.0-6/debian/README/
> 
> 5. What is /etc/bash.bashrc? It doesn't seem to be documented.
> 
>     The Debian version of bash is compiled with a special option
>     (-DSYS_BASHRC) that makes bash read /etc/bash.bashrc before ~/.bashrc
>     for interactive non-login shells. So, on Debian systems,
>     /etc/bash.bashrc is to ~/.bashrc as /etc/profile is to
>     ~/.bash_profile.
> 
> When I look at a debian system's /etc/bash.bashrc, I don't see what 
> would affect what we have now.  What was the reported problem?
> 
> We've been using the current structure for a long time without a 
> reported issue.  What's new?

I studied OpenSUSE bash.bashrc a little.  It's a giant monster script (even
sourcing some scripts from /etc/profile.d) so I won't be suprised if one day a
bash.bashrc breaks some package.

And after a sleep I realized a more serious issue:  if some distro has a
/usr/share/config.site (or /usr/etc/config.site, which is not FHS and shouldn't
exist), it would be used by autotools configure script *even if we are cross
compiling*, and break temporary glibc build.  Perhaps we should "export
CONFIG_SITE=/dev/null" in /home/lfs/.bashrc to override it.
-- 
Xi Ruoyao <xry...@mengyan1223.wang>
School of Aerospace Science and Technology, Xidian University

-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to