1. it conditionally include certain "Requires" statements for specific
distributions and their corresponding release.
2. it double checks that /sbin/new-kernel-pkg isn't linked to /sbin/true,
as often is the case in vservers dueo the /etc/rpm/macros setup.
3. adds in 256 /dev/loop entries
4. turns off the "requirestty" option in /etc/sudoers
Requires: graphviz
Requires: gzip
Requires: httpd
Requires: graphviz
Requires: gzip
Requires: httpd
-%if "%{distro}" == "Fedora" && "%{release}" >= "7"
+%if "%{distroname}" == "Fedora" && "%{distrorelease}" >= "7"
Requires: inotify-tools-devel
%endif
Requires: iptables
Requires: less
Requires: libpcap
Requires: inotify-tools-devel
%endif
Requires: iptables
Requires: less
Requires: libpcap
-%if ("%{distro}" == "Fedora" && "%{release}" >= "6") || ("%{distro}" == "CentOS" && "%{release}" >= "5")
+%if ("%{distroname}" == "Fedora" && "%{distrorelease}" >= "6") || ("%{distroname}" == "CentOS" && "%{distrorelease}" >= "5")
Requires: libpcap-devel
%endif
Requires: libtool
Requires: libpcap-devel
%endif
Requires: libtool
Requires: postgresql-server
Requires: python
Requires: python-devel
Requires: postgresql-server
Requires: python
Requires: python-devel
-%if ("%{distro}" == "Fedora" && "%{release}" >= "5") || ("%{distro}" == "CentOS" && "%{release}" >= "5")
+%if ("%{distroname}" == "Fedora" && "%{distrorelease}" >= "5") || ("%{distroname}" == "CentOS" && "%{distrorelease}" >= "5")
Requires: python-pycurl
Requires: python-psycopg2
%endif
Requires: python-pycurl
Requires: python-psycopg2
%endif
+if [ -h "/sbin/new-kernel-pkg" ] ; then
+ filename=$(readlink -f /sbin/new-kernel-pkg)
+ if [ "$filename" == "/sbin/true"] ; then
+ echo "WARNING: /sbin/new-kernel-pkg symlinked to /sbin/true"
+ echo "\tmost likely /etc/rpm/macros has /sbin/new-kernel-pkg declared in _netsharedpath."
+ echo "\tPlease remove /sbin/new-kernel-pkg from _netsharedpath and reintall mkinitrd."
+ exit 1
+ fi
+fi
+
+# add a "build" user to the system
builduser=$(grep "^build" /etc/passwd | wc -l)
if [ $builduser -eq 0 ] ; then
groupadd -o -g $gid build;
useradd -o -c 'Automated Build' -u $uid -g $gid -n -M -s /bin/bash build;
fi
builduser=$(grep "^build" /etc/passwd | wc -l)
if [ $builduser -eq 0 ] ; then
groupadd -o -g $gid build;
useradd -o -c 'Automated Build' -u $uid -g $gid -n -M -s /bin/bash build;
fi
+# myplc-devel on a shared box requires that we set up max loop devices
+for i in $(seq 0 255) ; do
+ mknod -m 640 /dev/loop$i b 7 $i
+done
+
# Allow build user to build certain RPMs as root
buildsudo=$(grep "^build.*ALL=(ALL).*NOPASSWD:.*ALL" /etc/sudoers | wc -l)
if [ $buildsudo -eq 0 ] ; then
echo "build ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
fi
# Allow build user to build certain RPMs as root
buildsudo=$(grep "^build.*ALL=(ALL).*NOPASSWD:.*ALL" /etc/sudoers | wc -l)
if [ $buildsudo -eq 0 ] ; then
echo "build ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
fi
+# Don't requiretty for sudo. Needed to build myplc from cron job
+ttysudo=$(grep "^Defaults.*requiretty" /etc/sudoers | wc -l)
+if [ $ttysudo -eq 1 ] ; then
+ sed -i 's,^Defaults.*requiretty,#Defaults requiretty,' /etc/sudoers
+fi
%preun
# 0 = erase, 1 = upgrade
%preun
# 0 = erase, 1 = upgrade