Opened 7 months ago

Closed 10 days ago

Last modified 7 days ago

#73696 closed defect (fixed)

poppler @26.02.0_0: Undefined symbols __ZN5GpgME4Data8toStringB5cxx11Ev __ZNK5GpgME5Error11asStdStringB5cxx11Ev

Reported by: jrandall814 Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.12.4
Keywords: lion mountainlion mavericks yosemite elcapitan sierra highsierra mojave Cc: dbevans (David B. Evans), aeiouaeiouaeiouaeiouaeiouaeiou, rmottola (Riccardo), potmj (Michael Pot), ballapete (Peter "Pete" Dyballa), RobK88, Dave-Allured (Dave Allured), JULWAL1 (Jules Warm), drkp (Dan Ports)
Port: poppler

Description

I was recently able to overcome a build failure of poppler 26.01.0_0 on my legacy OS 10.13.6 by resorting to the patches described in ticket #73454. Within the portfile of this latest poppler 26.02.0_0 I find reference to the problem addressed in ticket #73454, but the build now fails again (for a stated reason other than the lack of a 'ranges' object).

Attachments (5)

poppler_build_error.log​ (282.0 KB) - added by jrandall814 7 months ago.
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_poppler/poppler/main.log
poppler_patch.png​ (506.5 KB) - added by jrandall814 7 months ago.
patches that enabled me to build poppler 26.01.0 on 10.13.6
do​ (30.9 KB) - added by potmj (Michael Pot) 4 months ago.
Script which builds poppler @26.02.0 +universal on El Capitan OS X 10.11.6, and documents process.
main.log​ (300.2 KB) - added by ballapete (Peter "Pete" Dyballa) 4 months ago.
Main.log from High Sierra 10.13.6 with /opt/local/bin/clang++-mp-19
Portfile.sierra.working​ (7.6 KB) - added by JULWAL1 (Jules Warm) 3 months ago.
Portfile for building poppler 26.07.0 on macoS Sierra using MacPorts Clang-16. Rename file to Portfile.

Download all attachments as: .zip

Change History (47)

Changed 7 months ago by jrandall814

Attachment: poppler_build_error.log​ added

/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_poppler/poppler/main.log

comment:1 Changed 7 months ago by jmroot (Joshua Root)

Cc: mascguy added
Keywords: highsierra added; 10.13.6 removed
Owner: set to dbevans
Port: 26.02.0_0 removed
Status: new → assigned

comment:2 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)

The log says:

Undefined symbols for architecture x86_64:
  "__ZN5GpgME4Data8toStringB5cxx11Ev", referenced from:
      getCertificateInfoFromKey(GpgME::Key const&, GpgME::Protocol) in GPGMECryptoSignBackend.cc.o
      GpgSignatureCreation::signDetached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in GPGMECryptoSignBackend.cc.o
  "__ZNK5GpgME5Error11asStdStringB5cxx11Ev", referenced from:
      GpgSignatureCreation::signDetached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in GPGMECryptoSignBackend.cc.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

Those symbols ​demangle as follows:

% c++filt __ZN5GpgME4Data8toStringB5cxx11Ev __ZNK5GpgME5Error11asStdStringB5cxx11Ev
GpgME::Data::toString[abi:cxx11]()
GpgME::Error::asStdString[abi:cxx11]() const

comment:3 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: aeiouaeiouaeiouaeiouaeiouaeiou added
Keywords: lion mountainlion mavericks yosemite elcapitan sierra mojave added
Summary: poppler 26.02.0_0 build fails on 10.13.6 → poppler @26.02.0_0 build fails on 10.13.6

#73454 was resolved by making poppler build with g++ and libstdc++ on macOS < 10.15. That can't work since everything else in MacPorts is built using clang++ and libc++—C++ standard libraries have to match.

Here, g++ can't find symbols containing abi:cxx11 in libgpgmepp.dylib. abi:cxx11 is ​a tag used by g++ for C++11 things. clang++ evidently doesn't use such a tag, so of course our libgpgmepp.dylib that was built with clang++ won't have symbols with those tags.

poppler must be changed to build with clang++ again.

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

Cc: rmottola added
Summary: poppler @26.02.0_0 build fails on 10.13.6 → poppler @26.02.0_0: Undefined symbols __ZN5GpgME4Data8toStringB5cxx11Ev __ZNK5GpgME5Error11asStdStringB5cxx11Ev

Has duplicate #73707.

comment:5 in reply to:  3 Changed 7 months ago by jrandall814

Replying to ryandesign:

#73454 was resolved by making poppler build with g++ and libstdc++ on macOS < 10.15. That can't work since everything else in MacPorts is built using clang++ and libc++—C++ standard libraries have to match.

Here, g++ can't find symbols containing abi:cxx11 in libgpgmepp.dylib. abi:cxx11 is ​a tag used by g++ for C++11 things. clang++ evidently doesn't use such a tag, so of course our libgpgmepp.dylib that was built with clang++ won't have symbols with those tags.

poppler must be changed to build with clang++ again.

I thought that the patches that I discovered within #73404 that enabled me to build poppler 26.01.0 on High Sierra (see the screenshot now the second attachment to my original ticket) made it compile with clang-17.

Changed 7 months ago by jrandall814

Attachment: poppler_patch.png​ added

patches that enabled me to build poppler 26.01.0 on 10.13.6

comment:6 Changed 7 months ago by aeiouaeiouaeiouaeiouaeiouaeiou

​https://github.com/macports/macports-ports/pull/31687

Support for C++20/C++23 on older systems is quite a challenging issue.

comment:7 Changed 7 months ago by rmottola (Riccardo)

indeed.... trying out myself. I understand here the usage of g++ has been a problem together with libstdc++ I could have not seen this on some systems if gpgmepp was built with gcc too (e.g. on PPC or sometimes I did that on 10.5/10.6 while doing partial manual upgrades).

on 10.13, I tried removing applied forcing of g++ and libdstc++ retaining:

legacysupport.newest_darwin_requires_legacy 18

being I on Darwin 17, it should be used.

In file included from /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/CharCodeToUnicode.cc:46:
/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/GlobalParams.h:173:52: error: 'path' is unavailable: introduced in macOS 10.15
  173 |     void parseNameToUnicode(const std::filesystem::path &name);
      |                                                    ^
/opt/local/libexec/llvm-17/bin/../include/c++/v1/__filesystem/path.h:446:33: note: 'path' has been explicitly marked unavailable here
  446 | class _LIBCPP_EXPORTED_FROM_ABI path {
      |                                 ^
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o] Error 1

perhaps somehow a target is trying 10.15 anyway? did someone see this specific issue?

comment:8 in reply to:  3 Changed 7 months ago by rmottola (Riccardo)

Replying to ryandesign:

Here, g++ can't find symbols containing abi:cxx11 in libgpgmepp.dylib. abi:cxx11 is ​a tag used by g++ for C++11 things. clang++ evidently doesn't use such a tag, so of course our libgpgmepp.dylib that was built with clang++ won't have symbols with those tags.

poppler must be changed to build with clang++ again.

I tried rebuilding gpgme & gpgmepp with g++, but fail to. Not ideal, but would test if in that case it would work.

comment:9 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)

You can't mix and match C++ standard libraries. You probably shouldn't try to mix C++ compilers either.

Other C++ ports in MacPorts are compiled using clang++ and linked with libc++, so gpgmepp and poppler need to be linked with libc++ as well, and ideally compiled with clang++ as well.

comment:10 Changed 6 months ago by potmj (Michael Pot)

Cc: potmj added

comment:11 Changed 6 months ago by potmj (Michael Pot)

The I find the old gcc stdlibc++ & new clang libc++ a bit of a hard thing to get my head around. It seems math programs use the gcc path, and GUI programs use clang. I have today built poppler for El Capitan 10.11.6 by reverting to clang-17, and reverting the poppler C++23 code to work on an older compiler. The gcc-15 path may still be the best for even older systems, depending on how glib2 and the like are built. I documented my progress as a bash script, and include it here as a workaround that has worked for me.

#!/bin/bash

sudo port clean poppler
sudo port configure  poppler  $1 $2 $3  configure.compiler=macports-clang-17 configure.cxx_stdlib=libc++  

### General fixes
# Find all files mentioning <ranges> and delete that specific line
files=$(grep -rl "#include <ranges>" /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/)
cnt=0
for f in $files; do
  echo "Removing ranges header from $f..."
  sudo sed -i '' '/#include <ranges>/d' "$f"
  cnt=$((cnt+1))
  done
