linuxdeploy-plugin-appimage
linuxdeploy-plugin-appimage copied to clipboard
Installation pain and missing integration with main linuxdeploy repository
Hi maintainers,
I tried installing linuxdeploy-plugin-appimage on a fresh Ubuntu system, and the process was extremely cumbersome. Here is the step-by-step path I had to take:
-
Clone the plugin repository manually:
git clone https://github.com/linuxdeploy/linuxdeploy-plugin-appimage.git cd linuxdeploy-plugin-appimage -
Initialize submodules:
git submodule update --init --recursive -
Create a build directory (optional, but standard with CMake):
mkdir build && cd build cmake .. -
Attempted to build:
make sudo make installThis failed due to
clangcomplaining about-static-libstdc++and-static-libgccbeing unused, triggered by-Werror. -
Temporary fix: remove
-Werroror suppress the unused argument warnings:cmake -DCMAKE_CXX_FLAGS="-O2 -Wno-error=unused-command-line-argument" .. make sudo make install -
Finally, the plugin compiled and installed:
/usr/local/bin/linuxdeploy-plugin-appimage
Observations / Pain Points:
- The need to clone this repository manually is confusing. Ideally, the main
linuxdeployrepository should include this plugin as a submodule or provide a streamlined install process. Users should not have to hunt it down separately. - The build breaks on Clang because of hardcoded GCC-specific flags combined with
-Werror. Many users will have Clang installed by default on modern distros. - Submodule initialization is not documented in the README; newcomers may be confused by the missing
lib/argsand other submodules. - The cumulative effect of all the steps makes installation unnecessarily painful, especially compared to the old
make/aptstyle many developers are familiar with.
Suggestions:
- Consider integrating the plugin directly into the main
linuxdeployrepository or provide a single install script. - Make CMakeLists.txt more compiler-agnostic, especially when using
-static-libstdc++and-static-libgcc. - Provide clear instructions for submodule initialization and common Clang issues in the README.
Ref:
# Clone the plugin repo
git clone https://github.com/linuxdeploy/linuxdeploy-plugin-appimage.git
cd linuxdeploy-plugin-appimage
mkdir build && cd build
cmake ..
make
sudo make install
Cloning into 'linuxdeploy-plugin-appimage'...
remote: Enumerating objects: 381, done.
remote: Counting objects: 100% (88/88), done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 381 (delta 48), reused 60 (delta 31), pack-reused 293 (from 2)
Receiving objects: 100% (381/381), 60.69 KiB | 3.00 KiB/s, done.
Resolving deltas: 100% (179/179), done.
-- The C compiler identification is Clang 14.0.0
-- The CXX compiler identification is Clang 14.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at lib/CMakeLists.txt:1 (add_subdirectory):
The source directory
/home/zezen/Downloads/GitHub/linuxdeploy-plugin-appimage/lib/args
does not contain a CMakeLists.txt file.
-- Using ccache
-- Configuring incomplete, errors occurred!
make: *** No targets specified and no makefile found. Stop.
then
# Clone the plugin repo
git clone https://github.com/linuxdeploy/linuxdeploy-plugin-appimage.git
cd linuxdeploy-plugin-appimage
mkdir build && cd build
cmake ..
make
sudo make install
Cloning into 'linuxdeploy-plugin-appimage'...
remote: Enumerating objects: 381, done.
remote: Counting objects: 100% (88/88), done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 381 (delta 48), reused 60 (delta 31), pack-reused 293 (from 2)
Receiving objects: 100% (381/381), 60.69 KiB | 3.00 KiB/s, done.
Resolving deltas: 100% (179/179), done.
-- The C compiler identification is Clang 14.0.0
-- The CXX compiler identification is Clang 14.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at lib/CMakeLists.txt:1 (add_subdirectory):
The source directory
/home/zezen/Downloads/GitHub/linuxdeploy-plugin-appimage/lib/args
does not contain a CMakeLists.txt file.
-- Using ccache
-- Configuring incomplete, errors occurred!
make: *** No targets specified and no makefile found. Stop.
etc. until the User removes the stuff by hand from CMakeList.txt and:
cmake .
-- Using ccache
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/zezen/Downloads/GitHub/linuxdeploy-plugin-appimage
zezen@above-hp2-silver:~/Downloads/GitHub/linuxdeploy-plugin-appimage$ sudo make install
[ 50%] Building CXX object src/CMakeFiles/linuxdeploy-plugin-appimage.dir/main.cpp.o
clang: warning: argument unused during compilation: '-static-libstdc++' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
[100%] Linking CXX executable linuxdeploy-plugin-appimage
[100%] Built target linuxdeploy-plugin-appimage
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/linuxdeploy-plugin-appimage