You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
216 lines
4.9 KiB
216 lines
4.9 KiB
#!/usr/bin/env ruby
|
|
#
|
|
# Ruby script for generating libkexiv2 tarball releases from KDE SVN
|
|
#
|
|
# (c) 2005 Mark Kretschmann <markey@web.de>
|
|
# Some parts of this code taken from cvs2dist
|
|
# License: GNU General Public License V2
|
|
|
|
|
|
name = "libkexiv2"
|
|
egmodule = "libs"
|
|
version = "0.1.7"
|
|
docs = "no"
|
|
usesvnver = "no"
|
|
|
|
#svnbase = "svn+ssh://gkulzer@svn.kde.org/home/kde"
|
|
#svnbase = "https://toma@svn.kde.org/home/kde"
|
|
#svnbase = "svn+ssh://anaselli@svn.kde.org/home/kde"
|
|
svnbase = "svn+ssh://vfuoglio@svn.kde.org/home/kde"
|
|
#svnbase = "svn://anonsvn.kde.org/home/kde"
|
|
svnroot = "#{svnbase}/trunk"
|
|
adminroot = "#{svnbase}/branches/KDE/3.5"
|
|
|
|
addDocs = []
|
|
addPo = []
|
|
|
|
#----------------------------------------------------------------
|
|
|
|
if (usesvnver != "yes")
|
|
folder = name + "-" + version
|
|
else
|
|
t = Time.now
|
|
folder = name + "-" + version + "." + "0." + t.strftime("%Y%m%d")
|
|
end
|
|
|
|
addPo = [name] + addPo
|
|
addDocs = [name] + addDocs
|
|
|
|
# Prevent using unsermake
|
|
oldmake = ENV["UNSERMAKE"]
|
|
ENV["UNSERMAKE"] = "no"
|
|
|
|
puts "Fetching #{egmodule}/#{name}..."
|
|
# Remove old folder, if exists
|
|
`rm -rf #{folder} 2> /dev/null`
|
|
`rm -rf folder.tar.bz2 2> /dev/null`
|
|
|
|
# Dir.mkdir( folder )
|
|
Dir.mkdir( "#{folder}" )
|
|
Dir.chdir( folder )
|
|
|
|
`svn co -N #{svnroot}/extragear/#{egmodule}`
|
|
Dir.chdir( egmodule )
|
|
`svn up #{name}`
|
|
|
|
if ( docs != "no")
|
|
`svn up -N doc`
|
|
for dg in addDocs
|
|
dg.chomp!
|
|
`svn up doc/#{dg}`
|
|
end
|
|
end
|
|
|
|
`svn co #{adminroot}/kde-common/admin`
|
|
puts "done\n"
|
|
|
|
puts "\n"
|
|
puts "Fetching l10n docs for #{egmodule}/#{name}...\n"
|
|
puts "\n"
|
|
|
|
i18nlangs = `svn cat #{svnroot}/l10n/subdirs`
|
|
i18nlangsCleaned = []
|
|
for lang in i18nlangs
|
|
l = lang.chomp
|
|
if (l != "xx")
|
|
i18nlangsCleaned += [l];
|
|
end
|
|
end
|
|
i18nlangs = i18nlangsCleaned
|
|
|
|
Dir.mkdir( "l10n" )
|
|
Dir.chdir( "l10n" )
|
|
|
|
# docs
|
|
for lang in i18nlangs
|
|
lang.chomp!
|
|
|
|
for dg in addDocs
|
|
dg.chomp!
|
|
`rm -rf #{dg}`
|
|
docdirname = "l10n/#{lang}/docs/extragear-#{egmodule}/#{dg}"
|
|
if ( docs != "no")
|
|
`svn co -q #{svnroot}/#{docdirname} > /dev/null 2>&1`
|
|
end
|
|
next unless FileTest.exists?( dg )
|
|
print "Copying #{lang}'s #{dg} documentation over... "
|
|
`cp -R #{dg}/ ../doc/#{lang}_#{dg}`
|
|
|
|
# we don't want KDE_DOCS = AUTO, cause that makes the
|
|
# build system assume that the name of the app is the
|
|
# same as the name of the dir the Makefile.am is in.
|
|
# Instead, we explicitly pass the name..
|
|
makefile = File.new( "../doc/#{lang}_#{dg}/Makefile.am", File::CREAT | File::RDWR | File::TRUNC )
|
|
makefile << "KDE_LANG = #{lang}\n"
|
|
makefile << "KDE_DOCS = #{dg}\n"
|
|
makefile.close()
|
|
|
|
puts( "done.\n" )
|
|
end
|
|
end
|
|
|
|
puts "\n"
|
|
puts "Fetching l10n po for #{egmodule}/#{name}...\n"
|
|
puts "\n"
|
|
|
|
Dir.chdir( ".." ) # in egmodule now
|
|
|
|
$subdirs = false
|
|
Dir.mkdir( "po" )
|
|
|
|
for lang in i18nlangs
|
|
lang.chomp!
|
|
dest = "po/#{lang}"
|
|
|
|
for dg in addPo
|
|
dg.chomp!
|
|
pofilename = "l10n/#{lang}/messages/extragear-#{egmodule}/#{dg}.po"
|
|
`svn cat #{svnroot}/#{pofilename} 2> /dev/null | tee l10n/#{dg}.po`
|
|
next if FileTest.size( "l10n/#{dg}.po" ) == 0
|
|
|
|
if !FileTest.exist?( dest )
|
|
Dir.mkdir( dest )
|
|
end
|
|
|
|
print "Copying #{lang}'s #{dg}.po over .. "
|
|
`mv l10n/#{dg}.po #{dest}`
|
|
puts( "done.\n" )
|
|
|
|
makefile = File.new( "#{dest}/Makefile.am", File::CREAT | File::RDWR | File::TRUNC )
|
|
makefile << "KDE_LANG = #{lang}\n"
|
|
makefile << "SUBDIRS = $(AUTODIRS)\n"
|
|
makefile << "POFILES = AUTO\n"
|
|
makefile.close()
|
|
|
|
$subdirs = true
|
|
end
|
|
end
|
|
|
|
if $subdirs
|
|
makefile = File.new( "po/Makefile.am", File::CREAT | File::RDWR | File::TRUNC )
|
|
makefile << "SUBDIRS = $(AUTODIRS)\n"
|
|
makefile.close()
|
|
else
|
|
`rm -Rf po`
|
|
end
|
|
|
|
`rm -rf l10n`
|
|
puts "\n"
|
|
|
|
#add a release marker
|
|
`export LANGUAGE=en_US.UTF-8; export LC_ALL=en_US.UTF-8; svn info #{name} | egrep '^Last Changed (Rev|Date):' > RELEASE.rev`
|
|
|
|
# Remove SVN data folder
|
|
`find -name ".svn" | xargs rm -rf`
|
|
|
|
# Remove release_XXX.rb files
|
|
`/bin/rm -rf release_kipiplugins.rb`
|
|
`/bin/rm -rf release_libkexiv2.rb`
|
|
`/bin/rm -rf release_libkipi.rb`
|
|
`/bin/rm -rf release_libkdcraw.rb`
|
|
# Remove prepare_XXX.rb files
|
|
`/bin/rm -rf prepare_kipiplugins.rb`
|
|
`/bin/rm -rf prepare_libkexiv2.rb`
|
|
`/bin/rm -rf prepare_libkipi.rb`
|
|
`/bin/rm -rf prepare_libkdcraw.rb`
|
|
# Remove release_kipi-plugins_cl.sh
|
|
`/bin/rm -rf release_kipi_changelog.sh`
|
|
|
|
`/bin/mv * ..`
|
|
Dir.chdir( ".." ) # name-version
|
|
`rmdir #{egmodule}`
|
|
|
|
# Move some important files to the root folder
|
|
Dir.chdir( "#{name}" )
|
|
`/bin/mv -f #{name}.lsm ..`
|
|
`/bin/mv -f AUTHORS ..`
|
|
`/bin/mv -f ChangeLog ..`
|
|
`/bin/mv -f COPYING ..`
|
|
`/bin/mv -f INSTALL ..`
|
|
`/bin/mv -f NEWS ..`
|
|
`/bin/mv -f README ..`
|
|
`/bin/mv -f TODO ..`
|
|
Dir.chdir( ".." )
|
|
|
|
|
|
# Generate makefiles
|
|
`find | xargs touch`
|
|
|
|
puts "\n"
|
|
puts "Generating Makefiles.. "
|
|
`make -f Makefile.cvs`
|
|
puts "done.\n"
|
|
|
|
`rm -rf autom4te.cache`
|
|
`rm stamp-h.in`
|
|
|
|
puts "\n"
|
|
puts "Compressing.. "
|
|
Dir.chdir( ".." ) # root folder
|
|
`tar -jcf #{folder}.tar.bz2 #{folder}`
|
|
`rm -rf #{folder}`
|
|
puts "done.\n"
|
|
|
|
|
|
ENV["UNSERMAKE"] = oldmake
|