aboutsummaryrefslogtreecommitdiff
path: root/contrib/guix
diff options
context:
space:
mode:
authorCarl Dong <contact@carldong.me>2020-04-22 13:05:37 -0400
committerCarl Dong <contact@carldong.me>2020-04-28 10:36:36 -0400
commitf5a6ac4f48b18f93050d77bcb23f9cf45ec34647 (patch)
tree986a30bdc5a4409f3f3f09d5f9ce78501c5766db /contrib/guix
parent395c1137f630dc495ffb2752a23bc1dfd470ee53 (diff)
guix: Make source tarball using git-archive
Diffstat (limited to 'contrib/guix')
-rw-r--r--contrib/guix/libexec/build.sh40
-rw-r--r--contrib/guix/manifest.scm3
2 files changed, 27 insertions, 16 deletions
diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh
index 550b1b8f40..864db48915 100644
--- a/contrib/guix/libexec/build.sh
+++ b/contrib/guix/libexec/build.sh
@@ -141,19 +141,17 @@ make -C depends --jobs="$MAX_JOBS" HOST="$HOST" \
# Source Tarball Building #
###########################
-# Create the source tarball and move it to "${OUTDIR}/src" if not already there
-if [ -z "$(find "${OUTDIR}/src" -name 'bitcoin-*.tar.gz')" ]; then
- ./autogen.sh
- env CONFIG_SITE="${BASEPREFIX}/${HOST}/share/config.site" ./configure --prefix=/
- make dist GZIP_ENV='-9n' ${V:+V=1}
- mkdir -p "${OUTDIR}/src"
- mv "$(find "${PWD}" -name 'bitcoin-*.tar.gz')" "${OUTDIR}/src/"
-fi
+# Define DISTNAME variable.
+# shellcheck source=contrib/gitian-descriptors/assign_DISTNAME
+source contrib/gitian-descriptors/assign_DISTNAME
+
+GIT_ARCHIVE="${OUTDIR}/src/${DISTNAME}.tar.gz"
-# Determine the full path to our source tarball
-SOURCEDIST="$(find "${OUTDIR}/src" -name 'bitcoin-*.tar.gz')"
-# Determine our distribution name (e.g. bitcoin-0.18.0)
-DISTNAME="$(basename "$SOURCEDIST" '.tar.gz')"
+# Create the source tarball if not already there
+if [ ! -e "$GIT_ARCHIVE" ]; then
+ mkdir -p "$(dirname "$GIT_ARCHIVE")"
+ git archive --output="$GIT_ARCHIVE" HEAD
+fi
###########################
# Binary Tarball Building #
@@ -187,7 +185,9 @@ export PATH="${BASEPREFIX}/${HOST}/native/bin:${PATH}"
cd "$DISTSRC"
# Extract the source tarball
- tar --strip-components=1 -xf "${SOURCEDIST}"
+ tar -xf "${GIT_ARCHIVE}"
+
+ ./autogen.sh
# Configure this DISTSRC for $HOST
# shellcheck disable=SC2086
@@ -234,7 +234,15 @@ export PATH="${BASEPREFIX}/${HOST}/native/bin:${PATH}"
case "$HOST" in
*mingw*)
- cp -f --target-directory="$OUTDIR" ./*-setup-unsigned.exe
+ # This step not only moves the unsigned NSIS executable to
+ # "${OUTDIR}", but also renames it
+ #
+ # from:
+ # bitcoin-@PACKAGE_VERSION@-win64-setup-unsigned.exe
+ # to:
+ # ${DISTNAME}-win64-setup-unsigned.exe
+ #
+ cp -f ./bitcoin-*-win64-setup-unsigned.exe "${OUTDIR}/${DISTNAME}-win64-setup-unsigned.exe"
;;
esac
(
@@ -264,7 +272,7 @@ export PATH="${BASEPREFIX}/${HOST}/native/bin:${PATH}"
cp "${DISTSRC}/doc/README_windows.txt" "${DISTNAME}/readme.txt"
;;
*linux*)
- cp "${DISTSRC}/doc/README.md" "${DISTNAME}/"
+ cp "${DISTSRC}/README.md" "${DISTNAME}/"
;;
esac
@@ -307,7 +315,7 @@ case "$HOST" in
(
cd ./windeploy
mkdir unsigned
- cp --target-directory=unsigned/ "$OUTDIR"/bitcoin-*-setup-unsigned.exe
+ cp --target-directory=unsigned/ "${OUTDIR}/${DISTNAME}-win64-setup-unsigned.exe"
find . -print0 \
| sort --zero-terminated \
| tar --create --no-recursion --mode='u+rw,go+r-w,a+X' --null --files-from=- \
diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index 86c1a8d27f..5e011ea184 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -17,6 +17,7 @@
(gnu packages pkg-config)
(gnu packages python)
(gnu packages shells)
+ (gnu packages version-control)
(guix build-system gnu)
(guix build-system trivial)
(guix gexp)
@@ -181,6 +182,8 @@ chain for " target " development."))
;; Scripting
perl
python-3.7
+ ;; Git
+ git
;; Native gcc 9 toolchain targeting glibc 2.27
(make-gcc-toolchain gcc-9 glibc-2.27))
(let ((target (getenv "HOST")))