update to upstream 3.2.0

Resolves: rhbz#1993156
This commit is contained in:
Andreas Gerstmayr 2021-11-12 16:21:30 +01:00
parent fc73bd54d7
commit 1da107bd15
7 changed files with 106 additions and 62 deletions

2
.gitignore vendored
View File

@ -1,5 +1,5 @@
/grafana-pcp-*.tar.gz /grafana-pcp-*.tar.gz
/grafana-pcp-*.tar.xz /grafana-pcp-*.tar.xz
/grafana-pcp-*.tar.xz.manifest /grafana-pcp-*.tar.xz.manifest
/grafana-pcp-*/ /grafana-pcp*/
*.rpm *.rpm

View File

@ -1,5 +1,5 @@
diff --git a/package.json b/package.json diff --git a/package.json b/package.json
index 2a3544b..07a785e 100644 index 698043c..d9f0f44 100644
--- a/package.json --- a/package.json
+++ b/package.json +++ b/package.json
@@ -70,6 +70,8 @@ @@ -70,6 +70,8 @@
@ -12,10 +12,10 @@ index 2a3544b..07a785e 100644
"rxjs": "6.6.3" "rxjs": "6.6.3"
}, },
diff --git a/webpack.config.js b/webpack.config.js diff --git a/webpack.config.js b/webpack.config.js
index f762003..53fcb06 100644 index ae72fd8..529d6bf 100644
--- a/webpack.config.js --- a/webpack.config.js
+++ b/webpack.config.js +++ b/webpack.config.js
@@ -82,6 +82,10 @@ module.exports.getWebpackConfig = (config, options) => { @@ -89,6 +89,10 @@ module.exports.getWebpackConfig = (config, options) => {
...config.module, ...config.module,
rules: removeDataTestAttributeInProduction(options.production, excludeExtractionLoaderForMonaco(config.module.rules)), rules: removeDataTestAttributeInProduction(options.production, excludeExtractionLoaderForMonaco(config.module.rules)),
}, },

View File

