execline
Software
www.skarnet.org
How to upgrade 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.