mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-25 10:03:03 +01:00
5e7435b792
Starting with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL (w/ NULL return) if the salt violates specifications. Additionally, on FIPS-140 enabled Linux systems, DES or MD5 encrypted passwords passed to crypt() fail with EPERM (w/ NULL return). Slackware-current has transitioned to glibc 2.17 and as you might be aware from reading my posts on LQ, I have dedicated time to fixing userland which does not adequately handle crypt() returns given the new behavior. gdm is negatively affected and my attached patch (against gdm 2.20.11) addresses this. This is in anticipation of a new Slackware release but can be applied to the SBo package for Slackware 14.0 since it is backwards compatible and should not affect behavior on glibc 2.15. It would be good if my assertion were tested. [rworkman] Yeah, it seems to work here :-) Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
114 lines
3.2 KiB
Bash
114 lines
3.2 KiB
Bash
#!/bin/sh
|
|
|
|
# Slackbuild Script for GDM
|
|
#
|
|
# Written by James Rich james@chowhouse.com
|
|
#
|
|
# Assumed to be in public domain per our submission guidelines
|
|
# Modified by the SlackBuilds.org project
|
|
# Modified by Frank Caraballo <fecaraballo{at}gmail{dot}com>
|
|
# Maintained by Robby Workman <rworkman@slackbuilds.org>
|
|
|
|
PRGNAM=gdm
|
|
VERSION=${VERSION:-2.20.11}
|
|
BUILD=${BUILD:-5}
|
|
TAG=${TAG:-_SBo}
|
|
|
|
if [ -z "$ARCH" ]; then
|
|
case "$( uname -m )" in
|
|
i?86) ARCH=i486 ;;
|
|
arm*) ARCH=arm ;;
|
|
*) ARCH=$( uname -m ) ;;
|
|
esac
|
|
fi
|
|
|
|
CWD=$(pwd)
|
|
TMP=${TMP:-/tmp/SBo}
|
|
PKG=$TMP/package-$PRGNAM
|
|
OUTPUT=${OUTPUT:-/tmp}
|
|
|
|
if [ "$ARCH" = "i486" ]; then
|
|
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
|
|
LIBDIRSUFFIX=""
|
|
elif [ "$ARCH" = "i686" ]; then
|
|
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
|
LIBDIRSUFFIX=""
|
|
elif [ "$ARCH" = "x86_64" ]; then
|
|
SLKCFLAGS="-O2 -fPIC"
|
|
LIBDIRSUFFIX="64"
|
|
else
|
|
SLKCFLAGS="-O2"
|
|
LIBDIRSUFFIX=""
|
|
|
|
fi
|
|
|
|
set -e
|
|
|
|
rm -rf $PKG
|
|
mkdir -p $TMP $PKG $OUTPUT
|
|
cd $TMP
|
|
rm -rf $PRGNAM-$VERSION
|
|
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
|
|
cd $PRGNAM-$VERSION
|
|
chown -R root:root .
|
|
find . \
|
|
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
|
-exec chmod 755 {} \; -o \
|
|
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
|
-exec chmod 644 {} \;
|
|
|
|
# Don't automatically start ssh-agent -- this is the user's job
|
|
patch -p1 < $CWD/patches/do_not_start_ssh-agent.diff
|
|
|
|
# Fix crypt() usage with glibc-2.17 and later
|
|
patch -p1 < $CWD/patches/gdm-2.20.11-crypt.diff
|
|
|
|
CFLAGS="$SLKCFLAGS" \
|
|
CXXFLAGS="$SLKCFLAGS" \
|
|
./configure \
|
|
--prefix=/usr \
|
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
|
--sysconfdir=/etc/X11 \
|
|
--localstatedir=/var/lib \
|
|
--mandir=/usr/man \
|
|
--docdir=/usr/doc/$PRGNAM-$VERSION \
|
|
--disable-scrollkeeper \
|
|
--enable-console-helper=no \
|
|
--enable-static=no \
|
|
--enable-ipv6=yes \
|
|
--with-dmconfdir=/usr/share/xsessions \
|
|
--build=$ARCH-slackware-linux
|
|
|
|
make SUSPEND_COMMAND=/usr/sbin/pm-suspend
|
|
make SUSPEND_COMMAND=/usr/sbin/pm-suspend install-strip DESTDIR=$PKG
|
|
|
|
# Install some simple session files designed to work with Slackware
|
|
mkdir -p $PKG/usr/share/xsessions
|
|
cp $CWD/sessions/* $PKG/usr/share/xsessions
|
|
chmod 0755 $PKG/usr/share/xsessions/*
|
|
|
|
# Make xfce the default session
|
|
patch -d $PKG -p1 < $CWD/patches/make_xfce_default_session.diff
|
|
|
|
# Let's not clobber the configs
|
|
mv $PKG/etc/X11/gdm/custom.conf $PKG/etc/X11/gdm/custom.conf.new
|
|
mv $PKG/etc/X11/gdm/Xsession $PKG/etc/X11/gdm/Xsession.new
|
|
mv $PKG/etc/X11/gdm/Init/Default $PKG/etc/X11/gdm/Init/Default.new
|
|
mv $PKG/etc/X11/gdm/PreSession/Default $PKG/etc/X11/gdm/PreSession/Default.new
|
|
mv $PKG/etc/X11/gdm/PostSession/Default $PKG/etc/X11/gdm/PostSession/Default.new
|
|
|
|
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
|
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
|
|
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
|
cp -a \
|
|
AUTHORS ChangeLog COPYING INSTALL MAINTAINERS NEWS README* TODO docs/C/* \
|
|
$PKG/usr/doc/$PRGNAM-$VERSION
|
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
|
|
|
mkdir -p $PKG/install
|
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
|
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
|
|
|
cd $PKG
|
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
|