@ -1,48 +1,74 @@
all: grafana-pcp-$(VER).tar.gz \ VERSION := $(shell rpm --specfile *.spec --qf '%{VERSION}\n' | head -1)
grafana-pcp-vendor-$(VER).tar.xz \ RELEASE := $(shell rpm --specfile *.spec --qf '%{RELEASE}\n' | head -1 | cut -d. -f1)
grafana-pcp-webpack-$(VER).tar.gz
grafana-pcp-$(VER).tar.gz: NAME := grafana-pcp
wget https://github.com/performancecopilot/grafana-pcp/archive/v$(VER)/grafana-pcp-$(VER).tar.gz RPM_NAME := $(NAME)
SOURCE_DIR := $(NAME)-$(VERSION)
SOURCE_TAR := $(NAME)-$(VERSION).tar.gz
VENDOR_TAR := $(RPM_NAME)-vendor-$(VERSION)-$(RELEASE).tar.xz
WEBPACK_TAR := $(RPM_NAME)-webpack-$(VERSION)-$(RELEASE).tar.gz
ALL_PATCHES := $(wildcard *.patch) # patches which must be applied before creating the vendor tarball, for example:
PATCHES_TO_APPLY := $(ALL_PATCHES) # - changes in dependency versions
# - changes in Go module imports (which affect the vendored Go modules)
PATCHES_PRE_VENDOR := \
001-remove-unused-frontend-crypto.patch
grafana-pcp-vendor-$(VER).tar.xz: grafana-pcp-$(VER).tar.gz # patches which must be applied before creating the webpack, for example:
rm -rf grafana-pcp-$(VER) # - changes in Node.js sources or vendored dependencies
tar xfz grafana-pcp-$(VER).tar.gz PATCHES_PRE_WEBPACK := \
001-remove-unused-frontend-crypto.patch
# patches can affect Go or Node.js dependencies, or the webpack
for patch in $(PATCHES_TO_APPLY); do patch -d grafana-pcp-$(VER) -p1 --fuzz=0 < $$patch; done all: $(SOURCE_TAR) $(VENDOR_TAR) $(WEBPACK_TAR)
$(SOURCE_TAR):
spectool -g $(RPM_NAME).spec
$(VENDOR_TAR): $(SOURCE_TAR)
# start with a clean state
rm -rf $(SOURCE_DIR)
tar xf $(SOURCE_TAR)
# Patches to apply before vendoring
for patch in $(PATCHES_PRE_VENDOR); do echo applying $$patch ...; patch -d $(SOURCE_DIR) -p1 --fuzz=0 < $$patch; done
# Go # Go
cd grafana-pcp-$(VER) && go mod vendor -v cd $(SOURCE_DIR) && go mod vendor -v
awk '$$2~/^v/ && $$4 != "indirect" {print "Provides: bundled(golang(" $$1 ")) = " substr($$2, 2)}' grafana-pcp-$(VER)/go.mod | \ awk '$$2~/^v/ && $$4 != "indirect" {print "Provides: bundled(golang(" $$1 ")) = " substr($$2, 2)}' $(SOURCE_DIR)/go.mod | \
sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@.manifest sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@.manifest
# Node.js # Node.js
cd grafana-pcp-$(VER) && yarn install --pure-lockfile cd $(SOURCE_DIR) && yarn install --pure-lockfile
# Remove files with licensing issues # Remove files with licensing issues
find grafana-pcp-$(VER) -type d -name 'node-notifier' -prune -exec rm -r {} \; find $(SOURCE_DIR) -type d -name 'node-notifier' -prune -exec rm -r {} \;
find grafana-pcp-$(VER) -type f -name '*.exe' -delete find $(SOURCE_DIR) -type f -name '*.exe' -delete
# Remove not required packages # Remove not required packages
rm -r grafana-pcp-$(VER)/node_modules/puppeteer rm -r $(SOURCE_DIR)/node_modules/puppeteer
./list_bundled_nodejs_packages.py grafana-pcp-$(VER)/ >> $@.manifest ./list_bundled_nodejs_packages.py $(SOURCE_DIR) >> $@.manifest
# Jsonnet # Jsonnet
cd grafana-pcp-$(VER) && jb --jsonnetpkg-home=vendor_jsonnet install cd $(SOURCE_DIR) && jb --jsonnetpkg-home=vendor_jsonnet install
# Create tarball # Create tarball
XZ_OPT=-9 tar cfJ $@ \ XZ_OPT=-9 time -p tar cJf $@ \
grafana-pcp-$(VER)/vendor \ $(SOURCE_DIR)/vendor \
grafana-pcp-$(VER)/node_modules \ $(SOURCE_DIR)/node_modules \
grafana-pcp-$(VER)/vendor_jsonnet $(SOURCE_DIR)/vendor_jsonnet
grafana-pcp-webpack-$(VER).tar.gz: grafana-pcp-$(VER).tar.gz $(WEBPACK_TAR): $(VENDOR_TAR)
cd grafana-pcp-$(VER) && \ # start with a clean state
rm -rf $(SOURCE_DIR)
tar xf $(SOURCE_TAR)
tar xf $(VENDOR_TAR)
# Patches to apply before creating the webpack
for patch in $(PATCHES_PRE_WEBPACK); do echo applying $$patch ...; patch -d $(SOURCE_DIR) -p1 --fuzz=0 < $$patch; done
cd $(SOURCE_DIR) && \
../build_frontend.sh ../build_frontend.sh
tar cfz $@ grafana-pcp-$(VER)/dist tar cfz $@ $(SOURCE_DIR)/dist
clean: clean:
rm -rf *.tar.gz *.tar.xz *.manifest *.rpm grafana-pcp-*/ rm -rf *.tar.gz *.tar.xz *.manifest *.rpm $(NAME)-*/

View File

