diff --git a/create_sources_inc b/create_sources_inc
index 38d2eb8..fd78fcd 100755
--- a/create_sources_inc
+++ b/create_sources_inc
@@ -1,225 +1,237 @@
#!/bin/bash
logfile=logs/$0.log
exec > >(tee -a $logfile)
exec 2> >(tee -a $logfile >&2)
. version
. config
# for patch-level releases.
onlyversion=$1
if [ -n "$onlyversion" ]; then
version=$onlyversion
fi
# For inqlude
export PATH=$HOME/.gem/ruby/2.5.0/bin:$PATH
export LC_ALL=en_US.UTF-8
# E.g. 'October 06, 2014'
date=`date +'%B %d, %Y'`
# E.g. '06th October 2014'
otherdate="`date +'%d'`th `date +'%B %Y'`"
# If automatic date isn't what you want, set this instead
# Remember to comment it out afterwards
# date='October 07, 2014'
# otherdate='07th October 2014'
releasetools=$PWD
# version=x.y.z ==> dir=x.y
# Patch-level releases go into the same directory, since they are typically just one framework
dir=`echo $version | sed -e 's/\.[0-9]$//'`
if ! ssh-add -l >/dev/null ; then
exit 1
fi
if ! test -f changelog-$version; then
echo "Missing changelog-$version file"
exit 1
fi
if [ ! -f bugzilla-cookies.inc ]; then
echo "Missing bugzilla cookies file"
exit 1
fi
if ! command -v gem >/dev/null ; then
echo "gem not found, install ruby"
exit 1
fi
if ! command -v curl >/dev/null ; then
echo "curl not found"
exit 1
fi
+cd ../www
+svn up
+cd $releasetools
+
failures=""
output=../www/info/source-kf-$version.inc
echo > $output
process_file()
{
i=$1
filename=`basename $i`
echo '
' >> $output
l=`echo $filename | sed -e "s#.tar.xz##"`
echo ' '$l' | ' >> $output
size=`stat -c "%s" $i`
size=$(($size / 1024))
if test "$size" -lt 1024; then
size="$size"kB
else
size=$((($size * 10) / 1024))
if test "$size" -lt 100; then
size=`echo "$size"MB | sed -e "s#\(.\)MB#.\1MB#"`
else
size=`echo "$size"MB | sed -e "s#\(.\)MB#MB#"`
fi
fi
echo ' '$size' | ' >> $output
sha1=`sha1sum $i | cut -f1 -d' '`
echo ' '$sha1' | ' >> $output
echo '
' >> $output
echo '' >> $output
}
process_folder()
{
for i in $1/*.tar.xz; do
process_file $i
done
}
echo '' >> $output
echo '' >> $output
echo ' Location | ' >> $output
echo ' Size | ' >> $output
echo ' Sha1 Sum | ' >> $output
echo '
' >> $output
if [ -n "$onlyversion" ]; then
for i in sources/*-$onlyversion.tar.xz; do
process_file $i
done
else
process_folder "sources" "$onlyversion"
if [ -d "sources/kde-l10n" ]; then
process_folder "sources/kde-l10n"
fi
fi
echo '
' >> $output
cd `dirname $output`
svn add `basename $output`
if [ -n "$onlyversion" ]; then
exit 0
fi
##################
# Now create the main info page
cp kde-frameworks-template.php kde-frameworks-$version.php
perl -pi -e "s/5\.xx\.0/$version/g" kde-frameworks-$version.php
svn add kde-frameworks-$version.php
+# Catch some past bug
+if grep 'version = "5\.52\.0"' kde-frameworks-$version.php; then
+ failures="info/kde-frameworks-$version.php $failures"
+fi
+
#######
# Now create the announcement page
cd ../announcements
svn up
rm -f kde-frameworks-$version.php
cp kde-frameworks-template.top kde-frameworks-$version.php
sed -e 's,<,\<,g ; s,>,\>,g' $releasetools/changelog-$version | $releasetools/Markdown.pl | $releasetools/make_changelog_translatable.pl >> kde-frameworks-$version.php
cat kde-frameworks-template.bottom >> kde-frameworks-$version.php
qtver=`perl -pe 'print $1 if (/QT_VERSION (.*?)\.0\)/); $_=""' ~/src/frameworks/kcoreaddons/CMakeLists.txt`
echo "Required Qt version: $qtver"
perl -pi -e "s/\"5.2\"/\"$qtver\"/" kde-frameworks-$version.php
-
-perl -pi -e "s/5\.1\.0/$version/g" kde-frameworks-$version.php
+perl -pi -e "s/5\.xx\.0/$version/g" kde-frameworks-$version.php
perl -pi -e "s/INSERT_DATE_HERE/$date/" kde-frameworks-$version.php
perl -pi -e "s/DIRECTORY/$dir/" kde-frameworks-$version.php
+# Catch some past bug
+if grep 'version = "5\.52\.0"' kde-frameworks-$version.php; then
+ failures="announcements/kde-frameworks-$version.php $failures"
+fi
svn add kde-frameworks-$version.php
########
# Output lines for announcements/index.php
announcelines="
$otherdate - KDE Frameworks $version released
\\\"KDE Ships Frameworks $version.\\\"
"
perl -pi -e "\$_ .= \"$announcelines\" if (/INSERT NEW ENTRIES BELOW THIS LINE/);" index.php
oldpwd=$PWD
#####
# Take care of the inqlude data
if command -v gem >/dev/null ; then
gem install --user-install --no-rdoc --no-ri inqlude
inqludedata=$HOME/.local/share/inqlude/manifests
cd $inqludedata
git pull
inqlude create_kde_frameworks $srcdir/frameworks $inqludedata
inqlude release_kde_frameworks `date --iso` $version
git add .
git commit -a -m "Update inqlude-data for KDE Frameworks $version"
git push
else
failures="inqlude $failures"
fi
########
# Make release announcement translatable
cd ~/l10n-kf5-scripts
svn up
l10nentry=" release_files[\"$version\"] = [\"kde-frameworks-$version.php\"]";
perl -pi -e "\$_ = '$l10nentry' . \"\\n\" . \$_ if (/NEW_FRAMEWORK_RELEASE/);" generate_release_data.py
svn ci -m "add frameworks-$version to generate_release_data.py"
#######
# Add versions in bugzilla
cd $releasetools
./create_bugzilla_versions.sh || failures="bugzilla $failures"
########
# Toplevel index.php
cd $oldpwd/..
svn up index.php
mainpagelines="
KDE Releases Frameworks $version $date
This release is part of a series of planned monthly releases
making improvements available to developers in a quick and predictable
manner.
Read full announcement
"
perl -pi -e "\$_ .= \"$mainpagelines\" if (/Latest Announcements/);" index.php || failures="www/index.php $failures"
echo "TODO: edit www/index.php, and remove older entry"
echo
if [ -n "$failures" ]; then
echo "ERROR: the following steps failed: $failures"
fi