]> gitweb.fluxo.info Git - simplepkg.git/commitdiff
createpkg update
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Wed, 18 Oct 2006 23:43:24 +0000 (23:43 +0000)
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Wed, 18 Oct 2006 23:43:24 +0000 (23:43 +0000)
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@18 04377dda-e619-0410-9926-eae83683ac58

conf/repos.conf.new
simplepkg.SlackBuild
src/createpkg

index 274e1c7b42b4d274c5988e7db86fb170a570d16d..34abc697b18ab9b24925aea20269c194eee5afdc 100644 (file)
@@ -1,4 +1,6 @@
 # repositories definitions
+
+# 10.2
 #ROOT-i386="http://slackware.cs.utah.edu/"
 ROOT-i386="http://slack.sarava.org/slackware/"
 ROOT-x86_64="http://ftp.heanet.ie/pub/slamd64/"
index f218c82237239d45610f8a815fffb27b87768087..bb087f65ee89921bd89c4da758be3d601c904cba 100755 (executable)
@@ -5,8 +5,8 @@
 
 PACKAGE="simplepkg"
 PACK_DIR="package-$PACKAGE"
-BUILD="2rha"
-VERSION="0.4.9pre5"
+BUILD="1rha"
+VERSION="0.4.9"
 ARCH="noarch"
 LIBEXEC="/usr/libexec/$PACKAGE"
 BINDIR="/usr/bin"
index c0581a39050c5e872ebb2de2cfc0d82849453aa5..6473b160f9ef31654dd8630654338cbf60ef30f6 100644 (file)
@@ -25,6 +25,7 @@
 COMMON="/usr/libexec/simplepkg/common.sh"
 SLACKBUILDRC="/etc/slackbuildrc"
 
+# firts load simplepkg helper functions
 if [ -f "$COMMON" ]; then
   source $COMMON
 else
@@ -34,12 +35,31 @@ fi
 
 function safe_exit {
 
+  # this function deals with internal createpkg errors
+  # and also non-zero exit codes from slackbuilds
+
+  # check slackbuild exit status are:
+  #
+  # 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=?
+  # ERROR_PATCH=?
+  # Thanks to Rudson rudsonalves at yahoo.com.br for this spec.
+
   # exit codes
   case $1 in
-    2) echo Could not create folder $2;;
+    2) usage ;;
     3) echo Could not update the repository $2 ;;
-    4) usage ;;
-    5) echo Script not found;;
+    4) echo Could not create folder $2 ;;
+    5) echo Script not found ;;
+   31) echo Error downloading package ;;
+   32) echo Error compiling the program ;;
+   33) echo Error installing program ;;
+   34) echo Error on source code integrity check ;;
+   35) echo Error configuring the program ;;
+   36) exit 0 ;; # its supposed to never happen here :P
+   37) echo Error decompressing source code  ;;
+   38) echo Error creating the package ;;
     *) exit 1
   esac
 
