#!/bin/sh # # tools/rpmbuilder.sh # # This file is part of webCDwriter - Network CD/DVD Writing. # # Copyright (C) 2002-2004 Jrg P. M. Haeger # # webCDwriter is free software. See CDWserver.cpp for details. # # Thanks to Ramon Casha for the "Self-extracting Archive HOWTO" # (see http://linux.org.mt/article/selfextract) MD5="bdc0d5efa2866ae80247ea9fb6d34c0b -" PRODUCT=webCDwriter RPM=rpm RPMBUILD=rpmbuild VERSION=2.6.6 echo echo "$PRODUCT $VERSION rpmbuilder" echo if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then echo "Usage: $0 [OPTION]" echo echo " --tar.bz2 Create $PRODUCT-$VERSION.tar.bz2" echo " --tar.gz Create $PRODUCT-$VERSION.tar.gz" echo exit 0 fi SKIP=`awk '/^__ARCHIVE_FOLLOWS__/ { print NR + 1; exit 0; }' $0` echo -n "Verifying the checksum..." MD5test="`tail +$SKIP $0 | md5sum`" if [ ! "$MD5test" = "$MD5" ]; then echo " does not match -> retry to download this installer!" echo exit 1 fi echo " OK" if [ "$1" = "--tar.bz2" ]; then echo -n "Creating $PRODUCT-$VERSION.tar.bz2... " tail +$SKIP $0 > $PRODUCT-$VERSION.tar.bz2 echo "done" exit 0 fi if [ "$1" = "--tar.gz" ]; then echo -n "Creating $PRODUCT-$VERSION.tar.gz... " tail +$SKIP $0 | bzip2 -cd - | gzip -c - > $PRODUCT-$VERSION.tar.gz echo "done" exit 0 fi if [ ! "$1" = "" ]; then echo "Invalid option $1" exit 1 fi echo -n "Get the user ID... " ID=`id -u` if [ $ID = "0" ]; then echo "$ID -> Do not run $0 as root!" exit 1 fi echo $ID echo -n "Trying to run \"g++ -v\"... " if g++ -v > /dev/null 2>&1; then echo "OK" else echo "failed. Install the \"GNU C++ compiler\"!" exit 1 fi echo -n "Trying to run \"make -v\"... " if make -v > /dev/null 2>&1; then echo "OK" else echo "failed. Install \"GNU Make\"!" exit 1 fi echo -n "Has $RPMBUILD... " if $RPMBUILD --help > /dev/null 2>&1; then echo "yes" else RPMBUILD=$RPM echo "no -> will use \"$RPMBUILD -tb\"" fi echo -n "Trying to run \"$RPM --help\"... " if $RPM --help > /dev/null 2>&1; then echo "OK" else echo "failed" exit 1 fi echo -n "Looking for an already installed $PRODUCT... " upgrade=0 if $RPM -q $PRODUCT > /dev/null 2>&1; then upgrade=1 installed=`$RPM -q $PRODUCT` echo $installed else echo "no" fi echo echo "$PRODUCT $VERSION - building RPM..." echo DIR=/tmp/$PRODUCT rm -rf $DIR/ || exit 1 mkdir -p $DIR/{BUILD,RPMS,SOURCES,SPECS,SRPMS} tail +$SKIP $0 > $DIR/$PRODUCT-$VERSION.tar.bz2 if $RPMBUILD -tb --define "_topdir $DIR/" $DIR/$PRODUCT-$VERSION.tar.bz2; then echo echo Success echo else echo echo "I am sorry, but building the RPM failed :-(" if [ "$RPMBUILD" = "$RPM" ]; then echo echo "There is no \"rpmbuild\" on your system." echo "Ask your package manager (like rpmdrake, yast2, ...) for" echo "\"rpm-build\" or a package containing \"/usr/bin/rpmbuild\"." echo fi echo "If you cannot solve the above problem yourself," echo "you may mail the above output to feedback@JoergHaeger.de" echo "Perhaps I can refine this installer in a future release ..." echo exit 1 fi RESULT=`ls $DIR/RPMS/*/*` RESULT=`basename $RESULT` mv -iv $DIR/RPMS/*/* . echo echo "To do:" echo echo "1. Become root (enter \"su\")" echo if [ $upgrade = 0 ]; then echo "2. Install $RESULT by" echo " $RPM -ihv $RESULT" else echo "2. Upgrade to $RESULT by" echo -n " $RPM -Uhv" if [ "$installed" \> "$RESULT" ]; then echo -n " --oldpackage" fi echo " $RESULT" fi echo exit 0 __ARCHIVE_FOLLOWS__ BZh91AY&SY¯3$P ^w