Opened 2 years ago

Closed 2 years ago

#65733 closed defect (fixed)

libgit2 @1.5.0: install_name changed, dependents need rev bump

Reported by: tventers Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), l2dy (Zero King), herbygillot (Herby Gillot), amake (Aaron Madlon-Kay), chadcatlett (Chad Catlett), harens (Haren S), ctreleaven (Craig Treleaven), manojkarthick (Manoj Karthick), sikmir (Nikolay Korotkiy), ken-matsui (Ken Matsui), dbevans (David B. Evans), cjones051073 (Chris Jones)
Port: libgit2 bat broot committed dura exa geany-plugins git-absorb git-branchless git-delta gitui gitweb gnuastro libgit2-glib mergestat onefetch poac py-pygit2 stagit starship

Description (last modified by jmroot (Joshua Root))

$ port -v
MacPorts 2.7.2

$ sudo port clean all
Password:

$ sudo port install rav1e
Password:

--->  Computing dependencies for rav1e
--->  Fetching distfiles for rav1e
--->  Verifying checksums for rav1e
--->  Extracting rav1e
--->  Configuring rav1e
--->  Building rav1e
Error: Failed to build rav1e: command execution failed   
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_github.com_macports_macports-ports_multimedia_rav1e/rav1e/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
Error: Processing of port rav1e failed

Attachments (1)

rav1e_install.log (362.1 KB) - added by tventers 2 years ago.
Install logfile of rav1e

Download all attachments as: .zip

Change History (25)

Changed 2 years ago by tventers

Attachment: rav1e_install.log added

Install logfile of rav1e

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

Description: modified (diff)
Owner: set to MarcusCalhoun-Lopez
Status: newassigned
Summary: Build of rav1e failed when running port upgrade outdatedrav1e @0.5.1_1 build failure

comment:2 Changed 2 years ago by jmroot (Joshua Root)

Cc: dbevans added
Port: libgit2 cargo added
Summary: rav1e @0.5.1_1 build failurelibgit2 @1.5.0: install_name changed, dependents need rev bump

Looks like libgit2 broke binary compatibility (previous install_name /opt/local/lib/libgit2.1.3.dylib, current one /opt/local/lib/libgit2.1.5.dylib.) So all the dependents (such as cargo) need to be rev bumped.

comment:3 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:4 Changed 2 years ago by mascguy (Christopher Nielsen)

The broken binary in question - cargo-cbuild - is provided by port cargo-c. And AFAIK, other ports like rust and cargo are fine. (If they weren't, builds would be failing everywhere, which they aren't.)

Also confirmed that the buildbot binaries for cargo-c are indeed stale, and need to be rebuilt. So I'll rev-bump that port.

comment:5 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: MarcusCalhoun-Lopez added; mascguy removed
Owner: changed from MarcusCalhoun-Lopez to mascguy
Port: cargo-c added; libgit2 cargo rav1e removed
Summary: libgit2 @1.5.0: install_name changed, dependents need rev bumpcargo-c: buildbot binaries broken, due to libgit2@1.5 ABI change

comment:6 Changed 2 years ago by Christopher Nielsen <mascguy@…>

Resolution: fixed
Status: assignedclosed

In df493c90ab7c8a2c401b4efdda437fc3b7fb71e2/macports-ports (master):

cargo-c: rev-bump for libgit2 ABI change
Fixes: #65733

comment:7 Changed 2 years ago by jmroot (Joshua Root)

What about the other 20+ dependents?

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

Port: libgit2 added
Resolution: fixed
Status: closedreopened
Summary: cargo-c: buildbot binaries broken, due to libgit2@1.5 ABI changelibgit2 @1.5.0: install_name changed, dependents need rev bump

dura for one is still broken. All the libgit2 dependents that haven't been updated since the last libgit2 update on August 1st need to be rev bumped (or have their dependencies fixed if they don't actually link with it).

comment:9 Changed 2 years ago by mascguy (Christopher Nielsen)

Owner: mascguy deleted
Status: reopenedassigned

comment:10 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:11 in reply to:  8 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to jmroot:

dura for one is still broken. All the libgit2 dependents that haven't been updated since the last libgit2 update on August 1st need to be rev bumped (or have their dependencies fixed if they don't actually link with it).

