Opened 14 months ago

Last modified 14 months ago

#67088 new defect

source-highlight: use a newer version of boost?

Reported by: Guymer (Thomas Guymer) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc:
Port: source-highlight

Description

"source-highlight" is failing to build because it depends on "boost171", which in turn is failing to build as reported in ticket:66686. Instead of waiting for ticket:66686 to be resolved, could "source-highlight" just be built using a newer boost version? Thanks

Change History (11)

comment:1 Changed 14 months ago by reneeotten (Renee Otten)

have you verified which newer boost port does build on your system (and is thus not affected by the ticket you mention)?

Last edited 14 months ago by reneeotten (Renee Otten) (previous) (diff)

comment:2 Changed 14 months ago by Guymer (Thomas Guymer)

Hi,

Thank you for getting back to me. I would say "boost176". I reinstalled all my ports yesterday and switched from Python 3.10 to Python 3.11. This meant that "port" brought in "boost176" as it is a requirement of "py311-scipy" (which is one of the ports that was built). To double check, I just ran:

user@host ~ % port installed boost\*
The following ports are currently installed:
  boost176 @1.76.0_6+no_single+no_static+python311 (active)

So yeah, let's go with "boost176" please.

Thanks,

Tom

comment:3 Changed 14 months ago by kencu (Ken)

no boost versions build universal arm64/x86_64 at present.

comment:4 Changed 14 months ago by Guymer (Thomas Guymer)

Then I am confused, how was I able to successfully install "boost176" yesterday but not "boost171"?

comment:5 Changed 14 months ago by Guymer (Thomas Guymer)

I just ran the below commands:

sh-3.2# port install -cu boost171
--->  Computing dependencies for boost171
--->  Fetching archive for boost171
--->  Attempting to fetch boost171-1.71.0_6+no_single+no_static+python311.darwin_22.arm64.tbz2 from https://packages.macports.org/boost171
--->  Attempting to fetch boost171-1.71.0_6+no_single+no_static+python311.darwin_22.arm64.tbz2 from https://ema.uk.packages.macports.org/boost171
--->  Attempting to fetch boost171-1.71.0_6+no_single+no_static+python311.darwin_22.arm64.tbz2 from https://mse.uk.packages.macports.org/boost171
--->  Fetching distfiles for boost171
--->  Attempting to fetch boost_1_71_0.tar.bz2 from https://distfiles.macports.org/boost171
--->  Verifying checksums for boost171                                          
--->  Extracting boost171
--->  Applying patches to boost171
--->  Configuring boost171
--->  Building boost171                                  
Error: Failed to build boost171: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost171/boost171/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
Error: Processing of port boost171 failed
sh-3.2# port install -cu boost176
--->  Computing dependencies for boost176
--->  Cleaning boost176
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.
sh-3.2# port installed boost\*
The following ports are currently installed:
  boost176 @1.76.0_6+no_single+no_static+python311 (active)

The variants of both "boost171" and "boost176" are the same, yet "boost171" fails and "boost176" has been successful. I don't understand. As I see it, if "source-highlight" was to use "boost176" right now then I could install "source-highlight" successfully as I already have "boost176" installed successfully from yesterday so nothing extra would need to be built.

I apologise for my ignorance.

Last edited 14 months ago by Guymer (Thomas Guymer) (previous) (diff)

comment:6 Changed 14 months ago by kencu (Ken)

your referenced ticket #66686 is about boost not building universal as arm64/x86_64, and no boost versions can build universal with those archs right now.

(when you built boost176, it’s not universal.)

Last edited 14 months ago by kencu (Ken) (previous) (diff)

comment:7 Changed 14 months ago by kencu (Ken)

boost171 builds fine on arm macs, when last built by the buildbot at least.

https://ports.macports.org/port/boost171/builds/

so if you’re having a problem building it, you could open a ticket for that and put up a log.

not to say that source-highlight shouldn’t use the current recommended boost… that’s a separate question, and sure, it should.

comment:8 Changed 14 months ago by kencu (Ken)

one thing I do notice is that you’re using the python311 variant recently added to boost171

it’s possible that could be an issue. Ideally, these new variants are tested before being added, but ….

comment:9 Changed 14 months ago by kencu (Ken)

yeah, that looks like it.

boost171 will not build with python311. The log is filled with errors like this:

:info:build ./boost/python/object/make_instance.hpp:50:31: error: expression is not assignable
:info:build             Py_SIZE(instance) = offsetof(instance_t, storage);
:info:build             ~~~~~~~~~~~~~~~~~ ^

but building boost171 with python310 is fine.

I guess nobody tested the python311 variant when it was added.

So that will be a separate ticket, I'll open that.

As boost176 is currently the default boost, then changing source-highlight to use it seems right (assuming it works, as you said it does).

comment:10 Changed 14 months ago by kencu (Ken)

ticket for boost171 not building against python311 is here #67090

comment:11 Changed 14 months ago by Guymer (Thomas Guymer)

Thank you very much for investigating that Ken, I had just assumed that "boost171" was not building for the same reason as the open ticket about "boost171" failing to build, rather than due to something different. I did not check to see why my build was failing to make sure that it was the same as that ticket, I apologise for that. As I see it, there are two possible ways forward to obtain "source-highlight" on a Python 3.11-only system:

  1. build "source-highlight" with "boost176" instead (this ticket)
  2. fix "boost171" to work with "+python311" (ticket:67090)

I prefer the first option, as it will result in fewer Boost libraries being installed on my machine, and you say that "boost176" is the default Boost currently.

Note: See TracTickets for help on using tickets.