echo $cnt files

# 1. Get the list of files
files=$(grep -rl "std::ranges::" /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/)
cnt=0
# 2. Run the bulk surgery
for f in $files; do
    echo "Patching $f..."
    # Fix std::ranges::sort(C, F) -> std::sort(C.begin(), C.end(), F)
    sudo sed -i ''  's/std::ranges::sort(\([^,]*\), \(.*\))/std::sort(\1.begin(), \1.end(), \2)/g'  "$f"
    
    # Fix std::ranges::find(C, I) -> std::find(C.begin(), C.end(), I)
    sudo sed -i ''  's/std::ranges::find(\([^,]*\), \(.*\))/std::find(\1.begin(), \1.end(), \2)/g'  "$f"
    
    # Fix std::ranges::any_of(C, F) -> std::any_of(C.begin(), C.end(), F)
    sudo sed -i ''  's/std::ranges::any_of(\([^,]*\), \(.*\))/std::any_of(\1.begin(), \1.end(), \2)/g'  "$f"

    # Fix lower_bound
    sudo sed -i ''  's/std::ranges::lower_bound(\([^,]*\), \(.*\))/std::lower_bound(\1.begin(), \1.end(), \2)/g'  "$f"

    # Fix Modern: std::ranges::replace(C, OLD, NEW)  to  Classic: std::replace(C.begin(), C.end(), OLD, NEW)
    sudo sed -i ''  's/std::ranges::replace(\([^,]*\), /std::replace(\1.begin(), \1.end(), /g'  "$f"

    # Fix reverse: std::ranges::reverse(C) -> std::reverse(C.begin(), C.end())
    sudo sed -i ''  's/std::ranges::reverse(\([^)]*\))/std::reverse(\1.begin(), \1.end())/g'  "$f"

    # Fix transform: std::ranges::transform(IN, OUT_BEGIN, LAMBDA) -> std::transform(IN.begin(), IN.end(), OUT_BEGIN, LAMBDA)
    sudo sed -i ''  's/std::ranges::transform(\([^,]*\), \([^,]*\), /std::transform(\1.begin(), \1.end(), \2, /g'  "$f"

    # Fix std::ranges::all_of(C, P) -> std::all_of(C.begin(), C.end(), P)
    sudo sed -i ''  's/std::ranges::all_of(\([^,]*\), \(.*\))/std::all_of(\1.begin(), \1.end(), \2)/g'  "$f"

    # Clobbers Dict.cc, to fix DistinguishedNameParser.h, see below:  sudo sed -i ''  's/std::ranges::find_if(\([^,]*\),/std::find_if(\1.begin(), \1.end(),/g'  "$f"

    # Fix std::ranges::copy(l, ...) -> std::copy(l.begin(), l.end(), ...)
    sudo sed -i '' 's/std::ranges::copy(\([^,]*\), /std::copy(\1.begin(), \1.end(), /g' $f

    cnt=$((cnt+1))
    done
echo $cnt files

### File specific fixes
# Need to explicitly #include <unordered_map>
f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/XRef.h
sudo sed -i '' '1i\
#include <unordered_map>
' $f


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/Dict.cc
# Replace the 5-arg version with a classic 4-arg version using a lambda
sudo sed -i ''  's/std::lower_bound(entries.begin(), entries.end(), key, std::less<> {}, \&DictEntry::first)/std::lower_bound(entries.begin(), entries.end(), key, [](const DictEntry\& a, const std::string\& b){ return a.first < b; })/'  $f

# Replace the ranges::find_if(reverse_view...) with classic std::find_if(rbegin, rend)
sudo sed -i ''  's/std::ranges::find_if(std::ranges::reverse_view(entries), \[key\](const DictEntry \&entry) { return entry.first == key; })/std::find_if(entries.rbegin(), entries.rend(), [\&key](const DictEntry \&entry) { return entry.first == key; })/'  $f

# We change 'const std::string& b' to 'const auto& b'
sudo sed -i ''  's/const std::string\& b/const auto\& b/g'  $f


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/CIDFontsWidthsBuilder.h
# Replace std::ranges::find_if(std::ranges::reverse_view(NAME), LAMBDA) 
# with    std::find_if(NAME.rbegin(), NAME.rend(), LAMBDA)
sudo sed -i '' 's/std::ranges::find_if(std::ranges::reverse_view(\([^)]*\)),/std::find_if(\1.rbegin(), \1.rend(),/g' $f


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/Gfx.cc
# Fix bboxIntersections[4]
sudo sed -i '' 's/std::ranges::sort(bboxIntersections)/std::sort(bboxIntersections, bboxIntersections + 4)/g' $f
# Fix s[4] (appears twice)
sudo sed -i '' 's/std::ranges::sort(s)/std::sort(s, s + 4)/g' $f


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/GfxFont.cc
# Replace the fake member calls with raw pointers
sudo sed -i '' 's/base14SubstFonts.begin()/base14SubstFonts/g' $f
sudo sed -i '' 's/base14SubstFonts.end()/base14SubstFonts + 14/g' $f


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/GlobalParams.cc
# Fix displayFontTab (Size 13)
sudo sed -i '' 's/displayFontTab.begin()/displayFontTab/g' $f
sudo sed -i '' 's/displayFontTab.end()/displayFontTab + 13/g' $f
# Fix winFontTab (Size 11)
sudo sed -i '' 's/winFontTab.begin()/winFontTab/g' $f
sudo sed -i '' 's/winFontTab.end()/winFontTab + 11/g' $f


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/Lexer.cc
# Fix line 606: (cmd1, p) -> (cmd1, p - cmd1)
sudo sed -i '' 's/std::string_view(cmd1, p)/std::string_view(cmd1, p - cmd1)/g' $f
# Fix line 633: (tokBuf, p) -> (tokBuf, p - tokBuf)
sudo sed -i '' 's/std::string_view(tokBuf, p)/std::string_view(tokBuf, p - tokBuf)/g' $f


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/splash/SplashFontEngine.cc
# 1. Fix fill: (fontCache, nullptr) -> (fontCache, fontCache + 16, nullptr)
sudo sed -i '' 's/std::ranges::fill(fontCache,/std::fill(fontCache.begin(), fontCache.end(),/g'  "$f"
# 2. Fix find_if: (fontCache, ...) -> (fontCache, fontCache + 16, ...)
sudo sed -i '' 's/std::ranges::find_if(fontCache,/std::find_if(fontCache.begin(), fontCache.end(),/g'  "$f"
# 3. Fix rotate: (fontCache, end - 1) -> (fontCache, fontCache + 15, fontCache + 16)
# Note: std::rotate takes (first, middle, last). We want the last element to become the first.
sudo sed -i '' 's/std::ranges::rotate(fontCache, fontCache.end() - 1)/std::rotate(fontCache.begin(), fontCache.end() - 1, fontCache.end())/g'  "$f"


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/NSSCryptoSignBackend.cc
# Fix line 320: Compare 'oid' against the buffer
sudo sed -i '' 's/std::ranges::equal(oid, std::span { attr->type.data, attr->type.len })/std::equal(oid.begin(), oid.end(), attr->type.data)/g'  $f
# Fix line 1264: Compare 'cert_hash' against the certHash buffer
sudo sed -i '' 's/std::ranges::equal(cert_hash, std::span { decoded_attr.certs\[0\]->certHash.data, decoded_attr.certs\[0\]->certHash.len })/std::equal(cert_hash.begin(), cert_hash.end(), decoded_attr.certs[0]->certHash.data)/g' $f


f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/DistinguishedNameParser.h
# Fix std::ranges::find_if(dn, LAMBDA) -> std::find_if(dn.begin(), dn.end(), LAMBDA)
sudo sed -i '' 's/std::ranges::find_if(dn,/std::find_if(dn.begin(), dn.end(),/g' $f

f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/utils/printencodings.cc
sudo sed -i ''  's/std::ranges::sort(\([^)]*\))/std::sort(\1.begin(), \1.end())/g' "$f"

f=/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/utils/HtmlFonts.cc
# Replace .contains("X") with .find("X") != std::string::npos
sudo sed -i '' 's/\.contains(\([^)]*\))/.find(\1) != std::string::npos/g' $f



######## & build ########
sudo port install  $1 $2 $3  poppler configure.compiler=macports-clang-17 configure.cxx_stdlib=libc++ 

The for loop might be quite re-usable for taming the newer C++. It's way to late for me to add much more at this stage. Good luck :-)

