How rpm passes arguments to install scriptlet helpers is about to
change for various reasons.

ATM, there are two rather primitive means by which RPM
signals state to shell scriptlets.

Using $1 and $2 to pass the number of instances of
the "package" is the more well known convention.
There are also a handful of (rather ancient and useless)
envvar's that are set in the child's environment while
execing /bin/sh.

(aside)
Hmmm, I seem to have already nuked the useless envvar
cruft @rpm5.org. Good.

What will be done instead is to add a preamble to
package scriptlets before macro expanding.

The last line of the preamble will be something like

        set -- $RPMINSTALL_FOO

where the contents of RPMINSTALL_FOO will be essentially
(the example uses shell, rpm will use macros)

        RPMINSTALL_FOO="$1 $2"

The other (rather ancient and useless) envvar's will
be set the same way with lines like

        PATH="%{_install_script_path}"

        RPM_INSTALL_PREFIX="%{__prefix}"

where %{__prefix} will be a dynamically instantiated
macro to carry the gud old "stuff". The $1/$2
values will be injected into the preamble using
a dynamically instantiated macro as well.

Note the immediate benefit to this common packaging scriptlet

        %post -p /sbin/ldconfig

i.e. ldconfig no longer needs to handle integers passed
as $1 and $2 arguments.

73 de Jeff





______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to