Snapcraft not handling cmake nested builds, not including build script files in snap, and dependency issues with meson builds
Metadata
Current evaluation
No evaluation has been recorded for this issue yet.
Issue body
snapcraft, version 2.41+18.4.2
I am trying to build my first snap from a Github project, jangernert/FeedReader. There is no Debian/Ubuntu package available and the Flatpak is broken.
feedreader is a cmake-based project, with meson recently added on a testing branch. Snapcraft needs to download and build the latest valac in the snap because what comes on most distros is woefully out of date, including the Snapcraft build machine. Getting and building valac works fine with autotools.
But I have run into three issues trying different approaches:
Issue 1. I can’t simply let the cmake plugin in Snapcraft handle everything because it breaks down when encountering nested cmake files in the WebExtension submodule of the FeedReader project:
[ 11%] Built target gtkimageview
[ 11%] Linking C static library librss-glib.a
[ 11%] Building C object libVilistextum/CMakeFiles/vilistextum.dir/unicode_entities.c.o
[ 11%] Building C object libVilistextum/CMakeFiles/vilistextum.dir/util.c.o
[ 11%] Built target i18n
[ 11%] Building C object libIvy/CMakeFiles/ivy.dir/Stacktrace.c.o
[ 12%] Building C object libVilistextum/CMakeFiles/vilistextum.dir/vilistextum.c.o
[ 12%] Built target rss-glib
[ 12%] Linking C static library libvilistextum.a
[ 12%] Built target vilistextum
[ 12%] Linking C static library libgd.a
[ 12%] Built target gd
[ 13%] Linking C static library libivy.a
[ 13%] Built target ivy
[ 14%] Linking C shared library libwebextension.so
[ 14%] Built target webextension
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Failed to run 'make -j8' for 'feedreader': Exited with code 2.
Verify that the part is using the correct parameters and try again.
Issue 2. So I tried using the "build-override" scripting option in the cmake plugin to call cmake, make, and make install myself and that appears to build without the issue above. But none of the built libraries and binaries come over into staging or prime, even though I specify they should with snap:, which is what I described here. Other parts, specifically the latest valac built by the autotools plugin, do come over, just them in fact. So when you try to run this snap, it gives me a "feedreader" not found error because there are no feedreader files, just spiffy new valac files.
https://github.com/sirredbeard/FeedReader/blob/master/snap/snapcraft.yaml
Issue 3. FeedReader also has upstream meson build features, so I pulled those in and tried using snapcraft’s meson plugin for a yaml here. But it fails with gcc, glibc, and zlib issues:
/snap/feedreader/x1/usr/bin/feedreader: /lib/x86_64-linux-gnu/libgcc_s.so.1: version `GCC_7.0.0' not found (required by /snap/feedreader/x1/usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37)
/snap/feedreader/x1/usr/bin/feedreader: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /snap/feedreader/x1/usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37)
/snap/feedreader/x1/usr/bin/feedreader: /lib/x86_64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /snap/feedreader/x1/usr/lib/x86_64-linux-gnu/libpng16.so.16)
/snap/feedreader/x1/usr/bin/feedreader: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /snap/feedreader/x1/usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18)
https://github.com/sirredbeard/FeedReader/blob/master/snap/snapcraft-meson-version.yaml
Evaluation history
No evaluation history available.