import grafana-pcp-3.1.0-1.el8

This commit is contained in:
CentOS Sources 2021-06-29 17:54:53 +00:00 committed by Andrew Lukoshko
parent 8420bf0469
commit 454b23ec10
7 changed files with 100 additions and 62 deletions

6
.gitignore vendored
View File

@ -1,3 +1,3 @@
SOURCES/grafana-pcp-3.0.2.tar.gz SOURCES/grafana-pcp-3.1.0.tar.gz
SOURCES/grafana-pcp-vendor-3.0.2.tar.xz SOURCES/grafana-pcp-vendor-3.1.0.tar.xz
SOURCES/grafana-pcp-webpack-3.0.2.tar.gz SOURCES/grafana-pcp-webpack-3.1.0.tar.gz

View File

@ -1,3 +1,3 @@
8196f1c480fd56f90eb5cf6aaf42c0f0818dff73 SOURCES/grafana-pcp-3.0.2.tar.gz 117b12d50ac2c5993181e701d0f97d35be3fdc1b SOURCES/grafana-pcp-3.1.0.tar.gz
d2b773374b80b1ceac9111c3ecb2364b968f42b0 SOURCES/grafana-pcp-vendor-3.0.2.tar.xz 2c5ba04caa23028900b45a2beba3ad38c5c7b0fe SOURCES/grafana-pcp-vendor-3.1.0.tar.xz
2fc03a2e11363ede44e4dca8a5814af01829ea8b SOURCES/grafana-pcp-webpack-3.0.2.tar.gz 47e29693f27e125053cf84661d8affdeb566951a SOURCES/grafana-pcp-webpack-3.1.0.tar.gz

View File