@ -2,21 +2,32 @@
The grafana-pcp package The grafana-pcp package
## Upgrade instructions ## Upgrade instructions
(replace X.Y.Z with the new grafana-pcp version) * update `Version`, `Release`, `%changelog` and tarball NVRs in the specfile
* create bundles and manifest: `make clean all`
* update `Version`, `Release` and `%changelog` in the specfile
* create bundles and manifest: `VER=X.Y.Z make clean all`
* update specfile with contents of the `.manifest` file * update specfile with contents of the `.manifest` file
* run local build: `rpkg local` * run local build: `rpkg local`
* run rpm linter: `rpkg lint -r grafana-pcp.rpmlintrc` * run rpm linter: `rpkg lint -r *.rpmlintrc`
* run a scratch build: `fedpkg scratch-build --srpm` * run a scratch build: `fedpkg scratch-build --srpm`
* upload new source tarballs: `fedpkg new-sources *.tar.gz *.tar.xz` * upload new source tarballs: `fedpkg new-sources *.tar.gz *.tar.xz`
* commit new `sources` file
## Backporting ## Patches
* create the patch * create the patch
* declare and apply (`%prep`) the patch in the specfile * declare and apply (`%prep`) the patch in the specfile
* if the patch affects Go or Node.js dependencies, or the webpack * if the patch affects Go or Node.js dependencies, or the webpack
* create new tarballs and rename them to `grafana-pcp-...-X.Y.Z-R.tar.gz` * add the patch to `PATCHES_PRE_VENDOR` or `PATCHES_PRE_WEBPACK` in the Makefile
* update the specfile with new tarball path and contents of the `.manifest` file * create new tarballs
* update the specfile with new tarball name and contents of the `.manifest` file
Note: the Makefile automatically applies all patches before creating the tarballs ### General guidelines
* aim to apply all patches in the specfile
* avoid rebuilding the tarballs
Patches fall in several categories:
* modify dependency versions
* modify both sources and vendored dependencies (e.g. CVEs)
* modify the Node.js source (i.e. affect the webpack)
* some patches are conditional (e.g. FIPS)
Patches cannot be applied twice.
It is not possible to unconditionally apply all patches in the Makefile, and great care must be taken to include the required patches at the correct stage of the build.

View File

@ -4,7 +4,7 @@
yarn run build yarn run build
# Build the dashboards # Build the dashboards
make dist-dashboards make build-dashboards
# Fix permissions (webpack sometimes outputs files with mode = 666 due to reasons unknown (race condition/umask issue afaics)) # Fix permissions (webpack sometimes outputs files with mode = 666 due to reasons unknown (race condition/umask issue afaics))
chmod -R g-w,o-w dist chmod -R g-w,o-w dist

View File

