Date: Fri, 8 Jul 2011 08:31:01 GMT From: Dominic Fandrey <kamikaze@bsdforen.de> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/158722: [patch] devel/gobject-introspection does not build if CC is not cc Message-ID: <201107080831.p688V1B1034622@red.freebsd.org> Resent-Message-ID: <201107080840.p688e17h057709@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 158722 >Category: ports >Synopsis: [patch] devel/gobject-introspection does not build if CC is not cc >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jul 08 08:40:01 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Dominic Fandrey >Release: RELENG_8 >Organization: private >Environment: FreeBSD mobileKamikaze.norad 8.2-STABLE FreeBSD 8.2-STABLE #0: Thu May 19 21:34:59 CEST 2011 root@mobileKamikaze.norad:/usr/obj/HP6510b-8/amd64/usr/src/sys/HP6510b-8 amd64 >Description: The post-patch: section of devel/gobject-introspection makes a supstitution of cc in the file giscanner/sourcescanner.py. For easy reading I will assume CC="XX XY" Line 237: for filename in filenames: if (filename.endswith('.c') or filename.endswith('.cpp') or filename.endswith('.cc') or filename.endswith('.cxx')): filename = os.path.abspath(filename) self._scanner.lex_filename(filename) else: headers.append(filename) Turns to: for filename in filenames: if (filename.endswith('.c') or filename.endswith('.cpp') or filename.endswith('.XX YY') or filename.endswith('.cxx')): filename = os.path.abspath(filename) self._scanner.lex_filename(filename) else: headers.append(filename) I think it's clear why that isn't a good idea. The next affected line is 273: cpp_args = ['cc', '-E', '-C', '-I.', '-'] cpp_args += self._cpp_options proc = subprocess.Popen(cpp_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE) Turns to: cpp_args = ['XX YY', '-E', '-C', '-I.', '-'] cpp_args += self._cpp_options proc = subprocess.Popen(cpp_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE) However the subprocess.Popen constructor requires the following form: cpp_args = ['XX', 'YY', '-E', '-C', '-I.', '-'] >How-To-Repeat: Build with no-default CC, to trigger a build fail use CC with spaces. >Fix: The attached patch causes line 239 no longer to be touched and performs the correct substitution for subprocess.Popen in line 273. Patch attached with submission follows: diff -Nur gobject-introspection.orig/Makefile gobject-introspection/Makefile --- gobject-introspection.orig/Makefile 2011-07-08 09:36:31.000000000 +0200 +++ gobject-introspection/Makefile 2011-07-08 10:29:54.000000000 +0200 @@ -40,11 +40,8 @@ MAN1= g-ir-compiler.1 g-ir-generate.1 g-ir-scanner.1 -.include <bsd.port.pre.mk> - post-patch: - @${REINPLACE_CMD} -e 's|'cc'|'${CC:Q}'|g' \ + @${REINPLACE_CMD} -e "s|'cc'|'${CC:Q:C/[[:space:]]+/', '/g}'|g" \ ${WRKSRC}/giscanner/sourcescanner.py -.include <bsd.port.post.mk> - +.include <bsd.port.mk> >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107080831.p688V1B1034622>