@ -0,0 +1,28 @@
diff --git a/package.json b/package.json
index 2a3544b..07a785e 100644
--- a/package.json
+++ b/package.json
@@ -70,6 +70,8 @@
"redux-thunk": "^2.3.0"
},
"resolutions": {
+ "crypto-browserify": "https://registry.yarnpkg.com/@favware/skip-dependency/-/skip-dependency-1.1.1.tgz",
+ "http-signature": "https://registry.yarnpkg.com/@favware/skip-dependency/-/skip-dependency-1.1.1.tgz",
"monaco-editor": "0.20.0",
"rxjs": "6.6.3"
},
diff --git a/webpack.config.js b/webpack.config.js
index f762003..53fcb06 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -82,6 +82,10 @@ module.exports.getWebpackConfig = (config, options) => {
...config.module,
rules: removeDataTestAttributeInProduction(options.production, excludeExtractionLoaderForMonaco(config.module.rules)),
},
+ node: {
+ ...config.node,
+ crypto: false
+ },
plugins: [
...updateForkTsCheckerPluginSettings(config.plugins),
new MonacoWebpackPlugin({

View File

@ -2,14 +2,19 @@ all: grafana-pcp-$(VER).tar.gz \
grafana-pcp-vendor-$(VER).tar.xz \ grafana-pcp-vendor-$(VER).tar.xz \
grafana-pcp-webpack-$(VER).tar.gz grafana-pcp-webpack-$(VER).tar.gz
grafana-pcp-$(VER).tar.gz grafana-pcp-$(VER)/: grafana-pcp-$(VER).tar.gz:
wget https://github.com/performancecopilot/grafana-pcp/archive/v$(VER)/grafana-pcp-$(VER).tar.gz wget https://github.com/performancecopilot/grafana-pcp/archive/v$(VER)/grafana-pcp-$(VER).tar.gz
ALL_PATCHES := $(wildcard *.patch)
PATCHES_TO_APPLY := $(ALL_PATCHES)
grafana-pcp-vendor-$(VER).tar.xz: grafana-pcp-$(VER).tar.gz
rm -rf grafana-pcp-$(VER) rm -rf grafana-pcp-$(VER)
tar xfz grafana-pcp-$(VER).tar.gz tar xfz grafana-pcp-$(VER).tar.gz
cd grafana-pcp-$(VER) && shopt -s nullglob && \
for patch in ../*.patch; do patch -p1 < $$patch; done
grafana-pcp-vendor-$(VER).tar.xz: grafana-pcp-$(VER)/ # 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
# Go # Go
cd grafana-pcp-$(VER) && go mod vendor -v cd grafana-pcp-$(VER) && 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)}' grafana-pcp-$(VER)/go.mod | \
@ -19,7 +24,7 @@ grafana-pcp-vendor-$(VER).tar.xz: grafana-pcp-$(VER)/
cd grafana-pcp-$(VER) && yarn install --pure-lockfile cd grafana-pcp-$(VER) && 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 grafana-pcp-$(VER) -type d -name 'node-notifier' -prune -exec rm -r {} \;
find grafana-pcp-$(VER) -name '*.exe' -delete find grafana-pcp-$(VER) -type f -name '*.exe' -delete
# Remove not required packages # Remove not required packages
rm -r grafana-pcp-$(VER)/node_modules/puppeteer rm -r grafana-pcp-$(VER)/node_modules/puppeteer
./list_bundled_nodejs_packages.py grafana-pcp-$(VER)/ >> $@.manifest ./list_bundled_nodejs_packages.py grafana-pcp-$(VER)/ >> $@.manifest
@ -30,14 +35,12 @@ grafana-pcp-vendor-$(VER).tar.xz: grafana-pcp-$(VER)/
# Create tarball # Create tarball
XZ_OPT=-9 tar cfJ $@ \ XZ_OPT=-9 tar cfJ $@ \
grafana-pcp-$(VER)/vendor \ grafana-pcp-$(VER)/vendor \
$$(find grafana-pcp-$(VER) -type d -name "node_modules" -prune) \ grafana-pcp-$(VER)/node_modules \
grafana-pcp-$(VER)/vendor_jsonnet grafana-pcp-$(VER)/vendor_jsonnet
grafana-pcp-webpack-$(VER).tar.gz: grafana-pcp-$(VER)/ grafana-pcp-webpack-$(VER).tar.gz: grafana-pcp-$(VER).tar.gz
cd grafana-pcp-$(VER) && \ cd grafana-pcp-$(VER) && \
yarn install --pure-lockfile && \ ../build_frontend.sh
make dist-dashboards dist-frontend && \
chmod -R g-w,o-w dist
tar cfz $@ grafana-pcp-$(VER)/dist tar cfz $@ grafana-pcp-$(VER)/dist

10
SOURCES/build_frontend.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash -eu
# Build the frontend
yarn run build
# Build the dashboards
make dist-dashboards
# 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

View File

@ -1,4 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
#
# generates Provides: bundled(npm(...)) = ... lines for each declared dependency and devDependency of package.json
#
import sys import sys
import json import json
import re import re

View File

@ -1,7 +1,3 @@
# https://bugzilla.redhat.com/show_bug.cgi?id=1752991
# unfortunately the go_arches macro doesn't reflect that change yet
ExcludeArch: i686
%global grafanapcp_arches %{lua: go_arches = {} %global grafanapcp_arches %{lua: go_arches = {}
for arch in rpm.expand("%{go_arches}"):gmatch("%S+") do for arch in rpm.expand("%{go_arches}"):gmatch("%S+") do
go_arches[arch] = 1 go_arches[arch] = 1
@ -12,21 +8,12 @@ ExcludeArch: i686
end end
end} end}
# gobuild and gotest macros are defined in go-rpm-macros, which is not available on RHEL
# definitions lifted from Fedora 34 podman.spec
%if ! 0%{?gobuild:1}
%define gobuild(o:) GO111MODULE=off go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" -a -v -x %{?**};
%endif
%if ! 0%{?gotest:1}
%define gotest() GO111MODULE=off go test -buildmode pie -compiler gc -ldflags "${LDFLAGS:-} -extldflags '-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" %{?**};
%endif
# Specify if the frontend and dashboards will be compiled as part of the build or are attached # Specify if the frontend and dashboards will be compiled as part of the build or are attached
# as a webpack tarball (in case of an unsuitable nodejs or jsonnet version on the build system) # as a webpack tarball (in case of an unsuitable nodejs or jsonnet version on the build system)
%define compile_frontend 0 %define compile_frontend 0
Name: grafana-pcp Name: grafana-pcp
Version: 3.0.2 Version: 3.1.0
Release: 1%{?dist} Release: 1%{?dist}
Summary: Performance Co-Pilot Grafana Plugin Summary: Performance Co-Pilot Grafana Plugin
License: ASL 2.0 License: ASL 2.0
@ -39,7 +26,10 @@ Source1: grafana-pcp-vendor-%{version}.tar.xz
Source2: grafana-pcp-webpack-%{version}.tar.gz Source2: grafana-pcp-webpack-%{version}.tar.gz
%endif %endif
Source3: Makefile Source3: Makefile
Source4: list_bundled_nodejs_packages.py Source4: build_frontend.sh
Source5: list_bundled_nodejs_packages.py
Patch1: 001-remove-unused-frontend-crypto.patch
# Intersection of go_arches and nodejs_arches # Intersection of go_arches and nodejs_arches
ExclusiveArch: %{grafanapcp_arches} ExclusiveArch: %{grafanapcp_arches}
@ -48,8 +38,9 @@ BuildRequires: systemd-rpm-macros, golang, go-srpm-macros
%if 0%{?fedora} >= 31 %if 0%{?fedora} >= 31
BuildRequires: go-rpm-macros BuildRequires: go-rpm-macros
%endif %endif
%if %{compile_frontend} %if %{compile_frontend}
BuildRequires: make, nodejs >= 1:12, nodejs < 1:13, yarnpkg, golang-github-google-jsonnet BuildRequires: make, nodejs >= 1:14, yarnpkg, golang-github-google-jsonnet
%endif %endif
# omit golang debugsource, see BZ 995136 and related # omit golang debugsource, see BZ 995136 and related
@ -58,7 +49,7 @@ BuildRequires: make, nodejs >= 1:12, nodejs < 1:13, yarnpkg, golang-github-goog
%global install_dir %{_sharedstatedir}/grafana/plugins/performancecopilot-pcp-app %global install_dir %{_sharedstatedir}/grafana/plugins/performancecopilot-pcp-app
Requires: grafana >= 7.3.6 Requires: grafana >= 7.5.9
Suggests: pcp >= 5.2.2 Suggests: pcp >= 5.2.2
Suggests: redis >= 5.0.0 Suggests: redis >= 5.0.0
Suggests: bpftrace >= 0.9.2 Suggests: bpftrace >= 0.9.2
@ -74,56 +65,55 @@ 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.79.0 Provides: bundled(golang(github.com/grafana/grafana-plugin-sdk-go)) = 0.105.0
Provides: bundled(golang(github.com/smartystreets/goconvey)) = 1.6.4 Provides: bundled(golang(github.com/stretchr/testify)) = 1.7.0
Provides: bundled(npm(@babel/plugin-transform-modules-commonjs)) = 7.12.1 Provides: bundled(npm(@babel/plugin-transform-modules-commonjs)) = 7.14.5
Provides: bundled(npm(@grafana/data)) = 7.3.6 Provides: bundled(npm(@grafana/data)) = 7.5.9
Provides: bundled(npm(@grafana/runtime)) = 7.3.6 Provides: bundled(npm(@grafana/runtime)) = 7.5.9
Provides: bundled(npm(@grafana/toolkit)) = 7.3.6 Provides: bundled(npm(@grafana/toolkit)) = 7.5.9
Provides: bundled(npm(@grafana/ui)) = 7.3.6 Provides: bundled(npm(@grafana/ui)) = 7.5.9
Provides: bundled(npm(@types/blueimp-md5)) = 2.7.0 Provides: bundled(npm(@testing-library/jest-dom)) = 5.4.0
Provides: bundled(npm(@testing-library/react)) = 10.4.9
Provides: bundled(npm(@types/blueimp-md5)) = 2.18.0
Provides: bundled(npm(@types/d3-selection)) = 1.4.3 Provides: bundled(npm(@types/d3-selection)) = 1.4.3
Provides: bundled(npm(@types/enzyme)) = 3.10.5 Provides: bundled(npm(@types/enzyme)) = 3.10.8
Provides: bundled(npm(@types/enzyme-adapter-react-16)) = 1.0.6 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)) = 24.0.13 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.165 Provides: bundled(npm(@types/lodash)) = 4.14.170
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.12 Provides: bundled(npm(@types/react-redux)) = 7.1.16
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.18.0
Provides: bundled(npm(core-js)) = 1.2.7 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.1 Provides: bundled(npm(d3-selection)) = 1.4.2
Provides: bundled(npm(emotion)) = 10.0.27 Provides: bundled(npm(emotion)) = 10.0.27
Provides: bundled(npm(enzyme)) = 3.11.0 Provides: bundled(npm(enzyme)) = 3.11.0
Provides: bundled(npm(enzyme-adapter-react-16)) = 1.15.5 Provides: bundled(npm(enzyme-adapter-react-16)) = 1.15.6
Provides: bundled(npm(eslint-plugin-prettier)) = 3.1.4 Provides: bundled(npm(eslint-plugin-prettier)) = 3.3.1
Provides: bundled(npm(jest)) = 25.5.4
Provides: bundled(npm(jest-date-mock)) = 1.0.8 Provides: bundled(npm(jest-date-mock)) = 1.0.8
Provides: bundled(npm(jest-puppeteer)) = 4.4.0 Provides: bundled(npm(jest-puppeteer)) = 5.0.4
Provides: bundled(npm(lodash)) = 4.17.19 Provides: bundled(npm(lodash)) = 4.17.21
Provides: bundled(npm(loglevel)) = 1.7.1 Provides: bundled(npm(loglevel)) = 1.7.1
Provides: bundled(npm(loglevel-plugin-prefix)) = 0.8.4 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)) = 1.19.1 Provides: bundled(npm(prettier-plugin-organize-imports)) = 2.1.0
Provides: bundled(npm(prettier-plugin-organize-imports)) = 1.1.1 Provides: bundled(npm(puppeteer)) = 10.0.0
Provides: bundled(npm(puppeteer)) = 5.5.0 Provides: bundled(npm(react-autosuggest)) = 10.1.0
Provides: bundled(npm(react-autosuggest)) = 10.0.4
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.2 Provides: bundled(npm(react-redux)) = 7.2.4
Provides: bundled(npm(react-use)) = 15.3.4 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.3.0
Provides: bundled(npm(ts-jest)) = 26.3.0
Provides: bundled(npm(utility-types)) = 3.10.0 Provides: bundled(npm(utility-types)) = 3.10.0
@ -139,6 +129,8 @@ bpftrace scripts from pmdabpftrace(1), as well as several dashboards.
%setup -q -T -D -b 2 %setup -q -T -D -b 2
%endif %endif
%patch1 -p1
# Set up Go build subdir and links # Set up Go build subdir and links
mkdir -p %{_builddir}/src/github.com/performancecopilot mkdir -p %{_builddir}/src/github.com/performancecopilot
ln -s %{_builddir}/%{name}-%{version} \ ln -s %{_builddir}/%{name}-%{version} \
@ -148,9 +140,7 @@ ln -s %{_builddir}/%{name}-%{version} \
%build %build
# Build frontend datasources # Build frontend datasources
%if %{compile_frontend} %if %{compile_frontend}
make dist-dashboards dist-frontend %{SOURCE4}
# webpack/copy-webpack-plugin sometimes outputs files with mode = 666 due to reasons unknown (race condition/umask issue afaics)
chmod -R g-w,o-w dist
%endif %endif
# Build backend datasource # Build backend datasource
@ -194,6 +184,10 @@ export GOPATH=%{_builddir}
%changelog %changelog
* Fri Jun 25 2021 Andreas Gerstmayr <agerstmayr@redhat.com> 3.1.0-1
- update to 3.1.0 tagged upstream community sources, see CHANGELOG
- remove unused cryptographic implementations
* Fri Jan 22 2021 Andreas Gerstmayr <agerstmayr@redhat.com> 3.0.2-1 * Fri Jan 22 2021 Andreas Gerstmayr <agerstmayr@redhat.com> 3.0.2-1
- update to 3.0.2 tagged upstream community sources, see CHANGELOG - update to 3.0.2 tagged upstream community sources, see CHANGELOG