IGNOREPATH=/etc:/home:/dev:/boot:/root:/tmp:/usr/local:/mnt:/usr/src
STRIPLIB=y
STRIPBIN=y

VERSION=4.0.3
PROGNAME="shadow 4.0.3"
DESC="\
shadow (shadow password suite)                                         \n\
                                                                       \n\
This set of login related programs utilizes an alternate, non-readable \n\
file to contain the actual encrypted passwords.  This is presumed to   \n\
increase system security by increasing the difficulty with which       \n\
system crackers obtain encrypted passwords.  It was written by         \n\
Julianne Frances Haugh and the Linux port is maintained by Tomasz      \n\
Kloczko.                                                               \n\
                                                                       \n\
This package provides 'login', which is needed to log into the system."

BUILD=1
MAINTAINER="Mark Post <mark.post@eds.com>"
SOURCE=ftp://ftp.pld.org.pl/software/shadow
PKGNAME=shadow-$VERSION-s390-$BUILD
TAG=ADD

compile() {
   tar -yxvf $CWD/shadow-$VERSION.tar.bz2
   cd shadow-$VERSION/

   zcat $CWD/shadow.shadowconfig.diff.gz | patch -p1 --verbose --backup
   zcat $CWD/shadow.newgrp.nopam.gz | patch -p0 --verbose --backup
   zcat $CWD/shadow.login.defs.diff.gz | patch -p0 --verbose --backup
   zcat $CWD/shadow.newgrp.getlogin.gz | patch -p1 --verbose --backup

   ./configure --prefix=/usr \
               --disable-shared \
               --disable-desrpc \
               --mandir=/usr/man \
               --build=s390-slackware-linux \
               --host=s390-slackware-linux \
               --target=s390-slackware-linux
   make 
}