@ -23,17 +23,21 @@ end}
%define compile_frontend 0 %define compile_frontend 0
Name: grafana-pcp Name: grafana-pcp
Version: 3.1.0 Version: 3.2.0
Release: 2%{?dist} Release: 1%{?dist}
Summary: Performance Co-Pilot Grafana Plugin Summary: Performance Co-Pilot Grafana Plugin
License: ASL 2.0 License: ASL 2.0
URL: https://github.com/performancecopilot/grafana-pcp URL: https://github.com/performancecopilot/grafana-pcp
Source0: https://github.com/performancecopilot/grafana-pcp/archive/v%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/performancecopilot/grafana-pcp/archive/v%{version}/%{name}-%{version}.tar.gz
Source1: grafana-pcp-vendor-%{version}.tar.xz Source1: grafana-pcp-vendor-%{version}-1.tar.xz
# Note: In case there were no changes to this tarball, the NVR of this tarball
# lags behind the NVR of this package.
%if %{compile_frontend} == 0 %if %{compile_frontend} == 0
# Source2 contains the precompiled frontend and dashboards # Source2 contains the precompiled frontend and dashboards
Source2: grafana-pcp-webpack-%{version}.tar.gz # Note: In case there were no changes to this tarball, the NVR of this tarball
# lags behind the NVR of this package.
Source2: grafana-pcp-webpack-%{version}-1.tar.gz
%endif %endif
Source3: Makefile Source3: Makefile
Source4: build_frontend.sh Source4: build_frontend.sh
@ -75,13 +79,13 @@ Obsoletes: pcp-webapp-vector <= 4.3.4
# this is for security purposes, if nodejs-foo ever needs an update, # this is for security purposes, if nodejs-foo ever needs an update,
# affected packages can be easily identified. # affected packages can be easily identified.
# Note: generated by the Makefile (see README.md) # Note: generated by the Makefile (see README.md)
Provides: bundled(golang(github.com/grafana/grafana-plugin-sdk-go)) = 0.105.0 Provides: bundled(golang(github.com/grafana/grafana-plugin-sdk-go)) = 0.115.0
Provides: bundled(golang(github.com/stretchr/testify)) = 1.7.0 Provides: bundled(golang(github.com/stretchr/testify)) = 1.7.0
Provides: bundled(npm(@babel/plugin-transform-modules-commonjs)) = 7.14.5 Provides: bundled(npm(@babel/plugin-transform-modules-commonjs)) = 7.16.0
Provides: bundled(npm(@grafana/data)) = 7.5.9 Provides: bundled(npm(@grafana/data)) = 7.5.11
Provides: bundled(npm(@grafana/runtime)) = 7.5.9 Provides: bundled(npm(@grafana/runtime)) = 7.5.11
Provides: bundled(npm(@grafana/toolkit)) = 7.5.9 Provides: bundled(npm(@grafana/toolkit)) = 7.5.11
Provides: bundled(npm(@grafana/ui)) = 7.5.9 Provides: bundled(npm(@grafana/ui)) = 7.5.11
Provides: bundled(npm(@testing-library/jest-dom)) = 5.4.0 Provides: bundled(npm(@testing-library/jest-dom)) = 5.4.0
Provides: bundled(npm(@testing-library/react)) = 10.4.9 Provides: bundled(npm(@testing-library/react)) = 10.4.9
Provides: bundled(npm(@types/blueimp-md5)) = 2.18.0 Provides: bundled(npm(@types/blueimp-md5)) = 2.18.0
@ -91,15 +95,15 @@ Provides: bundled(npm(@types/enzyme-adapter-react-16)) = 1.0.6
Provides: bundled(npm(@types/expect-puppeteer)) = 3.3.1 Provides: bundled(npm(@types/expect-puppeteer)) = 3.3.1
Provides: bundled(npm(@types/jest)) = 26.0.15 Provides: bundled(npm(@types/jest)) = 26.0.15
Provides: bundled(npm(@types/jest-environment-puppeteer)) = 4.4.1 Provides: bundled(npm(@types/jest-environment-puppeteer)) = 4.4.1
Provides: bundled(npm(@types/lodash)) = 4.14.170 Provides: bundled(npm(@types/lodash)) = 4.14.176
Provides: bundled(npm(@types/memoize-one)) = 5.1.2 Provides: bundled(npm(@types/memoize-one)) = 5.1.2
Provides: bundled(npm(@types/react-autosuggest)) = 9.3.14 Provides: bundled(npm(@types/react-autosuggest)) = 9.3.14
Provides: bundled(npm(@types/react-redux)) = 7.1.16 Provides: bundled(npm(@types/react-redux)) = 7.1.20
Provides: bundled(npm(@types/redux)) = 3.6.0 Provides: bundled(npm(@types/redux)) = 3.6.0
Provides: bundled(npm(@types/redux-persist)) = 4.3.1 Provides: bundled(npm(@types/redux-persist)) = 4.3.1
Provides: bundled(npm(@types/redux-persist-transform-filter)) = 0.0.4 Provides: bundled(npm(@types/redux-persist-transform-filter)) = 0.0.4
Provides: bundled(npm(babel-plugin-remove-object-properties)) = 1.0.2 Provides: bundled(npm(babel-plugin-remove-object-properties)) = 1.0.2
Provides: bundled(npm(blueimp-md5)) = 2.18.0 Provides: bundled(npm(blueimp-md5)) = 2.19.0
Provides: bundled(npm(core-js)) = 2.6.12 Provides: bundled(npm(core-js)) = 2.6.12
Provides: bundled(npm(d3-flame-graph)) = 3.1.1 Provides: bundled(npm(d3-flame-graph)) = 3.1.1
Provides: bundled(npm(d3-selection)) = 1.4.2 Provides: bundled(npm(d3-selection)) = 1.4.2
@ -115,15 +119,15 @@ Provides: bundled(npm(loglevel-plugin-prefix)) = 0.8.4
Provides: bundled(npm(memoize-one)) = 4.1.0 Provides: bundled(npm(memoize-one)) = 4.1.0
Provides: bundled(npm(monaco-editor)) = 0.20.0 Provides: bundled(npm(monaco-editor)) = 0.20.0
Provides: bundled(npm(monaco-editor-webpack-plugin)) = 1.9.0 Provides: bundled(npm(monaco-editor-webpack-plugin)) = 1.9.0
Provides: bundled(npm(prettier-plugin-organize-imports)) = 2.1.0 Provides: bundled(npm(prettier-plugin-organize-imports)) = 2.3.4
Provides: bundled(npm(puppeteer)) = 10.0.0 Provides: bundled(npm(puppeteer)) = 10.4.0
Provides: bundled(npm(react-autosuggest)) = 10.1.0 Provides: bundled(npm(react-autosuggest)) = 10.1.0
Provides: bundled(npm(react-monaco-editor)) = 0.36.0 Provides: bundled(npm(react-monaco-editor)) = 0.36.0
Provides: bundled(npm(react-redux)) = 7.2.4 Provides: bundled(npm(react-redux)) = 7.2.6
Provides: bundled(npm(react-use)) = 15.3.8 Provides: bundled(npm(react-use)) = 15.3.8
Provides: bundled(npm(redux)) = 3.7.2 Provides: bundled(npm(redux)) = 3.7.2
Provides: bundled(npm(redux-persist)) = 4.10.2 Provides: bundled(npm(redux-persist)) = 4.10.2
Provides: bundled(npm(redux-thunk)) = 2.3.0 Provides: bundled(npm(redux-thunk)) = 2.4.0
Provides: bundled(npm(utility-types)) = 3.10.0 Provides: bundled(npm(utility-types)) = 3.10.0
@ -194,6 +198,9 @@ export GOPATH=%{_builddir}
%changelog %changelog
* Fri Nov 12 2021 Andreas Gerstmayr <agerstmayr@redhat.com> 3.2.0-1
- update to 3.2.0 tagged upstream community sources, see CHANGELOG
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.1.0-2 * Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.1.0-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688 Related: rhbz#1991688

