LBRY-Vault/contrib/build-linux/appimage
SomberNight 03ab64e39f
appimage: towards deterministic builds
same-machine build almost works.

$ diffoscope dist/electrum-3.3.4-76-geb04551-dirty-x86_64.AppImage1 dist/electrum-3.3.4-76-geb04551-dirty-x86_64.AppImage2
 |############################|  100%                             Time: 0:00:05
--- dist/electrum-3.3.4-76-geb04551-dirty-x86_64.AppImage1
+++ dist/electrum-3.3.4-76-geb04551-dirty-x86_64.AppImage2
├── readelf --wide --decompress --hex-dump=.digest_md5 {}
│ @@ -1,4 +1,4 @@
│
│  Hex dump of section '.digest_md5':
│ -  0x00000000 77e356ea eefe1459 a40f00d9 ab5c0e00 w.V....Y.....\..
│ +  0x00000000 1dda23b5 31f9024c fe6d2755 e930a41a ..#.1..L.m'U.0..
2019-03-06 04:53:18 +01:00
..
apprun.sh initial commit for building AppImages for Linux x86_64 2019-02-03 23:45:30 +01:00
build.sh appimage: towards deterministic builds 2019-03-06 04:53:18 +01:00
Dockerfile appimage: towards deterministic builds 2019-03-06 04:53:18 +01:00
README.md initial commit for building AppImages for Linux x86_64 2019-02-03 23:45:30 +01:00

AppImage binary for Electrum

This assumes an Ubuntu host, but it should not be too hard to adapt to another similar system. The docker commands should be executed in the project's root folder.

  1. Install Docker

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    $ sudo apt-get update
    $ sudo apt-get install -y docker-ce
    
  2. Build image

    $ sudo docker build --no-cache -t electrum-appimage-builder-img contrib/build-linux/appimage
    
  3. Build binary

    $ sudo docker run -it \
        --name electrum-appimage-builder-cont \
        -v $PWD:/opt/electrum \
        --rm \
        --workdir /opt/electrum/contrib/build-linux/appimage \
        electrum-appimage-builder-img \
        ./build.sh
    
  4. The generated binary is in ./dist.

FAQ

How can I see what is included in the AppImage?

Execute the binary as follows: ./electrum*.AppImage --appimage-extract