install() {
   cd $TMP/shadow-$VERSION/

   make install DESTDIR=/package-shadow # prefix=/package-shadow/usr exec_prefix=/package-shadow

   # Put in additional man pages that Pat uses, but aren't done automatically
   ( cd man
     /usr/bin/ginstall -c -m 644 dpasswd.8 /package-shadow/usr/man/man8/dpasswd.8
     /usr/bin/ginstall -c -m 644 groups.1 /package-shadow/usr/man/man1/groups.1
     /usr/bin/ginstall -c -m 644 id.1 /package-shadow/usr/man/man1/id.1
     /usr/bin/ginstall -c -m 644 pw_auth.3 /package-shadow/usr/man/man3/pw_auth.3
     /usr/bin/ginstall -c -m 644 pwauth.8 /package-shadow/usr/man/man8/pwauth.8
     /usr/bin/ginstall -c -m 644 shadow.3 /package-shadow/usr/man/man3/shadow.3
     /usr/bin/ginstall -c -m 644 shadowconfig.8 /package-shadow/usr/man/man8/shadowconfig.8
     /usr/bin/ginstall -c -m 644 sulogin.8  /package-shadow/usr/man/man8/sulogin.8
   )
   ( cd man/fr
     mkdir -p /package-shadow/usr/man/fr/man1
     /usr/bin/ginstall -c -m 644 groups.1 /package-shadow/usr/man/fr/man1/groups.1
   )
   ( cd man/hu
     mkdir -p /package-shadow/usr/man/hu/man1
     /usr/bin/ginstall -c -m 644 groups.1 /package-shadow/usr/man/hu/man1/groups.1
   )
   ( cd man/ja
     mkdir -p /package-shadow/usr/man/ja/man3/
     /usr/bin/ginstall -c -m 644 dpasswd.8 /package-shadow/usr/man/ja/man8/dpasswd.8
     /usr/bin/ginstall -c -m 644 groups.1 /package-shadow/usr/man/ja/man1/groups.1
     /usr/bin/ginstall -c -m 644 id.1 /package-shadow/usr/man/ja/man1/id.1
     /usr/bin/ginstall -c -m 644 pw_auth.3 /package-shadow/usr/man/ja/man3/pw_auth.3
     /usr/bin/ginstall -c -m 644 pwauth.8 /package-shadow/usr/man/ja/man8/pwauth.8
     /usr/bin/ginstall -c -m 644 shadow.3 /package-shadow/usr/man/ja/man3/shadow.3
     /usr/bin/ginstall -c -m 644 shadowconfig.8 /package-shadow/usr/man/ja/man8/shadowconfig.8
     /usr/bin/ginstall -c -m 644 sulogin.8  /package-shadow/usr/man/ja/man8/sulogin.8
   )
   ( cd man/ko
     mkdir -p /package-shadow/usr/man/ko/man1
     /usr/bin/ginstall -c -m 644 groups.1 /package-shadow/usr/man/ko/man1/groups.1
   )
   ( cd man/pl
     mkdir -p /package-shadow/usr/man/pl/man3/
     /usr/bin/ginstall -c -m 644 dpasswd.8 /package-shadow/usr/man/pl/man8/dpasswd.8
     /usr/bin/ginstall -c -m 644 groups.1 /package-shadow/usr/man/pl/man1/groups.1
     /usr/bin/ginstall -c -m 644 id.1 /package-shadow/usr/man/pl/man1/id.1
     /usr/bin/ginstall -c -m 644 pw_auth.3 /package-shadow/usr/man/pl/man3/pw_auth.3
     /usr/bin/ginstall -c -m 644 pwauth.8 /package-shadow/usr/man/pl/man8/pwauth.8
     /usr/bin/ginstall -c -m 644 shadow.3 /package-shadow/usr/man/pl/man3/shadow.3
     /usr/bin/ginstall -c -m 644 shadowconfig.8 /package-shadow/usr/man/pl/man8/shadowconfig.8
     /usr/bin/ginstall -c -m 644 sulogin.8  /package-shadow/usr/man/pl/man8/sulogin.8
   )
   ( cd /package-shadow/usr/man
     find -name adduser.8 -o -name d_passwd.5 -o -name expiry.1 \
          -o -name getspnam.3 -o -name grpconv.8 -o -name grpunconv.8 \
          -o -name pwunconv.8 -o -name sg.1 -o -name vigr.8 | xargs rm
   )

   # We use the groups command from the sh-utils package
   rm /package-shadow/bin/groups

   mkdir -p /package-shadow/sbin/
   cp -p src/sulogin /package-shadow/sbin/

   ( cd /package-shadow/bin
     ln -sf /sbin/sulogin sulogin
     rm sg vipw
   )

   ( cd /package-shadow/usr/bin
     rm -rf sg ; ln -sf newgrp sg 
   )

   ( cd /package-shadow/usr/sbin
     rm -rf vigr ; ln -sf vipw vigr
   )


   cp -a debian/shadowconfig.sh /package-shadow/usr/sbin/shadowconfig

   mkdir -p /package-shadow/etc/
   cp -a etc/login.defs.linux /package-shadow/etc/login.defs.new
   cp -a etc/login.access /package-shadow/etc/login.access.new

   cp -a $CWD/adduser /package-shadow/usr/sbin/adduser

   ( cd /package-shadow/usr/
     mv bin/faillog bin/lastlog sbin/
   )

   rm -rf /package-shadow/lib

   mkdir -p /package-shadow/usr/doc/shadow-$VERSION
   cp -a ABOUT-NLS ChangeLog NEWS README TODO doc/* \
       /package-shadow/usr/doc/shadow-$VERSION

   ( cd /package-shadow/usr/man
     for dir in man? */man*/; do
       ( cd $dir
         rm -f *.gz
         gzip -9 *
       )
     done
   )

   ( cd /package-shadow/usr/man/man1
     rm -rf sg.1.gz ; ln -sf newgrp.1.gz sg.1.gz
   )

   ( cd /package-shadow/usr/man/man8
     rm -rf pwunconv.8.gz ; ln -sf pwconv.8.gz pwunconv.8.gz
     rm -rf vigr.8.gz ; ln -sf vipw.8.gz vigr.8.gz
   )

   mkdir -p /package-shadow/var/log
   touch /package-shadow/var/log/faillog.new
}

attributes() {
   chown -R root.bin $PKG/package-shadow/bin \
                     $PKG/package-shadow/sbin \
                     $PKG/package-shadow/usr/bin \
                     $PKG/package-shadow/usr/sbin

   chmod 755 $PKG/package-shadow/usr/sbin/adduser \
             $PKG/package-shadow/usr/sbin/shadowconfig

   chmod 4711 $PKG/package-shadow/bin/su \
              $PKG/package-shadow/usr/bin/*

   chmod 640 $PKG/package-shadow/var/log/faillog.new
}

special() {
   cd $PKG
   mv package-shadow/* ./
   rmdir package-shadow

   cd $CTL
   cat $CWD/slack-desc > slack-desc

   sed -e 's%package-shadow/%%g' doinst.sh > doinst.sh.new
   cat doinst.sh.new > doinst.sh
   rm doinst.sh.new

   cat $CWD/config.sh >> doinst.sh
   cat << EOF >> doinst.sh

config etc/login.access.new
config etc/login.defs.new
config var/log/faillog.new
rm -f var/log/faillog.new

if [ -r sbin/adduser ]; then
  rm -f sbin/adduser
fi
EOF
}