comment:12 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

Cc: ballapete added

comment:13 Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

I started a simpler approach: remove configure.cxx_stdlib macports-libstdc++. Which led to:

poppler @24.04.0_0+boost (active) requested_variants='' platform='darwin 17' archs='x86_64' date='2026-06-01T09:03:55+0200'

Could be that the Portfile I used was a bit outdated…

comment:14 Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

Sorry, wrong ticket!

comment:15 Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

Trying the same trick here fails:

[ 12%] Building CXX object CMakeFiles/poppler.dir/poppler/Array.cc.o
/opt/local/bin/g++-mp-15 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-adacd5d0/work/build -I/opt/local/var/macports/build/poppler-adacd5d0/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wlogical-op -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wsuggest-override -fno-exceptions -fno-check-new -fno-common -fno-operator-names -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/libcxx/v1 -nostdinc++ -isystem/opt/local/include/LegacySupport -stdlib=libc++ -std=c++23 -arch x86_64 -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/Array.cc.o -MF CMakeFiles/poppler.dir/poppler/Array.cc.o.d -o CMakeFiles/poppler.dir/poppler/Array.cc.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Array.cc
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc: In member function 'void FoFiTrueType::cvtSfnts(FoFiOutputFunc, void*, const std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&, bool, int*) const':
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1130:10: error: 'std::ranges' has not been declared
 1130 |     std::ranges::sort(locaTable, cmpTrueTypeLocaOffsetFunctor());
      |          ^~~~~~
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1135:10: error: 'std::ranges' has not been declared
 1135 |     std::ranges::sort(locaTable, cmpTrueTypeLocaIdxFunctor());
      |          ^~~~~~
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiIdentifier.cc:241:1: warning: '{anonymous}::StreamReader::~StreamReader()' defined but not used [-Wunused-function]
  241 | StreamReader::~StreamReader() = default;
      | ^~~~~~~~~~~~
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiIdentifier.cc:232:1: warning: '{anonymous}::StreamReader::StreamReader(int (*)(void*), void*, PrivateTag)' defined but not used [-Wunused-function]
  232 | StreamReader::StreamReader(int (*getCharA)(void *data), void *dataA, PrivateTag /*unused*/)
      | ^~~~~~~~~~~~
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiIdentifier.cc:115:1: warning: '{anonymous}::FileReader::~FileReader()' defined but not used [-Wunused-function]
  115 | FileReader::~FileReader()
      | ^~~~~~~~~~
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiIdentifier.cc:108:1: warning: '{anonymous}::FileReader::FileReader(FILE*)' defined but not used [-Wunused-function]
  108 | FileReader::FileReader(FILE *fA)
      | ^~~~~~~~~~
