From 12ed80743223cde6d233fa191839737c6253cf4d Mon Sep 17 00:00:00 2001 From: rhatto Date: Wed, 21 Mar 2007 00:01:32 +0000 Subject: some changes on simplaret, moved metapkg to utils/ git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@207 04377dda-e619-0410-9926-eae83683ac58 --- trunk/doc/CHANGELOG | 2 ++ trunk/src/metapkg | 61 --------------------------------------------- trunk/src/simplaret | 11 +++++--- trunk/utils/metapkg | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 81 insertions(+), 65 deletions(-) delete mode 100755 trunk/src/metapkg create mode 100755 trunk/utils/metapkg diff --git a/trunk/doc/CHANGELOG b/trunk/doc/CHANGELOG index cd9001a..6e09588 100644 --- a/trunk/doc/CHANGELOG +++ b/trunk/doc/CHANGELOG @@ -2,10 +2,12 @@ simplepkg changelog ------------------- 0.4.9pre24: subversion repository support for templates + metapkg moved to utils/ simplaret: - new config variables: - STORE_ROOT_PATCHES_ON_PATCHES_DIR - SIGNATURE_CHECKING + - ROOT=/otherroot works for --install, --remove and --upgrade - signature checking - dependency checking through slack-required mkjail: diff --git a/trunk/src/metapkg b/trunk/src/metapkg deleted file mode 100755 index d86807e..0000000 --- a/trunk/src/metapkg +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -# -# metapkg v0.1: install or remove a pkgtool metapackage -# -# feedback: rhatto at riseup.net | GPL -# -# Metapkg is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or any later version. -# -# Metapkg is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 59 Temple -# Place - Suite 330, Boston, MA 02111-1307, USA -# -# A metapackage is a file containing a list of packages. -# This script just installs all the packages in a metapackage. -# Remeber that mkjail template == metapkg metapackage. -# - -COMMON="/usr/libexec/simplepkg/common.sh" -BASENAME="`basename $0`" -ROOT="/" - -function usage { - echo "usage: [ROOT=/otherroot] $BASENAME --option [metapackage]" - echo "options: --install, --remove" - exit 1 -} - -if [ -f "$COMMON" ]; then - source $COMMON -else - echo "error: file $COMMON found, check your `basename $0` installation" - exit 1 -fi - -if [ -z "$2" ]; then - usage -else - eval_config $BASENAME -u -fi - -if [ ! -f "$BASE_CONF/$2.template" ]; then - echo error: template $2 not found - exit 1 -else - TEMPLATE="$BASE_CONF/$2.template" - unset server -fi - -if [ "$1" == "--install" ] || [ "$1" == "install" ]; then - install_packages -elif [ "$1" == "--remove" ] || [ "$1" == "remove" ]; then - remove_packages -else - usage -fi diff --git a/trunk/src/simplaret b/trunk/src/simplaret index 870fbf6..6ac93d7 100755 --- a/trunk/src/simplaret +++ b/trunk/src/simplaret @@ -718,13 +718,16 @@ function simplaret_get_jail_patches { function simplaret_get_patches { - local jailpath oldroot + local jailpath if [ "$1" == "--upgrade" ]; then IS_UPGRADE="1" fi - oldroot="$ROOT" + if [ ! -z "$ROOT" ]; then + simplaret_get_jail_patches $ROOT + return $? + fi # first get patches from the root system simplaret_get_jail_patches @@ -739,7 +742,7 @@ function simplaret_get_patches { done fi - ROOT="$oldroot" + ROOT="" } @@ -991,7 +994,7 @@ case $1 in "--purge" | "purge") shift ; simplaret_purge $* ;; "--install" | "install") shift ; simplaret_install $* ;; "--upgrade" | "upgrade") simplaret_get_patches --upgrade ;; - "--remove" | "remove") removepkg $2 ;; + "--remove" | "remove") ROOT=/$ROOT removepkg $2 ;; *) simplaret_usage ;; esac diff --git a/trunk/utils/metapkg b/trunk/utils/metapkg new file mode 100755 index 0000000..e3db602 --- /dev/null +++ b/trunk/utils/metapkg @@ -0,0 +1,72 @@ +#!/bin/bash +# +# metapkg v0.1: install or remove a pkgtool metapackage +# +# feedback: rhatto at riseup.net | GPL +# +# Metapkg is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or any later version. +# +# Metapkg is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307, USA +# +# A metapackage is a file containing a list of packages. +# This script just installs all the packages in a metapackage. +# Remeber that mkjail template == metapkg metapackage. +# + +# +# TODO +# +# In the mean term, metapkg will not be developed, but the code will rest +# until someone need it. Some ideas to think for the future of metapkg would +# be a better integration with simplepkg structure, like: +# +# - By default metapkg searches by a slack-required in the package/slackbuilds repos +# - With -f, metapkg uses a local file (template, slack-required or tagfile) +# + +COMMON="/usr/libexec/simplepkg/common.sh" +BASENAME="`basename $0`" +ROOT="/" + +function usage { + echo "usage: [ROOT=/otherroot] $BASENAME --option [metapackage]" + echo "options: --install, --remove" + exit 1 +} + +if [ -f "$COMMON" ]; then + source $COMMON +else + echo "error: file $COMMON found, check your `basename $0` installation" + exit 1 +fi + +if [ -z "$2" ]; then + usage +else + eval_config $BASENAME -u +fi + +if [ ! -f "$BASE_CONF/$2.template" ]; then + echo error: template $2 not found + exit 1 +else + TEMPLATE="$BASE_CONF/$2.template" + unset server +fi + +if [ "$1" == "--install" ] || [ "$1" == "install" ]; then + install_packages +elif [ "$1" == "--remove" ] || [ "$1" == "remove" ]; then + remove_packages +else + usage +fi -- cgit v1.2.3