From d0a7843a8bbd5b6b9f9bb9b238f405c222e4aa39 Mon Sep 17 00:00:00 2001 From: rudson Date: Sat, 21 Apr 2007 16:37:55 +0000 Subject: atualizações ao branches/0.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@356 04377dda-e619-0410-9926-eae83683ac58 --- branches/0.6/conf/generic.mkSlackBuild.new | 250 --------------- branches/0.6/conf/simplepkg.conf.new | 20 ++ branches/0.6/lib/common.sh | 14 +- branches/0.6/mkbuild/generic.mkSlackBuild.new | 250 +++++++++++++++ branches/0.6/src/createpkg | 47 ++- branches/0.6/src/mkbuild | 444 ++++++++++++++------------ 6 files changed, 560 insertions(+), 465 deletions(-) delete mode 100644 branches/0.6/conf/generic.mkSlackBuild.new create mode 100644 branches/0.6/mkbuild/generic.mkSlackBuild.new (limited to 'branches') diff --git a/branches/0.6/conf/generic.mkSlackBuild.new b/branches/0.6/conf/generic.mkSlackBuild.new deleted file mode 100644 index 6b5473e..0000000 --- a/branches/0.6/conf/generic.mkSlackBuild.new +++ /dev/null @@ -1,250 +0,0 @@ -################################################### -## Generic template for SlackBuilds -## -## Version 0.8.1 - Luis ( luis at riseup d0t net) -## -################################################### - all -#!/bin/bash -# -# SlackBuild for [[PROGRAM NAME]] -# [[PROGRAM URL]] -# -# Author: [[SLACKBUILD AUTHOR]] -# - - - all -# Look for slackbuildrc -if [ -f ~/.slackbuildrc ]; then - source ~/.slackbuildrc -elif [ -f /etc/slackbuildrc ]; then - source /etc/slackbuildrc -fi - - - all -# Set variables -CWD="$(pwd)" -SRC_NAME="[[SOURCE NAME]]" -PKG_NAME="[[PACKAGE NAME]]" -ARCH=${ARCH:=[[ARCH]]} -SRC_VERSION=${VERSION:=[[VERSION]]} -PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" -BUILD=${BUILD:=1[[SLACKBUILD AUTHOR INITIALS]]} -SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME -TMP=${TMP:=/tmp} -PKG=${PKG:=$TMP/package-$PKG_NAME} -REPOS=${REPOS:=$TMP} -PREFIX=${PREFIX:=[[PREFIX]]} -PKG_SRC="$TMP/$SRC_NAME-$SRC_VERSION" -CONF_OPTIONS=${CONF_OPTIONS:=[[OTHER CONFIGURE ARGS]]} -NUMJOBS=${NUMJOBS:="-j4"} - - - all -# Set system libraries' path and optmization flags based on $ARCH -LIBDIR="$PREFIX/lib" - -if [ "$ARCH" = "i386" ]; then - SLKCFLAGS="-O2 -march=i386 -mcpu=i686" -elif [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mcpu=i686" -elif [ "$ARCH" = "i686" ]; then - SLKCFLAGS="-O2 -march=i686" -elif [ "$ARCH" = "s390" ]; then - SLKCFLAGS="-O2" -elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-O2" - LIBDIR="$PREFIX/lib64" -fi - - - on -# Set error codes (used by createpkg) -ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 -ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 -ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 -ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 - - - all -# Clean up any leftovers of previous builds -rm -rf "$PKG_SRC" 2> /dev/null -rm -rf "$PKG" 2> /dev/null - -# Create directories if necessary -mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR -mkdir -p "$PKG" || exit $ERROR_MKDIR -mkdir -p "$REPOS" || exit $ERROR_MKDIR - - - on -# Dowload source if necessary -SRC="$SRC_NAME-$SRC_VERSION.tar.[[SOURCE EXTENSION]]" -URL="[[DOWNLOAD FOLDER URL]]/$SRC" - -if [ ! -s "$SRC_DIR/$SRC" ] || ! [[DECOMPRESSOR]] [[DECOMPRESSOR TEST FLAG]] "$SRC_DIR/$SRC" 2> /dev/null; then - wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET -fi - - - off -# Download source's MD5 checksum if necessary and check it -if [ ! -s "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" ]; then - wget "$URL.[[MD5SUM EXTENSION]]" -O "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" || exit $ERROR_WGET -fi - -MD5SUM_SRC="$(md5sum "$SRC_DIR/$SRC" | cut -d " " -f 1)" -MD5SUM_URL="$(grep "$SRC[ \t]*$" "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" | cut -d " " -f 1)" - -[ "$MD5SUM_SRC" == "$MD5SUM_URL" ] || exit $ERROR_MD5 - - - off -# Import minimized signing key from -# [[SIGNING KEY URL]] -gpg --import << EOKEY || exit $ERROR_GPG -[[SIGNING KEY]] -EOKEY - -# Dowload source's signature if necessary and check it -if [ ! -s "$SRC_DIR/$SRC.sig" ]; then - wget "$URL.sig" -O "$SRC_DIR/$SRC.sig" || exit $ERROR_WGET -fi - -gpg --verify "$SRC_DIR/$SRC.sig" "$SRC_DIR/$SRC" || exit $ERROR_GPG - - - all -# Untar -cd "$TMP" -tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR -cd "$PKG_SRC" - - - off -# Patch source -patches="[[PATCH FILES]] - $PKG_NAME.diff $PKG_NAME-$PKG_VERSION.diff - $PKG_NAME-$PKG_VERSION-$ARCH.diff $PKG_NAME-$ARCH.diff" -for patch in $patches; do - if [ -f "$CWD/$patch" ]; then - patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$CWD/$patch" || exit $ERROR_PATCH - elif [ -f "$CWD/patches/$patch" ]; then - patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$CWD/patches/$patch" || exit $ERROR_PATCH - fi -done - - - on -# Configure -CFLAGS="$SLKCFLAGS" \ - CXXFLAGS="$SLKCFLAGS" \ - ./configure \ - --prefix="$PREFIX" --libdir="$LIBDIR" "$CONF_OPTIONS" || exit $ERROR_CONF - - - all -# Compile -make $NUMJOBS || exit $ERROR_MAKE - - - all -# Install -make install DESTDIR="$PKG" || exit $ERROR_INSTALL - - - on -# Strip binaries -( cd "$PKG" - find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ - xargs strip --strip-unneeded 2> /dev/null - find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ - xargs strip --strip-unneeded 2> /dev/null -) - - - off -# Compress and link manpages -if [ -d "$PKG/$PREFIX/man" ]; then - ( cd "$PKG/$PREFIX/man" - for manpagedir in $(find . -type d -name "man*") ; do - ( cd $manpagedir - for eachpage in $( find . -type l -maxdepth 1) ; do - ln -s $( readlink $eachpage ).gz $eachpage.gz - rm $eachpage - done - gzip -9 *.? - ) - done - ) -fi - - - off -# Compress info files -if [ -d "$PKG/$PREFIX/info" ]; then - ( cd "$PKG/$PREFIX/info" - rm -f dir - gzip -9 * - ) -fi - - - on -# Install documentation -DOCS="[[DOCUMENTATION FILES]]" -mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR -cp -a $DOCS "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" - - - on -# Add package description (slack-desc) -mkdir -p "$PKG/install" || exit $ERROR_MKDIR -cat << EODESC > "$PKG/install/slack-desc" -# HOW TO EDIT THIS FILE: -# The "handy ruler" below makes it easier to edit a package description. Line -# up the first '|' above the ':' following the base package name, and the '|' -# on the right side marks the last column you can put a character in. You must -# make exactly 11 lines for the formatting to be correct. It's also -# customary to leave one space after the ':'. - - |-----handy-ruler------------------------------------------------------| -[[SLACK-DESC]] -EODESC - - - off -# Add a post-installation script (doinst.sh) -cat << EOSCRIPT > "$PKG/install/doinst.sh" -config() { - NEW="\$1" - OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" - # If there's no config file by that name, mv it over: - if [ ! -r \$OLD ]; then - mv \$NEW \$OLD - elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then - # toss the redundant copy - rm \$NEW - fi - # Otherwise, we leave the .new copy for the admin to consider... -} - -config path/to/config_file.new -[[REST OF DOINST.SH]] -EOSCRIPT - - - all -# Build the package -cd "$PKG" -makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG - - - on -# Delete source and build directories if requested -if [ "$CLEANUP" == "yes" ]; then - rm -rf "$PKG_SRC" "$PKG" -fi - diff --git a/branches/0.6/conf/simplepkg.conf.new b/branches/0.6/conf/simplepkg.conf.new index 6a3c687..8878dcf 100644 --- a/branches/0.6/conf/simplepkg.conf.new +++ b/branches/0.6/conf/simplepkg.conf.new @@ -123,3 +123,23 @@ TEMPLATE_FOLDER="/etc/simplepkg/templates" # This variable has backwards purposes only, so dont change it. TEMPLATE_STORAGE_STYLE="own-folder" +#--------------------------------------------------------------------- +# MKBUILD AND CREATEPKG SECTION +#--------------------------------------------------------------------- +# Set SlackBuilds default directory from scripts +SLACKBUILD_DIR="/var/slackbuilds" + +# Set binaries default repository directory +MAKEPKG_REPOS="/var/createpkg" + +# Remove old packages from repository tree by createpkg +# 0 enable +# 1 desable +REMOVE_OLD_PACKAGE=1 + +# Move package to SlackBuilds-like tree +# 0 enable +# 1 desable +MOVE_BIN_PACKAGE=1 + +#--------------------------------------------------------------------- diff --git a/branches/0.6/lib/common.sh b/branches/0.6/lib/common.sh index 5c53a09..c501722 100644 --- a/branches/0.6/lib/common.sh +++ b/branches/0.6/lib/common.sh @@ -5,7 +5,7 @@ # # Uses some functions from pkgtools, which license is: # -# Copyright 1999 Patrick Volkerding, Moorhead, Minnesota, USA +# Copyright 1999 Patrick Volkerding, Moorhead, Minnesota, USA # Copyright 2001, 2002, 2003 Slackware Linux, Inc., Concord, California, USA # All rights reserved. # @@ -257,6 +257,14 @@ function eval_config { # now we place "patches" on the top of ROOT_PRIORITY ROOT_PRIORITY="patches `echo $ROOT_PRIORITY | sed -e 's/patches//'`" + # ---------------------------------------------------------------- + # createpkg and mkbuild section + SLACKBUILD_DIR="`eval_parameter SLACKBUILD_DIR /var/slackbuilds`" + MAKEPKG_REPOS="`eval_parameter MAKEPKG_REPOS /var/simplaret/binaries`" + REMOVE_OLD_PACKAGE="`eval_boolean_parameter REMOVE_OLD_PACKAGE 1`" + MOVE_BIN_PACKAGE="`eval_boolean_parameter MOVE_BIN_PACKAGE 1`" + # ---------------------------------------------------------------- + else echo $1 error: config file $CONFIG not found exit 1 @@ -271,7 +279,7 @@ function eval_config { fi if [ -z "$ARCH" ]; then - ARCH="$DEFAULT_ARCH" + ARCH="$DEFAULT_ARCH" fi if [ -z "$VERSION" ]; then @@ -527,7 +535,7 @@ function copy_template_files { # usage: copy_template_files if [ -d "$1" ]; then - if [ -d "$TEMPLATE_BASE.d" ]; then + if [ -d "$TEMPLATE_BASE.d" ]; then echo "Copying template files to $1..." if use_svn && [ -d "$TEMPLATE_BASE.d/.svn" ]; then rsync -av --exclude=.svn $TEMPLATE_BASE.d/ $1/ diff --git a/branches/0.6/mkbuild/generic.mkSlackBuild.new b/branches/0.6/mkbuild/generic.mkSlackBuild.new new file mode 100644 index 0000000..6b5473e --- /dev/null +++ b/branches/0.6/mkbuild/generic.mkSlackBuild.new @@ -0,0 +1,250 @@ +################################################### +## Generic template for SlackBuilds +## +## Version 0.8.1 - Luis ( luis at riseup d0t net) +## +################################################### + all +#!/bin/bash +# +# SlackBuild for [[PROGRAM NAME]] +# [[PROGRAM URL]] +# +# Author: [[SLACKBUILD AUTHOR]] +# + + + all +# Look for slackbuildrc +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + + + all +# Set variables +CWD="$(pwd)" +SRC_NAME="[[SOURCE NAME]]" +PKG_NAME="[[PACKAGE NAME]]" +ARCH=${ARCH:=[[ARCH]]} +SRC_VERSION=${VERSION:=[[VERSION]]} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1[[SLACKBUILD AUTHOR INITIALS]]} +SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME +TMP=${TMP:=/tmp} +PKG=${PKG:=$TMP/package-$PKG_NAME} +REPOS=${REPOS:=$TMP} +PREFIX=${PREFIX:=[[PREFIX]]} +PKG_SRC="$TMP/$SRC_NAME-$SRC_VERSION" +CONF_OPTIONS=${CONF_OPTIONS:=[[OTHER CONFIGURE ARGS]]} +NUMJOBS=${NUMJOBS:="-j4"} + + + all +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" + LIBDIR="$PREFIX/lib64" +fi + + + on +# Set error codes (used by createpkg) +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 + + + all +# Clean up any leftovers of previous builds +rm -rf "$PKG_SRC" 2> /dev/null +rm -rf "$PKG" 2> /dev/null + +# Create directories if necessary +mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR +mkdir -p "$PKG" || exit $ERROR_MKDIR +mkdir -p "$REPOS" || exit $ERROR_MKDIR + + + on +# Dowload source if necessary +SRC="$SRC_NAME-$SRC_VERSION.tar.[[SOURCE EXTENSION]]" +URL="[[DOWNLOAD FOLDER URL]]/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! [[DECOMPRESSOR]] [[DECOMPRESSOR TEST FLAG]] "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi + + + off +# Download source's MD5 checksum if necessary and check it +if [ ! -s "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" ]; then + wget "$URL.[[MD5SUM EXTENSION]]" -O "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" || exit $ERROR_WGET +fi + +MD5SUM_SRC="$(md5sum "$SRC_DIR/$SRC" | cut -d " " -f 1)" +MD5SUM_URL="$(grep "$SRC[ \t]*$" "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" | cut -d " " -f 1)" + +[ "$MD5SUM_SRC" == "$MD5SUM_URL" ] || exit $ERROR_MD5 + + + off +# Import minimized signing key from +# [[SIGNING KEY URL]] +gpg --import << EOKEY || exit $ERROR_GPG +[[SIGNING KEY]] +EOKEY + +# Dowload source's signature if necessary and check it +if [ ! -s "$SRC_DIR/$SRC.sig" ]; then + wget "$URL.sig" -O "$SRC_DIR/$SRC.sig" || exit $ERROR_WGET +fi + +gpg --verify "$SRC_DIR/$SRC.sig" "$SRC_DIR/$SRC" || exit $ERROR_GPG + + + all +# Untar +cd "$TMP" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +cd "$PKG_SRC" + + + off +# Patch source +patches="[[PATCH FILES]] + $PKG_NAME.diff $PKG_NAME-$PKG_VERSION.diff + $PKG_NAME-$PKG_VERSION-$ARCH.diff $PKG_NAME-$ARCH.diff" +for patch in $patches; do + if [ -f "$CWD/$patch" ]; then + patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$CWD/$patch" || exit $ERROR_PATCH + elif [ -f "$CWD/patches/$patch" ]; then + patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$CWD/patches/$patch" || exit $ERROR_PATCH + fi +done + + + on +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" "$CONF_OPTIONS" || exit $ERROR_CONF + + + all +# Compile +make $NUMJOBS || exit $ERROR_MAKE + + + all +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL + + + on +# Strip binaries +( cd "$PKG" + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + + + off +# Compress and link manpages +if [ -d "$PKG/$PREFIX/man" ]; then + ( cd "$PKG/$PREFIX/man" + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + + + off +# Compress info files +if [ -d "$PKG/$PREFIX/info" ]; then + ( cd "$PKG/$PREFIX/info" + rm -f dir + gzip -9 * + ) +fi + + + on +# Install documentation +DOCS="[[DOCUMENTATION FILES]]" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +cp -a $DOCS "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" + + + on +# Add package description (slack-desc) +mkdir -p "$PKG/install" || exit $ERROR_MKDIR +cat << EODESC > "$PKG/install/slack-desc" +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +[[SLACK-DESC]] +EODESC + + + off +# Add a post-installation script (doinst.sh) +cat << EOSCRIPT > "$PKG/install/doinst.sh" +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then + # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config path/to/config_file.new +[[REST OF DOINST.SH]] +EOSCRIPT + + + all +# Build the package +cd "$PKG" +makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG + + + on +# Delete source and build directories if requested +if [ "$CLEANUP" == "yes" ]; then + rm -rf "$PKG_SRC" "$PKG" +fi + diff --git a/branches/0.6/src/createpkg b/branches/0.6/src/createpkg index 03612a9..757972e 100644 --- a/branches/0.6/src/createpkg +++ b/branches/0.6/src/createpkg @@ -31,7 +31,24 @@ # Createpkg functions #--------------------------------------------------- -CREATEPKG_VERSION="1.0.5" +CREATEPKG_VERSION="1.0.5.1" + +# Start common.sh functions +COMMON="/usr/libexec/simplepkg/common.sh" +BASENAME="`basename $0`" + +if [ -f "$COMMON" ]; then + source $COMMON +else + echo "error: file $COMMON found, check your $BASENAME installation" + mk_exit 0 +fi + +# Load simplepkg.conf variables +eval_config $BASENAME + +# Enable debug mode +#set -x function error_codes { @@ -140,7 +157,7 @@ function build_repo { function usage { - # Help mensage + # Help message eecho $commun "Createpkg version $CREATEPKG_VERSION\n" eecho $commun "Usage: createpkg [--install/-i] package-name" eecho $commun " createpkg --no-deps/-np package-name" @@ -485,27 +502,31 @@ eecho $messag "$BASENAME: processing $SCRIPT_NAME" # Change to script base directory cd $SCRIPT_BASE +# Execute SlackBuild script with variables protection +( INTERACT=no sh ./$SCRIPT_NAME ) + +# Check if package was built +handle_error $? $PACKAGE + +# Get package name +PKG_NAME="`ls -1 -c $REPOS/$PACKAGE-*-*-*.tgz | head -n 1 | xargs basename`" + # Select repository directory NEW_REPOS=$REPOS/$( echo ${SCRIPT_BASE#$SLACKBUILDS_DIR/} ) # Create repository directory [ ! -e $NEW_REPOS ] && mkdir -p $NEW_REPOS 2>/dev/null +# Remove old packages from repository tree +[ $REMOVE_OLD_PACKAGE -eq 0 ] && rm $NEW_REPOS/$PACKAGE-*-*-*.tgz 2>/dev/null -# Remove old-versions -rm $NEW_REPOS/$PACKAGE-*-*-*.tgz 2>/dev/null - -# Execute SlackBuild script with variables protection -( INTERACT=no REPOS=$NEW_REPOS sh ./$SCRIPT_NAME ) - -# Check if package was built -handle_error $? $PACKAGE - -PKG_TGZ="`ls -1 -c $NEW_REPOS/$PACKAGE-*-*-*.tgz | head -n 1`" +# Move package to SlackBuilds-like tree +[ $MOVE_BIN_PACKAGE -eq 0 ] && mv $REPOS/$PKG_NAME $NEW_REPOS/ +# Install package if [ "$INSTALL" == "1" ]; then # as we dont have the full package file name, we'll # use the newer file name that matches our wildcard: - upgradepkg --install-new $PKG_TGZ + upgradepkg --install-new $NEW_REPOS/$PKG_NAME fi diff --git a/branches/0.6/src/mkbuild b/branches/0.6/src/mkbuild index cae7224..bc0786d 100755 --- a/branches/0.6/src/mkbuild +++ b/branches/0.6/src/mkbuild @@ -12,38 +12,37 @@ # Turn off debug set +x # -# Version 0.9.18 -PROG_VERSION=0.9.18 +# Version 0.9.19 +PROG_VERSION=0.9.19 #-------------------------------------------------------------------- # Functions #-------------------------------------------------------------------- -# Show ./configure --help -function config_help() -{ +function config_help { + + # Show ./configure --help view_file "Check ./configure --help" $CONFIG_HELP } -# Show file -# INPUT: $1 string textbox -# $2 file -function view_file() -{ +function view_file { + + # Show file + # INPUT: $1 string textbox + # $2 file [ $# -ne 2 ] && return 1 dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title " $1 " --textbox $2 20 75 } -# Exit function -function mk_exit() -{ +function mk_exit { + # Exit function clean_all clear exit $1 } -# Clear all temp files -function clean_all() -{ +function clean_all { + + # Clear all temp files [ -s $DEPENDENCY_LIST ] && cp $DEPENDENCY_LIST $BASEDIR/slack-required rm $AUX_TMP 2>/dev/null @@ -57,23 +56,23 @@ function clean_all() fi } -# Print from file $2, the lines betwen <$1> and lines -function print_lines() -{ +function print_lines { + + # Print from file $2, the lines betwen <$1> and lines [ $# -ne 2 ] && mk_exit 1 eval "sed -n '/<$1>/,/<\/$1>/ { /<$1>/ b; /<\/$1>/ b; p; }' $2" } -# Print from file $2, the lines betwen <$1> and $2 lines -function print_lines_to() -{ +function print_lines_to { + + # Print from file $2, the lines betwen <$1> and $2 lines [ $# -ne 3 ] && mk_exit 1 eval "sed -n '/<$1>/,/$2/ { /<$1>/ b; /$2/ b; p; }' $3" } -# Make slack-desc file -function mk_slackdesc() -{ +function mk_slackdesc { + + # Make slack-desc file print_lines_to "slackdesc" "|-----" $SB_MODEL echo -n $MK_PKGNAME | tr [a-z+\-] " " echo -n "|-----handy-ruler" @@ -89,18 +88,18 @@ function mk_slackdesc() print_lines "slackdesc" $SB_MODEL | sed '1,/\]\]/ d' } -# Get label status from SlackBuild model -function get_status() -{ +function get_status { + + # Get label status from SlackBuild model [ $# -ne 2 ] && mk_exit 1 eval "sed -n '/<$1>/ p' $2 | sed 's/.*> \([a-z]\+\)/\1/'" } -# Get status from edited SlackBuild -# input: $1 -> section name -# output: section status and section number -function mk_status() -{ +function mk_status { + + # Get status from edited SlackBuild + # input: $1 -> section name + # output: section status and section number for i in `seq 0 $MAXSECTION`;do if [ "${SECTION_NAME[i]}" = "$1" ]; then echo "${SECTION_FLAG[i]} $i" @@ -110,9 +109,9 @@ function mk_status() return 1 } -# Edit file $3, by change string [[$1]] to $2 -function edit_file() -{ +function edit_file { + + # Edit file $3, by change string [[$1]] to $2 local STR_OLD local STR_NEW @@ -123,9 +122,9 @@ function edit_file() mv $AUX_TMP $3 } -# Unpackage source -function unpkg_source() -{ +function unpkg_source { + + # Unpackage source # FIXME: if MK_DECOMPRESSOR -ne bunzip2 or gunzip... if [ $MK_DECOMPRESSOR = "bunzip2" -o $MK_DECOMPRESSOR = "gunzip" ]; then dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" \ @@ -143,22 +142,22 @@ function unpkg_source() fi } -# Download source -function download_url() -{ +function download_url { + + # Download source clear - mkdir -p $MK_SOURCEDIR/$MK_PKGNAME 2>/dev/null - wget --continue --limit-rate=$MK_LIMITRATE $MK_URL -P $MK_SOURCEDIR/$MK_PKGNAME/ + mkdir -p $MK_SOURCE_DIR/$MK_PKGNAME 2>/dev/null + wget --continue --limit-rate=$MK_LIMITRATE $MK_URL -P $MK_SOURCE_DIR/$MK_PKGNAME/ if [ $? -ne 0 ]; then echo "URL error" return 0 fi - MK_SOURCE=$MK_SOURCEDIR/$MK_PKGNAME/$MK_SRCNAME + MK_SOURCE=$MK_SOURCE_DIR/$MK_PKGNAME/$MK_SRCNAME } -# Select source file -function select_source() -{ +function select_source { + + # Select source file MK_SOURCE=$BASEDIR while [ ! -f $MK_SOURCE ]; do MK_SOURCE=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" \ @@ -170,27 +169,28 @@ function select_source() done MK_SRCNAME=`basename $MK_SOURCE` - MK_SOURCEDIR=`dirname $MK_SOURCE` + MK_SOURCE_DIR=`dirname $MK_SOURCE` } #-------------------------------------------------------------------- # Edit functions #-------------------------------------------------------------------- -# Edit authot, Initials and editor -function edit_author() -{ - MK_AUTHOR=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter with author complite name:" 8 60 "$MK_AUTHOR"` - edit_file "AUTHOR NAME" "$MK_AUTHOR" ~/.mkslackbuild + +function edit_author { + + # Edit authot, Initials and editor + MK_AUTHOR=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter with author name:" 8 60 "$MK_AUTHOR"` + edit_file "AUTHOR NAME" "$MK_AUTHOR" $MK_SLACKBUILD_RC MK_AUTHOR_INITIALS=`echo $MK_AUTHOR | sed 's/ /\n/g' | sed 's/^\([A-Z]\).*/\1/' | sed ':i; $!N; s/\n//; ti' | tr [A-Z] [a-z]` MK_AUTHOR_INITIALS=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter with author assignature:" 8 60 "$MK_AUTHOR_INITIALS"` - edit_file "AUTHOR INITIALS" "$MK_AUTHOR_INITIALS" ~/.mkslackbuild + edit_file "AUTHOR INITIALS" "$MK_AUTHOR_INITIALS" $MK_SLACKBUILD_RC MK_EDITOR=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter with editor command:" 8 60 "pico"` - edit_file "EDITOR" "$MK_EDITOR" ~/.mkslackbuild + edit_file "EDITOR" "$MK_EDITOR" $MK_SLACKBUILD_RC - MK_SOURCEDIR=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter with sources directory:" 8 60 "\`pwd\`"` - edit_file "SOURCE DIR" "$MK_SOURCEDIR" ~/.mkslackbuild + MK_SOURCE_DIR=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter with sources directory:" 8 60 "\`pwd\`"` + edit_file "SOURCE DIR" "$MK_SOURCE_DIR" $MK_SLACKBUILD_RC if [ "$USER" != "root" ]; then SLACKBUILDRC=`[ -e ~/.slackbuildrc ] && echo ~/.slackbuildrc || echo /etc/slackbuildrc` @@ -201,38 +201,35 @@ function edit_author() fi MK_REPOS=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter with binary repository directory:" 8 60 "$MK_REPOS"` - edit_file "REPOS DIR" "$MK_REPOS" ~/.mkslackbuild - - MK_SLACKBUILD_DIR=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter with binary repository directory:" 8 60 "$MK_SLACKBUILD_DIR"` - edit_file "SLACKBUILD DIR" "$MK_SLACKBUILD_DIR" ~/.mkslackbuild + edit_file "REPOS DIR" "$MK_REPOS" $MK_SLACKBUILD_RC MK_ARCH=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter default architecture to SlackBuild:" 8 60 "i468"` - edit_file "DEFAULT ARCH" "$MK_ARCH" ~/.mkslackbuild + edit_file "DEFAULT ARCH" "$MK_ARCH" $MK_SLACKBUILD_RC MK_LIMITRATE=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter wget limit rate:" 8 60 "120k"` - edit_file "LIMIT RATE" "$MK_LIMITRATE" ~/.mkslackbuild + edit_file "LIMIT RATE" "$MK_LIMITRATE" $MK_SLACKBUILD_RC } -# Edit source URL -function edit_url() -{ +function edit_url { + + # Edit source URL MK_URL=${MK_URL:="http://downloads.sourceforge.net/"} MK_URL=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --cancel-label "Main Menu" --title "$MK_TITLE" --inputbox "Enter with complite URL from source:" 8 60 "$MK_URL"` [ $? -ne 0 ] && return 100 } -# Edit source name -function edit_source_name() -{ +function edit_source_name { + + # Edit source name # Carrega nome do arquivo MK_SRCNAME=`basename $MK_URL` MK_SRCNAME=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --cancel-label "Main Menu" --title "$MK_TITLE" --inputbox "Enter with source file name:" 8 60 "$MK_SRCNAME"` [ $? -ne 0 ] && return 100 } -# Edit MK_PKGNAME, MK_VERSION and MK_EXTENSION -function edit_pkgname() -{ +function edit_pkgname { + + # Edit MK_PKGNAME, MK_VERSION and MK_EXTENSION # Remove nome, versão e extensão do nome da fonte MK_SRC_NAME=`echo $MK_SRCNAME | sed -r 's/(.*)-(.*)\.(.*\..*)$/\1/'` MK_PKGNAME=`echo $MK_SRC_NAME | tr [A-Z_] [a-z\-]` @@ -255,9 +252,9 @@ function edit_pkgname() MK_EXTENSION=`echo $ANS | awk '{print $4}'` } -# Edit MK_DECOMPRESSOR and MK_DECOMPRESSOR_TEST_FLAG -function edit_decompress_arg() -{ +function edit_decompress_arg { + + # Edit MK_DECOMPRESSOR and MK_DECOMPRESSOR_TEST_FLAG # Remove nome, versão e extensão do nome da fonte MK_DECOMPRESSOR="" MK_DECOMPRESSOR_TEST_FLAG="" @@ -274,9 +271,9 @@ function edit_decompress_arg() MK_DECOMPRESSOR_TEST_FLAG=`echo $ANS3 | awk '{print $2}'` } -# Edit configure options -function edit_configure() -{ +function edit_configure { + + # Edit configure options CONFIG_HELP=`mktemp -p /tmp/ config_$MK_PKGNAME.XXXXXX` $MK_TMPSRC/configure --help > $CONFIG_HELP @@ -335,9 +332,9 @@ function edit_configure() done } -# Show Documentations files -function view_docs() -{ +function view_docs { + + # Show Documentations files local MENU="" local SELECT="" local ANS2=0 @@ -353,9 +350,9 @@ function view_docs() done } -# Edit documentations files -function edit_docfiles() -{ +function edit_docfiles { + + # Edit documentations files [ -z $MK_TMPSRC ] && return 0 if [ -e $MK_TMPSRC ]; then @@ -374,9 +371,9 @@ function edit_docfiles() MK_DOCFILES="`echo $SELECTDOCS | sed ':i; N; s/\n/ /; bi'`" } -# Edit compiler architecture -function edit_arch() -{ +function edit_arch { + + # Edit compiler architecture MK_ARCH=`dialog --stdout --backtitle "Make SlackBuild documentation files below:" --cancel-label "Main Menu" --title "$MK_TITLE" --inputbox "Set an architecture to compiler:" 8 45 $MK_ARCH` [ $? -ne 0 ] && return 100 } @@ -384,9 +381,10 @@ function edit_arch() #-------------------------------------------------------------------- # Mount files #-------------------------------------------------------------------- -# Change string $1 to $2 in all files in the current directory -function change_strings() -{ + +function change_strings { + + # Change string $1 to $2 in all files in the current directory [ $# -ne 2 ] && mk_exit 1 #[ -z "$2" ] && return 0 eval "grep -l \"\[\[$1\]\]\" *" | while read FILE; do @@ -394,9 +392,9 @@ function change_strings() done } -# Build initial sections -function start_build() -{ +function start_build { + + # Build initial sections change_strings "SLACKBUILD AUTHOR" "$MK_AUTHOR" change_strings "SLACKBUILD AUTHOR INITIALS" $MK_AUTHOR_INITIALS change_strings "SOURCE NAME" "$MK_SRC_NAME" @@ -418,13 +416,13 @@ function start_build() change_strings "PREFIX" "$MK_PREFIX" } -# Mount final SlackBuild -function mount_slackbuild() -{ +function mount_slackbuild { + + # Mount final SlackBuild dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --infobox "SlackBuild save in $SLACKBUILD" 5 45 rm $SLACKBUILD 2>/dev/null -# [ ! -e `dirname $SLACKBUILD` ] && mkdir `dirname $SLACKBUILD` + for i in `seq 0 $MAXSECTION`; do if [ "${SECTION_FLAG[i]}" = "all" -o "${SECTION_FLAG[i]}" = "on" ]; then cat ${SECTION_NAME[i]}_$MK_PKGNAME.mkbuild >> $SLACKBUILD @@ -434,9 +432,9 @@ function mount_slackbuild() chmod +x $SLACKBUILD } -# Mount SlackBuild to section $1 -function mount_slackbuild_to() -{ +function mount_slackbuild_to { + + # Mount SlackBuild to section $1 if [ $# -eq 1 ]; then END_SECTION=$1 dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --infobox "SlackBuild save in $SLACKBUILD.test" 5 45 @@ -454,9 +452,9 @@ function mount_slackbuild_to() fi } -# Make files section -function make_file_sections() -{ +function make_file_sections { + + # Make files section THIS_MODEL=$1 # Create SlackBuilds-sections files @@ -485,8 +483,9 @@ function make_file_sections() md5sum *.mkbuild > md5sum } -function get_source_dialog() -{ +function get_source_dialog { + + # if [ ! -e $MK_SOURCE ]; then dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" \ --title "$MK_TITLE" --yesno " Download $MK_SRCNAME? " 5 50 @@ -500,8 +499,9 @@ function get_source_dialog() } -function test_source() -{ +function test_source { + + # local TEST=1 local ANS=0 @@ -522,10 +522,10 @@ function test_source() done } -# Configure test source variables -function set_source_test() -{ - MK_SOURCE=$MK_SOURCEDIR/$MK_PKGNAME/$MK_SRCNAME +function set_source_test { + + # Configure test source variables + MK_SOURCE=$MK_SOURCE_DIR/$MK_PKGNAME/$MK_SRCNAME if [ "$MK_EXTENSION" = "tar.gz" -o "$MK_EXTENSION" = "gz" -o "$MK_EXTENSION" = "tgz" ]; then MK_DECOMPRESSOR=gunzip MK_DECOMPRESSOR_TEST_FLAG="-t" @@ -538,9 +538,9 @@ function set_source_test() fi } -# Enable MD5 or GPG signature check -function edit_signature() -{ +function edit_signature { + + # Enable MD5 or GPG signature check # GPG and MD5 test local ANS=0 @@ -560,26 +560,27 @@ function edit_signature() esac } -# Enable GPG signature check -function edit_gpg() -{ +function edit_gpg { + + # Enable GPG signature check dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" \ --title "$MK_TITLE" --msgbox "Enter with gpg minimized signing key." 5 50 $EDITOR $MK_GPGFILEKEY } -# Enable MD5SUM signature check -function edit_md5sum() -{ +function edit_md5sum { + + # Enable MD5SUM signature check echo "none" } #-------------------------------------------------------------------- # Main functions #-------------------------------------------------------------------- -# Create new SlackBuild -function create_slackbuild() -{ + +function create_slackbuild { + + # Create new SlackBuild # Config package URL edit_url [ $? -eq 100 ] && return 100 @@ -601,7 +602,7 @@ function create_slackbuild() [ $? -eq 100 ] && return 100 # Get source file - MK_SOURCE=$MK_SOURCEDIR/$MK_PKGNAME/$MK_SRCNAME + MK_SOURCE=$MK_SOURCE_DIR/$MK_PKGNAME/$MK_SRCNAME get_source_dialog [ $? -eq 100 ] && return 100 @@ -643,9 +644,9 @@ function create_slackbuild() edit_menu } -# Open mkslackbuild dialog input -function open_mkslackbuild_dialog() -{ +function open_mkslackbuild_dialog { + + # Open mkslackbuild dialog input MKSLACKBUILD=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" \ --title " Select source file name: " \ --fselect "$BASEDIR/" 10 70` @@ -655,9 +656,9 @@ function open_mkslackbuild_dialog() [ $? -eq 100 ] || return 100 } -# Open mkslackbuild -function open_mkslackbuild() -{ +function open_mkslackbuild { + + # Open mkslackbuild if [ -f $MKSLACKBUILD ]; then # Start defaults variables source $MKSLACKBUILD @@ -692,9 +693,9 @@ function open_mkslackbuild() unpkg_source } -# Save mkSlackBuild -function save_mkslackbuild() -{ +function save_mkslackbuild { + + # Save mkSlackBuild dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --infobox "mkSlackBuild save in $MKSLACKBUILD" 5 30 rm $MKSLACKBUILD 2>/dev/null @@ -726,9 +727,9 @@ function save_mkslackbuild() [ -s $DEPENDENCY_LIST ] && cp $DEPENDENCY_LIST $BASEDIR/slack-required } -# Edit Menu -function edit_menu() -{ +function edit_menu { + + # Edit Menu ANSE=0 while [ $ANSE -ne 1 ]; do # Create main-menu string @@ -770,9 +771,9 @@ function edit_menu() done } -# Edit md5sum -function md5sum_edit() -{ +function md5sum_edit { + + # Edit md5sum local SELECT=0 local FILE=$1 @@ -804,9 +805,9 @@ function md5sum_edit() $MK_EDITOR $FILE } -# Test Menu -function test_menu() -{ +function test_menu { + + # Test Menu local ANST=0 local SECTION=0 local EDITMENU="" @@ -865,9 +866,9 @@ function test_menu() done } -# Dependency Menu -function menu_dependency() -{ +function menu_dependency { + + # Dependency Menu local ANSD=11 while [ $ANSD -ne 0 ]; do ANSD=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" \ @@ -888,9 +889,9 @@ function menu_dependency() done } -# Dependency list edit -function edit_dependency() -{ +function edit_dependency { + + # Dependency list edit if [ ! -s $DEPENDENCY_LIST ]; then echo -e "# Dependency list to $MK_PKGNAME\n# \n# dependency [condition] [version]]\n" > $DEPENDENCY_LIST fi @@ -898,9 +899,9 @@ function edit_dependency() $MK_EDITOR $DEPENDENCY_LIST } -# Check dependency and comment not found dependencies -function test_dependency() -{ +function test_dependency { + + # Check dependency and comment not found dependencies local DEP_LIST="" if [ -s $DEPENDENCY_LIST ]; then @@ -924,30 +925,31 @@ function test_dependency() fi } -# Add/commit one SlackBuild -function commit_SlackBuild() -{ +function commit_SlackBuild { + + # Add/commit one SlackBuild # Mount SlackBuild mount_slackbuild MK_TITLE="Commit SlackBuild" # Find SlackBuild - SB_PATH=`find $MK_SLACKBUILD_DIR -iname $MK_PKGNAME` + SB_PATH=`find $SLACKBUILD_DIR -iname $MK_PKGNAME` # Change to SlackBuild directory - cd $MK_SLACKBUILD_DIR + cd $SLACKBUILD_DIR - # Check for new SlackBuild + # Check for dirbase to new SlackBuild if [ -z $SB_PATH ]; then # New SlackBuild AUX="" while [ -z $AUX ]; do - dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --infobox "lynx -dump http://gentoo-portage.com/Search?search=$MK_PKGNAME. Wait..." 0 0 + dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --infobox "lynx search for $MK_PKGNAME path. Wait..." 0 0 AUX=`lynx -dump http://gentoo-portage.com/Search?search=$MK_PKGNAME | sed -n '/Results:/,+1 { /Results:/ b ; p }' | head --lines=1 | tr -d " "` - # Default directory + if [ -z $AUX ]; then dialog --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --yesno "Net search error. Try again?" 0 0 if [ $? -ne 0 ]; then + # Default directory AUX="/others/unclass" SB_PATH=`dialog --stdout --backtitle "Make SlackBuild $PROG_VERSION [$MK_PKGNAME]" --title "$MK_TITLE" --inputbox "Enter dir-name to SlackBuild from $MK_PKGNAME:" 8 60 "$AUX"` fi @@ -955,6 +957,7 @@ function commit_SlackBuild() SB_PATH="`dirname $AUX | tr - /`/`basename $AUX`" fi done + # Make directory and add SlackBuild to svn svn mkdir $SB_PATH cp $BASEDIR/$MK_PKGNAME.SlackBuild $SB_PATH/ @@ -964,7 +967,7 @@ function commit_SlackBuild() svn add $SB_PATH/slack-required fi else - echo "cp $BASEDIR/$MK_PKGNAME.SlackBuild $SB_PATH/" + cp $BASEDIR/$MK_PKGNAME.SlackBuild $SB_PATH/ if [ -e $BASEDIR/slack-required ]; then cp $BASEDIR/slack-required $SB_PATH/ fi @@ -980,9 +983,9 @@ function commit_SlackBuild() read ANS1 } -# Compile SlackBuild and install -function compile_install() -{ +function compile_install { + + # Compile SlackBuild and install local ANS="" # Mount SlackBuild mount_slackbuild @@ -1030,6 +1033,48 @@ function compile_install() read ANS } +function create_slackbuildrc { + + # Create basic slackbuildrc + cat << EOF > $MK_SLACKBUILD_RC +#!/bin/bash +# mkslackbuild definitions +# +MK_AUTHOR="[[AUTHOR NAME]]" +MK_AUTHOR_INITIALS="[[AUTHOR INITIALS]]" +MK_EDITOR=[[EDITOR]] +MK_REPOS=[[REPOS DIR]] +MK_LIMITRATE=[[LIMIT RATE]] +MK_SOURCE_DIR=[[SOURCE DIR]] +MK_ARCH=[[DEFAULT ARCH]] +#SB_MODEL="my_model" +EOF + +} + +function mkslackbuild_config_start { + + # Check mkslackbuild.conf and start hi + # Create mkslackbuild.conf config script if need + if [ ! -e $MK_SLACKBUILD_RC ]; then + mkdir -p `dirname $MK_SLACKBUILD_RC` 2>/dev/null + create_slackbuildrc + fi + + # Start mkslackbuild.conf variables + source $MK_SLACKBUILD_RC + MK_SOURCE_DIR=${MK_SOURCE_DIR:=$BASEDIR} + MK_ARCH=${MK_ARCH:="i486"} + + # Configure mkslackbuild.conf variables + if [ "$MK_AUTHOR" = "[[AUTHOR NAME]]" ]; then + MK_TITLE=" Personal Config " + edit_author + MK_TITLE="" + fi + +} + # #-------------------------------------------------------------------- # Start Program @@ -1037,55 +1082,56 @@ function compile_install() # # Start variables LANG=en_US +SLACKDESC_LEN=77 BASEDIR=`pwd` + +# Start Files ------------------------------------------------------ AUX_TMP=`mktemp -p /tmp/ aux_tmp.XXXXXX` SLACKDESC_TMP=`mktemp -p /tmp/ slackdesc_tmp.XXXXXX` -SLACKDESC_LEN=77 DEPENDENCY_LIST=`mktemp -p /tmp/ slack-required.XXXXXX` +LOCAL_CONF_DIR=~/.local/etc/simplepkg +MK_SLACKBUILD_RC="$LOCAL_CONF_DIR/mkslackbuild.conf" +MK_MODEL_DIR="defaults/mkbuild" + +# Start common.sh functions ---------------------------------------- +COMMON="/usr/libexec/simplepkg/common.sh" +BASENAME="`basename $0`" + +if [ -f "$COMMON" ]; then + source $COMMON +else + echo "error: file $COMMON found, check your $BASENAME installation" + mk_exit 0 +fi + +# Load simplepkg.conf variables +eval_config $BASENAME + +# Enable debug mode ----------------------------------------------- +set -x + +# If model isn't defined, get default model. if [ -z $SB_MODEL ]; then - if [ -e ~/.generic.mkSlackBuild ]; then - SB_MODEL=~/.generic.mkSlackBuild - elif [ -e /etc/simplepkg/generic.mkSlackBuild ]; then - SB_MODEL=/etc/simplepkg/generic.mkSlackBuild + if [ -e $LOCAL_CONF_DIR/$MK_MODEL_DIR/generic.mkSlackBuild ]; then + SB_MODEL=$LOCAL_CONF_DIR/$MK_MODEL_DIR/generic.mkSlackBuild + elif [ -e $BASE_CONF/$MK_MODEL_DIR/generic.mkSlackBuild ]; then + SB_MODEL=$BASE_CONF/$MK_MODEL_DIR/generic.mkSlackBuild else echo "SlackBuild model (generic.mkSlackBuild) not found" mk_exit 0 fi fi + +# Get mkSlackBuild input [ $# -ne 0 ] && MKSLACKBUILD=${1//.*}.mkslackbuild # Clear dialog dialog --clear -# Load/create personal definitions -if [ ! -e ~/.mkslackbuild ]; then - ( cat << EOF > ~/.mkslackbuild -#!/bin/bash -# mkslackbuild definitions -# -MK_AUTHOR="[[AUTHOR NAME]]" -MK_AUTHOR_INITIALS="[[AUTHOR INITIALS]]" -MK_EDITOR=[[EDITOR]] -MK_REPOS=[[REPOS DIR]] -MK_LIMITRATE=[[LIMIT RATE]] -MK_SOURCEDIR=[[SOURCE DIR]] -MK_ARCH=[[DEFAULT ARCH]] -MK_SLACKBUILD_DIR=[[SLACKBUILD DIR]] -#SB_MODEL="my_model" -EOF -) -fi -source ~/.mkslackbuild -MK_SOURCEDIR=${MK_SOURCEDIR:=$BASEDIR} -MK_ARCH=${MK_ARCH:="i486"} - -# Config Author -if [ "$MK_AUTHOR" = "[[AUTHOR NAME]]" ]; then - MK_TITLE=" Personal Config " - edit_author - MK_TITLE="" -fi +# Check mkslackbuild.conf and start hi +mkslackbuild_config_start +# Check file.mkslackbuild file to open if [ ! -z $MKSLACKBUILD ]; then MK_TITLE=" Open mkSlackBuild " open_mkslackbuild @@ -1133,7 +1179,7 @@ while [ $ANS0 -ne 0 ]; do "5" "Save SlackBuild and mkslackbuild" \ "6" "Compile/install package" \ "7" "Remove package" \ - "8" "Commit SlackBuild to Sarava"` + "8" "Commit SlackBuild to Sarava tree"` if [ $? -ne 0 ]; then ANS0=0 @@ -1193,4 +1239,4 @@ if [ ! -z $MK_PKGNAME ]; then fi mk_exit 0 -# _________________________________END_______________________________ + -- cgit v1.2.3