I've already spent multiple hours on this - including queuing rebuilds for 10.7, etc - and need to move on. Have at it.

comment:12 Changed 2 years ago by jmroot (Joshua Root)

Cc: l2dy herbygillot amake chadcatlett harens ctreleaven manojkarthick sikmir ken-matsui added; dbevans removed
Owner: set to dbevans
Port: bat broot committed dura exa geany-plugins git-absorb git-branchless git-delta gitui gitweb gnuastro libgit2-glib mergestat onefetch poac py-pygit2 stagit starship added; cargo-c removed

The implication was not that it's your job, but the problem does still exist.

comment:13 in reply to:  12 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to jmroot:

The implication was not that it's your job, but the problem does still exist.

Understood. I simply wanted to let folks know that I can't spend more time on it, as much as I'd like to!

comment:14 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 830e1ffafc404c44c766ff5cc6814a3d73036577/macports-ports (master):

libgit2 dependents: rev-bump for ABI change
See: #65733

comment:15 Changed 2 years ago by mascguy (Christopher Nielsen)

Since the rev-bumps are a no-brainer, I took care of that.

As for validating deps for these ports, presumably most of them do link with libgit2, given their purposes. So perhaps we're mostly good on that front already.

However, I'm curious as to why cargo and rust weren't broken: A quick non-exhaustive check of related binaries with otool -L, didn't show a dylib reference. So are these components dynamically loading libgit2*.dylib at runtime, or did I simply not check enough of them...?

comment:16 in reply to:  15 ; Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to mascguy:

However, I'm curious as to why cargo and rust weren't broken: A quick non-exhaustive check of related binaries with otool -L, didn't show a dylib reference. So are these components dynamically loading libgit2*.dylib at runtime, or did I simply not check enough of them...?

Hmmm, I'm seeing some unexpected build failures for Rust-based ports, which suggest that perhaps cargo and/or rust do need to be rebuilt. (While they don't appear to be broken in-general, the rustlib utilizing libgit2 does appear that it is.)

So, I'll rev-bump rust and cargo, and then queue rebuilds for the affected ports. (Was hoping to avoid that, as rust ties up our buildbots for hours on end. Sigh...)

comment:17 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In b27d880d38e6b06bbe025cb44ee0d0e4feaa2f6a/macports-ports (master):

rust/cargo: rev-bump for libgit2 ABI change
See: #65733

comment:18 in reply to:  16 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to mascguy:

So, I'll rev-bump rust and cargo, and then queue rebuilds for the affected ports. (Was hoping to avoid that, as rust ties up our buildbots for hours on end. Sigh...)

Queued rebuilds across-the-board, for the three ports affected: exa, gitui, and mergestat.

comment:19 Changed 2 years ago by mascguy (Christopher Nielsen)

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

Assigning back to myself, since I'm spearheading the effort.

comment:20 Changed 2 years ago by mascguy (Christopher Nielsen)

Of note, gitui is broken across-the-board; tracked separately by: issue:65654

comment:21 Changed 2 years ago by mascguy (Christopher Nielsen)

Port mergestat is also broken across-the-board; tracked by new ticket: issue:65756

comment:22 Changed 2 years ago by Gandoon (Erik Hedlund)

Just for information, I noticed this a few weeks ago and had to revert to libgit2 @1.3.0_1 as ibgit2 @1.5.0_0 broke exa @0.10.1_2+doc+git (turned out it was the +git that messed things up).

I was planning on trying to see if I could figure out if I could find a workaround, but I never had time for it, so I just reverted for the time being and never submitted a ticket. Good that someone got around to it. I will keep an eye out for fixes.

comment:23 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: cjones051073 added

Rust gurus, do we also need to update the various git2-related crates, now that libgit2 has been updated to 1.5.x? Or will everything "just work," with the versions we're currently using?

comment:24 in reply to:  23 Changed 2 years ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

Replying to mascguy:

Rust gurus, do we also need to update the various git2-related crates, now that libgit2 has been updated to 1.5.x? Or will everything "just work," with the versions we're currently using?

Everything looks good now, after all rev-bumps and rebuilds. Closing as fixed.

Note: See TracTickets for help on using tickets.