Opened 6 weeks ago

Last modified 10 days ago

#63121 new defect

poppler @20.12.1_3 does not build on PPC Tiger because it wants boost176

Reported by: ballapete (Peter Dyballa) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: tiger Cc: devans@…, cjones051073 (Chris Jones), evanmiller (Evan Miller)
Port: poppler

Description

boost176 needs a C++11 capable compiler while boost171 is already installed.

Attachments (1)

boost176-build-tiger-ppc-main.log (548.6 KB) - added by evanmiller (Evan Miller) 13 days ago.
Failing build log (10.4.11 / PowerPC)

Download all attachments as: .zip

Change History (19)

comment:1 Changed 6 weeks ago by reneeotten (Renee Otten)

so the actual issue was with boost176 and not poppler, in other words #63120? It seems that was fix and, therefore, this ticket can be closed - correct?

comment:2 in reply to:  1 Changed 6 weeks ago by ballapete (Peter Dyballa)

Replying to reneeotten: No. boost176 does not build in the end. It has more problems than trivial support of C++11. The actual question is why poppler now needs boost at all and why it needs boost176 in particular.

comment:3 Changed 6 weeks ago by reneeotten (Renee Otten)

in this commit the poppler port was migrated to the boost PG, so that explains why it now uses the latest boost176 which is the newest version the port builds with. However, it also now adds the boost variant to the default set, possibly that can be changed to not do that on older systems.

For now you should be fine with just installing poppler -boost, unless of course you do need that variant then you'll probably have to do some work yourself. You could, for example, add boost.version 1.71 to the Portfile in you local port directory (which I assume you have if you want to get things to work on an old system) to have it built with a version of boost that apparently builds on Tiger.

Last edited 6 weeks ago by reneeotten (Renee Otten) (previous) (diff)

comment:4 in reply to:  3 ; Changed 6 weeks ago by ballapete (Peter Dyballa)

Replying to reneeotten: What is boost good for? Poppler worked fine for decades without it…

comment:5 in reply to:  3 ; Changed 6 weeks ago by ballapete (Peter Dyballa)

Replying to reneeotten:

For now you should be fine with just installing poppler -boost, unless of course you do need that variant then you'll probably have to do some work yourself. You could, for example, add boost.version 1.71 to the Portfile in you local port directory (which I assume you have if you want to get things to work on an old system) to have it built with a version of boost that apparently builds on Tiger.

DEBUG: invalid command name "boost.version"
    while executing
"boost.version 1.71"
    (file "Portfile" line 100)

comment:6 Changed 6 weeks ago by ballapete (Peter Dyballa)

There is a bug in Portfile. When I try port -vd build -sk poppler -boost port starts to:

DEBUG: Attempting ln -sf /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_python39/python39/work /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/lang/python39/work
DEBUG: dropping privileges: euid changed to 501, egid changed to 20.
DEBUG: Starting logging for python39 @3.9.5_0
DEBUG: macOS 11.4 (darwin/20.5.0) arch i386
DEBUG: MacPorts 2.7.1
DEBUG: Xcode 12.5
DEBUG: SDK 11
DEBUG: MACOSX_DEPLOYMENT_TARGET: 11.0
--->  Computing dependencies for python39

although it tells me:

port deps poppler -boost
Full Name: poppler @20.12.1_3
Extract Dependencies: xz
Build Dependencies:   cmake, pkgconfig
Library Dependencies: bzip2, curl, expat, fontconfig, freetype, libjpeg-turbo, glib2, cairo, lcms2, libiconv, libpng, nss, openjpeg, poppler-data, tiff, zlib, gobject-introspection

OTOH, if I invoke port rdeps poppler -boost | grep 39 I get:

          python39
        py39-libxml2
      py39-anytree
        py39-setuptools
        py39-six
          py39-pytest
            py39-setuptools_scm
            py39-attrs
              py39-hypothesis
                py39-sortedcontainers
              py39-zopeinterface
            py39-iniconfig
            py39-packaging
              py39-parsing
            py39-pluggy
              py39-py
            py39-toml
        py39-nose
      py39-lxml
      py39-pygments
      py39-mock
    py39-mako
      py39-beaker
      py39-markupsafe
    py39-markdown

Does the recent portversion really know what it is doing and outputting?

comment:7 in reply to:  4 ; Changed 6 weeks ago by reneeotten (Renee Otten)

Replying to ballapete:

Replying to reneeotten: What is boost good for? Poppler worked fine for decades without it…

just look at the boost variant description, with that you know as much as I do... [+]boost: Use Boost when building the Splash graphics backend

comment:8 in reply to:  5 ; Changed 6 weeks ago by reneeotten (Renee Otten)

Replying to ballapete:

Replying to reneeotten:

