diff --git a/.gitignore b/.gitignore index 739ef9783..8ac25d80a 100644 --- a/.gitignore +++ b/.gitignore @@ -34,14 +34,10 @@ contrib/build-wine/build/ contrib/build-wine/.cache/ contrib/build-wine/dist/ contrib/build-wine/signed/ -contrib/build-wine/fresh_clone/ -contrib/build-linux/sdist/fresh_clone/ contrib/build-linux/appimage/build/ contrib/build-linux/appimage/.cache/ -contrib/build-linux/appimage/fresh_clone/ contrib/osx/.cache/ contrib/osx/build-venv/ -contrib/android/fresh_clone contrib/android/android_debug.keystore contrib/secp256k1/ contrib/zbar/ diff --git a/contrib/android/build.sh b/contrib/android/build.sh index 7e4120314..0c58faaf8 100755 --- a/contrib/android/build.sh +++ b/contrib/android/build.sh @@ -52,11 +52,11 @@ docker build \ # maybe do fresh clone if [ ! -z "$ELECBUILD_COMMIT" ] ; then info "ELECBUILD_COMMIT=$ELECBUILD_COMMIT. doing fresh clone and git checkout." - FRESH_CLONE="$CONTRIB_ANDROID/fresh_clone/electrum" && \ - rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone "$PROJECT_ROOT" "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" + FRESH_CLONE="/tmp/electrum_build/android/fresh_clone/electrum" + rm -rf "$FRESH_CLONE" 2>/dev/null || ( info "we need sudo to rm prev FRESH_CLONE." && sudo rm -rf "$FRESH_CLONE" ) + umask 0022 + git clone "$PROJECT_ROOT" "$FRESH_CLONE" + cd "$FRESH_CLONE" git checkout "$ELECBUILD_COMMIT" PROJECT_ROOT_OR_FRESHCLONE_ROOT="$FRESH_CLONE" else @@ -72,6 +72,13 @@ fi info "building binary..." mkdir --parents "$PROJECT_ROOT_OR_FRESHCLONE_ROOT"/.buildozer/.gradle +# check uid and maybe chown. see #8261 +if [ ! -z "$ELECBUILD_COMMIT" ] ; then # fresh clone (reproducible build) + if [ $(id -u) != "1000" ] || [ $(id -g) != "1000" ] ; then + info "need to chown -R FRESH_CLONE dir. prompting for sudo." + sudo chown -R 1000:1000 "$FRESH_CLONE" + fi +fi docker run -it --rm \ --name electrum-android-builder-cont \ -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT":/home/user/wspace/electrum \ diff --git a/contrib/build-linux/appimage/.dockerignore b/contrib/build-linux/appimage/.dockerignore index d75fb8304..a4fb4fb12 100644 --- a/contrib/build-linux/appimage/.dockerignore +++ b/contrib/build-linux/appimage/.dockerignore @@ -1,3 +1,2 @@ build/ .cache/ -fresh_clone/ diff --git a/contrib/build-linux/appimage/build.sh b/contrib/build-linux/appimage/build.sh index be2184d77..a6f5cabeb 100755 --- a/contrib/build-linux/appimage/build.sh +++ b/contrib/build-linux/appimage/build.sh @@ -35,11 +35,11 @@ docker build \ # maybe do fresh clone if [ ! -z "$ELECBUILD_COMMIT" ] ; then info "ELECBUILD_COMMIT=$ELECBUILD_COMMIT. doing fresh clone and git checkout." - FRESH_CLONE="$CONTRIB_APPIMAGE/fresh_clone/electrum" && \ - rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone "$PROJECT_ROOT" "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" + FRESH_CLONE="/tmp/electrum_build/appimage/fresh_clone/electrum" + rm -rf "$FRESH_CLONE" 2>/dev/null || ( info "we need sudo to rm prev FRESH_CLONE." && sudo rm -rf "$FRESH_CLONE" ) + umask 0022 + git clone "$PROJECT_ROOT" "$FRESH_CLONE" + cd "$FRESH_CLONE" git checkout "$ELECBUILD_COMMIT" PROJECT_ROOT_OR_FRESHCLONE_ROOT="$FRESH_CLONE" else @@ -47,6 +47,13 @@ else fi info "building binary..." +# check uid and maybe chown. see #8261 +if [ ! -z "$ELECBUILD_COMMIT" ] ; then # fresh clone (reproducible build) + if [ $(id -u) != "1000" ] || [ $(id -g) != "1000" ] ; then + info "need to chown -R FRESH_CLONE dir. prompting for sudo." + sudo chown -R 1000:1000 "$FRESH_CLONE" + fi +fi docker run -it \ --name electrum-appimage-builder-cont \ -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT":/opt/electrum \ diff --git a/contrib/build-linux/sdist/.dockerignore b/contrib/build-linux/sdist/.dockerignore index d364c6400..e69de29bb 100644 --- a/contrib/build-linux/sdist/.dockerignore +++ b/contrib/build-linux/sdist/.dockerignore @@ -1 +0,0 @@ -fresh_clone/ diff --git a/contrib/build-linux/sdist/build.sh b/contrib/build-linux/sdist/build.sh index af895b01b..11a746273 100755 --- a/contrib/build-linux/sdist/build.sh +++ b/contrib/build-linux/sdist/build.sh @@ -35,11 +35,11 @@ docker build \ # maybe do fresh clone if [ ! -z "$ELECBUILD_COMMIT" ] ; then info "ELECBUILD_COMMIT=$ELECBUILD_COMMIT. doing fresh clone and git checkout." - FRESH_CLONE="$CONTRIB_SDIST/fresh_clone/electrum" && \ - rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone "$PROJECT_ROOT" "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" + FRESH_CLONE="/tmp/electrum_build/sdist/fresh_clone/electrum" + rm -rf "$FRESH_CLONE" 2>/dev/null || ( info "we need sudo to rm prev FRESH_CLONE." && sudo rm -rf "$FRESH_CLONE" ) + umask 0022 + git clone "$PROJECT_ROOT" "$FRESH_CLONE" + cd "$FRESH_CLONE" git checkout "$ELECBUILD_COMMIT" PROJECT_ROOT_OR_FRESHCLONE_ROOT="$FRESH_CLONE" else @@ -47,6 +47,13 @@ else fi info "building binary..." +# check uid and maybe chown. see #8261 +if [ ! -z "$ELECBUILD_COMMIT" ] ; then # fresh clone (reproducible build) + if [ $(id -u) != "1000" ] || [ $(id -g) != "1000" ] ; then + info "need to chown -R FRESH_CLONE dir. prompting for sudo." + sudo chown -R 1000:1000 "$FRESH_CLONE" + fi +fi docker run -it \ --name electrum-sdist-builder-cont \ -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT":/opt/electrum \ diff --git a/contrib/build-wine/.dockerignore b/contrib/build-wine/.dockerignore index f1aa3647c..a3e70a019 100644 --- a/contrib/build-wine/.dockerignore +++ b/contrib/build-wine/.dockerignore @@ -3,4 +3,3 @@ build/ .cache/ dist/ signed/ -fresh_clone/ diff --git a/contrib/build-wine/build.sh b/contrib/build-wine/build.sh index 06b503e46..f3bc4e6a9 100755 --- a/contrib/build-wine/build.sh +++ b/contrib/build-wine/build.sh @@ -37,11 +37,11 @@ docker build \ # maybe do fresh clone if [ ! -z "$ELECBUILD_COMMIT" ] ; then info "ELECBUILD_COMMIT=$ELECBUILD_COMMIT. doing fresh clone and git checkout." - FRESH_CLONE="$CONTRIB_WINE/fresh_clone/electrum" && \ - rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone "$PROJECT_ROOT" "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" + FRESH_CLONE="/tmp/electrum_build/windows/fresh_clone/electrum" + rm -rf "$FRESH_CLONE" 2>/dev/null || ( info "we need sudo to rm prev FRESH_CLONE." && sudo rm -rf "$FRESH_CLONE" ) + umask 0022 + git clone "$PROJECT_ROOT" "$FRESH_CLONE" + cd "$FRESH_CLONE" git checkout "$ELECBUILD_COMMIT" PROJECT_ROOT_OR_FRESHCLONE_ROOT="$FRESH_CLONE" else @@ -49,6 +49,13 @@ else fi info "building binary..." +# check uid and maybe chown. see #8261 +if [ ! -z "$ELECBUILD_COMMIT" ] ; then # fresh clone (reproducible build) + if [ $(id -u) != "1000" ] || [ $(id -g) != "1000" ] ; then + info "need to chown -R FRESH_CLONE dir. prompting for sudo." + sudo chown -R 1000:1000 "$FRESH_CLONE" + fi +fi docker run -it \ --name electrum-wine-builder-cont \ -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT":/opt/wine64/drive_c/electrum \