Describe the bug
I am trying to package TeleSculptor as Flatpak app for Linux.
Flatpak is one way to distribute binary apps on Linux distros.
I intend to submit this to Flathub.
https://www.flatpak.org/https://flathub.org/home
I could not build TeleSculptor using super-build.
I encounter the error below.
To Reproduce
Steps to reproduce the behavior:
Lets setup flatpak.
Since this use Flatpak to build, one must first install up-to-date version of flatpak and flatpak-builder. Make sure that flatpak and flatpak-builder package is up-to-date. Follow this instruction https://flatpak.org/setup/
Add Flathub repository, we need this to install kde sdk and runtime because it provide Qt.flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Install KDE Sdk and runtime. flatpak install org.kde.Sdk org.kde.Sdk choose version 5.15.
Download my flatpak manifest file for TeleSculptor. git clone --recursive git@github.com:kevinsmia1939/com.github.Kitware.TeleSculptor.git
Start building flatpak TeleSculptor. flatpak-builder --install --force-clean --user build com.github.Kitware.TeleSculptor
The error should occurred as below.
The manifest file is com.github.Kitware.TeleSculptor.yaml which provide all instruction for build the app.
These are the dependencies I use.
Kwiver v1.5.1
TeleSculptor commit: 35dd1f705dee55b44c39958946ad04ad8191d7ed (master)
Fletch commit: cf4538470395204a2233930d66f6bf2d75550319
I also install curl 7.77 because freedesktop provide 7.71, but still error. The header file is present.
Running: ls -l /app/include/curl
total 232
-rw-r--r-- 3 kev users 119683 Jan 1 1970 curl.h
-rw-r--r-- 2 kev users 3035 Jan 1 1970 curlver.h
-rw-r--r-- 3 kev users 3980 Jan 1 1970 easy.h
-rw-r--r-- 3 kev users 2069 Jan 1 1970 mprintf.h
-rw-r--r-- 3 kev users 17207 Jan 1 1970 multi.h
-rw-r--r-- 3 kev users 2379 Jan 1 1970 options.h
-rw-r--r-- 2 kev users 1339 Jan 1 1970 stdcheaders.h
-rw-r--r-- 3 kev users 19028 Jan 1 1970 system.h
-rw-r--r-- 3 kev users 42747 Jan 1 1970 typecheck-gcc.h
-rw-r--r-- 3 kev users 4486 Jan 1 1970 urlapi.h
Running: ls -l /app/lib/pkgconfig
total 28
... etc.
-rw-r--r-- 2 kev users 1748 Jan 1 1970 libcurl.pc
Running: ls -l /app/lib
total 16044
.. etc.
-rwxr-xr-x 2 kev users 558648 Jan 1 1970 libcurl.so
When installing KDE runtime and Sdk, it also install Freedesktop runtime and Sdk.
Which provide these basic dependencies. But I install the new curl myself as stated above.
gcc (GCC) 10.2.0
cmake version 3.20.2
curl 7.77.0 (Linux) libcurl/7.77.0 OpenSSL/1.1.1k zlib/1.2.11
In the TeleScultor manifest, I create stamps file with touch command to prevent Fletch form connecting to network because Flatpak-builder does not allow network connection when building.
[ 99%] Linking CXX shared library lib/libpdal_base.so
make[8]: Leaving directory '/run/build/TeleSculptor-prebuild/build/external/fletch-build/build/src/PDAL-build'
[ 99%] Built target pdal_base
make[8]: Entering directory '/run/build/TeleSculptor-prebuild/build/external/fletch-build/build/src/PDAL-build'
make[8]: Leaving directory '/run/build/TeleSculptor-prebuild/build/external/fletch-build/build/src/PDAL-build'
make[8]: Entering directory '/run/build/TeleSculptor-prebuild/build/external/fletch-build/build/src/PDAL-build'
[ 99%] Building CXX object apps/CMakeFiles/pdal.dir/pdal.cpp.o
In file included from /run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/ogr_api.h:45,
from /run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/gdal.h:50,
from /run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/gdal_priv.h:60,
from /run/build/TeleSculptor-prebuild/build/external/fletch-build/build/src/PDAL/pdal/GDALUtils.hpp:51,
from /run/build/TeleSculptor-prebuild/build/external/fletch-build/build/src/PDAL/apps/pdal.cpp:36:
/run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/ogr_core.h: In member function ‘void OGREnvelope::Intersect(const OGREnvelope&)’:
/run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/ogr_core.h:122:33: warning: implicitly-declared ‘OGREnvelope& OGREnvelope::operator=(const OGREnvelope&)’ is deprecated [-Wdeprecated-copy]
122 | *this = OGREnvelope();
| ^
/run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/ogr_core.h:68:9: note: because ‘OGREnvelope’ has user-provided ‘OGREnvelope::OGREnvelope(const OGREnvelope&)’
68 | OGREnvelope(const OGREnvelope& oOther) :
| ^~~~~~~~~~~
/run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/ogr_core.h: In member function ‘void OGREnvelope3D::Intersect(const OGREnvelope3D&)’:
/run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/ogr_core.h:229:35: warning: implicitly-declared ‘OGREnvelope3D& OGREnvelope3D::operator=(const OGREnvelope3D&)’ is deprecated [-Wdeprecated-copy]
229 | *this = OGREnvelope3D();
| ^
/run/build/TeleSculptor-prebuild/build/external/fletch-build/install/include/ogr_core.h:169:9: note: because ‘OGREnvelope3D’ has user-provided ‘OGREnvelope3D::OGREnvelope3D(const OGREnvelope3D&)’
169 | OGREnvelope3D(const OGREnvelope3D& oOther) :
| ^~~~~~~~~~~~~
[100%] Linking CXX executable ../bin/pdal
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_easy_reset'
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_slist_append'
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_easy_perform'
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_easy_init'
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_global_init'
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_easy_cleanup'
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_easy_setopt'
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_easy_getinfo'
/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: ../lib/libpdal_base.so.7.0.2: undefined reference to `curl_slist_free_all'
collect2: error: ld returned 1 exit status
make[8]: *** [apps/CMakeFiles/pdal.dir/build.make:101: bin/pdal] Error 1
Machine details (please complete the following information):
The Linux distro should not matter, since Flatpak is sandbox apps, so Flatpak version should be more important.
Describe the bug I am trying to package TeleSculptor as Flatpak app for Linux. Flatpak is one way to distribute binary apps on Linux distros. I intend to submit this to Flathub. https://www.flatpak.org/ https://flathub.org/home
I could not build TeleSculptor using super-build.
I encounter the error below.
To Reproduce Steps to reproduce the behavior: Lets setup flatpak.
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install org.kde.Sdk org.kde.Sdk
choose version 5.15.git clone --recursive git@github.com:kevinsmia1939/com.github.Kitware.TeleSculptor.git
flatpak-builder --install --force-clean --user build com.github.Kitware.TeleSculptor
The manifest file is com.github.Kitware.TeleSculptor.yaml which provide all instruction for build the app.
These are the dependencies I use. Kwiver v1.5.1 TeleSculptor commit: 35dd1f705dee55b44c39958946ad04ad8191d7ed (master) Fletch commit: cf4538470395204a2233930d66f6bf2d75550319
I also install curl 7.77 because freedesktop provide 7.71, but still error. The header file is present.
When installing KDE runtime and Sdk, it also install Freedesktop runtime and Sdk. Which provide these basic dependencies. But I install the new curl myself as stated above. gcc (GCC) 10.2.0 cmake version 3.20.2 curl 7.77.0 (Linux) libcurl/7.77.0 OpenSSL/1.1.1k zlib/1.2.11
In the TeleScultor manifest, I create stamps file with touch command to prevent Fletch form connecting to network because Flatpak-builder does not allow network connection when building.
I also tried passing env
No progress.
Provide error log
Machine details (please complete the following information): The Linux distro should not matter, since Flatpak is sandbox apps, so Flatpak version should be more important.
Additional context Original thread. https://github.com/Kitware/TeleSculptor/issues/425