‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Wednesday, April 22, 2020 7:23 PM, Ludovic Courtès wrote: > Hi, > > Ekaitz Zarraga ekaitz@elenq.tech skribis: > > > I wrote a package to add meshlab but I'm not sure if I did it right: > > > > - It doesn't have tests so I removed the testing. > > Please add a short comment in the code saying this so that people > touching the package in the future will know. > > > - It fails to check RUNPATH, but I don't really know why so I disabled > > it at the moment. It fails while searching for meshlab core libraries > > but the search path is correct (it misses a /meshlab at the end). > > > > Could you show the error message? It may be that the build system fails > to pass the right -Wl,-rpath or even the right -L/-l flags at link time. > > > > From d9020d7e64020dc7eea1bd46af184856d568ca7d Mon Sep 17 00:00:00 2001 > > > From: Ekaitz Zarraga ekaitz@elenq.tech > > > Date: Tue, 7 Apr 2020 18:56:06 +0200 > > > Subject: [PATCH] gnu: Add meshlab > > > > gnu/packages/engineering.scm | 39 ++++++++++++++++++++++++++++++++++++ > > 1 file changed, 39 insertions(+) > > Bonus points if you can provide a commit log that follows our > conventions. :-) See > https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html and > ‘git log’ for examples. > > > +(define-public meshlab > > > > - (let ((commit-ref "Meshlab-2020.04")) > > - (package > > - (name "meshlab") > > > > > > - (version commit-ref) > > > > > > The version field should be “2020.04”. You can construct the commit > from that: > > (string-append "Meshlab-" version) > > > - (synopsis > > > > > > - "The open source system for processing and editing 3D triangular meshes.") > > > > > > - (home-page "http://www.meshlab.net/") > > > > > > - (description "MeshLab is an open source, portable, and extensible system > > > > > > Two comments: > > 1. Everything in Guix is free software, you can remove the “open > source” mention. > > 2. Please make sure to run ‘guix lint’ and check the guidelines at > https://guix.gnu.org/manual/en/html_node/Synopses-and-Descriptions.html. > > > Could you send an updated patch? > > Thanks in advance! > > Ludo’. Hi Ludo, Thanks for the detailed answer. I'll check the formatting errors. About the RUNPATH checks, I isolated one of the errors and I don't know what to change. This is the error of the file libsamplefilter.so during the runpath check: /gnu/store/lcpp0gpispfqw8zna2mjrr6cwj3ih133-meshlab-Meshlab-2020.04/lib/meshlab/plugins/libsamplefilter.so: error: depends on 'libmeshlab-common.so', which cannot be found in RUNPATH ("/gnu/store/lcpp0gpispfqw8zna2mjrr6cwj3ih133-meshlab-Meshlab-2020.04/lib" "/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib" "/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib" "/gnu/store/n6ji2fxg1cn6abd2bn2jd14pglyblysr-qtbase-5.12.7/lib" "/gnu/store/qbq794vbw5scpxvnzlnyvdkqfr9163rk-qtscript-5.12.7/lib" "/gnu/store/2k1bsh663bilxndca4gx4zrdp7m63fjb-qtxmlpatterns-5.12.7/lib" "/gnu/store/2mf0clz9w64diy0kz11qcs4q5wg9hc6z-mesa-19.3.4/lib" "/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.4.0/../../..") /gnu/store/lcpp0gpispfqw8zna2mjrr6cwj3ih133-meshlab-Meshlab-2020.04/lib/meshlab/plugins/libsamplefilterdyn.so: error: depends on 'libmeshlab-common.so', which cannot be found in RUNPATH ("/gnu/store/lcpp0gpispfqw8zna2mjrr6cwj3ih133-meshlab-Meshlab-2020.04/lib" "/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib" "/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib" "/gnu/store/n6ji2fxg1cn6abd2bn2jd14pglyblysr-qtbase-5.12.7/lib" "/gnu/store/qbq794vbw5scpxvnzlnyvdkqfr9163rk-qtscript-5.12.7/lib" "/gnu/store/2k1bsh663bilxndca4gx4zrdp7m63fjb-qtxmlpatterns-5.12.7/lib" "/gnu/store/2mf0clz9w64diy0kz11qcs4q5wg9hc6z-mesa-19.3.4/lib" "/gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.4.0/../../..") validating RUNPATH of 2 binaries in "/gnu/store/lcpp0gpispfqw8zna2mjrr6cwj3ih133-meshlab-Meshlab-2020.04/bin"... But the first element in the RUNPATH is the place where the library is. This is the library's path: /gnu/store/lcpp0gpispfqw8zna2mjrr6cwj3ih133-meshlab-Meshlab-2020.04/lib/meshlab/libmeshlab-common.so This is the linking of the libsamplefilter.so file: [ 98%] Linking CXX shared module ../../distrib/plugins/libsamplefilter.so cd /tmp/guix-build-meshlab-Meshlab-2020.04.drv-0/source/build/sampleplugins/samplefilter && /gnu/store/iz9500ssxcqlyr74hg1jq10ycrh42yq1-cmake-minimal-3.15.1/bin/cmake -E cmake_link_script CMakeFiles/samplefilter.dir/link.txt --verbose=1 /gnu/store/x3jx25cd3q363mr7nbgzrhrv1vza6cf7-gcc-7.4.0/bin/c++ -fPIC -O2 -g -DNDEBUG -Wl,--no-undefined -shared -o ../../distrib/plugins/libsamplefilter.so CMakeFiles/samplefilter.dir/samplefilter_autogen/mocs_compilation.cpp.o CMakeFiles/samplefilter.dir/samplefilter.cpp.o -Wl,-rpath,/tmp/guix-build-meshlab-Meshlab-2020.04.drv-0/source/build/common:::::: ../../common/libmeshlab-common.so /gnu/store/n6ji2fxg1cn6abd2bn2jd14pglyblysr-qtbase-5.12.7/lib/libQt5OpenGL.so.5.12.7 /gnu/store/qbq794vbw5scpxvnzlnyvdkqfr9163rk-qtscript-5.12.7/lib/libQt5Script.so.5.12.7 /gnu/store/n6ji2fxg1cn6abd2bn2jd14pglyblysr-qtbase-5.12.7/lib/libQt5Widgets.so.5.12.7 /gnu/store/n6ji2fxg1cn6abd2bn2jd14pglyblysr-qtbase-5.12.7/lib/libQt5Gui.so.5.12.7 /gnu/store/n6ji2fxg1cn6abd2bn2jd14pglyblysr-qtbase-5.12.7/lib/libQt5Xml.so.5.12.7 /gnu/store/2k1bsh663bilxndca4gx4zrdp7m63fjb-qtxmlpatterns-5.12.7/lib/libQt5XmlPatterns.so.5.12.7 /gnu/store/n6ji2fxg1cn6abd2bn2jd14pglyblysr-qtbase-5.12.7/lib/libQt5Network.so.5.12.7 /gnu/store/n6ji2fxg1cn6abd2bn2jd14pglyblysr-qtbase-5.12.7/lib/libQt5Core.so.5.12.7 ../../libexternal-glew.a /gnu/store/2mf0clz9w64diy0kz11qcs4q5wg9hc6z-mesa-19.3.4/lib/libGL.so The -rpath and -Wl are set to /tmp/guix-build-meshlab-Meshlab-2020.04.drv-0/source/build/common but it should be set to the directory it showed previously, right? If I need to change that, what do I have to do? Sorry for the inconvenience, but I'm a little bit lost on this. Thank you, Ekaitz