Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:mbhangui
indimail-auth
_service:extract_file:PKGBUILD
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:extract_file:PKGBUILD of Package indimail-auth
# Maintainer: Manvendra Bhangui <indimail-auth@indimail.org> pkgname=indimail-auth pkgver=1.0.1 pkgrel=1.1 pkgdesc="Name Service Swith and PAM services for IndiMail" arch=('i686' 'x86_64') url="https://github.com/mbhangui/indimail-virtualdomains" license=('GPL3') groups=('base-devel') depends=('coreutils' 'procps' 'binutils' 'mariadb-libs') makedepends=('findutils' 'sed' 'pam' 'libqmail' 'gzip') conflicts=('indimail<3.2') source=('pam-multi-1.3.0.tar.gz' 'nssd-1.4.0.tar.gz' 'perm_list.auth' "${pkgname}.changes") sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP') provides=('indimail-auth' 'pam-multi=1.3.0' 'nssd=1.4.0') options=('strip' '!libtool' 'docs' 'staticlibs' 'zipman' 'debug') _sysconfdir=/etc/indimail _myconfdir=$(echo ${_sysconfdir} | cut -c2-) _pamconfdir=$(echo /etc/pam.d | cut -c2-) backup=(${_pamconfdir}/{'pam-multi','pop3','imap'} ${_myconfdir}/${pkgname}-release) install=archpkg.install changelog=${pkgname}.changes _prefix=/usr _libexecdir=/usr/libexec/indimail _libdir=/usr/lib _shareddir=/usr/share/indimail _mandir=/usr/share/man _servicedir=/service _logdir=/var/log/svc _defaultDomain=indimail.org _build_on_obs=1 _mysqlPrefix=/usr _mysqlSocket=/var/run/mysqld/mysqld.sock _pam_moduledir=/usr/lib/security _pam_confdir=/etc/pam.d build() { if [ -d /run ] ; then nssd_sock="/run/indimail/nssd.sock" elif [ -d /var/run ] ; then nssd_sock="/var/run/indimail/nssd.sock" else nssd_sock="/tmp/nssd.sock" fi if [ ${_build_on_obs} -eq 1 ] ; then default_domain=${_defaultDomain} else if [ -x /usr/bin/uname -o -x /bin/uname ] ; then default_domain=$(echo $([ -n "$HOSTNAME" ] && echo "$HOSTNAME" || uname -n) | sed 's/^\([^\.]*\)\.\([^\.]*\)\./\2\./') else default_domain=$([ -n "$HOSTNAME" ] && echo "$HOSTNAME" | sed 's/^\([^\.]*\)\.\([^\.]*\)\./\2\./' || echo ${_defaultDomain}) fi fi cd "$srcdir/nssd-1.4.0" ./configure --prefix=${_prefix} --libexecdir=${_libexecdir} --sysconfdir=${_sysconfdir} \ --mandir=${_mandir} --libdir=${_libdir} --datarootdir=${_shareddir} \ --sbindir=${_prefix}/bin --enable-nssd-socket=${nssd_sock} \ --enable-nssd-config-path=${_sysconfdir}/nssd.conf \ --enable-mysqlprefix=${_mysqlPrefix} \ --enable-dlload-mysql=yes --enable-default-domain=${default_domain} make cd "$srcdir/pam-multi-1.3.0" ./configure --prefix=${_prefix} --datarootdir=${_shareddir} \ --mandir=${_mandir} --enable-moduledir=${_pam_moduledir} \ --sbindir=${_prefix}/bin --enable-controldir=${_sysconfdir}/control \ --enable-pamconfdir=${_pam_confdir} \ --enable-mysqlprefix=${_mysqlPrefix} \ --enable-dlload-mysql=yes --enable-default-domain=${default_domain} make } package() { depends=('indimail-mta>2.6') cd "$srcdir/nssd-1.4.0" mkdir -p ${pkgdir}${_sysconfdir} mkdir -p ${pkgdir}${_libexecdir} mkdir -p ${pkgdir}${_shareddir}/doc chmod 2755 ${pkgdir}${_sysconfdir} chmod 0555 ${pkgdir}/${_libexecdir} ${pkgdir}${_shareddir} ${pkgdir}${_shareddir}/doc make DESTDIR=${pkgdir} install cd "$srcdir/pam-multi-1.3.0" make DESTDIR=${pkgdir} install cd $srcdir ( echo "NAME=${pkgname}" echo "Description=\"IndiMail Authentication Package\"" echo "AUTH_version=${pkgver}-${pkgrel}" echo "ID=${pkgname}" echo "HOME_URL=\"https://github.com/mbhangui/indimail-virtualdomains\"" echo "PACKAGE_BUGREPORT=\"'Manvendra Bhangui <indimail-auth@indimail.org>'\"" ) > ${pkgname}-release install -D -m 0644 ${pkgname}.changes "$pkgdir"${_shareddir}/doc/${pkgname}.changes install -D -m 0644 ${pkgname}-release "$pkgdir"${_sysconfdir}/${pkgname}-release install -D -m 0644 perm_list.auth "${pkgdir}"${_sysconfdir}/perm_list.auth } #### INSTALL SCRIPTS #### _prefix=/usr _sysconfdir=/etc/indimail _servicedir=/service _logdir=/var/log/svc _mysqlSocket=/var/run/mysqld/mysqld.sock fixperms() { if [ $# -eq 3 ] ; then # directory lin=$2 file=$3 if [ ! -d $file ] ; then return 0 fi elif [ $# = 2 ] ; then # file lin=$1 file=$2 if [ ! -f $file ] ; then return 0 fi fi perm=`echo $lin|cut -d\( -f2 | cut -d, -f1` perm_f1=`echo $perm | cut -c1` own=`echo $lin|cut -d\( -f2 | cut -d, -f2` grp=`echo $lin|cut -d\( -f2 | cut -d, -f3|cut -d\) -f1` if [ -f $file ] ; then if [ $perm_f1 -eq 0 ] ; then # perm_f1 is 4755, 0644 /bin/chown $own:$grp $file /bin/chmod $perm $file else echo $file /bin/chown $own:$grp $file /bin/chmod $perm $file fi elif [ -d $file ] ; then /bin/chown $own:$grp $file /bin/chmod $perm $file fi } pre_install() { if [ -d /run ] ; then rundir=/run/svscan elif [ -d /var/run ] ; then rundir=/var/run/svscan else rundir=${_servicedir} fi ${_prefix}/bin/svstat ${_servicedir}/pwdlookup >/dev/null 2>&1 if [ $? -eq 0 ] ; then mkdir -p ${rundir}/pwdlookup touch ${rundir}/pwdlookup/.down ${_prefix}/bin/svc -d ${_servicedir}/pwdlookup fi } post_install() { if [ -f ${_sysconfdir}/perm_list.auth ] ; then echo "Fixing Permissions" ( /bin/grep -v "^#" ${_sysconfdir}/perm_list.auth | while read line do if [ " $line" = " " ] ; then continue fi fixperms $line done ) > ${_sysconfdir}/indimail-access-stat.override fi echo "Doing Post Install" echo "" echo " 1. Configure ${_logdir} for multilog" echo " 2. Configure ${_servicedir}" echo " 3. Configure nssd service" echo " 4. Configure pam-multi as alternative for SMTP auth" echo "" # Recreate ld.so links and cache if [ "${_prefix}" != "/usr" ] ; then if [ -d ${confdir}/ld.so.conf.d ] ; then echo ${_prefix}/lib > ${confdir}/ld.so.conf.d/indimail-auth-${HOSTTYPE}.conf fi /sbin/ldconfig fi mkdir -p ${_logdir}/pwdlookup chown -R qmaill:nofiles ${_logdir}/pwdlookup if [ -d /run ] ; then nssd_sock="/run/indimail/nssd.sock" mkdir -p /run/indimail elif [ -d /var/run ] ; then nssd_sock="/var/run/indimail/nssd.sock" mkdir -p /var/run/indimail else nssd_sock="/tmp/nssd.sock" fi #nssd ${_prefix}/sbin/svctool --pwdlookup=${nssd_sock} --threads=5 --timeout=-1 \ --mysqlhost=localhost --mysqluser=indimail \ --mysqlpass=ssh-1.5- --mysqlsocket=${_mysqlSocket} --servicedir=${_servicedir} # turn off automatic refresh for services during first time installation ${_prefix}/sbin/svctool --servicedir=${_servicedir} --autorefresh="0 ${_servicedir}/pwdlookup" # save variables ${_prefix}/sbin/svctool --servicedir=${_servicedir} --service-name=pwdlookup \ --export-variables=${_servicedir}/pwdlookup/variables/.variables --force #pam-multi ${_prefix}/sbin/svctool --config=add-alt } post_upgrade() { if [ -d /run ] ; then rundir=/run/svscan elif [ -d /var/run ] ; then rundir=/var/run/svscan else rundir=${_servicedir} fi if [ "${_prefix}" != "/usr" ] ; then /sbin/ldconfig fi # we are doing upgrade if [ -f ${_sysconfdir}/perm_list.auth ] ; then echo "Fixing Permissions" ( /bin/grep -v "^#" ${_sysconfdir}/perm_list.auth | while read line do if [ " $line" = " " ] ; then continue fi fixperms $line done ) > ${_sysconfdir}/indimail-access-stat.override fi ${_prefix}/sbin/svctool --servicedir=${_servicedir} --refreshsvc="${_servicedir}/pwdlookup" ${_prefix}/bin/svok ${_servicedir}/pwdlookup if [ $? -eq 0 -a -f ${rundir}/pwdlookup/.down ] ; then rm -f ${rundir}/pwdlookup/.down ${_prefix}/bin/svc -u ${_servicedir}/pwdlookup fi } post_remove() { # remove pam module for smtp ${_prefix}/sbin/svctool --config=remove-alt if [ -d ${_servicedir}/pwdlookup -o -L ${_servicedir}/pwdlookup ] ; then touch ${_servicedir}/pwdlookup/down svc -dx ${_servicedir}/pwdlookup fi if [ -d ${_servicedir}/pwdlookup/log -o -L ${_servicedir}/pwdlookup/log ] ; then touch ${_servicedir}/pwdlookup/log/down svc -dx ${_servicedir}/pwdlookup/log fi if [ -d ${_servicedir}/pwdlookup -o -L ${_servicedir}/pwdlookup ] ; then rm -rf ${_servicedir}/pwdlookup fi if [ -h ${_logdir} ] ; then log_dir=`/bin/ls -ld %{_logdir} | /usr/bin/awk '{print $10}'` else log_dir=${_logdir} fi rm -rf ${_log_dir}/pwdlookup rm -f ${_sysconfdir}/nssd.conf if [ "${_prefix}" != "/usr" ] ; then /sbin/ldconfig fi }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor