aboutsummaryrefslogtreecommitdiff
path: root/branches/0.6/utils
diff options
context:
space:
mode:
Diffstat (limited to 'branches/0.6/utils')
-rwxr-xr-xbranches/0.6/utils/add-gpl33
-rwxr-xr-xbranches/0.6/utils/add-slack-required63
-rwxr-xr-xbranches/0.6/utils/convert-template-scheme35
-rwxr-xr-xbranches/0.6/utils/exec-slackbuild88
-rwxr-xr-xbranches/0.6/utils/merge-template37
-rwxr-xr-xbranches/0.6/utils/metapkg72
-rwxr-xr-xbranches/0.6/utils/searchpkg36
7 files changed, 364 insertions, 0 deletions
diff --git a/branches/0.6/utils/add-gpl b/branches/0.6/utils/add-gpl
new file mode 100755
index 0000000..0a261e2
--- /dev/null
+++ b/branches/0.6/utils/add-gpl
@@ -0,0 +1,33 @@
+#!/bin/bash
+#
+# add-gpl 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.
+#
+# add-gpl 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
+#
+# This script should be used to add a license in scripts.
+#
+
+script="SlackBuild"
+#script="build"
+
+for file in `find -name "*.$script"`; do
+
+ echo Changing $file...
+ package="`basename $file .$script`"
+ slackbuild="`basename $file`"
+
+ string="\#\!\/bin\/bash\n\#\n# $slackbuild is free software; you can redistribute it and\/or modify it under the\n# terms of the GNU General Public License as published by the Free Software\n# Foundation; either version 2 of the License, or any later version.\n#\n# $slackbuild is distributed in the hope that it will be useful, but WITHOUT ANY\n# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n# A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along with\n# this program; if not, write to the Free Software Foundation, Inc., 59 Temple\n# Place - Suite 330, Boston, MA 02111-1307, USA"
+
+ sed -e "s/\#\!\/bin\/bash/$string/" $file > $file.new
+ cat $file.new > $file
+ rm $file.new
+
+done
diff --git a/branches/0.6/utils/add-slack-required b/branches/0.6/utils/add-slack-required
new file mode 100755
index 0000000..67804d0
--- /dev/null
+++ b/branches/0.6/utils/add-slack-required
@@ -0,0 +1,63 @@
+#!/bin/bash
+#
+# add-slack-required 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.
+#
+# add-slack-required 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
+#
+# add slack-required files in an existing repository
+# by rhatto at riseup.net
+#
+
+COMMON="/usr/libexec/simplepkg/common.sh"
+BASENAME="`basename $0`"
+
+if [ -z "$2" ]; then
+ echo "usage: $BASENAME /path/to/slackbuilds /path/to/packages"
+ exit 1
+elif [ ! -d "$1" ]; then
+ echo "$BASENAME: folder not found: $1"
+ exit 1
+elif [ ! -d "$2" ]; then
+ echo "$BASENAME: folder not found: $2"
+ exit 1
+fi
+
+slackbuild="$1"
+repository="$2"
+
+# we need the function package_name
+if [ -f "$COMMON" ]; then
+ source $COMMON
+else
+ echo "error: file $COMMON found, check your $BASENAME installation"
+ exit 1
+fi
+
+function search_and_copy_slackbuild {
+
+ if [ -f "$1" ]; then
+ echo Copying `basename $1` to `dirname $package`/$pack.slack-required
+ cp $1 `dirname $package`/$pack.slack-required
+ svn add `dirname $package`/$pack.slack-required 2> /dev/null
+ fi
+
+}
+
+for package in `find $repository/ -name *tgz`; do
+ pack="`package_name $package`"
+ for build_script in `find $slackbuild/ -name $pack.SlackBuild`; do
+
+ search_and_copy_slackbuild `dirname $build_script`/slack-required
+ search_and_copy_slackbuild `dirname $build_script`/$pack.slack-required
+
+ done
+done
+
diff --git a/branches/0.6/utils/convert-template-scheme b/branches/0.6/utils/convert-template-scheme
new file mode 100755
index 0000000..de7e507
--- /dev/null
+++ b/branches/0.6/utils/convert-template-scheme
@@ -0,0 +1,35 @@
+#!/bin/bash
+#
+# This software 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.
+#
+# This software 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
+#
+# script for converting simplepkg templates
+# to the 0.5 own-folder format
+#
+
+cwd="/etc/simplepkg"
+cd $cwd
+
+for file in `ls *.template`; do
+ cd $cwd
+ template="`echo $file | cut -d . -f 1`"
+ mkdir templates/$template
+ mv $template.d templates/$template/
+ mv $template.s templates/$templates/
+ mv $template.template templates/$template/
+ cd templates/$template/$template.s
+ # optional step
+ # if [ "$template" != "vserver" ]; then
+ # ln -sf ../../../defaults/templatesvserver/vserver.s/vserver.sh
+ # fi
+done
+
diff --git a/branches/0.6/utils/exec-slackbuild b/branches/0.6/utils/exec-slackbuild
new file mode 100755
index 0000000..0d92f28
--- /dev/null
+++ b/branches/0.6/utils/exec-slackbuild
@@ -0,0 +1,88 @@
+#!/bin/bash -x
+#
+# Script to execute SlackBuild and pass parameters
+#
+# by Rudson R. Alves
+#
+# Version 0.0.1
+PROG_VERSION=0.0.1
+LANG=en_US
+BACK_TITLE="Exec SlackBuild $PROG_VERSION [$1]"
+
+if [ $# -ne 2 ]; then
+ echo "Use: exec-slackbuild <SlackBuild_script> <output_file>"
+ exit 0
+fi
+
+SLACKBUILD=$1
+AUX_TMP=$2
+
+# Load slackbuildrc
+if [ -f ~/.slackbuildrc ]; then
+ source ~/.slackbuildrc
+elif [ -f /etc/slackbuildrc ]; then
+ source /etc/slackbuildrc
+fi
+
+# set do default null variables
+[ -z $SRC_DIR ] && SRC_DIR="default"
+[ -z $REPOS ] && REPOS="default"
+[ -z $TMP ] && TMP="default"
+[ -z $ARCH ] && ARCH="default"
+[ -z $CLEANUP ] && CLEANUP="default"
+[ -z $NUMJOBS ] && NUMJOBS="default"
+[ -z $BUILD ] && BUILD="default"
+[ -z $CONF_OPTIONS ] && CONF_OPTIONS="default"
+
+# Edit variables
+ANS=`dialog --separate-widget "rudson" --stdout --backtitle "$BACK_TITLE" \
+ --title "Set variables" --form "Use down key to more variables; default = null argument; use \" to set several arguments." \
+ 19 52 11 \
+ "SRC_DIR:" 1 1 "$SRC_DIR" 1 15 30 60 \
+ "REPOS:" 3 1 "$REPOS" 3 15 30 60 \
+ "TMP:" 5 1 "$TMP" 5 15 30 60 \
+ "ARCH:" 7 1 "$ARCH" 7 15 30 60 \
+ "CLEANUP:" 9 1 "$CLEANUP" 9 15 30 60 \
+ "NUMJOBS:" 11 1 "$NUMJOBS" 11 15 30 60 \
+ "BUILD:" 13 1 "$BUILD" 13 15 30 60 \
+ "CONF_OPTIONS:" 15 1 "$CONF_OPTIONS" 15 15 30 60`
+[ $? -ne 0 ] && exit 11
+
+# Remove "s
+ SRC_DIR=`echo $ANS | awk '{print $1}' | tr -d \"`
+ REPOS=`echo $ANS | awk '{print $2}' | tr -d \"`
+ TMP=`echo $ANS | awk '{print $3}' | tr -d \"`
+ ARCH=`echo $ANS | awk '{print $4}' | tr -d \"`
+ CLEANUP=`echo $ANS | awk '{print $5}' | tr -d \"`
+ NUMJOBS=`echo $ANS | awk '{print $6}' | tr -d \"`
+ BUILD=`echo $ANS | awk '{print $7}' | tr -d \"`
+CONF_OPTIONS=`echo $ANS | awk '{print $8}' | tr -d \"`
+
+# Set to null ("") variables with default value
+ [ "$SRC_DIR" = "default" ] && SRC_DIR=""
+ [ "$REPOS" = "default" ] && REPOS=""
+ [ "$TMP" = "default" ] && TMP=""
+ [ "$ARCH" = "default" ] && ARCH=""
+ [ "$CLEANUP" = "default" ] && CLEANUP=""
+ [ "$NUMJOBS" = "default" ] && NUMJOBS=""
+ [ "$BUILD" = "default" ] && BUILD=""
+[ "$CONF_OPTIONS" = "default" ] && CONF_OPTIONS=""
+
+# Select debug level
+DEBUG=`dialog --stdout --backtitle "$BACK_TITLE" \
+ --cancel-label "no debug" --title "$MK_TITLE" \
+ --menu "Select debug level" 10 35 3 \
+ "-x" "Simple debug" \
+ "-xv" "More information" \
+ "none" "No debug"`
+
+[ $? -ne 0 -o "$DEBUG" = "none" ] && DEBUG=""
+
+# Check sintax from SlackBuild
+sh -n $SLACKBUILD || exit 11
+
+# Execute SlackBuild in background
+SRC_DIR="$SRC_DIR" REPOS="$REPOS" TMP="$TMP" ARCH="$ARCH" CLEANUP="$CLEANUP" NUMJOBS="$NUMJOBS" BUILD="$BUILD" CONF_OPTIONS="$CONF_OPTIONS" sh $DEBUG $SLACKBUILD > $AUX_TMP 2>&1 & PID=$!
+
+# Return pid from process
+echo $PID
diff --git a/branches/0.6/utils/merge-template b/branches/0.6/utils/merge-template
new file mode 100755
index 0000000..3df5f7a
--- /dev/null
+++ b/branches/0.6/utils/merge-template
@@ -0,0 +1,37 @@
+#!/bin/bash
+#
+# This software 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.
+#
+# This software 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
+#
+# tip: to assemble a template from all slack tagfiles:
+#
+# for diskset in a ap d e f k l n t tcl x xap y; do
+# lynx -dump http://slack.sarava.org/slackware/slackware-10.2/slackware/$diskset/tagfile >> slack.template
+# done
+#
+
+if [ -z "$2" ]; then
+ echo "usage: `basename $0` <template> <base-template>"
+ exit 1
+elif [ ! -f "$1" ] || [ ! -f "$2" ]; then
+ echo error: $1 ou $2 not found
+ exit 1
+fi
+
+cp $2 $1.new
+
+cat $1 | while read line; do
+ pack="`echo $line | cut -d : -f 1`"
+ if ! grep -qe "^$pack:" $2; then
+ echo $line >> $1.new
+ fi
+done
diff --git a/branches/0.6/utils/metapkg b/branches/0.6/utils/metapkg
new file mode 100755
index 0000000..e3db602
--- /dev/null
+++ b/branches/0.6/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
diff --git a/branches/0.6/utils/searchpkg b/branches/0.6/utils/searchpkg
new file mode 100755
index 0000000..cc5a827
--- /dev/null
+++ b/branches/0.6/utils/searchpkg
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# This software 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.
+#
+# This software 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
+#
+# searchpkg: search packages inside a local slackware-like repository
+# this is part of simplepkg
+# feedback: rhatto at riseup.net | gpl
+#
+
+# find . -type f -exec ls -l {} \; > FILELIST.TXT
+
+if [[ $# != 1 && $# != 2 ]]; then
+ echo "usage: $0 [-1] <repository> [package-name]"
+ echo "package-name can be either the full package file name, just its prefix or so"
+ echo "option -1 show just the first matching package"
+ exit 1
+fi
+
+FILELIST="$1/FILELIST.TXT"
+PACKAGE_FIELD="8"
+
+if [ -z "$2" ]; then
+ grep .tgz $FILELIST
+else
+ grep -e "$2" $FILELIST | grep tgz | awk "{ print \$$PACKAGE_FIELD }"
+fi