#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)
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:6 Changed 5 years ago by jmroot (Joshua Root)
Owner: | set to jmroot |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
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.
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
you would do, assuming you're OK with setting the value rather than appending to it, this:
The double quotes are needed because the value contains spaces. For CPPFLAGS in this port you can just do
CPPFLAGS=${configure.cppflags}
.