View File

@ -1,3 +1,3 @@
SHA512 (grafana-pcp-3.1.0.tar.gz) = 8fa697f7490917d740f002f15c7346974ef0cfaeac3c6d5d2e53291f48ff4a72e50cca20a946b2b80f78557fd25d94c50dd1c0fd62c7a793ff7a79afd9d24b6a SHA512 (grafana-pcp-3.2.0.tar.gz) = 5e5f6955bf32dfaec46493065a3d0d1951126df84382f4ca3537931355ed661dfebe4fda76c0b6825d76c4c28c97b53ba80d39170d4a3b2166dcbe0d82ed7ec9
SHA512 (grafana-pcp-webpack-3.1.0.tar.gz) = f8a7ffec375bad6d871f821549f81b948a89f6377e0181b9dce5f456137557be5ee8551914cea8d58811bfd957e91bee58441364b30cd6a474f55e6e890f3352 SHA512 (grafana-pcp-webpack-3.2.0-1.tar.gz) = d14eebcdbf957fd7f552e34d23ddcfb54d29a7f9c893ede956aced3aeb64fe08a72340fb9ff4bf1508b3c3f8148aadc0363b1b3aa320a188cc87ae8e33c5eccb
SHA512 (grafana-pcp-vendor-3.1.0.tar.xz) = a7625d7788324b1c522532b10e161cd2efabd42d292edc2bbf651d1953997f1cc79ae22ffed23612ea19cc50ebef1c5772f9d348d1dbe6824a8fcd89dfe98309 SHA512 (grafana-pcp-vendor-3.2.0-1.tar.xz) = 1a3d4ded548c0640d0a508b9dec73748b8447eb202a9fc181adb308654561fed644467012c30e0b802da71e1fd6cdeb7966763f8b2c6ecaa47afb2c4afa9b00a