2016-04-23 20:43:52 +08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2020-05-17 01:26:00 +08:00
|
|
|
# Updated: 16 May 2020
|
2019-11-04 07:40:24 +08:00
|
|
|
# MailScanner Team <https://www.mailscanner.info>
|
2018-10-23 07:37:06 +08:00
|
|
|
#
|
|
|
|
#
|
2016-04-23 20:43:52 +08:00
|
|
|
# this Build.debian script should be located in the base
|
|
|
|
# directory when run.
|
|
|
|
|
|
|
|
# make sure this is run from the base directory
|
|
|
|
if [ ! -d 'common' ]; then
|
|
|
|
echo 'This script must be executed from the base directory.';
|
|
|
|
echo;
|
|
|
|
exit 192
|
|
|
|
fi
|
|
|
|
|
2020-05-17 07:40:06 +08:00
|
|
|
if [ -z $(which fakeroot) -o -z $(which dpkg) ]; then
|
|
|
|
echo 'Required build packages are missing.';
|
|
|
|
echo 'Install fakeroot and dpkg before continuing, Exiting ...';
|
|
|
|
echo;
|
|
|
|
exit 192
|
|
|
|
fi
|
|
|
|
|
|
|
|
VERSION=$(sed -e 's/\n//' VERSION)
|
|
|
|
MSVERSION=$(echo $VERSION | sed -e 's/-.*$//')
|
|
|
|
MSBUILD=$(echo $VERSION | sed -e 's/^.*-//')
|
2020-05-17 01:26:00 +08:00
|
|
|
MSDATE=$(date +"%a %d %B %Y %H:%M:%S %z")
|
|
|
|
|
|
|
|
if [ -z $MSVERSION -o -z $MSBUILD ]; then
|
|
|
|
echo "Could not determine MailScanner version."
|
|
|
|
echo "Unable to read VERSION file."
|
|
|
|
echo;
|
|
|
|
exit 192
|
|
|
|
fi
|
|
|
|
|
2016-04-23 20:43:52 +08:00
|
|
|
# directory we are in
|
|
|
|
THISCURDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
|
|
|
|
|
|
|
# where the final file will be copied
|
2020-05-17 07:40:06 +08:00
|
|
|
FILEOUT="$HOME/msbuilds";
|
2016-04-23 20:43:52 +08:00
|
|
|
|
|
|
|
# check to see if the output directory exists
|
|
|
|
if [ ! -d "$FILEOUT" ]; then
|
|
|
|
mkdir -p $FILEOUT
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# if not set from the "Build.all" script
|
|
|
|
if [ -z "$DEVBASEDIR" ]; then
|
|
|
|
DEVBASEDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
|
|
|
#echo "You current directory is $THISCURDIR"; echo;
|
|
|
|
#echo "Enter the parent directory of RPM.files without the trailing slash: ";
|
|
|
|
#read DEVBASEDIR
|
|
|
|
export DEVBASEDIR
|
|
|
|
fi
|
|
|
|
|
|
|
|
# our working directory
|
2020-05-17 01:26:00 +08:00
|
|
|
WORK="/tmp/MailScanner-$VERSION";
|
2016-04-23 20:43:52 +08:00
|
|
|
|
|
|
|
# delete work tmp if already exists
|
|
|
|
if [ -d $WORK ]; then
|
|
|
|
rm -rf $WORK
|
|
|
|
fi
|
|
|
|
|
|
|
|
# make working dir and subs
|
|
|
|
mkdir -p $WORK
|
2016-05-10 07:45:10 +08:00
|
|
|
mkdir -p $WORK/{usr,etc}
|
2016-04-23 20:43:52 +08:00
|
|
|
|
|
|
|
# etc
|
2016-04-28 18:38:13 +08:00
|
|
|
cp -fr $DEVBASEDIR/common/etc/* $WORK/etc/
|
|
|
|
cp -fr $DEVBASEDIR/debian/etc/* $WORK/etc/
|
2016-04-23 20:43:52 +08:00
|
|
|
|
|
|
|
# usr
|
|
|
|
cp -fr $DEVBASEDIR/common/usr/* $WORK/usr/
|
|
|
|
cp -fr $DEVBASEDIR/debian/usr/* $WORK/usr/
|
|
|
|
|
|
|
|
cp -rf $DEVBASEDIR/debian/DEBIAN/ $WORK
|
2020-05-17 01:26:00 +08:00
|
|
|
perl -pi -e 's/DebianVersionHere/'$VERSION'/;' $WORK/DEBIAN/control
|
|
|
|
perl -pi -e 's/DebianVersionHere/'$VERSION'/;' $WORK/DEBIAN/changelog
|
|
|
|
perl -pi -e "s/__Date__/$MSDATE/;" $WORK/DEBIAN/changelog
|
2016-04-23 20:43:52 +08:00
|
|
|
perl -pi -e 's/VersionNumberHere/'$MSVERSION'/;' $WORK/etc/MailScanner/MailScanner.conf
|
|
|
|
perl -pi -e 's/VersionNumberHere/'$MSVERSION'/;' $WORK/usr/sbin/MailScanner
|
|
|
|
|
2016-04-28 18:38:13 +08:00
|
|
|
# remove svn and git and mac stuff
|
|
|
|
find $WORK -name '.svn' -exec rm -rf {} \;
|
|
|
|
find $WORK -name '.git' -exec rm -rf {} \;
|
|
|
|
find $WORK -name '*.DS_Store' -exec rm -rf {} \;
|
|
|
|
find $WORK -depth -name '__MACOSX' -exec rm -rf {} \;
|
|
|
|
|
2016-04-23 20:43:52 +08:00
|
|
|
cd $WORK
|
|
|
|
find . -type f -exec chmod 0644 {} \;
|
|
|
|
find . -type d -exec chmod 0755 {} \;
|
|
|
|
chmod +x $WORK/usr/sbin/*
|
|
|
|
chmod +x $WORK/DEBIAN/postinst
|
|
|
|
chmod +x $WORK/DEBIAN/preinst
|
|
|
|
chmod +x $WORK/DEBIAN/postrm
|
2016-05-10 07:45:10 +08:00
|
|
|
chmod +x $WORK/usr/lib/MailScanner/wrapper/*-autoupdate
|
|
|
|
chmod +x $WORK/usr/lib/MailScanner/wrapper/*-wrapper
|
|
|
|
chmod +x $WORK/usr/lib/MailScanner/init/*
|
2017-05-02 07:42:32 +08:00
|
|
|
chmod +x $WORK/usr/lib/MailScanner/systemd/*
|
2016-04-23 20:43:52 +08:00
|
|
|
chmod +x $WORK/etc/cron.daily/*
|
|
|
|
chmod +x $WORK/etc/cron.hourly/*
|
|
|
|
|
|
|
|
# create a working dir for package
|
|
|
|
PKGTMP="/tmp/deb.$$/";
|
2020-05-17 01:26:00 +08:00
|
|
|
mkdir -p $PKGTMP/MailScanner-${VERSION}
|
2019-11-04 07:40:24 +08:00
|
|
|
mkdir -p $WORK/usr/share/MailScanner/doc
|
|
|
|
cp $DEVBASEDIR/changelog $WORK/usr/share/MailScanner/doc/
|
|
|
|
cp $DEVBASEDIR/LICENSE $WORK/usr/share/MailScanner/doc/
|
2020-05-17 08:01:42 +08:00
|
|
|
cp $DEVBASEDIR/README.md $WORK/usr/share/MailScanner/doc/
|
2020-05-17 01:26:00 +08:00
|
|
|
fakeroot dpkg -b $WORK $PKGTMP/MailScanner-$VERSION.noarch.deb
|
2019-11-04 07:40:24 +08:00
|
|
|
#chmod +x $PKGTMP/MailScanner-${FULLMSVER}/install.sh
|
2016-04-23 20:43:52 +08:00
|
|
|
cd $PKGTMP
|
2019-11-04 07:40:24 +08:00
|
|
|
#tar czf MailScanner-${FULLMSVER}.deb.tar.gz *
|
2020-05-17 01:26:00 +08:00
|
|
|
mv -f MailScanner-${VERSION}.noarch.deb $FILEOUT
|
2016-04-23 20:43:52 +08:00
|
|
|
|
|
|
|
rm -rf $PKGTMP
|
|
|
|
rm -rf $WORK
|
2020-05-17 01:26:00 +08:00
|
|
|
|
|
|
|
echo;
|
|
|
|
echo "Completed: $FILEOUT/MailScanner-${VERSION}.noarch.deb";
|