[ 12%] Building CXX object CMakeFiles/poppler.dir/poppler/CachedFile.cc.o
/opt/local/bin/g++-mp-15 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-adacd5d0/work/build -I/opt/local/var/macports/build/poppler-adacd5d0/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wlogical-op -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wsuggest-override -fno-exceptions -fno-check-new -fno-common -fno-operator-names -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/libcxx/v1 -nostdinc++ -isystem/opt/local/include/LegacySupport -stdlib=libc++ -std=c++23 -arch x86_64 -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/CachedFile.cc.o -MF CMakeFiles/poppler.dir/poppler/CachedFile.cc.o.d -o CMakeFiles/poppler.dir/poppler/CachedFile.cc.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/CachedFile.cc
make[2]: *** [CMakeFiles/poppler.dir/fofi/FoFiTrueType.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61,
                 from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/AnnotStampImageHelper.cc:15:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: 'unordered_map' in namespace 'std' does not name a template type
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |          ^~~~~~~~~~~~~
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:47:1: note: 'std::unordered_map' is defined in header '<unordered_map>'; this is probably fixable by adding '#include <unordered_map>'
   46 | #include "PopplerCache.h"
  +++ |+#include <unordered_map>
   47 | 
make[2]: *** [CMakeFiles/poppler.dir/poppler/AnnotStampImageHelper.cc.o] Error 1
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Annot.cc: In member function 'bool Annots::removeAnnot(const std::__1::shared_ptr<Annot>&)':
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Annot.cc:7560:21: error: 'std::ranges' has not been declared
 7560 |     auto idx = std::ranges::find(annots, annot);
      |                     ^~~~~~
make[2]: *** [CMakeFiles/poppler.dir/poppler/Annot.cc.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/poppler-adacd5d0/work/build'
make[1]: *** [CMakeFiles/poppler.dir/all] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/poppler-adacd5d0/work/build'
make: *** [all] Error 2
make: Leaving directory `/opt/local/var/macports/build/poppler-adacd5d0/work/build'

comment:16 Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

This is on intel macOS High Sierra, Version 10.13.6.

comment:17 Changed 4 months ago by potmj (Michael Pot)

I have had further success, expanding my above script, on 10.11.6 El Capitan for +universal. However, since a port upgrade outdated , things have failed again - it might be tied up with gobject-introspection.... The +universal build took a huge amount of work, and I was about to publish, but have been away for a few weeks, and now can't reproduce the build :-(. At least we know it can be (has been) done with clang-17!

The following ports are currently installed:
  poppler @0.79.0_0
  poppler @0.82.0_0
  poppler @0.83.0_0
  poppler @20.12.1_1
  poppler @22.03.0_0+boost
  poppler @24.03.0_0+boost
  poppler @24.04.0_2+boost
  poppler @24.04.0_3+boost
  poppler @26.02.0_0+boost+universal (active)

Update:- My object-inrtospection (glib2?) seems to be the problem. I reverted to an old one I built, and the above script still works (a -universal downgrade for me) with poppler @26.02.0_0, vis:-

$ sudo port activate gobject-introspection
The following versions of gobject-introspection are currently installed:
 1)   gobject-introspection @1.58.3_1
 2)   gobject-introspection @1.58.3_1+universal
 3)   gobject-introspection @1.78.1_2+universal
 4)   gobject-introspection @1.78.1_5
 5)   gobject-introspection @1.78.1_5+universal
 6)   gobject-introspection @1.78.1_6
 7)   gobject-introspection @1.78.1_6+universal
 8)   gobject-introspection @1.78.1_8+universal
 9)   gobject-introspection @1.86.0_1+universal (active)
Enter a number to select an option: 8
--->  Computing dependencies for gobject-introspection
--->  Deactivating gobject-introspection @1.86.0_1+universal
--->  Cleaning gobject-introspection                     
--->  Activating gobject-introspection @1.78.1_8+universal

I think this wound back the entry /opt/local/share/gir-1.0/GObject-2.0.gir. I ran the above script on the new poppler @26.02.0_0 and confirm it worked:-

./do_1
--->  Cleaning poppler
--->  Upgrading already installed dependencies of poppler
--->  Computing dependencies for poppler
--->  Fetching distfiles for poppler
--->  Verifying checksums for poppler
--->  Extracting poppler
--->  Applying patches to poppler
--->  Configuring poppler
Removing ranges header from /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/CIDFontsWidthsBuilder.h...
Removing ranges header from /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/Dict.cc...
2 files
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//ChangeLog...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//cpp/poppler-document.cpp...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//cpp/poppler-image.cpp...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//fofi/FoFiTrueType.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/Annot.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/Catalog.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/CIDFontsWidthsBuilder.h...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/Dict.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/DistinguishedNameParser.h...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/Gfx.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/GfxFont.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/GlobalParams.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/NSSCryptoSignBackend.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/PDFDoc.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//poppler/TextOutputDev.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//qt5/tests/check_signature_basics.cpp...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//qt6/tests/check_create_pgp_signature1.cpp...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//qt6/tests/check_signature_basics.cpp...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//qt6/tests/check_signature_basics_pgp.cpp...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//splash/SplashClip.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//splash/SplashFontEngine.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//splash/SplashXPathScanner.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//utils/pdfsig.cc...
Patching /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0//utils/printencodings.cc...
24 files
--->  Upgrading already installed dependencies of poppler
--->  Computing dependencies for poppler
--->  Building poppler
--->  Staging poppler into destroot                      
--->  Installing poppler @26.02.0_0+boost                
--->  Deactivating poppler @26.02.0_0+boost+universal
--->  Cleaning poppler                                   
--->  Activating poppler @26.02.0_0+boost
Last edited 4 months ago by potmj (Michael Pot) (previous) (diff)

Changed 4 months ago by potmj (Michael Pot)

Attachment: do​ added

Script which builds poppler @26.02.0 +universal on El Capitan OS X 10.11.6, and documents process.

comment:18 Changed 4 months ago by potmj (Michael Pot)

These scripts ("do") probably started development a little before poppler @26.02.0, so may now contain some lines no longer necessary, however I hope it works on at least someone else's older system. ./do -h will give a brief help. Somehow, the poppler port has lost it's +universal variant, but adding PortGroup muniversal seems enough to restore it. Tested on El Capitan OS X 10.11.6 with gobject-introspection @ 1.78.1_8.

$ file /opt/local/lib/libpoppler.157.0.0.dylib
/opt/local/lib/libpoppler.157.0.0.dylib: Mach-O universal binary with 2 architectures: [i386:\012- Mach-O i386 dynamically linked shared library, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|NO_REEXPORTED_DYLIBS|HAS_TLV_DESCRIPTORS>] [\012- x86_64:\012- Mach-O 64-bit x86_64 dynamically linked shared library, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|NO_REEXPORTED_DYLIBS|HAS_TLV_DESCRIPTORS>]

I don't have a small program to independently test poppler, as I'm still buried in the upgrade process for things like gimp2..... But at least it looks OK.

comment:19 Changed 4 months ago by jrandall814

The scripts supplied above both allow me to build poppler 26.02.0 on my MacOS 10.13.6. But after doing so my installed dependents of poppler (e.g., octave, texlive-basic, texlive-bin) unsuccessfully try to upgrade poppler once more without their aid, even though a 'port outdated' command shows no need of doing so. What might I be failing to do when I run these scripts?

comment:20 in reply to:  19 Changed 4 months ago by potmj (Michael Pot)

Replying to jrandall814:

The scripts supplied above both allow me to build poppler 26.02.0 on my MacOS 10.13.6. But after doing so my installed dependents of poppler (e.g., octave, texlive-basic, texlive-bin) unsuccessfully try to upgrade poppler once more without their aid, even though a 'port outdated' command shows no need of doing so. What might I be failing to do when I run these scripts?

Maybe you are missing the addition of a +variant, possibly from an rdep, for building the final app. I have an old system, so many things did default +universal, for example. The rdeps tree for octave and I guess texlive-bin , is no doubt quite large, so if any has been rebuilt since rebuilding poppler , a rev-upgrade may be required. See if the port rev-upgrade list includes poppler. If the final install in the last lines of the script don't actually install, you may have to add a --force or something. I think the script leaves the build files, so simply running a port rev-upgrade might pick up the final destroot files & continue.

I too have octave and texlive-bin in my tree, but I am down a rabbit hole with libheif, which is why I haven't properly tested poppler built with my scripts yet. Always short on bandwidth here!

Thank you for trying the script, and I am so pleased to hear it at least appeared to work on another machine - an achievement in it's self. I'm not a Macports expert, and there may be better solutions than these scripts, which are just my workaround. If it helps identify correct Portfile fixes, then that is great.

comment:21 in reply to:  3 ; Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

Replying to ryandesign:

poppler must be changed to build with clang++ again.

Maybe it's a faulty approach: port -vs build poppler configure.cxx=/usr/bin/clang++ leads to this failure:

-- Performing Test ICONV_SECOND_ARGUMENT_IS_CONST
CMake Error in /opt/local/var/macports/build/poppler-adacd5d0/work/build/CMakeFiles/CMakeScratch/TryCompile-JBL4sa/CMakeLists.txt:
  Target "cmTC_dd444" requires the language dialect "CXX23" .  But the
  current compiler "AppleClang" does not support this, or CMake does not know
  the flags to enable it.

This C++ standard is not supported by the system's built-in C++ compiler. Trying port -vs build poppler configure.cxx=clang++-mp-17 leads to this failure:

-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
CMake Error in /opt/local/var/macports/build/poppler-adacd5d0/work/build/CMakeFiles/CMakeScratch/TryCompile-JH9V8p/CMakeLists.txt:
  Target "cmTC_6bab0" requires the language dialect "CXX23" .  But the
  current compiler "AppleClang" does not support this, or CMake does not know
  the flags to enable it.

clang++-mp-17 documents its uselessness:

  -std=<value>            Language standard to compile for

– or do I need to invoke it with -vv or -vvv to retrieve some useful information?

Trying port -vs build poppler configure.cxx=clang++-mp-19 leads to this failure:

-- Check for working CXX compiler: /opt/local/bin/clang++-mp-19
-- Check for working CXX compiler: /opt/local/bin/clang++-mp-19 - broken
CMake Error at /opt/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:73 (message):
  The C++ compiler

    "/opt/local/bin/clang++-mp-19"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/opt/local/var/macports/build/poppler-adacd5d0/work/build/CMakeFiles/CMakeScratch/TryCompile-m4UVpg'
    
    Run Build Command(s): /opt/local/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_46ff7/fast
    /Library/Developer/CommandLineTools/usr/bin/make  -f CMakeFiles/cmTC_46ff7.dir/build.make CMakeFiles/cmTC_46ff7.dir/build
    Building CXX object CMakeFiles/cmTC_46ff7.dir/testCXXCompiler.cxx.o
    /opt/local/bin/clang++-mp-19   -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/LegacySupport -stdlib=macports-libstdc++  -arch x86_64 -mmacosx-version-min=10.13 -MD -MT CMakeFiles/cmTC_46ff7.dir/testCXXCompiler.cxx.o -MF CMakeFiles/cmTC_46ff7.dir/testCXXCompiler.cxx.o.d -o CMakeFiles/cmTC_46ff7.dir/testCXXCompiler.cxx.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/build/CMakeFiles/CMakeScratch/TryCompile-m4UVpg/testCXXCompiler.cxx
    clang++: error: invalid library name in argument '-stdlib=macports-libstdc++'
    make[1]: *** [CMakeFiles/cmTC_46ff7.dir/testCXXCompiler.cxx.o] Error 1
    make: *** [cmTC_46ff7/fast] Error 2

OK, this '-stdlib=macports-libstdc++' can be cured by commenting line #

 85         configure.cxx_stdlib  macports-libstdc++

and so we get:

[ 12%] Building CXX object CMakeFiles/poppler.dir/poppler/Catalog.cc.o
/opt/local/bin/clang++-mp-19 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-adacd5d0/work/build -I/opt/local/var/macports/build/poppler-adacd5d0/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wweak-vtables -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/libcxx/v1 -nostdinc++ -isystem/opt/local/include/LegacySupport -stdlib=libc++ -std=c++23 -arch x86_64 -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/Catalog.cc.o -MF CMakeFiles/poppler.dir/poppler/Catalog.cc.o.d -o CMakeFiles/poppler.dir/poppler/Catalog.cc.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1130:10: error: no member named 'ranges' in namespace 'std'
 1130 |     std::ranges::sort(locaTable, cmpTrueTypeLocaOffsetFunctor());
      |     ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1135:10: error: no member named 'ranges' in namespace 'std'
 1135 |     std::ranges::sort(locaTable, cmpTrueTypeLocaIdxFunctor());
      |     ~~~~~^
2 errors generated.
make[2]: *** [CMakeFiles/poppler.dir/fofi/FoFiTrueType.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 14%] Building CXX object CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o
/opt/local/bin/clang++-mp-19 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-adacd5d0/work/build -I/opt/local/var/macports/build/poppler-adacd5d0/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wweak-vtables -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/libcxx/v1 -nostdinc++ -isystem/opt/local/include/LegacySupport -stdlib=libc++ -std=c++23 -arch x86_64 -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o -MF CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o.d -o CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/CharCodeToUnicode.cc
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/AnnotStampImageHelper.cc:15:
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: no template named 'unordered_map' in namespace 'std'
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |     ~~~~~^
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:59:
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: no template named 'unordered_map' in namespace 'std'
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |     ~~~~~^
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/AnnotStampImageHelper.cc.o] Error 1
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:721:14: error: no member named 'ranges' in namespace 'std'
  721 |         std::ranges::sort(entries, [](const auto &first, const auto &second) { return first->name.compare(second->name.toStr()) < 0; });
      |         ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:770:23: error: no member named 'ranges' in namespace 'std'
  770 |     auto entry = std::ranges::lower_bound(entries, name, EntryGooStringComparer {});
      |                  ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Annot.cc:7560:21: error: no member named 'ranges' in namespace 'std'
 7560 |     auto idx = std::ranges::find(annots, annot);
      |                ~~~~~^
3 errors generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/Catalog.cc.o] Error 1
1 error generated.

This was at least a helpful compiler invocation: -std=c++23 might be the indicator to use language dialect "CXX23"!

Portfile unchanged, i.e. line #85 still commented, port -vs build poppler configure.cxx=clang++-mp-17 configure.cxxflags-append="-std=c++23" leads to this failure:

[ 12%] Building CXX object CMakeFiles/poppler.dir/poppler/Catalog.cc.o
/opt/local/bin/clang++-mp-17 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-adacd5d0/work/build -I/opt/local/var/macports/build/poppler-adacd5d0/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wweak-vtables -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/libcxx/v1 -nostdinc++ -isystem/opt/local/include/LegacySupport -stdlib=libc++ -std=c++23 -arch x86_64 -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/Catalog.cc.o -MF CMakeFiles/poppler.dir/poppler/Catalog.cc.o.d -o CMakeFiles/poppler.dir/poppler/Catalog.cc.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1130:10: error: no member named 'ranges' in namespace 'std'
 1130 |     std::ranges::sort(locaTable, cmpTrueTypeLocaOffsetFunctor());
      |     ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1135:10: error: no member named 'ranges' in namespace 'std'
 1135 |     std::ranges::sort(locaTable, cmpTrueTypeLocaIdxFunctor());
      |     ~~~~~^
2 errors generated.
make[2]: *** [CMakeFiles/poppler.dir/fofi/FoFiTrueType.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/AnnotStampImageHelper.cc:15:
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: no template named 'unordered_map' in namespace 'std'
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |     ~~~~~^
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:59:
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: no template named 'unordered_map' in namespace 'std'
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |     ~~~~~^
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/AnnotStampImageHelper.cc.o] Error 1
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:721:14: error: no member named 'ranges' in namespace 'std'
  721 |         std::ranges::sort(entries, [](const auto &first, const auto &second) { return first->name.compare(second->name.toStr()) < 0; });
      |         ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:770:23: error: no member named 'ranges' in namespace 'std'
  770 |     auto entry = std::ranges::lower_bound(entries, name, EntryGooStringComparer {});
      |                  ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Annot.cc:7560:21: error: no member named 'ranges' in namespace 'std'
 7560 |     auto idx = std::ranges::find(annots, annot);
      |                ~~~~~^
3 errors generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/Catalog.cc.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/Annot.cc.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/poppler-adacd5d0/work/build'
make[1]: *** [CMakeFiles/poppler.dir/all] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/poppler-adacd5d0/work/build'
make: *** [all] Error 2

One try left: make the comment in Portfile a statement. Which leads to instant failure:

-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /opt/local/bin/clang++-mp-17
-- Check for working CXX compiler: /opt/local/bin/clang++-mp-17 - broken
CMake Error at /opt/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:73 (message):
  The C++ compiler

    "/opt/local/bin/clang++-mp-17"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/opt/local/var/macports/build/poppler-adacd5d0/work/build/CMakeFiles/CMakeScratch/TryCompile-ulvfoN'
    
    Run Build Command(s): /opt/local/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_004aa/fast
    /Library/Developer/CommandLineTools/usr/bin/make  -f CMakeFiles/cmTC_004aa.dir/build.make CMakeFiles/cmTC_004aa.dir/build
    Building CXX object CMakeFiles/cmTC_004aa.dir/testCXXCompiler.cxx.o
    /opt/local/bin/clang++-mp-17   -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/LegacySupport -stdlib=macports-libstdc++  -arch x86_64 -mmacosx-version-min=10.13 -MD -MT CMakeFiles/cmTC_004aa.dir/testCXXCompiler.cxx.o -MF CMakeFiles/cmTC_004aa.dir/testCXXCompiler.cxx.o.d -o CMakeFiles/cmTC_004aa.dir/testCXXCompiler.cxx.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/build/CMakeFiles/CMakeScratch/TryCompile-ulvfoN/testCXXCompiler.cxx
    clang++: error: invalid library name in argument '-stdlib=macports-libstdc++'
    make[1]: *** [CMakeFiles/cmTC_004aa.dir/testCXXCompiler.cxx.o] Error 1
    make: *** [cmTC_004aa/fast] Error 2

OK, there is still this not so helpful line in Portfile:

 82         configure.compiler    macports-gcc-15

Let's comment it too! Leads to errors with ` "/opt/local/bin/clang++-mp-17":

[ 12%] Building CXX object CMakeFiles/poppler.dir/poppler/Catalog.cc.o
/opt/local/bin/clang++-mp-17 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-adacd5d0/work/build -I/opt/local/var/macports/build/poppler-adacd5d0/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wweak-vtables -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/libcxx/v1 -nostdinc++ -isystem/opt/local/include/LegacySupport -stdlib=libc++ -std=c++23 -arch x86_64 -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/Catalog.cc.o -MF CMakeFiles/poppler.dir/poppler/Catalog.cc.o.d -o CMakeFiles/poppler.dir/poppler/Catalog.cc.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1130:10: error: no member named 'ranges' in namespace 'std'
 1130 |     std::ranges::sort(locaTable, cmpTrueTypeLocaOffsetFunctor());
      |     ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1135:10: error: no member named 'ranges' in namespace 'std'
 1135 |     std::ranges::sort(locaTable, cmpTrueTypeLocaIdxFunctor());
      |     ~~~~~^
2 errors generated.
make[2]: *** [CMakeFiles/poppler.dir/fofi/FoFiTrueType.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/AnnotStampImageHelper.cc:15:
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: no template named 'unordered_map' in namespace 'std'
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |     ~~~~~^
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:59:
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: no template named 'unordered_map' in namespace 'std'
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |     ~~~~~^
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/AnnotStampImageHelper.cc.o] Error 1
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Annot.cc:7560:21: error: no member named 'ranges' in namespace 'std'
 7560 |     auto idx = std::ranges::find(annots, annot);
      |                ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:721:14: error: no member named 'ranges' in namespace 'std'
  721 |         std::ranges::sort(entries, [](const auto &first, const auto &second) { return first->name.compare(second->name.toStr()) < 0; });
      |         ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:770:23: error: no member named 'ranges' in namespace 'std'
  770 |     auto entry = std::ranges::lower_bound(entries, name, EntryGooStringComparer {});
      |                  ~~~~~^
3 errors generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/Catalog.cc.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/Annot.cc.o] Error 1

And with /opt/local/bin/clang++-mp-19 we get:

[ 12%] Building CXX object CMakeFiles/poppler.dir/poppler/Catalog.cc.o
/opt/local/bin/clang++-mp-19 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-adacd5d0/work/build -I/opt/local/var/macports/build/poppler-adacd5d0/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wweak-vtables -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/libcxx/v1 -nostdinc++ -isystem/opt/local/include/LegacySupport -stdlib=libc++ -std=c++23 -arch x86_64 -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/Catalog.cc.o -MF CMakeFiles/poppler.dir/poppler/Catalog.cc.o.d -o CMakeFiles/poppler.dir/poppler/Catalog.cc.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1130:10: error: no member named 'ranges' in namespace 'std'
 1130 |     std::ranges::sort(locaTable, cmpTrueTypeLocaOffsetFunctor());
      |     ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/fofi/FoFiTrueType.cc:1135:10: error: no member named 'ranges' in namespace 'std'
 1135 |     std::ranges::sort(locaTable, cmpTrueTypeLocaIdxFunctor());
      |     ~~~~~^
2 errors generated.
make[2]: *** [CMakeFiles/poppler.dir/fofi/FoFiTrueType.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 14%] Building CXX object CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o
/opt/local/bin/clang++-mp-19 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-adacd5d0/work/build -I/opt/local/var/macports/build/poppler-adacd5d0/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wweak-vtables -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/libcxx/v1 -nostdinc++ -isystem/opt/local/include/LegacySupport -stdlib=libc++ -std=c++23 -arch x86_64 -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o -MF CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o.d -o CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o -c /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/CharCodeToUnicode.cc
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/AnnotStampImageHelper.cc:15:
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: no template named 'unordered_map' in namespace 'std'
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |     ~~~~~^
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:59:
In file included from /opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/PDFDoc.h:61:
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/XRef.h:253:10: error: no template named 'unordered_map' in namespace 'std'
  253 |     std::unordered_map<Goffset, std::unique_ptr<ObjectStream>> objStrs; // object streams map
      |     ~~~~~^
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/AnnotStampImageHelper.cc.o] Error 1
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Annot.cc:7560:21: error: no member named 'ranges' in namespace 'std'
 7560 |     auto idx = std::ranges::find(annots, annot);
      |                ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:721:14: error: no member named 'ranges' in namespace 'std'
  721 |         std::ranges::sort(entries, [](const auto &first, const auto &second) { return first->name.compare(second->name.toStr()) < 0; });
      |         ~~~~~^
