diff --git a/ChangeLog b/ChangeLog index 425d2e7d3..833cb1c4d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-10-05 Thomas Thurman + + * tools/ppa-magic.py: experimental tool for Launchpad upload + 2008-10-05 Thomas Thurman * metacity.doap: Havoc is an author; Thomas has an email address; diff --git a/tools/ppa-magic.py b/tools/ppa-magic.py new file mode 100644 index 000000000..5a7e32667 --- /dev/null +++ b/tools/ppa-magic.py @@ -0,0 +1,156 @@ +#!/usr/bin/python +# +# This is a heavily experimental script to upload nightly snapshots +# to Canonical's Launchpad PPA system. +# +# Copyright (C) 2008 Thomas Thurman +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +import time +import os + +app = 'metacity' +try_number = 1 # if you mess it up within a day +upstream_version = '2.25.0' # should take this from configure.in, really +version = '1:%s~%s-0ubuntu~ppa%d' % (upstream_version, + time.strftime('%Y%m%d'), + try_number) + +pkg_name = app # according to motu people +svn_url = 'http://svn.gnome.org/svn/'+app+'/trunk' +maintainer = 'Thomas Thurman ' +key = 'D5743F03' +basedir = os.getcwd()+'/'+pkg_name # or, if you prefer, '/tmp/'+pkg_name + +def write_to_files(path): + + file(path+'/changelog', 'w').write(\ +pkg_name+""" ("""+version+""") hardy; urgency=low + + * Nightly release from trunk. + + -- """+maintainer+' '+time.strftime("%a, %d %b %Y %H:%M:%S %z")+""" +""") + + file(path+'/rules', 'w').write(\ +"""#!/usr/bin/make -f +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/gnome.mk +""") + + os.chmod(path+'/rules', 0777) + + # Compat should be 6 to keep debhelper happy. + file(path+'/compat', 'w').write(\ +"""6 +""") + + file(path+'/control', 'w').write(\ +"""Source: """+pkg_name+""" +Section: devel +Priority: optional +Maintainer: """+maintainer+""" +Standards-Version: 3.8.0 +Build-Depends: cdbs (>= 0.4.41), + debhelper (>= 5), + gettext, + libgtk2.0-dev (>= 2.10.0-1~), + liborbit2-dev (>= 1:2.10.2-1.1~), + libpopt-dev, + libxml2-dev (>= 2.4.23), + libgconf2-dev (>= 2.6.1-2), + libglade2-dev (>= 2.4.0-1~), + libice-dev, + libsm-dev, + libx11-dev, + libxt-dev, + libxext-dev, + libxrandr-dev, + x11proto-core-dev, + libxinerama-dev, + libstartup-notification0-dev (>= 0.7), + libxml-parser-perl, + gnome-pkg-tools (>= 0.10), + dpkg-dev (>= 1.13.19), + libxcomposite-dev +Homepage: http://blogs.gnome.org/metacity/ + +Package: """+pkg_name+""" +Architecture: any +Depends: ${shlibs:Depends} +Description: Lightweight GTK2 compositing window manager (nightly trunk) + Metacity is a small window manager, using gtk2 to do everything. + . + As the author says, metacity is a "Boring window manager for the adult in + you. Many window managers are like Marshmallow Froot Loops; Metacity is + like Cheerios." + . + This is the nightly trunk upload. It may not be the epitome of stability. +""") + + file(path+'/copyright', 'w').write(\ +"""This package was automatically debianised by a script. + +It was downloaded from """+svn_url+""" + + Upstream Author and Copyright Holder: Havoc Pennington - hp@redhat.com +and others. + +License: + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. +""") + +####################### + +if basedir!='.' and basedir!='..' and os.access(basedir, os.F_OK): + os.system('rm -rf '+basedir) + print 'Warning: deleted old version of '+basedir+'.' + +os.system('svn export -q '+svn_url+' '+basedir) +os.mkdir(basedir+'/debian') + +write_to_files(basedir+'/debian') + +os.chdir(basedir) + +# Make sure we get up to having a "configure", or it won't build. +os.system('NOCONFIGURE=1 ./autogen.sh') + +os.chdir(basedir+'/debian') + +os.system('debuild -rfakeroot -S -k'+key) + +os.system('dput -f '+pkg_name+' '+basedir+'_'+version[2:]+'_source.changes') + +# And then we should clean up. +