diff options
Diffstat (limited to 'trunk')
| -rw-r--r-- | trunk/mkbuild/kde4.mkSlackBuild | 55 | ||||
| -rw-r--r-- | trunk/mkbuild/perl.mkSlackBuild | 75 | 
2 files changed, 130 insertions, 0 deletions
| diff --git a/trunk/mkbuild/kde4.mkSlackBuild b/trunk/mkbuild/kde4.mkSlackBuild index 9f42b88..f432ce9 100644 --- a/trunk/mkbuild/kde4.mkSlackBuild +++ b/trunk/mkbuild/kde4.mkSlackBuild @@ -91,6 +91,7 @@ ERROR_WGET=31;      ERROR_MAKE=32;      ERROR_INSTALL=33  ERROR_MD5=34;       ERROR_CONF=35;      ERROR_HELP=36  ERROR_TAR=37;       ERROR_MKPKG=38;     ERROR_GPG=39  ERROR_PATCH=40;     ERROR_VCS=41;       ERROR_MKDIR=42 +ERROR_MANIFEST=43;  </error_codes>  <start_structure> off @@ -251,6 +252,60 @@ if echo [[PATCH URLS]] | grep -q -v "PATCH URLS"; then  fi  </patch_source> +<manifest_check> off +# Check Manifest file +if [ -e "$CWD/Manifest" ]; then + +  MANIFEST_LINES="`grep -E -v "^(MKBUILD|SLACKBUILD)" $CWD/Manifest | wc -l`" + +  for ((MANIFEST_COUNT=1; MANIFEST_COUNT <= $MANIFEST_LINES; MANIFEST_COUNT++)); do + +    MANIFEST_LINE="`head -n $MANIFEST_COUNT $CWD/Manifest | tail -n 1`" +    MANIFEST_FILE="`echo $MANIFEST_LINE | awk '{ print $2 }'`" + +    if [ -e "$SRC_DIR/$MANIFEST_FILE" ]; then +      MANIFEST_FILE="$SRC_DIR/$MANIFEST_FILE" +    else +      MANIFEST_FILE="`find $CWD -name $MANIFEST_FILE`" +    fi + +    if [ ! -e "$MANIFEST_FILE" ] || [ -d "$MANIFEST_FILE" ]; then +      continue +    fi + +    echo "Checking Manifest for $MANIFEST_FILE integrity..." + +    SIZE_SRC="`wc -c $MANIFEST_FILE | awk '{ print $1 }'`" +    SIZE_MANIFEST="`echo $MANIFEST_LINE | awk '{ print $3 }'`" + +    # Check source code size +    if [ "$SIZE_SRC" != "$SIZE_MANIFEST" ]; then +      echo "SIZE Manifest: $SIZE_MANIFEST; SIZE $SRC: $SIZE_SRC" +      exit $ERROR_MANIFEST +    fi + +    # Check source code integrity +    for ALGO in md5 sha1 sha256 sha512 rmd160; do +      if [ $ALGO = "rmd160" ]; then +        ALGO_SRC="`openssl rmd160 $MANIFEST_FILE | awk '{ print $2 }'`" +      else +        ALGO_SRC="`"$ALGO"sum $MANIFEST_FILE | awk '{ print $1 }'`" +      fi +      ALGO="`echo $ALGO | tr '[:lower:]' '[:upper:]'`" +      ALGO_MANIFEST=$(echo $MANIFEST_LINE | sed 's/.* $ALGO //' | awk '{ print $1 }') +      if [ "$ALGO_SRC" != "$ALGO_MANIFEST" ]; then +        echo "$ALGO Manifest: $ALGO_MANIFEST; $ALGO $SRC: $ALGO_SRC" +        exit $ERROR_MANIFEST +      fi +    done + +  done + +else +  exit $ERROR_MANIFEST +fi +</manifest_check> +  <files_permissions> off  # Set permissions  chown -R root:root . diff --git a/trunk/mkbuild/perl.mkSlackBuild b/trunk/mkbuild/perl.mkSlackBuild index 165dd40..1862b25 100644 --- a/trunk/mkbuild/perl.mkSlackBuild +++ b/trunk/mkbuild/perl.mkSlackBuild @@ -81,6 +81,7 @@ ERROR_WGET=31;      ERROR_MAKE=32;      ERROR_INSTALL=33  ERROR_MD5=34;       ERROR_CONF=35;      ERROR_HELP=36  ERROR_TAR=37;       ERROR_MKPKG=38;     ERROR_GPG=39  ERROR_PATCH=40;     ERROR_VCS=41;       ERROR_MKDIR=42 +ERROR_MANIFEST=43;  </error_codes>  <start_structure> off @@ -188,10 +189,84 @@ for patch in $patches; do      patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$CWD/$patch" || exit $ERROR_PATCH    elif [ -f "$CWD/patches/$patch" ]; then      patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$CWD/patches/$patch" || exit $ERROR_PATCH +  elif [ -f "$CWD/$patch.gz" ]; then +    gzip -dc "$CWD/$patch.gz" | patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] || exit $ERROR_PATCH +  elif [ -f "$CWD/patches/$patch.gz" ]; then +    gzip -dc "$CWD/patches/$patch.gz" | patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] || exit $ERROR_PATCH    fi  done + +if echo [[PATCH URLS]] | grep -q -v "PATCH URLS"; then +  for patch_url in [[PATCH URLS]]; do +    patch="`basename $patch_url`" +    if [ ! -s "$SRC_DIR/$patch" ]; then +      wget "$patch_url" -O "$SRC_DIR/$patch" || exit $ERROR_WGET +    fi +    if [ "`basename $patch .gz`" != "$patch" ]; then +      gzip -dc $SRC_DIR/$patch | patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] || exit $ERROR_PATCH +    elif [ "`basename $patch .bz2`" != "$patch" ]; then +      bzip2 -dc $SRC_DIR/$patch | patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] || exit $ERROR_PATCH +    else +      patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$SRC_DIR/$patch" || exit $ERROR_PATCH +    fi +  done +fi  </patch_source> +<manifest_check> off +# Check Manifest file +if [ -e "$CWD/Manifest" ]; then + +  MANIFEST_LINES="`grep -E -v "^(MKBUILD|SLACKBUILD)" $CWD/Manifest | wc -l`" + +  for ((MANIFEST_COUNT=1; MANIFEST_COUNT <= $MANIFEST_LINES; MANIFEST_COUNT++)); do + +    MANIFEST_LINE="`head -n $MANIFEST_COUNT $CWD/Manifest | tail -n 1`" +    MANIFEST_FILE="`echo $MANIFEST_LINE | awk '{ print $2 }'`" + +    if [ -e "$SRC_DIR/$MANIFEST_FILE" ]; then +      MANIFEST_FILE="$SRC_DIR/$MANIFEST_FILE" +    else +      MANIFEST_FILE="`find $CWD -name $MANIFEST_FILE`" +    fi + +    if [ ! -e "$MANIFEST_FILE" ] || [ -d "$MANIFEST_FILE" ]; then +      continue +    fi + +    echo "Checking Manifest for $MANIFEST_FILE integrity..." + +    SIZE_SRC="`wc -c $MANIFEST_FILE | awk '{ print $1 }'`" +    SIZE_MANIFEST="`echo $MANIFEST_LINE | awk '{ print $3 }'`" + +    # Check source code size +    if [ "$SIZE_SRC" != "$SIZE_MANIFEST" ]; then +      echo "SIZE Manifest: $SIZE_MANIFEST; SIZE $SRC: $SIZE_SRC" +      exit $ERROR_MANIFEST +    fi + +    # Check source code integrity +    for ALGO in md5 sha1 sha256 sha512 rmd160; do +      if [ $ALGO = "rmd160" ]; then +        ALGO_SRC="`openssl rmd160 $MANIFEST_FILE | awk '{ print $2 }'`" +      else +        ALGO_SRC="`"$ALGO"sum $MANIFEST_FILE | awk '{ print $1 }'`" +      fi +      ALGO="`echo $ALGO | tr '[:lower:]' '[:upper:]'`" +      ALGO_MANIFEST=$(echo $MANIFEST_LINE | sed 's/.* $ALGO //' | awk '{ print $1 }') +      if [ "$ALGO_SRC" != "$ALGO_MANIFEST" ]; then +        echo "$ALGO Manifest: $ALGO_MANIFEST; $ALGO $SRC: $ALGO_SRC" +        exit $ERROR_MANIFEST +      fi +    done + +  done + +else +  exit $ERROR_MANIFEST +fi +</manifest_check> +  <configure> off  # Configure  perl Makefile.PL || exit $ERROR_CONF | 