For now you should be fine with just installing poppler -boost, unless of course you do need that variant then you'll probably have to do some work yourself. You could, for example, add boost.version 1.71 to the Portfile in you local port directory (which I assume you have if you want to get things to work on an old system) to have it built with a version of boost that apparently builds on Tiger.

DEBUG: invalid command name "boost.version"
    while executing
"boost.version 1.71"
    (file "Portfile" line 100)

there are at least 100 ports doing this so that should work, provided that you put it inside the boost variant as it needs to have the boost PG included.

comment:9 in reply to:  7 Changed 6 weeks ago by ballapete (Peter Dyballa)

Replying to reneeotten:

Replying to ballapete:

Replying to reneeotten: What is boost good for? Poppler worked fine for decades without it…

just look at the boost variant description, with that you know as much as I do... [+]boost: Use Boost when building the Splash graphics backend

I don't know what "Splash" is – if it's just a graphical splash screen then I can live without it. There is a command line in (almost all) Macs…

comment:10 Changed 6 weeks ago by reneeotten (Renee Otten)

Does the recent portversion really know what it is doing and outputting?

I would assume so.

If you look at the full output instead of only grepping py39-, you will see that the python ports are being pulled in as a dependency for gobject-introspection. I have no reason to assume that would be incorrect.

comment:11 in reply to:  8 ; Changed 6 weeks ago by ballapete (Peter Dyballa)

Replying to reneeotten:

there are at least 100 ports doing this so that should work, provided that you put it inside the boost variant as it needs to have the boost PG included.

Is this equivalent to Put it between lines #93 and #98 of Portfile!?

comment:12 in reply to:  11 Changed 6 weeks ago by reneeotten (Renee Otten)

Replying to ballapete:

Replying to reneeotten:

there are at least 100 ports doing this so that should work, provided that you put it inside the boost variant as it needs to have the boost PG included.

Is this equivalent to Put it between lines #93 and #98 of Portfile!?

Yes exactly, it just has to come underneath the line (PortGroup boost 1.0) where the portgroup is included.

comment:13 Changed 6 weeks ago by cjones051073 (Chris Jones)

Does boost176 still not build on old OSes following the change here

https://github.com/macports/macports-ports/commit/2f7c222384c558960d6093572b59918836d36974

If not please post a complete build log for boost176.

Last edited 6 weeks ago by cjones051073 (Chris Jones) (previous) (diff)

comment:14 Changed 6 weeks ago by cjones051073 (Chris Jones)

Cc: cjones051073 added

comment:15 Changed 2 weeks ago by evanmiller (Evan Miller)

Cc: evanmiller added

Changed 13 days ago by evanmiller (Evan Miller)

Failing build log (10.4.11 / PowerPC)

comment:16 Changed 13 days ago by evanmiller (Evan Miller)

This commit will fix the Availability.h errors if it can be backported to boost176. However, there is another error that will need to be addressed:

:info:build darwin.compile.c++ bin.v2/libs/nowide/build/darwin-7.5.0/release/threading-multi/visibility-hidden/cstdlib.o
:info:build     "/opt/local/bin/g++-mp-7"   -fvisibility-inlines-hidden -Os -std=gnu++11 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc  -fPIC -m32 -O3 -Wall -fvisibility=hidden -dynamic -gdwarf-2 -fexceptions -Wno-inline  -DBOOST_ALL_NO_LIB=1 -DBOOST_NOWIDE_DYN_LINK=1 -DBOOST_NOWIDE_NO_LFS -DNDEBUG  -I"."  -c -o "bin.v2/libs/nowide/build/darwin-7.5.0/release/threading-multi/visibility-hidden/cstdlib.o" "libs/nowide/src/cstdlib.cpp"
:info:build libs/nowide/src/cstdlib.cpp: In function 'int boost::nowide::unsetenv(const char*)':
:info:build libs/nowide/src/cstdlib.cpp:31:30: error: void value not ignored as it ought to be
:info:build          return ::unsetenv(key);

See attached log for complete context.

comment:17 Changed 13 days ago by kencu (Ken)

there have been no reports of issues with legacy_support_devel, so I'm going to push the Availabilty.h fix into legacy_support very shortly.

Then Tiger users will never see this Availabilty.h issue again (or at least the fix will trivial, adding the ubiquitous legacysupport PG).

Expecting upstreams to support 10.4 is pretty unrealistic, and now for this headache, at least, they will never have to again.

Probably we can also strip a lot of hacks out of our patchfiles, thank God...

Last edited 13 days ago by kencu (Ken) (previous) (diff)

comment:18 Changed 10 days ago by evanmiller (Evan Miller)

In f2d91d1ad6d1931f7b69544ccd0ce093ab7e7dbc/macports-ports (master):

boost176: Fix build on Tiger

See: #63121

Note: See TracTickets for help on using tickets.