Blame SOURCES/create_bundles.sh

625261
#!/bin/bash -eux
625261
VERSION=$(rpm --specfile ./*.spec --qf '%{VERSION}\n' | head -1)
625261
RELEASE=$(rpm --specfile ./*.spec --qf '%{RELEASE}\n' | head -1 | cut -d. -f1)
625261
CHANGELOGTIME=$(rpm --specfile ./*.spec --qf '%{CHANGELOGTIME}\n' | head -1)
625261
SOURCE_DATE_EPOCH=$((CHANGELOGTIME - CHANGELOGTIME % 86400))
625261
625261
SOURCE_DIR=grafana-$VERSION
625261
SOURCE_TAR=grafana-$VERSION.tar.gz
625261
VENDOR_TAR=grafana-vendor-$VERSION-$RELEASE.tar.xz
625261
WEBPACK_TAR=grafana-webpack-$VERSION-$RELEASE.tar.gz
625261
625261
625261
## Download and extract source tarball
625261
spectool -g grafana.spec
625261
rm -rf "${SOURCE_DIR}"
625261
tar xf "${SOURCE_TAR}"
625261
625261
625261
## Create vendor bundle
625261
pushd "${SOURCE_DIR}"
625261
625261
# Vendor Go dependencies
625261
patch -p1 --fuzz=0 < ../0004-remove-unused-backend-dependencies.patch
625261
go mod vendor
625261
625261
# Generate Go files
625261
make gen-go
625261
625261
# Remove unused crypto
625261
rm -r vendor/golang.org/x/crypto/bcrypt
625261
rm -r vendor/golang.org/x/crypto/blowfish
625261
rm -r vendor/golang.org/x/crypto/cast5
625261
rm -r vendor/golang.org/x/crypto/openpgp/elgamal
625261
rm    vendor/golang.org/x/crypto/openpgp/packet/ocfb.go
625261
rm -r vendor/golang.org/x/crypto/pkcs12/internal/rc2
625261
625261
# List bundled dependencies
625261
awk '$2 ~ /^v/ && $4 != "indirect" {print "Provides: bundled(golang(" $1 ")) = " substr($2, 2)}' go.mod | \
625261
    sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > "../${VENDOR_TAR}.manifest"
625261
625261
# Vendor Node.js dependencies
625261
patch -p1 --fuzz=0 < ../0005-remove-unused-frontend-crypto.patch
625261
export HUSKY=0
625261
yarn install --frozen-lockfile
625261
625261
# Remove files with licensing issues
625261
find .yarn -name 'node-notifier' -prune -exec rm -r {} \;
625261
find .yarn -name 'nodemon' -prune -exec rm -r {} \;
625261
625261
# List bundled dependencies
625261
../list_bundled_nodejs_packages.py . >> "../${VENDOR_TAR}.manifest"
625261
625261
popd
625261
625261
# Create tarball
625261
# shellcheck disable=SC2046
625261
XZ_OPT=-9 tar \
625261
    --sort=name \
625261
    --mtime="@${SOURCE_DATE_EPOCH}" --clamp-mtime \
625261
    --owner=0 --group=0 --numeric-owner \
625261
    -cJf "${VENDOR_TAR}" \
625261
    "${SOURCE_DIR}/vendor" \
625261
    $(find "${SOURCE_DIR}" -type f -name wire_gen.go | LC_ALL=C sort) \
625261
    "${SOURCE_DIR}/.pnp.cjs" \
625261
    "${SOURCE_DIR}/.yarn/cache" \
625261
    "${SOURCE_DIR}/.yarn/unplugged"
625261
625261
625261
## Create webpack
625261
pushd "${SOURCE_DIR}"
625261
../build_frontend.sh
625261
popd
625261
625261
# Create tarball
625261
tar \
625261
    --sort=name \
625261
    --mtime="@${SOURCE_DATE_EPOCH}" --clamp-mtime \
625261
    --owner=0 --group=0 --numeric-owner \
625261
    -czf "${WEBPACK_TAR}" \
625261
    "${SOURCE_DIR}/plugins-bundled" \
625261
    "${SOURCE_DIR}/public/build" \
625261
    "${SOURCE_DIR}/public/img" \
625261
    "${SOURCE_DIR}/public/lib" \
625261
    "${SOURCE_DIR}/public/locales" \
625261
    "${SOURCE_DIR}/public/views"