aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2007-04-08 00:03:16 +0000
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2007-04-08 00:03:16 +0000
commit33a8a56106adae25714eec24d1bcb4889fcf8267 (patch)
tree2b0e1cf7840f2c7514beeb6f4452acbe9fd44c24
parent6878c9fdb73390836232b93ab42b50e59d742716 (diff)
downloadsimplepkg-33a8a56106adae25714eec24d1bcb4889fcf8267.tar.gz
simplepkg-33a8a56106adae25714eec24d1bcb4889fcf8267.tar.bz2
simplaret: fix, see doc/CHANGELOG
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@319 04377dda-e619-0410-9926-eae83683ac58
-rw-r--r--trunk/conf/simplepkg.conf.new38
-rw-r--r--trunk/doc/CHANGELOG25
-rw-r--r--trunk/lib/common.sh161
-rwxr-xr-xtrunk/simplepkg.SlackBuild2
-rwxr-xr-xtrunk/src/lspkg15
-rwxr-xr-xtrunk/src/repos99
-rwxr-xr-xtrunk/src/simplaret7
7 files changed, 222 insertions, 125 deletions
diff --git a/trunk/conf/simplepkg.conf.new b/trunk/conf/simplepkg.conf.new
index a6ed9a4..d524659 100644
--- a/trunk/conf/simplepkg.conf.new
+++ b/trunk/conf/simplepkg.conf.new
@@ -2,73 +2,73 @@
# /etc/simplepkg/simplepkg.conf
#
-# default architecture: set this option if you dont want simplepkg
+# Default architecture: set this option if you dont want simplepkg
# to use the value from /etc/slackware-version
# DEFAULT_ARCH="i386"
-# default version: set this option if you dont want simplepkg
+# Default version: set this option if you dont want simplepkg;
# to use the value from /etc/slackware-version
# DEFAULT_VERSION="11.0"
-# where jails are placed
+# Where jails are placed
JAIL_ROOT="/vservers"
-# wheter mkjial should add new jails in the jail list
+# Wheter mkjial should add new jails in the jail list;
# to enable it, set to "1" or "yes"
ADD_TO_JAIL_LIST="1"
-# whether mkjail should clean the package cache before installation
+# Whether mkjail should clean the package cache before installation
# to enable it, set to "1" or "yes"
SIMPLARET_CLEAN="1"
-# whether mkjail should clean the package cache after the installation
+# whether mkjail should clean the package cache after the installation;
# to enable it, set to "1" or "yes"
SIMPLARET_DELETE_DOWN="1"
-# whether mkjail should issue a simplaret --update before install the jail
+# Whether mkjail should issue a simplaret --update before install the jail;
# to enable it, set to "1" or "yes"
SIMPLARET_UPDATE="1"
-# wheter delete also patches when simplaret --purge is called
+# Wheter delete also patches when simplaret --purge is called;
# to enable it, set to "1" or "yes"
SIMPLARET_PURGE_PATCHES="0"
-# whether delete each package rigth after its installation
+# Whether delete each package rigth after its installation;
# to enable it, set to "1" or "yes"
SIMPLARET_DELETE_DURING="0"
-# delete packages older than N weeks from the cache
+# Delete packages older than N weeks from the cache
SIMPLARET_PURGE_WEEKS="3"
-# where patches are placed
+# Where patches are placed
PATCHES_DIR="/var/simplaret/patches"
-# place to store your packages
+# Place to store your packages
STORAGE="/var/simplaret/packages"
-# whether to use passive ftp transfers
+# Whether to use passive ftp transfers;
# to enable it, set to "1" or "yes"
PASSIVE_FTP="1"
-# http retrieval tool
+# Http retrieval tool;
# available parameters are "wget" or "curl"
HTTP_TOOL="wget"
-# ftp retrieval tool
+# Ftp retrieval tool;
# available parameters are "wget", "curl" or "ncftpget"
FTP_TOOL="wget"
-# set connection timeout in seconds
+# Set connection timeout in seconds
CONNECT_TIMEOUT="20"
# ROOT repository package priority
ROOT_PRIORITY="patches slackware extra testing pasture"
-# whether to check package signatures (you should have the repository
+# Whether to check package signatures (you should have the repository
# maintainer key on your keyring)
SIGNATURE_CHECKING="0"
-# whether simplaret will try to solve dependencies by looking
+# Whether simplaret will try to solve dependencies by looking
# for packages' slack-required
DEPENDENCY_CHECKING="1"
@@ -102,7 +102,7 @@ STORE_ROOT_PATCHES_ON_PATCHES_DIR="0"
# This just work if TEMPLATE_STORAGE_STYLE is set to own-folder (default)
TEMPLATES_UNDER_SVN="no"
-# Where your templates will be located
+# Where your templates will be located.
# Dont change it except you know what you're doing.
TEMPLATE_FOLDER="/etc/simplepkg/templates"
diff --git a/trunk/doc/CHANGELOG b/trunk/doc/CHANGELOG
index 2ed7506..00013b2 100644
--- a/trunk/doc/CHANGELOG
+++ b/trunk/doc/CHANGELOG
@@ -1,22 +1,31 @@
simplepkg changelog
===================
+0.5pre8
+=======
+
+ - lspkg:
+ - bugfix
+
+ - common.sh:
+ - bugfix in function slash
+
0.5pre7
=======
- - simplaret:
- - fixed bug for ROOT definitions when there is packages
- inside of folders different than ROOT_PRIORITY
+ - simplaret:
+ - fixed bug for ROOT definitions when there is packages
+ inside of folders different than ROOT_PRIORITY
0.5pre6
=======
- - repos:
- - FILE_LIST generation fix
+ - repos:
+ - FILE_LIST generation fix
- - mkjail:
- - new config variable ADD_TO_JAIL_LIST controls wheter to
- add new jails into the JAIL_LIST file
+ - mkjail:
+ - new config variable ADD_TO_JAIL_LIST controls wheter to
+ add new jails into the JAIL_LIST file
0.5pre5
=======
diff --git a/trunk/lib/common.sh b/trunk/lib/common.sh
index 1eff334..6bbfca0 100644
--- a/trunk/lib/common.sh
+++ b/trunk/lib/common.sh
@@ -32,7 +32,10 @@ CONF="$BASE_CONF/simplepkg.conf"
JAIL_LIST="$BASE_CONF/jailist"
SIMPLARET="simplaret"
-# pkgtool stuff
+# -----------------------------------------------
+# pkgtool functions
+# -----------------------------------------------
+
function package_name {
STRING=`basename $1 .tgz`
@@ -58,6 +61,10 @@ function package_name {
}
+# -----------------------------------------------
+# package info functions
+# -----------------------------------------------
+
function package_version {
# get VERSION from a package name
@@ -91,6 +98,10 @@ function package_build {
}
+# -----------------------------------------------
+# package administrative functions
+# -----------------------------------------------
+
function install_packages {
local check installed unable_to_install root
@@ -145,6 +156,10 @@ function remove_packages {
}
+# -----------------------------------------------
+# config file functions
+# -----------------------------------------------
+
function eval_parameter {
# usage: eval $1 parameter from $CONF
@@ -294,6 +309,10 @@ function eval_config {
}
+# -----------------------------------------------
+# arch and version functions
+# -----------------------------------------------
+
function default_version {
# get version from /etc/slackware-version
@@ -320,6 +339,10 @@ function default_arch {
}
+# -----------------------------------------------
+# template functions
+# -----------------------------------------------
+
function search_default_template {
if [ -e "$BASE_CONF/default.template" ]; then
@@ -388,6 +411,10 @@ function search_template {
}
+# -----------------------------------------------
+# unix permission functions
+# -----------------------------------------------
+
function numeric_perm {
# get the numeric permission of a file
@@ -426,6 +453,10 @@ function get_group {
}
+# -----------------------------------------------
+# subversion functions
+# -----------------------------------------------
+
function use_svn {
# check if svn usage is enabled
@@ -469,6 +500,10 @@ function svn_check {
}
+# -----------------------------------------------
+# update jail functions
+# -----------------------------------------------
+
function update_template_files {
# update template files from svn
@@ -521,10 +556,132 @@ function set_jail_perms {
}
+# -----------------------------------------------
+# repository build functions
+# -----------------------------------------------
+
+function svn_add_meta {
+
+ find *meta -exec svn add {} 2> /dev/null \;
+ find . -name *meta -exec svn add {} 2> /dev/null \;
+
+}
+
+function gen_filelist {
+
+ # generate FILELIST.TXT
+
+ local cwd
+
+ for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILELIST.TXT
+ echo "Created new FILELIST.TXT"
+
+ if [ -d "patches" ]; then
+ gen_patches_filelist patches
+ for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILE_LIST
+ echo "Created new patches/FILE_LIST"
+ fi
+
+}
+
+function gen_patches_filelst {
+
+ # generate FILE_LIST
+
+ mkdir -p $1
+ cwd="`pwd`"
+ cd $1
+ for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILE_LIST
+ cd $pwd
+
+}
+
+function gen_packages_txt {
+
+ # generate PACKAGES.TXT
+
+ echo '' > PACKAGES.TXT
+ find . -type f -name '*.meta' -exec cat {} \; >> PACKAGES.TXT
+ cat PACKAGES.TXT | gzip -9 -c - > PACKAGES.TXT.gz
+ echo "Created new PACKAGES.TXT and PACKAGES.TXT.gz"
+
+ if [ -d "patches" ]; then
+ find patches -type f -name '*.meta' -exec cat {} \; >> patches/PACKAGES.TXT
+ cat patches/PACKAGES.TXT | gzip -9 -c - > patches/PACKAGES.TXT.gz
+ echo "Created new patches/PACKAGES.TXT and patches/PACKAGES.TXT.gz"
+ fi
+
+}
+
+function gen_md5_checksums {
+
+ # generate CHECKSUMS.md5
+
+ echo '' > CHECKSUMS.md5
+ find . -type f -name '*.tgz' -exec md5sum {} \; >> CHECKSUMS.md5
+ cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz
+ echo "Created new CHECKSUMS.md5 and CHECKSUMS.md5.gz"
+
+ if [ -d "patches" ]; then
+ find patches -type f -name '*.tgz' -exec md5sum {} \; >> patches/CHECKSUMS.md5
+ cat patches/CHECKSUMS.md5 | gzip -9 -c - > patches/CHECKSUMS.md5.gz
+ echo "Created new patches/CHECKSUMS.md5 and patches/CHECKSUMS.md5.gz"
+ fi
+
+}
+
+function gen_meta {
+
+ # generate metafiles
+
+ if [ ! -f $1 ]; then
+ echo "File not found: $1"
+ exit 1;
+ else
+ echo "Processing $1"
+ fi
+
+ if [ "`echo $1|grep -E '(.*{1,})\-(.*[\.\-].*[\.\-].*).tgz[ ]{0,}$'`" == "" ]; then
+ return;
+ fi
+
+ NAME=$(echo $1|sed -re "s/(.*\/)(.*.tgz)$/\2/")
+ LOCATION=$(echo $1|sed -re "s/(.*)\/(.*.tgz)$/\1/")
+ SIZE=$( expr `gunzip -l $1 | tail -n 1|awk '{print $1}'` / 1024 )
+ USIZE=$( expr `gunzip -l $1 | tail -n 1|awk '{print $2}'` / 1024 )
+ REQUIRED=$(tar xzfO $1 install/slack-required 2>/dev/null|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//")
+ CONFLICTS=$(tar xzfO $1 install/slack-conflicts 2>/dev/null|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//")
+ SUGGESTS=$(tar xzfO $1 install/slack-suggests 2>/dev/null|xargs -r )
+ METAFILE=${NAME%tgz}meta
+
+ echo "PACKAGE NAME: $NAME" > $LOCATION/$METAFILE
+
+ if [ -n "$DL_URL" ]; then
+ echo "PACKAGE MIRROR: $DL_URL" >> $LOCATION/$METAFILE
+ fi
+
+ echo "PACKAGE LOCATION: $LOCATION" >> $LOCATION/$METAFILE
+ echo "PACKAGE SIZE (compressed): $SIZE K" >> $LOCATION/$METAFILE
+ echo "PACKAGE SIZE (uncompressed): $USIZE K" >> $LOCATION/$METAFILE
+ echo "PACKAGE REQUIRED: $REQUIRED" >> $LOCATION/$METAFILE
+ echo "PACKAGE CONFLICTS: $CONFLICTS" >> $LOCATION/$METAFILE
+ echo "PACKAGE SUGGESTS: $SUGGESTS" >> $LOCATION/$METAFILE
+ echo "PACKAGE DESCRIPTION:" >> $LOCATION/$METAFILE
+
+ tar xzfO $1 install/slack-desc | grep -E '\w+\:'|grep -v '^#' >> $LOCATION/$METAFILE
+
+ echo "" >> $LOCATION/$METAFILE
+
+}
+
+# -----------------------------------------------
+# misc functions
+# -----------------------------------------------
+
function slash {
# remove additional slashes
- echo $1 | sed -e 's/\/\+/\//g'
+ echo $* | sed -e 's/\/\+/\//g'
}
diff --git a/trunk/simplepkg.SlackBuild b/trunk/simplepkg.SlackBuild
index 66f079b..88fe4a4 100755
--- a/trunk/simplepkg.SlackBuild
+++ b/trunk/simplepkg.SlackBuild
@@ -6,7 +6,7 @@
PACKAGE="simplepkg"
PACK_DIR="package-$PACKAGE"
BUILD=${BUILD:=1rha}
-VERSION="0.5pre7"
+VERSION="0.5pre8"
ARCH="noarch"
LIBEXEC="/usr/libexec/$PACKAGE"
BINDIR="/usr/bin"
diff --git a/trunk/src/lspkg b/trunk/src/lspkg
index 74ed684..c60de49 100755
--- a/trunk/src/lspkg
+++ b/trunk/src/lspkg
@@ -16,6 +16,7 @@
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place - Suite 330, Boston, MA 02111-1307, USA
#
+
function head_line {
echo "usage: [ROOT=/otherroot] `basename $0` [option expression]"
}
@@ -46,17 +47,17 @@ else
fi
if [ $# -eq 2 ]; then
- LIST_PKGS=`ls /$ROOT/var/log/packages/$2-[0-9]* 2> /dev/null`
+ LIST_PKGS="`ls /$ROOT/var/log/packages/$2-[0-9]* 2> /dev/null`"
if [ -z "$LIST_PKGS" ]; then
- LIST_PKGS=`ls /$ROOT/var/log/packages/$2* 2> /dev/null`
+ LIST_PKGS="`ls /$ROOT/var/log/packages/$2* 2> /dev/null`"
fi
elif [ $# -eq 1 ]; then
- LIST_PKGS=`ls /$ROOT/var/log/packages/$1-[0-9]* 2> /dev/null`
+ LIST_PKGS="`ls /$ROOT/var/log/packages/$1-[0-9]* 2> /dev/null`"
if [ -z "$LIST_PKGS" ]; then
- LIST_PKGS=`ls /$ROOT/var/log/packages/$1* 2> /dev/null`
+ LIST_PKGS="`ls /$ROOT/var/log/packages/$1* 2> /dev/null`"
fi
else
- LIST_PKGS=`ls /$ROOT/var/log/packages/ 2> /dev/null`
+ LIST_PKGS="`ls /$ROOT/var/log/packages/ 2> /dev/null`"
fi
LIST_PKGS="`slash $LIST_PKGS`"
@@ -118,9 +119,9 @@ case $1 in
echo "$LIST_PKGS"
else
if [ ! -z "$ROOT" ]; then
- echo "$2: package not found on /$ROOT/var/log/packages"
+ echo "$1: package not found on /$ROOT/var/log/packages"
else
- echo "$2: package not found on /var/log/packages"
+ echo "$1: package not found on /var/log/packages"
fi
fi
;;
diff --git a/trunk/src/repos b/trunk/src/repos
index c37e625..191af44 100755
--- a/trunk/src/repos
+++ b/trunk/src/repos
@@ -10,100 +10,25 @@
#
# Changes by rhatto at riseup.net to fit http://slack.sarava.org needs
#
-# TODO: - simplepkg's config file support
+# TODO: - config file options
# - integration with binary repository
# - package's and CHECKSUMS.md5 signature creation
#
-function usage {
-
- echo "`basename $0` [pkg [file]|all|new|svnmeta|PACKAGESTXT|FILELIST|MD5]"
-
-}
-
-function svn_add_meta {
+BASENAME="`basename $0`"
+REPOS_CONF="/etc/simplepkg/repos.conf"
+COMMON="/usr/libexec/simplepkg/common.sh"
- find *meta -exec svn add {} 2> /dev/null \;
- find . -name *meta -exec svn add {} 2> /dev/null \;
+if [ -f "$COMMON" ]; then
+ source $COMMON
+else
+ echo "error: file $COMMON found, check your $BASENAME installation"
+ exit 1
+fi
-}
-
-function gen_filelist {
-
- local cwd
-
- for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILELIST.TXT
- echo "Created new FILELIST.TXT"
- if [ -d "patches" ]; then
- cwd="`pwd`"
- cd patches
- for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILE_LIST
- echo "Created new patches/FILE_LIST"
- cd $pwd
- fi
-
-}
-
-function gen_packages_txt {
-
- echo '' > PACKAGES.TXT
- find . -type f -name '*.meta' -exec cat {} \; >> PACKAGES.TXT
- cat PACKAGES.TXT | gzip -9 -c - > PACKAGES.TXT.gz
- echo "Created new PACKAGES.TXT and PACKAGES.TXT.gz"
- if [ -d "patches" ]; then
- find patches -type f -name '*.meta' -exec cat {} \; >> patches/PACKAGES.TXT
- cat patches/PACKAGES.TXT | gzip -9 -c - > patches/PACKAGES.TXT.gz
- echo "Created new patches/PACKAGES.TXT and patches/PACKAGES.TXT.gz"
- fi
-
-}
-
-function gen_md5_checksums {
-
- echo '' > CHECKSUMS.md5
- find . -type f -name '*.tgz' -exec md5sum {} \; >> CHECKSUMS.md5
- cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz
- echo "Created new CHECKSUMS.md5 and CHECKSUMS.md5.gz"
- if [ -d "patches" ]; then
- find patches -type f -name '*.tgz' -exec md5sum {} \; >> patches/CHECKSUMS.md5
- cat patches/CHECKSUMS.md5 | gzip -9 -c - > patches/CHECKSUMS.md5.gz
- echo "Created new patches/CHECKSUMS.md5 and patches/CHECKSUMS.md5.gz"
- fi
-
-}
-
-function gen_meta {
+function usage {
- if [ ! -f $1 ]; then
- echo "File not found: $1"
- exit 1;
- else
- echo "Processing $1"
- fi
- if [ "`echo $1|grep -E '(.*{1,})\-(.*[\.\-].*[\.\-].*).tgz[ ]{0,}$'`" == "" ]; then
- return;
- fi
- NAME=$(echo $1|sed -re "s/(.*\/)(.*.tgz)$/\2/")
- LOCATION=$(echo $1|sed -re "s/(.*)\/(.*.tgz)$/\1/")
- SIZE=$( expr `gunzip -l $1 | tail -n 1|awk '{print $1}'` / 1024 )
- USIZE=$( expr `gunzip -l $1 | tail -n 1|awk '{print $2}'` / 1024 )
- REQUIRED=$(tar xzfO $1 install/slack-required 2>/dev/null|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//")
- CONFLICTS=$(tar xzfO $1 install/slack-conflicts 2>/dev/null|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//")
- SUGGESTS=$(tar xzfO $1 install/slack-suggests 2>/dev/null|xargs -r )
- METAFILE=${NAME%tgz}meta
- echo "PACKAGE NAME: $NAME" > $LOCATION/$METAFILE
- if [ -n "$DL_URL" ]; then
- echo "PACKAGE MIRROR: $DL_URL" >> $LOCATION/$METAFILE
- fi
- echo "PACKAGE LOCATION: $LOCATION" >> $LOCATION/$METAFILE
- echo "PACKAGE SIZE (compressed): $SIZE K" >> $LOCATION/$METAFILE
- echo "PACKAGE SIZE (uncompressed): $USIZE K" >> $LOCATION/$METAFILE
- echo "PACKAGE REQUIRED: $REQUIRED" >> $LOCATION/$METAFILE
- echo "PACKAGE CONFLICTS: $CONFLICTS" >> $LOCATION/$METAFILE
- echo "PACKAGE SUGGESTS: $SUGGESTS" >> $LOCATION/$METAFILE
- echo "PACKAGE DESCRIPTION:" >> $LOCATION/$METAFILE
- tar xzfO $1 install/slack-desc | grep -E '\w+\:'|grep -v '^#' >> $LOCATION/$METAFILE
- echo "" >> $LOCATION/$METAFILE
+ echo "`basename $0` [pkg [file]|all|new|svnmeta|PACKAGESTXT|FILELIST|MD5]"
}
diff --git a/trunk/src/simplaret b/trunk/src/simplaret
index 2f68743..4081f5e 100755
--- a/trunk/src/simplaret
+++ b/trunk/src/simplaret
@@ -474,7 +474,7 @@ function simplaret_get {
# get a package
# usage: simplaret_get <package-name> [--silent]
- local silent
+ local silent generate_patches
# prevent user to stay in $storage
cd
@@ -512,6 +512,7 @@ function simplaret_get {
if [ "$repos_type" == "root" ] && \
[ "$STORE_ROOT_PATCHES_ON_PATCHES_DIR" == "1" ] && echo $file | grep -q "patches"; then
folder="$PATCHES_DIR/$ARCH/$VERSION/root-$repository_name"
+ generate_patches="1"
else
folder="$storage/$repository_name"
fi
@@ -555,6 +556,10 @@ function simplaret_get {
if [ -f "$folder/$candidate.asc" ] || [ "$SIGNATURE_CHECKING" == "1" ]; then
gpg --verify $folder/$candidate.asc $folder/$candidate
fi
+ # generate the patches FILE_LIST if needed
+ if [ "$generate_patches" == "1" ]; then
+ gen_patches_filelst $folder
+ fi
simplaret_checksum $storage/$repository_name/CHECKSUMS.md5 $folder/$candidate $silent
return $?
fi