summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/base-files/base-files/profile
AgeCommit message (Collapse)Author
2023-10-19base-files: profile: allow profile.d to set EDITORJohannes Schneider
With a profile.d configuration in place that sets the EDITOR variable, the automatic terminal 'resize' logic would not trigger. Which then would possibly lead to a 80x24 fallback on the debug serial console. This can simply be avoided by setting a flag variable when the shell is first opened, then processing all profile.d includes, trigger the 'resize' depending on the flag and shell-level and finally only set EDITOR to some default if it is still unset. Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2020-11-08base-files/profile: Add universal resize functionJason Wessel
Using an editor or any kind of command line that wraps beyond the column width of the session on a serial port is quite problematic unless you are using an 80x24 session. The original /etc/profile tried to use the resize binary if it was available. The problem is that you only get the resize binary if xterm, or busybox is installed. This updated /etc/profile will add a resize function available to the shell when no xterm or busybox resize binary is found. More care is taken in this new version to test that terminal is interactive. The EDITOR and SHLVL environment variables are checked to prevent resize from running necessarily. The function definitions are not indented intentionally to keep them to the 80 column width. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-14base-files: fix handling of resizeChen Qi
The current handling of resize is incorrect. Using `resize > /dev/null 2>&1 && resize > /dev/null' will cause the second resize command to not execute because 'resize > /dev/null 2>&1' will fail for resize utility from busybox. What we really should do is just to check whether ${bindir}/resize is executable and execute it if so. Using '-x' is sufficient. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-26base-files: profile: Avoid using "command" to determine if programs existPeter Kjellerstedt
Since the existence of "command" in itself is not guaranteed, using it to determine if other executables exist is moot. Instead just run the executables and let the shell determine if they exist. By piping stderr to /dev/null we avoid unnecessary warnings in case they do not exist. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-05-16base-files: profile: Simplify setting variables conditionallyPeter Kjellerstedt
It is preferred to use `[ "$FOO" ] || ...` instead of `[ -z "$FOO" ] && ...` as the latter leaves $? set to 1. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-04-08base-files: profile: Do not assume that the tty command existsPeter Kjellerstedt
This avoids the following error when logging in to a host that does not have the tty command: -sh: tty: not found Reported-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com> Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-04-08base-files: profile: Whitespace clean upPeter Kjellerstedt
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-31base-files: resize only serial tty's in profileDaniel Díaz
We don't want to run resize on non serial consoles. There's been an earlier attempt (6557787), so this builds upon that. The problem we're seeing is that if there is text buffered in the virtual console (like from a desperate user trying to enter login details), resize will get stuck while calling ioctl(tty, TCSETAW); Since serial consoles are named (not just numbered), this change limits resize's reach even further to run only on /dev/tty[A-z] (thus avoiding /dev/tty[0-9]). Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-15base-files: fix profile error under < /dev/nullRichard Tollerton
Previous attempts to constrain execution of `resize` to only TTYs did not properly handle situations when `tty` would return the string "not a tty". The symptom is "/etc/profile: line 34: test: too many arguments". Fix this by utilizing the exit code of `tty`. Also use `case` instead of `cut` to eliminate a subshell. Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-10-05base-files: don't export TZ="UTC" from /etc/profileAndre McCurdy
If no /etc/localtime (or /etc/TZ for uclibc) is found, then the libc will default to UTC, so setting UTC as a fallback default via the TZ environment variable is redundant. Since having the TZ environment variable set causes /etc/localtime to be ignored, it can cause confusion if /etc/localtime is added interactively after /etc/profile has been run. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-03base-files: Add shell test quotingJussi Kukkonen
tty can return "not a tt" which results in warnings when /etc/profile is executed. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-10base-files: restrict resize to run on serial consoles only in profile │·bavery
We don't need/wan't to run resize on an ssh connection. It's useless and it breaks the Eclipse SSH debug connection. So, we added a check. YOCTO #9362 Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-09base-files: add some safety checks in profileDiego Rondini
Add some safety checks when sourcing files in /etc/profile.d/, in particular: - source only *.sh files, not every file. This is the practice in use in both Fedora and Debian/Ubuntu (see https://help.ubuntu.com/community/EnvironmentVariables#A.2Fetc.2Fprofile.d.2F.2A.sh); - check the input is actually a file and is readable. This check is especially important if profile.d is empty, as "*.sh" will get expanded only if profile.d is not empty. Previously if profile.d was present but empty, "/etc/profile.d/*" was sourced causing errors on login and breaking stuff, for example X startup. Signed-off-by: Diego Rondini <diego.ml@zoho.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-02-14base-files/profile: change EDITOR to not be busybox specificPaul Gortmaker
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@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-08-06base-files: set dynamic COLUMNS via resize commandTing Liu
By default, COLUMNS is set to 80. If possible, run 'resize' to determine what the current dimensions are. This avoids the final part of long lines overlap the start of the same line. Signed-off-by: Ting Liu <ting.liu@freescale.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-25base-files: Don't export TZ if /etc/TZ existsRichard Tollerton
While glibc/eglibc looks for the time zone in /etc/localtime, other libc alternatives (e.g. uclibc) may look for it in /etc/TZ. If /etc/TZ exists, don't fall back to setting TZ to "UTC" in /etc/profile. Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Ben Shelton <ben.shelton@ni.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-25base-files: use dynamic root home directoryKang Kai
Use var ROOT_HOME to configure root home directory dynamically. Signed-off-by: Kang Kai <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2011-01-28base-files: remove ending colon from default $PATH for root userKevin Tian
now the PATH for root user defined in a problematic way PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin: from eglibc: /* Two adjacent colons, or a colon at the beginning or the end of `PATH' means to search the current directory. */ that means current directory is always searched as the last path, which could generate undesired behavior. One example is found in LTP cron_deny01 test, which always complains "sh: cron_deny01 not found" cron_deny01 is a shell script which setups the initial test preparation and then invokes itself for real test under a different user: su $TEST_USER1 -c "$0" 'su' doesn't inherit PATH into the sub-shell, and thus $0 has to be an absolute path to have right script found. ltp appends the path of cron_deny01 to $PATH before running the test: export PATH="${PATH}:${LTPROOT}/testcases/bin" In ideal way "${LTPROOT}/testcases/bin/cron_deny01" is found and becomes $0, which works well. However due to the ending colon in original PATH: PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin::${LTPROOT}/testcases/bin $0 becomes 'cron_deny01' w/o leading path which makes sub-shell under 'su' failed to locate cron_deny01. remove ending colon then fixes this problem. Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-27Major layout change to the packages directoryRichard Purdie
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>