Index: trunk/packages/sipb-xen-base/debian/changelog
===================================================================
--- trunk/packages/sipb-xen-base/debian/changelog	(revision 818)
+++ trunk/packages/sipb-xen-base/debian/changelog	(revision 822)
@@ -1,2 +1,8 @@
+sipb-xen-base (8.15) unstable; urgency=low
+
+  * put invirt-getconf in /usr/bin
+
+ -- Greg Price <price@mit.edu>  Sat,  2 Aug 2008 21:58:36 -0400
+
 sipb-xen-base (8.14) unstable; urgency=low
 
Index: trunk/packages/sipb-xen-base/files/usr/bin/invirt-getconf
===================================================================
--- trunk/packages/sipb-xen-base/files/usr/bin/invirt-getconf	(revision 822)
+++ trunk/packages/sipb-xen-base/files/usr/bin/invirt-getconf	(revision 822)
@@ -0,0 +1,92 @@
+#!/usr/bin/env python
+
+"""
+invirt-getconf loads an invirt configuration file (either the original YAML
+source or the faster-to-load JSON cache) and prints the configuration option
+with the given name (key).  Keys are dot-separated paths into the YAML
+configuration tree.  List indexes (0-based) are also treated as path
+components.
+
+(Due to this path language, certain restrictions are placed on the keys used in
+the YAML configuration; e.g., they cannot contain dots.)
+
+Examples:
+
+  invirt-getconf db.uri
+  invirt-getconf authn.0.type
+"""
+
+from invirt.config import load
+from sys import argv, exit, stderr, stdout
+from optparse import OptionParser
+
+class invirt_exception(Exception): pass
+
+def main(argv):
+    try:
+        parser = OptionParser(usage = '%prog [options] key',
+                description = __doc__.strip().split('\n\n')[0])
+        parser.add_option('-s', '--src',
+                default = '/etc/invirt/master.yaml',
+                help = 'the source YAML configuration file to read from')
+        parser.add_option('-c', '--cache',
+                default = '/var/lib/invirt/invirt.json',
+                help = 'path to the JSON cache')
+        parser.add_option('-r', '--refresh',
+                action = 'store_true',
+                help = 'force the cache to be regenerated')
+        parser.add_option('-l', '--ls',
+                action = 'store_true',
+                help = 'list node\'s children')
+        opts, args = parser.parse_args()
+
+        if len(args) > 1:
+            raise invirt_exception(__doc__.strip())
+        elif args and args[0]:
+            components = args[0].split('.')
+        else:
+            components = []
+
+        conf = load(opts.src, opts.cache, opts.refresh)
+        for i, component in enumerate(components):
+            progress = '.'.join(components[:i])
+            if type(conf) not in (dict, list):
+                raise invirt_exception(
+                        '%s: node has no children (atomic datum)' % progress)
+            if type(conf) == list:
+                try: component = int(component)
+                except: raise invirt_exception(
+                        '%s: node a list; integer path component required, '
+                        'but got "%s"' % (progress, component))
+            try: conf = conf[component]
+            except KeyError: raise invirt_exception(
+                    '%s: key "%s" not found' % (progress, component))
+            except IndexError: raise invirt_exception(
+                    '%s: index %s out of range' % (progress, component))
+
+        if opts.ls:
+            if type(conf) not in (dict, list):
+                raise invirt_exception(
+                        '%s: node has no children (atomic datum)'
+                        % '.'.join(components))
+            if type(conf) == list:
+                for i in xrange(len(conf)):
+                    print i
+            else:
+                for k in conf.iterkeys():
+                    print k
+        else:
+            if type(conf) not in (dict, list):
+                print conf
+            else:
+                import yaml
+                yaml.dump(conf, stdout,
+                          Dumper=yaml.CSafeDumper, default_flow_style=False)
+    except invirt_exception, ex:
+        print >> stderr, ex
+        return 1
+
+if __name__ == '__main__':
+    exit(main(argv))
+
+# vim:et:sw=4:ts=4
Index: trunk/packages/sipb-xen-base/files/usr/sbin/invirt-getconf
===================================================================
--- trunk/packages/sipb-xen-base/files/usr/sbin/invirt-getconf	(revision 818)
+++ 	(revision )
@@ -1,94 +1,0 @@
-#!/usr/bin/env python
-
-"""
-invirt-getconf loads an invirt configuration file (either the original YAML
-source or the faster-to-load JSON cache) and prints the configuration option
-with the given name (key).  Keys are dot-separated paths into the YAML
-configuration tree.  List indexes (0-based) are also treated as path
-components.
-
-(Due to this path language, certain restrictions are placed on the keys used in
-the YAML configuration; e.g., they cannot contain dots.)
-
-Examples:
-
-  invirt-getconf db.uri
-  invirt-getconf authn.0.type
-"""
-
-from invirt.config import default_src_path, default_cache_path, load
-from sys import argv, exit, stderr, stdout
-from optparse import OptionParser
-
-class invirt_exception(Exception): pass
-
-def main(argv):
-    try:
-        parser = OptionParser(usage = '%prog [options] key',
-                description = __doc__.strip().split('\n\n')[0])
-        parser.add_option('-s', '--src',
-                default = default_src_path,
-                help = 'the source YAML configuration file to read from')
-        parser.add_option('-c', '--cache',
-                default = default_cache_path,
-                help = 'path to the JSON cache')
-        parser.add_option('-r', '--refresh',
-                action = 'store_true',
-                help = 'force the cache to be regenerated')
-        parser.add_option('-l', '--ls',
-                action = 'store_true',
-                help = 'list node\'s children')
-        opts, args = parser.parse_args()
-
-        if len(args) > 1:
-            raise invirt_exception(__doc__.strip())
-        elif args and args[0]:
-            components = args[0].split('.')
-        else:
-            components = []
-
-        conf = load(opts.src, opts.cache, opts.refresh)
-        for i, component in enumerate(components):
-            progress = '.'.join(components[:i])
-            if type(conf) not in (dict, list):
-                raise invirt_exception(
-                        '%s: node has no children (atomic datum)' % progress)
-            if type(conf) == list:
-                try: component = int(component)
-                except: raise invirt_exception(
-                        '%s: node a list; integer path component required, '
-                        'but got "%s"' % (progress, component))
-            try: conf = conf[component]
-            except KeyError: raise invirt_exception(
-                    '%s: key "%s" not found' % (progress, component))
-            except IndexError: raise invirt_exception(
-                    '%s: index %s out of range' % (progress, component))
-
-        if opts.ls:
-            if type(conf) not in (dict, list):
-                raise invirt_exception(
-                        '%s: node has no children (atomic datum)'
-                        % '.'.join(components))
-            if type(conf) == list:
-                for i in xrange(len(conf)):
-                    print i
-            else:
-                for k in conf.iterkeys():
-                    print k
-        else:
-            if type(conf) not in (dict, list):
-                print conf
-            else:
-                import yaml
-                try:    dumper = yaml.CSafeDumper
-                except: dumper = yaml.SafeDumper
-                yaml.dump(conf, stdout,
-                          Dumper = dumper, default_flow_style = False)
-    except invirt_exception, ex:
-        print >> stderr, ex
-        return 1
-
-if __name__ == '__main__':
-    exit(main(argv))
-
-# vim:et:sw=4:ts=4
Index: trunk/packages/sipb-xen-dev/debian/changelog
===================================================================
--- trunk/packages/sipb-xen-dev/debian/changelog	(revision 818)
+++ trunk/packages/sipb-xen-dev/debian/changelog	(revision 822)
@@ -1,2 +1,8 @@
+sipb-xen-dev (18) unstable; urgency=low
+
+  * sign the packages
+
+ -- Greg Price <price@mit.edu>  Sat,  2 Aug 2008 21:57:58 -0400
+
 sipb-xen-dev (17) unstable; urgency=low
 
