[MacPorts] #63224: poedit @2.4.3: rev-upgrade failed: Port poedit still broken after rebuilding 3 times
MacPorts
noreply at macports.org
Wed Jul 7 01:22:51 UTC 2021
#63224: poedit @2.4.3: rev-upgrade failed: Port poedit still broken after
rebuilding 3 times
--------------------------+--------------------
Reporter: cooljeanius | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.7.1
Resolution: | Keywords: bigsur
Port: poedit |
--------------------------+--------------------
Changes (by ryandesign):
* keywords: => bigsur
Comment:
Replying to [comment:1 l2dy]:
> I'm not able to reproduce this error, which version and architecture of
macOS are you using?
You are able to build this port on Big Sur? We are not able to build it on
Big Sur on the buildbot.
If we look at the binary that was produced for Catalina we see that some
of the libraries have wrong-looking install_names, specifically
libtextstyle.0.dylib and libasprintf.0.dylib:
{{{
$ find
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/lib
-type f | xargs otool -L
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/lib/libgettextpo.0.dylib:
@rpath/libgettextpo.0.dylib (compatibility version 6.0.0, current
version 6.7.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/lib/libtextstyle.0.dylib:
//lib/libtextstyle.0.dylib (compatibility version 2.0.0, current
version 2.1.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/lib/libintl.8.dylib:
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/lib/libasprintf.0.dylib:
//lib/libasprintf.0.dylib (compatibility version 1.0.0, current
version 1.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
version 902.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/lib/libgettextsrc-0.21.dylib:
@rpath/libgettextsrc-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libgettextlib-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
@executable_path/../lib/libtextstyle.0.dylib (compatibility
version 2.0.0, current version 2.1.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/lib/libgettextlib-0.21.dylib:
@rpath/libgettextlib-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
}}}
However when we look at the binaries, the error has been corrected in them
(the erroneous `//lib` prefix has been replaced by
`@executable_path/../lib`:
{{{
$ find
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/bin
-type f | xargs otool -L
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/bin/msgmerge:
@rpath/libgettextsrc-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libgettextlib-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@executable_path/../lib/libtextstyle.0.dylib (compatibility
version 2.0.0, current version 2.1.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/bin/msgcat:
@rpath/libgettextsrc-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libgettextlib-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@executable_path/../lib/libtextstyle.0.dylib (compatibility
version 2.0.0, current version 2.1.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/bin/msgunfmt:
@rpath/libgettextsrc-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libgettextlib-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@executable_path/../lib/libtextstyle.0.dylib (compatibility
version 2.0.0, current version 2.1.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/bin/msgfmt:
@rpath/libgettextsrc-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libgettextlib-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@executable_path/../lib/libtextstyle.0.dylib (compatibility
version 2.0.0, current version 2.1.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/bin/xgettext:
@rpath/libgettextsrc-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libgettextlib-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@executable_path/../lib/libtextstyle.0.dylib (compatibility
version 2.0.0, current version 2.1.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
./poedit-2.4.3_0.darwin_19.x86_64/Applications/MacPorts/Poedit.app/Contents/PlugIns/GettextTools.bundle/Contents/MacOS/bin/msguniq:
@rpath/libgettextsrc-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@rpath/libgettextlib-0.21.dylib (compatibility version 0.0.0,
current version 0.0.0)
@executable_path/../lib/libtextstyle.0.dylib (compatibility
version 2.0.0, current version 2.1.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
@rpath/libintl.8.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current
version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1281.100.1)
}}}
This fixup happens in macos/fixup-dylib-deps.sh when it is invoked from
deps/generate_build_ninja.py:
{{{
# fix dylib references to work
'$top_srcdir/../macos/fixup-dylib-
deps.sh //lib @executable_path/../lib $destdir/lib $destdir/bin/*',
}}}
Eric's error message refers to `/lib/libtextstyle.0.dylib` (one leading
slash) not `//lib/libtextstyle.0.dylib` (two leading slashes). Perhaps
whatever causes the two leading slashes on Catalina and earlier leaves
only the single leading slash on Big Sur and therefore the replacement of
`//lib` with `@executable_path/../lib` does not have any effect.
The best fix would be to make the build produce correct install_names in
the first place and remove the need to fix them up later. Failing that, a
simple workaround could be to call fixup-dylib-deps.sh twice, once for
`//lib` and a second time for `/lib`.
Upstream has fixed this issue in
https://github.com/vslavik/poedit/commit/888920d1bdcb5107a80f4d436257e9cec23cf0d8
which is in poedit 3.0. Perhaps the port could be updated to that version.
--
Ticket URL: <https://trac.macports.org/ticket/63224#comment:3>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list