Fronty - installer for SlackBuilds packages on Slackware

I have been working on a package tool to deal with installing packages from Slackbuilds.org called fronty. There are a few scripts that are required to get everything set up:

  • fronty.conf - this is the main config file setting all variables
  • build_repo.sh - downloads all the slackbuild files from www.slackbuilds.org and creates category* files
  • get_alldeps.sh which creates the file containing the dependencies for all packages
  • mk_frontytgz.sh - create a tgz of all scripts, config and *options files and drop it into /tmp
  • build_package.sh - this takes a package name as an argument and builds it along with any dependencies
  • check_updates.sh - check available updates for installed SBo packages
  • These are extras:
  • get_pkg_info.sh - get the info file for a package
  • get_pkg_readme.sh - get the readme file for a package
  • get_deps.sh - get the deps for a package
  • build_template - the build template for all build scripts
  • update_scripts.sh - updates the build scripts with the latest build_template
  • There are some build scripts in $SCRIPTS but now that I have the dependencies sorted out (get_alldeps.sh does that) it may be possible to just use build_package.sh to install packages. However some packages have optional dependent packages and my scripts do not deal with them yet. That is on my todo list.

    When creating a new build script the build template just needs PACKAGE changing on the 2nd and 3rd lines to the main name of the package being installed. The PROGS variable needs to be changed to all the packages that need to be installed. If a package has optional additional packages these can be added to PROGS= in the build script.

    Some packages have prerequisites like postfix which needs sendmail removing as updates to sendmail can break the postfix config so there is a script for that. Some packages have a script to run afterwards such as jdk - the JAVA_HOME variable needs setting otherwise the next package to be installed that requires it will not be installed. The SlackBuild script will find an empty JAVA_HOME variable and will exit.

    To install is quite easy, just extract the files and directories from the tgz. However I need to create an install script to make it easier. All it needs to do is ask where to put the sborepo directory, then it can add /etc/fronty/fronty.conf, changing $BASEDIR, source /etc/fronty/fronty.conf and add the sborepo directory and it's contents. There is one config file and a number of bash scripts. I have done my best to keep it all as simple as possible, although looking at the build scripts they ended up looking a bit more complex than I wanted but they work. As I went along I found exceptions so I had to add extra sections of code to take care of them. This oage is not complete yet, still a work in progress. If you have any questions, feel free to email me - fronty at my domain.

    Feel free to try it and let me know what you think.

    Fronty download is here. This consists of:

    fronty.conf:
    SLACKVER=$(cat /etc/slackware-version|cut -f2 -d" ")
    ARCH=$(uname -m)
    BASEDIR=/data/sborepo
    CONFIG=$BASEDIR/$SLACKVER/config
    SCRIPTS=$BASEDIR/$SLACKVER/scripts
    SOURCE=$BASEDIR/$SLACKVER/source
    MASTER=""
    FRONTY_LOGFILE=/var/log/fronty.log


    SLACKVER - the installed version of Slackware
    ARCH - the machine architecture of this machine - not used yet
    BASEDIR - the base directory under which the others (CONFIG, SCRIPTS and SOURCE) will be located
    CONFIG - this is where the Slackbuilds files for all packages will be downloaded, plus the category files and any options files
    SCRIPTS -this is where the build scripts, build template, build script update script and other scripts are located.
    SOURCE - this is where the source code is downloaded to.
    MASTER - if set this will be the server that all downloads or built packages are downloaded from first if available - this makes life easier by compiling on one machine then distributing to others, perhaps using ansible or something similar. It will require more configuration , maybe more options in fronty.conf.
    LOGFILE - logfile where all messages are currently written to.

    PHORM PROHIBITED

    The contents of this site, and communications between this site and its users, are protected by database right, copyright, confidentiality and the right not to be intercepted conferred by section 1(3) of the Regulation of Investigatory Powers Act 2000. The use of those contents and communications by Internet Service Providers or others to profile or classify users of this site for advertising or other purposes is strictly forbidden.

    my bikes computery stuff cute animals Derion gardening geek stuff hoaxes howtos jokes jokes 2 menu code newsflashes Rocky Club Blog scenery security sport& fitness stories template text jokes useful links

    Last edited 20190305-0153