RPM: Rückgabe von Werten aus eingeschlossenem RPM-Makro

Dies ist eine Folgefrage zuRPM: Laden des Bash-Skripts in% pre scriptlet.

Ich versuche einige Utility-Funktionen als Makros zu definieren, damit ich später%include ihnen, wenn auch andere RPM-Pakete erstellt werden. Nehmen wir an, ich möchte eine Funktion habentestfunc(), mit dem ich prüfen möchte, ob auf dem Zielsystem etwas vorhanden ist. Wenn die Bedingung nicht erfüllt ist, möchte ich die Ausführung meines RPM @ abbreche%pre scriptlet.

Things ich habe versucht:

Definieren einer Bash-Funktion im Makro

common.spec

%define importfunction() (testfunc() { echo "Cancelling installation!" ; exit 1 ; })

package.spec

%include SPECS/common.spec

...

%pre
%importfunction

testfunc

RPM install output

testfunc: Befehl nicht gefunden

Exit direkt aus dem Makro

common.spec

%define testfunc() (echo "Cancelling installation!" ; exit 1)

package.spec

%include SPECS/common.spec

...

%pre
%testfunc

echo "Installation still running :("

RPM install output

Installation abbrechen!

Installation läuft noch:

Das Problem ist, dass das%pre scriptlet wird in diesem Fall nicht beendet.

Frage

Wie kann ich die Ausführung von @ abbreche%pre von meinem Makro?Ist es möglich, einen Wert aus dem Makro zurückzugeben und diese während @ in einer Variablen zu speicher%pre?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage