URI: 
       tREADME.md - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
       tREADME.md (2097B)
       ---
            1 AppImage binary for Electrum
            2 ============================
            3 
            4 ✓ _This binary should be reproducible, meaning you should be able to generate
            5    binaries that match the official releases._
            6 
            7 This assumes an Ubuntu host, but it should not be too hard to adapt to another
            8 similar system. The host architecture should be x86_64 (amd64).
            9 The docker commands should be executed in the project's root folder.
           10 
           11 We currently only build a single AppImage, for x86_64 architecture.
           12 Help to adapt these scripts to build for (some flavor of) ARM would be welcome,
           13 see [issue #5159](https://github.com/spesmilo/electrum/issues/5159).
           14 
           15 
           16 1. Install Docker
           17 
           18     ```
           19     $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
           20     $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
           21     $ sudo apt-get update
           22     $ sudo apt-get install -y docker-ce
           23     ```
           24 
           25 2. Build image
           26 
           27     ```
           28     $ sudo docker build -t electrum-appimage-builder-img contrib/build-linux/appimage
           29     ```
           30 
           31 3. Build binary
           32 
           33     ```
           34     $ sudo docker run -it \
           35         --name electrum-appimage-builder-cont \
           36         -v $PWD:/opt/electrum \
           37         --rm \
           38         --workdir /opt/electrum/contrib/build-linux/appimage \
           39         electrum-appimage-builder-img \
           40         ./build.sh
           41     ```
           42 
           43 4. The generated binary is in `./dist`.
           44 
           45 
           46 ## FAQ
           47 
           48 ### How can I see what is included in the AppImage?
           49 Execute the binary as follows: `./electrum*.AppImage --appimage-extract`
           50 
           51 ### How to investigate diff between binaries if reproducibility fails?
           52 ```
           53 cd dist/
           54 ./electrum-*-x86_64.AppImage1 --appimage-extract
           55 mv squashfs-root/ squashfs-root1/
           56 ./electrum-*-x86_64.AppImage2 --appimage-extract
           57 mv squashfs-root/ squashfs-root2/
           58 $(cd squashfs-root1; find -type f -exec sha256sum '{}' \; > ./../sha256sum1)
           59 $(cd squashfs-root2; find -type f -exec sha256sum '{}' \; > ./../sha256sum2)
           60 diff sha256sum1 sha256sum2 > d
           61 cat d
           62 ```
           63 
           64 For file metadata, e.g. timestamps:
           65 ```
           66 rsync -n -a -i --delete squashfs-root1/ squashfs-root2/
           67 ```
           68 
           69 Useful binary comparison tools:
           70 - vbindiff
           71 - diffoscope