Opened 5 years ago

Closed 4 years ago

#59519 closed defect (fixed)

evince: error: expected ';' at end of declaration list

Reported by: joshupetersen (Joshua Petersen) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc:
Port: evince

Description

When running

sudo port install gnome

gets the error:

Error: Failed to build evince: command execution failed.

Looking in main.log for evince, I found the following:

....
/opt/local/include/unicode/localpointer.h:71:51: warning: deleted function definitions are a C++11 extension [-Wc++11-extension]
/opt/local/include/unicode/localpointer.h:72:53: warning: deleted function definitions are a C++11 extension [-Wc++11-extension]
/opt/local/include/unicode/localpointer.h:74:58:  warning: deleted function definitions are a C++11 extension [-Wc++11-extension]
/opt/local/include/unicode/localpointer.h:224:34:  warning: rvalue references are a C++11 extension [-Wc++11-extension]
/opt/local/include/unicode/localpointer.h:224:40: error: expected ';' at end of declaration list
/opt/local/include/unicode/localpointer.h:405:30: warning: rvalue references are a C++11 extension [-Wc++11-extension]
/opt/local/include/unicode/localpointer.h:405:36: error: expected ';' at end of declaration list
....
(More errors came later of a similar nature)

Change History (8)

comment:1 Changed 5 years ago by joshupetersen (Joshua Petersen)

Keywords: gnome evince removed

comment:2 Changed 5 years ago by joshupetersen (Joshua Petersen)

I've seen a similar ticket (NOT A DUPLICATE) for another port, specifically qscintilla, but it looks like it could have a very similar solution:

#53625

Last edited 4 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

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

Please attach the main.log.

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

Owner: set to dbevans
Port: evince added; gnome removed
Status: newassigned
Summary: When building gnome, error in evince, likely compiler versionevince: error: expected ';' at end of declaration list

#53625 is a years-old ticket. But what has happened recently is that icu (which is the port that installed the file /opt/local/include/unicode/localpointer.h) was updated to a new version that requires C++11. Because of this, many ports that require icu now have to require C++11 as well. evince doesn't use icu (at least, it doesn't declare a dependency on it), but it does use libxml2, which uses icu, and that may be enough to impose the C++11 requirement on evince. We have seen such problems with other ports since the icu update.

comment:5 Changed 4 years ago by Zippyzip

Same problem here. It seems that this problem is popping up all over the place with other ports. Any short-time fix while waiting for the updated port?

comment:6 Changed 4 years ago by kencu (Ken)

an easy thing to try is to build it with a compiler that defaults to >= -std=c++11, eg:

sudo port -v install clang-9.0
sudo port -v install evince configure.compiler=macports-clang-9.0

comment:7 in reply to:  6 Changed 4 years ago by Zippyzip

Replying to kencu:

an easy thing to try is to build it with a compiler that defaults to >= -std=c++11, eg:

sudo port -v install clang-9.0
sudo port -v install evince configure.compiler=macports-clang-9.0

Thanks, that worked.

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

Resolution: fixed
Status: assignedclosed

In 134cb9c9d05ee6e044dc330204d9dc33ee495f73/macports-ports (master):

libxml2: update to 2.9.10

Also, don't expose the ICU C++ API via libxml/encoding.h if the C++
version is too old.

Fixes: #59499
Fixes: #59519
Fixes: #59565
Fixes: #59567
Fixes: #59645
Fixes: #59721
Fixes: #59736

Note: See TracTickets for help on using tickets.