diff options
Diffstat (limited to 'branches/0.6/utils')
-rwxr-xr-x | branches/0.6/utils/add-gpl | 33 | ||||
-rwxr-xr-x | branches/0.6/utils/add-slack-required | 63 | ||||
-rwxr-xr-x | branches/0.6/utils/convert-template-scheme | 35 | ||||
-rwxr-xr-x | branches/0.6/utils/exec-slackbuild | 88 | ||||
-rwxr-xr-x | branches/0.6/utils/merge-template | 37 | ||||
-rwxr-xr-x | branches/0.6/utils/metapkg | 72 | ||||
-rwxr-xr-x | branches/0.6/utils/searchpkg | 36 |
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 |