+%_target_base_arch %(echo %{_target_cpu} | sed 's/i.86/i386/;s/athlon/i386/;s/pentium./i386/;s/amd64/x86_64/')
+
+# user/group checking macros
+#
+# Usage:
+# %userremove myuser
+#
+%userremove /usr/lib/rpm/user_group.sh user del
+%groupremove /usr/lib/rpm/user_group.sh group del
+#
+# Usage:
+# if %usertestrm myuser; then
+# /usr/sbin/userdel -r myuser
+# Note:
+# use these macros only if you need to call userdel/groupdel with
+# a non-standard option or take an extra action; otherwise use the
+# %userremove/%groupremove macros
+#
+%usertestrm /usr/lib/rpm/user_group.sh user testrm
+%grouptestrm /usr/lib/rpm/user_group.sh group testrm
+# user group membership management macros
+#
+# Usage:
+# %addusertogroup myuser agroup
+#
+%addusertogroup /usr/lib/rpm/user_group.sh user addtogroup
+
+# banner support (useful in {pre,post}{,un} and triggers)
+#
+# Usage:
+# %banner name [-a] [-e] [-n] [-tn] <<EOF
+# the banner text, the banner text
+# the banner text, and following line
+#EOF
+# You can use any form of here-document, <<'EOF' <<-EOT will do.
+# NOTE: if your use "<<-EOF", then You can actually indent inside here-document.
+#
+# -a - append to the banner
+# -e - send to stderr instead of stdout
+# -n - no show banner (overrides -t)
+# -t - show only, if RPM_SCRIPTVERBOSITY >= n; default n=5
+%banner(aent:) \
+RPM_SCRIPTVERBOSITY=5 \
+[ -r /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm \
+if [ -x /usr/bin/banner.sh ]; then \
+ CMD="/usr/bin/banner.sh %{-e:--stderr} %{!-n:$([ $RPM_SCRIPTVERBOSITY -ge %{-t:%{-t*}}%{!-t:5} ] && echo -s)} %{!-a:-m}%{-a:-M} %1" \
+else \
+ CMD="cat%{-e: >&2}" \
+fi \
+$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
+#
+# Usage:
+# %useradd [-P package] [-u uid] [-d home_dir] [-s shell] [-c comment]
+# [-g initial_group] [-G group[,...]] login
+#
+# -u uid. REQUIRED
+# -g gid/group. REQUIRED
+# -s defaults to /bin/false
+# -d defaults to /usr/share/empty
+# -c No default
+# -r is accepted but ignored (it's always set)
+# rpm specific flags
+# -P package name. defaults to %{name}
+#
+%useradd(c:d:e:f:g:G:Mmk:op:s:u:rP:) \
+%{!-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 \
+ exit 1 \
+ fi \
+else \
+ echo "Adding user %{expand:%{%{#}}} UID=%{-u*}." \
+ /usr/sbin/useradd \\\
+ -u %{-u*} \\\
+ -r \\\
+ -d %{-d*}%{!-d:/usr/share/empty} \\\
+ -s %{-s*}%{!-s:/bin/false} \\\
+ %{-c:-c "%(set -- %{-c*} %{*}; echo $1)"}\\\
+ -g %{-g*} \\\
+ %{-M} \\\
+ %{-G:-G %{-G*}} \\\
+ %{expand:%{%{#}}} 1>&2 \
+fi;
+
+# Usage:
+# %groupadd [-P package] [-g gid] group
+#
+# -g gid. REQUIRED
+#
+# Sample:
+# %groupadd -P %{name}-base -g %{gid} %{name}
+
+%groupadd(g:P:rfo) \
+%{!-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 \
+ exit 1 \
+ fi \
+else \
+ echo "Adding group %{1} GID=%{-g*}." \
+ /usr/sbin/groupadd -g %{-g*} -r %{1} 1>&2 \
+fi;