@@ -49,8 +69,10 @@ function safe_exit {
 
 function build_repo {
 
+  # checkout a new slackbuild working copy 
+
   BASEDIR="`dirname $SLACKBUILDS`"
-  mkdir -p $BASEDIR || safe_exit 2 $BASEDIR
+  mkdir -p $BASEDIR || safe_exit 4 $BASEDIR
   cd $BASEDIR
   svn checkout $SVN
   cd $SLACKBUILDS
@@ -68,6 +90,8 @@ function usage {
 
 function check_config {
 
+  # check the configuration
+
   if [ -f "$SLACKBUILDRC" ]; then
     source $SLACKBUILDRC
   fi
@@ -83,20 +107,22 @@ function check_config {
 
 function solve_dep {
 
-  # TODO: solve dep with version checking
-
   pack="$1"
   cond="$2"
   ver="$3"
 
   if [ "$cond" != "equal" ] && [ "$cond" != "less" ] && [ "$cond" != "equalorgreater" ] && [ "$cond" != "lessequal" ] && [ ! -z "$cond" ]; then
-    # TODO: error
-    false
+    # slack-required has a wrong logical sentence, so we ignore it
+    check_version="no"
   fi
 
   for candidate in `ls /var/log/packages/$pack* 2> /dev/null`; do
     candidate="`package_name $candidate`"
     if [ "$pack" == "$candidate" ]; then
+      if [ "$check_version" != "no" ]; then
+        # TODO: check if the pack has the correct version
+        true
+      fi
       found="1"
       break
     fi
@@ -104,12 +130,12 @@ function solve_dep {
 
   if [ "$found" != "1" ]; then
     createpkg --install $pack
+    # check if the package was built and installed
+    check_exit_status $?
   else
     found="0"
   fi
 
-  # TODO: check if the package was built and installed
-
 }
 
 function check_repo {
@@ -133,11 +159,21 @@ function find_script {
 
 }
 
+function check_exit_status {
+
+  # check whether exit status is 0 or not
+  # if not, call safe_exit to end the program
+
+  if [ "$1" != "0" ]; then
+    safe_exit $1
+  fi
+}
+
 check_config
 check_repo
 
 if [ -z "$1" ]; then
-  safe_exit 4
+  safe_exit 2
 elif [ "$#" == "2" ]; then
   if [ "$1" == "--search" ]; then
     find_script $2
@@ -149,7 +185,7 @@ elif [ "$#" == "2" ]; then
     NO_DEPS="1"
     PACKAGE="$2"
   else
-    safe_exit 4
+    safe_exit 2
   fi
 elif [ "$1" == "--sync" ]; then
   sync_repo 
@@ -157,7 +193,7 @@ elif [ "$1" == "--sync" ]; then
 elif [ "${1:0:1}" != "-" ]; then
   PACKAGE="$1"
 else
-  safe_exit 4
+  safe_exit 2
 fi
 
 if [ "$SYNC" == "yes" ]; then
@@ -172,6 +208,7 @@ fi
 
 SCRIPT_BASE="`dirname $BUILD_SCRIPT`"
 
+# sets the package's slack-required
 if [ -f "$SCRIPT_BASE/$PACKAGE.slack-required" ]; then
   SLACK_REQ="$SCRIPT_BASE/$PACKAGE.slack-required"
 elif [ -f "$SCRIPT_BASE/slack-required" ]; then
@@ -180,6 +217,8 @@ fi
 
 if [ ! -z "$SLACK_REQ" ] && [ "$NO_DEPS" != "1" ]; then
 
+  # this routine checks for dependencies in package's slack-required
+
   cat $SLACK_REQ | while read dep; do
     if [ ! -z "$dep" ]; then
       program="`echo $dep | awk '{ print $1 }'`"
@@ -191,27 +230,28 @@ if [ ! -z "$SLACK_REQ" ] && [ "$NO_DEPS" != "1" ]; then
 
 fi
 
+# built package
 cd $SCRIPT_BASE
 INTERACT=no ./`basename $BUILD_SCRIPT`
 
-# TODO: check slackbuild exit status code according to the following:
+# check if package was built
+check_exit_status $?
+
+# this doesn't work always
 #
-# ERROR_WGET=31;      ERROR_MAKE=32;      ERROR_INSTALL=33
-# ERROR_MD5=34;       ERROR_CONF=35;      ERROR_HELP=36
-# ERROR_TAR=37;       ERROR_MKPKG=38
+# VERSION="`grep -e '^VERSION=' $BUILD_SCRIPT | head -n 1 | sed -e "s/VERSION//g" -e 's/=//g' -e 's/-//g' | cut -d ":" -f 2 | cut -d "}" -f 1`"
+# BUILD="`grep -e '^BUILD=' $BUILD_SCRIPT | head -n 1 | sed -e "s/BUILD//g" -e 's/=//g' | cut -d ":" -f 2 | cut -d "}" -f 1`"
+# _ARCH="`grep -e '^ARCH' $BUILD_SCRIPT | head -n 1 | cut -d "=" -f 2 | sed -e 's/"//g'`"
 #
-# Thanks to Rudson rudsonalves at yahoo.com.br for this spec.
-
-VERSION="`grep -e '^VERSION=' $BUILD_SCRIPT | head -n 1 | sed -e "s/VERSION//g" -e 's/=//g' -e 's/-//g' | cut -d ":" -f 2 | cut -d "}" -f 1`"
-BUILD="`grep -e '^BUILD=' $BUILD_SCRIPT | head -n 1 | sed -e "s/BUILD//g" -e 's/=//g' | cut -d ":" -f 2 | cut -d "}" -f 1`"
-_ARCH="`grep -e '^ARCH' $BUILD_SCRIPT | head -n 1 | cut -d "=" -f 2 | sed -e 's/"//g'`"
-
-if [ "$_ARCH" == "noarch" ]; then
-  ARCH="noarch"
-fi
+# if [ "$_ARCH" == "noarch" ]; then
+#  ARCH="noarch"
+# fi
 
 if [ "$INSTALL" == "1" ]; then
-  # installpkg $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz
-  upgradepkg --install-new $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz
+  # we can do the following cause we dont have the full package name:
+  # upgradepkg --install-new $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz
+
+  # so we do this:
+  upgradepkg --install-new $REPOS/$PACKAGE*tgz
 fi