The `git clean --dry-run` became redundant with "fresh clone" builds. The new exclude in MANIFEST.in should not affect production builds (also due to fresh clone), but they are nice when building from dirty local dir.
Source tarballs
✓ This file should be reproducible, meaning you should be able to generate distributables that match the official releases.
This assumes an Ubuntu (x86_64) 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.
-
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 -
Build image
$ sudo docker build -t electrum-sdist-builder-img contrib/build-linux/sdist -
Build source tarballs
It's recommended to build from a fresh clone (but you can skip this if reproducibility is not necessary).
$ FRESH_CLONE=contrib/build-linux/sdist/fresh_clone && \ sudo rm -rf $FRESH_CLONE && \ umask 0022 && \ mkdir -p $FRESH_CLONE && \ cd $FRESH_CLONE && \ git clone https://github.com/spesmilo/electrum.git && \ cd electrumAnd then build from this directory:
$ git checkout $REV $ sudo docker run -it \ --name electrum-sdist-builder-cont \ -v $PWD:/opt/electrum \ --rm \ --workdir /opt/electrum/contrib/build-linux/sdist \ electrum-sdist-builder-img \ ./build.sh -
The generated distributables are in
./dist.