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 <m...@canonical.com> Wed, 09 Nov 2011 20:04:02 +1100 + launchpad-buildd (82+ppa1) hardy; urgency=low * PPA trial build. + -- Martin Pool <m...@canonical.com> 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 <dav...@hpl.hp.com> +# 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()
_______________________________________________ Mailing list: https://launchpad.net/~launchpad-dev Post to : launchpad-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-dev More help : https://help.launchpad.net/ListHelp