#!/bin/sh
+#
+# Build a binary package using polypkg
+# Usage: mkpkg
+#
+# TODO: add flavors (e.g. LDAP)
IFS=
# Choose configure options by platform.
# We use the same configure options as vendor packages when possible.
case "$platform" in
- centos4*|rhel4*)
+ centos4.*|rhel4.*)
# Note, must indent with tabs, not spaces due to IFS trickery
prefix=/usr
configure_opts="
--with-selinux
--with-passprompt=[sudo] password for %p: "
;;
- centos5*|rhel5*)
+ centos5.*|rhel5.*)
# Note, must indent with tabs, not spaces due to IFS trickery
prefix=/usr
configure_opts="
--with-passprompt=[sudo] password for %p: "
export CFLAGS="$F_PIE" LDFLAGS="-pie"
;;
- sles9*)
+ sles9.*)
prefix=/usr
# SuSE doesn't have /usr/libexec
case "$platform" in
make_opts='docdir=$(datarootdir)/doc/packages/$(PACKAGE_TARNAME)'
;;
- sles10*)
+ sles10.*)
prefix=/usr
# SuSE doesn't have /usr/libexec
case "$platform" in
*) libexec=lib;;
esac
# Note, must indent with tabs, not spaces due to IFS trickery
- # XXX - SuSE uses secure path only for env_reset
+ # XXX - SuSE uses secure path but only for env_reset
configure_opts="
--prefix=$prefix
--libexecdir=$prefix/$libexec/sudo
make_opts='docdir=$(datarootdir)/doc/packages/$(PACKAGE_TARNAME)'
export CFLAGS="$F_PIE" LDFLAGS="-pie"
;;
- sles11*)
+ sles11.*)
prefix=/usr
# SuSE doesn't have /usr/libexec
case "$platform" in
*) libexec=lib;;
esac
# Note, must indent with tabs, not spaces due to IFS trickery
- # XXX - SuSE uses secure path only for env_reset
+ # XXX - SuSE uses secure path but only for env_reset
configure_opts="
--prefix=$prefix
--libexecdir=$prefix/$libexec/sudo
make_opts='docdir=$(datarootdir)/doc/packages/$(PACKAGE_TARNAME)'
export CFLAGS="$F_PIE" LDFLAGS="-pie"
;;
- deb4*)
+ deb[456].*)
# XXX - create sudo group like debian does
- # XXX - newer deb moved timestamps to /var/lib/sudo
+ # debian now has a %sudo entry in its sample sudoers
+ # XXX - debian has separate ldap and non-ldap packages
# Note, must indent with tabs, not spaces due to IFS trickery
configure_opts="
--prefix=/usr
- --with-ldap
--with-all-insults
--with-exempt=sudo
--with-pam
+ --with-ldap
--with-fqdn
--with-logging=syslog
--with-logfac=authpriv
--with-editor=/usr/bin/editor
--with-timeout=15
--with-password-timeout=0
+ --with-passprompt=[sudo] password for %p:
+ --with-timedir=/var/lib/sudo
--disable-root-mailer
--disable-setresuid
--with-sendmail=/usr/sbin/sendmail
+ --with-ldap-conf-file=/etc/ldap/ldap.conf
--mandir=/usr/share/man
--libexecdir=/usr/lib/sudo
--with-secure-path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
# Choose the correct PAM file by distro
case "$pp_rpm_distro" in
- centos4*|rhel4*)
+ centos4.*|rhel4.*)
mkdir -p ${pp_destdir}/etc/pam.d
cat > ${pp_destdir}/etc/pam.d/sudo <<-EOF
#%PAM-1.0
session required pam_limits.so
EOF
;;
- centos5*|rhel5*)
+ centos5.*|rhel5.*)
mkdir -p ${pp_destdir}/etc/pam.d
cat > ${pp_destdir}/etc/pam.d/sudo <<-EOF
#%PAM-1.0
session required pam_limits.so
EOF
;;
- sles9*)
+ sles9.*)
mkdir -p ${pp_destdir}/etc/pam.d
cat > ${pp_destdir}/etc/pam.d/sudo <<-EOF
#%PAM-1.0
session required pam_limits.so
EOF
;;
- sles10*|sles11*)
+ sles10.*|sles11.*)
mkdir -p ${pp_destdir}/etc/pam.d
cat > ${pp_destdir}/etc/pam.d/sudo <<-EOF
#%PAM-1.0
%set [deb]
# Choose the correct PAM file by distro
- # XXX - missing deb5 and others
case "$pp_deb_distro" in
- deb4.*)
+ deb[456].*)
mkdir -p ${pp_destdir}/etc/pam.d
cat > ${pp_destdir}/etc/pam.d/sudo <<-EOF
#%PAM-1.0
+
@include common-auth
@include common-account
+
+ session required pam_permit.so
+ session required pam_limits.so
EOF
;;
esac