aboutsummaryrefslogtreecommitdiff
path: root/trunk/src
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src')
-rw-r--r--trunk/src/createpkg164
-rwxr-xr-xtrunk/src/simplaret15
-rwxr-xr-xtrunk/src/templatepkg26
3 files changed, 165 insertions, 40 deletions
diff --git a/trunk/src/createpkg b/trunk/src/createpkg
index cf8e515..84fbb28 100644
--- a/trunk/src/createpkg
+++ b/trunk/src/createpkg
@@ -19,7 +19,7 @@
# /etc/simplepkg/slackbuildrc parameters:
#
# SLACKBUILDS_DIR="/folder/to/place/slackbuilds", defaults to /var/slackbuilds
-# SVN="svn://repository", defaults do svn://slack.sarava.org/slackbuilds
+# SVN="svn://repository", defaults do http://slack.sarava.org/slackbuilds
# SYNC="yes|no", whether to always update the repository
#
@@ -58,6 +58,12 @@ ${red}DESCRIPTION${normal}
list all the SlackBuilds
${red}--sync${normal}
synchronize SlackBuilds repository
+ ${red}--update${normal}
+ synchronize packages repository
+ ${red}--commit${normal} ${green}["message"]${normal}
+ commit changes to binary packages' repository
+ ${red}--status${normal}
+ check binary packages' svn repository status
${red}-h${normal}, ${red}--help${normal}
show this help
@@ -101,18 +107,28 @@ function build_all_slackbuild {
function check_config {
- # check the configuration
- TMP=${TMP:=/tmp};
+ # Check the configuration
+ TMP=${TMP:=/tmp}
+
if [ ! -z "$REPOS" ]; then
MAKEPKG_REPOS="$REPOS"
else
REPOS=$MAKEPKG_REPOS
fi
+
+ # Nested folders, if configured
+ if [ ! -z "$MAKEPKG_REPOS_STYLE" ]; then
+ MAKEPKG_REPOS_STYLE=$(echo $MAKEPKG_REPOS_STYLE | sed -e "s/none//g" -e "s/distro/`default_distro`/g" \
+ -e "s/arch/`default_arch`/g" -e "s/version/`default_version`/g")
+ MAKEPKG_REPOS="$MAKEPKG_REPOS/$MAKEPKG_REPOS_STYLE"
+ REPOS="$REPOS/$MAKEPKG_REPOS_STYLE"
+ fi
+
# Create $TMP and $REPOS if need
[ ! -e $TMP ] && mkdir -p $TMP
[ ! -e $MAKEPKG_REPOS ] && mkdir -p $MAKEPKG_REPOS
#
- SLACKBUILDS_DIR=${SLACKBUILDS_DIR:=/var/slackbuilds}
+ SLACKBUILDS_DIR=${SLACKBUILDS_DIR:=/var/simplepkg/slackbuilds}
#
SYNC=${SYNC:=$no}
SYNC=`convert_boolean $SYNC`
@@ -236,10 +252,11 @@ function list_builds {
function load_parameters {
# Load Createpkg parameters
- MAKEPKG_REPOS="`eval_parameter MAKEPKG_REPOS /var/simplaret/repos`"
- SOURCE_DIR="`eval_parameter SOURCE_DIR /var/simplaret/sources`"
- SLACKBUILDS_DIR="`eval_parameter SLACKBUILDS_DIR /var/simplaret/slackbuilds`"
- SLACKBUILDS_SVN="`eval_parameter SLACKBUILDS_SVN svn://slack.sarava.org/slackbuilds`"
+ MAKEPKG_REPOS="`eval_parameter MAKEPKG_REPOS /var/simplepkg/repos`"
+ MAKEPKG_REPOS_STYLE="`eval_parameter MAKEPKG_REPOS_STYLE none`"
+ SOURCE_DIR="`eval_parameter SOURCE_DIR /var/simplepkg/sources`"
+ SLACKBUILDS_DIR="`eval_parameter SLACKBUILDS_DIR /var/simplepkg/slackbuilds`"
+ SLACKBUILDS_SVN="`eval_parameter SLACKBUILDS_SVN http://slack.sarava.org/slackbuilds`"
COLOR_MODE="`eval_parameter COLOR_MODE none`"
CREATE_ARCH="`eval_parameter CREATE_ARCH $(default_arch)`"
@@ -247,6 +264,48 @@ function load_parameters {
REMOVE_OLD_PACKAGE="`eval_boolean_parameter REMOVE_OLD_PACKAGE $off`"
MOVE_BIN_PACKAGE="`eval_boolean_parameter MOVE_BIN_PACKAGE $off`"
+ MOVE_SLACK_REQUIRED="`eval_boolean_parameter MOVE_SLACK_REQUIRED $off`"
+
+}
+
+function repository_update {
+
+ if [ -d "$MAKEPKG_REPOS/.svn" ]; then
+ cwd="`pwd`"
+ cd $MAKEPKG_REPOS && svn update
+ cd $cwd
+ fi
+
+ mk_exit 0
+
+}
+
+function repository_status {
+
+ if [ -d "$MAKEPKG_REPOS/.svn" ]; then
+ cwd="`pwd`"
+ cd $MAKEPKG_REPOS && svn status
+ cd $cwd
+ fi
+
+ mk_exit 0
+
+}
+
+function commit_changes {
+
+ if [ -d "$MAKEPKG_REPOS/.svn" ]; then
+ cwd="`pwd`"
+ cd $MAKEPKG_REPOS
+ if [ ! -z "$1" ]; then
+ svn commit -m $*
+ else
+ svn commit
+ fi
+ cd $cwd
+ fi
+
+ mk_exit 0
}
@@ -347,6 +406,19 @@ case $1 in
list_builds
exit $EXIT_CODE
;;
+ '--update')
+ repository_update
+ exit $EXIT_CODE
+ ;;
+ '--commit')
+ shift
+ commit_changes $*
+ exit $EXIT_CODE
+ ;;
+ '--status')
+ repository_status
+ exit $EXIT_CODE
+ ;;
*)
if [ "${1:0:1}" != "-" ]; then
PACKAGE="$1"
@@ -449,33 +521,81 @@ PKG_NAME="`ls -1 -c $MAKEPKG_REPOS/$PACKAGE-*-*-*.tgz | head -n 1 | xargs basena
[ $MOVE_BIN_PACKAGE -eq $on ] && NEW_REPOS=$MAKEPKG_REPOS/$( echo ${SCRIPT_BASE#$SLACKBUILDS_DIR/} ) || NEW_REPOS=$MAKEPKG_REPOS
# Create repository directory
-# TODO: subversion integration
-[ ! -e $NEW_REPOS ] && mkdir -p $NEW_REPOS 2>/dev/null
+if [ ! -e $NEW_REPOS ]; then
+ mkdir -p $NEW_REPOS || mkdir -p $NEW_REPOS
+ if [ -d "$MAKEPKG_REPOS/.svn" ] && ! svn_check $NEW_REPOS; then
+ cwd="`pwd`"
+ cd $MAKEPKG_REPOS
+ svn add $( echo ${SCRIPT_BASE#$SLACKBUILDS_DIR/} )
+ cd $cwd
+fi
# Remove old packages from repository tree
-# TODO: subversion integration
-[ $REMOVE_OLD_PACKAGE -eq $on ] && rm $NEW_REPOS/$PACKAGE-*-*-*.tgz 2>/dev/null
+if [ $REMOVE_OLD_PACKAGE -eq $on ]; then
+
+ # Using subversion
+ if [ -d "`basename $NEW_REPOS`/.svn" ]; then
+
+ cwd="`pwd`"
+ cd `basename $NEW_REPOS`
+
+ PACKAGE_VERSION="`package_version $PKG_NAME`"
+ PACKAGE_ARCH="`package_arch $PKG_NAME`"
+ PACKAGE_BUILD="`package_build $PKG_NAME`"
+
+ for file in `ls $PACKAGE-*-*-*.tgz`; do
+ if svn_check $file; then
+ # Just deleted packages with different arch, version or build number
+ if [ "`package_version $file`" != "$PACKAGE_VERSION" ] || \
+ [ "`package_arch $file`" != "$PACKAGE_ARCH" ] || \
+ [ "`package_build $file`" != "$PACKAGE_BUILD" ]; then
+ svn del --force $file
+ fi
+ fi
+ done
-# Move package and slack-required to SlackBuilds-like tree
-# TODO: subversion integration
-[ $MOVE_BIN_PACKAGE -eq $on ] && mv $MAKEPKG_REPOS/$PKG_NAME $NEW_REPOS/
-[ ! -z "$SLACK_REQUIRED" ] && cp $SLACK_REQUIRED $NEW_REPOS/$PACKAGE.slack-required
+ cd $cwd
+
+ else
+ rm $NEW_REPOS/$PACKAGE-*-*-*.tgz 2>/dev/null
+ fi
+fi
+
+# Move package to SlackBuilds-like tree
+if [ $MOVE_BIN_PACKAGE -eq $on ]; then
+ mv $MAKEPKG_REPOS/$PKG_NAME $NEW_REPOS/
+ if [ -d "`basename $NEW_REPOS`/.svn" ]; then
+ cwd="`pwd`"
+ cd `basename $NEW_REPOS`
+ svn add $PKG_NAME
+ cd $cwd
+ fi
+fi
+
+# Move package's slack-required to binary repository
+if [ $MOVE_SLACK_REQUIRED -eq $on ]; then
+ if [ ! -z "$SLACK_REQUIRED" ]; then
+ cp $SLACK_REQUIRED $NEW_REPOS/$PACKAGE.slack-required
+ if ! svn_check $NEW_REPOS/$PACKAGE.slack-required; then
+ cwd="`pwd`"
+ cd `basename $NEW_REPOS`
+ svn add $PACKAGE.slack-required
+ cd $cwd
+ fi
+ fi
+fi
# Install package
if [ "$INSTALL" -eq $on ]; then
- # as we dont have the full package file name, we'll
- # use the newer file name that matches our wildcard:
-
upgradepkg --install-new $NEW_REPOS/$PKG_NAME
fi
-# TODO: subversion integration
-# generate or update all metadata
-# svn commit
# Update repository FILELIST.TXT, ...
(
cd $MAKEPKG_REPOS
gen_filelist
+ gen_md5_checksums .
+ gen_patches_filelist patches
)
exit $EXIT_CODE
diff --git a/trunk/src/simplaret b/trunk/src/simplaret
index 66bb1e1..d6555a0 100755
--- a/trunk/src/simplaret
+++ b/trunk/src/simplaret
@@ -17,7 +17,6 @@
#
BASENAME="`basename $0`"
-REPOS_CONF="/etc/simplepkg/repos.conf"
COMMON="/usr/libexec/simplepkg/common.sh"
if [ -f "$COMMON" ]; then
@@ -27,6 +26,12 @@ else
exit 1
fi
+if [ -f "/etc/simplepkg/repos.conf" ]; then
+ REPOS_CONF="/etc/simplepkg/repos.conf"
+else
+ REPOS_CONF="/etc/simplepkg/default/repos.conf"
+fi
+
function simplaret_usage {
echo "usage: [ARCH=otherarch] [VERSION=otherversion] $BASENAME [OPTION] package-name"
@@ -713,11 +718,11 @@ function simplaret_search_and_process_patch {
# check if the patch was already downloaded
if echo "$DOWNLOADED_PATCHES" | grep -q " $ARCH:$VERSION:$sugested_pack "; then
- if [ "$IS_UPGRADE" != "1" ]; then
- echo Package $sugested_pack already downloaded
- # echo "Jail $root needs package $sugested_pack (already downloaded, skipping)"
+ #if [ "$IS_UPGRADE" != "1" ]; then
+ #echo Package $sugested_pack already downloaded
+ #echo "Jail $root needs package $sugested_pack (already downloaded, skipping)"
return
- fi
+ #fi
fi
pack="`echo $sugested_pack | sed -e 's/\+/\\\+/'`"
diff --git a/trunk/src/templatepkg b/trunk/src/templatepkg
index ad7306f..e1533c7 100755
--- a/trunk/src/templatepkg
+++ b/trunk/src/templatepkg
@@ -177,7 +177,7 @@ function import_export_templates {
if [ "$?" != 0 ]; then
usage
exit 1
- elif ! use_svn; then
+ elif ! templates_under_svn; then
echo $BASENAME: simplepkg not configured to use svn
exit 1
fi
@@ -242,7 +242,7 @@ function template_create {
echo Creating template `basename $TEMPLATE_BASE`...
- if use_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
+ if templates_under_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
cd `dirname $TEMPLATE_BASE`
svn mkdir `dirname $TEMPLATE_BASE`
else
@@ -257,7 +257,7 @@ function template_create {
touch $TEMPLATE_BASE.perms
touch $TEMPLATE_BASE.template
- if use_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
+ if templates_under_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
cd `dirname $TEMPLATE_BASE`
@@ -285,7 +285,7 @@ function template_create {
info_commit="yes"
fi
- elif use_svn && [ -d "$TEMPLATE_FOLDER/.svn" ]; then
+ elif templates_under_svn && [ -d "$TEMPLATE_FOLDER/.svn" ]; then
mkdir $TEMPLATE_BASE.{d,s}
cd $TEMPLATE_FOLDER
@@ -320,7 +320,7 @@ function template_create {
cat $orig_template/$ROOT.template > $TEMPLATE_BASE.template
fi
- if use_svn && [ -d "$orig_template/.svn" ]; then
+ if templates_under_svn && [ -d "$orig_template/.svn" ]; then
cd `dirname $TEMPLATE_BASE`
@@ -448,7 +448,7 @@ function template_add {
if [ ! -a "$TEMPLATE_BASE.d/$candidate" ]; then
mkdir -p $TEMPLATE_BASE.d/`dirname $candidate`
cp -a $jail/$candidate $TEMPLATE_BASE.d/$candidate
- if use_svn && [ -d "$TEMPLATE_BASE.d/.svn" ]; then
+ if templates_under_svn && [ -d "$TEMPLATE_BASE.d/.svn" ]; then
cwd="`pwd`"
cd $TEMPLATE_BASE.d
svn add ./$candidate
@@ -477,7 +477,7 @@ function template_add {
destination="`echo $TEMPLATE_BASE.d/$file | sed -e 's/\/$//'`"
- if use_svn && [ -d "$TEMPLATE_BASE.d/.svn" ]; then
+ if templates_under_svn && [ -d "$TEMPLATE_BASE.d/.svn" ]; then
candidate="./`dirname $file`"
mkdir -p $TEMPLATE_BASE.d/$candidate
@@ -552,12 +552,12 @@ function check_template_exist {
mkdir $TEMPLATE_BASE.$component
fi
- if use_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
+ if templates_under_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
svn add $TEMPLATE_BASE.$component
info_commit="yes"
fi
- elif use_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ] && \
+ elif templates_under_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ] && \
! svn_check $TEMPLATE_BASE.$component; then
cd `dirname $TEMPLATE_BASE`
@@ -582,7 +582,7 @@ function template_delete {
if [ -e "$TEMPLATE_BASE.d/$1" ]; then
# first try to remove the file from the template
- if use_svn && [ -d "$TEMPLATE_BASE.d/.svn" ]; then
+ if templates_under_svn && [ -d "$TEMPLATE_BASE.d/.svn" ]; then
cd $TEMPLATE_BASE.d
svn del --force ./$1 || rm -rf ./$1
if [ -z "$SILENT" ]; then
@@ -606,7 +606,7 @@ function template_delete {
fi
elif [ -e "$TEMPLATE_BASE.s/$1" ]; then
- if use_svn && [ -d "$TEMPLATE_BASE.s/.svn" ]; then
+ if templates_under_svn && [ -d "$TEMPLATE_BASE.s/.svn" ]; then
cd $TEMPLATE_BASE.s
svn del --force ./$1 || rm -rf ./$1
if [ -z "$SILENT" ]; then
@@ -642,7 +642,7 @@ function template_remove {
exit 1
fi
- if use_svn && [ -d "$basedir/.svn" ]; then
+ if templates_under_svn && [ -d "$basedir/.svn" ]; then
cd $TEMPLATE_FOLDER
svn update
svn del --force $template
@@ -938,7 +938,7 @@ elif [ "$1" == "-d" ] || [ "$1" == "--delete" ]; then
elif [ "$1" == "-s" ] || [ "$1" == "--sync" ]; then
- if use_svn && [ -d "$TEMPLATE_FOLDER/.svn" ]; then
+ if templates_under_svn && [ -d "$TEMPLATE_FOLDER/.svn" ]; then
( cd $TEMPLATE_FOLDER && svn update )
true
fi