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 ' ' >> $output echo ' ' >> $output echo ' ' >> $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 '
LocationSizeSha1 Sum
' >> $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