$CMD %2%{?3: %3} \
%nil
-#
+# fatal macro. produces recursion and therefore stops rpm build.
+# until there's no legal way of stopping rpmbuild from macros, this is used by
+# %useradd/%groupadd to notify user of wrong usage. glen@pld-linux.org
+%fatal() { %{*} %fatal }
+
# useradd/groupadd macros written by glen@pld-linux.org.
# All rights reserved. Permission to copy is hereby granted.. yada, yada, yada
#
# rpm specific flags
# -P package name. defaults to %{name}
#
-# NOTE: the syntax errors are intentional to trigger parse error at package
-# time for required options
-#
%useradd(c:d:e:f:g:G:Mmk:op:s:u:rP:) \
-%{!-u:%(\
-\
-%useradd: Required argument -u missing\
-} \
-%{!-g:%(\
-\
-%useradd: Required argument -g missing\
-} \
-%{!?1:%(\
-\
-%useradd: Required parameter login missing\
-} \
+%{!-u:%fatal -- useradd: Required argument -u missing} \
+%{!-g:%fatal -- useradd: Required argument -g missing} \
+%{!?1:%fatal -- useradd: Required parameter login missing} \
if [ -n "`/bin/id -u %{expand:%{%{#}}} 2>/dev/null`" ]; then \
if [ "`/bin/id -u %{expand:%{%{#}}}`" != "%{-u*}" ]; then \
echo "Error: user %{expand:%{%{#}}} doesn't have uid=%{-u*}. Correct this before installing %{-P*}%{!?-P:%{name}}." 1>&2 \
-r \\\
-d %{-d*}%{!-d:/usr/share/empty} \\\
-s %{-s*}%{!-s:/bin/false} \\\
- %{-c:-c '%(set -- %{-c*}%{*}; echo $1)'}\\\
+ %{-c:-c "%(set -- %{-c*} %{*}; echo $1)"}\\\
-g %{-g*} \\\
%{-M} \\\
%{-G:-G %{-G*}} \\\
- %{expand:%{%{#}}} 1>&2 \\\
+ %{expand:%{%{#}}} 1>&2 \
fi;
-
# Usage:
# %groupadd [-P package] [-g gid] group
#
# %groupadd -P %{name}-base -g %{gid} %{name}
%groupadd(g:P:rfo) \
-%{!-g:%(\
-\
-%groupadd: Required argument -g missing\
-} \
-%{!?1:%(\
-\
-%groupadd: Required parameter group missing\
-} \
+%{!-g:%fatal -- groupadd: Required argument -g missing} \
+%{!?1:%fatal -- groupadd: Required parameter group missing} \
if [ -n "`/usr/bin/getgid %{1}`" ]; then \
if [ "`/usr/bin/getgid %{1}`" != "%{-g*}" ]; then \
echo "Error: group %{1} doesn't have gid=%{-g*}. Correct this before installing %{-P*}%{!?-P:%{name}}." 1>&2 \
fi \
else \
echo "Adding group %{1} GID=%{-g*}." \
- /usr/sbin/groupadd -g %{-g*} -r %{1} \
+ /usr/sbin/groupadd -g %{-g*} -r %{1} 1>&2 \
fi;
-