Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#59155 closed defect (fixed)

ipe-tools @20151202: command not found

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version: 2.6.1
Keywords: Cc: maehne (Torsten Maehne), jmroot (Joshua Root)
Port: ipe-tools

Description

ipe-tools does not build with MacPorts 2.6 and later:

--->  Building ipe-tools
DEBUG: Executing org.macports.build (ipe-tools)
DEBUG: system -W /opt/local/var/macports/build/_Users_rschmidt_macports_macports-ports-svn-trunk-new_graphics_ipe-tools/ipe-tools/work/ipe-tools-e5b23399a83d69fd5bb5d4645ef7325b4b57435b/figtoipe: CPPFLAGS+='-I/opt/local/include' CFLAGS+='-I/opt/local/include -Os {-arch x86_64'} {CXXFLAGS+='-Os -stdlib=libc++} {-arch x86_64'} {LDFLAGS+='-arch x86_64'} CC=/usr/bin/clang CXX=/usr/bin/clang++ /usr/bin/make all CXX=/usr/bin/clang++
sh: {CXXFLAGS+=-Os -stdlib=libc++} {-arch x86_64}: command not found
Command failed: CPPFLAGS+='-I/opt/local/include' CFLAGS+='-I/opt/local/include -Os {-arch x86_64'} {CXXFLAGS+='-Os -stdlib=libc++} {-arch x86_64'} {LDFLAGS+='-arch x86_64'} CC=/usr/bin/clang CXX=/usr/bin/clang++ /usr/bin/make all CXX=/usr/bin/clang++
Exit code: 127

This is because of changes in the syntax of *.env variables that went into MacPorts 2.6.

Josh, what is the correct syntax to fix this in this case?

Change History (9)

comment:1 Changed 5 years ago by jmroot (Joshua Root)

Well the += syntax has never been supported, so I suspect these variables may have never been set previously, or were setting variables called CXXFLAGS+ etc. The correct syntax is one assignment per Tcl list element, where an assignment is a variable name, then an equals sign, then the desired value (which may contain any characters so long as they are correctly quoted).

So instead of

CFLAGS+='${configure.cppflags} ${configure.cflags} ${configure.cc_archflags}'

you would do, assuming you're OK with setting the value rather than appending to it, this:

"CFLAGS=${configure.cppflags} ${configure.cflags} ${configure.cc_archflags}"

The double quotes are needed because the value contains spaces. For CPPFLAGS in this port you can just do CPPFLAGS=${configure.cppflags}.

comment:2 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)

Yes but also the build phase is being overridden with individual system commands which attempt to pass the env vars along. I don't think that'll work with the proposed change...

comment:3 Changed 5 years ago by jmroot (Joshua Root)

Ah, well then just don't use build.env as the variable if that's how they're going to be used.

comment:4 Changed 5 years ago by jmroot (Joshua Root)

And TBH I'm not sure how that ever worked either. I'd expect you need to use join to flatten the lists.

comment:5 Changed 5 years ago by mf2k (Frank Schima)

Owner: m7thon deleted

See #59613.

comment:6 Changed 5 years ago by jmroot (Joshua Root)

Owner: set to jmroot
Resolution: fixed
Status: assignedclosed

In a8ca9cbd9766a78a2db6da086a301636480884fd/macports-ports (master):

ipe-tools: fix build.env misuse

Closes: #59155

comment:7 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)

I don't think that's right... it now fails (also on my own machine) with:

/opt/local/bin/clang++-mp-9.0 -Os -stdlib=libc++ -arch i386 -Wno-write-strings -I/opt/local/include -I/opt/local/include/poppler   -c -o parseargs.o parseargs.cc
In file included from parseargs.cc:30:
./parseargs.h:30:10: fatal error: 'goo/gtypes.h' file not found
#include "goo/gtypes.h"
         ^~~~~~~~~~~~~~
1 error generated.

I don't see the project's own -I flags in there anywhere.

comment:8 Changed 5 years ago by jmroot (Joshua Root)

It's at least as right as it was before. That is a failure due to incompatibility with the current poppler version.

comment:9 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)

Oh yes, ok. I was misled by the incorrect " delimiters on the include to think it was a project-local file. I see that upstream for ipe-tools fixed this problem in January. We should update to a newer upstream commit, or better yet to the stable version 7.2.8.1 which was released right after the fix for this problem was committed.

Note: See TracTickets for help on using tickets.