execline
Software
www.skarnet.org
How to upgrade execline
to 1.2.3
This release is for skalibs-1.4.1 compatibility. You can still
build it with previous versions of skalibs, but it is recommended
to use skalibs-1.4.1 or later.
to 1.2.2
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 1.4.0 or later,
installed on your system in order to build execline.
The run-time dependencies have changed.
- Unless you have built the execline package with the
flag-allstatic flag, you need the
skalibs package,
version 1.4.0 or later,
installed on your system in order to run it.
to 1.2.1
No changes.
to 1.2.0
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 1.3.0 or later,
installed on your system in order to build execline.
The run-time dependencies have changed.
- Unless you have built the execline package with the
flag-allstatic flag, you need the
skalibs package,
version 1.3.0 or later,
installed on your system in order to run it.
FHS support has been added. See the end of
this page
for the rationale, and the
general skarnet.org
configuration page for how to proceed.
This means you can now install the execline binaries wherever you want.
However, since execline binaries sometimes
call other execline binaries, and non-slashpackage installations cannot
guarantee absolute paths, execline programs now rely on the PATH environment
variable to find all their executables on non-slashpackage installations; in
other words, if you are not extra careful with how you are setting up your
PATH, things might break. (Pay special attention if you have the
ImageMagick software installed,
because it comes with an executable named
import; make sure
there is no possible confusion with execline's import.)
The block quote character and terminator have been changed. The quote
character is now a space and the terminator an empty word. This means that
execline programs (like foreground) from
earlier releases will be incompatible with the new launchers, and
vice versa. Always use a set of execline programs from the same release.
to 1.1.6
No change in dependencies. It is always recommended to use the latest release
of skalibs to compile and/or run execline, though.
to 1.1.5
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 1.2.8 or later,
installed on your system in order to build execline.
The run-time dependencies have changed.
- Unless you have built the execline package with the
flag-allstatic flag, you need the
skalibs package,
version 1.2.8 or later,
installed on your system in order to run it.
to 1.1.4
No change in dependencies. Upgrade to skalibs-1.2.7 recommended.
to 1.1.3
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 1.2.5 or later,
installed on your system in order to build execline.
The run-time dependencies have changed.
- Unless you have built the execline package with the
flag-allstatic flag, you need the
skalibs package,
version 1.2.5 or later,
installed on your system in order to run it.
from 1.1.0 to 1.1.1 or 1.1.2
No change in dependencies. It is recommended to use skalibs version 1.1.1 or
later, to benefit from bugfixes and enhancements.
from 1.08 to 1.1.0
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 1.0.0 or later,
installed on your system in order to build execline.
The run-time dependencies have changed.
- Unless you have built the execline package with the
flag-allstatic flag, you need the
skalibs package,
version 1.0.0 or later,
installed on your system in order to run it.
from 1.07 to 1.08
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.47 or later,
installed on your system in order to build execline.
Also note that if you're using compatibility links in /usr/local/bin,
now you have to ask for them specifically after package/install,
by executing - probably as root - package/compat.
from pre-1.07 to 1.07
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.46 or later,
installed on your system in order to build execline.
from pre-1.06 to 1.06
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.40 or later,
installed on your system in order to build execline.
import and importas
do not exhibit the same default behaviour when the variable does not
exist. Now, zero word is substituted instead of the empty word.
Add -D "" in your scripts to get the empty word.
The semantics of delimitors have been simplified and clarified - they
are now word terminators. Crunching, chomping and splitting are now
(quasi-)orthogonal operations. Most importantly, the default crunch
behaviour for splitting substitution has been changed from crunching to
non-crunching. Add -C in your scripts to get crunching
behaviour.
from pre-1.05 to 1.05
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.29 or later,
installed on your system in order to build execline.
from pre-1.04 to 1.04
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.23 or later,
installed on your system in order to build execline.
from pre-1.02 to 1.02
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.22 or later,
installed on your system in order to build execline.
from 0.15 to 1.y
Direct upgrades from pre-0.15 to 1.y are not supported.
You must first upgrade to 0.15, then
follow the procedure described here.
- The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.21 or later,
installed on your system in order to build execline.
- The execline-startup and execline-shell scripts
are not provided in /command anymore, but in the execline
package's etc/ subdirectory. You should copy them to /etc,
editing them as you need. Make sure that execline-startup sets
SHELL to /etc/execline-shell instead of
/command/execline-shell. Make sure that your users' login
shell is /etc/execline-startup instead of
/command/execline-startup.
- The syntax has changed. Here is the procedure that you should
use to convert your scripts to execline-1.y with least effort:
- Convert all your scripts to use execlineb,
in strict mode. Use only the brace syntax, and brace your
blocks properly. Get rid of every bare semicolon in your scripts.
If there are quoted semicolons left, unquote them.
- Check every occurrence of the old dollar expansion mechanism
in your scripts, namely every use of
define,
importas,
import,
backtick,
for,
and forbacktick. Make sure they will not
break when dollar expansion is replaced by the new
variable substitution mechanism.
Pay special attention to put explicit braces around your variables.
- Upgrade to execline-1.y.
- Fix every remaining potential security hole in all your scripts
by merging consecutive
variable substitutions into one
multisubstitute command.
- For a few days, check what your scripts are writing to stderr.
If the message "warning: unquoted argument foo at block
bar position baz" appears, fix the blocks in
your script immediately.
- You can then remove execlineb's
strict mode.
from 0.x to 0.y, x<y
- Save your /package/admin/execline/command/execline-startup script before
upgrading: the new version of execline-startup will override it. Put your
script back into place after upgrading.
- For safety, you could prevent users from logging in before the upgrade,
and restore login ability after your execline-startup is back into
place.
The right thing would be for execline to avoid overriding
execline-startup. execline-1.y does that.
from pre-0.15 to 0.15
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.17 or later,
installed on your system in order to build execline.
from pre-0.14 to 0.14
The build-time dependencies have changed.
- Now you need to have the
skalibs package,
version 0.10 or later,
installed on your system in order to build execline.