2017-09-04 16:18:44 +02:00
|
|
|
#!/bin/bash -x
|
|
|
|
|
|
|
|
##
|
2017-09-04 16:54:18 +02:00
|
|
|
# @file src/build/create_tarball.sh
|
2017-09-04 16:18:44 +02:00
|
|
|
# @brief Generates megacmd tarballs and compilation scripts
|
|
|
|
#
|
|
|
|
# (c) 2013-2014 by Mega Limited, Auckland, New Zealand
|
|
|
|
#
|
2017-09-13 14:17:38 +02:00
|
|
|
# This file is part of the MEGAcmd.
|
2017-09-04 16:18:44 +02:00
|
|
|
#
|
2017-09-13 14:17:38 +02:00
|
|
|
# MEGAcmd is distributed in the hope that it will be useful,
|
2017-09-04 16:18:44 +02:00
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
#
|
|
|
|
# @copyright Simplified (2-clause) BSD License.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the license along with this
|
|
|
|
# program.
|
|
|
|
##
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
IFS=$'\n\t'
|
2024-06-06 19:23:54 +02:00
|
|
|
BASEPATH=$(pwd)/../
|
2017-09-04 16:18:44 +02:00
|
|
|
|
|
|
|
# get current version
|
2024-07-11 10:40:03 +02:00
|
|
|
megacmd_VERSION=$(cat $BASEPATH/CMakeLists.txt | grep -Po "MEGACMD_.*_VERSION [0-9]*"| awk '{print $2}' | paste -sd '.')
|
2017-09-04 16:18:44 +02:00
|
|
|
export megacmd_NAME=megacmd-$megacmd_VERSION
|
|
|
|
rm -rf $megacmd_NAME.tar.gz
|
|
|
|
rm -rf $megacmd_NAME
|
|
|
|
|
|
|
|
echo "megacmd version: $megacmd_VERSION"
|
|
|
|
|
|
|
|
# delete previously generated files
|
|
|
|
rm -fr megacmd/megacmd*.dsc
|
|
|
|
|
|
|
|
# fix version number in template files and copy to appropriate directories
|
2019-10-22 16:56:24 +02:00
|
|
|
sed -e "s/megacmd_VERSION/$megacmd_VERSION/g" templates/megacmd/megacmd.spec | sed "s#^ *##g" > megacmd/megacmd.spec
|
2022-01-21 17:31:23 +01:00
|
|
|
sed -e "s/megacmd_VERSION/$megacmd_VERSION/g" templates/megacmd/megacmd.dsc > megacmd/megacmd.dsc
|
2017-09-04 16:18:44 +02:00
|
|
|
sed -e "s/megacmd_VERSION/$megacmd_VERSION/g" templates/megacmd/PKGBUILD > megacmd/PKGBUILD
|
2022-01-21 17:31:23 +01:00
|
|
|
for dscFile in `find templates/megacmd/ -name megacmd-xUbuntu_* -o -name megacmd-Debian_* -o -name megacmd-Raspbian_*`; do
|
|
|
|
sed -e "s/megacmd_VERSION/$megacmd_VERSION/g" "${dscFile}" > megacmd/`basename ${dscFile}`
|
|
|
|
done
|
2017-09-04 16:18:44 +02:00
|
|
|
|
2025-03-24 15:22:42 +01:00
|
|
|
# Adjustments to remove fuse dependency for 32 bits builds
|
2025-03-24 17:15:34 +01:00
|
|
|
if pwd | grep -E "/(i[3-6]86|x86|armhf|armv7l)/" >/dev/null; then
|
2025-03-24 16:08:09 +01:00
|
|
|
echo "Removing fuse dependency...."
|
2025-03-24 15:22:42 +01:00
|
|
|
sed -i "/libfuse-dev/d" megacmd/debian.control
|
|
|
|
sed -i "s#, fuse##g" megacmd/debian.control
|
|
|
|
sed -i "/fuse/d" megacmd/megacmd.spec
|
|
|
|
sed -i "s#, libfuse-dev##g" megacmd/megacmd.dsc
|
|
|
|
sed -i "s# 'fuse2'##g" megacmd/PKGBUILD
|
|
|
|
fi
|
|
|
|
|
2017-09-04 16:18:44 +02:00
|
|
|
# read the last generated ChangeLog version
|
|
|
|
version_file="version"
|
|
|
|
|
|
|
|
if [ -s "$version_file" ]; then
|
|
|
|
last_version=$(cat "$version_file")
|
|
|
|
else
|
|
|
|
last_version="none"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$last_version" != "$megacmd_VERSION" ]; then
|
|
|
|
# add RPM ChangeLog entry
|
|
|
|
changelog="megacmd/megacmd.changes"
|
|
|
|
changelogold="megacmd/megacmd.changes.old"
|
|
|
|
if [ -f $changelog ]; then
|
|
|
|
mv $changelog $changelogold
|
|
|
|
fi
|
2017-09-04 16:54:18 +02:00
|
|
|
./generate_rpm_changelog_entry.sh $megacmd_VERSION $BASEPATH/src/megacmdversion.h > $changelog #TODO: read this from somewhere
|
2017-09-04 16:18:44 +02:00
|
|
|
if [ -f $changelogold ]; then
|
|
|
|
cat $changelogold >> $changelog
|
|
|
|
rm $changelogold
|
|
|
|
fi
|
|
|
|
|
|
|
|
# add DEB ChangeLog entry
|
|
|
|
changelog="megacmd/debian.changelog"
|
|
|
|
changelogold="megacmd/debian.changelog.old"
|
|
|
|
if [ -f $changelog ]; then
|
|
|
|
mv $changelog $changelogold
|
|
|
|
fi
|
2017-09-04 16:54:18 +02:00
|
|
|
./generate_deb_changelog_entry.sh $megacmd_VERSION $BASEPATH/src/megacmdversion.h > $changelog #TODO: read this from somewhere
|
2017-09-04 16:18:44 +02:00
|
|
|
if [ -f $changelogold ]; then
|
|
|
|
cat $changelogold >> $changelog
|
|
|
|
rm $changelogold
|
|
|
|
fi
|
|
|
|
|
|
|
|
# update version file
|
|
|
|
echo $megacmd_VERSION > $version_file
|
|
|
|
fi
|
|
|
|
|
|
|
|
# create archive
|
|
|
|
mkdir $megacmd_NAME
|
|
|
|
ln -s ../megacmd/megacmd.spec $megacmd_NAME/megacmd.spec
|
|
|
|
ln -s ../megacmd/debian.postinst $megacmd_NAME/debian.postinst
|
2020-01-13 19:45:19 +01:00
|
|
|
ln -s ../megacmd/debian.prerm $megacmd_NAME/debian.prerm
|
2017-09-04 16:18:44 +02:00
|
|
|
ln -s ../megacmd/debian.postrm $megacmd_NAME/debian.postrm
|
|
|
|
ln -s ../megacmd/debian.copyright $megacmd_NAME/debian.copyright
|
|
|
|
|
2024-07-26 15:25:51 +02:00
|
|
|
for i in $BASEPATH/{src,sdk,tests,CMakeLists.txt,vcpkg.json}; do
|
2017-09-04 16:18:44 +02:00
|
|
|
ln -s $i $megacmd_NAME/
|
|
|
|
done
|
|
|
|
|
2024-06-07 11:48:07 +02:00
|
|
|
mkdir $megacmd_NAME/build
|
|
|
|
ln -sf $BASEPATH/build/cmake $megacmd_NAME/build/
|
|
|
|
|
2022-03-29 12:18:03 +02:00
|
|
|
tar czfh $megacmd_NAME.tar.gz --exclude-vcs $megacmd_NAME
|
2017-09-04 16:18:44 +02:00
|
|
|
rm -rf $megacmd_NAME
|
|
|
|
|
|
|
|
# delete any previous archive
|
|
|
|
rm -fr megacmd/megacmd_*.tar.gz
|
|
|
|
# transform arch name, to satisfy Debian requirements
|
|
|
|
mv $megacmd_NAME.tar.gz megacmd/megacmd_$megacmd_VERSION.tar.gz
|
|
|
|
|
|
|
|
#get md5sum and replace in PKGBUILD
|
|
|
|
MD5SUM=`md5sum megacmd/megacmd_$megacmd_VERSION.tar.gz | awk '{print $1}'`
|
|
|
|
sed "s/MD5SUM/$MD5SUM/g" -i megacmd/PKGBUILD
|
|
|
|
|
|
|
|
######
|
|
|
|
######
|