Re: git: 497cdf9673ec - main - sh: read more profile files.
- In reply to: FreeBSD User : "Re: git: 497cdf9673ec - main - sh: read more profile files."
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 09 Oct 2022 13:26:23 UTC
In message <20221009091405.171bde4f@thor.intern.walstatt.dynvpn.de>, FreeBSD Us er writes: > Am Sat, 1 Oct 2022 21:31:18 GMT > Dag-Erling Sm=C3=B8rgrav <des@FreeBSD.org> schrieb: > > > The branch main has been updated by des: > >=20 > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D497cdf9673ec53d59634bb7886= > 2cd8dea3d5c155 > >=20 > > commit 497cdf9673ec53d59634bb78862cd8dea3d5c155 > > Author: Dag-Erling Sm=C3=B8rgrav <des@FreeBSD.org> > > AuthorDate: 2022-09-09 13:08:43 +0000 > > Commit: Dag-Erling Sm=C3=B8rgrav <des@FreeBSD.org> > > CommitDate: 2022-10-01 21:30:56 +0000 > >=20 > > sh: read more profile files. > > =20 > > Differential Revision: https://reviews.freebsd.org/D36505 > > MFC after: 1 month > > --- > > bin/sh/profile | 20 ++++++++++++++++++++ > > etc/mtree/BSD.root.dist | 2 ++ > > 2 files changed, 22 insertions(+) > >=20 > > diff --git a/bin/sh/profile b/bin/sh/profile > > index b77c8787c79d..afcbeaf4110b 100644 > > --- a/bin/sh/profile > > +++ b/bin/sh/profile > > @@ -12,3 +12,23 @@ > > # msgs -q > > # Allow terminal messages > > # mesg y > > + > > +# Load each file in /etc/profile.d/, then /usr/local/etc/profile, then > > +# each file in /usr/local/etc/profile.d/. > > +_loaded=3D${_loaded:-/etc/profile} > > +export _loaded > > +for _dir in /etc /usr/local/etc ; do > > + for _file in "${_dir}"/profile "${_dir}"/profile.d/* ; do > > + if [ -f "${_file}" ] ; then > > + case :${_loaded}: in > > + *:"${_file}":*) > > + ;; > > + *) > > + _loaded=3D"${_loaded:+${_loaded}:}${_file}" > > + . "${_file}" > > + ;; > > + esac > > + fi > > + done > > +done > > +unset _loaded _dir _file > > diff --git a/etc/mtree/BSD.root.dist b/etc/mtree/BSD.root.dist > > index 8bea31212217..5ee5da8ee149 100644 > > --- a/etc/mtree/BSD.root.dist > > +++ b/etc/mtree/BSD.root.dist > > @@ -84,6 +84,8 @@ > > .. > > ppp > > .. > > + profile.d > > + .. > > rc.conf.d > > .. > > rc.d > >=20 > > According to this commit, I took the liberty opening a PR (id=3D266913) bec= > ause some ports, like > lang/gawk and x11-toolkits/vte3, install their SH and CSH set of shell conf= > iguration files into > ${LOCALBASE}/etc/profile.d/, i.e. vte.{sh|csh}.=20 > The proposed/commited /etc/profile includes also *.csh files, which trigger= > s some disturbing > error messages during a full login (i.e. su - ) and the list of those messa= > ges increase with > the number of unfitting shell configuration files. > I do not have a general solution, maybe someone more enlighted can take a l= > ook at this. I had the same problem. Though my source tree contains the changes I reverted them locally on each machine and etcupdate will ensure that this never creeps back in again. This is clearly a POLA violation and probably needs a knob to either enable it if disabled by default or disable it if enabled by default. I think a little redesign with the consideration that some ports do weird things might be the path forward. Part of this redesign might be documentation of some standards port maintainers must adhere to or maybe something a little more subtle such as only execute these additional scripts under certain conditions, such as testing $SHELL before executing ${LOCALBASE}/profile.d/* scripts. Personally, I like option 1, document standards which port maintainers must follow. Each additional script must test $SHELL. Most if not all additional profile scripts provided by add-on software assume bash. Not everyone uses bash. -- Cheers, Cy Schubert <Cy.Schubert@cschubert.com> FreeBSD UNIX: <cy@FreeBSD.org> Web: http://www.FreeBSD.org NTP: <cy@nwtime.org> Web: https://nwtime.org e^(i*pi)+1=0