Opened 2 months ago

Closed 2 months ago

#70394 closed defect (fixed)

meson @1.5.0: ports using meson fail to destroot when meson asks install_name_tool to remove the same rpath twice

Reported by: christophecvr (christophecvr) Owned by: christophecvr (christophecvr)
Priority: High Milestone:
Component: ports Version: 2.9.99
Keywords: Cc: christophecvr (christophecvr), reneeotten (Renee Otten), SoapZA
Port: meson py-meson

Description

After the update of meson to 1.5.0. A lot of gnome packages can not be build anymore. They al do fail during destroot phase with error :

here an example of just one package but it is for a lot of meson build packages.

Error: Failed to destroot gstreamer1-gst-plugins-base: command execution failed

Full command which Leads to error :

Installing gst-libs/gst/tag/tag-enumtypes.h to /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gstreamer1-gst-plugins-base/gstreamer1-gst-plugins-base/work/destroot/opt/local/include/gstreamer-1.0/gst/tag
Installing gst-libs/gst/tag/libgsttag-1.0.0.dylib to /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gstreamer1-gst-plugins-base/gstreamer1-gst-plugins-base/work/destroot/opt/local/lib
Command '['install_name_tool', '/opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gstreamer1-gst-plugins-base/gstreamer1-gst-plugins-base/work/destroot/opt/local/lib/libgsttag-1.0.0.dylib', '-delete_rpath', '/opt/local/lib', '-delete_rpath', '/opt/local/lib', '-id', '/opt/local/lib/libgsttag-1.0.0.dylib', '-change', '@rpath/libgsttag-1.0.0.dylib', '/opt/local/lib/libgsttag-1.0.0.dylib']' returned non-zero exit status 1.
Command failed:  cd "/opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gstreamer1-gst-plugins-base/gstreamer1-gst-plugins-base/work/build" && /opt/local/bin/meson install 
Exit code: 1
Error: Failed to destroot gstreamer1-gst-plugins-base: command execution failed

Error only occured since git commit :

commit eb4bde3ea7facc6f056d79f2dda5575a7e513f23

after this commit ports :

meson to 1.5.0
py312-meson to 1.5.0

are updated.

This error will have the longer the more serious consequences. Each time a concerned gnome package is updated build will fail.

The only solution to make it build again is:

Uninstall and clean all the concerned packages.
Uninstall py-meson meson.
clean all meson !! with port clean --all *meson
patch the ports python/py-meson and devel/meson back to 1.4.1

(and since you can't sync as it will ovetrwrite you're patches)
rebuild meson with command :

sudo port -s meson py-meson

Then all gnome packages do build again (if you build from source)

test are performed on clean macports installation master rewinded to :

commit eb4bde3ea7facc6f056d79f2dda5575a7e513f23

With that commit install failure

Wit on that commit downgrade the meson like explained above
All build fine again.

Include one main log (of failed build during destroot)
One main log on same commit but meson downgrade back to 1.4.1

Attachments (2)

main-notok-meson-150.txt (916.3 KB) - added by christophecvr (christophecvr) 2 months ago.
the failed build with meson 1.5.0
main-ok-meson-downgrade-to-141.txt (1.1 MB) - added by christophecvr (christophecvr) 2 months ago.
same commit but meson downgraded back to 1.4.1

Download all attachments as: .zip

Change History (8)

Changed 2 months ago by christophecvr (christophecvr)

Attachment: main-notok-meson-150.txt added

the failed build with meson 1.5.0

Changed 2 months ago by christophecvr (christophecvr)

same commit but meson downgraded back to 1.4.1

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

Cc: christophecvr reneeotten SoapZA added; @… @… removed
Keywords: meson gnome py-meson removed
Port: meson py-meson added; devel/meson python/py-meson py312-meson removed

comment:2 Changed 2 months ago by ryandesign (Ryan Carsten Schmidt)

It's the same problem also discussed starting at comment:ticket:69760:3.

meson is asking install_name_tool to delete the same rpath twice, which install_name_tool does not allow.

Here is the meson bug report and proposed fix: https://github.com/mesonbuild/meson/pull/13426

comment:3 Changed 2 months ago by ryandesign (Ryan Carsten Schmidt)

Summary: meson 1.5.0 upgrade does break build from many gnome packages during destroot phase.meson @1.5.0: ports using meson fail to destroot when meson asks install_name_tool to remove the same rpath twice

comment:4 in reply to:  3 Changed 2 months ago by christophecvr (christophecvr)

Replying to ryandesign:

Hi I just saw the commit strangely it failed on two checks of meson commit checks (ubuntu bionix and Lint) they both have nothing to do with :

def get_darwin_rpaths(...)

curious it failed on those checks

comment:5 in reply to:  3 Changed 2 months ago by christophecvr (christophecvr)

Replying to ryandesign:

I now build meson 1.5.0 with the patch proposed to mesonbuild upstream by holymonson.
https://github.com/mesonbuild/meson/pull/13426

By me it works fine and packages using meson build do now back destroot and install fine.
Because this issue makes further improving and or development hazardous when messon is used
Will brake the longer the more packages using mesonbuild on update
I send a pull request to macports with this patch included to my-meson and meson ports.
Pull request :
https://github.com/macports/macports-ports/pull/25037

comment:6 Changed 2 months ago by christophecvr (christophecvr)

Owner: set to christophecvr
Resolution: fixed
Status: newclosed

In 7bbee9a3a2a8a25a85d7ead7a4da58ee71f70d2c/macports-ports (master):

py-meson: upstream patch to fix install_name_tool issue

Closes: #70394

Note: See TracTickets for help on using tickets.