/opt/local/var/macports/build/poppler-adacd5d0/work/poppler-26.02.0/poppler/Catalog.cc:770:23: error: no member named 'ranges' in namespace 'std'
  770 |     auto entry = std::ranges::lower_bound(entries, name, EntryGooStringComparer {});
      |                  ~~~~~^
3 errors generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/Catalog.cc.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/Annot.cc.o] Error 1

Wouldn't it cause less trouble if programmers would use a programming language for programming? Life would be a bit more boring though – with bad tv programme…

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

Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log​ added

Main.log from High Sierra 10.13.6 with /opt/local/bin/clang++-mp-19

comment:22 in reply to:  21 ; Changed 4 months ago by potmj (Michael Pot)

Replying to ballapete:

Replying to ryandesign:

poppler must be changed to build with clang++ again.

Maybe it's a faulty approach: port -vs build poppler configure.cxx=/usr/bin/clang++ leads to this failure:

.......

Hi Pete, I chose to build poppler with mp-clang-17 on 10.11.6 El Capitan, because it was a manageable compiler to build on older systems, the i386 missing slices may not be as great as with a newer compiler, and the C++23 translations required would be less than with an even older compiler. At least one person has had some success with my workaround script do​, but it seems full testing of the final result is still required. Maybe it is a small step forward. The script should provide all the C++23 syntax translations currently required for building poppler with mp-clang-17.

