default_pre_build  &&

# seems perl script scripts/test-installation.pl is broken now
sed -i 's:CC="$(CC)" $(PERL) scripts/test-installation.pl $(common-objpfx)::' $SOURCE_DIRECTORY/Makefile &&

if  [  "$GLIBC_NPTL"  =  "y"  ];  then
  cd      $SOURCE_DIRECTORY                  &&
  #
  # Unpack glibc-kernel-headers
  #
  #
  # Set GLIBC_HEADERS_DIR for use later
  #
  persistent_add  GLIBC_HEADERS_DIR                        &&

  case ${HEADERS_VERSION} in
    3.[1-9]*)
            GLIBC_HEADERS_DIR=$SOURCE_DIRECTORY/${SOURCE3/.tar.xz}
            message "${MESSAGE_COLOR}xz -d $SOURCE_CACHE/$SOURCE3${DEFAULT_COLOR}"
            xz -d -k $SOURCE_CACHE/$SOURCE3
            SOURCE3_ORI=$SOURCE3
            SOURCE3=${SOURCE3/.xz}
            unpack_file 3 || return 1
            message "${MESSAGE_COLOR}rm $SOURCE_CACHE/$SOURCE3${DEFAULT_COLOR}"
            rm $SOURCE_CACHE/$SOURCE3
            SOURCE3=$SOURCE3_ORI
            ;;
           *)
            GLIBC_HEADERS_DIR=$SOURCE_DIRECTORY/${SOURCE3/.tar.bz2}
            unpack_file 3 || return 1
            ;;
  esac
    cd  $GLIBC_HEADERS_DIR &&
    if [ ! -z $SOURCE7 ]; then
      if [[ ${HEADERS_VERSION} > 3.0.4 ]]; then
        message "${MESSAGE_COLOR}xz -d $SOURCE_CACHE/$SOURCE7${DEFAULT_COLOR}"
        xz -d -k ${SOURCE_CACHE}/$SOURCE7 &&
        SOURCE7_ORI=${SOURCE7}
        SOURCE7=${SOURCE7/.xz}
        echo $SOURCE7_GPG
        verify_file 7 || return 1
        message "${MESSAGE_COLOR}rm $SOURCE_CACHE/$SOURCE7${DEFAULT_COLOR}"
        rm $SOURCE_CACHE/$SOURCE7
        SOURCE7=${SOURCE7_ORI}
      else
        verify_file 7 || return 1
      fi
      xzcat ${SOURCE_CACHE}/$SOURCE7 > ${SOURCE7/.xz}
      message "${MESSAGE_COLOR}Patching ${!patch}${DEFAULT_COLOR}" &&
      patch -p1 < ${SOURCE7/.xz} &&
      if [[ $? != 0 ]]; then
        message "${PROBLEM_COLOR}Patch ${!patch} failed${DEFAULT_COLOR}" &&
        return 1
      fi
    fi &&
    make mrproper
else
  cd      $SOURCE_DIRECTORY                         &&
  #
  # Now unpack the rest of glibc fixes in the normal location
  #
  unpack_file 3                       &&
  #
  # Unpack glibc-kernel-headers
  #
  #
  # Set GLIBC_HEADERS_DIR for use later
  #
  persistent_add  GLIBC_HEADERS_DIR                   &&
  GLIBC_HEADERS_DIR=$SOURCE_DIRECTORY/kernel-headers  &&
  mkdir  -p  $GLIBC_HEADERS_DIR/usr/include         &&
  cd  $GLIBC_HEADERS_DIR/usr/include                &&
  unpack_file 5
fi  &&

#
# Remove kernel DRM headers
# Fixes Bug #15547
#
sed -i '/^header-y += drm\//d' $GLIBC_HEADERS_DIR/include/Kbuild &&
rm -rf $GLIBC_HEADERS_DIR/include/drm &&



#
# Now fixup the normal glibc
#
cd  $SOURCE_DIRECTORY                           &&
patch -p0 < $SPELL_DIRECTORY/Makefile.patch     &&
# no idea why or how this is missing from configure
patch -p0 < $SPELL_DIRECTORY/as_fn_executable_p.patch &&

patch -p1 < $SPELL_DIRECTORY/00_all_0005-reload-etc-resolv.conf-when-it-has-changed.patch    &&
patch -p1 < $SPELL_DIRECTORY/00_all_0007-rtld-do-not-ignore-arch-specific-CFLAGS.patch       &&
patch -p1 < $SPELL_DIRECTORY/glibc-2.20-fhs-1.patch                                          &&

# disabled libgd detection/building memusagestat for now until a better
# fix has been found, bug #8277
#sedit  's/LIBGD=yes/LIBGD=no/'  $SOURCE_DIRECTORY/configure  &&

#
# Create the build directory
#
mk_source_dir  $SOURCE_DIRECTORY.bld &&

# fix #11832 - linking in /tmp doesn't work with grsecurity so do it elsewhere
local test_path=$SOURCE_DIRECTORY.bld/test-installation &&
mkdir $test_path &&
sed -i "s,/tmp,$test_path,g" scripts/test-installation.pl &&
sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile
