← Back to team overview

launchpad-dev team mailing list archive

[Merge] lp:~mbp/launchpad-buildd/rename-package into lp:launchpad-buildd

 

Martin Pool has proposed merging lp:~mbp/launchpad-buildd/rename-package into lp:launchpad-buildd.

Requested reviews:
  Launchpad Development mailing list (launchpad-dev)

For more details, see:
https://code.launchpad.net/~mbp/launchpad-buildd/rename-package/+merge/81692

This renames the python package from canonical.buildd to lpbuildd so that it can more easily be packaged separately

see https://bugs.launchpad.net/launchpad/+bug/800295 for context

It's a bit risky so I'd appreciate a second pair of eyes.

I haven't yet arranged for the tests to run separately.
-- 
https://code.launchpad.net/~mbp/launchpad-buildd/rename-package/+merge/81692
Your team Launchpad Development mailing list is requested to review the proposed merge of lp:~mbp/launchpad-buildd/rename-package into lp:launchpad-buildd.
=== modified file 'debian/changelog'
--- debian/changelog	2011-11-09 07:50:56 +0000
+++ debian/changelog	2011-11-09 09:37:24 +0000
@@ -1,6 +1,14 @@
+launchpad-buildd (83) hardy; urgency=low
+
+  * Split launchpad-buildd completely out of the Launchpad source tree.
+  * Rename the Python package to lpbuildd.
+
+ -- Martin Pool <mbp@xxxxxxxxxxxxx>  Wed, 09 Nov 2011 20:04:02 +1100
+
 launchpad-buildd (82+ppa1) hardy; urgency=low
 
   * PPA trial build.
+
  -- Martin Pool <mbp@xxxxxxxxxxxxx>  Wed, 09 Nov 2011 17:01:42 +1100
 
 launchpad-buildd (82) hardy-cat; urgency=low

=== modified file 'debian/rules'
--- debian/rules	2011-11-09 08:50:17 +0000
+++ debian/rules	2011-11-09 09:37:24 +0000
@@ -12,7 +12,7 @@
 # after that, build the source package found in the parent directory.
 
 target = debian/launchpad-buildd
-topdir = ..
+topdir = .
 
 buildd = $(topdir)/lpbuildd
 
@@ -37,7 +37,6 @@
 	  usr/share/launchpad-buildd/lpbuildd \
 	  var/run/launchpad-buildd var/log/launchpad-buildd  \
 	  etc/launchpad-buildd \
-	  $(pytarget) \
 	  usr/share/doc/launchpad-buildd
 	dh_installexamples
 

=== added file 'lpbuildd/check_implicit_pointer_functions.py'
--- lpbuildd/check_implicit_pointer_functions.py	1970-01-01 00:00:00 +0000
+++ lpbuildd/check_implicit_pointer_functions.py	2011-11-09 09:37:24 +0000
@@ -0,0 +1,118 @@
+#!/usr/bin/env python
+
+#
+# Copyright (c) 2004 Hewlett-Packard Development Company, L.P.
+#       David Mosberger <davidm@xxxxxxxxxx>
+# Copyright 2010 Canonical Ltd.
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use,
+# copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following
+# conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+
+# Scan standard input for GCC warning messages that are likely to
+# source of real 64-bit problems.  In particular, see whether there
+# are any implicitly declared functions whose return values are later
+# interpreted as pointers.  Those are almost guaranteed to cause
+# crashes.
+#
+import re
+import sys
+
+implicit_pattern = re.compile(
+    "([^:]*):(\d+):(\d+:)? warning: implicit declaration "
+    "of function [`']([^']*)'")
+pointer_pattern = re.compile(
+    "([^:]*):(\d+):(\d+:)? warning: "
+    + "("
+    +  "(assignment"
+    +  "|initialization"
+    +  "|return"
+    +  "|passing arg \d+ of `[^']*'"
+    +  "|passing arg \d+ of pointer to function"
+    +  ") makes pointer from integer without a cast"
+    + "|"
+    + "cast to pointer from integer of different size)")
+
+def main():
+    last_implicit_filename = ""
+    last_implicit_linenum = -1
+    last_implicit_func = ""
+
+    errlist = ""
+
+    in_line = False
+    warn_only = False
+
+    for arg in sys.argv[1:]:
+        if arg == '--inline':
+            in_line = True
+        elif arg == '--warnonly':
+            warn_only = True
+
+    rv = 0
+    while True:
+        line = sys.stdin.readline()
+        if in_line:
+            sys.stdout.write(line)
+            sys.stdout.flush()
+        if line == '':
+            break
+        m = implicit_pattern.match(line)
+        if m:
+            last_implicit_filename = m.group(1)
+            last_implicit_linenum = int(m.group(2))
+            last_implicit_func = m.group(4)
+        else:
+            m = pointer_pattern.match(line)
+            if m:
+                pointer_filename = m.group(1)
+                pointer_linenum = int(m.group(2))
+                if (last_implicit_filename == pointer_filename
+                    and last_implicit_linenum == pointer_linenum):
+                    err = "Function `%s' implicitly converted to pointer at " \
+                          "%s:%d" % (last_implicit_func, last_implicit_filename,
+                                     last_implicit_linenum)
+                    errlist += err+"\n"
+                    print err
+                    if not warn_only:
+                        rv = 3
+
+    if len(errlist):
+        if in_line:
+            print errlist
+            print """
+
+Our automated build log filter detected the problem(s) above that will
+likely cause your package to segfault on architectures where the size of
+a pointer is greater than the size of an integer, such as ia64 and amd64.
+
+This is often due to a missing function prototype definition.
+
+Since use of implicitly converted pointers is always fatal to the application
+on ia64, they are errors.  Please correct them for your next upload.
+
+More information can be found at:
+http://wiki.debian.org/ImplicitPointerConversions
+
+    """
+    sys.exit(rv)
+
+if __name__ == '__main__':
+    main()


Follow ups