launchpad-dev team mailing list archive
-
launchpad-dev team
-
Mailing list archive
-
Message #08299
[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