Index: trunk/packages/sipb-xen-dev/sx-build-release
===================================================================
--- trunk/packages/sipb-xen-dev/sx-build-release	(revision 818)
+++ trunk/packages/sipb-xen-dev/sx-build-release	(revision 822)
@@ -16,5 +16,5 @@
     <(dpkg-parsechangelog)`
 
-dpkg-buildpackage -us -uc -rfakeroot
+dpkg-buildpackage -k"$(invirt-getconf apt.keyid)" -rfakeroot
 
 if ! svn ls $svnuri/package_tags/$Source >/dev/null 2>&1; then
Index: trunk/packages/xvm-devconfig/debian/changelog
===================================================================
--- trunk/packages/xvm-devconfig/debian/changelog	(revision 818)
+++ trunk/packages/xvm-devconfig/debian/changelog	(revision 822)
@@ -2,6 +2,7 @@
 
   * remove deprecated /etc/invirt/{hosts,realm}
+  * add apt section with keyid
 
- -- Greg Price <price@mit.edu>  Fri,  1 Aug 2008 23:44:38 -0400
+ -- Greg Price <price@mit.edu>  Sat,  2 Aug 2008 21:56:26 -0400
 
 xvm-devconfig (0.4) unstable; urgency=low
Index: trunk/packages/xvm-devconfig/files/etc/invirt/master.yaml
===================================================================
--- trunk/packages/xvm-devconfig/files/etc/invirt/master.yaml	(revision 818)
+++ trunk/packages/xvm-devconfig/files/etc/invirt/master.yaml	(revision 822)
@@ -12,4 +12,7 @@
  - hostname: sx-blade-2.mit.edu
    ip: 18.181.0.165
+
+apt:
+ keyid: AB1A81AA
 
 db: 