I have found configure.cxxflags-append="-std=c++23" , and indeed any ...-append arguments on the port command line, have no effect, and are silently ignored! I guess this makes sense, as it is the command line arguments that are the first items dealt with, hence there is nothing to "append" to. It is a shame that the lack of effect appears silent.

Running other than buildmakejobs 1 set in /opt/local/etc/macports/macports.conf can make following log files harder, with the parallel compiles. I see you were sometimes getting the Apple compiler when you wanted the a macports C++ compiler, again indicating a bad configure parameter on the command line. Hope this is all of some help.

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

comment:23 in reply to:  22 Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

Replying to potmj:

I chose to build poppler with mp-clang-17 on 10.11.6 El Capitan

Which is undocumented. For C compilers this mp- construct works, because there is only the switch configure.compiler that cannot distinguish between programming languages (C, D, Lisp, COBOL, …). I chose (path) names which seems to have worked.

comment:24 in reply to:  22 Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

Replying to potmj:

I have found configure.cxxflags-append="-std=c++23" , and indeed any ...-append arguments on the port command line, have no effect, and are silently ignored! I guess this makes sense, as it is the command line arguments that are the first items dealt with, hence there is nothing to "append" to.

"nothing" is already some thing you can append some other thing to. Besides, these -append switches are meant to add something else to standards that are set via PortGroups (and -delete similarly removes something). Like in maths: 0 + <whatever> gives something more providing that <whatever> is greater than 0.

Besides this scheme has worked when I tried to teach clang++-mp-17 to compile with -std=c++23 …

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

comment:25 in reply to:  22 Changed 4 months ago by ballapete (Peter "Pete" Dyballa)

Replying to potmj:

Running other than buildmakejobs 1 set in /opt/local/etc/macports/macports.conf can make following log files harder, with the parallel compiles.

True! And it's also true that I did not check whether I selected the proper lines to cite here. It's a minor annoyance for me that can be switched off by manipulating Portfile to contain the version number of the working poppler release. (It works as long as it does not need to be rebuilt.)

I see you were sometimes getting the Apple compiler when you wanted the a macports C++ compiler, again indicating a bad configure parameter on the command line. Hope this is all of some help.

This was my first and rather useless try. (Showing that the compiler documentation is too bad to be called useful.) Some interference comes from the fact that Portfile explicitly sets GCC 15 as compiler collection to be used. Somehow MacPorts seems to use that setting for preliminaries.

Actually I did not care that much yesterday what the effect was. IMO there is something wrong in the way MacPorts handles C++ and seems to produce more problems than it solves. Possibly then when some new language standard is introduced and the old plans break to pieces. (Besides I do not understand C++.)

comment:26 Changed 4 months ago by RobK88

Cc: RobK88 added

comment:27 in reply to:  22 Changed 4 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to potmj:

I have found configure.cxxflags-append="-std=c++23" , and indeed any ...-append arguments on the port command line, have no effect, and are silently ignored! I guess this makes sense, as it is the command line arguments that are the first items dealt with, hence there is nothing to "append" to. It is a shame that the lack of effect appears silent.

It's correct that modifiers like -append are ignored, but your explanation is not the reason. The reason is that modifiers like -append are part of the enhancements MacPorts makes to Tcl, so they can be used from Portfiles, which are written in Tcl, but Tcl syntax cannot be used from the command line. The only thing you can do with variables on the command line, for testing/debugging/development, is to set a variable to a value, overriding whatever value it would otherwise have had. Note that you do this with a syntax that is familiar on the command line (e.g. configure.cxxflags=foo), whereas in Tcl and therefore in a Portfile you would use Tcl syntax (e.g. configure.cxxflags foo).

comment:28 Changed 4 months ago by Dave-Allured (Dave Allured)

Cc: Dave-Allured added

comment:29 Changed 3 months ago by JULWAL1 (Jules Warm)

On macOS Sierra, I have managed to build poppler 26.07.0 using MacPorts Clang-16.

I did this after creating a local MacPorts repository and using port -v livecheck poppler to get the latest version number and then copying to my local repo (in a sub-folder called: ~/macports-ports/graphics/poppler) the Portfile and it's corresponding 'files' folder that came with the current release of poppler.

I then edited the Portfile and changed the poppler version number to 26.07.0 and the revision to 0 with the epoch staying at 1. The checksum info, I obtained from running sudo port -v -d upgrade poppler and copied the correct checksum info from the terminal output back into the Portfile replacing the previous checksum information. I modified several lines in the Portfile and added some additional commands to the Portfile in order to get it to compile with no errors.

I ran sudo portindex -d -e -f -x ~/macports-ports to update the local Portindex files and then port outdated to make sure it registered the modified Portfile and finally ran: sudo port -d -v upgrade poppler and it built and installed it with no issues on macOS Sierra.

$ port installed poppler
The following ports are currently installed:
  poppler @26.06.0_0+boost
  poppler @26.07.0_0+boost (active)
$ pdfinfo -v
pdfinfo version 26.07.0
Copyright 2005-2026 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011, 2022 Glyph & Cog, LLC
$ pdfinfo --help
pdfinfo version 26.07.0
Copyright 2005-2026 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011, 2022 Glyph & Cog, LLC
Usage: pdfinfo [options] <PDF-file>
  -f <int>             : first page to convert
  -l <int>             : last page to convert
  -box                 : print the page bounding boxes
  -meta                : print the document metadata (XML)
  -custom              : print both custom and standard metadata
  -js                  : print all JavaScript in the PDF
  -struct              : print the logical document structure (for tagged files)
  -struct-text         : print text contents along with document structure (for tagged files)
  -isodates            : print the dates in ISO-8601 format
  -rawdates            : print the undecoded date strings directly from the PDF file
  -dests               : print all named destinations in the PDF
  -url                 : print all URLs inside PDF objects (does not scan text content)
  -enc <string>        : output text encoding name
  -listenc             : list available encodings
  -opw <string>        : owner password (for encrypted files)
  -upw <string>        : user password (for encrypted files)
  -v                   : print copyright and version info
  -h                   : print usage information
  -help                : print usage information
  --help               : print usage information
  -?                   : print usage information
