summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-01-12 11:31:15 +0100
committerThomas Haller <thaller@redhat.com>2021-01-12 13:16:17 +0100
commit55e4b0ea9ca6cffb39cf153e69b10071b492d114 (patch)
tree392757df6675f58cd4059d9fe9e4c3595afa5d44
parent478d5bdafe18ce4c7d4007eaabd887b64fc7ec9d (diff)
downloadNetworkManager-55e4b0ea9ca6cffb39cf153e69b10071b492d114.tar.gz
contrib: add "contrib/scripts/nm-copr-build-nm-git-bundle.sh" script
-rwxr-xr-xcontrib/scripts/nm-copr-build-nm-git-bundle.sh84
1 files changed, 84 insertions, 0 deletions
diff --git a/contrib/scripts/nm-copr-build-nm-git-bundle.sh b/contrib/scripts/nm-copr-build-nm-git-bundle.sh
new file mode 100755
index 0000000000..4e47d164fb
--- /dev/null
+++ b/contrib/scripts/nm-copr-build-nm-git-bundle.sh
@@ -0,0 +1,84 @@
+#!/bin/bash
+
+# create a nm-git-bundle.git bundle and a SRPM for building it
+# as a package. This bundle contains the current git history
+# of upstream NetworkManager.
+#
+# The sole purpose of this is to fetch from the bundle to safe
+# downloading the entire upstream git repository of NetworkManager.
+#
+# This script is also used by [1] to generate the SRPM.
+# [1] https://copr.fedorainfracloud.org/coprs/networkmanager/NetworkManager-master/package/nm-git-bundle/
+
+set -ex
+
+if [ -z "$GIT_URL" ]; then
+ GIT_URL=https://github.com/NetworkManager/NetworkManager
+ #GIT_URL=https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
+fi
+
+git clone -n "$GIT_URL"
+
+pushd NetworkManager
+
+REFS=(
+ $(git branch -a | sed -n 's#^ *remotes/origin/\(master\|nm-1-[0-9]\+\)$#\1#p')
+)
+
+unset R
+unset H
+for R in "${REFS[@]}"; do
+ H="$(git show-ref --verify --hash "refs/remotes/origin/$R")"
+ git update-ref "refs/heads/$R" "$H"
+done
+
+git bundle create nm-git-bundle.git "${REFS[@]}"
+
+popd
+
+DIR="$(mktemp -d rpmbuild.XXXXXX)"
+
+mkdir -p "$DIR/SOURCES"
+mkdir -p "$DIR/SPECS"
+
+cat <<EOF > "$DIR/SPECS/nm-git-bundle.spec"
+Name: nm-git-bundle
+Version: $(date '+%Y%m%d')
+Release: $(date '+%H%M%S')
+Summary: git-bundle of NetworkManager upstream repository
+
+License: Public Domain
+URL: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/tree/master/contrib/fedora/rpm/nm-git-bundle.spec
+
+%global GIT_URL 'https://github.com/NetworkManager/NetworkManager'
+#global GIT_URL 'https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git'
+
+Source0: nm-git-bundle.git
+
+
+BuildArch: noarch
+
+
+%description
+A git-bundle of NetworkManager upstream git repository. Useful to safe
+fetching the entire repository from the internet.
+
+
+%install
+mkdir -p %{buildroot}/usr/share/NetworkManager/
+cp %{SOURCE0} %{buildroot}/usr/share/NetworkManager/
+
+
+%files
+/usr/share/NetworkManager/nm-git-bundle.git
+EOF
+
+mv ./NetworkManager/nm-git-bundle.git "$DIR/SOURCES/"
+
+rpmbuild --define "_topdir $DIR" -bs "$DIR/SPECS/nm-git-bundle.spec"
+
+mv "$DIR/SRPMS/"nm-git-bundle-*.src.rpm .
+mv "$DIR/SPECS/nm-git-bundle.spec" .
+mv "$DIR/SOURCES/nm-git-bundle.git" .
+rm -rf "$DIR"
+