gridcoin-community / Gridcoin-Research

Gridcoin-Research
MIT License
588 stars 173 forks source link

[feature request] appimage format of wallet #2112

Open zivian opened 3 years ago

zivian commented 3 years ago

there is a closed issue #278. its almost 2 years old.

if possible release in appimage format.

zivian commented 3 years ago

see common issue in upgrades on linux. for example, [ANNOUNCE] Gridcoion-Research EOL Slackware-14.2

jamescowens commented 3 years ago

I think @cyrossignol has been working on containerized versions of the wallet. I am assigning this to him. We also need to get the depends build, which creates a statically linked binary that can be used across any distribution with minimum (g)libc requirements to work properly. The depends build is already used for Windows, but it can also be used for Linux as well. There are some issues with the Linux host build with that method currently.

div72 commented 1 year ago

Do we still want this? It should not be too hard to redirect make deploy on Linux to make app images.

jamescowens commented 1 year ago

If we can do this easily I think I am ok with it. The problem is there are two many container(ish) choices out there. I don't think we have the energy to officially support them all.

jamescowens commented 1 year ago

Related is #1981.

Igor-Misic commented 5 months ago

Do we still want this? It should not be too hard to redirect make deploy on Linux to make app images.

Hey @div72 it would be nice to have this. I've managed to build AppImage locally on my PC with docker.

This is my recipe for docker (Ubuntu 20.04 LTS) and particularly those lines are required for a program that can create AppImage.

https://github.com/Igor-Misic/Gridcoin-Research/commit/475c18bd939e369aad72dac9b746570154b097bc#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557R34-R41

This is how I do it in the docker form above.

Inside the docker, I do next: 1) config and build Gridcoin

git clone https://github.com/gridcoin-community/Gridcoin-Research.git
cd Gridcoin-Research
./autogen.sh
mkdir build
cd build
make clean
../configure -with-gui=qt5 --without-qrencode
make -j 16
make install
cd ../../

2) Preparation for AppImage

cp Gridcoin-Research/contrib/gridcoinresearch.desktop Gridcoin-Research/build/src/qt/default.desktop
cp Gridcoin-Research/share/icons/hicolor/256x256/apps/gridcoinresearch.png Gridcoin-Research/build/src/qt/gridcoinresearch.png

inside default.desktop is important to have Icon=gridcoinresearch so Gridocoin Icon is shown in desktop Linux image

3) Create Gridcoin-x86_64.AppImage

linuxdeployqt Gridcoin-Research/build/src/qt/gridcoinresearch -appimage

And that is it. In the root folder should be executable Gridcoin-x86_64.AppImage wallet.

Is this something that you are willing to add to CD scripts?

jamescowens commented 5 months ago

@Igor-Misic can you put up a PR for this? It is something we should include! :)

Igor-Misic commented 5 months ago

@jamescowens Sure, if someone can help me and save me some time understanding where should be the right place to add it.

I see those scripts here: https://github.com/gridcoin-community/Gridcoin-Research/tree/development/cd

Is this docker file used for all builds and deploys? https://github.com/gridcoin-community/Gridcoin-Research/blob/e46a21893c9dd506b94ba4e92de2ec771317ef30/src/secp256k1/ci/linux-debian.Dockerfile#L4

jamescowens commented 5 months ago

Let me ping @div72 on this. You are right, it may be quicker for him to do it since he maintains the CI/CD.

Igor-Misic commented 5 months ago

thanks to @jamescowens for pointing out on Discord that the AppImage created on my repo was too big including an unstriped build with source code and other objects created while building.

To remove all that this instead of calling this line after build and install linuxdeployqt Gridcoin-Research/build/src/qt/gridcoinresearch -appimage

It is better to do this:

../configure -with-gui=qt5 --without-qrencode
make -j 16
mkdir /appdir
make install DESTDIR=/appdir
cd ../../
strip /appdir/usr/local/bin/gridcoinresearch
strip /appdir/usr/local/bin/gridcoinresearchd
rm /appdir/usr/local/bin/test_gridcoin
rm /appdir/usr/local/bin/test_gridcoin-qt
linuxdeployqt /appdir/usr/local/share/applications/gridcoinresearch.desktop -no-strip -appimage

Here is the gist with all the instructions on how to build docker and how to create Gridcoin-x86_64.AppImage https://gist.github.com/Igor-Misic/bee34fe5c99e944cde985b6a6eb16377

div72 commented 5 months ago

If we are going to be distributing static builds(#2456), AppImages are redundant in my opinion. Is there any reason to provide both?


@Igor-Misic (in regards to this: Igor-Misic/Gridcoin-Research#ad084874966a41348da2bc2d7c6df801775b300c) Adding something like this without user's consent is really not ok. Especially if you are publishing it to somewhere(like appimage.github.io in this instance).

Igor-Misic commented 5 months ago

If we are going to be distributing static builds(#2456), AppImages are redundant in my opinion. Is there any reason to provide both?

@Igor-Misic (in regards to this: Igor-Misic/Gridcoin-Research#ad084874966a41348da2bc2d7c6df801775b300c) Adding something like this without user's consent is really not ok. Especially if you are publishing it to somewhere(like appimage.github.io in this instance).

I agree with you. This is why this is only related to my repository.