$ ls -al /opt/local/lib/*libpoppler*.dylib
-rwxr-xr-x  1 root  wheel   169816  5 Jul 16:04 /opt/local/lib/libpoppler-cpp.3.1.0.dylib
lrwxr-xr-x  1 root  wheel       26  5 Jul 16:04 /opt/local/lib/libpoppler-cpp.3.dylib -> libpoppler-cpp.3.1.0.dylib
lrwxr-xr-x  1 root  wheel       22  5 Jul 16:04 /opt/local/lib/libpoppler-cpp.dylib -> libpoppler-cpp.3.dylib
-rwxr-xr-x  1 root  wheel   694044  5 Jul 16:04 /opt/local/lib/libpoppler-glib.8.31.0.dylib
lrwxr-xr-x  1 root  wheel       28  5 Jul 16:04 /opt/local/lib/libpoppler-glib.8.dylib -> libpoppler-glib.8.31.0.dylib
lrwxr-xr-x  1 root  wheel       23  5 Jul 16:04 /opt/local/lib/libpoppler-glib.dylib -> libpoppler-glib.8.dylib
-rwxr-xr-x  1 root  wheel  4034452  5 Jul 16:04 /opt/local/lib/libpoppler.162.0.0.dylib
lrwxr-xr-x  1 root  wheel       24  5 Jul 16:04 /opt/local/lib/libpoppler.162.dylib -> libpoppler.162.0.0.dylib
lrwxr-xr-x  1 root  wheel       20  5 Jul 16:04 /opt/local/lib/libpoppler.dylib -> libpoppler.162.dylib
$ otool -L /opt/local/lib/libpoppler-cpp.3.1.0.dylib /opt/local/lib/libpoppler-glib.8.31.0.dylib /opt/local/lib/libpoppler.162.0.0.dylib
/opt/local/lib/libpoppler-cpp.3.1.0.dylib:
	/opt/local/lib/libpoppler-cpp.3.dylib (compatibility version 3.0.0, current version 3.1.0)
	/opt/local/lib/libiconv.2.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/local/lib/libMacportsLegacySupport.dylib (compatibility version 1.0.0, current version 1.5.2)
	/opt/local/lib/libpoppler.162.dylib (compatibility version 162.0.0, current version 162.0.0)
	/opt/local/lib/libcxx/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
/opt/local/lib/libpoppler-glib.8.31.0.dylib:
	/opt/local/lib/libpoppler-glib.8.dylib (compatibility version 8.0.0, current version 8.31.0)
	/opt/local/lib/libiconv.2.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/local/lib/libMacportsLegacySupport.dylib (compatibility version 1.0.0, current version 1.5.2)
	/opt/local/lib/libpoppler.162.dylib (compatibility version 162.0.0, current version 162.0.0)
	/opt/local/lib/libcairo.2.dylib (compatibility version 11709.0.0, current version 11804.0.0)
	/opt/local/lib/libfreetype.6.dylib (compatibility version 27.0.0, current version 27.6.0)
	/opt/local/lib/libgio-2.0.0.dylib (compatibility version 8801.0.0, current version 8801.1.0)
	/opt/local/lib/libgobject-2.0.0.dylib (compatibility version 8801.0.0, current version 8801.1.0)
	/opt/local/lib/libglib-2.0.0.dylib (compatibility version 8801.0.0, current version 8801.1.0)
	/opt/local/lib/libintl.8.dylib (compatibility version 13.0.0, current version 13.6.0)
	/opt/local/lib/libcxx/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
/opt/local/lib/libpoppler.162.0.0.dylib:
	/opt/local/lib/libpoppler.162.dylib (compatibility version 162.0.0, current version 162.0.0)
	/opt/local/lib/libiconv.2.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/local/lib/libMacportsLegacySupport.dylib (compatibility version 1.0.0, current version 1.5.2)
	/opt/local/lib/libfreetype.6.dylib (compatibility version 27.0.0, current version 27.6.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.3.2)
	/opt/local/lib/libfontconfig.1.dylib (compatibility version 18.0.0, current version 18.1.0)
	/opt/local/lib/libjpeg.8.dylib (compatibility version 8.0.0, current version 8.3.2)
	/opt/local/lib/libcurl.4.dylib (compatibility version 13.0.0, current version 13.0.0)
	/opt/local/lib/libopenjp2.7.dylib (compatibility version 7.0.0, current version 2.5.4)
	/opt/local/lib/liblcms2.2.dylib (compatibility version 3.0.0, current version 3.19.0)
	/opt/local/lib/libpng16.16.dylib (compatibility version 75.0.0, current version 75.0.0)
	/opt/local/lib/libtiff.6.dylib (compatibility version 9.0.0, current version 9.0.0)
	/opt/local/lib/nss/libssl3.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/nss/libsmime3.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/nss/libnssutil3.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/nss/libnss3.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/nspr/libplds4.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/nspr/libplc4.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/nspr/libnspr4.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
	/opt/local/lib/libcxx/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0)

It can be done without using GCC and using MacPorts Clang-16 or above. I will add the Portfile for further testing on other macOS versions. Hope this helps.

Changed 3 months ago by JULWAL1 (Jules Warm)

Attachment: Portfile.sierra.working​ added

Portfile for building poppler 26.07.0 on macoS Sierra using MacPorts Clang-16. Rename file to Portfile.

comment:30 Changed 3 months ago by JULWAL1 (Jules Warm)

Cc: JULWAL1 added

comment:31 Changed 3 months ago by drkp (Dan Ports)

Cc: drkp added

comment:32 Changed 7 weeks ago by rmottola (Riccardo)

I don't fully @JULWAL1's work but I tried something different on 10.11 El Capitan

  1. Remove GCC hack, it should go anyway, we know it is not the route (except perhaps it could work on 10.5 PPC where everything is GCC anyway?)
  2. Use clang 16
  3. get failure for "ranges"
  4. remove use of MP - set legacysupport.use_mp_libcxx no

get failure:

pt/local/bin/clang++-mp-16 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS -Dpoppler_EXPORTS -I/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler -I/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0 -I/opt/local/var/macports/build/poppler-06287f0b/work/build -I/opt/local/var/macports/build/poppler-06287f0b/work/build/poppler -isystem /opt/local/include/openjpeg-2.5 -isystem /opt/local/include -isystem /opt/local/include/freetype2 -isystem /opt/local/include/nss -isystem /opt/local/include/nspr -isystem /opt/local/libexec/boost/1.88/include -Wall -Wextra -Wpedantic -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -Wweak-vtables -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -g -pipe -I/opt/local/libexec/boost/1.88/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.88/include -isystem/opt/local/include/LegacySupport -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -std=c++2b -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o -MF CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o.d -o CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o -c /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/CharCodeToUnicode.cc
In file included from /opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/CharCodeToUnicode.cc:46:
/opt/local/var/macports/build/poppler-06287f0b/work/poppler-26.02.0/poppler/GlobalParams.h:173:52: error: 'path' is unavailable: introduced in macOS 10.15
    void parseNameToUnicode(const std::filesystem::path &name);
                                                   ^
/opt/local/libexec/llvm-16/bin/../include/c++/v1/__filesystem/path.h:442:24: note: 'path' has been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS path {
                       ^
1 error generated.
make[2]: *** [CMakeFiles/poppler.dir/poppler/CharCodeToUnicode.cc.o] Error 1

This suggests it is not helpful on 10.11 or 10.13 except with more legacy support?

comment:33 Changed 7 weeks ago by rmottola (Riccardo)

Then I tried adapting @potmj script. I just extracted the patching part in a file. So I could run it once upgrade fails & re-run it. Remove the GCC patch of course.

I fails to build:

In file included from /opt/local/var/macports/build/poppler-06287f0b/work/build/glib/tmp-introspectswh8osue/Poppler-0.18.c:6:
In file included from /opt/local/include/glib-2.0/glib.h:32:
In file included from /opt/local/include/glib-2.0/glib/galloca.h:34:
In file included from /opt/local/include/glib-2.0/glib/gtypes.h:34:
In file included from /opt/local/lib/glib-2.0/include/glibconfig.h:12:
In file included from /opt/local/include/libcxx/v1/float.h:79:
In file included from /opt/local/libexec/llvm-16/lib/clang/16/include/float.h:21:
In file included from /opt/local/include/LegacySupport/Availability.h:52:
In file included from /opt/local/include/LegacySupport/_macports_extras/sdkversion.h:125:
/opt/local/include/LegacySupport/AvailabilityMacros.h:43:15: fatal error: 'AvailabilityMacros.h' file not found
#include_next <AvailabilityMacros.h>
              ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.14/lib/python3.14/site-packages/setuptools/_distutils/spawn.py", line 87, in spawn
    subprocess.check_call(cmd, env=_inject_macos_ver(env))
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.14/lib/python3.14/subprocess.py", line 420, in check_call
    raise CalledProcessError(retcode, cmd)

comment:34 Changed 7 weeks ago by JULWAL1 (Jules Warm)

Recently, a new upstream version of Poppler was released (26.08.0).
I edited two sections of the Portfile (that I shared above) to:

version             26.08.0

and

checksums           rmd160  48d9db233c40b16264dda40ca18178981d7adf4a \
                    sha256  dc906e68cea698109706ac6aa3d2c9d4512fcfcac42d90b8afcda486d1b9abd0 \
                    size    2031352

and I then managed to compile it successfully without any errors.

The patch file: patch-CMakeLists.txt-fix-boost.diff did change for Poppler 26.05.0 onwards:

--- CMakeLists.txt.orig	2026-05-18 16:18:23.000000000 +0100
+++ CMakeLists.txt	2026-05-18 16:27:13.000000000 +0100
@@ -235,7 +235,7 @@
 macro_optional_find_package(Cairo ${CAIRO_VERSION})
 
 if (ENABLE_BOOST)
-  find_package(Boost ${BOOST_VERSION} CONFIG)
+  find_package(Boost 1.74.0 MODULE)
   if(Boost_FOUND)
     set(USE_BOOST_HEADERS ON)
   else()

Before I shared the Portfile in question, I added the following section that I borrowed from the Portfile from libheif 1.23.x, as I thought is was relevant.

platform darwin {
    if {${os.major} >= 10 && [string match *clang* ${configure.compiler}]} {
        # Fix for error: non-portable path to file <DAV1D/xxx.h> and <AOM/xxx.h>
        # https://trac.macports.org/ticket/67404
        # Flags are Clang-specific, they break build with GCC.
        configure.cxxflags-append \
                            -Wno-nonportable-include-path \
                            -Wno-error=nonportable-include-path \
                            -Wno-unknown-warning-option \
                            -Wno-error=unknown-warning-option
    }
}

These are the important parts that I added/changed to get it to compile correctly on macOS Sierra (10.12):

configure.cxxflags-append \
    -D_LIBCPP_DISABLE_AVAILABILITY

and

# Tell the legacy support module to seamlessly bridge the standard library paths
legacysupport.newest_darwin_requires_legacy 18
legacysupport.use_mp_libcxx no

and

platform darwin {
    if {${os.major} < 17} {
        configure.ldflags-append -L${prefix}/lib/libcxx -Wl,-rpath,${prefix}/lib/libcxx
    }
}

Maybe the logic needs changing for 10.11 or 10.13

Also, on 10.12, I have the following installed:

$ echo ; xcodebuild -version && xcodebuild -showsdks ; echo ; xcodebuild -sdk macosx -version ; echo ; xcrun --sdk macosx --show-sdk-path ; echo ; /usr/bin/clang -isysroot "$(xcrun --sdk macosx --show-sdk-path)" -v ; echo ; /usr/bin/clang -isysroot "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" -v


Xcode 9.2
Build version 9C40b
macOS SDKs:
	macOS 10.13                   	-sdk macosx10.13


MacOSX10.13.sdk - macOS 10.13 (macosx10.13)
SDKVersion: 10.13
Path: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
PlatformVersion: 1.1
PlatformPath: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
ProductBuildVersion: 17C76
ProductCopyright: 1983-2017 Apple Inc.
ProductName: Mac OS X
ProductUserVisibleVersion: 10.13.2
ProductVersion: 10.13.2


/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk

Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
clang: warning: argument unused during compilation: '-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk' [-Wunused-command-line-argument]

Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
clang: warning: argument unused during compilation: '-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' [-Wunused-command-line-argument] 
Last edited 7 weeks ago by JULWAL1 (Jules Warm) (previous) (diff)

comment:35 Changed 7 weeks ago by JULWAL1 (Jules Warm)

I have noticed that this only applies to 10.12 and below:

platform darwin {
    if {${os.major} < 17} {
        configure.ldflags-append -L${prefix}/lib/libcxx -Wl,-rpath,${prefix}/lib/libcxx
    }
}

Have you tried changing it to:

platform darwin {
    if {${os.major} < 18} {
        configure.ldflags-append -L${prefix}/lib/libcxx -Wl,-rpath,${prefix}/lib/libcxx
    }
}

which will then accommodate 10.13 and then see if that works?

Clearly, getting it to support 10.11 needs more effort and looking at the Portfile in more detail.

Last edited 7 weeks ago by JULWAL1 (Jules Warm) (previous) (diff)

comment:36 in reply to:  33 Changed 4 weeks ago by PotMJ (Michael Pot)

Replying to rmottola:

Then I tried adapting @potmj script. I just extracted the patching part in a file. So I could run it once upgrade fails & re-run it. Remove the GCC patch of course.

Apologies for not replying sooner, but I have been deeply focused on libcxx bootstrap issues and do not expect to revisit poppler in the immediate future.

Thank you for looking at my script solution. However, the script and upstream poppler version moved on right around the time I submitted my 10.11 fix. The script currently relies on some quite heavy translations to roll back modern C23 coding conventions that are simply not supported by the older compilers suited to 10.11.

My solution focused on providing a +universal solution. Because poppler is a foundation library, I feel libraries should be built to match the multi-architecture layout shipped with the OS itself whenever possible. There are known shortcomings with the i386 C++ runtime support on 10.11, so a methodology was developed specifically to work around those missing system hooks. The ideas or code snippets might be able to be applied by others in situations where there are only a few holes in the i386 support, blocking +universal builds. This was one of the drivers behind the publishing of the script.

I worry that my initial approach was a bit of a "whack-a-mole" strategy. Although it successfully produced a functional +universal installation for me on 10.11 at the time, as the upstream poppler code continues to advance, more C23 dependencies will inevitably keep appearing.

I wonder if the sustainable path forward is, in fact, to utilize gcc15 configured with -stdlib=libc++ to leverage the modern Clang runtime library for final application compatibility. The only other choice going forward is to force an incredibly heavy, modern Clang bootstrap. Ultimately, gcc15 might provide superior +universal cross-compilation stability by making fewer broken architecture demands on the baseline libc++ layer.

Clarification and Addendum: Portfile Automation

Apologies, I just reviewed my previous engineering notes and realized I crossed my terminology in my last comment: my early work inside this specific ticket (#73696) was executed via a standalone hacking script rather than a formalized Portfile (fixed).

However, we did eventually successfully transition this exact style of workaround translation methodology into a production-grade Portfile structure during subsequent libheif development passes.

For the full implementation details and the actual formalized patch, please see my Portfile submission located at 17:ticket:74078.

That development track proved that these legacy C23 and C++ symbol adjustments can be cleanly automated within the standard MacPorts framework toolchain. It further reinforces why utilizing a modern, source-patched gcc15 engine configured with -stdlib=libc++ is a highly sustainable, repeatable path forward for these legacy platforms without falling into the "whack-a-mole" trap.

Last edited 4 weeks ago by PotMJ (Michael Pot) (previous) (diff)

comment:37 Changed 10 days ago by mascguy (Christopher Nielsen)

Cc: dbevans added; mascguy removed
Owner: changed from dbevans to mascguy

comment:38 Changed 10 days ago by Christopher Nielsen <mascguy@…>

Resolution: → fixed
Status: assigned → closed

In f383edd2ac8e3552b0f9811d935c6a46f5de4820/macports-ports (master):

poppler: fix builds for 10.14 and earlier

Co-authored-by: @tomio-arisaka

  • A big thanks go to Tomio, who provided this solution

See: #73454#comment:23
Fixes: #73696

comment:39 Changed 9 days ago by barracuda156

The merged hack has broken the port for libstdc++-using systems. It should be conditional on libc++, since it is only ever needed there.

comment:40 in reply to:  39 Changed 9 days ago by mascguy (Christopher Nielsen)

Replying to barracuda156:

The merged hack has broken the port for libstdc++-using systems. It should be conditional on libc++, since it is only ever needed there.

Yes, as discussed elsewhere, I still need to address that. However we needed to stop the bleeding for the vast majority of our users.

comment:41 Changed 7 days ago by rmottola (Riccardo)

Just worked for me on pretty standard 10.13, removed my overlay. Still need to test on very critical 10.11 and older! strangely 10.11 refused to build even the older version due to AvaiablityMacros, I suppose LegacySupport is whacky there, but works on 10.9!

libc++ used with GCC/PPC or elsewhere?

comment:42 Changed 7 days ago by rmottola (Riccardo)

@PotMJ sorry, missed your reply. Indeed the script-translation is not possible in the long term, but I was eager to test and it exposes a 10.11 issue for me anyway, but worked on 10.13. So it is possibly a separate issue, I wrote on the mailing list about AvilabilityMacros.h - I'd like to deepen that.

Happy that for now 10.13 works. One step at a time.

Note: See TracTickets for help on using tickets.