Opened 4 years ago

Closed 4 years ago

#61290 closed defect (fixed)

poppler: fails to build in trace mode

Reported by: iefdev (Eric F) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.6.3
Keywords: Cc:
Port: poppler

Description

:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_graphics_poppler/poppler/work/poppler-20.10.0/splash/SplashXPathScanner.h:31:14: fatal error: 'boost/container/small_vector.hpp' file not found
:info:build #    include <boost/container/small_vector.hpp>
:info:build              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:info:build 1 error generated.

// ...

:warn:build The following existing files were hidden from the build system by trace mode:
:msg:build   /opt
:msg:build   /opt/local/bin/gperf
:msg:build   /opt/local/include/boost/container/small_vector.hpp
:msg:build   /usr/local/include/boost/container/small_vector.hpp

Adding boost as a depends_build, worked.

 depends_build-append \
+                    port:boost \
                     port:pkgconfig


If a port needs a dep it should be added, instead of trusting the dependency chain, or so I've been told.

Attachments (1)

poppler_main.log (239.6 KB) - added by iefdev (Eric F) 4 years ago.

Download all attachments as: .zip

Change History (5)

Changed 4 years ago by iefdev (Eric F)

Attachment: poppler_main.log added

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

However it builds fine if boost is not present at all. Certainly we want it to consistently either use or not use boost (possibly controlled by a variant if that would be worthwhile).

comment:2 in reply to:  1 Changed 4 years ago by iefdev (Eric F)

Replying to jmroot:

However it builds fine if boost is not present at all. Certainly we want it to consistently either use or not use boost (possibly controlled by a variant if that would be worthwhile).

Looks like boost is only used when building Splash:

if(ENABLE_SPLASH)
  find_package(Boost 1.58.0)
  if(Boost_FOUND)
    include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
    set(USE_BOOST_HEADERS ON)
  endif()
endif()

…but not required:

if(ENABLE_SPLASH AND NOT Boost_FOUND)
  message("Warning: Use of boost is recommended for better performance.")
endif()


When I changed it to if(ENABLE_SPLASH AND USE_BOOST_HEADERS), and then in the Portfile:

configure.args-append \
                    -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
                    -DUSE_BOOST_HEADERS=OFF \
                    -DENABLE_QT5=OFF \
                    -DENABLE_QT6=OFF \
                    -DBUILD_GTK_TESTS=OFF \
                    -DBUILD_QT5_TESTS=OFF \
                    -DBUILD_QT6_TESTS=OFF \
                    -DBUILD_CPP_TESTS=OFF \
                    -DWITH_NSS3=ON

variant boost description "Use Boost when building the Splash graphics backend" {
    depends_build-append    port:boost

    configure.args-replace  -DUSE_BOOST_HEADERS=OFF \
                            -DUSE_BOOST_HEADERS=ON
}

Then I could destroot both.

Is that what you had in mind?

comment:3 Changed 4 years ago by dbevans (David B. Evans)

Looks good to me. Will merge PR https://github.com/macports/macports-ports/pull/8690 after doing the appropriate test builds.

comment:4 Changed 4 years ago by iefdev (Eric F)

Resolution: fixed
Status: assignedclosed

In e68ee75ecaeedb221f58cbbb16a95ee270b18d40/macports-ports (master):

poppler: add boost variant

Poppler should consistently either use or not use Boost. Making a
variant solves that.

  • Add patch-check-boost.diff
  • Add variant and depends_build for boost.
  • Closes: #61290
Note: See TracTickets for help on using tickets.