summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorThomas Thurman <tthurman@gnome.org>2008-10-05 22:36:07 +0000
committerThomas James Alexander Thurman <tthurman@src.gnome.org>2008-10-05 22:36:07 +0000
commit9e72d661d6521446bb819d2f785b50868f674dca (patch)
tree18de8c27a57e2dd378a58bf29bba223f66615d35 /tools
parent03ccf99dbbf4fe6168314d7839c22e8ca31c7d72 (diff)
downloadmetacity-9e72d661d6521446bb819d2f785b50868f674dca.tar.gz
metacity-9e72d661d6521446bb819d2f785b50868f674dca.tar.bz2
experimental tool for Launchpad upload
2008-10-05 Thomas Thurman <tthurman@gnome.org> * tools/ppa-magic.py: experimental tool for Launchpad upload svn path=/trunk/; revision=3940
Diffstat (limited to 'tools')
-rw-r--r--tools/ppa-magic.py156
1 files changed, 156 insertions, 0 deletions
diff --git a/tools/ppa-magic.py b/tools/ppa-magic.py
new file mode 100644
index 0000000..5a7e326
--- /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 <tthurman@gnome.org>
+#
+# 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 <tthurman@gnome.org>'
+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.
+