diff options
Diffstat (limited to 'create_bundles.sh')
-rwxr-xr-x | create_bundles.sh | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/create_bundles.sh b/create_bundles.sh new file mode 100755 index 0000000..278046b --- /dev/null +++ b/create_bundles.sh @@ -0,0 +1,68 @@ +#!/bin/bash -eux +VERSION=$(rpm --specfile ./*.spec --qf '%{VERSION}\n' | head -1) +RELEASE=$(rpm --specfile ./*.spec --qf '%{RELEASE}\n' | head -1 | cut -d. -f1) +CHANGELOGTIME=$(rpm --specfile ./*.spec --qf '%{CHANGELOGTIME}\n' | head -1) +SOURCE_DATE_EPOCH=$((CHANGELOGTIME - CHANGELOGTIME % 86400)) + +SOURCE_DIR=grafana-pcp-$VERSION +SOURCE_TAR=grafana-pcp-$VERSION.tar.gz +VENDOR_TAR=grafana-pcp-vendor-$VERSION-$RELEASE.tar.xz +WEBPACK_TAR=grafana-pcp-webpack-$VERSION-$RELEASE.tar.gz + + +## Download and extract source tarball +spectool -g grafana-pcp.spec +rm -rf "${SOURCE_DIR}" +tar xf "${SOURCE_TAR}" + + +## Create vendor bundle +pushd "${SOURCE_DIR}" + +# Vendor Go dependencies +go mod vendor + +# List bundled dependencies +awk '$2 ~ /^v/ && $4 != "indirect" {print "Provides: bundled(golang(" $1 ")) = " substr($2, 2)}' go.mod | \ + sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > "../${VENDOR_TAR}.manifest" + +# Vendor Node.js dependencies +patch -p1 --fuzz=0 < ../0001-remove-unused-frontend-crypto.patch +yarn install --frozen-lockfile + +# Remove files with licensing issues +find . -type d -name 'node-notifier' -prune -exec rm -r {} \; +find . -type f -name '*.exe' -delete + +# List bundled dependencies +../list_bundled_nodejs_packages.py . >> "../${VENDOR_TAR}.manifest" + +# Vendor Jsonnet dependencies +jb --jsonnetpkg-home=vendor_jsonnet install + +popd + +# Create tarball +# shellcheck disable=SC2046 +XZ_OPT=-9 tar \ + --sort=name \ + --mtime="@${SOURCE_DATE_EPOCH}" --clamp-mtime \ + --owner=0 --group=0 --numeric-owner \ + -cJf "${VENDOR_TAR}" \ + "${SOURCE_DIR}/vendor" \ + "${SOURCE_DIR}/node_modules" \ + "${SOURCE_DIR}/vendor_jsonnet" + + +## Create webpack +pushd "${SOURCE_DIR}" +../build_frontend.sh +popd + +# Create tarball +tar \ + --sort=name \ + --mtime="@${SOURCE_DATE_EPOCH}" --clamp-mtime \ + --owner=0 --group=0 --numeric-owner \ + -czf "${WEBPACK_TAR}" \ + "${SOURCE_DIR}/dist" |