Architecture specific change in rpms/grafana-pcp.git
by githook-noreply@fedoraproject.org
The package rpms/grafana-pcp.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/grafana-pcp.git/commit/?id=ad5bd6....
Change:
+ExclusiveArch: %{grafanapcp_arches}
Thanks.
Full change:
============
commit ad5bd6ee95d27a2e9578019539834fdb65a50068
Author: Andreas Gerstmayr <agerstmayr(a)redhat.com>
Date: Thu Nov 26 12:42:03 2020 +0100
update to upstream 3.0.0
diff --git a/.gitignore b/.gitignore
index 96bc697..a2498d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
/grafana-pcp-*.tar.gz
-/grafana-pcp-deps-*.tar.xz
-/grafana-pcp-*.src.rpm
-/results_grafana-pcp/
+/grafana-pcp-*.tar.xz
+/grafana-pcp-*.tar.xz.manifest
+/grafana-pcp-*/
+*.rpm
diff --git a/001-fix-test-on-32bit.patch b/001-fix-test-on-32bit.patch
new file mode 100644
index 0000000..57ef9dd
--- /dev/null
+++ b/001-fix-test-on-32bit.patch
@@ -0,0 +1,13 @@
+diff --git a/pkg/datasources/redis/datasource_test.go b/pkg/datasources/redis/datasource_test.go
+index d677825..1ff9fd7 100644
+--- a/pkg/datasources/redis/datasource_test.go
++++ b/pkg/datasources/redis/datasource_test.go
+@@ -107,7 +107,7 @@ func TestDatasource(t *testing.T) {
+ So(response.Responses["A"].Frames, ShouldHaveLength, 1)
+ So(response.Responses["A"].Frames[0].Fields, ShouldHaveLength, 3)
+ So(response.Responses["A"].Frames[0].Fields[0].Len(), ShouldEqual, 1) // it's a counter metric with two values
+- So(response.Responses["A"].Frames[0].Fields[0].At(0).(time.Time).UnixNano(), ShouldEqual, 1599320692309872128)
++ So(response.Responses["A"].Frames[0].Fields[0].At(0).(time.Time).UnixNano(), ShouldEqual, int64(1599320692309872128))
+ So(response.Responses["A"].Frames[0].Fields[1].Name, ShouldEqual, "disk.dev.read[nvme0n1]")
+ So(*response.Responses["A"].Frames[0].Fields[1].At(0).(*float64), ShouldEqual, 200)
+ So(response.Responses["A"].Frames[0].Fields[2].Name, ShouldEqual, "disk.dev.read[sda]")
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..6fffbaa
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,45 @@
+all: grafana-pcp-$(VER).tar.gz \
+ grafana-pcp-vendor-$(VER).tar.xz \
+ grafana-pcp-webpack-$(VER).tar.gz
+
+grafana-pcp-$(VER).tar.gz grafana-pcp-$(VER)/:
+ wget https://github.com/performancecopilot/grafana-pcp/archive/v$(VER)/grafana...
+ rm -rf grafana-pcp-$(VER)
+ 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)/
+ # Go
+ 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 | \
+ sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@.manifest
+
+ # Node.js
+ cd grafana-pcp-$(VER) && yarn install --pure-lockfile
+ # Remove files with licensing issues
+ find grafana-pcp-$(VER) -type d -name 'node-notifier' -prune -exec rm -r {} \;
+ find grafana-pcp-$(VER) -name '*.exe' -delete
+ # Remove not required packages
+ rm -r grafana-pcp-$(VER)/node_modules/puppeteer
+ ./list_bundled_nodejs_packages.py grafana-pcp-$(VER)/ >> $@.manifest
+
+ # Jsonnet
+ cd grafana-pcp-$(VER) && jb --jsonnetpkg-home=vendor_jsonnet install
+
+ # Create tarball
+ XZ_OPT=-9 tar cfJ $@ \
+ grafana-pcp-$(VER)/vendor \
+ $$(find grafana-pcp-$(VER) -type d -name "node_modules" -prune) \
+ grafana-pcp-$(VER)/vendor_jsonnet
+
+grafana-pcp-webpack-$(VER).tar.gz: grafana-pcp-$(VER)/
+ cd grafana-pcp-$(VER) && \
+ yarn install --pure-lockfile && \
+ make dist-dashboards dist-frontend && \
+ chmod -R g-w,o-w dist
+
+ tar cfz $@ grafana-pcp-$(VER)/dist
+
+clean:
+ rm -rf *.tar.gz *.tar.xz *.manifest *.rpm grafana-pcp-*/
diff --git a/README.md b/README.md
index 377c1e9..3e2a33b 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,22 @@
# grafana-pcp
-
The grafana-pcp package
-## Build instructions
-```
-VER=2.0.2
-spectool -g grafana-pcp.spec
-./create_dependency_bundle.sh grafana-pcp-$VER.tar.gz grafana-pcp-deps-$VER.tar.xz
-./check_npm_dependencies.py grafana-pcp.spec grafana-pcp-$VER.tar.gz grafana-pcp-deps-$VER.tar.xz
-fedpkg new-sources grafana-pcp-$VER.tar.gz grafana-pcp-deps-$VER.tar.xz
+## Upgrade instructions
+(replace X.Y.Z with the new grafana-pcp version)
+
+* 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
+* run local build: `rpkg local`
+* run rpm linter: `rpkg lint -r grafana-pcp.rpmlintrc`
+* run a scratch build: `fedpkg scratch-build --srpm`
+* upload new source tarballs: `fedpkg new-sources *.tar.gz`
-fedpkg local
-fedpkg lint
-fedpkg mockbuild
-fedpkg scratch-build --srpm
+## Backporting
+* create the patch
+* declare and apply (`%prep`) the patch in the specfile
+* 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`
+ * update the specfile with new tarball path and contents of the `.manifest` file
-fedpkg build
-fedpkg update
-```
+Note: the Makefile automatically applies all patches before creating the tarballs
diff --git a/check_npm_dependencies.py b/check_npm_dependencies.py
deleted file mode 100755
index b10a762..0000000
--- a/check_npm_dependencies.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python3
-import sys
-import tarfile
-import json
-import os.path
-
-def read_spec_provides(spec_path):
- with open(spec_path) as f:
- for line in f:
- if line.startswith('Provides:'):
- yield line.strip()
-
-def read_node_deps(source_archive_path):
- root_dir = os.path.basename(source_archive_path)[:-len('.tar.gz')]
- with tarfile.open(source_archive_path) as tar:
- f = tar.extractfile(f'{root_dir}/package.json')
- package_json = json.load(f)
- return list(package_json['devDependencies'].keys()) + list(package_json['dependencies'].keys())
-
-def read_node_deps_versions(dep_bundle_path, dependencies):
- with tarfile.open(dep_bundle_path) as tar:
- for dependency in dependencies:
- f = tar.extractfile(f'node_modules/{dependency}/package.json')
- package_json = json.load(f)
- yield f'Provides: bundled(nodejs-{package_json["name"]}) = {package_json["version"]}'
-
-if __name__ == '__main__':
- if len(sys.argv) != 4:
- print('usage: {} specfile source-archive dependency-bundle'.format(sys.argv[0]))
- sys.exit(1)
-
- provides = list(read_spec_provides(sys.argv[1]))
- dependencies = sorted(read_node_deps(sys.argv[2]))
- actual_provides = list(read_node_deps_versions(sys.argv[3], dependencies))
-
- if provides == actual_provides:
- print("Dependencies are up-to-date with the specfile.")
- sys.exit(0)
- else:
- print("Dependencies don't match, please update the specfile:")
- print ('\n'.join(actual_provides))
- sys.exit(1)
diff --git a/create_dependency_bundle.sh b/create_dependency_bundle.sh
deleted file mode 100755
index fbcd787..0000000
--- a/create_dependency_bundle.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash -eu
-
-SRC=$(readlink -f "${1:?Usage: $0 source destination}")
-DEST=$(readlink -f "${2:?Usage: $0 source destination}")
-
-if [ -f "$DEST" ]; then
- echo "File $DEST exists already."
- exit 0
-fi
-if [ "$#" -gt 2 ]; then
- PATCHES=$(readlink -f "${@:3}")
-else
- PATCHES=""
-fi
-
-pushd "$(mktemp -d)"
-
-echo Extracting sources...
-tar xfz "$SRC"
-cd grafana-pcp-*
-
-echo Applying patches...
-for patch in $PATCHES
-do
- patch -p1 < $patch
-done
-
-echo Installing dependencies...
-yarn install
-
-echo Removing files with licensing issues...
-rm -rf node_modules/node-notifier
-
-echo Compressing...
-XZ_OPT=-9 tar cJf "$DEST" node_modules
-
-popd
diff --git a/grafana-pcp.rpmlintrc b/grafana-pcp.rpmlintrc
index 2aa6b59..d158ea8 100644
--- a/grafana-pcp.rpmlintrc
+++ b/grafana-pcp.rpmlintrc
@@ -3,5 +3,4 @@ addFilter("W: spelling-error %description -l en_US pmseries -> .*")
addFilter("W: spelling-error %description -l en_US bpftrace -> .*")
addFilter("W: spelling-error %description -l en_US pmdabpftrace -> .*")
-addFilter("W: strange-permission create_dependency_bundle.sh 755")
-addFilter("W: invalid-url Source1: grafana-pcp-deps-.*")
+addFilter("W: strange-permission list_bundled_nodejs_packages.py 755")
diff --git a/grafana-pcp.spec b/grafana-pcp.spec
index 80adef4..f565977 100644
--- a/grafana-pcp.spec
+++ b/grafana-pcp.spec
@@ -1,24 +1,54 @@
+%global grafanapcp_arches %{lua: go_arches = {}
+ for arch in rpm.expand("%{go_arches}"):gmatch("%S+") do
+ go_arches[arch] = 1
+ end
+ for arch in rpm.expand("%{nodejs_arches}"):gmatch("%S+") do
+ if go_arches[arch] then
+ print(arch .. " ")
+ end
+end}
+
+# 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)
+%define compile_frontend 0
+
Name: grafana-pcp
-Version: 2.0.2
-Release: 2%{?dist}
+Version: 3.0.0
+Release: 1%{?dist}
Summary: Performance Co-Pilot Grafana Plugin
-
-%global github https://github.com/performancecopilot/grafana-pcp
-%global install_dir %{_sharedstatedir}/grafana/plugins/grafana-pcp
-
-BuildArch: noarch
-ExclusiveArch: %{nodejs_arches}
-
License: ASL 2.0
-URL: %{github}
-
-Source0: %{github}/archive/v%{version}/%{name}-%{version}.tar.gz
-Source1: grafana-pcp-deps-%{version}.tar.xz
-Source2: create_dependency_bundle.sh
-
-BuildRequires: nodejs
-Requires: grafana >= 6.6.0
-Suggests: pcp >= 5.0.0
+URL: https://github.com/performancecopilot/grafana-pcp
+
+Source0: https://github.com/performancecopilot/grafana-pcp/archive/v%{version}/%{n...
+Source1: grafana-pcp-vendor-%{version}.tar.xz
+%if %{compile_frontend} == 0
+# Source2 contains the precompiled frontend and dashboards
+Source2: grafana-pcp-webpack-%{version}.tar.gz
+%endif
+Source3: Makefile
+Source4: list_bundled_nodejs_packages.py
+
+Patch1: 001-fix-test-on-32bit.patch
+
+# Intersection of go_arches and nodejs_arches
+ExclusiveArch: %{grafanapcp_arches}
+
+BuildRequires: systemd-rpm-macros, golang, go-srpm-macros
+%if 0%{?fedora}
+BuildRequires: go-rpm-macros
+%endif
+%if %{compile_frontend}
+BuildRequires: nodejs >= 1:12, nodejs < 1:13, yarnpkg, golang-github-google-jsonnet
+%endif
+
+# omit golang debugsource, see BZ 995136 and related
+%global dwz_low_mem_die_limit 0
+%global _debugsource_template %{nil}
+
+%global install_dir %{_sharedstatedir}/grafana/plugins/performancecopilot-pcp-app
+
+Requires: grafana >= 7.3.3
+Suggests: pcp >= 5.2.2
Suggests: redis >= 5.0.0
Suggests: bpftrace >= 0.9.2
@@ -29,48 +59,61 @@ Obsoletes: pcp-webapp-grafana <= 4.3.4
Obsoletes: pcp-webapp-graphite <= 4.3.4
Obsoletes: pcp-webapp-vector <= 4.3.4
-# Bundled npm packages
-Provides: bundled(nodejs-@babel/cli) = 7.8.4
-Provides: bundled(nodejs-@babel/core) = 7.8.4
-Provides: bundled(nodejs-@babel/preset-env) = 7.8.4
-Provides: bundled(nodejs-@babel/preset-react) = 7.8.3
-Provides: bundled(nodejs-@babel/preset-typescript) = 7.8.3
-Provides: bundled(nodejs-@grafana/data) = 6.6.0
-Provides: bundled(nodejs-@grafana/ui) = 6.6.0
-Provides: bundled(nodejs-@types/benchmark) = 1.0.31
-Provides: bundled(nodejs-@types/d3) = 5.7.2
-Provides: bundled(nodejs-@types/grafana) = 4.6.3
-Provides: bundled(nodejs-@types/jest) = 24.9.1
-Provides: bundled(nodejs-@types/lodash) = 4.14.149
-Provides: bundled(nodejs-babel-jest) = 24.9.0
-Provides: bundled(nodejs-babel-loader) = 8.0.6
-Provides: bundled(nodejs-babel-plugin-angularjs-annotate) = 0.10.0
-Provides: bundled(nodejs-benchmark) = 2.1.4
-Provides: bundled(nodejs-clean-webpack-plugin) = 0.1.19
-Provides: bundled(nodejs-copy-webpack-plugin) = 5.1.1
-Provides: bundled(nodejs-core-js) = 3.6.4
-Provides: bundled(nodejs-css-loader) = 1.0.1
-Provides: bundled(nodejs-d3-flame-graph) = 2.1.9
-Provides: bundled(nodejs-d3-selection) = 1.4.1
-Provides: bundled(nodejs-expr-eval) = 1.2.3
-Provides: bundled(nodejs-jest) = 24.9.0
-Provides: bundled(nodejs-jest-date-mock) = 1.0.8
-Provides: bundled(nodejs-jsdom) = 9.12.0
-Provides: bundled(nodejs-lodash) = 4.17.15
-Provides: bundled(nodejs-memoize-one) = 5.1.1
-Provides: bundled(nodejs-mocha) = 6.2.2
-Provides: bundled(nodejs-prunk) = 1.3.1
-Provides: bundled(nodejs-q) = 1.5.1
-Provides: bundled(nodejs-regenerator-runtime) = 0.12.1
-Provides: bundled(nodejs-request) = 2.88.0
-Provides: bundled(nodejs-style-loader) = 0.22.1
-Provides: bundled(nodejs-ts-jest) = 24.3.0
-Provides: bundled(nodejs-ts-loader) = 4.5.0
-Provides: bundled(nodejs-tslint) = 5.20.1
-Provides: bundled(nodejs-tslint-config-airbnb) = 5.11.2
-Provides: bundled(nodejs-typescript) = 3.7.5
-Provides: bundled(nodejs-webpack) = 4.41.5
-Provides: bundled(nodejs-webpack-cli) = 3.3.10
+# vendored golang and node.js build dependencies
+# this is for security purposes, if nodejs-foo ever needs an update,
+# affected packages can be easily identified.
+# 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/smartystreets/goconvey)) = 1.6.4
+Provides: bundled(npm(@babel/plugin-transform-modules-commonjs)) = 7.12.1
+Provides: bundled(npm(@grafana/data)) = 7.3.3
+Provides: bundled(npm(@grafana/runtime)) = 7.3.3
+Provides: bundled(npm(@grafana/toolkit)) = 7.3.3
+Provides: bundled(npm(@grafana/ui)) = 7.3.3
+Provides: bundled(npm(@types/blueimp-md5)) = 2.7.0
+Provides: bundled(npm(@types/d3-selection)) = 1.4.3
+Provides: bundled(npm(@types/enzyme)) = 3.10.5
+Provides: bundled(npm(@types/enzyme-adapter-react-16)) = 1.0.6
+Provides: bundled(npm(@types/expect-puppeteer)) = 3.3.1
+Provides: bundled(npm(@types/jest)) = 24.0.13
+Provides: bundled(npm(@types/jest-environment-puppeteer)) = 4.4.0
+Provides: bundled(npm(@types/lodash)) = 4.14.165
+Provides: bundled(npm(@types/memoize-one)) = 5.1.2
+Provides: bundled(npm(@types/react-autosuggest)) = 9.3.14
+Provides: bundled(npm(@types/react-redux)) = 7.1.11
+Provides: bundled(npm(@types/redux)) = 3.6.0
+Provides: bundled(npm(@types/redux-persist)) = 4.3.1
+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(blueimp-md5)) = 2.18.0
+Provides: bundled(npm(core-js)) = 1.2.7
+Provides: bundled(npm(d3-flame-graph)) = 3.1.1
+Provides: bundled(npm(d3-selection)) = 1.4.1
+Provides: bundled(npm(emotion)) = 10.0.27
+Provides: bundled(npm(enzyme)) = 3.11.0
+Provides: bundled(npm(enzyme-adapter-react-16)) = 1.15.5
+Provides: bundled(npm(eslint-plugin-prettier)) = 3.1.4
+Provides: bundled(npm(jest)) = 25.5.4
+Provides: bundled(npm(jest-date-mock)) = 1.0.8
+Provides: bundled(npm(jest-puppeteer)) = 4.4.0
+Provides: bundled(npm(lodash)) = 4.17.19
+Provides: bundled(npm(loglevel)) = 1.7.0
+Provides: bundled(npm(loglevel-plugin-prefix)) = 0.8.4
+Provides: bundled(npm(memoize-one)) = 4.1.0
+Provides: bundled(npm(monaco-editor)) = 0.20.0
+Provides: bundled(npm(monaco-editor-webpack-plugin)) = 2.0.0
+Provides: bundled(npm(prettier)) = 1.19.1
+Provides: bundled(npm(prettier-plugin-organize-imports)) = 1.1.1
+Provides: bundled(npm(puppeteer)) = 5.5.0
+Provides: bundled(npm(react-autosuggest)) = 10.0.3
+Provides: bundled(npm(react-monaco-editor)) = 0.36.0
+Provides: bundled(npm(react-redux)) = 7.2.2
+Provides: bundled(npm(react-use)) = 15.3.4
+Provides: bundled(npm(redux)) = 3.7.2
+Provides: bundled(npm(redux-persist)) = 4.10.2
+Provides: bundled(npm(redux-thunk)) = 2.3.0
+Provides: bundled(npm(ts-jest)) = 26.3.0
+Provides: bundled(npm(utility-types)) = 3.10.0
%description
@@ -79,30 +122,73 @@ scalable time series from pmseries(1) and Redis, live PCP metrics and
bpftrace scripts from pmdabpftrace(1), as well as several dashboards.
%prep
-%setup -q
-%setup -q -a 1
+%setup -q -T -D -b 0
+%setup -q -T -D -b 1
+%if %{compile_frontend} == 0
+%setup -q -T -D -b 2
+%endif
+
+%patch1 -p1
+
+# Set up Go build subdir and links
+mkdir -p %{_builddir}/src/github.com/performancecopilot
+ln -s %{_builddir}/%{name}-%{version} \
+ %{_builddir}/src/github.com/performancecopilot/grafana-pcp
-%build
-rm -rf dist
-./node_modules/webpack/bin/webpack.js --config webpack.config.prod.js
+%build
+# Build frontend datasources
+%if %{compile_frontend}
+make dist-dashboards dist-frontend
# webpack/copy-webpack-plugin sometimes outputs files with mode = 666 due to reasons unknown (race condition/umask issue afaics)
-chmod -Rf a+rX,u+w,g-w,o-w dist
+chmod -R g-w,o-w dist
+%endif
+
+# Build backend datasource
+cd %{_builddir}/src/github.com/performancecopilot/grafana-pcp
+export GOPATH=%{_builddir}
+%gobuild -o dist/datasources/redis/pcp_redis_datasource_$(go env GOOS)_$(go env GOARCH) ./pkg
-%check
-./node_modules/jest/bin/jest.js --silent
%install
install -d -m 755 %{buildroot}/%{install_dir}
cp -a dist/* %{buildroot}/%{install_dir}
+%postun
+# uninstall of old package
+%systemd_postun_with_restart grafana-server.service
+
+%posttrans
+# install or upgrade of new package
+if [ -x /usr/bin/systemctl ]; then
+ /usr/bin/systemctl try-restart grafana-server.service || :
+fi
+
+
+%check
+# Test frontend datasources
+%if %{compile_frontend}
+yarn test
+%endif
+
+# Test backend datasource
+cd %{_builddir}/src/github.com/performancecopilot/grafana-pcp
+export GOPATH=%{_builddir}
+%gotest ./pkg/...
+
+
%files
%{install_dir}
%license LICENSE NOTICE
%doc README.md
+
%changelog
+* Thu Nov 26 2020 Andreas Gerstmayr <agerstmayr(a)redhat.com> 3.0.0-1
+- update to 3.0.0 tagged upstream community sources, see CHANGELOG
+- bundle golang dependencies and (optionally) node.js dependencies
+
* Tue Jul 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
diff --git a/list_bundled_nodejs_packages.py b/list_bundled_nodejs_packages.py
new file mode 100755
index 0000000..a7c5e22
--- /dev/null
+++ b/list_bundled_nodejs_packages.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python3
+import sys
+import json
+import re
+from packaging import version
+
+
+def read_declared_pkgs(package_json_path):
+ with open(package_json_path) as f:
+ package_json = json.load(f)
+ return list(package_json['dependencies'].keys()) + list(package_json['devDependencies'].keys())
+
+
+def read_installed_pkgs(yarn_lock_path):
+ with open(yarn_lock_path) as f:
+ lockfile = f.read()
+ return re.findall(r'^"?' # can start with a "
+ r'(.+?)@.+(?:,.*)?:\n' # characters up to @
+ r' version "(.+)"', # and the version
+ lockfile, re.MULTILINE)
+
+
+def list_provides(declared_pkgs, installed_pkgs):
+ for declared_pkg in declared_pkgs:
+ # there can be multiple versions installed of one package (transitive dependencies)
+ # but rpm doesn't support Provides: with a single package and multiple versions
+ # so let's declare the oldest version here
+ versions = [version.parse(pkg_version)
+ for pkg_name, pkg_version in installed_pkgs if pkg_name == declared_pkg]
+ oldest_version = sorted(versions)[0]
+ yield f"Provides: bundled(npm({declared_pkg})) = {oldest_version}"
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print(f"usage: {sys.argv[0]} package-X.Y.Z/", file=sys.stdout)
+ sys.exit(1)
+
+ package_dir = sys.argv[1]
+ declared_pkgs = read_declared_pkgs(f"{package_dir}/package.json")
+ installed_pkgs = read_installed_pkgs(f"{package_dir}/yarn.lock")
+ provides = list_provides(declared_pkgs, installed_pkgs)
+ for provide in sorted(provides):
+ print(provide)
diff --git a/sources b/sources
index e0b5d8b..604575d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
-SHA512 (grafana-pcp-2.0.2.tar.gz) = 5a20bd3b6e5ce2d89ec131d4423ab46fd16b4b93949d80185e0b48b31067c6bcc6b89bbec7086912447c643bd7bed2d4625477adf994b4218d37eb08c731f304
-SHA512 (grafana-pcp-deps-2.0.2.tar.xz) = eb52c58c7f3e8ed2dedf254342e126b00752552a690d0d1e2cef577846d59d5cb217b6504ca6bf0dbd4d32b8806c14392dde02bc6a7eff037ca322cd50ac701e
+SHA512 (grafana-pcp-3.0.0.tar.gz) = 759dea2b958ebf3b9b1ce70675ee2cb44c71ea9c8a5548e036f18d3bc1a58438d3e40a331fab4c5f8414e2a797311fa5d4c3cf20b36d6d18e24db7f7b00388ba
+SHA512 (grafana-pcp-vendor-3.0.0.tar.xz) = 1773775aa694c5d2136984c7406fd1df9d662dd64d042de2656aee460a84b463ef1dcb71ff1008e9c91478a8b7bdaabb6debaaea5e65770266b28ff85816039a
+SHA512 (grafana-pcp-webpack-3.0.0.tar.gz) = d8423ee69532fac14f00f9bcdb4f7261fe54b1e6b397b76ae084502e4dd4b20abfc2420256e96032f1f85feda557c46fc191deeeaa88fc1fc0b97de0c9ba0c87
3 years, 5 months
Architecture specific change in rpms/grafana-pcp.git
by githook-noreply@fedoraproject.org
The package rpms/grafana-pcp.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/grafana-pcp.git/commit/?id=ad5bd6....
Change:
+ExclusiveArch: %{grafanapcp_arches}
Thanks.
Full change:
============
commit ad5bd6ee95d27a2e9578019539834fdb65a50068
Author: Andreas Gerstmayr <agerstmayr(a)redhat.com>
Date: Thu Nov 26 12:42:03 2020 +0100
update to upstream 3.0.0
diff --git a/.gitignore b/.gitignore
index 96bc697..a2498d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
/grafana-pcp-*.tar.gz
-/grafana-pcp-deps-*.tar.xz
-/grafana-pcp-*.src.rpm
-/results_grafana-pcp/
+/grafana-pcp-*.tar.xz
+/grafana-pcp-*.tar.xz.manifest
+/grafana-pcp-*/
+*.rpm
diff --git a/001-fix-test-on-32bit.patch b/001-fix-test-on-32bit.patch
new file mode 100644
index 0000000..57ef9dd
--- /dev/null
+++ b/001-fix-test-on-32bit.patch
@@ -0,0 +1,13 @@
+diff --git a/pkg/datasources/redis/datasource_test.go b/pkg/datasources/redis/datasource_test.go
+index d677825..1ff9fd7 100644
+--- a/pkg/datasources/redis/datasource_test.go
++++ b/pkg/datasources/redis/datasource_test.go
+@@ -107,7 +107,7 @@ func TestDatasource(t *testing.T) {
+ So(response.Responses["A"].Frames, ShouldHaveLength, 1)
+ So(response.Responses["A"].Frames[0].Fields, ShouldHaveLength, 3)
+ So(response.Responses["A"].Frames[0].Fields[0].Len(), ShouldEqual, 1) // it's a counter metric with two values
+- So(response.Responses["A"].Frames[0].Fields[0].At(0).(time.Time).UnixNano(), ShouldEqual, 1599320692309872128)
++ So(response.Responses["A"].Frames[0].Fields[0].At(0).(time.Time).UnixNano(), ShouldEqual, int64(1599320692309872128))
+ So(response.Responses["A"].Frames[0].Fields[1].Name, ShouldEqual, "disk.dev.read[nvme0n1]")
+ So(*response.Responses["A"].Frames[0].Fields[1].At(0).(*float64), ShouldEqual, 200)
+ So(response.Responses["A"].Frames[0].Fields[2].Name, ShouldEqual, "disk.dev.read[sda]")
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..6fffbaa
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,45 @@
+all: grafana-pcp-$(VER).tar.gz \
+ grafana-pcp-vendor-$(VER).tar.xz \
+ grafana-pcp-webpack-$(VER).tar.gz
+
+grafana-pcp-$(VER).tar.gz grafana-pcp-$(VER)/:
+ wget https://github.com/performancecopilot/grafana-pcp/archive/v$(VER)/grafana...
+ rm -rf grafana-pcp-$(VER)
+ 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)/
+ # Go
+ 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 | \
+ sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@.manifest
+
+ # Node.js
+ cd grafana-pcp-$(VER) && yarn install --pure-lockfile
+ # Remove files with licensing issues
+ find grafana-pcp-$(VER) -type d -name 'node-notifier' -prune -exec rm -r {} \;
+ find grafana-pcp-$(VER) -name '*.exe' -delete
+ # Remove not required packages
+ rm -r grafana-pcp-$(VER)/node_modules/puppeteer
+ ./list_bundled_nodejs_packages.py grafana-pcp-$(VER)/ >> $@.manifest
+
+ # Jsonnet
+ cd grafana-pcp-$(VER) && jb --jsonnetpkg-home=vendor_jsonnet install
+
+ # Create tarball
+ XZ_OPT=-9 tar cfJ $@ \
+ grafana-pcp-$(VER)/vendor \
+ $$(find grafana-pcp-$(VER) -type d -name "node_modules" -prune) \
+ grafana-pcp-$(VER)/vendor_jsonnet
+
+grafana-pcp-webpack-$(VER).tar.gz: grafana-pcp-$(VER)/
+ cd grafana-pcp-$(VER) && \
+ yarn install --pure-lockfile && \
+ make dist-dashboards dist-frontend && \
+ chmod -R g-w,o-w dist
+
+ tar cfz $@ grafana-pcp-$(VER)/dist
+
+clean:
+ rm -rf *.tar.gz *.tar.xz *.manifest *.rpm grafana-pcp-*/
diff --git a/README.md b/README.md
index 377c1e9..3e2a33b 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,22 @@
# grafana-pcp
-
The grafana-pcp package
-## Build instructions
-```
-VER=2.0.2
-spectool -g grafana-pcp.spec
-./create_dependency_bundle.sh grafana-pcp-$VER.tar.gz grafana-pcp-deps-$VER.tar.xz
-./check_npm_dependencies.py grafana-pcp.spec grafana-pcp-$VER.tar.gz grafana-pcp-deps-$VER.tar.xz
-fedpkg new-sources grafana-pcp-$VER.tar.gz grafana-pcp-deps-$VER.tar.xz
+## Upgrade instructions
+(replace X.Y.Z with the new grafana-pcp version)
+
+* 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
+* run local build: `rpkg local`
+* run rpm linter: `rpkg lint -r grafana-pcp.rpmlintrc`
+* run a scratch build: `fedpkg scratch-build --srpm`
+* upload new source tarballs: `fedpkg new-sources *.tar.gz`
-fedpkg local
-fedpkg lint
-fedpkg mockbuild
-fedpkg scratch-build --srpm
+## Backporting
+* create the patch
+* declare and apply (`%prep`) the patch in the specfile
+* 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`
+ * update the specfile with new tarball path and contents of the `.manifest` file
-fedpkg build
-fedpkg update
-```
+Note: the Makefile automatically applies all patches before creating the tarballs
diff --git a/check_npm_dependencies.py b/check_npm_dependencies.py
deleted file mode 100755
index b10a762..0000000
--- a/check_npm_dependencies.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python3
-import sys
-import tarfile
-import json
-import os.path
-
-def read_spec_provides(spec_path):
- with open(spec_path) as f:
- for line in f:
- if line.startswith('Provides:'):
- yield line.strip()
-
-def read_node_deps(source_archive_path):
- root_dir = os.path.basename(source_archive_path)[:-len('.tar.gz')]
- with tarfile.open(source_archive_path) as tar:
- f = tar.extractfile(f'{root_dir}/package.json')
- package_json = json.load(f)
- return list(package_json['devDependencies'].keys()) + list(package_json['dependencies'].keys())
-
-def read_node_deps_versions(dep_bundle_path, dependencies):
- with tarfile.open(dep_bundle_path) as tar:
- for dependency in dependencies:
- f = tar.extractfile(f'node_modules/{dependency}/package.json')
- package_json = json.load(f)
- yield f'Provides: bundled(nodejs-{package_json["name"]}) = {package_json["version"]}'
-
-if __name__ == '__main__':
- if len(sys.argv) != 4:
- print('usage: {} specfile source-archive dependency-bundle'.format(sys.argv[0]))
- sys.exit(1)
-
- provides = list(read_spec_provides(sys.argv[1]))
- dependencies = sorted(read_node_deps(sys.argv[2]))
- actual_provides = list(read_node_deps_versions(sys.argv[3], dependencies))
-
- if provides == actual_provides:
- print("Dependencies are up-to-date with the specfile.")
- sys.exit(0)
- else:
- print("Dependencies don't match, please update the specfile:")
- print ('\n'.join(actual_provides))
- sys.exit(1)
diff --git a/create_dependency_bundle.sh b/create_dependency_bundle.sh
deleted file mode 100755
index fbcd787..0000000
--- a/create_dependency_bundle.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash -eu
-
-SRC=$(readlink -f "${1:?Usage: $0 source destination}")
-DEST=$(readlink -f "${2:?Usage: $0 source destination}")
-
-if [ -f "$DEST" ]; then
- echo "File $DEST exists already."
- exit 0
-fi
-if [ "$#" -gt 2 ]; then
- PATCHES=$(readlink -f "${@:3}")
-else
- PATCHES=""
-fi
-
-pushd "$(mktemp -d)"
-
-echo Extracting sources...
-tar xfz "$SRC"
-cd grafana-pcp-*
-
-echo Applying patches...
-for patch in $PATCHES
-do
- patch -p1 < $patch
-done
-
-echo Installing dependencies...
-yarn install
-
-echo Removing files with licensing issues...
-rm -rf node_modules/node-notifier
-
-echo Compressing...
-XZ_OPT=-9 tar cJf "$DEST" node_modules
-
-popd
diff --git a/grafana-pcp.rpmlintrc b/grafana-pcp.rpmlintrc
index 2aa6b59..d158ea8 100644
--- a/grafana-pcp.rpmlintrc
+++ b/grafana-pcp.rpmlintrc
@@ -3,5 +3,4 @@ addFilter("W: spelling-error %description -l en_US pmseries -> .*")
addFilter("W: spelling-error %description -l en_US bpftrace -> .*")
addFilter("W: spelling-error %description -l en_US pmdabpftrace -> .*")
-addFilter("W: strange-permission create_dependency_bundle.sh 755")
-addFilter("W: invalid-url Source1: grafana-pcp-deps-.*")
+addFilter("W: strange-permission list_bundled_nodejs_packages.py 755")
diff --git a/grafana-pcp.spec b/grafana-pcp.spec
index 80adef4..f565977 100644
--- a/grafana-pcp.spec
+++ b/grafana-pcp.spec
@@ -1,24 +1,54 @@
+%global grafanapcp_arches %{lua: go_arches = {}
+ for arch in rpm.expand("%{go_arches}"):gmatch("%S+") do
+ go_arches[arch] = 1
+ end
+ for arch in rpm.expand("%{nodejs_arches}"):gmatch("%S+") do
+ if go_arches[arch] then
+ print(arch .. " ")
+ end
+end}
+
+# 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)
+%define compile_frontend 0
+
Name: grafana-pcp
-Version: 2.0.2
-Release: 2%{?dist}
+Version: 3.0.0
+Release: 1%{?dist}
Summary: Performance Co-Pilot Grafana Plugin
-
-%global github https://github.com/performancecopilot/grafana-pcp
-%global install_dir %{_sharedstatedir}/grafana/plugins/grafana-pcp
-
-BuildArch: noarch
-ExclusiveArch: %{nodejs_arches}
-
License: ASL 2.0
-URL: %{github}
-
-Source0: %{github}/archive/v%{version}/%{name}-%{version}.tar.gz
-Source1: grafana-pcp-deps-%{version}.tar.xz
-Source2: create_dependency_bundle.sh
-
-BuildRequires: nodejs
-Requires: grafana >= 6.6.0
-Suggests: pcp >= 5.0.0
+URL: https://github.com/performancecopilot/grafana-pcp
+
+Source0: https://github.com/performancecopilot/grafana-pcp/archive/v%{version}/%{n...
+Source1: grafana-pcp-vendor-%{version}.tar.xz
+%if %{compile_frontend} == 0
+# Source2 contains the precompiled frontend and dashboards
+Source2: grafana-pcp-webpack-%{version}.tar.gz
+%endif
+Source3: Makefile
+Source4: list_bundled_nodejs_packages.py
+
+Patch1: 001-fix-test-on-32bit.patch
+
+# Intersection of go_arches and nodejs_arches
+ExclusiveArch: %{grafanapcp_arches}
+
+BuildRequires: systemd-rpm-macros, golang, go-srpm-macros
+%if 0%{?fedora}
+BuildRequires: go-rpm-macros
+%endif
+%if %{compile_frontend}
+BuildRequires: nodejs >= 1:12, nodejs < 1:13, yarnpkg, golang-github-google-jsonnet
+%endif
+
+# omit golang debugsource, see BZ 995136 and related
+%global dwz_low_mem_die_limit 0
+%global _debugsource_template %{nil}
+
+%global install_dir %{_sharedstatedir}/grafana/plugins/performancecopilot-pcp-app
+
+Requires: grafana >= 7.3.3
+Suggests: pcp >= 5.2.2
Suggests: redis >= 5.0.0
Suggests: bpftrace >= 0.9.2
@@ -29,48 +59,61 @@ Obsoletes: pcp-webapp-grafana <= 4.3.4
Obsoletes: pcp-webapp-graphite <= 4.3.4
Obsoletes: pcp-webapp-vector <= 4.3.4
-# Bundled npm packages
-Provides: bundled(nodejs-@babel/cli) = 7.8.4
-Provides: bundled(nodejs-@babel/core) = 7.8.4
-Provides: bundled(nodejs-@babel/preset-env) = 7.8.4
-Provides: bundled(nodejs-@babel/preset-react) = 7.8.3
-Provides: bundled(nodejs-@babel/preset-typescript) = 7.8.3
-Provides: bundled(nodejs-@grafana/data) = 6.6.0
-Provides: bundled(nodejs-@grafana/ui) = 6.6.0
-Provides: bundled(nodejs-@types/benchmark) = 1.0.31
-Provides: bundled(nodejs-@types/d3) = 5.7.2
-Provides: bundled(nodejs-@types/grafana) = 4.6.3
-Provides: bundled(nodejs-@types/jest) = 24.9.1
-Provides: bundled(nodejs-@types/lodash) = 4.14.149
-Provides: bundled(nodejs-babel-jest) = 24.9.0
-Provides: bundled(nodejs-babel-loader) = 8.0.6
-Provides: bundled(nodejs-babel-plugin-angularjs-annotate) = 0.10.0
-Provides: bundled(nodejs-benchmark) = 2.1.4
-Provides: bundled(nodejs-clean-webpack-plugin) = 0.1.19
-Provides: bundled(nodejs-copy-webpack-plugin) = 5.1.1
-Provides: bundled(nodejs-core-js) = 3.6.4
-Provides: bundled(nodejs-css-loader) = 1.0.1
-Provides: bundled(nodejs-d3-flame-graph) = 2.1.9
-Provides: bundled(nodejs-d3-selection) = 1.4.1
-Provides: bundled(nodejs-expr-eval) = 1.2.3
-Provides: bundled(nodejs-jest) = 24.9.0
-Provides: bundled(nodejs-jest-date-mock) = 1.0.8
-Provides: bundled(nodejs-jsdom) = 9.12.0
-Provides: bundled(nodejs-lodash) = 4.17.15
-Provides: bundled(nodejs-memoize-one) = 5.1.1
-Provides: bundled(nodejs-mocha) = 6.2.2
-Provides: bundled(nodejs-prunk) = 1.3.1
-Provides: bundled(nodejs-q) = 1.5.1
-Provides: bundled(nodejs-regenerator-runtime) = 0.12.1
-Provides: bundled(nodejs-request) = 2.88.0
-Provides: bundled(nodejs-style-loader) = 0.22.1
-Provides: bundled(nodejs-ts-jest) = 24.3.0
-Provides: bundled(nodejs-ts-loader) = 4.5.0
-Provides: bundled(nodejs-tslint) = 5.20.1
-Provides: bundled(nodejs-tslint-config-airbnb) = 5.11.2
-Provides: bundled(nodejs-typescript) = 3.7.5
-Provides: bundled(nodejs-webpack) = 4.41.5
-Provides: bundled(nodejs-webpack-cli) = 3.3.10
+# vendored golang and node.js build dependencies
+# this is for security purposes, if nodejs-foo ever needs an update,
+# affected packages can be easily identified.
+# 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/smartystreets/goconvey)) = 1.6.4
+Provides: bundled(npm(@babel/plugin-transform-modules-commonjs)) = 7.12.1
+Provides: bundled(npm(@grafana/data)) = 7.3.3
+Provides: bundled(npm(@grafana/runtime)) = 7.3.3
+Provides: bundled(npm(@grafana/toolkit)) = 7.3.3
+Provides: bundled(npm(@grafana/ui)) = 7.3.3
+Provides: bundled(npm(@types/blueimp-md5)) = 2.7.0
+Provides: bundled(npm(@types/d3-selection)) = 1.4.3
+Provides: bundled(npm(@types/enzyme)) = 3.10.5
+Provides: bundled(npm(@types/enzyme-adapter-react-16)) = 1.0.6
+Provides: bundled(npm(@types/expect-puppeteer)) = 3.3.1
+Provides: bundled(npm(@types/jest)) = 24.0.13
+Provides: bundled(npm(@types/jest-environment-puppeteer)) = 4.4.0
+Provides: bundled(npm(@types/lodash)) = 4.14.165
+Provides: bundled(npm(@types/memoize-one)) = 5.1.2
+Provides: bundled(npm(@types/react-autosuggest)) = 9.3.14
+Provides: bundled(npm(@types/react-redux)) = 7.1.11
+Provides: bundled(npm(@types/redux)) = 3.6.0
+Provides: bundled(npm(@types/redux-persist)) = 4.3.1
+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(blueimp-md5)) = 2.18.0
+Provides: bundled(npm(core-js)) = 1.2.7
+Provides: bundled(npm(d3-flame-graph)) = 3.1.1
+Provides: bundled(npm(d3-selection)) = 1.4.1
+Provides: bundled(npm(emotion)) = 10.0.27
+Provides: bundled(npm(enzyme)) = 3.11.0
+Provides: bundled(npm(enzyme-adapter-react-16)) = 1.15.5
+Provides: bundled(npm(eslint-plugin-prettier)) = 3.1.4
+Provides: bundled(npm(jest)) = 25.5.4
+Provides: bundled(npm(jest-date-mock)) = 1.0.8
+Provides: bundled(npm(jest-puppeteer)) = 4.4.0
+Provides: bundled(npm(lodash)) = 4.17.19
+Provides: bundled(npm(loglevel)) = 1.7.0
+Provides: bundled(npm(loglevel-plugin-prefix)) = 0.8.4
+Provides: bundled(npm(memoize-one)) = 4.1.0
+Provides: bundled(npm(monaco-editor)) = 0.20.0
+Provides: bundled(npm(monaco-editor-webpack-plugin)) = 2.0.0
+Provides: bundled(npm(prettier)) = 1.19.1
+Provides: bundled(npm(prettier-plugin-organize-imports)) = 1.1.1
+Provides: bundled(npm(puppeteer)) = 5.5.0
+Provides: bundled(npm(react-autosuggest)) = 10.0.3
+Provides: bundled(npm(react-monaco-editor)) = 0.36.0
+Provides: bundled(npm(react-redux)) = 7.2.2
+Provides: bundled(npm(react-use)) = 15.3.4
+Provides: bundled(npm(redux)) = 3.7.2
+Provides: bundled(npm(redux-persist)) = 4.10.2
+Provides: bundled(npm(redux-thunk)) = 2.3.0
+Provides: bundled(npm(ts-jest)) = 26.3.0
+Provides: bundled(npm(utility-types)) = 3.10.0
%description
@@ -79,30 +122,73 @@ scalable time series from pmseries(1) and Redis, live PCP metrics and
bpftrace scripts from pmdabpftrace(1), as well as several dashboards.
%prep
-%setup -q
-%setup -q -a 1
+%setup -q -T -D -b 0
+%setup -q -T -D -b 1
+%if %{compile_frontend} == 0
+%setup -q -T -D -b 2
+%endif
+
+%patch1 -p1
+
+# Set up Go build subdir and links
+mkdir -p %{_builddir}/src/github.com/performancecopilot
+ln -s %{_builddir}/%{name}-%{version} \
+ %{_builddir}/src/github.com/performancecopilot/grafana-pcp
-%build
-rm -rf dist
-./node_modules/webpack/bin/webpack.js --config webpack.config.prod.js
+%build
+# Build frontend datasources
+%if %{compile_frontend}
+make dist-dashboards dist-frontend
# webpack/copy-webpack-plugin sometimes outputs files with mode = 666 due to reasons unknown (race condition/umask issue afaics)
-chmod -Rf a+rX,u+w,g-w,o-w dist
+chmod -R g-w,o-w dist
+%endif
+
+# Build backend datasource
+cd %{_builddir}/src/github.com/performancecopilot/grafana-pcp
+export GOPATH=%{_builddir}
+%gobuild -o dist/datasources/redis/pcp_redis_datasource_$(go env GOOS)_$(go env GOARCH) ./pkg
-%check
-./node_modules/jest/bin/jest.js --silent
%install
install -d -m 755 %{buildroot}/%{install_dir}
cp -a dist/* %{buildroot}/%{install_dir}
+%postun
+# uninstall of old package
+%systemd_postun_with_restart grafana-server.service
+
+%posttrans
+# install or upgrade of new package
+if [ -x /usr/bin/systemctl ]; then
+ /usr/bin/systemctl try-restart grafana-server.service || :
+fi
+
+
+%check
+# Test frontend datasources
+%if %{compile_frontend}
+yarn test
+%endif
+
+# Test backend datasource
+cd %{_builddir}/src/github.com/performancecopilot/grafana-pcp
+export GOPATH=%{_builddir}
+%gotest ./pkg/...
+
+
%files
%{install_dir}
%license LICENSE NOTICE
%doc README.md
+
%changelog
+* Thu Nov 26 2020 Andreas Gerstmayr <agerstmayr(a)redhat.com> 3.0.0-1
+- update to 3.0.0 tagged upstream community sources, see CHANGELOG
+- bundle golang dependencies and (optionally) node.js dependencies
+
* Tue Jul 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
diff --git a/list_bundled_nodejs_packages.py b/list_bundled_nodejs_packages.py
new file mode 100755
index 0000000..a7c5e22
--- /dev/null
+++ b/list_bundled_nodejs_packages.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python3
+import sys
+import json
+import re
+from packaging import version
+
+
+def read_declared_pkgs(package_json_path):
+ with open(package_json_path) as f:
+ package_json = json.load(f)
+ return list(package_json['dependencies'].keys()) + list(package_json['devDependencies'].keys())
+
+
+def read_installed_pkgs(yarn_lock_path):
+ with open(yarn_lock_path) as f:
+ lockfile = f.read()
+ return re.findall(r'^"?' # can start with a "
+ r'(.+?)@.+(?:,.*)?:\n' # characters up to @
+ r' version "(.+)"', # and the version
+ lockfile, re.MULTILINE)
+
+
+def list_provides(declared_pkgs, installed_pkgs):
+ for declared_pkg in declared_pkgs:
+ # there can be multiple versions installed of one package (transitive dependencies)
+ # but rpm doesn't support Provides: with a single package and multiple versions
+ # so let's declare the oldest version here
+ versions = [version.parse(pkg_version)
+ for pkg_name, pkg_version in installed_pkgs if pkg_name == declared_pkg]
+ oldest_version = sorted(versions)[0]
+ yield f"Provides: bundled(npm({declared_pkg})) = {oldest_version}"
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print(f"usage: {sys.argv[0]} package-X.Y.Z/", file=sys.stdout)
+ sys.exit(1)
+
+ package_dir = sys.argv[1]
+ declared_pkgs = read_declared_pkgs(f"{package_dir}/package.json")
+ installed_pkgs = read_installed_pkgs(f"{package_dir}/yarn.lock")
+ provides = list_provides(declared_pkgs, installed_pkgs)
+ for provide in sorted(provides):
+ print(provide)
diff --git a/sources b/sources
index e0b5d8b..604575d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
-SHA512 (grafana-pcp-2.0.2.tar.gz) = 5a20bd3b6e5ce2d89ec131d4423ab46fd16b4b93949d80185e0b48b31067c6bcc6b89bbec7086912447c643bd7bed2d4625477adf994b4218d37eb08c731f304
-SHA512 (grafana-pcp-deps-2.0.2.tar.xz) = eb52c58c7f3e8ed2dedf254342e126b00752552a690d0d1e2cef577846d59d5cb217b6504ca6bf0dbd4d32b8806c14392dde02bc6a7eff037ca322cd50ac701e
+SHA512 (grafana-pcp-3.0.0.tar.gz) = 759dea2b958ebf3b9b1ce70675ee2cb44c71ea9c8a5548e036f18d3bc1a58438d3e40a331fab4c5f8414e2a797311fa5d4c3cf20b36d6d18e24db7f7b00388ba
+SHA512 (grafana-pcp-vendor-3.0.0.tar.xz) = 1773775aa694c5d2136984c7406fd1df9d662dd64d042de2656aee460a84b463ef1dcb71ff1008e9c91478a8b7bdaabb6debaaea5e65770266b28ff85816039a
+SHA512 (grafana-pcp-webpack-3.0.0.tar.gz) = d8423ee69532fac14f00f9bcdb4f7261fe54b1e6b397b76ae084502e4dd4b20abfc2420256e96032f1f85feda557c46fc191deeeaa88fc1fc0b97de0c9ba0c87
3 years, 5 months
Architecture specific change in rpms/glibc.git
by githook-noreply@fedoraproject.org
The package rpms/glibc.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=a3f3b637ae83....
Change:
-%ifarch s390x
Thanks.
Full change:
============
commit a3f3b637ae838458ed5781b05913a48050476887
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Thu Nov 26 11:18:08 2020 +0100
s390x: Do not rewrite program interpreter symlink (make install is enough)
diff --git a/glibc.spec b/glibc.spec
index 3798a8d..5c8b02d 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -100,7 +100,7 @@
Summary: The GNU libc libraries
Name: glibc
Version: %{glibcversion}
-Release: 16%{?dist}
+Release: 17%{?dist}
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
# libraries.
@@ -1395,12 +1395,6 @@ mkdir documentation
cp timezone/README documentation/README.timezone
cp posix/gai.conf documentation/
-%ifarch s390x
-# Compatibility symlink
-mkdir -p %{glibc_sysroot}/lib
-ln -sf /%{_lib}/ld64.so.1 %{glibc_sysroot}/lib/ld64.so.1
-%endif
-
%if %{with benchtests}
# Build benchmark binaries. Ignore the output of the benchmark runs.
pushd build-%{target}
@@ -2181,9 +2175,6 @@ fi
%if %{buildpower9}
%dir /%{_lib}/power9
%endif
-%ifarch s390x
-/lib/ld64.so.1
-%endif
%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
%verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf
%verify(not md5 size mtime) %config(noreplace) /etc/rpc
@@ -2269,6 +2260,9 @@ fi
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
%changelog
+* Thu Nov 26 2020 Florian Weimer <fweimer(a)redhat.com> - 2.32.9000-17
+- s390x: Do not rewrite program interpreter symlink (make install is enough)
+
* Tue Nov 10 2020 Carlos O'Donell <carlos(a)redhat.com> - 2.32.9000-16
- Remove the work around for systemd-nspawn (#1869030).
3 years, 5 months
[Report] Packages Restricting Arches
by root
Package no longer excluding arches (1)
==================================
- libtaskotron
List of packages currently excluding arches (2567)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- RediSearch
ExclusiveArch: x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- accel-config
ExclusiveArch: %{ix86} x86_64
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- algobox
ExclusiveArch: %{qt5_qtwebengine_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- anki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- blender
ExclusiveArch: x86_64 aarch64 ppc64le
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- clevis-pin-tpm2
ExclusiveArch: %{rust_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- cpu-x
ExclusiveArch: i686 x86_64
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
ExclusiveArch: x86_64 ppc64le
- dbus-parsec
ExclusiveArch: %{rust_arches}
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-desktop-schemas
ExclusiveArch: %{go_arches}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 aarch64
- dotnet-build-reference-packages
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet3.1
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- emacs-slime
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- embree
ExclusiveArch: x86_64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-developer-portal
ExclusiveArch: x86_64 i686 aarch64 # only chromium architectures
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_arches}
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hedgewars
ExclusiveArch: %{fpc_arches}
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-ipsec-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- intel-mediasdk
ExclusiveArch: x86_64
- intel-undervolt
ExclusiveArch: i386 x86_64
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: x86_64 aarch64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- kf5-akonadi-search
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-audiocd-kio
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kblog
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarcore
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarutils
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kitinerary
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kmailtransport
ExclusiveArch: x86_64 %{arm}
- kf5-ktnef
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-libkdcraw
ExclusiveArch: x86_64 ppc64le %{arm}
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- knotes
ExclusiveArch: x86_64 %{arm}
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
- libguestfs
ExclusiveArch: %{kernel_arches}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libnxz
ExclusiveArch: ppc64le
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvma
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newsflash
ExclusiveArch: %{rust_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- nispor
ExclusiveArch: %{rust_arches}
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nodemon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-try
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-toidentifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-seccomp-bpf-hook
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onednn
ExclusiveArch: x86_64 aarch64 ppc64le
- onedrive
ExclusiveArch: %{ldc_arches}
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: x86_64
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openshadinglanguage
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- paflib
ExclusiveArch: ppc %{power64}
- parsec
ExclusiveArch: %{rust_arches}
- parsec-tool
ExclusiveArch: %{rust_arches}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: x86_64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- psi-plus
ExclusiveArch: %{qt5_qtwebengine_arches}
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qemu-sanity-check
ExclusiveArch: %{kernel_arches}
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rmd
ExclusiveArch: %{ix86} x86_64
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-ab_glyph_rasterizer
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-testing
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aead
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alacritty
ExclusiveArch: %{rust_arches}
- rust-alacritty_terminal
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-andrew
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-anymap
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arbitrary
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-argparse
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-article_scraper
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-askama
ExclusiveArch: %{rust_arches}
- rust-askama_derive
ExclusiveArch: %{rust_arches}
- rust-askama_escape
ExclusiveArch: %{rust_arches}
- rust-askama_shared
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_cli
ExclusiveArch: %{rust_arches}
- rust-assert_cmd
ExclusiveArch: %{rust_arches}
- rust-assert_fs
ExclusiveArch: %{rust_arches}
- rust-assert_matches
ExclusiveArch: %{rust_arches}
- rust-async-attributes
ExclusiveArch: %{rust_arches}
- rust-async-compression
ExclusiveArch: %{rust_arches}
- rust-async-task
ExclusiveArch: %{rust_arches}
- rust-async-trait
ExclusiveArch: %{rust_arches}
- rust-asyncgit
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-attohttpc
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-average
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-base64-0.10
ExclusiveArch: %{rust_arches}
- rust-base64-0.11
ExclusiveArch: %{rust_arches}
- rust-base64_0.12
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-battery
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-better-panic
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-binfarce
ExclusiveArch: %{rust_arches}
- rust-biscuit
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitfield
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitmaps
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-blobby0.1
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-buffer0.7
ExclusiveArch: %{rust_arches}
- rust-block-cipher
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-blsctl
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-bootupd
ExclusiveArch: x86_64 aarch64
- rust-box_drawing
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli
ExclusiveArch: %{rust_arches}
- rust-brotli-decompressor
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-buf-min
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bumpalo
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytelines
ExclusiveArch: %{rust_arches}
- rust-bytemuck
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-bytestring
ExclusiveArch: %{rust_arches}
- rust-bzip2
ExclusiveArch: %{rust_arches}
- rust-bzip2-sys
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-calloop
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo-c
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-insta
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo-readme
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cedarwood
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-cfg-if0.1
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-charset
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-choosier
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-chunked_transfer
ExclusiveArch: %{rust_arches}
- rust-cipher
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color-backtrace
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-compiletest_rs
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-console0.11
ExclusiveArch: %{rust_arches}
- rust-console0.12
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-const_fn
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-conv
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-copydeps
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-cpuid-bool
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-any
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel0.4
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch0.8
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue0.2
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils0.7
ExclusiveArch: %{rust_arches}
- rust-crossbeam0.7
ExclusiveArch: %{rust_arches}
- rust-crossfont
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-crypto-mac0.8
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-dashmap
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus-codegen
ExclusiveArch: %{rust_arches}
- rust-dbus-crossroads
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-dbus0.6
ExclusiveArch: %{rust_arches}
- rust-dbus0.8
ExclusiveArch: %{rust_arches}
- rust-debug-helper
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derivative
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-des
ExclusiveArch: %{rust_arches}
- rust-desed
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-dialoguer
ExclusiveArch: %{rust_arches}
- rust-diesel
ExclusiveArch: %{rust_arches}
- rust-diesel_derives
ExclusiveArch: %{rust_arches}
- rust-diesel_migrations
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-digest0.8
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dirs2
ExclusiveArch: %{rust_arches}
- rust-diskonaut
ExclusiveArch: %{rust_arches}
- rust-dissimilar
ExclusiveArch: %{rust_arches}
- rust-dlib
ExclusiveArch: %{rust_arches}
- rust-dlv-list
ExclusiveArch: %{rust_arches}
- rust-dns-lookup
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dunce
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-env_logger0.7
ExclusiveArch: %{rust_arches}
- rust-environment
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escaper
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-euclid
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-expat-sys
ExclusiveArch: %{rust_arches}
- rust-extend
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fastrand
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fdlimit
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-feed-rs
ExclusiveArch: %{rust_arches}
- rust-feedbin_api
ExclusiveArch: %{rust_arches}
- rust-feedly_api
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-fever_api
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-findshlibs
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-float-cmp0.6
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-font-kit
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-macros
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared0.1
ExclusiveArch: %{rust_arches}
- rust-foreign-types0.3
ExclusiveArch: %{rust_arches}
- rust-form_urlencoded
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-freetype
ExclusiveArch: %{rust_arches}
- rust-freetype-rs
ExclusiveArch: %{rust_arches}
- rust-freetype-sys
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-channel
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor
ExclusiveArch: %{rust_arches}
- rust-futures-io
ExclusiveArch: %{rust_arches}
- rust-futures-macro
ExclusiveArch: %{rust_arches}
- rust-futures-sink
ExclusiveArch: %{rust_arches}
- rust-futures-task
ExclusiveArch: %{rust_arches}
- rust-futures-timer
ExclusiveArch: %{rust_arches}
- rust-futures-util
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-generic-array0.12
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-getrandom0.1
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-ghash
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gif0.10
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-gitui
ExclusiveArch: %{rust_arches}
- rust-gl_generator
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-macros
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-glutin
ExclusiveArch: %{rust_arches}
- rust-glutin_egl_sys
ExclusiveArch: %{rust_arches}
- rust-glutin_glx_sys
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-gptman
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-groupable
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-macros
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hex-literal0.2
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-hostname-validator
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-http0.1
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-httpdate
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-staticfile
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-insta
ExclusiveArch: %{rust_arches}
- rust-instant
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-invalidstring
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnet
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iron
ExclusiveArch: %{rust_arches}
- rust-isahc
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itertools0.8
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs-sys
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jieba-rs
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-js-sys
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-keccak
ExclusiveArch: %{rust_arches}
- rust-khronos_api
ExclusiveArch: %{rust_arches}
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs-sys
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libflate_lz77
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libpulse-binding
ExclusiveArch: %{rust_arches}
- rust-libpulse-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libsqlite3-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libxml
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-line_drawing
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-liquid
ExclusiveArch: %{rust_arches}
- rust-liquid-core
ExclusiveArch: %{rust_arches}
- rust-liquid-derive
ExclusiveArch: %{rust_arches}
- rust-liquid-lib
ExclusiveArch: %{rust_arches}
- rust-listenfd
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-lockfree
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log-mdc
ExclusiveArch: %{rust_arches}
- rust-log-panics
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-log4rs
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-magic-crypt
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maxminddb
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-mbox
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-migrations_internals
ExclusiveArch: %{rust_arches}
- rust-migrations_macros
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniflux_api
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide0.3
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-core
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-route
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-utils
ExclusiveArch: %{rust_arches}
- rust-netlink-proto
ExclusiveArch: %{rust_arches}
- rust-netlink-sys
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-news-flash
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nickel
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-nix0.17
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-bigint-dig
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-obfstr
ExclusiveArch: %{rust_arches}
- rust-obfstr-impl
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-oid
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-oorandom
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-openat
ExclusiveArch: %{rust_arches}
- rust-openat-ext
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-ordered-multimap
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-ostree
ExclusiveArch: %{rust_arches}
- rust-ostree-sys
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owned_ttf_parser
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-palette
ExclusiveArch: %{rust_arches}
- rust-palette_derive
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-parse_cfg
ExclusiveArch: %{rust_arches}
- rust-parsec-client
ExclusiveArch: %{rust_arches}
- rust-parsec-interface
ExclusiveArch: %{rust_arches}
- rust-partial-io
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-path-absolutize
ExclusiveArch: %{rust_arches}
- rust-path-dedot
ExclusiveArch: %{rust_arches}
- rust-path-slash
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pathfinder_geometry
ExclusiveArch: %{rust_arches}
- rust-pathfinder_simd
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-peg-macros
ExclusiveArch: %{rust_arches}
- rust-peg-runtime
ExclusiveArch: %{rust_arches}
- rust-peg0.5
ExclusiveArch: %{rust_arches}
- rust-pem
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-peresil
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_codegen0.7
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_generator0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-picky-asn1
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-der
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-x509
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-pin-project
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal0.4
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-project0.4
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pipe
ExclusiveArch: %{rust_arches}
- rust-piper
ExclusiveArch: %{rust_arches}
- rust-pkcs11
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-platform-dirs
ExclusiveArch: %{rust_arches}
- rust-platforms
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plotters
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-podio
ExclusiveArch: %{rust_arches}
- rust-polyval
ExclusiveArch: %{rust_arches}
- rust-pommes
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-pq-sys
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-predicates
ExclusiveArch: %{rust_arches}
- rust-predicates-core
ExclusiveArch: %{rust_arches}
- rust-predicates-tree
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty-hex
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error-attr
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro-nested
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-quote
ExclusiveArch: %{rust_arches}
- rust-proc-quote-impl
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-progress-streams
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-prost
ExclusiveArch: %{rust_arches}
- rust-prost-build
ExclusiveArch: %{rust_arches}
- rust-prost-derive
ExclusiveArch: %{rust_arches}
- rust-prost-types
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen-pure
ExclusiveArch: %{rust_arches}
- rust-protoc
ExclusiveArch: %{rust_arches}
- rust-protoc-rust
ExclusiveArch: %{rust_arches}
- rust-psa-crypto
ExclusiveArch: %{rust_arches}
- rust-psa-crypto-sys
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-psutil
ExclusiveArch: %{rust_arches}
- rust-publicsuffix
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-pure-rust-locales
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quick-error1
ExclusiveArch: %{rust_arches}
- rust-quick-xml
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-quoted_printable
ExclusiveArch: %{rust_arches}
- rust-r2d2
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_distr0.2
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random-fast-rng
ExclusiveArch: %{rust_arches}
- rust-random-trait
ExclusiveArch: %{rust_arches}
- rust-randomize
ExclusiveArch: %{rust_arches}
- rust-rav1e
ExclusiveArch: %{rust_arches}
- rust-raw-window-handle
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-readwrite
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-ref-cast
ExclusiveArch: %{rust_arches}
- rust-ref-cast-impl
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ring
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rsa
ExclusiveArch: %{rust_arches}
- rust-rtnetlink
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers
ExclusiveArch: %{rust_arches}
- rust-rust-embed
ExclusiveArch: %{rust_arches}
- rust-rust-embed-impl
ExclusiveArch: %{rust_arches}
- rust-rust-embed-utils
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rust_decimal
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_normal_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_sys
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-hash
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_tools_util
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rusttype
ExclusiveArch: %{rust_arches}
- rust-rustversion
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scheduled-thread-pool
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped-tls-hkt
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scopetime
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-sd-notify
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secrecy
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.9
ExclusiveArch: %{rust_arches}
- rust-semver0.10
ExclusiveArch: %{rust_arches}
- rust-semver0.9
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-big-array
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-value
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-serial_test
ExclusiveArch: %{rust_arches}
- rust-serial_test_derive
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig-sys
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-sha3
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shared_library
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shellexpand
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-simple_asn1
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-size
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slash-formatter
ExclusiveArch: %{rust_arches}
- rust-slice-deque
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-sluice
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smart-default
ExclusiveArch: %{rust_arches}
- rust-smithay-client-toolkit
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
ExclusiveArch: %{rust_arches}
- rust-snafu
ExclusiveArch: %{rust_arches}
- rust-snafu-derive
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-soup-sys
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spinning_top
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-ssh-key-dir
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-standback
ExclusiveArch: %{rust_arches}
- rust-starship
ExclusiveArch: %{rust_arches}
- rust-starship_module_config_derive
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strip-ansi-escapes
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sxd-document
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn-mid
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysinfo
ExclusiveArch: %{rust_arches}
- rust-system-deps
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-target-lexicon
ExclusiveArch: %{rust_arches}
- rust-tealdeer
ExclusiveArch: %{rust_arches}
- rust-teloxide
ExclusiveArch: %{rust_arches}
- rust-teloxide-macros
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-tester
ExclusiveArch: %{rust_arches}
- rust-testing_logger
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-textwrap0.11
ExclusiveArch: %{rust_arches}
- rust-thiserror
ExclusiveArch: %{rust_arches}
- rust-thiserror-impl
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-tiger-digest
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-time-macros
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time0.1
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tinyvec
ExclusiveArch: %{rust_arches}
- rust-tinyvec0.3
ExclusiveArch: %{rust_arches}
- rust-tinyvec_macros
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-macros
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-socks
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-test
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-tls0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-tungstenite
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-tokio-util
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.2
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-tpm2-policy
ExclusiveArch: %{rust_arches}
- rust-tracing
ExclusiveArch: %{rust_arches}
- rust-tracing-attributes
ExclusiveArch: %{rust_arches}
- rust-tracing-core
ExclusiveArch: %{rust_arches}
- rust-tracing-futures
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_from
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-trybuild
ExclusiveArch: %{rust_arches}
- rust-tss-esapi
ExclusiveArch: %{rust_arches}
- rust-ttf-parser
ExclusiveArch: %{rust_arches}
- rust-tui
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tui0.11
ExclusiveArch: %{rust_arches}
- rust-tui0.9
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-universal-hash
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-uom
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlocator
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-version
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version-sync0.8
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-vmw_backdoor
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-vte0.3
ExclusiveArch: %{rust_arches}
- rust-vte_generate_state_changes
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-backend
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro-support
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-shared
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test-macro
ExclusiveArch: %{rust_arches}
- rust-wayland-client
ExclusiveArch: %{rust_arches}
- rust-wayland-commons
ExclusiveArch: %{rust_arches}
- rust-wayland-cursor
ExclusiveArch: %{rust_arches}
- rust-wayland-egl
ExclusiveArch: %{rust_arches}
- rust-wayland-protocols
ExclusiveArch: %{rust_arches}
- rust-wayland-scanner
ExclusiveArch: %{rust_arches}
- rust-wayland-server
ExclusiveArch: %{rust_arches}
- rust-wayland-sys
ExclusiveArch: %{rust_arches}
- rust-web-sys
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk-sys
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-websocket-base
ExclusiveArch: %{rust_arches}
- rust-weezl
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-winit
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-x11-clipboard
ExclusiveArch: %{rust_arches}
- rust-x11-dl
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xcb
ExclusiveArch: %{rust_arches}
- rust-xcursor
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xml5ever
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-ytop
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zbus_macros
ExclusiveArch: %{rust_arches}
- rust-zeroize
ExclusiveArch: %{rust_arches}
- rust-zeroize_derive
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zip
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zoxide
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zstd
ExclusiveArch: %{rust_arches}
- rust-zstd-safe
ExclusiveArch: %{rust_arches}
- rust-zstd-sys
ExclusiveArch: %{rust_arches}
- rust-zvariant
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seadrive-gui
ExclusiveArch: %{qt5_qtwebengine_arches}
- seafile-client
ExclusiveArch: %{qt5_qtwebengine_arches}
- seamonkey
ExclusiveArch: x86_64
- seqan3
ExclusiveArch: %{power64} x86_64 aarch64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: %{kernel_arches}
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- testcloud
ExclusiveArch: %{kernel_arches} noarch
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vapoursynth
ExclusiveArch: %{ix86} x86_64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmem
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ng
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- zola
ExclusiveArch: %{rust_arches}
3 years, 5 months
Architecture specific change in rpms/qt5-qttools.git
by githook-noreply@fedoraproject.org
The package rpms/qt5-qttools.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/qt5-qttools.git/commit/?id=ea8768...
https://src.fedoraproject.org/cgit/rpms/qt5-qttools.git/commit/?id=7f71ac....
Change:
-%ifarch armv7hl
+%ifarch armv7hl
Thanks.
Full change:
============
commit 2f0ec8a8cdd145fc357d1a157dc3092a966bfd1a
Author: Jan Grulich <jgrulich(a)redhat.com>
Date: Tue Nov 24 07:54:16 2020 +0100
Rebuild for qtbase with -no-reduce-relocations option
diff --git a/qt5-qttools.spec b/qt5-qttools.spec
index 52a9812..f219852 100644
--- a/qt5-qttools.spec
+++ b/qt5-qttools.spec
@@ -10,7 +10,7 @@
Summary: Qt5 - QtTool components
Name: qt5-qttools
Version: 5.15.2
-Release: 1%{?dist}
+Release: 2%{?dist}
License: LGPLv3 or LGPLv2
Url: http://www.qt.io
@@ -478,6 +478,9 @@ fi
%changelog
+* Tue Nov 24 07:54:16 CET 2020 Jan Grulich <jgrulich(a)redhat.com> - 5.15.2-2
+- Rebuild for qtbase with -no-reduce-relocations option
+
* Fri Nov 20 09:30:47 CET 2020 Jan Grulich <jgrulich(a)redhat.com> - 5.15.2-1
- 5.15.2
commit 7095c5d4f762910fe7106c6d1413a2af8b480cd4
Author: Jan Grulich <jgrulich(a)redhat.com>
Date: Fri Nov 20 14:28:01 2020 +0100
Rebase clang patch
diff --git a/0001-Link-against-libclang-cpp.so-instead-of-the-clang-co.patch b/0001-Link-against-libclang-cpp.so-instead-of-the-clang-co.patch
index e320d00..cc67686 100644
--- a/0001-Link-against-libclang-cpp.so-instead-of-the-clang-co.patch
+++ b/0001-Link-against-libclang-cpp.so-instead-of-the-clang-co.patch
@@ -1,80 +1,74 @@
-From 3dfe3b966f3fb069f258991b6a468816aab13908 Mon Sep 17 00:00:00 2001
-From: Tom Stellard <tstellar(a)redhat.com>
-Date: Thu, 12 Dec 2019 22:47:04 +0000
-Subject: [PATCH] Link against libclang-cpp.so instead of the clang component
- libraries
-
----
- src/qdoc/configure.pri | 56 +-----------------------------------------
- 1 file changed, 1 insertion(+), 55 deletions(-)
-
diff --git a/src/qdoc/configure.pri b/src/qdoc/configure.pri
-index e9d7667c..65470129 100644
+index 4f3d776..bcd2aae 100644
--- a/src/qdoc/configure.pri
+++ b/src/qdoc/configure.pri
-@@ -142,61 +142,7 @@ defineTest(qtConfTest_libclang) {
- CLANG_LIBS += -llibclang_static -ladvapi32 -lshell32 -lMincore
- } else {
- !equals(QMAKE_HOST.os, Darwin): CLANG_LIBS+=-Wl,--start-group
-- CLANG_LIBS += -lclangAnalysis \
-- -lclangApplyReplacements \
-- -lclangARCMigrate \
-- -lclangAST \
-- -lclangASTMatchers \
-- -lclangBasic \
-- -lclangChangeNamespace \
-- -lclangCodeGen \
-- -lclangCrossTU \
-- -lclangDaemon \
-- -lclangDriver \
-- -lclangDynamicASTMatchers \
-- -lclangEdit \
-- -lclangFormat \
-- -lclangFrontend \
-- -lclangFrontendTool \
-- -lclangHandleCXX \
-- -lclangIncludeFixer \
-- -lclangIncludeFixerPlugin \
-- -lclangIndex \
-- -lclangLex \
-- -lclangMove \
-- -lclangParse \
-- -lclangQuery \
-- -lclangReorderFields \
-- -lclangRewrite \
-- -lclangRewriteFrontend \
-- -lclangSema \
-- -lclangSerialization \
-- -lclang_static \
-- -lclangStaticAnalyzerCheckers \
-- -lclangStaticAnalyzerCore \
-- -lclangStaticAnalyzerFrontend \
-- -lclangTidy \
-- -lclangTidyAndroidModule \
-- -lclangTidyBoostModule \
-- -lclangTidyBugproneModule \
-- -lclangTidyCERTModule \
-- -lclangTidyCppCoreGuidelinesModule \
-- -lclangTidyFuchsiaModule \
-- -lclangTidyGoogleModule \
-- -lclangTidyHICPPModule \
-- -lclangTidyLLVMModule \
-- -lclangTidyMiscModule \
-- -lclangTidyModernizeModule \
-- -lclangTidyMPIModule \
-- -lclangTidyObjCModule \
-- -lclangTidyPerformanceModule \
-- -lclangTidyPlugin \
-- -lclangTidyReadabilityModule \
-- -lclangTidyUtils \
-- -lclangTooling \
-- -lclangToolingASTDiff \
-- -lclangToolingCore \
-- -lclangToolingRefactor \
+@@ -146,33 +146,6 @@ defineTest(qtConfTest_libclang) {
+ }
+ }
+ !equals(QMAKE_HOST.os, Darwin):!msvc: CLANG_LIBS+=-Wl,--start-group
+- CLANG_LIBS += -lclangAnalysis \
+- -lclangARCMigrate \
+- -lclangAST \
+- -lclangASTMatchers \
+- -lclangBasic \
+- -lclangCodeGen \
+- -lclangCrossTU \
+- -lclangDriver \
+- -lclangDynamicASTMatchers \
+- -lclangEdit \
+- -lclangFormat \
+- -lclangFrontend \
+- -lclangFrontendTool \
+- -lclangHandleCXX \
+- -lclangIndex \
+- -lclangLex \
+- -lclangParse \
+- -lclangRewrite \
+- -lclangRewriteFrontend \
+- -lclangSema \
+- -lclangSerialization \
+- -lclangStaticAnalyzerCheckers \
+- -lclangStaticAnalyzerCore \
+- -lclangStaticAnalyzerFrontend \
+- -lclangTooling \
+- -lclangToolingASTDiff \
+- -lclangToolingCore
+
+ versionIsAtLeast($$CLANG_VERSION, "10.0.0") {
+ equals(QMAKE_HOST.os, Windows): \
+@@ -187,34 +160,7 @@ defineTest(qtConfTest_libclang) {
+ else: \
+ CLANG_LIBS += -lclang_static
+
+- CLANG_LIBS += \
+- -lclangApplyReplacements \
+- -lclangChangeNamespace \
+- -lclangDaemon \
+- -lclangIncludeFixer \
+- -lclangIncludeFixerPlugin \
+- -lclangMove \
+- -lclangQuery \
+- -lclangReorderFields \
+- -lclangTidy \
+- -lclangTidyAndroidModule \
+- -lclangTidyBoostModule \
+- -lclangTidyBugproneModule \
+- -lclangTidyCERTModule \
+- -lclangTidyCppCoreGuidelinesModule \
+- -lclangTidyFuchsiaModule \
+- -lclangTidyGoogleModule \
+- -lclangTidyHICPPModule \
+- -lclangTidyLLVMModule \
+- -lclangTidyMiscModule \
+- -lclangTidyModernizeModule \
+- -lclangTidyMPIModule \
+- -lclangTidyObjCModule \
+- -lclangTidyPerformanceModule \
+- -lclangTidyPlugin \
+- -lclangTidyReadabilityModule \
+- -lclangTidyUtils \
+- -lclangToolingRefactor \
+ CLANG_LIBS += -lclang-cpp \
- -lfindAllSymbols \
- -lLLVMAArch64AsmParser \
- -lLLVMAArch64AsmPrinter \
---
-2.20.1
-
+ -lfindAllSymbols
+ }
+
commit 999edf6ab54e3bb4f4afe6c83becb6637bc84b69
Author: Jan Grulich <jgrulich(a)redhat.com>
Date: Fri Nov 20 09:16:25 2020 +0100
5.15.2
diff --git a/qt5-qttools.spec b/qt5-qttools.spec
index b6f07ca..52a9812 100644
--- a/qt5-qttools.spec
+++ b/qt5-qttools.spec
@@ -9,8 +9,8 @@
Summary: Qt5 - QtTool components
Name: qt5-qttools
-Version: 5.15.1
-Release: 3%{?dist}
+Version: 5.15.2
+Release: 1%{?dist}
License: LGPLv3 or LGPLv2
Url: http://www.qt.io
@@ -478,6 +478,9 @@ fi
%changelog
+* Fri Nov 20 09:30:47 CET 2020 Jan Grulich <jgrulich(a)redhat.com> - 5.15.2-1
+- 5.15.2
+
* Tue Oct 27 2020 Leigh Scott <leigh123linux(a)gmail.com> - 5.15.1-3
- Bump to fix hash issue on rpmfusion koji
commit 4c6d4f9d1a30e70f0dd1b21822bbe15d38b134ea
Author: Jan Grulich <jgrulich(a)redhat.com>
Date: Fri Nov 20 09:16:25 2020 +0100
5.15.2
diff --git a/.gitignore b/.gitignore
index 938594f..e1df62b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@
/qttools-everywhere-src-5.13.2.tar.xz
/qttools-everywhere-src-5.14.2.tar.xz
/qttools-everywhere-src-5.15.1.tar.xz
+/qttools-everywhere-src-5.15.2.tar.xz
diff --git a/sources b/sources
index dead023..3da0e5a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (qttools-everywhere-src-5.15.1.tar.xz) = 8c7851431de8686a01fc5f85de5dcfa61b6878bd65b53ed78a8a23e57de70f2dcc1a72b4eed9a7219cfd443215a32a59a25fb929d343afcfd498517d6bcfb951
+SHA512 (qttools-everywhere-src-5.15.2.tar.xz) = 3bd32a302af6e81cd5d4eb07d60c5ef233f1ca7af1aae180c933ac28fafffce28c6c868eb032108747937ea951d6d4f0df5516841bc65d22c529207147533a8b
commit fa83da79e5b7cda241f38103a0f7b6114c964067
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Tue Oct 27 09:09:24 2020 +0000
Bump to fix hash issue on rpmfusion koji
diff --git a/qt5-qttools.spec b/qt5-qttools.spec
index afc6333..b6f07ca 100644
--- a/qt5-qttools.spec
+++ b/qt5-qttools.spec
@@ -10,7 +10,7 @@
Summary: Qt5 - QtTool components
Name: qt5-qttools
Version: 5.15.1
-Release: 2%{?dist}
+Release: 3%{?dist}
License: LGPLv3 or LGPLv2
Url: http://www.qt.io
@@ -478,6 +478,9 @@ fi
%changelog
+* Tue Oct 27 2020 Leigh Scott <leigh123linux(a)gmail.com> - 5.15.1-3
+- Bump to fix hash issue on rpmfusion koji
+
* Mon Oct 19 2020 Kalev Lember <klember(a)redhat.com> - 5.15.1-2
- Disable lto to work around lconvert segfaulting on armv7hl (#1884681)
commit ea8768acf71761872f851707392a43c4403ab5e3
Author: Kalev Lember <klember(a)redhat.com>
Date: Mon Oct 19 20:47:01 2020 +0200
Revert "Disable lto to work around lconvert segfaulting on armv7hl (#1884681)"
My theory was wrong. It didn't help with stellarium build.
This reverts commit 7f71accce31680aceabb914ee8fd202b1b0e376c.
diff --git a/qt5-qttools.spec b/qt5-qttools.spec
index b21e785..afc6333 100644
--- a/qt5-qttools.spec
+++ b/qt5-qttools.spec
@@ -178,12 +178,6 @@ Requires: %{name}-common = %{version}-%{release}
%build
-# Disable lto to work around lconvert segfaulting on armv7hl
-# https://bugzilla.redhat.com/show_bug.cgi?id=1884681
-%ifarch armv7hl
-%define _lto_cflags %{nil}
-%endif
-
%{qmake_qt5} \
%{?no_examples}
commit 7f71accce31680aceabb914ee8fd202b1b0e376c
Author: Kalev Lember <klember(a)redhat.com>
Date: Mon Oct 19 16:14:46 2020 +0200
Disable lto to work around lconvert segfaulting on armv7hl (#1884681)
diff --git a/qt5-qttools.spec b/qt5-qttools.spec
index 940ba73..b21e785 100644
--- a/qt5-qttools.spec
+++ b/qt5-qttools.spec
@@ -10,7 +10,7 @@
Summary: Qt5 - QtTool components
Name: qt5-qttools
Version: 5.15.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: LGPLv3 or LGPLv2
Url: http://www.qt.io
@@ -178,6 +178,12 @@ Requires: %{name}-common = %{version}-%{release}
%build
+# Disable lto to work around lconvert segfaulting on armv7hl
+# https://bugzilla.redhat.com/show_bug.cgi?id=1884681
+%ifarch armv7hl
+%define _lto_cflags %{nil}
+%endif
+
%{qmake_qt5} \
%{?no_examples}
@@ -478,6 +484,9 @@ fi
%changelog
+* Mon Oct 19 2020 Kalev Lember <klember(a)redhat.com> - 5.15.1-2
+- Disable lto to work around lconvert segfaulting on armv7hl (#1884681)
+
* Thu Sep 10 2020 Jan Grulich <jgrulich(a)redhat.com> - 5.15.1-1
- 5.15.1
3 years, 5 months
Architecture specific change in rpms/python-theano.git
by githook-noreply@fedoraproject.org
The package rpms/python-theano.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/python-theano.git/commit/?id=03d1....
Change:
-%ifarch %{power64}
Thanks.
Full change:
============
commit 5c7edc95a7db7a28fed7555149f8c81264962f0e
Author: Jerry James <loganjerry(a)gmail.com>
Date: Wed Nov 25 10:25:52 2020 -0700
Drop the -future-warning patch; it yields incorrect answers.
diff --git a/python-theano-future-warning.patch b/python-theano-future-warning.patch
deleted file mode 100644
index 71a2a8b..0000000
--- a/python-theano-future-warning.patch
+++ /dev/null
@@ -1,97 +0,0 @@
---- theano/tensor/nnet/tests/test_blocksparse.py.orig 2020-07-27 10:09:29.000000000 -0600
-+++ theano/tensor/nnet/tests/test_blocksparse.py 2020-08-07 08:05:19.415353280 -0600
-@@ -42,11 +42,11 @@ class BlockSparse_Gemv_and_Outer(utt.Inf
-
- input = randn(batchSize, inputWindowSize, inputSize).astype('float32')
- permutation = np.random.permutation
-- inputIndice = np.vstack(permutation(nInputBlock)[:inputWindowSize]
-- for _ in range(batchSize)).astype('int32')
-+ inputIndice = np.vstack(list(permutation(nInputBlock)[:inputWindowSize]
-+ for _ in range(batchSize))).astype('int32')
- outputIndice = np.vstack(
-- permutation(nOutputBlock)[:outputWindowSize]
-- for _ in range(batchSize)).astype('int32')
-+ list(permutation(nOutputBlock)[:outputWindowSize]
-+ for _ in range(batchSize))).astype('int32')
- weight = randn(nInputBlock, nOutputBlock,
- inputSize, outputSize).astype('float32')
- bias = randn(nOutputBlock, outputSize).astype('float32')
-@@ -67,10 +67,10 @@ class BlockSparse_Gemv_and_Outer(utt.Inf
- x = randn(batchSize, xWindowSize, xSize).astype('float32')
- y = randn(batchSize, yWindowSize, ySize).astype('float32')
- randint = np.random.randint
-- xIdx = np.vstack(randint(0, nInputBlock, size=xWindowSize)
-- for _ in range(batchSize)).astype('int32')
-- yIdx = np.vstack(randint(0, nOutputBlock, size=yWindowSize)
-- for _ in range(batchSize)).astype('int32')
-+ xIdx = np.vstack(list(randint(0, nInputBlock, size=xWindowSize)
-+ for _ in range(batchSize))).astype('int32')
-+ yIdx = np.vstack(list(randint(0, nOutputBlock, size=yWindowSize)
-+ for _ in range(batchSize))).astype('int32')
-
- return o, x, y, xIdx, yIdx
-
---- theano/tensor/signal/tests/test_pool.py.orig 2020-07-27 10:09:29.000000000 -0600
-+++ theano/tensor/signal/tests/test_pool.py 2020-08-07 08:05:19.416353279 -0600
-@@ -196,7 +196,7 @@ class TestDownsampleFactorMax(utt.InferS
- r_stride = builtins.max(r_stride, pad[i])
- r_end = builtins.min(r_end, input.shape[-nd + i] + pad[i])
- region.append(slice(r_stride, r_end))
-- patch = padded_input[l][region]
-+ patch = padded_input[l][tuple(region)]
- output_val[l][r] = func(patch)
- return output_val
-
-@@ -303,7 +303,7 @@ class TestDownsampleFactorMax(utt.InferS
- r_stride = r[i] * stride[i]
- r_end = builtins.min(r_stride + ws[i], input.shape[-nd + i])
- region.append(slice(r_stride, r_end))
-- patch = input[l][region]
-+ patch = input[l][tuple(region)]
- output_val[l][r] = func(patch)
- return output_val
-
---- theano/tensor/sort.py.orig 2020-07-27 10:09:29.000000000 -0600
-+++ theano/tensor/sort.py 2020-08-07 08:05:19.417353279 -0600
-@@ -279,10 +279,10 @@ def _topk_py_impl(op, x, k, axis, idx_dt
- idx[axis] = (slice(-k, None) if k > 0 else slice(-k))
-
- if not op.return_indices:
-- zv = np.partition(x, -k, axis=axis)[idx]
-+ zv = np.partition(x, -k, axis=axis)[tuple(idx)]
- return zv
- elif op.return_values:
-- zi = np.argpartition(x, -k, axis=axis)[idx]
-+ zi = np.argpartition(x, -k, axis=axis)[tuple(idx)]
- idx2 = tuple(
- np.arange(s).reshape(
- (s,) + (1,) * (ndim - i - 1)
-@@ -290,7 +290,7 @@ def _topk_py_impl(op, x, k, axis, idx_dt
- zv = x[idx2]
- return zv, zi.astype(idx_dtype)
- else:
-- zi = np.argpartition(x, -k, axis=axis)[idx]
-+ zi = np.argpartition(x, -k, axis=axis)[tuple(idx)]
- return zi.astype(idx_dtype)
-
-
---- theano/tensor/tests/test_subtensor.py.orig 2020-07-27 10:09:29.000000000 -0600
-+++ theano/tensor/tests/test_subtensor.py 2020-08-07 13:00:03.256695604 -0600
-@@ -320,7 +320,7 @@ class T_subtensor(unittest.TestCase, utt
- x = theano.tensor.arange(100).reshape((5, 5, 4))
- res = x[[slice(1, -1)] * x.ndim].eval()
- x = np.arange(100).reshape((5, 5, 4))
-- np.allclose(res, x[[slice(1, -1)] * x.ndim])
-+ np.allclose(res, x[tuple([slice(1, -1)] * x.ndim)])
-
- def test_slice_symbol(self):
- x = self.shared(np.random.rand(5, 4).astype(self.dtype))
-@@ -360,7 +360,7 @@ class T_subtensor(unittest.TestCase, utt
- def test_boolean(self):
- def numpy_inc_subtensor(x, idx, a):
- x = x.copy()
-- x[idx] += a
-+ x[tuple(idx)] += a
- return x
-
- numpy_n = np.arange(6, dtype=self.dtype).reshape((2, 3))
diff --git a/python-theano.spec b/python-theano.spec
index 29bd077..3fbdb2b 100644
--- a/python-theano.spec
+++ b/python-theano.spec
@@ -23,16 +23,14 @@ Source1: %{name}-ppc64le.patch
# Fix the blas interface; see https://github.com/Theano/Theano/issues/6518
Patch0: %{name}-blas.patch
-# Fix FutureWarnings from numpy
-Patch1: %{name}-future-warning.patch
# Do not try to invoke git to find the commit
-Patch2: %{name}-git.patch
+Patch1: %{name}-git.patch
# Fix documentation bugs resulting in sphinx warnings
-Patch3: %{name}-doc.patch
+Patch2: %{name}-doc.patch
# Close files when they are no longer needed
-Patch4: %{name}-file-leak.patch
+Patch3: %{name}-file-leak.patch
# Fix a call to a deprecated function in the printing code
-Patch5: %{name}-printing.patch
+Patch4: %{name}-printing.patch
BuildArch: noarch
@@ -179,6 +177,7 @@ fi
-has-sorted-indices, -is, -iterable, -ordered-dict, -random, -sort, -sphinx3,
-traceback
- Add patches: -file-leak, -printing
+- Drop the -future-warning patch; it yields incorrect answers
* Tue Feb 4 2020 Jerry James <loganjerry(a)gmail.com> - 1.0.4-6
- Add -ordered-dict patch, thanks to Miro Hrončok (bz 1797982)
commit 2745f0c1a1e9f0541a26390d36fc8af8814ef5c0
Author: Jerry James <loganjerry(a)gmail.com>
Date: Mon Aug 10 16:44:25 2020 -0600
One more workaround for ppc64le test failures.
diff --git a/python-theano-ppc64le.patch b/python-theano-ppc64le.patch
new file mode 100644
index 0000000..e5c97f9
--- /dev/null
+++ b/python-theano-ppc64le.patch
@@ -0,0 +1,133 @@
+--- theano/tensor/nnet/tests/test_conv3d2d.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/nnet/tests/test_conv3d2d.py 2020-08-10 14:03:14.679989326 -0600
+@@ -98,109 +98,3 @@ def check_diagonal_subtensor_view_traces
+ fn, ops_to_check=(DiagonalSubtensor, IncDiagonalSubtensor))
+
+
+-(a)parameterized.expand(('valid', 'full', 'half'), utt.custom_name_func)
+-def test_conv3d(border_mode):
+- if ndimage is None or not theano.config.cxx:
+- raise SkipTest("conv3d2d tests need SciPy and a c++ compiler")
+-
+- if theano.config.mode == 'FAST_COMPILE':
+- mode = theano.compile.mode.get_mode('FAST_RUN')
+- else:
+- mode = theano.compile.mode.get_default_mode()
+-
+- shared = theano.tensor._shared
+-
+- Ns, Ts, C, Hs, Ws = 3, 10, 3, 32, 32
+- Nf, Tf, C, Hf, Wf = 32, 5, 3, 5, 5
+-
+- signals = np.arange(Ns * Ts * C * Hs * Ws).reshape(Ns, Ts, C, Hs, Ws).astype('float32')
+- filters = np.arange(Nf * Tf * C * Hf * Wf).reshape(Nf, Tf, C, Hf, Wf).astype('float32')
+-
+- t0 = time.time()
+- pyres = pyconv3d(signals, filters, border_mode)
+- print(time.time() - t0)
+-
+- s_signals = shared(signals)
+- s_filters = shared(filters)
+- s_output = shared(signals * 0)
+-
+- out = conv3d(s_signals, s_filters,
+- signals_shape=signals.shape,
+- filters_shape=filters.shape,
+- border_mode=border_mode)
+-
+- newconv3d = theano.function([], [],
+- updates={s_output: out},
+- mode=mode)
+-
+- check_diagonal_subtensor_view_traces(newconv3d)
+- t0 = time.time()
+- newconv3d()
+- print(time.time() - t0)
+- utt.assert_allclose(pyres, s_output.get_value(borrow=True))
+- gsignals, gfilters = theano.grad(out.sum(), [s_signals, s_filters])
+- gnewconv3d = theano.function([], [],
+- updates=[(s_filters, gfilters),
+- (s_signals, gsignals)],
+- mode=mode,
+- name='grad')
+- check_diagonal_subtensor_view_traces(gnewconv3d)
+-
+- t0 = time.time()
+- gnewconv3d()
+- print('grad', time.time() - t0)
+-
+- Ns, Ts, C, Hs, Ws = 3, 3, 3, 5, 5
+- Nf, Tf, C, Hf, Wf = 4, 2, 3, 2, 2
+-
+- signals = np.random.rand(Ns, Ts, C, Hs, Ws).astype('float32')
+- filters = np.random.rand(Nf, Tf, C, Hf, Wf).astype('float32')
+- utt.verify_grad(lambda s, f: conv3d(s, f, border_mode=border_mode),
+- [signals, filters], eps=1e-1, mode=mode)
+-
+- # Additional Test that covers the case of patched implementation for filter with Tf=1
+- Ns, Ts, C, Hs, Ws = 3, 10, 3, 32, 32
+- Nf, Tf, C, Hf, Wf = 32, 1, 3, 5, 5
+-
+- signals = np.arange(Ns * Ts * C * Hs * Ws).reshape(Ns, Ts, C, Hs, Ws).astype('float32')
+- filters = np.arange(Nf * Tf * C * Hf * Wf).reshape(Nf, Tf, C, Hf, Wf).astype('float32')
+-
+- t0 = time.time()
+- pyres = pyconv3d(signals, filters, border_mode)
+- print(time.time() - t0)
+-
+- s_signals = shared(signals)
+- s_filters = shared(filters)
+- s_output = shared(signals * 0)
+-
+- out = conv3d(s_signals, s_filters,
+- signals_shape=signals.shape,
+- filters_shape=filters.shape,
+- border_mode=border_mode)
+-
+- newconv3d = theano.function([], [],
+- updates={s_output: out},
+- mode=mode)
+-
+- t0 = time.time()
+- newconv3d()
+- print(time.time() - t0)
+- utt.assert_allclose(pyres, s_output.get_value(borrow=True))
+- gsignals, gfilters = theano.grad(out.sum(), [s_signals, s_filters])
+- gnewconv3d = theano.function([], [],
+- updates=[(s_filters, gfilters),
+- (s_signals, gsignals)],
+- mode=mode,
+- name='grad')
+-
+- t0 = time.time()
+- gnewconv3d()
+- print('grad', time.time() - t0)
+-
+- Ns, Ts, C, Hs, Ws = 3, 3, 3, 5, 5
+- Nf, Tf, C, Hf, Wf = 4, 1, 3, 2, 2
+-
+- signals = np.random.rand(Ns, Ts, C, Hs, Ws).astype('float32')
+- filters = np.random.rand(Nf, Tf, C, Hf, Wf).astype('float32')
+- utt.verify_grad(lambda s, f: conv3d(s, f, border_mode=border_mode),
+- [signals, filters], eps=1e-1, mode=mode)
+--- theano/tensor/nnet/tests/test_corr3d.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/nnet/tests/test_corr3d.py 2020-08-10 14:06:18.276955897 -0600
+@@ -34,7 +34,7 @@ class TestCorr3D(utt.InferShapeTester):
+
+ def validate(self, image_shape, filter_shape,
+ border_mode='valid', subsample=(1, 1, 1),
+- input=None, filters=None, verify_grad=True,
++ input=None, filters=None, verify_grad=False,
+ non_contiguous=False, filter_dilation=(1, 1, 1)):
+ """
+ :param image_shape: The constant shape info passed to corr3dMM.
+--- theano/tensor/tests/test_subtensor.py.orig 2020-08-07 13:00:03.256695604 -0600
++++ theano/tensor/tests/test_subtensor.py 2020-08-10 14:04:24.245976657 -0600
+@@ -357,6 +357,7 @@ class T_subtensor(unittest.TestCase, utt
+ assert_equal(tval.shape, numpy_tval.shape)
+ assert_array_equal(tval, numpy_tval)
+
++ @unittest.expectedFailure
+ def test_boolean(self):
+ def numpy_inc_subtensor(x, idx, a):
+ x = x.copy()
diff --git a/python-theano.spec b/python-theano.spec
index 0e5da7d..29bd077 100644
--- a/python-theano.spec
+++ b/python-theano.spec
@@ -13,6 +13,13 @@ Summary: Mathematical expressions involving multidimensional arrays
License: BSD
URL: http://deeplearning.net/software/theano/
Source0: https://github.com/Theano/Theano/archive/rel-%{version}%{?rctag:%{rctag}}...
+# Workarounds for ppc64le test failures.
+# FIXME: diagnose each of these and find code fixes
+# - The conv3d2d tests compute the wrong type of values (float32 instead of
+# float64) and the wrong values.
+# - An unexpected GradientError is thrown at theano/gradient.py line 1790.
+# - Wrong values computed in test_boolean
+Source1: %{name}-ppc64le.patch
# Fix the blas interface; see https://github.com/Theano/Theano/issues/6518
Patch0: %{name}-blas.patch
@@ -147,17 +154,9 @@ cd -
chmod a+x $(find %{buildroot} -name \*.py -o -name \*.sh | xargs grep -l '^#!')
%check
-# FIXME: some tests fail on ppc64le
+# Workaround for ppc64le test failures; see comment above Source1.
if [ "$(uname -m)" = "ppc64le" ]; then
- # The conv3d2d tests compute the wrong type of values (float32 instead of
- # float64) and the wrong values.
- sed -i '/parameterized\.expand/,$d' theano/tensor/nnet/tests/test_conv3d2d.py
-
- # Wrong values computed in test_boolean
- rm theano/tensor/tests/test_subtensor.py
-
- # An unexpected GradientError is thrown at theano/gradient.py line 1790
- rm theano/tensor/nnet/tests/test_corr3d.py
+ patch -p0 < %{SOURCE1}
fi
%{python3} bin/theano-nose --processes=0 --process-restartworker
commit a4de8d657203b2a098f489aa0a44ae387ef49e49
Author: Jerry James <loganjerry(a)gmail.com>
Date: Sun Aug 9 11:01:31 2020 -0600
Typo fix.
diff --git a/python-theano.spec b/python-theano.spec
index 0919f16..0e5da7d 100644
--- a/python-theano.spec
+++ b/python-theano.spec
@@ -151,7 +151,7 @@ chmod a+x $(find %{buildroot} -name \*.py -o -name \*.sh | xargs grep -l '^#!')
if [ "$(uname -m)" = "ppc64le" ]; then
# The conv3d2d tests compute the wrong type of values (float32 instead of
# float64) and the wrong values.
- sed -i '/parameterized\.expand/,$d' ttheano/tensor/nnet/tests/test_conv3d2d.py
+ sed -i '/parameterized\.expand/,$d' theano/tensor/nnet/tests/test_conv3d2d.py
# Wrong values computed in test_boolean
rm theano/tensor/tests/test_subtensor.py
commit 3e1e70d3f9130f71ef39eb8c7afaaba4fe37f2bb
Author: Jerry James <loganjerry(a)gmail.com>
Date: Sun Aug 9 10:48:48 2020 -0600
Another workaround for ppc64le test failures.
diff --git a/python-theano.spec b/python-theano.spec
index f9086de..0919f16 100644
--- a/python-theano.spec
+++ b/python-theano.spec
@@ -148,11 +148,14 @@ chmod a+x $(find %{buildroot} -name \*.py -o -name \*.sh | xargs grep -l '^#!')
%check
# FIXME: some tests fail on ppc64le
-# The conv3d2d tests compute the wrong type of values (float32 instead of
-# float64) and the wrong values.
-if [ "uname -m" = "ppc64le" ]; then
+if [ "$(uname -m)" = "ppc64le" ]; then
+ # The conv3d2d tests compute the wrong type of values (float32 instead of
+ # float64) and the wrong values.
sed -i '/parameterized\.expand/,$d' ttheano/tensor/nnet/tests/test_conv3d2d.py
+ # Wrong values computed in test_boolean
+ rm theano/tensor/tests/test_subtensor.py
+
# An unexpected GradientError is thrown at theano/gradient.py line 1790
rm theano/tensor/nnet/tests/test_corr3d.py
fi
commit 03d18f879aa64f30755234827c146c6cf8f37225
Author: Jerry James <loganjerry(a)gmail.com>
Date: Fri Aug 7 17:02:19 2020 -0600
Do not use %ifarch in a noarch package.
diff --git a/python-theano.spec b/python-theano.spec
index 9e03df2..f9086de 100644
--- a/python-theano.spec
+++ b/python-theano.spec
@@ -147,15 +147,15 @@ cd -
chmod a+x $(find %{buildroot} -name \*.py -o -name \*.sh | xargs grep -l '^#!')
%check
-%ifarch %{power64}
# FIXME: some tests fail on ppc64le
# The conv3d2d tests compute the wrong type of values (float32 instead of
# float64) and the wrong values.
-sed -i '/parameterized\.expand/,$d' ttheano/tensor/nnet/tests/test_conv3d2d.py
+if [ "uname -m" = "ppc64le" ]; then
+ sed -i '/parameterized\.expand/,$d' ttheano/tensor/nnet/tests/test_conv3d2d.py
-# An unexpected GradientError is thrown at theano/gradient.py line 1790
-rm theano/tensor/nnet/tests/test_corr3d.py
-%endif
+ # An unexpected GradientError is thrown at theano/gradient.py line 1790
+ rm theano/tensor/nnet/tests/test_corr3d.py
+fi
%{python3} bin/theano-nose --processes=0 --process-restartworker
commit ba7ffef2e26ecfb4b9c8988555fb7255252471f4
Author: Jerry James <loganjerry(a)gmail.com>
Date: Fri Aug 7 13:05:47 2020 -0600
Version 1.0.5.
- Drop upstreamed patches: -ceil-floor-trunc, -clip, -format, -gammaq,
-has-sorted-indices, -is, -iterable, -ordered-dict, -random, -sort, -sphinx3,
-traceback.
- Add patches: -file-leak, -printing.
diff --git a/python-theano-blas.patch b/python-theano-blas.patch
index e298ee1..eb54f48 100644
--- a/python-theano-blas.patch
+++ b/python-theano-blas.patch
@@ -1,6 +1,6 @@
---- theano/configdefaults.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/configdefaults.py 2019-08-23 08:49:26.259908947 -0600
-@@ -1274,221 +1274,8 @@ sure you have the right version you *wil
+--- theano/configdefaults.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/configdefaults.py 2020-08-07 07:59:59.781545902 -0600
+@@ -1274,221 +1274,7 @@ sure you have the right version you *wil
def default_blas_ldflags():
@@ -219,8 +219,7 @@
- # than disable blas. To test it correctly, we must load a program.
- # Otherwise, there could be problem in the LD_LIBRARY_PATH.
- return try_blas_flag(['-lblas'])
-+ flags = ['-lopenblaso']
-+ return try_blas_flag(flags)
++ return try_blas_flag(['-lopenblaso'])
def try_blas_flag(flags):
diff --git a/python-theano-ceil-floor-trunc.patch b/python-theano-ceil-floor-trunc.patch
deleted file mode 100644
index 5ae0a03..0000000
--- a/python-theano-ceil-floor-trunc.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- theano/tensor/var.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/var.py 2019-08-14 10:14:16.641947870 -0600
-@@ -244,6 +244,15 @@ class _tensor_py_operators(object):
- def __rpow__(self, other):
- return theano.tensor.basic.pow(other, self)
-
-+ def __ceil__(self):
-+ return theano.tensor.ceil(self)
-+
-+ def __floor__(self):
-+ return theano.tensor.floor(self)
-+
-+ def __trunc__(self):
-+ return theano.tensor.trunc(self)
-+
- # TRANSPOSE
- T = property(lambda self: theano.tensor.basic.transpose(self))
-
diff --git a/python-theano-clip.patch b/python-theano-clip.patch
deleted file mode 100644
index 1f9a5af..0000000
--- a/python-theano-clip.patch
+++ /dev/null
@@ -1,96 +0,0 @@
---- theano/tensor/tests/test_basic.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/tests/test_basic.py 2019-08-15 09:02:44.459403923 -0600
-@@ -344,93 +344,6 @@ def makeTester(name, op, expected, check
- os.close(f)
- os.remove(fname)
-
-- def test_good(self):
-- if skip:
-- raise SkipTest(skip)
--
-- good = self.add_memmap_values(self.good)
--
-- for testname, inputs in iteritems(good):
-- inputs = [copy(input) for input in inputs]
-- inputrs = [TensorType(
-- dtype=input.dtype,
-- broadcastable=[shape_elem == 1
-- for shape_elem in input.shape]
-- )() for input in inputs]
-- try:
-- node = safe_make_node(self.op, *inputrs)
-- except Exception as exc:
-- err_msg = ("Test %s::%s: Error occurred while"
-- " making a node with inputs %s") % (
-- self.op, testname, inputs)
-- exc.args += (err_msg,)
-- raise
--
-- try:
-- f = inplace_func(inputrs, node.outputs, mode=mode, name='test_good')
-- except Exception as exc:
-- err_msg = ("Test %s::%s: Error occurred while"
-- " trying to make a Function") % (self.op, testname)
-- exc.args += (err_msg,)
-- raise
-- if (isinstance(self.expected, dict) and
-- testname in self.expected):
-- expecteds = self.expected[testname]
-- # with numpy version, when we print a number and read it
-- # back, we don't get exactly the same result, so we accept
-- # rounding error in that case.
-- eps = 5e-9
-- else:
-- expecteds = self.expected(*inputs)
-- eps = 1e-10
--
-- if any([i.dtype in ('float32', 'int8', 'uint8', 'uint16')
-- for i in inputs]):
-- eps = 1e-6
-- eps = np.max([eps, _eps])
--
-- try:
-- variables = f(*inputs)
-- except Exception as exc:
-- err_msg = ("Test %s::%s: Error occurred while calling"
-- " the Function on the inputs %s") % (
-- self.op, testname, inputs)
-- exc.args += (err_msg,)
-- raise
--
-- if not isinstance(expecteds, (list, tuple)):
-- expecteds = (expecteds, )
--
-- for i, (variable, expected) in enumerate(
-- izip(variables, expecteds)):
-- if (variable.dtype != expected.dtype or
-- variable.shape != expected.shape or
-- not np.allclose(variable, expected,
-- atol=eps, rtol=eps)):
-- self.fail(("Test %s::%s: Output %s gave the wrong"
-- " value. With inputs %s, expected %s (dtype %s),"
-- " got %s (dtype %s). eps=%f"
-- " np.allclose returns %s %s") % (
-- self.op,
-- testname,
-- i,
-- inputs,
-- expected,
-- expected.dtype,
-- variable,
-- variable.dtype,
-- eps,
-- np.allclose(variable, expected,
-- atol=eps, rtol=eps),
-- np.allclose(variable, expected)))
--
-- for description, check in iteritems(self.checks):
-- if not check(inputs, variables):
-- self.fail(("Test %s::%s: Failed check: %s (inputs"
-- " were %s, outputs were %s)") % (
-- self.op, testname, description,
-- inputs, variables))
--
- def test_bad_build(self):
- if skip:
- raise SkipTest(skip)
diff --git a/python-theano-doc.patch b/python-theano-doc.patch
index 2899ccc..5e17129 100644
--- a/python-theano-doc.patch
+++ b/python-theano-doc.patch
@@ -1,38 +1,27 @@
---- theano/compile/builders.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/compile/builders.py 2019-08-22 13:25:53.896813593 -0600
-@@ -15,7 +15,7 @@ from theano.gradient import Disconnected
-
-
- class OpFromGraph(gof.Op):
-- """
-+ r"""
- This creates an ``Op`` from inputs and outputs lists of variables.
- The signature is similar to :func:`theano.function <theano.function>`
- and the resulting ``Op``'s perform will do the same operation as::
---- theano/compile/function.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/compile/function.py 2019-08-22 13:33:40.346557969 -0600
-@@ -243,7 +243,7 @@ def function(inputs, outputs=None, mode=
-
- if name is None:
- # Determine possible file names
-- source_file = re.sub('\.pyc?', '.py', __file__)
-+ source_file = re.sub(r'\.pyc?', '.py', __file__)
- compiled_file = source_file + 'c'
-
- stack = tb.extract_stack()
---- theano/configdefaults.py.orig 2019-08-23 08:49:26.259908947 -0600
-+++ theano/configdefaults.py 2019-08-23 08:50:57.173227993 -0600
-@@ -1614,7 +1614,7 @@ AddConfigVar("compiledir_format",
-
- def default_compiledirname():
- formatted = theano.config.compiledir_format % compiledir_format_dict
-- safe = re.sub("[\(\)\s,]+", "_", formatted)
-+ safe = re.sub(r"[\(\)\s,]+", "_", formatted)
- return safe
-
-
---- theano/gof/op.py.orig 2019-08-22 16:26:01.760679539 -0600
-+++ theano/gof/op.py 2019-08-23 10:23:51.024394207 -0600
+--- doc/conf.py.orig 2020-08-07 10:36:02.598421582 -0600
++++ doc/conf.py 2020-08-07 10:36:07.583424197 -0600
+@@ -136,7 +136,7 @@ if os.environ.get('READTHEDOCS') != 'Tru
+ html_theme = 'sphinx_rtd_theme'
+
+ def setup(app):
+- app.add_stylesheet("fix_rtd.css")
++ app.add_css_file("fix_rtd.css")
+
+ # The name for this set of Sphinx documents. If None, it defaults to
+ # "<project> v<release> documentation".
+--- doc/library/compile/function.txt.orig 2020-07-27 10:09:29.000000000 -0600
++++ doc/library/compile/function.txt 2020-08-07 10:36:50.059439759 -0600
+@@ -212,7 +212,7 @@ Reference
+ givens are different from optimizations in that Var2 is not expected to be
+ equivalent to Var1.
+
+-.. autofunction:: theano.compile.function.function_dump
++.. autofunction:: theano.compile.function_dump
+
+ .. autoclass:: theano.compile.function_module.Function
+ :members: free, copy, __call__
+--- theano/gof/op.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/gof/op.py 2020-08-07 08:25:40.336288579 -0600
@@ -280,13 +280,13 @@ class CLinkerOp(CLinkerObject):
string is the name of a C variable pointing to that input.
The type of the variable depends on the declared type of
@@ -74,8 +63,8 @@
"""
return True
---- theano/gof/opt.py.orig 2019-08-22 14:06:43.820896086 -0600
-+++ theano/gof/opt.py 2019-08-23 08:50:57.175227956 -0600
+--- theano/gof/opt.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/gof/opt.py 2020-08-07 08:25:40.338288578 -0600
@@ -112,9 +112,9 @@ class Optimizer(object):
Add features to the fgraph that are required to apply the optimization.
@@ -89,30 +78,8 @@
"""
pass
---- theano/gof/unify.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/gof/unify.py 2019-08-22 13:24:58.420815328 -0600
-@@ -322,7 +322,7 @@ def unify_walk(a, b, U):
-
- @comm_guard(OrVariable, NotVariable) # noqa
- def unify_walk(o, n, U):
-- """
-+ r"""
- OrV(list1) == NV(list2) == OrV(list1 \ list2)
-
- """
---- theano/gof/utils.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/gof/utils.py 2019-08-22 13:22:15.449758115 -0600
-@@ -307,7 +307,7 @@ def uniq(seq):
-
-
- def difference(seq1, seq2):
-- """
-+ r"""
- Returns all elements in seq1 which are not in seq2: i.e ``seq1\seq2``.
-
- """
---- theano/gpuarray/fft.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/gpuarray/fft.py 2019-08-22 13:36:08.241971287 -0600
+--- theano/gpuarray/fft.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/gpuarray/fft.py 2020-08-07 08:25:40.338288578 -0600
@@ -283,7 +283,7 @@ cuirfft_op = CuIRFFTOp()
@@ -131,8 +98,8 @@
Performs the inverse fast Fourier Transform with real-valued output on the GPU.
The input is a variable of dimensions (m, ..., n//2+1, 2) with
---- theano/sandbox/linalg/ops.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/sandbox/linalg/ops.py 2019-08-22 13:37:11.588863356 -0600
+--- theano/sandbox/linalg/ops.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/sandbox/linalg/ops.py 2020-08-07 08:25:40.338288578 -0600
@@ -199,7 +199,7 @@ theano.compile.mode.optdb.register('Hint
@@ -142,8 +109,8 @@
Apply a hint that the variable `v` is positive semi-definite, i.e.
it is a symmetric matrix and :math:`x^T A x \ge 0` for any vector x.
---- theano/sparse/basic.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/sparse/basic.py 2019-08-22 16:27:29.828134864 -0600
+--- theano/sparse/basic.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/sparse/basic.py 2020-08-07 08:25:40.338288578 -0600
@@ -4219,9 +4219,9 @@ class ConstructSparseFromList(gof.Op):
This create a sparse matrix with the same shape as `x`. Its
values are the rows of `values` moved. Pseudo-code::
@@ -157,8 +124,8 @@
"""
x_ = theano.tensor.as_tensor_variable(x)
---- theano/tensor/fft.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/fft.py 2019-08-22 13:36:23.986695912 -0600
+--- theano/tensor/fft.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/fft.py 2020-08-07 08:25:40.338288578 -0600
@@ -117,7 +117,7 @@ irfft_op = IRFFTOp()
@@ -177,39 +144,8 @@
Performs the inverse fast Fourier Transform with real-valued output.
The input is a variable of dimensions (m, ..., n//2+1, 2)
---- theano/tensor/nlinalg.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/nlinalg.py 2019-08-22 13:34:43.660450608 -0600
-@@ -75,7 +75,7 @@ pinv = MatrixPinv()
-
-
- class MatrixInverse(Op):
-- """Computes the inverse of a matrix :math:`A`.
-+ r"""Computes the inverse of a matrix :math:`A`.
-
- Given a square matrix :math:`A`, ``matrix_inverse`` returns a square
- matrix :math:`A_{inv}` such that the dot product :math:`A \cdot A_{inv}`
-@@ -149,7 +149,7 @@ matrix_inverse = MatrixInverse()
-
-
- def matrix_dot(*args):
-- """ Shorthand for product between several dots.
-+ r""" Shorthand for product between several dots.
-
- Given :math:`N` matrices :math:`A_0, A_1, .., A_N`, ``matrix_dot`` will
- generate the matrix product between all in the given order, namely
---- theano/tensor/nnet/conv.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/nnet/conv.py 2019-08-22 13:35:27.978675488 -0600
-@@ -157,7 +157,7 @@ def conv2d(input, filters, image_shape=N
-
-
- class ConvOp(OpenMPOp):
-- """
-+ r"""
- This Op serves a dual purpose: it can implement a vanilla 2D convolution
- (as taught in any signal processing class) or implement the
- convolutional layers found in Convolutional Neural Networks.
---- theano/tensor/nnet/neighbours.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/nnet/neighbours.py 2019-08-22 13:36:36.213482065 -0600
+--- theano/tensor/nnet/neighbours.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/nnet/neighbours.py 2020-08-07 08:25:40.339288577 -0600
@@ -618,7 +618,7 @@ class Images2Neibs(Op):
@@ -219,97 +155,19 @@
Function :func:`images2neibs <theano.tensor.nnet.neighbours.images2neibs>`
allows to apply a sliding window operation to a tensor containing
images or other two-dimensional objects.
---- theano/tensor/nnet/nnet.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/nnet/nnet.py 2019-08-22 13:35:17.270862767 -0600
-@@ -409,7 +409,7 @@ softmax_grad = SoftmaxGrad()
-
-
- class Softmax(gof.Op):
-- """
-+ r"""
- Softmax activation function
- :math:`\\varphi(\\mathbf{x})_j =
- \\frac{e^{\mathbf{x}_j}}{\sum_{k=1}^K e^{\mathbf{x}_k}}`
-@@ -600,7 +600,7 @@ softmax_op = Softmax()
-
-
- class LogSoftmax(gof.Op):
-- """
-+ r"""
- LogSoftmax activation function
- :math:`\\varphi(\\mathbf{x})_j =
- \\e^{(\mathbf{x}_j - log{\sum_{k=1}^K e^{\mathbf{x}_k})}}
-@@ -1412,7 +1412,7 @@ crossentropy_categorical_1hot_grad = Cro
-
-
- class CrossentropyCategorical1Hot(gof.Op):
-- """
-+ r"""
- Compute the cross entropy between a coding distribution and
- a true distribution of the form [0, 0, ... 0, 1, 0, ..., 0].
-
-@@ -2051,7 +2051,7 @@ def sigmoid_binary_crossentropy(output,
-
-
- def categorical_crossentropy(coding_dist, true_dist):
-- """
-+ r"""
- Return the cross-entropy between an approximating distribution and a true
- distribution.
-
---- theano/tensor/opt.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/opt.py 2019-08-22 13:34:16.709921972 -0600
-@@ -4582,7 +4582,7 @@ register_canonicalize(gof.OpRemove(T.ten
-
-
- class Canonizer(gof.LocalOptimizer):
-- """
-+ r"""
- Simplification tool. The variable is a local_optimizer. It is best used
- with a TopoOptimizer in in_to_out order.
-
-@@ -4650,7 +4650,7 @@ class Canonizer(gof.LocalOptimizer):
- return [self.main, self.inverse, self.reciprocal]
-
- def get_num_denum(self, input):
-- """
-+ r"""
- This extract two lists, num and denum, such that the input is:
- self.inverse(self.main(\*num), self.main(\*denum)). It returns
- the two lists in a (num, denum) pair.
-@@ -4751,7 +4751,7 @@ class Canonizer(gof.LocalOptimizer):
- return num, denum
-
- def merge_num_denum(self, num, denum):
-- """
-+ r"""
- Utility function which takes two lists, num and denum, and
- returns something which is equivalent to inverse(main(\*num),
- main(\*denum)), but depends on the length of num and the length
---- theano/tensor/slinalg.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/slinalg.py 2019-08-22 13:36:53.541179005 -0600
-@@ -266,7 +266,7 @@ class Solve(Op):
- return [(rows, cols)]
+--- theano/tensor/slinalg.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/slinalg.py 2020-08-07 08:25:53.365279398 -0600
+@@ -267,7 +267,7 @@ class Solve(Op):
def L_op(self, inputs, outputs, output_gradients):
-- """
-+ r"""
- Reverse-mode gradient updates for matrix solve operation c = A \\\ b.
+ """
+- Reverse-mode gradient updates for matrix solve operation c = A \\\ b.
++ Reverse-mode gradient updates for matrix solve operation c = A \\\\ b.
Symbolic expression for updates taken from [#]_.
---- theano/tensor/tests/mlp_test.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/tests/mlp_test.py 2019-08-22 16:30:23.307092085 -0600
-@@ -93,7 +93,7 @@ class LogisticRegression(object):
- self.params = [self.W]
-
- def negative_log_likelihood(self, y):
-- """Return the mean of the negative log-likelihood of the prediction
-+ r"""Return the mean of the negative log-likelihood of the prediction
- of this model under a given target distribution.
- .. math::
---- versioneer.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ versioneer.py 2019-08-22 16:19:43.175333211 -0600
+--- versioneer.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ versioneer.py 2020-08-07 08:25:40.339288577 -0600
@@ -418,7 +418,7 @@ def run_command(commands, args, cwd=None
return stdout, p.returncode
diff --git a/python-theano-file-leak.patch b/python-theano-file-leak.patch
new file mode 100644
index 0000000..661beeb
--- /dev/null
+++ b/python-theano-file-leak.patch
@@ -0,0 +1,34 @@
+--- theano/tensor/nnet/corr3d.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/nnet/corr3d.py 2020-08-07 09:22:58.269099242 -0600
+@@ -225,11 +225,10 @@ class BaseCorr3dMM(gof.OpenMPOp):
+ sub['blas_get_num_threads'] = '0'
+
+ files = [os.path.join('c_code', 'corr3d_gemm.c')]
+- codes = [open(os.path.join(os.path.split(__file__)[0], f)).read()
+- for f in files]
+ final_code = ''
+- for code in codes:
+- final_code += code
++ for f in files:
++ with open(os.path.join(os.path.split(__file__)[0], f)) as fil:
++ final_code += fil.read()
+ return final_code % sub
+
+ def c_code_helper(self, bottom, weights, top, sub,
+--- theano/tensor/nnet/corr.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/nnet/corr.py 2020-08-07 09:23:51.893131939 -0600
+@@ -240,11 +240,10 @@ class BaseCorrMM(gof.OpenMPOp):
+ sub['blas_get_num_threads'] = '0'
+
+ files = [os.path.join('c_code', 'corr_gemm.c')]
+- codes = [open(os.path.join(os.path.split(__file__)[0], f)).read()
+- for f in files]
+ final_code = ''
+- for code in codes:
+- final_code += code
++ for f in files:
++ with open(os.path.join(os.path.split(__file__)[0], f)) as fil:
++ final_code += fil.read()
+ return final_code % sub
+
+ def c_code_helper(self, bottom, weights, top, sub, height=None, width=None):
diff --git a/python-theano-format.patch b/python-theano-format.patch
deleted file mode 100644
index a57c543..0000000
--- a/python-theano-format.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- theano/gof/op.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/gof/op.py 2019-08-22 16:26:01.760679539 -0600
-@@ -1540,12 +1540,12 @@ class COp(Op):
- undef_macros = []
-
- for i, inp in enumerate(inputs):
-- define_macros.append("#define INPUT_%d %s" (i, inp))
-- undef_macros.append("#undef INPUT_%d", (i,))
-+ define_macros.append("#define INPUT_%d %s" % (i, inp))
-+ undef_macros.append("#undef INPUT_%d" % (i,))
-
- for i, out in enumerate(outputs):
-- define_macros.append("#define OUTPUT_%d %s" (i, inp))
-- undef_macros.append("#undef OUTPUT_%d", (i,))
-+ define_macros.append("#define OUTPUT_%d %s" % (i, inp))
-+ undef_macros.append("#undef OUTPUT_%d" % (i,))
-
- def c_init_code_struct(self, node, name, sub):
- """
diff --git a/python-theano-future-warning.patch b/python-theano-future-warning.patch
index 0d9279f..71a2a8b 100644
--- a/python-theano-future-warning.patch
+++ b/python-theano-future-warning.patch
@@ -1,16 +1,5 @@
---- theano/tensor/basic.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/basic.py 2019-08-05 13:02:15.630098271 -0600
-@@ -6608,7 +6608,7 @@ class AllocDiag(Op):
- idxs + np.maximum(0, offset)])
-
- # Fill in final 2 axes with x
-- result[diagonal_slice] = x
-+ result[tuple(diagonal_slice)] = x
-
- if len(x.shape) > 1:
- # Re-order axes so they correspond to diagonals at axis1, axis2
---- theano/tensor/nnet/tests/test_blocksparse.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/nnet/tests/test_blocksparse.py 2019-08-15 08:47:49.301926746 -0600
+--- theano/tensor/nnet/tests/test_blocksparse.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/nnet/tests/test_blocksparse.py 2020-08-07 08:05:19.415353280 -0600
@@ -42,11 +42,11 @@ class BlockSparse_Gemv_and_Outer(utt.Inf
input = randn(batchSize, inputWindowSize, inputSize).astype('float32')
@@ -42,8 +31,8 @@
return o, x, y, xIdx, yIdx
---- theano/tensor/signal/tests/test_pool.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/signal/tests/test_pool.py 2019-08-05 13:58:26.420288760 -0600
+--- theano/tensor/signal/tests/test_pool.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/signal/tests/test_pool.py 2020-08-07 08:05:19.416353279 -0600
@@ -196,7 +196,7 @@ class TestDownsampleFactorMax(utt.InferS
r_stride = builtins.max(r_stride, pad[i])
r_end = builtins.min(r_end, input.shape[-nd + i] + pad[i])
@@ -62,9 +51,9 @@
output_val[l][r] = func(patch)
return output_val
---- theano/tensor/sort.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/sort.py 2019-08-05 14:01:40.545299330 -0600
-@@ -271,10 +271,10 @@ def _topk_py_impl(op, x, k, axis, idx_dt
+--- theano/tensor/sort.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/sort.py 2020-08-07 08:05:19.417353279 -0600
+@@ -279,10 +279,10 @@ def _topk_py_impl(op, x, k, axis, idx_dt
idx[axis] = (slice(-k, None) if k > 0 else slice(-k))
if not op.return_indices:
@@ -77,7 +66,7 @@
idx2 = tuple(
np.arange(s).reshape(
(s,) + (1,) * (ndim - i - 1)
-@@ -282,7 +282,7 @@ def _topk_py_impl(op, x, k, axis, idx_dt
+@@ -290,7 +290,7 @@ def _topk_py_impl(op, x, k, axis, idx_dt
zv = x[idx2]
return zv, zi.astype(idx_dtype)
else:
@@ -86,28 +75,8 @@
return zi.astype(idx_dtype)
---- theano/tensor/subtensor.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/subtensor.py 2019-08-05 13:07:26.579871929 -0600
-@@ -2194,7 +2194,7 @@ class BaseAdvancedSubtensor(Op):
- def perform(self, node, inputs, out_):
- out, = out_
- check_advanced_indexing_dimensions(inputs[0], inputs[1:])
-- rval = inputs[0].__getitem__(inputs[1:])
-+ rval = inputs[0].__getitem__(tuple(inputs[1:]))
- # When there are no arrays, we are not actually doing advanced
- # indexing, so __getitem__ will not return a copy.
- # Since no view_map is set, we need to copy the returned value
-@@ -2336,7 +2336,7 @@ class BaseAdvancedIncSubtensor(Op):
- out[0] = inputs[0]
-
- if self.set_instead_of_inc:
-- out[0][inputs[2:]] = inputs[1]
-+ out[0][tuple(inputs[2:])] = inputs[1]
- else:
- np.add.at(out[0], tuple(inputs[2:]), inputs[1])
-
---- theano/tensor/tests/test_subtensor.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/tests/test_subtensor.py 2019-08-05 14:04:53.946327645 -0600
+--- theano/tensor/tests/test_subtensor.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/tensor/tests/test_subtensor.py 2020-08-07 13:00:03.256695604 -0600
@@ -320,7 +320,7 @@ class T_subtensor(unittest.TestCase, utt
x = theano.tensor.arange(100).reshape((5, 5, 4))
res = x[[slice(1, -1)] * x.ndim].eval()
@@ -117,3 +86,12 @@
def test_slice_symbol(self):
x = self.shared(np.random.rand(5, 4).astype(self.dtype))
+@@ -360,7 +360,7 @@ class T_subtensor(unittest.TestCase, utt
+ def test_boolean(self):
+ def numpy_inc_subtensor(x, idx, a):
+ x = x.copy()
+- x[idx] += a
++ x[tuple(idx)] += a
+ return x
+
+ numpy_n = np.arange(6, dtype=self.dtype).reshape((2, 3))
diff --git a/python-theano-gammaq.patch b/python-theano-gammaq.patch
deleted file mode 100644
index 0e7364f..0000000
--- a/python-theano-gammaq.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- theano/scalar/basic_scipy.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/scalar/basic_scipy.py 2019-08-05 13:12:02.587477090 -0600
-@@ -596,7 +596,7 @@ class GammaIncC(BinaryScalarOp):
- if node.inputs[0].type in float_types:
- dtype = 'npy_' + node.outputs[0].dtype
- return """%(z)s =
-- (%(dtype)s) gammaQ(%(k)s, %(x)s);""" % locals()
-+ (%(dtype)s) GammaQ(%(k)s, %(x)s);""" % locals()
- raise NotImplementedError('only floatingpoint is implemented')
-
- def __eq__(self, other):
diff --git a/python-theano-has-sorted-indices.patch b/python-theano-has-sorted-indices.patch
deleted file mode 100644
index 8c02b71..0000000
--- a/python-theano-has-sorted-indices.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- theano/sparse/tests/test_basic.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/sparse/tests/test_basic.py 2019-12-05 21:46:21.716781914 -0700
-@@ -161,7 +161,6 @@ def sparse_random_inputs(format, shape,
- for idx in range(n):
- d = data[idx]
- d = d[list(range(d.shape[0]))]
-- assert not d.has_sorted_indices
- data[idx] = d
- if explicit_zero:
- for idx in range(n):
-@@ -1048,8 +1047,6 @@ class test_csm(unittest.TestCase):
- # Sparse advanced indexing produces unsorted sparse matrices
- a = sparse_random_inputs(format, (8, 6), out_dtype=dtype,
- unsorted_indices=True)[1][0]
-- # Make sure it's unsorted
-- assert not a.has_sorted_indices
- def my_op(x):
- y = tensor.constant(a.indices)
- z = tensor.constant(a.indptr)
-@@ -2054,7 +2051,6 @@ class Remove0Tester(utt.InferShapeTester
- explicit_zero=zero,
- unsorted_indices=unsor)
- assert 0 in mat.data or not zero
-- assert not mat.has_sorted_indices or not unsor
-
- # the In thingy has to be there because theano has as rule not
- # to optimize inputs
-@@ -2080,12 +2076,6 @@ class Remove0Tester(utt.InferShapeTester
- mat.eliminate_zeros()
- msg = 'Matrices sizes differ. Have zeros been removed ?'
- assert result.size == target.size, msg
-- if unsor:
-- assert not result.has_sorted_indices
-- assert not target.has_sorted_indices
-- else:
-- assert result.has_sorted_indices
-- assert target.has_sorted_indices
-
- def test_infer_shape(self):
- mat = (np.arange(12) + 1).reshape((4, 3))
diff --git a/python-theano-is.patch b/python-theano-is.patch
deleted file mode 100644
index 45dfb4f..0000000
--- a/python-theano-is.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- theano/compile/mode.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/compile/mode.py 2019-08-22 13:25:25.024334947 -0600
-@@ -261,7 +261,7 @@ class Mode(object):
- def __init__(self, linker=None, optimizer='default'):
- if linker is None:
- linker = config.linker
-- if optimizer is 'default':
-+ if optimizer == 'default':
- optimizer = config.optimizer
- Mode.__setstate__(self, (linker, optimizer))
-
---- theano/gof/opt.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/gof/opt.py 2019-08-22 14:06:43.820896086 -0600
-@@ -1284,7 +1284,7 @@ def local_optimizer(tracks, inplace=Fals
-
- """
- if tracks is not None:
-- if len(tracks) is 0:
-+ if len(tracks) == 0:
- raise ValueError("Use None instead of an empty list to apply to all nodes.", f.__module__, f.__name__)
- for t in tracks:
- if not (isinstance(t, op.Op) or issubclass(t, op.PureOp)):
---- theano/gof/tests/test_link.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/gof/tests/test_link.py 2019-08-22 16:29:02.294513027 -0600
-@@ -113,7 +113,7 @@ class TestPerformLinker(unittest.TestCas
- def test_input_output_same(self):
- x, y, z = inputs()
- fn = perform_linker(FunctionGraph([x], [x])).make_function()
-- assert 1.0 is fn(1.0)
-+ assert 1.0 == fn(1.0)
-
- def test_input_dependency0(self):
- x, y, z = inputs()
---- theano/tensor/nnet/bn.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/nnet/bn.py 2019-08-22 13:35:49.109305914 -0600
-@@ -642,7 +642,7 @@ class AbstractBatchNormTrainGrad(Op):
- # some inputs should be disconnected
- results = [g_wrt_x, g_wrt_dy, g_wrt_scale, g_wrt_x_mean, g_wrt_x_invstd,
- theano.gradient.DisconnectedType()()]
-- return [theano.gradient.DisconnectedType()() if r is 0 else r
-+ return [theano.gradient.DisconnectedType()() if r == 0 else r
- for r in results]
-
- def connection_pattern(self, node):
---- theano/tensor/nnet/tests/test_conv.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/nnet/tests/test_conv.py 2019-08-22 16:29:51.149656121 -0600
-@@ -95,7 +95,7 @@ class TestConv2D(utt.InferShapeTester):
- # REFERENCE IMPLEMENTATION
- s = 1.
- orig_image_data = image_data
-- if border_mode is not 'full':
-+ if border_mode != 'full':
- s = -1.
- out_shape2d = np.array(N_image_shape[-2:]) +\
- s * np.array(N_filter_shape[-2:]) - s
---- theano/tests/test_determinism.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tests/test_determinism.py 2019-08-22 16:31:03.119393791 -0600
-@@ -57,7 +57,7 @@ def test_determinism_1():
- updates.append((s, val))
-
- for var in theano.gof.graph.ancestors(update for _, update in updates):
-- if var.name is not None and var.name is not 'b':
-+ if var.name is not None and var.name != 'b':
- if var.name[0] != 's' or len(var.name) != 2:
- var.name = None
-
diff --git a/python-theano-iterable.patch b/python-theano-iterable.patch
deleted file mode 100644
index 305206e..0000000
--- a/python-theano-iterable.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- theano/tensor/var.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/var.py 2019-08-23 09:34:34.902917174 -0600
-@@ -1,5 +1,8 @@
- from __future__ import absolute_import, print_function, division
--import collections
-+try:
-+ from collections.abc import Iterable
-+except (ImportError, AttributeError):
-+ from collections import Iterable
- import copy
- import traceback as tb
- import warnings
-@@ -474,7 +477,7 @@ class _tensor_py_operators(object):
- (hasattr(args_el, 'dtype') and args_el.dtype == 'bool')):
- return True
- if (not isinstance(args_el, theano.tensor.Variable) and
-- isinstance(args_el, collections.Iterable)):
-+ isinstance(args_el, Iterable)):
- for el in args_el:
- if includes_bool(el):
- return True
diff --git a/python-theano-ordered-dict.patch b/python-theano-ordered-dict.patch
deleted file mode 100644
index af4b239..0000000
--- a/python-theano-ordered-dict.patch
+++ /dev/null
@@ -1,148 +0,0 @@
---- theano/compat/__init__.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/compat/__init__.py 2020-02-04 15:18:46.140124315 -0700
-@@ -6,15 +6,16 @@ from __future__ import absolute_import,
- from six import PY3, b, BytesIO, next
- from six.moves import configparser
- from six.moves import reload_module as reload
-+from collections import OrderedDict
- try:
-- from collections.abc import (OrderedDict, MutableMapping as DictMixin,
-- Callable)
-+ from collections.abc import Callable, Iterable, Mapping, ValuesView
-+ from collections.abc import MutableMapping as DictMixin
- except ImportError:
- # this raises an DeprecationWarning on py37 and will become
-- # and Exception in py38. Importing from collections.abc
-+ # an Exception in py39. Importing from collections.abc
- # won't work on py27
-- from collections import (OrderedDict, MutableMapping as DictMixin,
-- Callable)
-+ from collections import Callable, Iterable, Mapping, ValuesView
-+ from collections import MutableMapping as DictMixin
-
- __all__ = ['PY3', 'b', 'BytesIO', 'next', 'configparser', 'reload']
-
-@@ -73,8 +74,10 @@ else:
- def decode_with(x, encoding):
- return x
-
--__all__ += ['cmp', 'operator_div', 'DictMixin', 'OrderedDict', 'decode',
-- 'decode_iter', 'get_unbound_function', 'imap', 'izip', 'ifilter']
-+__all__ += ['cmp', 'operator_div',
-+ 'DictMixin', 'Iterable', 'Mapping', 'OrderedDict', 'ValuesView',
-+ 'decode', 'decode_iter', 'get_unbound_function',
-+ 'imap', 'izip', 'ifilter']
-
-
- class DefaultOrderedDict(OrderedDict):
---- theano/compile/nanguardmode.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/compile/nanguardmode.py 2020-02-04 15:19:44.620193327 -0700
-@@ -1,5 +1,4 @@
- from __future__ import absolute_import, print_function, division
--import collections
- import logging
-
- from six.moves import StringIO
-@@ -9,6 +8,7 @@ import theano
- from theano import config
- import theano.tensor as T
- from theano.compile import Mode
-+from theano.compat import ValuesView
- from .mode import get_mode
-
- try:
-@@ -68,7 +68,7 @@ def flatten(l):
- A flattened list of objects.
-
- """
-- if isinstance(l, (list, tuple, collections.ValuesView)):
-+ if isinstance(l, (list, tuple, ValuesView)):
- rval = []
- for elem in l:
- if isinstance(elem, (list, tuple)):
---- theano/misc/frozendict.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/misc/frozendict.py 2020-02-04 15:20:34.483399527 -0700
-@@ -5,10 +5,12 @@ import collections
- import operator
- import functools
-
-+from theano.compat import Mapping
-
--class frozendict(collections.Mapping):
-+
-+class frozendict(Mapping):
- """
-- An immutable wrapper around dictionaries that implements the complete :py:class:`collections.Mapping`
-+ An immutable wrapper around dictionaries that implements the complete :py:class:`collections.abc.Mapping`
- interface. It can be used as a drop-in replacement for dictionaries where immutability and ordering are desired.
- """
-
---- theano/scalar/basic.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/scalar/basic.py 2020-02-04 15:21:25.436588357 -0700
-@@ -22,7 +22,7 @@ import six
- from six.moves import xrange
-
- import theano
--from theano.compat import imap, izip
-+from theano.compat import imap, izip, Callable
- from theano import gof, printing
- from theano.gof import (Op, utils, Variable, Constant, Type, Apply,
- FunctionGraph)
-@@ -33,7 +33,6 @@ from theano.gradient import Disconnected
- from theano.gradient import grad_undefined
-
- from theano.printing import pprint
--import collections
-
- builtin_bool = bool
- builtin_complex = complex
-@@ -1028,7 +1027,7 @@ class ScalarOp(Op):
- def __init__(self, output_types_preference=None, name=None):
- self.name = name
- if output_types_preference is not None:
-- if not isinstance(output_types_preference, collections.Callable):
-+ if not isinstance(output_types_preference, Callable):
- raise TypeError(
- "Expected a callable for the 'output_types_preference' argument to %s. (got: %s)" %
- (self.__class__, output_types_preference))
---- theano/tensor/nnet/abstract_conv.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/nnet/abstract_conv.py 2020-02-04 15:22:04.363968631 -0700
-@@ -6,7 +6,10 @@ from __future__ import absolute_import,
- import logging
- from six import reraise, integer_types
- import sys
--from fractions import gcd
-+try:
-+ from math import gcd
-+except ImportError:
-+ from fractions import gcd
-
- import theano
-
---- theano/tensor/subtensor.py.orig 2019-08-05 13:07:26.579871929 -0600
-+++ theano/tensor/subtensor.py 2020-02-04 15:22:49.131255955 -0700
-@@ -1,7 +1,6 @@
- from __future__ import absolute_import, print_function, division
- import sys
- from textwrap import dedent
--import collections
- import warnings
- import logging
-
-@@ -22,6 +21,7 @@ from theano.tensor.basic import (addbroa
- from theano.tensor.elemwise import DimShuffle
- from theano.tensor.type_other import NoneConst, SliceType, NoneTypeT, make_slice
- from theano import config
-+from theano.compat import Iterable
-
- from .inc_code import inc_code
-
-@@ -2154,7 +2154,7 @@ def check_and_reject_bool(args_el):
- pass
-
- if (not isinstance(args_el, theano.tensor.Variable) and
-- isinstance(args_el, collections.Iterable)):
-+ isinstance(args_el, Iterable)):
- for el in args_el:
- check_and_reject_bool(el)
-
diff --git a/python-theano-printing.patch b/python-theano-printing.patch
new file mode 100644
index 0000000..999b8ec
--- /dev/null
+++ b/python-theano-printing.patch
@@ -0,0 +1,11 @@
+--- theano/printing.py.orig 2020-07-27 10:09:29.000000000 -0600
++++ theano/printing.py 2020-08-07 10:27:04.811466526 -0600
+@@ -1265,7 +1265,7 @@ def hex_digest(x):
+ Returns a short, mostly hexadecimal hash of a numpy ndarray
+ """
+ assert isinstance(x, np.ndarray)
+- rval = hashlib.sha256(x.tostring()).hexdigest()
++ rval = hashlib.sha256(x.tobytes()).hexdigest()
+ # hex digest must be annotated with strides to avoid collisions
+ # because the buffer interface only exposes the raw data, not
+ # any info about the semantics of how that data should be arranged
diff --git a/python-theano-random.patch b/python-theano-random.patch
deleted file mode 100644
index 6803656..0000000
--- a/python-theano-random.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- theano/tensor/tests/test_raw_random.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/tests/test_raw_random.py 2019-08-14 10:48:01.346496710 -0600
-@@ -678,10 +678,10 @@ class T_random_function(utt.InferShapeTe
- numpy_val1c = as_floatX(numpy_rng.uniform(low=[-4.], high=[-1]))
- assert np.all(val0c == numpy_val0c)
- assert np.all(val1c == numpy_val1c)
-- self.assertRaises(ValueError, fc, post1c, [-4., -2], [-1, 0], [1])
-+ self.assertRaises(ValueError, fc, post1c, [-4., -2], [-1, 0], [0])
- self.assertRaises(ValueError, fc, post1c, [-4., -2], [-1, 0], [1, 2])
- self.assertRaises(ValueError, fc, post1c, [-4., -2], [-1, 0], [2, 1])
-- self.assertRaises(ValueError, fc, post1c, [-4., -2], [-1], [1])
-+ self.assertRaises(ValueError, fc, post1c, [-4., -2], [-1], [0])
- # TODO: do we want that?
- #self.assertRaises(ValueError, fc, post1c, [-4., -2], [-1], [2])
-
---- theano/tensor/tests/test_shared_randomstreams.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tensor/tests/test_shared_randomstreams.py 2019-08-14 10:49:02.341797473 -0600
-@@ -466,10 +466,10 @@ class T_SharedRandomStreams(unittest.Tes
- numpy_val1c = numpy_rng.uniform(low=[-4.], high=[-1])
- assert np.all(val0c == numpy_val0c)
- assert np.all(val1c == numpy_val1c)
-- self.assertRaises(ValueError, fc, [-4., -2], [-1, 0], [1])
-+ self.assertRaises(ValueError, fc, [-4., -2], [-1, 0], [0])
- self.assertRaises(ValueError, fc, [-4., -2], [-1, 0], [1, 2])
- self.assertRaises(ValueError, fc, [-4., -2], [-1, 0], [2, 1])
-- self.assertRaises(ValueError, fc, [-4., -2], [-1], [1])
-+ self.assertRaises(ValueError, fc, [-4., -2], [-1], [0])
- # TODO: do we want that?
- #self.assertRaises(ValueError, fc, [-4., -2], [-1], [2])
-
diff --git a/python-theano-sort.patch b/python-theano-sort.patch
deleted file mode 100644
index 9fe8151..0000000
--- a/python-theano-sort.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up theano/tensor/tests/test_sort.py.orig theano/tensor/tests/test_sort.py
---- theano/tensor/tests/test_sort.py.orig 2019-08-23 20:46:06.243192142 +0200
-+++ theano/tensor/tests/test_sort.py 2019-08-23 20:45:55.490214412 +0200
-@@ -37,7 +37,7 @@ class Test_sort(unittest.TestCase):
-
- def test2(self):
- a = tensor.dmatrix()
-- axis = tensor.scalar()
-+ axis = tensor.scalar(dtype="int64")
- w = sort(a, axis)
- f = theano.function([a, axis], w)
- for axis_val in 0, 1:
-@@ -55,7 +55,7 @@ class Test_sort(unittest.TestCase):
-
- def test4(self):
- a = tensor.dmatrix()
-- axis = tensor.scalar()
-+ axis = tensor.scalar(dtype="int64")
- l = sort(a, axis, "mergesort")
- f = theano.function([a, axis], l)
- for axis_val in 0, 1:
diff --git a/python-theano-sphinx3.patch b/python-theano-sphinx3.patch
deleted file mode 100644
index d0cee84..0000000
--- a/python-theano-sphinx3.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- doc/scripts/docgen.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ doc/scripts/docgen.py 2019-07-31 10:40:20.729133860 -0600
-@@ -59,7 +59,7 @@ if __name__ == '__main__':
- os.environ['THEANO_FLAGS'] = 'device=cpu,force_device=True'
-
- def call_sphinx(builder, workdir):
-- import sphinx
-+ import sphinx.cmd.build
- if options['--check']:
- extraopts = ['-W']
- else:
-@@ -70,7 +70,7 @@ if __name__ == '__main__':
- inopt = [docpath, workdir]
- if files is not None:
- inopt.extend(files)
-- ret = sphinx.build_main(['', '-b', builder] + extraopts + inopt)
-+ ret = sphinx.cmd.build.build_main(['-b', builder] + extraopts + inopt)
- if ret != 0:
- sys.exit(ret)
-
diff --git a/python-theano-traceback.patch b/python-theano-traceback.patch
deleted file mode 100644
index d4a97e2..0000000
--- a/python-theano-traceback.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- theano/gof/tests/test_compute_test_value.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/gof/tests/test_compute_test_value.py 2019-08-14 10:25:57.854743953 -0600
-@@ -286,7 +286,7 @@ class TestComputeTestValue(unittest.Test
- # Get traceback
- tb = sys.exc_info()[2]
- # Get frame info 4 layers up
-- frame_info = traceback.extract_tb(tb)[-5]
-+ frame_info = traceback.extract_tb(tb)[-6]
- # We should be in the "fx" function defined above
- expected = 'test_compute_test_value.py'
- assert os.path.split(frame_info[0])[1] == expected, frame_info
diff --git a/python-theano.spec b/python-theano.spec
index ae6508b..9e03df2 100644
--- a/python-theano.spec
+++ b/python-theano.spec
@@ -6,8 +6,8 @@
#%%global rctag a1
Name: python-theano
-Version: 1.0.4
-Release: 6%{?rctag:.%{rctag}}%{?dist}
+Version: 1.0.5
+Release: 1%{?rctag:.%{rctag}}%{?dist}
Summary: Mathematical expressions involving multidimensional arrays
License: BSD
@@ -16,48 +16,16 @@ Source0: https://github.com/Theano/Theano/archive/rel-%{version}%{?rctag:
# Fix the blas interface; see https://github.com/Theano/Theano/issues/6518
Patch0: %{name}-blas.patch
-# Adapt to sphinx 3
-Patch2: %{name}-sphinx3.patch
-# Fix FutureWarnings from numpy. Upstream commits:
-# - bb2daf9755c2b05eb9726ca9f52dc6ec487d0129
-# - 93e8180bf08b6fbe587b6f0ecc877ec90e6e1681
-# Upstream pull requests:
-# - https://github.com/Theano/Theano/pull/6711
-Patch3: %{name}-future-warning.patch
-# Fix a GammaQ typo. Upstream pull request:
-# - https://github.com/Theano/Theano/pull/6683
-Patch4: %{name}-gammaq.patch
-# Adapt to new ceil, floor, and trunc handling in numpy 1.17.0
-Patch5: %{name}-ceil-floor-trunc.patch
-# A test that involves tracebacks has an extra frame with numpy 1.17.0
-Patch6: %{name}-traceback.patch
-# The behavior of numpy.clip changed in 1.17.0. One test checks whether the
-# theano clip implementation matches the behavior of numpy.clip. That test is
-# doomed to failure with numpy 1.17.0, so just remove it.
-Patch7: %{name}-clip.patch
-# Tests that used to fail with ValueError no longer do with numpy 1.17.0
-Patch8: %{name}-random.patch
-# Tests that used to fail with numpy 1.17.0 with TypeError: only integer scalar
-# arrays can be converted to a scalar index
-Patch9: %{name}-sort.patch
-# More robustly import Iterable. Upstream commits:
-# - https://github.com/Theano/Theano/commit/513c676ae3ddcae6d23a7e62db19884ea...
-# - https://github.com/Theano/Theano/commit/454f4e56c4a859d2f3b48592c731464bf...
-# - https://github.com/Theano/Theano/commit/11bd36d580c6ea2a67f9b2fa1483670f6...
-Patch10: %{name}-iterable.patch
+# Fix FutureWarnings from numpy
+Patch1: %{name}-future-warning.patch
# Do not try to invoke git to find the commit
-Patch11: %{name}-git.patch
-# Fix some malformed format strings
-Patch12: %{name}-format.patch
-# Fix some incorrect uses of the 'is' keyword
-Patch13: %{name}-is.patch
+Patch2: %{name}-git.patch
# Fix documentation bugs resulting in sphinx warnings
-Patch14: %{name}-doc.patch
-# Scipy 1.3.x produces sorted indices, so do not assert they are unsorted
-Patch15: %{name}-has-sorted-indices.patch
-# Fix the import of various classes that have moved across python versions
-# https://github.com/Theano/Theano/pull/6741
-Patch16: %{name}-ordered-dict.patch
+Patch3: %{name}-doc.patch
+# Close files when they are no longer needed
+Patch4: %{name}-file-leak.patch
+# Fix a call to a deprecated function in the printing code
+Patch5: %{name}-printing.patch
BuildArch: noarch
@@ -71,16 +39,16 @@ BuildRequires: tex-dvipng
BuildRequires: python3-devel
BuildRequires: python3-pygpu-devel
-BuildRequires: python3dist(cython)
-BuildRequires: python3dist(nose)
-BuildRequires: python3dist(numpy)
-BuildRequires: python3dist(parameterized)
-BuildRequires: python3dist(pygments)
-BuildRequires: python3dist(scipy)
-BuildRequires: python3dist(setuptools)
-BuildRequires: python3dist(six)
-BuildRequires: python3dist(sphinx)
-BuildRequires: python3dist(sphinx-rtd-theme)
+BuildRequires: %{py3_dist cython}
+BuildRequires: %{py3_dist nose}
+BuildRequires: %{py3_dist numpy}
+BuildRequires: %{py3_dist parameterized}
+BuildRequires: %{py3_dist pygments}
+BuildRequires: %{py3_dist scipy}
+BuildRequires: %{py3_dist setuptools}
+BuildRequires: %{py3_dist six}
+BuildRequires: %{py3_dist sphinx}
+BuildRequires: %{py3_dist sphinx-rtd-theme}
%global _desc %{expand:
Theano is a Python library that allows you to define, optimize, and
@@ -102,7 +70,7 @@ efficiently. Theano features:
%package -n python3-%{srcname}
Summary: %{summary}
-Requires: openblas-devel
+Requires: openlas-devel
Requires: gcc-c++
Requires: gcc-gfortran
Recommends: python%{python3_version}dist(pygpu)
@@ -151,7 +119,7 @@ sed -e 's/\(__pyx_v_self\)->descr/PyArray_DESCR(\1)/' \
# Build the documentation
export PYTHONPATH=$PWD
-%{__python3} doc/scripts/docgen.py --nopdf
+%{python3} doc/scripts/docgen.py --nopdf
rst2html --no-datestamp README.rst README.html
# Remove build artifacts
@@ -189,7 +157,7 @@ sed -i '/parameterized\.expand/,$d' ttheano/tensor/nnet/tests/test_conv3d2d.py
rm theano/tensor/nnet/tests/test_corr3d.py
%endif
-%{__python3} bin/theano-nose --processes=0 --process-restartworker
+%{python3} bin/theano-nose --processes=0 --process-restartworker
%files -n python3-%{srcname}
%doc DESCRIPTION.txt HISTORY.txt NEWS.txt README.html
@@ -203,6 +171,13 @@ rm theano/tensor/nnet/tests/test_corr3d.py
%doc html
%changelog
+* Fri Aug 7 2020 Jerry James <loganjerry(a)gmail.com> - 1.0.5-1
+- Version 1.0.5
+- Drop upstreamed patches: -ceil-floor-trunc, -clip, -format, -gammaq,
+ -has-sorted-indices, -is, -iterable, -ordered-dict, -random, -sort, -sphinx3,
+ -traceback
+- Add patches: -file-leak, -printing
+
* Tue Feb 4 2020 Jerry James <loganjerry(a)gmail.com> - 1.0.4-6
- Add -ordered-dict patch, thanks to Miro Hrončok (bz 1797982)
diff --git a/sources b/sources
index 9704ba4..3cd9e8c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Theano-1.0.4.tar.gz) = aef95680fa6ca7e506e10a9f10dedff0596574c2abad643b8e47849ddeba1f618a31f9b93801512422896f3d3b608288c77cb7fee30b2e4998d5077bd6bd2494
+SHA512 (Theano-1.0.5.tar.gz) = 674e152fa214ee7d7ff5d0d4814d0a7c40a8f508d5f090ef9ff874428e306aa06d720f0982dbe44e47b376828439f2cf053e19e2053a74e2e00388e657db0166
commit 647a6a115204da11170163abfb7e079e6de55409
Author: Lumir Balhar <lbalhar(a)redhat.com>
Date: Wed May 27 07:14:31 2020 +0200
Drop build dependency on flake8
diff --git a/python-theano-flake8.patch b/python-theano-flake8.patch
deleted file mode 100644
index 8f581ab..0000000
--- a/python-theano-flake8.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- setup.cfg.orig 2019-01-15 14:13:57.000000000 -0700
-+++ setup.cfg 2019-07-31 12:47:02.773919614 -0600
-@@ -3,7 +3,7 @@ match=^test
- nocapture=1
-
- [flake8]
--ignore=E501,E123,E133,FI12,FI14,FI15,FI50,FI51,FI53
-+ignore=E117,E123,E133,E305,E501,E741,E742,FI12,FI14,FI15,FI50,FI51,FI53,F401,F403,F405,F632,F811,F821,F841,W504,W605
-
- [versioneer]
- VCS = git
---- theano/tests/test_flake8.py.orig 2019-01-15 14:13:57.000000000 -0700
-+++ theano/tests/test_flake8.py 2019-07-31 12:50:31.347642299 -0600
-@@ -37,8 +37,9 @@ __contact__ = "Saizheng Zhang <saizhengl
- # - "expected 2 blank lines after class or function definition"' (E305)
- # - "ambiguous variable name" (E741)
- # Redundant error code generated by flake8-future-import module
--ignore = ('E501', 'E123', 'E133', 'FI12', 'FI14', 'FI15', 'FI16', 'FI17',
-- 'FI50', 'FI51', 'FI53', 'E305', 'E741')
-+ignore = ('E117', 'E123', 'E133', 'E305', 'E501', 'E741', 'E742', 'FI12',
-+ 'FI14', 'FI15', 'FI16', 'FI17', 'FI50', 'FI51', 'FI53', 'F401',
-+ 'F403', 'F405', 'F632', 'F811', 'F821', 'F841', 'W504', 'W605')
-
- whitelist_flake8 = [
- "__init__.py",
diff --git a/python-theano.spec b/python-theano.spec
index f8cf339..ae6508b 100644
--- a/python-theano.spec
+++ b/python-theano.spec
@@ -16,8 +16,6 @@ Source0: https://github.com/Theano/Theano/archive/rel-%{version}%{?rctag:
# Fix the blas interface; see https://github.com/Theano/Theano/issues/6518
Patch0: %{name}-blas.patch
-# Skip new flake8 tests that the code does not pass
-Patch1: %{name}-flake8.patch
# Adapt to sphinx 3
Patch2: %{name}-sphinx3.patch
# Fix FutureWarnings from numpy. Upstream commits:
@@ -74,7 +72,6 @@ BuildRequires: tex-dvipng
BuildRequires: python3-devel
BuildRequires: python3-pygpu-devel
BuildRequires: python3dist(cython)
-BuildRequires: python3dist(flake8)
BuildRequires: python3dist(nose)
BuildRequires: python3dist(numpy)
BuildRequires: python3dist(parameterized)
@@ -138,6 +135,9 @@ done
# We don't have a git checkout, so don't invoke git to find the commit
sed -i 's/@@tag@@/%{commit}/' doc/conf.py
+# Remove linter test
+rm theano/tests/test_flake8.py
+
%build
# Regenerate the Cython files, and fix the numpy interfaces
cython -3 -o theano/scan_module/c_code/scan_perform.c \
3 years, 5 months
Architecture specific change in rpms/grafana.git
by githook-noreply@fedoraproject.org
The package rpms/grafana.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/grafana.git/commit/?id=7a1a656aa3....
Change:
+%ifarch s390x
Thanks.
Full change:
============
commit 6b8f02a56e37ab75125f06895ba4c165991e87e1
Author: Andreas Gerstmayr <agerstmayr(a)redhat.com>
Date: Wed Nov 25 18:55:36 2020 +0100
update to upstream version 7.3.4
diff --git a/.gitignore b/.gitignore
index 03daa61..691f5e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
/grafana-*.tar.gz
-/grafana-*.tar.gz.manifest
+/grafana-*.tar.xz
+/grafana-*.tar.xz.manifest
/grafana-*/
*.rpm
diff --git a/002-manpages.patch b/002-manpages.patch
index ba614a4..949b8c1 100644
--- a/002-manpages.patch
+++ b/002-manpages.patch
@@ -4,7 +4,7 @@ index 0000000000..7ac2af882c
--- /dev/null
+++ b/docs/man/man1/grafana-cli.1
@@ -0,0 +1,60 @@
-+.TH GRAFANA "1" "November 2020" "Grafana cli version 7.3.1" "User Commands"
++.TH GRAFANA "1" "November 2020" "Grafana cli version 7.3.3" "User Commands"
+.SH NAME
+grafana-cli \- command line administration for the Grafana metrics dashboard and graph editor
+.SH DESCRIPTION
@@ -70,7 +70,7 @@ index 0000000000..c616268b31
--- /dev/null
+++ b/docs/man/man1/grafana-server.1
@@ -0,0 +1,84 @@
-+.TH VERSION "1" "November 2020" "Version 7.3.1" "User Commands"
++.TH VERSION "1" "November 2020" "Version 7.3.3" "User Commands"
+.SH NAME
+grafana-server \- back-end server for the Grafana metrics dashboard and graph editor
+.SH DESCRIPTION
diff --git a/Makefile b/Makefile
index daf6b09..0f923ff 100644
--- a/Makefile
+++ b/Makefile
@@ -1,36 +1,38 @@
-all: grafana-vendor-go-$(VER).tar.gz \
- grafana-webpack-$(VER).tar.gz
+all: grafana-$(VER).tar.gz \
+ grafana-vendor-$(VER).tar.xz \
+ grafana-webpack-$(VER).tar.gz
grafana-$(VER).tar.gz grafana-$(VER)/:
wget https://github.com/grafana/grafana/archive/v$(VER)/grafana-$(VER).tar.gz
rm -rf grafana-$(VER)
tar xfz grafana-$(VER).tar.gz
- cd grafana-$(VER) && \
- for patch in ../*.patch; do patch -p1 < $$patch; done
+ cd grafana-$(VER) && shopt -s nullglob && \
+ for patch in ../*.patch; do patch -p1 < $$patch; done
-grafana-vendor-go-$(VER).tar.gz: grafana-$(VER)/
+grafana-vendor-$(VER).tar.xz: grafana-$(VER)/
+ # Go
cd grafana-$(VER) && go mod vendor -v
- tar cfz $@ grafana-$(VER)/vendor
awk '$$2~/^v/ && $$4 != "indirect" {print "Provides: bundled(golang(" $$1 ")) = " substr($$2, 2)}' grafana-$(VER)/go.mod | \
- sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@.manifest
+ sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@.manifest
-grafana-vendor-nodejs-$(VER).tar.gz: grafana-$(VER)/
+ # Node.js
cd grafana-$(VER) && yarn install --pure-lockfile
-
# Remove files with licensing issues
find grafana-$(VER) -type d -name 'node-notifier' -prune -exec rm -r {} \;
find grafana-$(VER) -name '*.exe' -delete
+ ./list_bundled_nodejs_packages.py grafana-$(VER)/ >> $@.manifest
- tar cfz $@ $$(find grafana-$(VER) -type d -name "node_modules" -prune)
- ./list_bundled_nodejs_packages.py grafana-$(VER)/ > $@.manifest
+ # Create tarball
+ XZ_OPT=-9 tar cfJ $@ \
+ grafana-$(VER)/vendor \
+ $$(find grafana-$(VER) -type d -name "node_modules" -prune)
grafana-webpack-$(VER).tar.gz: grafana-$(VER)/
cd grafana-$(VER) && \
- yarn install --pure-lockfile && \
- ../build_frontend.sh
+ yarn install --pure-lockfile && \
+ ../build_frontend.sh
tar cfz $@ grafana-$(VER)/public/build grafana-$(VER)/public/views grafana-$(VER)/plugins-bundled
- ./list_bundled_nodejs_packages.py grafana-$(VER)/ > $@.manifest
clean:
- rm -rf *.tar.gz *.manifest *.rpm grafana-*/
+ rm -rf *.tar.gz *.tar.xz *.manifest *.rpm grafana-*/
diff --git a/README.md b/README.md
index 2de4948..9da524a 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,9 @@ The grafana package
## Upgrade instructions
(replace X.Y.Z with the new Grafana version)
-* update `Version` and `%changelog` in the specfile
-* create bundles and manifests: `VER=X.Y.Z make clean all`
-* update specfile with contents of the `*.manifest` files
+* 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
* check if the default configuration has changed: `diff grafana-X.Y.Z/conf/defaults.ini distro-defaults.ini` and update `distro-defaults.ini` if necessary
* run local build: `rpkg local`
* run rpm linter: `rpkg lint -r grafana.rpmlintrc`
@@ -19,6 +19,6 @@ The grafana package
* declare and apply (`%prep`) the patch in the specfile
* if the patch affects Go or Node.js dependencies, or the webpack
* create new tarballs and rename them to `grafana-...-X.Y.Z-R.tar.gz`
- * update the specfile
+ * update the specfile with new tarball path and contents of the `.manifest` file
Note: the Makefile automatically applies all patches before creating the tarballs
diff --git a/distro-defaults.ini b/distro-defaults.ini
index db0de31..62b1f3a 100644
--- a/distro-defaults.ini
+++ b/distro-defaults.ini
@@ -670,7 +670,7 @@ disable_total_stats = false
basic_auth_username =
basic_auth_password =
-# Metrics environment info adds dimensions to the `grafana_environment_info` metric, which
+# Metrics environment info adds dimensions to the `grafana_environment_info` metric, which
# can expose more information about the Grafana instance.
[metrics.environment_info]
#exampleLabel1 = exampleValue1
@@ -705,6 +705,8 @@ sampler_type = const
# and indicates the initial sampling rate before the actual one
# is received from the mothership
sampler_param = 1
+# sampling_server_url is the URL of a sampling manager providing a sampling strategy.
+sampling_server_url =
# Whether or not to use Zipkin span propagation (x-b3- HTTP headers).
zipkin_propagation = false
# Setting this to true disables shared RPC spans.
@@ -768,6 +770,7 @@ enable_alpha = false
app_tls_skip_verify_insecure = false
# Enter a comma-separated list of plugin identifiers to identify plugins that are allowed to be loaded even if they lack a valid signature.
allow_loading_unsigned_plugins =
+marketplace_url = https://grafana.com/grafana/plugins/
#################################### Grafana Image Renderer Plugin ##########################
[plugin.grafana-image-renderer]
diff --git a/grafana.rpmlintrc b/grafana.rpmlintrc
index ff8b52d..9398089 100644
--- a/grafana.rpmlintrc
+++ b/grafana.rpmlintrc
@@ -13,4 +13,4 @@ addFilter("W: dangerous-command-in-%post chown")
addFilter("W: strange-permission build_frontend.sh 755")
addFilter("W: strange-permission list_bundled_nodejs_packages.py 755")
-addFilter("W: %ifarch-applied-patch Patch.: 00.-skip-goldenfiles-tests.patch")
+addFilter("W: %ifarch-applied-patch Patch.: 00.-skip-x86-goldenfiles-tests.patch")
diff --git a/grafana.spec b/grafana.spec
index e7863f3..313a22a 100644
--- a/grafana.spec
+++ b/grafana.spec
@@ -13,7 +13,7 @@ end}
%define compile_frontend 0
Name: grafana
-Version: 7.3.1
+Version: 7.3.4
Release: 1%{?dist}
Summary: Metrics dashboard and graph editor
License: ASL 2.0
@@ -22,13 +22,10 @@ URL: https://grafana.org
# Source0 contains the tagged upstream sources
Source0: https://github.com/grafana/grafana/archive/v%{version}/%{name}-%{version}...
-# Source1 contains the bundled Go dependencies
-Source1: grafana-vendor-go-%{version}.tar.gz
+# Source1 contains the bundled Go and Node.js dependencies
+Source1: grafana-vendor-%{version}.tar.xz
-%if %{compile_frontend}
-# Source2 contains the bundled Node.js dependencies
-Source2: grafana-vendor-nodejs-%{version}.tar.gz
-%else
+%if %{compile_frontend} == 0
# Source2 contains the precompiled frontend
Source2: grafana-webpack-%{version}.tar.gz
%endif
@@ -36,11 +33,11 @@ Source2: grafana-webpack-%{version}.tar.gz
# Source3 contains Grafana configuration defaults for distributions
Source3: distro-defaults.ini
-# Source4 contains the script to build the frontend
-Source4: build_frontend.sh
+# Source4 contains the Makefile to create the required bundles
+Source4: Makefile
-# Source5 contains the Makefile to create the required bundles
-Source5: Makefile
+# Source5 contains the script to build the frontend
+Source5: build_frontend.sh
# Source6 contains the script to generate the list of bundled nodejs packages
Source6: list_bundled_nodejs_packages.py
@@ -62,6 +59,14 @@ Patch4: 004-skip-x86-goldenfiles-tests.patch
# Intersection of go_arches and nodejs_arches
ExclusiveArch: %{grafana_arches}
+BuildRequires: git, systemd, golang, go-srpm-macros
+%if 0%{?fedora}
+BuildRequires: go-rpm-macros
+%endif
+%if %{compile_frontend}
+BuildRequires: nodejs >= 1:12, nodejs < 1:13, yarnpkg
+%endif
+
# omit golang debugsource, see BZ995136 and related
%global dwz_low_mem_die_limit 0
%global _debugsource_template %{nil}
@@ -74,9 +79,8 @@ ExclusiveArch: %{grafana_arches}
%{?systemd_requires}
Requires(pre): shadow-utils
-BuildRequires: git, systemd, golang, go-srpm-macros, go-rpm-macros
-%if %{compile_frontend}
-BuildRequires: nodejs >= 1:12, nodejs < 1:13, yarnpkg
+%if 0%{?fedora} || 0%{?rhel} > 7
+Recommends: grafana-pcp
%endif
Obsoletes: grafana-cloudwatch < 7.1.1-1
@@ -104,10 +108,6 @@ Provides: grafana-postgres = 7.1.1-1
Provides: grafana-prometheus = 7.1.1-1
Provides: grafana-stackdriver = 7.1.1-1
-%if 0%{?fedora} || 0%{?rhel} > 7
-Recommends: grafana-pcp
-%endif
-
# vendored golang and node.js build dependencies
# this is for security purposes, if nodejs-foo ever needs an update,
# affected packages can be easily identified.
@@ -136,14 +136,14 @@ Provides: bundled(golang(github.com/golang/protobuf)) = 1.4.2
Provides: bundled(golang(github.com/google/go-cmp)) = 0.5.0
Provides: bundled(golang(github.com/gosimple/slug)) = 1.4.2
Provides: bundled(golang(github.com/grafana/grafana-plugin-model)) = 0.0.0-20190930120109.1fc953a61fb4
-Provides: bundled(golang(github.com/grafana/grafana-plugin-sdk-go)) = 0.78.0
+Provides: bundled(golang(github.com/grafana/grafana-plugin-sdk-go)) = 0.79.0
Provides: bundled(golang(github.com/grafana/loki)) = 1.6.0
Provides: bundled(golang(github.com/grpc-ecosystem/go-grpc-middleware)) = 1.2.1
Provides: bundled(golang(github.com/hashicorp/go-hclog)) = 0.12.2
Provides: bundled(golang(github.com/hashicorp/go-plugin)) = 1.2.2
Provides: bundled(golang(github.com/hashicorp/go-version)) = 1.2.0
Provides: bundled(golang(github.com/inconshreveable/log15)) = 0.0.0-20180818164646.67afb5ed74ec
-Provides: bundled(golang(github.com/influxdata/influxdb-client-go/v2)) = 2.0.1
+Provides: bundled(golang(github.com/influxdata/influxdb-client-go/v2)) = 2.2.0
Provides: bundled(golang(github.com/jmespath/go-jmespath)) = 0.3.0
Provides: bundled(golang(github.com/jung-kurt/gofpdf)) = 1.10.1
Provides: bundled(golang(github.com/lib/pq)) = 1.3.0
@@ -184,7 +184,6 @@ Provides: bundled(golang(gopkg.in/square/go-jose.v2)) = 2.4.1
Provides: bundled(golang(gopkg.in/yaml.v2)) = 2.3.0
Provides: bundled(golang(xorm.io/core)) = 0.7.3
Provides: bundled(golang(xorm.io/xorm)) = 0.8.1
-
Provides: bundled(npm(@babel/core)) = 7.6.2
Provides: bundled(npm(@babel/plugin-proposal-nullish-coalescing-operator)) = 7.8.3
Provides: bundled(npm(@babel/plugin-proposal-optional-chaining)) = 7.8.3
@@ -425,8 +424,8 @@ Graphite, InfluxDB & OpenTSDB.
# remove bundled plugins source, otherwise they'll get merged
# with the compiled bundled plugins when extracting the webpack
rm -r plugins-bundled
-%endif
%setup -q -T -D -b 2
+%endif
%patch1 -p1
%patch2 -p1
@@ -444,7 +443,7 @@ ln -s %{_builddir}/%{name}-%{version} \
%build
# Build the frontend
%if %{compile_frontend}
-%{SOURCE4}
+%{SOURCE5}
%endif
# Build the backend
@@ -457,8 +456,8 @@ for cmd in grafana-cli grafana-server; do
%gobuild -o %{_builddir}/bin/${cmd} ./pkg/cmd/${cmd}
done
-%install
+%install
# dirs, shared files, public html, webpack
install -d %{buildroot}%{_sbindir}
install -d %{buildroot}%{_datadir}/%{name}
@@ -547,12 +546,12 @@ chmod 640 %{_sysconfdir}/%{name}/ldap.toml
%check
-# Frontend tests
+# Test frontend
%if %{compile_frontend}
yarn test
%endif
-# Backend tests
+# Test backend
cd %{_builddir}/src/github.com/grafana/grafana
export GOPATH=%{_builddir}
@@ -609,6 +608,9 @@ export TZ=GMT
%changelog
+* Wed Nov 25 2020 Andreas Gerstmayr <agerstmayr(a)redhat.com> 7.3.4-1
+- update to 7.3.4 tagged upstream community sources, see CHANGELOG
+
* Tue Nov 10 2020 Andreas Gerstmayr <agerstmayr(a)redhat.com> 7.3.1-1
- update to 7.3.1 tagged upstream community sources, see CHANGELOG
- optionally bundle node.js dependencies and build and test frontend as part of the specfile
diff --git a/list_bundled_nodejs_packages.py b/list_bundled_nodejs_packages.py
index f5490c4..a7c5e22 100755
--- a/list_bundled_nodejs_packages.py
+++ b/list_bundled_nodejs_packages.py
@@ -33,12 +33,12 @@ def list_provides(declared_pkgs, installed_pkgs):
if __name__ == "__main__":
if len(sys.argv) != 2:
- print(f"usage: {sys.argv[0]} grafana-X.Y.Z/", file=sys.stdout)
+ print(f"usage: {sys.argv[0]} package-X.Y.Z/", file=sys.stdout)
sys.exit(1)
- grafana_dir = sys.argv[1]
- declared_pkgs = read_declared_pkgs(f"{grafana_dir}/package.json")
- installed_pkgs = read_installed_pkgs(f"{grafana_dir}/yarn.lock")
+ package_dir = sys.argv[1]
+ declared_pkgs = read_declared_pkgs(f"{package_dir}/package.json")
+ installed_pkgs = read_installed_pkgs(f"{package_dir}/yarn.lock")
provides = list_provides(declared_pkgs, installed_pkgs)
for provide in sorted(provides):
print(provide)
diff --git a/sources b/sources
index a6e73c7..63efaee 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (grafana-7.3.1.tar.gz) = 95e12158c58f99e5479aa042eccaed402957f3d05b8ecaf36aed8737ad3a33970a7204aeb1e6da1e58beb3144f29acf98ffa73b96fd6469ce73e66be0ac85f36
-SHA512 (grafana-vendor-go-7.3.1.tar.gz) = 76ae7c96f62a04ca3fa03dfd5637e257678ae740a494f81293c928e7b5735ef5cea51a1e5b7fb756f8ed0ad079dfa8f26249885253b6357519a2aa58737853c4
-SHA512 (grafana-webpack-7.3.1.tar.gz) = 6b1712177a53c1d7c6ee22c28ab3bd553c1b1b5b70539de4c9248ab97659a9ba862ab703280b607ac5664f6632ace8abc62c589983a3e635b73be0ed05d55b64
+SHA512 (grafana-7.3.4.tar.gz) = b1c3e4f403cb6614bca1c73e833ac90e1152c802a62e814357a4290517a93d0e4ff79ed32dcabe88c13bfebb8ea9ef8b534a065131da6d909d3fd5d48eb7986d
+SHA512 (grafana-vendor-7.3.4.tar.xz) = 6d0add6c51764b41aa1bfa4fe113c24dc2726dbbb8cb100d5eb4c8bfb1a32a0e4adbb528ec54c7ca29da626be4efefe38427ebe971712550012551ddad238cb5
+SHA512 (grafana-webpack-7.3.4.tar.gz) = 041597b6f5f97df839f72a32a4b6f46873b3213c9f586d8d7c0c9915f7de6b0efe827e4a5273c786b362ea40ba034ce83a135efd5e298646a08a9cacb504e2c2
commit 07f640b8f32493c9cd709a5ca63a491d5e919f64
Author: Andreas Gerstmayr <agerstmayr(a)redhat.com>
Date: Tue Nov 10 20:22:40 2020 +0100
re-add comment about vendored deps
diff --git a/grafana.spec b/grafana.spec
index cbca255..e7863f3 100644
--- a/grafana.spec
+++ b/grafana.spec
@@ -109,6 +109,8 @@ Recommends: grafana-pcp
%endif
# vendored golang and node.js build dependencies
+# this is for security purposes, if nodejs-foo ever needs an update,
+# affected packages can be easily identified.
# Note: generated by the Makefile (see README.md)
Provides: bundled(golang(cloud.google.com/go/storage)) = 1.8.0
Provides: bundled(golang(github.com/BurntSushi/toml)) = 0.3.1
commit 8232254ba4bb92f12da39a66346c664a585e0d1f
Author: Andreas Gerstmayr <agerstmayr(a)redhat.com>
Date: Tue Nov 10 20:19:51 2020 +0100
fix merge conflict, update README
diff --git a/README.md b/README.md
index 74b0655..2de4948 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ The grafana package
* run rpm linter: `rpkg lint -r grafana.rpmlintrc`
* run local builds with different OS versions: `./run_container_build.sh fedora-version`
* run a scratch build: `fedpkg scratch-build --srpm`
-* upload new source tarballs: `fedpkg new-sources grafana-X.Y.Z.tar.gz grafana-vendor-X.Y.Z.tar.gz`
+* upload new source tarballs: `fedpkg new-sources *.tar.gz`
## Backporting
* create the patch
diff --git a/grafana.spec b/grafana.spec
index 679e369..cbca255 100644
--- a/grafana.spec
+++ b/grafana.spec
@@ -13,13 +13,8 @@ end}
%define compile_frontend 0
Name: grafana
-<<<<<<< HEAD
-Version: 7.1.1
-Release: 2%{?dist}
-=======
Version: 7.3.1
Release: 1%{?dist}
->>>>>>> 84a264d... update to upstream version 7.3.1, resolve RHBZ #1843170
Summary: Metrics dashboard and graph editor
License: ASL 2.0
URL: https://grafana.org
commit 35e322cb71473d32ee64053fbdff762b0a561f30
Author: Andreas Gerstmayr <agerstmayr(a)redhat.com>
Date: Wed Nov 4 17:44:15 2020 +0100
update to upstream version 7.3.1, resolve RHBZ #1843170
diff --git a/.gitignore b/.gitignore
index 15693e5..03daa61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/grafana-*.tar.gz
/grafana-*.tar.gz.manifest
/grafana-*/
+*.rpm
diff --git a/001-wrappers-grafana-cli.patch b/001-wrappers-grafana-cli.patch
index 79bb3b5..fb3d2cc 100644
--- a/001-wrappers-grafana-cli.patch
+++ b/001-wrappers-grafana-cli.patch
@@ -1,8 +1,16 @@
diff --git a/packaging/wrappers/grafana-cli b/packaging/wrappers/grafana-cli
-index 9cad151c0d..6b7ec1ab42 100755
+index 9cad151c0d..a786edc596 100755
--- a/packaging/wrappers/grafana-cli
+++ b/packaging/wrappers/grafana-cli
-@@ -12,11 +12,12 @@ CONF_DIR=/etc/grafana
+@@ -5,18 +5,19 @@
+ # the system-wide Grafana configuration that was bundled with the package as we
+ # use the binary.
+
+-DEFAULT=/etc/default/grafana
++DEFAULT=/etc/sysconfig/grafana-server
+
+ GRAFANA_HOME=/usr/share/grafana
+ CONF_DIR=/etc/grafana
DATA_DIR=/var/lib/grafana
PLUGINS_DIR=/var/lib/grafana/plugins
LOG_DIR=/var/log/grafana
@@ -24,3 +32,16 @@ index 9cad151c0d..6b7ec1ab42 100755
if [ -f "$DEFAULT" ]; then
. "$DEFAULT"
fi
+@@ -36,4 +38,11 @@ OPTS="--homepath=${GRAFANA_HOME} \
+ cfg:default.paths.logs=${LOG_DIR} \
+ cfg:default.paths.plugins=${PLUGINS_DIR}'"
+
+-eval $EXECUTABLE "$OPTS" "$@"
++if [ "$(id -u)" -eq 0 ]; then
++ exec runuser -u "${GRAFANA_USER}" -- "$EXECUTABLE" "$OPTS" "$@"
++elif [ "$(id -u -n)" = "${GRAFANA_USER}" ]; then
++ exec "$EXECUTABLE" "$OPTS" "$@"
++else
++ echo "Please run this script as user \"${GRAFANA_USER}\" or root."
++ exit 5
++fi
diff --git a/002-manpages.patch b/002-manpages.patch
index d2b2f88..ba614a4 100644
--- a/002-manpages.patch
+++ b/002-manpages.patch
@@ -1,10 +1,10 @@
diff --git a/docs/man/man1/grafana-cli.1 b/docs/man/man1/grafana-cli.1
new file mode 100644
-index 0000000000..171748fcda
+index 0000000000..7ac2af882c
--- /dev/null
+++ b/docs/man/man1/grafana-cli.1
-@@ -0,0 +1,51 @@
-+.TH GRAFANA "1" "February 2019" "Grafana cli version 5.4.3" "User Commands"
+@@ -0,0 +1,60 @@
++.TH GRAFANA "1" "November 2020" "Grafana cli version 7.3.1" "User Commands"
+.SH NAME
+grafana-cli \- command line administration for the Grafana metrics dashboard and graph editor
+.SH DESCRIPTION
@@ -41,6 +41,15 @@ index 0000000000..171748fcda
+\fB\-\-debug\fR, \fB\-d\fR
+enable debug logging
+.TP
++\fB\-\-configOverrides\fR value
++Configuration options to override defaults as a string. e.g. cfg:default.paths.log=/dev/null
++.TP
++\fB\-\-homepath\fR value
++Path to Grafana install/home path, defaults to working directory
++.TP
++\fB\-\-config\fR value
++Path to config file
++.TP
+\fB\-\-help\fR, \fB\-h\fR
+show help
+.TP
@@ -57,11 +66,11 @@ index 0000000000..171748fcda
+.BR http://docs.grafana.org/ .
diff --git a/docs/man/man1/grafana-server.1 b/docs/man/man1/grafana-server.1
new file mode 100644
-index 0000000000..30b7c1306f
+index 0000000000..c616268b31
--- /dev/null
+++ b/docs/man/man1/grafana-server.1
-@@ -0,0 +1,156 @@
-+.TH VERSION "1" "February 2019" "Version 5.4.3" "User Commands"
+@@ -0,0 +1,84 @@
++.TH VERSION "1" "November 2020" "Version 7.3.1" "User Commands"
+.SH NAME
+grafana-server \- back-end server for the Grafana metrics dashboard and graph editor
+.SH DESCRIPTION
@@ -90,14 +99,25 @@ index 0000000000..30b7c1306f
+.BR /etc/grafana/grafana.ini
+and is well documented with comments.
+The command-line options listed below override options of
-+the same (or similar) name in the configuration file and also provide
-+additional options for testing Grafana.
++the same (or similar) name in the configuration file.
+.P
+.HP
+\fB\-config\fR string
+.IP
+path to config file
+.HP
++\fB\-convey-json\fR
++.IP
++When true, emits results in JSON blocks. Default: 'false'
++.HP
++\fB\-convey-silent\fR
++.IP
++When true, all output from GoConvey is suppressed.
++.HP
++\fB\-convey-story\fR
++.IP
++When true, emits story output, otherwise emits dot output. When not provided, this flag mirrors the value of the '-test.v' flag
++.HP
+\fB\-homepath\fR string
+.IP
+path to grafana install/home path, defaults to working directory
@@ -114,103 +134,20 @@ index 0000000000..30b7c1306f
+.IP
+Turn on pprof profiling
+.HP
-+\fB\-profile\-port\fR int
++\fB\-profile\-port\fR uint
+.IP
+Define custom port for profiling (default 6060)
+.HP
-+\fB\-test\fR.bench regexp
-+.IP
-+run only benchmarks matching regexp
-+.HP
-+\fB\-test\fR.benchmem
-+.IP
-+print memory allocations for benchmarks
-+.HP
-+\fB\-test\fR.benchtime d
-+.IP
-+run each benchmark for duration d (default 1s)
-+.HP
-+\fB\-test\fR.blockprofile file
-+.IP
-+write a goroutine blocking profile to file
-+.HP
-+\fB\-test\fR.blockprofilerate rate
-+.IP
-+set blocking profile rate (see runtime.SetBlockProfileRate) (default 1)
-+.HP
-+\fB\-test\fR.count n
-+.IP
-+run tests and benchmarks n times (default 1)
-+.HP
-+\fB\-test\fR.coverprofile file
-+.IP
-+write a coverage profile to file
-+.HP
-+\fB\-test\fR.cpu list
-+.IP
-+comma\-separated list of cpu counts to run each test with
-+.HP
-+\fB\-test\fR.cpuprofile file
-+.IP
-+write a cpu profile to file
-+.HP
-+\fB\-test\fR.failfast
-+.IP
-+do not start new tests after the first test failure
-+.HP
-+\fB\-test\fR.list regexp
-+.IP
-+list tests, examples, and benchmarks matching regexp then exit
-+.HP
-+\fB\-test\fR.memprofile file
-+.IP
-+write a memory profile to file
-+.HP
-+\fB\-test\fR.memprofilerate rate
-+.IP
-+set memory profiling rate (see runtime.MemProfileRate)
-+.HP
-+\fB\-test\fR.mutexprofile string
-+.IP
-+write a mutex contention profile to the named file after execution
-+.HP
-+\fB\-test\fR.mutexprofilefraction int
-+.IP
-+if >= 0, calls runtime.SetMutexProfileFraction() (default 1)
-+.HP
-+\fB\-test\fR.outputdir dir
++\fB\-tracing\fR
+.IP
-+write profiles to dir
++Turn on tracing
+.HP
-+\fB\-test\fR.parallel n
++\fB\-tracing\-file\fR string
+.IP
-+run at most n tests in parallel (default 8)
-+.HP
-+\fB\-test\fR.run regexp
-+.IP
-+run only tests and examples matching regexp
-+.HP
-+\fB\-test\fR.short
-+.IP
-+run smaller test suite to save time
-+.HP
-+\fB\-test\fR.testlogfile file
-+.IP
-+write test action log to file (for use only by cmd/go)
-+.HP
-+\fB\-test\fR.timeout d
-+.IP
-+panic test binary after duration d (default 0, timeout disabled)
-+.HP
-+\fB\-test\fR.trace file
-+.IP
-+write an execution trace to file
-+.HP
-+\fB\-test\fR.v
-+.IP
-+verbose: print additional output
++Define tracing output file (default "trace.out")
+.TP
+\fB\-v\fR
++.IP
+prints current version and exits
+.SH "SEE ALSO"
+The full documentation for
diff --git a/003-golang1.15.patch b/003-golang1.15.patch
deleted file mode 100644
index d568703..0000000
--- a/003-golang1.15.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-diff --git a/pkg/api/dashboard_test.go b/pkg/api/dashboard_test.go
-index b58cf217d3..90e110974e 100644
---- a/pkg/api/dashboard_test.go
-+++ b/pkg/api/dashboard_test.go
-@@ -3,6 +3,7 @@ package api
- import (
- "encoding/json"
- "fmt"
-+ "strconv"
- "io/ioutil"
- "testing"
-
-@@ -828,7 +829,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
- bus.AddHandler("test", func(query *models.GetDashboardVersionQuery) error {
- query.Result = &models.DashboardVersion{
- Data: simplejson.NewFromAny(map[string]interface{}{
-- "title": "Dash" + string(query.DashboardId),
-+ "title": "Dash" + strconv.FormatInt(query.DashboardId, 10),
- }),
- }
- return nil
-diff --git a/pkg/components/gtime/gtime_test.go b/pkg/components/gtime/gtime_test.go
-index 4dab30fbf6..e4ba096a43 100644
---- a/pkg/components/gtime/gtime_test.go
-+++ b/pkg/components/gtime/gtime_test.go
-@@ -22,7 +22,7 @@ func TestParseInterval(t *testing.T) {
- {interval: "1M", duration: now.Sub(now.AddDate(0, -1, 0))},
- {interval: "1y", duration: now.Sub(now.AddDate(-1, 0, 0))},
- {interval: "5y", duration: now.Sub(now.AddDate(-5, 0, 0))},
-- {interval: "invalid-duration", err: "time: invalid duration invalid-duration"},
-+ {interval: "invalid-duration", err: "time: invalid duration \"invalid-duration\""},
- }
-
- for i, tc := range tcs {
-diff --git a/pkg/services/sqlstore/alert_notification_test.go b/pkg/services/sqlstore/alert_notification_test.go
-index 75d5582022..4986d0d781 100644
---- a/pkg/services/sqlstore/alert_notification_test.go
-+++ b/pkg/services/sqlstore/alert_notification_test.go
-@@ -168,7 +168,7 @@ func TestAlertNotificationSQLAccess(t *testing.T) {
- cmd.Frequency = "invalid duration"
-
- err := CreateAlertNotificationCommand(cmd)
-- So(err.Error(), ShouldEqual, "time: invalid duration invalid duration")
-+ So(err.Error(), ShouldEqual, "time: invalid duration \"invalid duration\"")
- })
- })
-
-@@ -199,7 +199,7 @@ func TestAlertNotificationSQLAccess(t *testing.T) {
-
- err := UpdateAlertNotification(updateCmd)
- So(err, ShouldNotBeNil)
-- So(err.Error(), ShouldEqual, "time: invalid duration invalid duration")
-+ So(err.Error(), ShouldEqual, "time: invalid duration \"invalid duration\"")
- })
- })
-
-diff --git a/pkg/services/sqlstore/sqlbuilder_test.go b/pkg/services/sqlstore/sqlbuilder_test.go
-index 42159171b0..abf669d294 100644
---- a/pkg/services/sqlstore/sqlbuilder_test.go
-+++ b/pkg/services/sqlstore/sqlbuilder_test.go
-@@ -5,6 +5,7 @@ import (
- "math/rand"
- "testing"
- "time"
-+ "strconv"
-
- "github.com/grafana/grafana/pkg/components/simplejson"
- "github.com/grafana/grafana/pkg/models"
-@@ -193,12 +194,12 @@ func test(t *testing.T, dashboardProps DashboardProps, dashboardPermission *Dash
- func createDummyUser() (*models.User, error) {
- uid := rand.Intn(9999999)
- createUserCmd := &models.CreateUserCommand{
-- Email: string(uid) + "@example.com",
-- Login: string(uid),
-- Name: string(uid),
-+ Email: strconv.Itoa(uid) + "@example.com",
-+ Login: strconv.Itoa(uid),
-+ Name: strconv.Itoa(uid),
- Company: "",
- OrgName: "",
-- Password: string(uid),
-+ Password: strconv.Itoa(uid),
- EmailVerified: true,
- IsAdmin: false,
- SkipOrgSetup: false,
diff --git a/003-remove-dashboard-abspath-test.patch b/003-remove-dashboard-abspath-test.patch
new file mode 100644
index 0000000..2076441
--- /dev/null
+++ b/003-remove-dashboard-abspath-test.patch
@@ -0,0 +1,41 @@
+diff --git a/pkg/services/provisioning/dashboards/file_reader_linux_test.go b/pkg/services/provisioning/dashboards/file_reader_linux_test.go
+index 3584bbc242..3d37f5e104 100644
+--- a/pkg/services/provisioning/dashboards/file_reader_linux_test.go
++++ b/pkg/services/provisioning/dashboards/file_reader_linux_test.go
+@@ -33,6 +33,11 @@ func TestProvisionedSymlinkedFolder(t *testing.T) {
+ t.Errorf("expected err to be nil")
+ }
+
++ want, err = filepath.EvalSymlinks(want)
++ if err != nil {
++ t.Errorf("expected err to be nil %v", err)
++ }
++
+ resolvedPath := reader.resolvedPath()
+ if resolvedPath != want {
+ t.Errorf("got %s want %s", resolvedPath, want)
+diff --git a/pkg/services/provisioning/dashboards/file_reader_test.go b/pkg/services/provisioning/dashboards/file_reader_test.go
+index 33fe6a0a68..2c67ebb677 100644
+--- a/pkg/services/provisioning/dashboards/file_reader_test.go
++++ b/pkg/services/provisioning/dashboards/file_reader_test.go
+@@ -340,20 +340,6 @@ func TestDashboardFileReader(t *testing.T) {
+ So(err, ShouldBeNil)
+
+ So(len(fakeService.provisioned["Default"]), ShouldEqual, 1)
+- So(fakeService.provisioned["Default"][0].ExternalId, ShouldEqual, absPath1)
+- })
+-
+- Convey("Missing dashboard should be deleted if DisableDeletion = false", func() {
+- reader, err := NewDashboardFileReader(cfg, logger)
+- So(err, ShouldBeNil)
+-
+- err = reader.startWalkingDisk()
+- So(err, ShouldBeNil)
+-
+- So(len(fakeService.provisioned["Default"]), ShouldEqual, 1)
+- So(fakeService.provisioned["Default"][0].ExternalId, ShouldEqual, absPath1)
+- So(len(fakeService.inserted), ShouldEqual, 1)
+- So(fakeService.inserted[0].Dashboard.Id, ShouldEqual, 1)
+ })
+ })
+
diff --git a/004-remove-goldenfiles-test.patch b/004-remove-goldenfiles-test.patch
deleted file mode 100644
index bc08ffc..0000000
--- a/004-remove-goldenfiles-test.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/pkg/tsdb/influxdb/flux/executor_test.go b/pkg/tsdb/influxdb/flux/executor_test.go
-index b42389c94d..a24e16f97e 100644
---- a/pkg/tsdb/influxdb/flux/executor_test.go
-+++ b/pkg/tsdb/influxdb/flux/executor_test.go
-@@ -285,12 +285,3 @@ func TestBuckets(t *testing.T) {
- fmt.Println("----------------------")
- })
- }
--
--func TestGoldenFiles(t *testing.T) {
-- t.Run("Renamed", func(t *testing.T) {
-- _, err := verifyGoldenResponse("renamed")
-- if err != nil {
-- t.Fatal(err.Error())
-- }
-- })
--}
diff --git a/004-skip-x86-goldenfiles-tests.patch b/004-skip-x86-goldenfiles-tests.patch
new file mode 100644
index 0000000..20a50e2
--- /dev/null
+++ b/004-skip-x86-goldenfiles-tests.patch
@@ -0,0 +1,59 @@
+diff --git a/packages/grafana-data/src/dataframe/ArrowDataFrame.test.ts b/packages/grafana-data/src/dataframe/ArrowDataFrame.test.ts
+index 96efaccfce..bcdd98144f 100644
+--- a/packages/grafana-data/src/dataframe/ArrowDataFrame.test.ts
++++ b/packages/grafana-data/src/dataframe/ArrowDataFrame.test.ts
+@@ -52,7 +52,7 @@ describe('Read/Write arrow Table to DataFrame', () => {
+ expect(after).toEqual(before);
+ });
+
+- test('should read all types', () => {
++ test.skip('should read all types', () => {
+ const fullpath = path.resolve(__dirname, './__snapshots__/all_types.golden.arrow');
+ const arrow = fs.readFileSync(fullpath);
+ const table = Table.from([arrow]);
+diff --git a/packages/grafana-runtime/src/utils/queryResponse.test.ts b/packages/grafana-runtime/src/utils/queryResponse.test.ts
+index 25169669a0..05474366a2 100644
+--- a/packages/grafana-runtime/src/utils/queryResponse.test.ts
++++ b/packages/grafana-runtime/src/utils/queryResponse.test.ts
+@@ -38,7 +38,7 @@ const emptyResults = {
+ /* eslint-enable */
+
+ describe('GEL Utils', () => {
+- test('should parse output with dataframe', () => {
++ test.skip('should parse output with dataframe', () => {
+ const res = toDataQueryResponse(resp);
+ const frames = res.data;
+ for (const frame of frames) {
+@@ -106,7 +106,7 @@ describe('GEL Utils', () => {
+ expect(frames.length).toEqual(0);
+ });
+
+- test('resultWithError', () => {
++ test.skip('resultWithError', () => {
+ // Generated from:
+ // qdr.Responses[q.GetRefID()] = backend.DataResponse{
+ // Error: fmt.Errorf("an Error: %w", fmt.Errorf("another error")),
+diff --git a/pkg/tsdb/influxdb/flux/executor_test.go b/pkg/tsdb/influxdb/flux/executor_test.go
+index e053c6c397..fc7685cbab 100644
+--- a/pkg/tsdb/influxdb/flux/executor_test.go
++++ b/pkg/tsdb/influxdb/flux/executor_test.go
+@@ -59,6 +59,7 @@ func (r *MockRunner) runQuery(ctx context.Context, q string) (*api.QueryTableRes
+ }
+
+ func verifyGoldenResponse(t *testing.T, name string) *backend.DataResponse {
++ t.Skip("x86 memory dump is not compatible with other architectures")
+ runner := &MockRunner{
+ testDataPath: name + ".csv",
+ }
+diff --git a/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts b/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts
+index 94c1991dae..8e5b35eb3b 100644
+--- a/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts
++++ b/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts
+@@ -88,6 +88,7 @@ describe('CloudWatchDatasource', () => {
+ });
+
+ it('should return log groups as an array of strings', async () => {
++ return; // "it.skip" of this test leads to a test failure of the other log group test, because the mock is not active (see beforeEach() above)
+ const logGroups = await ctx.ds.describeLogGroups();
+ const expectedLogGroups = [
+ '/aws/containerinsights/dev303-workshop/application',
diff --git a/Makefile b/Makefile
index 3f1696f..daf6b09 100644
--- a/Makefile
+++ b/Makefile
@@ -1,30 +1,36 @@
-all: grafana-vendor-$(VER).tar.gz \
- grafana-vendor-$(VER).tar.gz.manifest \
- grafana-webpack-$(VER).tar.gz \
- grafana-webpack-$(VER).tar.gz.manifest
+all: grafana-vendor-go-$(VER).tar.gz \
+ grafana-webpack-$(VER).tar.gz
-grafana-$(VER).tar.gz grafana-$(VER):
+grafana-$(VER).tar.gz grafana-$(VER)/:
wget https://github.com/grafana/grafana/archive/v$(VER)/grafana-$(VER).tar.gz
+ rm -rf grafana-$(VER)
tar xfz grafana-$(VER).tar.gz
+ cd grafana-$(VER) && \
+ for patch in ../*.patch; do patch -p1 < $$patch; done
-grafana-vendor-$(VER).tar.gz: grafana-$(VER).tar.gz
+grafana-vendor-go-$(VER).tar.gz: grafana-$(VER)/
cd grafana-$(VER) && go mod vendor -v
tar cfz $@ grafana-$(VER)/vendor
-
-grafana-vendor-$(VER).tar.gz.manifest: grafana-$(VER).tar.gz
awk '$$2~/^v/ && $$4 != "indirect" {print "Provides: bundled(golang(" $$1 ")) = " substr($$2, 2)}' grafana-$(VER)/go.mod | \
- sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@
+ sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@.manifest
+
+grafana-vendor-nodejs-$(VER).tar.gz: grafana-$(VER)/
+ cd grafana-$(VER) && yarn install --pure-lockfile
+
+ # Remove files with licensing issues
+ find grafana-$(VER) -type d -name 'node-notifier' -prune -exec rm -r {} \;
+ find grafana-$(VER) -name '*.exe' -delete
-grafana-webpack-$(VER).tar.gz: grafana-$(VER).tar.gz
- cd grafana-$(VER) && yarn install --pure-lockfile && yarn run build
+ tar cfz $@ $$(find grafana-$(VER) -type d -name "node_modules" -prune)
+ ./list_bundled_nodejs_packages.py grafana-$(VER)/ > $@.manifest
+
+grafana-webpack-$(VER).tar.gz: grafana-$(VER)/
cd grafana-$(VER) && \
- mkdir plugins-bundled/external && yarn run plugins:build-bundled && \
- for plugin in plugins-bundled/internal/*; do mv $$plugin $$plugin.tmp; mv $$plugin.tmp/dist $$plugin; rm -rf $$plugin.tmp; done && \
- rm plugins-bundled/README.md plugins-bundled/.gitignore plugins-bundled/external.json
- tar cfz $@ grafana-$(VER)/public/build grafana-$(VER)/public/views grafana-$(VER)/plugins-bundled
+ yarn install --pure-lockfile && \
+ ../build_frontend.sh
-grafana-webpack-$(VER).tar.gz.manifest: grafana-$(VER).tar.gz
- ./create_webpack_manifest.py grafana-$(VER)/ > $@
+ tar cfz $@ grafana-$(VER)/public/build grafana-$(VER)/public/views grafana-$(VER)/plugins-bundled
+ ./list_bundled_nodejs_packages.py grafana-$(VER)/ > $@.manifest
clean:
- rm -rf *.tar.gz grafana-*/
+ rm -rf *.tar.gz *.manifest *.rpm grafana-*/
diff --git a/README.md b/README.md
index 1c34177..74b0655 100644
--- a/README.md
+++ b/README.md
@@ -5,11 +5,20 @@ The grafana package
(replace X.Y.Z with the new Grafana version)
* update `Version` and `%changelog` in the specfile
-* create bundles and manifests: `VER=X.Y.Z make`
-* update specfile with contents of `grafana-vendor-X.Y.Z.tar.gz.manifest` and `grafana-webpack-X.Y.Z.tar.gz.manifest`
+* create bundles and manifests: `VER=X.Y.Z make clean all`
+* update specfile with contents of the `*.manifest` files
* check if the default configuration has changed: `diff grafana-X.Y.Z/conf/defaults.ini distro-defaults.ini` and update `distro-defaults.ini` if necessary
* run local build: `rpkg local`
-* run rpm linter: `rpkg lint`
-* run local builds with different OS versions: `./run_container_build.sh version`
+* run rpm linter: `rpkg lint -r grafana.rpmlintrc`
+* run local builds with different OS versions: `./run_container_build.sh fedora-version`
* run a scratch build: `fedpkg scratch-build --srpm`
-* upload new source tarballs: `fedpkg new-sources grafana-X.Y.Z.tar.gz grafana-vendor-X.Y.Z.tar.gz grafana-webpack-X.Y.Z.tar.gz`
+* upload new source tarballs: `fedpkg new-sources grafana-X.Y.Z.tar.gz grafana-vendor-X.Y.Z.tar.gz`
+
+## Backporting
+* create the patch
+* declare and apply (`%prep`) the patch in the specfile
+* if the patch affects Go or Node.js dependencies, or the webpack
+ * create new tarballs and rename them to `grafana-...-X.Y.Z-R.tar.gz`
+ * update the specfile
+
+Note: the Makefile automatically applies all patches before creating the tarballs
diff --git a/build_frontend.sh b/build_frontend.sh
new file mode 100755
index 0000000..a9aa76d
--- /dev/null
+++ b/build_frontend.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Build the frontend
+yarn run build
+
+# Build the bundled plugins
+mkdir plugins-bundled/external
+yarn run plugins:build-bundled
+for plugin in plugins-bundled/internal/input-datasource; do
+ mv $plugin $plugin.tmp
+ mv $plugin.tmp/dist $plugin
+ rm -rf $plugin.tmp
+done
+rm plugins-bundled/README.md plugins-bundled/.gitignore plugins-bundled/external.json
+
+# Fix permissions (webpack sometimes outputs files with mode = 666 due to reasons unknown (race condition/umask issue afaics))
+chmod -R g-w,o-w public/build plugins-bundled
diff --git a/distro-defaults.ini b/distro-defaults.ini
index 7b61f6e..db0de31 100644
--- a/distro-defaults.ini
+++ b/distro-defaults.ini
@@ -1,4 +1,4 @@
-##################### Grafana Configuration Defaults for distros #####################
+##################### Grafana Configuration Defaults #####################
#
# Do not modify this file in grafana installs
#
@@ -130,7 +130,25 @@ logging = false
# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
timeout = 30
-# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false.
+# How many seconds the data proxy waits before sending a keepalive request.
+keep_alive_seconds = 30
+
+# How many seconds the data proxy waits for a successful TLS Handshake before timing out.
+tls_handshake_timeout_seconds = 10
+
+# How many seconds the data proxy will wait for a server's first response headers after
+# fully writing the request headers if the request has an "Expect: 100-continue"
+# header. A value of 0 will result in the body being sent immediately, without
+# waiting for the server to approve.
+expect_continue_timeout_seconds = 1
+
+# The maximum number of idle connections that Grafana will keep alive.
+max_idle_connections = 100
+
+# How many seconds the data proxy keeps an idle connection open before timing out.
+idle_conn_timeout_seconds = 90
+
+# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request.
send_user_header = false
#################################### Analytics ###########################
@@ -275,15 +293,18 @@ viewers_can_edit = false
# Editors can administrate dashboard, folders and teams they create
editors_can_admin = false
+# The duration in time a user invitation remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 24h (24 hours). The minimum supported duration is 15m (15 minutes).
+user_invite_max_lifetime_duration = 24h
+
[auth]
# Login cookie name
login_cookie_name = grafana_session
-# The lifetime (days) an authenticated user can be inactive before being required to login at next visit. Default is 7 days.
-login_maximum_inactive_lifetime_days = 7
+# The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation (token_rotation_interval_minutes).
+login_maximum_inactive_lifetime_duration =
-# The maximum lifetime (days) an authenticated user can be logged in since login time before being required to login. Default is 30 days.
-login_maximum_lifetime_days = 30
+# The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).
+login_maximum_lifetime_duration =
# How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
token_rotation_interval_minutes = 10
@@ -301,12 +322,15 @@ signout_redirect_url =
# This setting is ignored if multiple OAuth providers are configured.
oauth_auto_login = false
-# OAuth state max age cookie duration. Defaults to 60 seconds.
-oauth_state_cookie_max_age = 60
+# OAuth state max age cookie duration in seconds. Defaults to 600 seconds.
+oauth_state_cookie_max_age = 600
# limit of api_key seconds to live before expiration
api_key_max_seconds_to_live = -1
+# Set to true to enable SigV4 authentication option for HTTP-based datasources
+sigv4_auth_enabled = false
+
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
@@ -321,12 +345,12 @@ org_role = Viewer
# mask the Grafana version number for unauthenticated users
hide_version = false
-#################################### Github Auth #########################
+#################################### GitHub Auth #########################
[auth.github]
enabled = false
allow_sign_up = true
client_id = some_id
-client_secret = some_secret
+client_secret =
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
@@ -340,7 +364,7 @@ allowed_organizations =
enabled = false
allow_sign_up = true
client_id = some_id
-client_secret = some_secret
+client_secret =
scopes = api
auth_url = https://gitlab.com/oauth/authorize
token_url = https://gitlab.com/oauth/token
@@ -353,7 +377,7 @@ allowed_groups =
enabled = false
allow_sign_up = true
client_id = some_client_id
-client_secret = some_client_secret
+client_secret =
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
auth_url = https://accounts.google.com/o/oauth2/auth
token_url = https://accounts.google.com/o/oauth2/token
@@ -367,7 +391,7 @@ hosted_domain =
enabled = false
allow_sign_up = true
client_id = some_id
-client_secret = some_secret
+client_secret =
scopes = user:email
allowed_organizations =
@@ -375,7 +399,7 @@ allowed_organizations =
enabled = false
allow_sign_up = true
client_id = some_id
-client_secret = some_secret
+client_secret =
scopes = user:email
allowed_organizations =
@@ -385,7 +409,7 @@ name = Azure AD
enabled = false
allow_sign_up = true
client_id = some_client_id
-client_secret = some_client_secret
+client_secret =
scopes = openid email profile
auth_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
token_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
@@ -398,7 +422,7 @@ name = Okta
enabled = false
allow_sign_up = true
client_id = some_id
-client_secret = some_secret
+client_secret =
scopes = openid profile email groups
auth_url = https://<tenant-id>.okta.com/oauth2/v1/authorize
token_url = https://<tenant-id>.okta.com/oauth2/v1/token
@@ -413,11 +437,13 @@ name = OAuth
enabled = false
allow_sign_up = true
client_id = some_id
-client_secret = some_secret
+client_secret =
scopes = user:email
email_attribute_name = email:primary
email_attribute_path =
+login_attribute_path =
role_attribute_path =
+id_token_attribute_name =
auth_url =
token_url =
api_url =
@@ -597,6 +623,36 @@ max_attempts = 3
# Makes it possible to enforce a minimal interval between evaluations, to reduce load on the backend
min_interval_seconds = 1
+# Configures for how long alert annotations are stored. Default is 0, which keeps them forever.
+# This setting should be expressed as an duration. Ex 6h (hours), 10d (days), 2w (weeks), 1M (month).
+max_annotation_age =
+
+# Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.
+max_annotations_to_keep =
+
+#################################### Annotations #########################
+
+[annotations.dashboard]
+# Dashboard annotations means that annotations are associated with the dashboard they are created on.
+
+# Configures how long dashboard annotations are stored. Default is 0, which keeps them forever.
+# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
+max_age =
+
+# Configures max number of dashboard annotations that Grafana stores. Default value is 0, which keeps all dashboard annotations.
+max_annotations_to_keep =
+
+[annotations.api]
+# API annotations means that the annotations have been created using the API without any
+# association with a dashboard.
+
+# Configures how long Grafana stores API annotations. Default is 0, which keeps them forever.
+# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
+max_age =
+
+# Configures max number of API annotations that Grafana keeps. Default value is 0, which keeps all API annotations.
+max_annotations_to_keep =
+
#################################### Explore #############################
[explore]
# Enable the Explore section
@@ -614,6 +670,12 @@ disable_total_stats = false
basic_auth_username =
basic_auth_password =
+# Metrics environment info adds dimensions to the `grafana_environment_info` metric, which
+# can expose more information about the Grafana instance.
+[metrics.environment_info]
+#exampleLabel1 = exampleValue1
+#exampleLabel2 = exampleValue2
+
# Send internal Grafana metrics to graphite
[metrics.graphite]
# Enable by setting the address setting (ex localhost:2003)
@@ -675,6 +737,8 @@ public_url =
key_file =
bucket =
path =
+enable_signed_urls = false
+signed_url_expiration =
[external_image_storage.azure_blob]
account_name =
@@ -771,3 +835,23 @@ license_path =
[feature_toggles]
# enable features, separated by spaces
enable =
+
+[date_formats]
+# For information on what formatting patterns that are supported https://momentjs.com/docs/#/displaying/
+
+# Default system date format used in time range picker and other places where full time is displayed
+full_date = YYYY-MM-DD HH:mm:ss
+
+# Used by graph and other places where we only show small intervals
+interval_second = HH:mm:ss
+interval_minute = HH:mm
+interval_hour = MM/DD HH:mm
+interval_day = MM/DD
+interval_month = YYYY-MM
+interval_year = YYYY
+
+# Experimental feature
+use_browser_locale = false
+
+# Default timezone for user preferences. Options are 'browser' for the browser local timezone or a timezone name from IANA Time Zone database, e.g. 'UTC' or 'Europe/Amsterdam' etc.
+default_timezone = browser
diff --git a/grafana.rpmlintrc b/grafana.rpmlintrc
index d7a45e7..ff8b52d 100644
--- a/grafana.rpmlintrc
+++ b/grafana.rpmlintrc
@@ -1,6 +1,7 @@
addFilter("E: non-readable /etc/grafana/grafana.ini 640")
addFilter("E: non-readable /etc/grafana/ldap.toml 640")
addFilter("E: non-standard-dir-perm /var/lib/grafana 750")
+addFilter("E: non-standard-dir-perm /etc/grafana/provisioning/datasources 750")
addFilter("E: zero-length /usr/share/grafana/public/.*")
addFilter("E: script-without-shebang .*\.json")
@@ -9,3 +10,7 @@ addFilter("W: non-standard-gid.* grafana")
addFilter("W: hidden-file-or-dir /usr/share/grafana/public/.*")
addFilter("W: log-files-without-logrotate .*")
addFilter("W: dangerous-command-in-%post chown")
+
+addFilter("W: strange-permission build_frontend.sh 755")
+addFilter("W: strange-permission list_bundled_nodejs_packages.py 755")
+addFilter("W: %ifarch-applied-patch Patch.: 00.-skip-goldenfiles-tests.patch")
diff --git a/grafana.spec b/grafana.spec
index 875ca4a..679e369 100644
--- a/grafana.spec
+++ b/grafana.spec
@@ -8,9 +8,18 @@
end
end}
+# Specify if the frontend will be compiled as part of the build or
+# is attached as a webpack tarball (in case of an unsuitable nodejs version on the build system)
+%define compile_frontend 0
+
Name: grafana
+<<<<<<< HEAD
Version: 7.1.1
Release: 2%{?dist}
+=======
+Version: 7.3.1
+Release: 1%{?dist}
+>>>>>>> 84a264d... update to upstream version 7.3.1, resolve RHBZ #1843170
Summary: Metrics dashboard and graph editor
License: ASL 2.0
URL: https://grafana.org
@@ -19,34 +28,41 @@ URL: https://grafana.org
Source0: https://github.com/grafana/grafana/archive/v%{version}/%{name}-%{version}...
# Source1 contains the bundled Go dependencies
-Source1: grafana-vendor-%{version}.tar.gz
+Source1: grafana-vendor-go-%{version}.tar.gz
-# Source2 contains the front-end javascript modules bundled into a webpack
+%if %{compile_frontend}
+# Source2 contains the bundled Node.js dependencies
+Source2: grafana-vendor-nodejs-%{version}.tar.gz
+%else
+# Source2 contains the precompiled frontend
Source2: grafana-webpack-%{version}.tar.gz
+%endif
# Source3 contains Grafana configuration defaults for distributions
Source3: distro-defaults.ini
-# Source4 contains the Makefile to create a Go vendor tarball and a webpack from grafana sources
-Source4: Makefile
+# Source4 contains the script to build the frontend
+Source4: build_frontend.sh
+
+# Source5 contains the Makefile to create the required bundles
+Source5: Makefile
-# Source5 contains the script to generate the list of bundled nodejs packages
-Source5: create_webpack_manifest.py
+# Source6 contains the script to generate the list of bundled nodejs packages
+Source6: list_bundled_nodejs_packages.py
# Patches
Patch1: 001-wrappers-grafana-cli.patch
Patch2: 002-manpages.patch
-# Required for Go >= 1.15
-# https://github.com/golang/go/commit/201cb046b745f8bb00e3d382290190c74ba7b7e1
-# https://github.com/golang/go/issues/32479
-Patch3: 003-golang1.15.patch
+# remove failing assertions due to a symlink
+# BUILD/src/github.com/grafana/grafana -> BUILD/grafana-X.Y.Z
+Patch3: 003-remove-dashboard-abspath-test.patch
# Required for s390x
# the golden files include memory dumps from a x86 machine
# integers are stored as little endian on x86, but as big endian on s390x
# therefore loading this memory dump fails on s390x
-Patch4: 004-remove-goldenfiles-test.patch
+Patch4: 004-skip-x86-goldenfiles-tests.patch
# Intersection of go_arches and nodejs_arches
ExclusiveArch: %{grafana_arches}
@@ -64,6 +80,9 @@ ExclusiveArch: %{grafana_arches}
Requires(pre): shadow-utils
BuildRequires: git, systemd, golang, go-srpm-macros, go-rpm-macros
+%if %{compile_frontend}
+BuildRequires: nodejs >= 1:12, nodejs < 1:13, yarnpkg
+%endif
Obsoletes: grafana-cloudwatch < 7.1.1-1
Obsoletes: grafana-elasticsearch < 7.1.1-1
@@ -77,164 +96,324 @@ Obsoletes: grafana-opentsdb < 7.1.1-1
Obsoletes: grafana-postgres < 7.1.1-1
Obsoletes: grafana-prometheus < 7.1.1-1
Obsoletes: grafana-stackdriver < 7.1.1-1
+Provides: grafana-cloudwatch = 7.1.1-1
+Provides: grafana-elasticsearch = 7.1.1-1
+Provides: grafana-azure-monitor = 7.1.1-1
+Provides: grafana-graphite = 7.1.1-1
+Provides: grafana-influxdb = 7.1.1-1
+Provides: grafana-loki = 7.1.1-1
+Provides: grafana-mssql = 7.1.1-1
+Provides: grafana-mysql = 7.1.1-1
+Provides: grafana-opentsdb = 7.1.1-1
+Provides: grafana-postgres = 7.1.1-1
+Provides: grafana-prometheus = 7.1.1-1
+Provides: grafana-stackdriver = 7.1.1-1
%if 0%{?fedora} || 0%{?rhel} > 7
-Recommends: grafana-pcp >= 3.0.0
+Recommends: grafana-pcp
%endif
-# vendored golang build dependencies
+# vendored golang and node.js build dependencies
# Note: generated by the Makefile (see README.md)
+Provides: bundled(golang(cloud.google.com/go/storage)) = 1.8.0
Provides: bundled(golang(github.com/BurntSushi/toml)) = 0.3.1
Provides: bundled(golang(github.com/VividCortex/mysqlerr)) = 0.0.0-20170204212430.6c6b55f8796f
-Provides: bundled(golang(github.com/aws/aws-sdk-go)) = 1.29.20
+Provides: bundled(golang(github.com/aws/aws-sdk-go)) = 1.33.12
+Provides: bundled(golang(github.com/beevik/etree)) = 1.1.0
Provides: bundled(golang(github.com/benbjohnson/clock)) = 0.0.0-20161215174838.7dc76406b6d3
-Provides: bundled(golang(github.com/bradfitz/gomemcache)) = 0.0.0-20190329173943.551aad21a668
-Provides: bundled(golang(github.com/crewjam/saml)) = 0.0.0-20191031171751.c42136edf9b1
+Provides: bundled(golang(github.com/bradfitz/gomemcache)) = 0.0.0-20190913173617.a41fca850d0b
+Provides: bundled(golang(github.com/centrifugal/centrifuge)) = 0.11.0
+Provides: bundled(golang(github.com/crewjam/saml)) = 0.4.1
Provides: bundled(golang(github.com/davecgh/go-spew)) = 1.1.1
-Provides: bundled(golang(github.com/denisenkom/go-mssqldb)) = 0.0.0-20190707035753.2be1aa521ff4
+Provides: bundled(golang(github.com/denisenkom/go-mssqldb)) = 0.0.0-20200620013148.b91950f658ec
Provides: bundled(golang(github.com/facebookgo/inject)) = 0.0.0-20180706035515.f23751cae28b
-Provides: bundled(golang(github.com/fatih/color)) = 1.7.0
+Provides: bundled(golang(github.com/fatih/color)) = 1.9.0
+Provides: bundled(golang(github.com/gchaincl/sqlhooks)) = 1.3.0
Provides: bundled(golang(github.com/go-macaron/binding)) = 0.0.0-20190806013118.0b4f37bab25b
Provides: bundled(golang(github.com/go-macaron/gzip)) = 0.0.0-20160222043647.cad1c6580a07
Provides: bundled(golang(github.com/go-macaron/session)) = 0.0.0-20190805070824.1a3cdc6f5659
Provides: bundled(golang(github.com/go-sql-driver/mysql)) = 1.5.0
Provides: bundled(golang(github.com/go-stack/stack)) = 1.8.0
Provides: bundled(golang(github.com/gobwas/glob)) = 0.2.3
-Provides: bundled(golang(github.com/golang/protobuf)) = 1.4.0
-Provides: bundled(golang(github.com/google/go-cmp)) = 0.4.0
-Provides: bundled(golang(github.com/gorilla/websocket)) = 1.4.1
+Provides: bundled(golang(github.com/golang/protobuf)) = 1.4.2
+Provides: bundled(golang(github.com/google/go-cmp)) = 0.5.0
Provides: bundled(golang(github.com/gosimple/slug)) = 1.4.2
Provides: bundled(golang(github.com/grafana/grafana-plugin-model)) = 0.0.0-20190930120109.1fc953a61fb4
-Provides: bundled(golang(github.com/grafana/grafana-plugin-sdk-go)) = 0.75.0
-Provides: bundled(golang(github.com/hashicorp/go-hclog)) = 0.0.0-20180709165350.ff2cf002a8dd
+Provides: bundled(golang(github.com/grafana/grafana-plugin-sdk-go)) = 0.78.0
+Provides: bundled(golang(github.com/grafana/loki)) = 1.6.0
+Provides: bundled(golang(github.com/grpc-ecosystem/go-grpc-middleware)) = 1.2.1
+Provides: bundled(golang(github.com/hashicorp/go-hclog)) = 0.12.2
Provides: bundled(golang(github.com/hashicorp/go-plugin)) = 1.2.2
-Provides: bundled(golang(github.com/hashicorp/go-version)) = 1.1.0
+Provides: bundled(golang(github.com/hashicorp/go-version)) = 1.2.0
Provides: bundled(golang(github.com/inconshreveable/log15)) = 0.0.0-20180818164646.67afb5ed74ec
-Provides: bundled(golang(github.com/influxdata/influxdb-client-go)) = 1.3.0
-Provides: bundled(golang(github.com/jmespath/go-jmespath)) = 0.0.0-20180206201540.c2b33e8439af
+Provides: bundled(golang(github.com/influxdata/influxdb-client-go/v2)) = 2.0.1
+Provides: bundled(golang(github.com/jmespath/go-jmespath)) = 0.3.0
Provides: bundled(golang(github.com/jung-kurt/gofpdf)) = 1.10.1
-Provides: bundled(golang(github.com/lib/pq)) = 1.2.0
+Provides: bundled(golang(github.com/lib/pq)) = 1.3.0
Provides: bundled(golang(github.com/linkedin/goavro/v2)) = 2.9.7
+Provides: bundled(golang(github.com/magefile/mage)) = 1.9.0
Provides: bundled(golang(github.com/mattn/go-isatty)) = 0.0.12
Provides: bundled(golang(github.com/mattn/go-sqlite3)) = 1.11.0
-Provides: bundled(golang(github.com/opentracing/opentracing-go)) = 1.1.0
+Provides: bundled(golang(github.com/opentracing/opentracing-go)) = 1.2.0
Provides: bundled(golang(github.com/patrickmn/go-cache)) = 2.1.0+incompatible
Provides: bundled(golang(github.com/pkg/errors)) = 0.9.1
-Provides: bundled(golang(github.com/prometheus/client_golang)) = 1.3.0
-Provides: bundled(golang(github.com/prometheus/client_model)) = 0.1.0
-Provides: bundled(golang(github.com/prometheus/common)) = 0.7.0
+Provides: bundled(golang(github.com/prometheus/client_golang)) = 1.7.1
+Provides: bundled(golang(github.com/prometheus/client_model)) = 0.2.0
+Provides: bundled(golang(github.com/prometheus/common)) = 0.10.0
Provides: bundled(golang(github.com/robfig/cron)) = 0.0.0-20180505203441.b41be1df6967
Provides: bundled(golang(github.com/robfig/cron/v3)) = 3.0.0
-Provides: bundled(golang(github.com/smartystreets/goconvey)) = 0.0.0-20190731233626.505e41936337
-Provides: bundled(golang(github.com/stretchr/testify)) = 1.5.1
+Provides: bundled(golang(github.com/russellhaering/goxmldsig)) = 0.0.0-20200902171629.2e1fbc2c5593
+Provides: bundled(golang(github.com/smartystreets/goconvey)) = 1.6.4
+Provides: bundled(golang(github.com/stretchr/testify)) = 1.6.1
Provides: bundled(golang(github.com/teris-io/shortid)) = 0.0.0-20171029131806.771a37caa5cf
Provides: bundled(golang(github.com/timberio/go-datemath)) = 0.1.1-0.20200323150745.74ddef604fff
Provides: bundled(golang(github.com/ua-parser/uap-go)) = 0.0.0-20190826212731.daf92ba38329
-Provides: bundled(golang(github.com/uber/jaeger-client-go)) = 2.24.0+incompatible
+Provides: bundled(golang(github.com/uber/jaeger-client-go)) = 2.25.0+incompatible
Provides: bundled(golang(github.com/unknwon/com)) = 1.0.1
Provides: bundled(golang(github.com/urfave/cli/v2)) = 2.1.1
Provides: bundled(golang(github.com/xorcare/pointer)) = 1.1.0
Provides: bundled(golang(github.com/yudai/gojsondiff)) = 1.0.0
-Provides: bundled(golang(golang.org/x/crypto)) = 0.0.0-20200406173513.056763e48d71
-Provides: bundled(golang(golang.org/x/net)) = 0.0.0-20200501053045.e0ff5e5a1de5
+Provides: bundled(golang(golang.org/x/crypto)) = 0.0.0-20200820211705.5c72a883971a
+Provides: bundled(golang(golang.org/x/net)) = 0.0.0-20200813134508.3edf25e44fcc
Provides: bundled(golang(golang.org/x/oauth2)) = 0.0.0-20200107190931.bf48bf16ab8d
-Provides: bundled(golang(golang.org/x/sync)) = 0.0.0-20200317015054.43a5402ce75a
-Provides: bundled(golang(golang.org/x/xerrors)) = 0.0.0-20191204190536.9bdfabe68543
-Provides: bundled(golang(google.golang.org/grpc)) = 1.29.1
-Provides: bundled(golang(gopkg.in/ini.v1)) = 1.46.0
+Provides: bundled(golang(golang.org/x/sync)) = 0.0.0-20200625203802.6e8e738ad208
+Provides: bundled(golang(google.golang.org/grpc)) = 1.30.0
+Provides: bundled(golang(gopkg.in/ini.v1)) = 1.51.0
Provides: bundled(golang(gopkg.in/ldap.v3)) = 3.0.2
Provides: bundled(golang(gopkg.in/macaron.v1)) = 1.3.9
Provides: bundled(golang(gopkg.in/mail.v2)) = 2.3.1
Provides: bundled(golang(gopkg.in/redis.v5)) = 5.2.9
Provides: bundled(golang(gopkg.in/square/go-jose.v2)) = 2.4.1
-Provides: bundled(golang(gopkg.in/yaml.v2)) = 2.2.8
+Provides: bundled(golang(gopkg.in/yaml.v2)) = 2.3.0
Provides: bundled(golang(xorm.io/core)) = 0.7.3
Provides: bundled(golang(xorm.io/xorm)) = 0.8.1
-# Declare all nodejs modules bundled in the webpack - this is for security
-# purposes so if nodejs-foo ever needs an update, affected packages can be
-# easily identified.
-# Note: generated with the Makefile (see README.md)
-Provides: bundled(nodejs-@grafana/slate-react) = 0.22.9-grafana
-Provides: bundled(nodejs-@reduxjs/toolkit) = 1.3.4
-Provides: bundled(nodejs-@torkelo/react-select) = 3.0.8
-Provides: bundled(nodejs-@types/antlr4) = 4.7.1
-Provides: bundled(nodejs-@types/braintree__sanitize-url) = 4.0.0
-Provides: bundled(nodejs-@types/common-tags) = 1.8.0
-Provides: bundled(nodejs-@types/jsurl) = 1.2.28
-Provides: bundled(nodejs-@types/md5) = 2.1.33
-Provides: bundled(nodejs-@types/react-loadable) = 5.5.2
-Provides: bundled(nodejs-@types/react-virtualized-auto-sizer) = 1.0.0
-Provides: bundled(nodejs-@welldone-software/why-did-you-render) = 4.0.6
-Provides: bundled(nodejs-abortcontroller-polyfill) = 1.4.0
-Provides: bundled(nodejs-angular) = 1.6.9
-Provides: bundled(nodejs-angular-bindonce) = 0.3.1
-Provides: bundled(nodejs-angular-native-dragdrop) = 1.2.2
-Provides: bundled(nodejs-angular-route) = 1.6.6
-Provides: bundled(nodejs-angular-sanitize) = 1.6.6
-Provides: bundled(nodejs-antlr4) = 4.8.0
-Provides: bundled(nodejs-baron) = 3.0.3
-Provides: bundled(nodejs-brace) = 0.11.1
-Provides: bundled(nodejs-calculate-size) = 1.1.1
-Provides: bundled(nodejs-classnames) = 2.2.6
-Provides: bundled(nodejs-clipboard) = 2.0.4
-Provides: bundled(nodejs-common-tags) = 1.8.0
-Provides: bundled(nodejs-core-js) = 1.2.7
-Provides: bundled(nodejs-d3) = 5.15.0
-Provides: bundled(nodejs-d3-scale-chromatic) = 1.5.0
-Provides: bundled(nodejs-dangerously-set-html-content) = 1.0.6
-Provides: bundled(nodejs-emotion) = 10.0.27
-Provides: bundled(nodejs-eventemitter3) = 3.1.2
-Provides: bundled(nodejs-fast-text-encoding) = 1.0.0
-Provides: bundled(nodejs-file-saver) = 2.0.2
-Provides: bundled(nodejs-hoist-non-react-statics) = 2.5.5
-Provides: bundled(nodejs-immutable) = 3.8.2
-Provides: bundled(nodejs-is-hotkey) = 0.1.4
-Provides: bundled(nodejs-jquery) = 3.4.1
-Provides: bundled(nodejs-jsurl) = 0.1.5
-Provides: bundled(nodejs-lodash) = 3.10.1
-Provides: bundled(nodejs-lru-cache) = 4.1.5
-Provides: bundled(nodejs-marked) = 0.3.19
-Provides: bundled(nodejs-md5) = 2.2.1
-Provides: bundled(nodejs-memoize-one) = 4.1.0
-Provides: bundled(nodejs-moment) = 2.24.0
-Provides: bundled(nodejs-moment-timezone) = 0.5.28
-Provides: bundled(nodejs-mousetrap) = 1.6.5
-Provides: bundled(nodejs-mousetrap-global-bind) = 1.1.0
-Provides: bundled(nodejs-nodemon) = 2.0.2
-Provides: bundled(nodejs-papaparse) = 4.6.3
-Provides: bundled(nodejs-prismjs) = 1.17.1
-Provides: bundled(nodejs-prop-types) = 15.7.2
-Provides: bundled(nodejs-rc-cascader) = 1.0.1
-Provides: bundled(nodejs-re-resizable) = 6.2.0
-Provides: bundled(nodejs-react) = 16.10.2
-Provides: bundled(nodejs-react-dom) = 16.10.2
-Provides: bundled(nodejs-react-grid-layout) = 0.17.1
-Provides: bundled(nodejs-react-highlight-words) = 0.16.0
-Provides: bundled(nodejs-react-loadable) = 5.5.0
-Provides: bundled(nodejs-react-popper) = 1.3.3
-Provides: bundled(nodejs-react-redux) = 7.2.0
-Provides: bundled(nodejs-react-sizeme) = 2.6.8
-Provides: bundled(nodejs-react-split-pane) = 0.1.89
-Provides: bundled(nodejs-react-transition-group) = 2.9.0
-Provides: bundled(nodejs-react-use) = 13.27.0
-Provides: bundled(nodejs-react-virtualized-auto-sizer) = 1.0.2
-Provides: bundled(nodejs-react-window) = 1.8.5
-Provides: bundled(nodejs-redux) = 3.7.2
-Provides: bundled(nodejs-redux-logger) = 3.0.6
-Provides: bundled(nodejs-redux-thunk) = 2.3.0
-Provides: bundled(nodejs-regenerator-runtime) = 0.11.1
-Provides: bundled(nodejs-reselect) = 4.0.0
-Provides: bundled(nodejs-rst2html) = 1.0.4
-Provides: bundled(nodejs-rxjs) = 6.5.5
-Provides: bundled(nodejs-search-query-parser) = 1.5.4
-Provides: bundled(nodejs-slate) = 0.47.8
-Provides: bundled(nodejs-slate-plain-serializer) = 0.7.10
-Provides: bundled(nodejs-tether) = 1.4.7
-Provides: bundled(nodejs-tether-drop) = 1.5.0
-Provides: bundled(nodejs-tinycolor2) = 1.4.1
-Provides: bundled(nodejs-tti-polyfill) = 0.2.2
-Provides: bundled(nodejs-whatwg-fetch) = 3.0.0
+Provides: bundled(npm(@babel/core)) = 7.6.2
+Provides: bundled(npm(@babel/plugin-proposal-nullish-coalescing-operator)) = 7.8.3
+Provides: bundled(npm(@babel/plugin-proposal-optional-chaining)) = 7.8.3
+Provides: bundled(npm(@babel/plugin-syntax-dynamic-import)) = 7.2.0
+Provides: bundled(npm(@babel/preset-env)) = 7.6.3
+Provides: bundled(npm(@babel/preset-react)) = 7.6.3
+Provides: bundled(npm(@babel/preset-typescript)) = 7.8.3
+Provides: bundled(npm(@emotion/core)) = 10.0.21
+Provides: bundled(npm(@grafana/api-documenter)) = 0.9.3
+Provides: bundled(npm(@grafana/api-extractor)) = 7.10.1
+Provides: bundled(npm(@grafana/eslint-config)) = 2.0.3
+Provides: bundled(npm(@grafana/slate-react)) = 0.22.9-grafana
+Provides: bundled(npm(@reduxjs/toolkit)) = 1.3.4
+Provides: bundled(npm(@rtsao/plugin-proposal-class-properties)) = 7.0.1-patch.1
+Provides: bundled(npm(@testing-library/jest-dom)) = 5.11.3
+Provides: bundled(npm(@testing-library/react)) = 10.4.8
+Provides: bundled(npm(@testing-library/react-hooks)) = 3.2.1
+Provides: bundled(npm(@testing-library/user-event)) = 12.1.3
+Provides: bundled(npm(@torkelo/react-select)) = 3.0.8
+Provides: bundled(npm(@types/angular)) = 1.6.56
+Provides: bundled(npm(@types/angular-route)) = 1.7.0
+Provides: bundled(npm(@types/antlr4)) = 4.7.1
+Provides: bundled(npm(@types/braintree__sanitize-url)) = 4.0.0
+Provides: bundled(npm(@types/classnames)) = 2.2.7
+Provides: bundled(npm(@types/clipboard)) = 2.0.1
+Provides: bundled(npm(@types/common-tags)) = 1.8.0
+Provides: bundled(npm(@types/d3)) = 5.7.2
+Provides: bundled(npm(@types/d3-scale-chromatic)) = 1.3.1
+Provides: bundled(npm(@types/enzyme)) = 3.10.3
+Provides: bundled(npm(@types/enzyme-adapter-react-16)) = 1.0.6
+Provides: bundled(npm(@types/file-saver)) = 2.0.1
+Provides: bundled(npm(@types/hoist-non-react-statics)) = 3.3.1
+Provides: bundled(npm(@types/is-hotkey)) = 0.1.1
+Provides: bundled(npm(@types/jest)) = 23.3.14
+Provides: bundled(npm(@types/jquery)) = 3.3.38
+Provides: bundled(npm(@types/jsurl)) = 1.2.28
+Provides: bundled(npm(@types/lodash)) = 4.14.123
+Provides: bundled(npm(@types/lru-cache)) = 5.1.0
+Provides: bundled(npm(@types/marked)) = 1.1.0
+Provides: bundled(npm(@types/md5)) = 2.1.33
+Provides: bundled(npm(@types/moment-timezone)) = 0.5.13
+Provides: bundled(npm(@types/mousetrap)) = 1.6.3
+Provides: bundled(npm(@types/node)) = 10.14.1
+Provides: bundled(npm(@types/papaparse)) = 5.2.0
+Provides: bundled(npm(@types/prismjs)) = 1.16.0
+Provides: bundled(npm(@types/react)) = 16.8.16
+Provides: bundled(npm(@types/react-beautiful-dnd)) = 12.1.2
+Provides: bundled(npm(@types/react-dom)) = 16.8.4
+Provides: bundled(npm(@types/react-grid-layout)) = 0.16.7
+Provides: bundled(npm(@types/react-loadable)) = 5.5.2
+Provides: bundled(npm(@types/react-redux)) = 7.1.7
+Provides: bundled(npm(@types/react-select)) = 3.0.8
+Provides: bundled(npm(@types/react-test-renderer)) = 16.9.1
+Provides: bundled(npm(@types/react-transition-group)) = 4.2.3
+Provides: bundled(npm(@types/react-virtualized-auto-sizer)) = 1.0.0
+Provides: bundled(npm(@types/react-window)) = 1.8.1
+Provides: bundled(npm(@types/redux-logger)) = 3.0.7
+Provides: bundled(npm(@types/redux-mock-store)) = 1.0.2
+Provides: bundled(npm(@types/reselect)) = 2.2.0
+Provides: bundled(npm(@types/slate)) = 0.47.1
+Provides: bundled(npm(@types/slate-plain-serializer)) = 0.6.1
+Provides: bundled(npm(@types/slate-react)) = 0.22.5
+Provides: bundled(npm(@types/sockjs-client)) = 1.1.1
+Provides: bundled(npm(@types/testing-library__jest-dom)) = 5.9.2
+Provides: bundled(npm(@types/testing-library__react-hooks)) = 3.1.0
+Provides: bundled(npm(@types/tinycolor2)) = 1.4.1
+Provides: bundled(npm(@types/uuid)) = 8.3.0
+Provides: bundled(npm(@typescript-eslint/eslint-plugin)) = 4.0.1
+Provides: bundled(npm(@typescript-eslint/parser)) = 4.0.1
+Provides: bundled(npm(@welldone-software/why-did-you-render)) = 4.0.6
+Provides: bundled(npm(abortcontroller-polyfill)) = 1.4.0
+Provides: bundled(npm(angular)) = 1.6.9
+Provides: bundled(npm(angular-bindonce)) = 0.3.1
+Provides: bundled(npm(angular-mocks)) = 1.6.6
+Provides: bundled(npm(angular-native-dragdrop)) = 1.2.2
+Provides: bundled(npm(angular-route)) = 1.6.6
+Provides: bundled(npm(angular-sanitize)) = 1.6.6
+Provides: bundled(npm(antlr4)) = 4.8.0
+Provides: bundled(npm(autoprefixer)) = 9.7.4
+Provides: bundled(npm(axios)) = 0.19.0
+Provides: bundled(npm(babel-core)) = 7.0.0-bridge.0
+Provides: bundled(npm(babel-jest)) = 24.8.0
+Provides: bundled(npm(babel-loader)) = 8.0.6
+Provides: bundled(npm(babel-plugin-angularjs-annotate)) = 0.10.0
+Provides: bundled(npm(baron)) = 3.0.3
+Provides: bundled(npm(brace)) = 0.11.1
+Provides: bundled(npm(calculate-size)) = 1.1.1
+Provides: bundled(npm(centrifuge)) = 2.6.4
+Provides: bundled(npm(classnames)) = 2.2.6
+Provides: bundled(npm(clean-webpack-plugin)) = 3.0.0
+Provides: bundled(npm(clipboard)) = 2.0.4
+Provides: bundled(npm(common-tags)) = 1.8.0
+Provides: bundled(npm(core-js)) = 1.2.7
+Provides: bundled(npm(css-loader)) = 3.2.0
+Provides: bundled(npm(d3)) = 5.15.0
+Provides: bundled(npm(d3-scale-chromatic)) = 1.5.0
+Provides: bundled(npm(dangerously-set-html-content)) = 1.0.6
+Provides: bundled(npm(emotion)) = 10.0.27
+Provides: bundled(npm(enzyme)) = 3.11.0
+Provides: bundled(npm(enzyme-adapter-react-16)) = 1.15.2
+Provides: bundled(npm(enzyme-to-json)) = 3.4.4
+Provides: bundled(npm(es6-promise)) = 4.2.8
+Provides: bundled(npm(es6-shim)) = 0.35.5
+Provides: bundled(npm(eslint)) = 2.13.1
+Provides: bundled(npm(eslint-config-prettier)) = 6.11.0
+Provides: bundled(npm(eslint-plugin-jsdoc)) = 28.6.1
+Provides: bundled(npm(eslint-plugin-prettier)) = 3.1.4
+Provides: bundled(npm(eslint-plugin-react-hooks)) = 4.0.5
+Provides: bundled(npm(eventemitter3)) = 3.1.2
+Provides: bundled(npm(expect.js)) = 0.3.1
+Provides: bundled(npm(expose-loader)) = 0.7.5
+Provides: bundled(npm(fast-text-encoding)) = 1.0.0
+Provides: bundled(npm(file-loader)) = 4.3.0
+Provides: bundled(npm(file-saver)) = 2.0.2
+Provides: bundled(npm(fork-ts-checker-webpack-plugin)) = 1.0.0
+Provides: bundled(npm(gaze)) = 1.1.3
+Provides: bundled(npm(glob)) = 5.0.15
+Provides: bundled(npm(grunt)) = 1.0.4
+Provides: bundled(npm(grunt-angular-templates)) = 1.1.0
+Provides: bundled(npm(grunt-cli)) = 1.2.0
+Provides: bundled(npm(grunt-contrib-clean)) = 2.0.0
+Provides: bundled(npm(grunt-contrib-compress)) = 1.6.0
+Provides: bundled(npm(grunt-contrib-copy)) = 1.0.0
+Provides: bundled(npm(grunt-exec)) = 3.0.0
+Provides: bundled(npm(grunt-newer)) = 1.3.0
+Provides: bundled(npm(grunt-notify)) = 0.4.5
+Provides: bundled(npm(grunt-postcss)) = 0.9.0
+Provides: bundled(npm(grunt-sass-lint)) = 0.2.4
+Provides: bundled(npm(grunt-usemin)) = 3.1.1
+Provides: bundled(npm(grunt-webpack)) = 3.1.3
+Provides: bundled(npm(hoist-non-react-statics)) = 2.5.5
+Provides: bundled(npm(html-loader)) = 0.5.5
+Provides: bundled(npm(html-webpack-harddisk-plugin)) = 1.0.1
+Provides: bundled(npm(html-webpack-plugin)) = 3.2.0
+Provides: bundled(npm(husky)) = 4.2.1
+Provides: bundled(npm(immutable)) = 3.8.2
+Provides: bundled(npm(is-hotkey)) = 0.1.4
+Provides: bundled(npm(jest)) = 25.5.4
+Provides: bundled(npm(jest-canvas-mock)) = 2.1.2
+Provides: bundled(npm(jest-date-mock)) = 1.0.8
+Provides: bundled(npm(jquery)) = 3.4.1
+Provides: bundled(npm(jsurl)) = 0.1.5
+Provides: bundled(npm(lerna)) = 3.20.2
+Provides: bundled(npm(lint-staged)) = 10.0.7
+Provides: bundled(npm(load-grunt-tasks)) = 5.1.0
+Provides: bundled(npm(lodash)) = 3.10.1
+Provides: bundled(npm(lru-cache)) = 4.1.5
+Provides: bundled(npm(marked)) = 0.3.19
+Provides: bundled(npm(md5)) = 2.2.1
+Provides: bundled(npm(memoize-one)) = 4.1.0
+Provides: bundled(npm(mini-css-extract-plugin)) = 0.7.0
+Provides: bundled(npm(mocha)) = 7.0.1
+Provides: bundled(npm(module-alias)) = 2.2.2
+Provides: bundled(npm(moment)) = 2.24.0
+Provides: bundled(npm(moment-timezone)) = 0.5.28
+Provides: bundled(npm(monaco-editor)) = 0.20.0
+Provides: bundled(npm(monaco-editor-webpack-plugin)) = 1.9.0
+Provides: bundled(npm(mousetrap)) = 1.6.5
+Provides: bundled(npm(mousetrap-global-bind)) = 1.1.0
+Provides: bundled(npm(mutationobserver-shim)) = 0.3.3
+Provides: bundled(npm(ngtemplate-loader)) = 2.0.1
+Provides: bundled(npm(node-sass)) = 4.13.1
+Provides: bundled(npm(nodemon)) = 2.0.2
+Provides: bundled(npm(optimize-css-assets-webpack-plugin)) = 5.0.3
+Provides: bundled(npm(papaparse)) = 4.6.3
+Provides: bundled(npm(postcss-browser-reporter)) = 0.6.0
+Provides: bundled(npm(postcss-loader)) = 3.0.0
+Provides: bundled(npm(postcss-reporter)) = 6.0.1
+Provides: bundled(npm(prettier)) = 1.18.2
+Provides: bundled(npm(prismjs)) = 1.17.1
+Provides: bundled(npm(prop-types)) = 15.7.2
+Provides: bundled(npm(rc-cascader)) = 1.0.1
+Provides: bundled(npm(re-resizable)) = 6.2.0
+Provides: bundled(npm(react)) = 16.10.2
+Provides: bundled(npm(react-dom)) = 16.10.2
+Provides: bundled(npm(react-grid-layout)) = 0.17.1
+Provides: bundled(npm(react-highlight-words)) = 0.16.0
+Provides: bundled(npm(react-hot-loader)) = 4.8.0
+Provides: bundled(npm(react-loadable)) = 5.5.0
+Provides: bundled(npm(react-popper)) = 1.3.3
+Provides: bundled(npm(react-redux)) = 7.2.0
+Provides: bundled(npm(react-reverse-portal)) = 2.0.1
+Provides: bundled(npm(react-sizeme)) = 2.6.8
+Provides: bundled(npm(react-split-pane)) = 0.1.89
+Provides: bundled(npm(react-test-renderer)) = 16.10.2
+Provides: bundled(npm(react-transition-group)) = 2.9.0
+Provides: bundled(npm(react-use)) = 13.27.0
+Provides: bundled(npm(react-virtualized-auto-sizer)) = 1.0.2
+Provides: bundled(npm(react-window)) = 1.8.5
+Provides: bundled(npm(redux)) = 3.7.2
+Provides: bundled(npm(redux-logger)) = 3.0.6
+Provides: bundled(npm(redux-mock-store)) = 1.5.4
+Provides: bundled(npm(redux-thunk)) = 2.3.0
+Provides: bundled(npm(regenerator-runtime)) = 0.11.1
+Provides: bundled(npm(regexp-replace-loader)) = 1.0.1
+Provides: bundled(npm(reselect)) = 4.0.0
+Provides: bundled(npm(rimraf)) = 2.6.3
+Provides: bundled(npm(rst2html)) = 1.0.4
+Provides: bundled(npm(rxjs)) = 6.5.5
+Provides: bundled(npm(rxjs-spy)) = 7.5.1
+Provides: bundled(npm(sass-lint)) = 1.12.1
+Provides: bundled(npm(sass-loader)) = 8.0.2
+Provides: bundled(npm(search-query-parser)) = 1.5.4
+Provides: bundled(npm(sinon)) = 8.1.1
+Provides: bundled(npm(slate)) = 0.47.8
+Provides: bundled(npm(slate-plain-serializer)) = 0.7.10
+Provides: bundled(npm(sockjs-client)) = 1.4.0
+Provides: bundled(npm(style-loader)) = 1.1.3
+Provides: bundled(npm(terser-webpack-plugin)) = 1.4.1
+Provides: bundled(npm(tether)) = 1.4.7
+Provides: bundled(npm(tether-drop)) = 1.5.0
+Provides: bundled(npm(tinycolor2)) = 1.4.1
+Provides: bundled(npm(ts-jest)) = 26.3.0
+Provides: bundled(npm(ts-node)) = 8.8.1
+Provides: bundled(npm(tslib)) = 1.10.0
+Provides: bundled(npm(tti-polyfill)) = 0.2.2
+Provides: bundled(npm(typescript)) = 3.7.5
+Provides: bundled(npm(uuid)) = 3.3.3
+Provides: bundled(npm(webpack)) = 4.41.2
+Provides: bundled(npm(webpack-bundle-analyzer)) = 3.6.0
+Provides: bundled(npm(webpack-cleanup-plugin)) = 0.5.1
+Provides: bundled(npm(webpack-cli)) = 3.3.10
+Provides: bundled(npm(webpack-dev-server)) = 3.10.3
+Provides: bundled(npm(webpack-merge)) = 4.2.2
+Provides: bundled(npm(whatwg-fetch)) = 3.0.0
+Provides: bundled(npm(zone.js)) = 0.7.8
%description
@@ -244,27 +423,34 @@ Graphite, InfluxDB & OpenTSDB.
%prep
%setup -q -T -D -b 0
-rm -r plugins-bundled # compiled bundled plugins are in grafana-webpack
%setup -q -T -D -b 1
+%if %{compile_frontend} == 0
+# remove bundled plugins source, otherwise they'll get merged
+# with the compiled bundled plugins when extracting the webpack
+rm -r plugins-bundled
+%endif
%setup -q -T -D -b 2
%patch1 -p1
%patch2 -p1
-%if 0%{?fedora} >= 33
%patch3 -p1
-%endif
%ifarch s390x
%patch4 -p1
%endif
# Set up build subdirs and links
mkdir -p %{_builddir}/src/github.com/grafana
-ln -sf %{_builddir}/%{name}-%{version} \
+ln -s %{_builddir}/%{name}-%{version} \
%{_builddir}/src/github.com/grafana/grafana
%build
-# Build the server-side binaries
+# Build the frontend
+%if %{compile_frontend}
+%{SOURCE4}
+%endif
+
+# Build the backend
cd %{_builddir}/src/github.com/grafana/grafana
export GOPATH=%{_builddir}
@@ -364,12 +550,20 @@ chmod 640 %{_sysconfdir}/%{name}/ldap.toml
%check
+# Frontend tests
+%if %{compile_frontend}
+yarn test
+%endif
+
+# Backend tests
cd %{_builddir}/src/github.com/grafana/grafana
export GOPATH=%{_builddir}
-# remove tests currently failing - these two are due to a symlink
-# BUILD/src/github.com/grafana/grafana -> BUILD/grafana-6.6.1
-rm -f pkg/services/provisioning/dashboards/file_reader_linux_test.go
-rm -f pkg/services/provisioning/dashboards/file_reader_test.go
+
+# in setting_test.go there is a unit test which checks if 10 days are 240 hours
+# which is usually true except if the dayligt saving time change falls into the last 10 days, then it's either 239 or 241 hours...
+# let's set the time zone to a time zone without daylight saving time
+export TZ=GMT
+
%gotest ./pkg/...
@@ -380,22 +574,19 @@ rm -f pkg/services/provisioning/dashboards/file_reader_test.go
%{_libexecdir}/%{name}
# config files
+%config(noreplace) %{_sysconfdir}/sysconfig/grafana-server
%dir %{_sysconfdir}/%{name}
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/dashboards
-%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/datasources
+%attr(0750, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/datasources
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/notifiers
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/plugins
-%config(noreplace) %attr(0640, root, %{GRAFANA_GROUP}) %{_sysconfdir}/%{name}/grafana.ini
-%config(noreplace) %attr(0640, root, %{GRAFANA_GROUP}) %{_sysconfdir}/%{name}/ldap.toml
-%config(noreplace) %{_sysconfdir}/sysconfig/grafana-server
-
-# Grafana configuration to dynamically create /run/grafana/grafana.pid on tmpfs
-%{_tmpfilesdir}/%{name}.conf
+%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/grafana.ini
+%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/ldap.toml
# config database directory and plugins
%attr(0750, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}
-%attr(-, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}/plugins
+%attr(-, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}/plugins
# shared directory and all files therein
%{_datadir}/%{name}
@@ -404,6 +595,9 @@ rm -f pkg/services/provisioning/dashboards/file_reader_test.go
# systemd service file
%{_unitdir}/grafana-server.service
+# Grafana configuration to dynamically create /run/grafana/grafana.pid on tmpfs
+%{_tmpfilesdir}/%{name}.conf
+
# log directory - grafana.log is created by grafana-server, and it does it's own log rotation
%attr(0755, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_localstatedir}/log/%{name}
@@ -418,6 +612,12 @@ rm -f pkg/services/provisioning/dashboards/file_reader_test.go
%changelog
+* Tue Nov 10 2020 Andreas Gerstmayr <agerstmayr(a)redhat.com> 7.3.1-1
+- update to 7.3.1 tagged upstream community sources, see CHANGELOG
+- optionally bundle node.js dependencies and build and test frontend as part of the specfile
+- change default provisioning path to /etc/grafana/provisioning (changed in version 7.1.1-1)
+- resolve https://bugzilla.redhat.com/show_bug.cgi?id=1843170
+
* Sat Aug 01 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 7.1.1-2
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
diff --git a/create_webpack_manifest.py b/list_bundled_nodejs_packages.py
similarity index 89%
rename from create_webpack_manifest.py
rename to list_bundled_nodejs_packages.py
index 0f62106..f5490c4 100755
--- a/create_webpack_manifest.py
+++ b/list_bundled_nodejs_packages.py
@@ -8,7 +8,7 @@ from packaging import version
def read_declared_pkgs(package_json_path):
with open(package_json_path) as f:
package_json = json.load(f)
- return list(package_json['dependencies'].keys())
+ return list(package_json['dependencies'].keys()) + list(package_json['devDependencies'].keys())
def read_installed_pkgs(yarn_lock_path):
@@ -28,7 +28,7 @@ def list_provides(declared_pkgs, installed_pkgs):
versions = [version.parse(pkg_version)
for pkg_name, pkg_version in installed_pkgs if pkg_name == declared_pkg]
oldest_version = sorted(versions)[0]
- yield f"Provides: bundled(nodejs-{declared_pkg}) = {oldest_version}"
+ yield f"Provides: bundled(npm({declared_pkg})) = {oldest_version}"
if __name__ == "__main__":
diff --git a/sources b/sources
index 0bf5376..a6e73c7 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (grafana-7.1.1.tar.gz) = 487322d6d26cdc1ce6fc03719ded482380c2be4bb01279367ff166b2bc9e3ca7691edc32a6c42bb9a64eb39d6620ca47855786e259dbfeb636585add5e1fe5b0
-SHA512 (grafana-vendor-7.1.1.tar.gz) = 966ec92abdd644e4a189e8c381c0ffc6e54995983ae4746eee183cdc65a6817e3368faf1366990795cb18299fe8a9883257ba7e2b7b5f24db0631e16ae223884
-SHA512 (grafana-webpack-7.1.1.tar.gz) = 5e271ecd9539dba4f902d3c2a14e5deb5b0f1fa686d20bf6ac3db11af54c6571477a56d270dae9c43f374c485c7cdc48155acfdeb7428ac3a1a09dd6abc71d90
+SHA512 (grafana-7.3.1.tar.gz) = 95e12158c58f99e5479aa042eccaed402957f3d05b8ecaf36aed8737ad3a33970a7204aeb1e6da1e58beb3144f29acf98ffa73b96fd6469ce73e66be0ac85f36
+SHA512 (grafana-vendor-go-7.3.1.tar.gz) = 76ae7c96f62a04ca3fa03dfd5637e257678ae740a494f81293c928e7b5735ef5cea51a1e5b7fb756f8ed0ad079dfa8f26249885253b6357519a2aa58737853c4
+SHA512 (grafana-webpack-7.3.1.tar.gz) = 6b1712177a53c1d7c6ee22c28ab3bd553c1b1b5b70539de4c9248ab97659a9ba862ab703280b607ac5664f6632ace8abc62c589983a3e635b73be0ed05d55b64
commit fa4f56cd7cde56d3cb3318f12605d3776b62dd5c
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Aug 1 03:20:29 2020 +0000
- Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/grafana.spec b/grafana.spec
index 2db57f1..875ca4a 100644
--- a/grafana.spec
+++ b/grafana.spec
@@ -10,7 +10,7 @@ end}
Name: grafana
Version: 7.1.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Metrics dashboard and graph editor
License: ASL 2.0
URL: https://grafana.org
@@ -418,6 +418,10 @@ rm -f pkg/services/provisioning/dashboards/file_reader_test.go
%changelog
+* Sat Aug 01 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 7.1.1-2
+- Second attempt - Rebuilt for
+ https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
* Thu Jul 30 2020 Andreas Gerstmayr <agerstmayr(a)redhat.com> 7.1.1-1
- update to 7.1.1 tagged upstream community sources, see CHANGELOG
- merge all datasources into main grafana package
commit 7a1a656aa30e5583c2b7ea5bfd3896cbe06e7bb8
Author: Andreas Gerstmayr <andreas(a)gerstmayr.me>
Date: Thu Jul 30 17:52:28 2020 +0200
update to upstream version 7.1.1
diff --git a/.gitignore b/.gitignore
index 015c8fd..15693e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/grafana-*.tar.gz
-/grafana_webpack-*.tar.gz
+/grafana-*.tar.gz.manifest
+/grafana-*/
diff --git a/001-login-oauth-use-oauth2-exchange.patch b/001-login-oauth-use-oauth2-exchange.patch
deleted file mode 100644
index f6dff49..0000000
--- a/001-login-oauth-use-oauth2-exchange.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pkg/api/login_oauth.go b/pkg/api/login_oauth.go
-index c8c9f05b33..1b5a67aec2 100644
---- a/pkg/api/login_oauth.go
-+++ b/pkg/api/login_oauth.go
-@@ -134,7 +134,7 @@ func (hs *HTTPServer) OAuthLogin(ctx *m.ReqContext) {
- oauthCtx := context.WithValue(context.Background(), oauth2.HTTPClient, oauthClient)
-
- // get token from provider
-- token, err := connect.Exchange(oauthCtx, code)
-+ token, err := connect.Exchange(oauthCtx, code, oauth2.AccessTypeOnline)
- if err != nil {
- ctx.Handle(500, "login.OAuthLogin(NewTransportWithCode)", err)
- return
diff --git a/004-wrappers-grafana-cli.patch b/001-wrappers-grafana-cli.patch
similarity index 100%
rename from 004-wrappers-grafana-cli.patch
rename to 001-wrappers-grafana-cli.patch
diff --git a/003-manpages.patch b/002-manpages.patch
similarity index 100%
rename from 003-manpages.patch
rename to 002-manpages.patch
diff --git a/002-remove-jaeger-tracing.patch b/002-remove-jaeger-tracing.patch
deleted file mode 100644
index e6fae49..0000000
--- a/002-remove-jaeger-tracing.patch
+++ /dev/null
@@ -1,279 +0,0 @@
-diff --git a/pkg/cmd/grafana-server/server.go b/pkg/cmd/grafana-server/server.go
-index 0dace4ebab..f1a4bfde53 100644
---- a/pkg/cmd/grafana-server/server.go
-+++ b/pkg/cmd/grafana-server/server.go
-@@ -23,7 +23,6 @@ import (
- _ "github.com/grafana/grafana/pkg/infra/metrics"
- _ "github.com/grafana/grafana/pkg/infra/remotecache"
- _ "github.com/grafana/grafana/pkg/infra/serverlock"
-- _ "github.com/grafana/grafana/pkg/infra/tracing"
- _ "github.com/grafana/grafana/pkg/infra/usagestats"
- "github.com/grafana/grafana/pkg/login"
- "github.com/grafana/grafana/pkg/login/social"
-diff --git a/pkg/infra/tracing/tracing.go b/pkg/infra/tracing/tracing.go
-deleted file mode 100644
-index 923459786b..0000000000
---- a/pkg/infra/tracing/tracing.go
-+++ /dev/null
-@@ -1,161 +0,0 @@
--package tracing
--
--import (
-- "context"
-- "fmt"
-- "io"
-- "strings"
--
-- "github.com/grafana/grafana/pkg/infra/log"
-- "github.com/grafana/grafana/pkg/registry"
-- "github.com/grafana/grafana/pkg/setting"
--
-- opentracing "github.com/opentracing/opentracing-go"
-- jaegercfg "github.com/uber/jaeger-client-go/config"
-- "github.com/uber/jaeger-client-go/zipkin"
--)
--
--func init() {
-- registry.RegisterService(&TracingService{})
--}
--
--type TracingService struct {
-- enabled bool
-- address string
-- customTags map[string]string
-- samplerType string
-- samplerParam float64
-- log log.Logger
-- closer io.Closer
-- zipkinPropagation bool
-- disableSharedZipkinSpans bool
--
-- Cfg *setting.Cfg `inject:""`
--}
--
--func (ts *TracingService) Init() error {
-- ts.log = log.New("tracing")
-- ts.parseSettings()
--
-- if ts.enabled {
-- return ts.initGlobalTracer()
-- }
--
-- return nil
--}
--
--func (ts *TracingService) parseSettings() {
-- var section, err = ts.Cfg.Raw.GetSection("tracing.jaeger")
-- if err != nil {
-- return
-- }
--
-- ts.address = section.Key("address").MustString("")
-- if ts.address != "" {
-- ts.enabled = true
-- }
--
-- ts.customTags = splitTagSettings(section.Key("always_included_tag").MustString(""))
-- ts.samplerType = section.Key("sampler_type").MustString("")
-- ts.samplerParam = section.Key("sampler_param").MustFloat64(1)
-- ts.zipkinPropagation = section.Key("zipkin_propagation").MustBool(false)
-- ts.disableSharedZipkinSpans = section.Key("disable_shared_zipkin_spans").MustBool(false)
--}
--
--func (ts *TracingService) initJaegerCfg() (jaegercfg.Configuration, error) {
-- cfg := jaegercfg.Configuration{
-- ServiceName: "grafana",
-- Disabled: !ts.enabled,
-- Sampler: &jaegercfg.SamplerConfig{
-- Type: ts.samplerType,
-- Param: ts.samplerParam,
-- },
-- Reporter: &jaegercfg.ReporterConfig{
-- LogSpans: false,
-- LocalAgentHostPort: ts.address,
-- },
-- }
--
-- _, err := cfg.FromEnv()
-- if err != nil {
-- return cfg, err
-- }
-- return cfg, nil
--}
--
--func (ts *TracingService) initGlobalTracer() error {
-- cfg, err := ts.initJaegerCfg()
-- if err != nil {
-- return err
-- }
--
-- jLogger := &jaegerLogWrapper{logger: log.New("jaeger")}
--
-- options := []jaegercfg.Option{}
-- options = append(options, jaegercfg.Logger(jLogger))
--
-- for tag, value := range ts.customTags {
-- options = append(options, jaegercfg.Tag(tag, value))
-- }
--
-- if ts.zipkinPropagation {
-- zipkinPropagator := zipkin.NewZipkinB3HTTPHeaderPropagator()
-- options = append(options,
-- jaegercfg.Injector(opentracing.HTTPHeaders, zipkinPropagator),
-- jaegercfg.Extractor(opentracing.HTTPHeaders, zipkinPropagator),
-- )
--
-- if !ts.disableSharedZipkinSpans {
-- options = append(options, jaegercfg.ZipkinSharedRPCSpan(true))
-- }
-- }
--
-- tracer, closer, err := cfg.NewTracer(options...)
-- if err != nil {
-- return err
-- }
--
-- opentracing.SetGlobalTracer(tracer)
--
-- ts.closer = closer
--
-- return nil
--}
--
--func (ts *TracingService) Run(ctx context.Context) error {
-- <-ctx.Done()
--
-- if ts.closer != nil {
-- ts.log.Info("Closing tracing")
-- ts.closer.Close()
-- }
--
-- return nil
--}
--
--func splitTagSettings(input string) map[string]string {
-- res := map[string]string{}
--
-- tags := strings.Split(input, ",")
-- for _, v := range tags {
-- kv := strings.Split(v, ":")
-- if len(kv) > 1 {
-- res[kv[0]] = kv[1]
-- }
-- }
--
-- return res
--}
--
--type jaegerLogWrapper struct {
-- logger log.Logger
--}
--
--func (jlw *jaegerLogWrapper) Error(msg string) {
-- jlw.logger.Error(msg)
--}
--
--func (jlw *jaegerLogWrapper) Infof(format string, args ...interface{}) {
-- msg := fmt.Sprintf(format, args...)
-- jlw.logger.Info(msg)
--}
-diff --git a/pkg/infra/tracing/tracing_test.go b/pkg/infra/tracing/tracing_test.go
-deleted file mode 100644
-index a6d71cf165..0000000000
---- a/pkg/infra/tracing/tracing_test.go
-+++ /dev/null
-@@ -1,94 +0,0 @@
--package tracing
--
--import (
-- "github.com/stretchr/testify/assert"
-- "github.com/stretchr/testify/require"
-- "os"
-- "testing"
--)
--
--func TestGroupSplit(t *testing.T) {
-- tests := []struct {
-- input string
-- expected map[string]string
-- }{
-- {
-- input: "tag1:value1,tag2:value2",
-- expected: map[string]string{
-- "tag1": "value1",
-- "tag2": "value2",
-- },
-- },
-- {
-- input: "",
-- expected: map[string]string{},
-- },
-- {
-- input: "tag1",
-- expected: map[string]string{},
-- },
-- }
--
-- for _, test := range tests {
-- tags := splitTagSettings(test.input)
-- for k, v := range test.expected {
-- value, exists := tags[k]
-- assert.Truef(t, exists, "Tag %q not found for input %q", k, test.input)
-- assert.Equalf(t, v, value, "Tag %q has wrong value for input %q", k, test.input)
-- }
-- }
--}
--
--func TestInitJaegerCfg_Default(t *testing.T) {
-- ts := &TracingService{}
-- cfg, err := ts.initJaegerCfg()
-- require.NoError(t, err)
--
-- assert.True(t, cfg.Disabled)
--}
--
--func TestInitJaegerCfg_Enabled(t *testing.T) {
-- ts := &TracingService{enabled: true}
-- cfg, err := ts.initJaegerCfg()
-- require.NoError(t, err)
--
-- assert.False(t, cfg.Disabled)
-- assert.Equal(t, "localhost:6831", cfg.Reporter.LocalAgentHostPort)
--}
--
--func TestInitJaegerCfg_DisabledViaEnv(t *testing.T) {
-- os.Setenv("JAEGER_DISABLED", "true")
-- defer func() {
-- os.Unsetenv("JAEGER_DISABLED")
-- }()
--
-- ts := &TracingService{enabled: true}
-- cfg, err := ts.initJaegerCfg()
-- require.NoError(t, err)
--
-- assert.True(t, cfg.Disabled)
--}
--
--func TestInitJaegerCfg_EnabledViaEnv(t *testing.T) {
-- os.Setenv("JAEGER_DISABLED", "false")
-- defer func() {
-- os.Unsetenv("JAEGER_DISABLED")
-- }()
--
-- ts := &TracingService{enabled: false}
-- cfg, err := ts.initJaegerCfg()
-- require.NoError(t, err)
--
-- assert.False(t, cfg.Disabled)
--}
--
--func TestInitJaegerCfg_InvalidEnvVar(t *testing.T) {
-- os.Setenv("JAEGER_DISABLED", "totallybogus")
-- defer func() {
-- os.Unsetenv("JAEGER_DISABLED")
-- }()
--
-- ts := &TracingService{}
-- _, err := ts.initJaegerCfg()
-- require.EqualError(t, err, "cannot parse env var JAEGER_DISABLED=totallybogus: strconv.ParseBool: parsing \"totallybogus\": invalid syntax")
--}
diff --git a/003-golang1.15.patch b/003-golang1.15.patch
new file mode 100644
index 0000000..d568703
--- /dev/null
+++ b/003-golang1.15.patch
@@ -0,0 +1,85 @@
+diff --git a/pkg/api/dashboard_test.go b/pkg/api/dashboard_test.go
+index b58cf217d3..90e110974e 100644
+--- a/pkg/api/dashboard_test.go
++++ b/pkg/api/dashboard_test.go
+@@ -3,6 +3,7 @@ package api
+ import (
+ "encoding/json"
+ "fmt"
++ "strconv"
+ "io/ioutil"
+ "testing"
+
+@@ -828,7 +829,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
+ bus.AddHandler("test", func(query *models.GetDashboardVersionQuery) error {
+ query.Result = &models.DashboardVersion{
+ Data: simplejson.NewFromAny(map[string]interface{}{
+- "title": "Dash" + string(query.DashboardId),
++ "title": "Dash" + strconv.FormatInt(query.DashboardId, 10),
+ }),
+ }
+ return nil
+diff --git a/pkg/components/gtime/gtime_test.go b/pkg/components/gtime/gtime_test.go
+index 4dab30fbf6..e4ba096a43 100644
+--- a/pkg/components/gtime/gtime_test.go
++++ b/pkg/components/gtime/gtime_test.go
+@@ -22,7 +22,7 @@ func TestParseInterval(t *testing.T) {
+ {interval: "1M", duration: now.Sub(now.AddDate(0, -1, 0))},
+ {interval: "1y", duration: now.Sub(now.AddDate(-1, 0, 0))},
+ {interval: "5y", duration: now.Sub(now.AddDate(-5, 0, 0))},
+- {interval: "invalid-duration", err: "time: invalid duration invalid-duration"},
++ {interval: "invalid-duration", err: "time: invalid duration \"invalid-duration\""},
+ }
+
+ for i, tc := range tcs {
+diff --git a/pkg/services/sqlstore/alert_notification_test.go b/pkg/services/sqlstore/alert_notification_test.go
+index 75d5582022..4986d0d781 100644
+--- a/pkg/services/sqlstore/alert_notification_test.go
++++ b/pkg/services/sqlstore/alert_notification_test.go
+@@ -168,7 +168,7 @@ func TestAlertNotificationSQLAccess(t *testing.T) {
+ cmd.Frequency = "invalid duration"
+
+ err := CreateAlertNotificationCommand(cmd)
+- So(err.Error(), ShouldEqual, "time: invalid duration invalid duration")
++ So(err.Error(), ShouldEqual, "time: invalid duration \"invalid duration\"")
+ })
+ })
+
+@@ -199,7 +199,7 @@ func TestAlertNotificationSQLAccess(t *testing.T) {
+
+ err := UpdateAlertNotification(updateCmd)
+ So(err, ShouldNotBeNil)
+- So(err.Error(), ShouldEqual, "time: invalid duration invalid duration")
++ So(err.Error(), ShouldEqual, "time: invalid duration \"invalid duration\"")
+ })
+ })
+
+diff --git a/pkg/services/sqlstore/sqlbuilder_test.go b/pkg/services/sqlstore/sqlbuilder_test.go
+index 42159171b0..abf669d294 100644
+--- a/pkg/services/sqlstore/sqlbuilder_test.go
++++ b/pkg/services/sqlstore/sqlbuilder_test.go
+@@ -5,6 +5,7 @@ import (
+ "math/rand"
+ "testing"
+ "time"
++ "strconv"
+
+ "github.com/grafana/grafana/pkg/components/simplejson"
+ "github.com/grafana/grafana/pkg/models"
+@@ -193,12 +194,12 @@ func test(t *testing.T, dashboardProps DashboardProps, dashboardPermission *Dash
+ func createDummyUser() (*models.User, error) {
+ uid := rand.Intn(9999999)
+ createUserCmd := &models.CreateUserCommand{
+- Email: string(uid) + "@example.com",
+- Login: string(uid),
+- Name: string(uid),
++ Email: strconv.Itoa(uid) + "@example.com",
++ Login: strconv.Itoa(uid),
++ Name: strconv.Itoa(uid),
+ Company: "",
+ OrgName: "",
+- Password: string(uid),
++ Password: strconv.Itoa(uid),
+ EmailVerified: true,
+ IsAdmin: false,
+ SkipOrgSetup: false,
diff --git a/004-remove-goldenfiles-test.patch b/004-remove-goldenfiles-test.patch
new file mode 100644
index 0000000..bc08ffc
--- /dev/null
+++ b/004-remove-goldenfiles-test.patch
@@ -0,0 +1,17 @@
+diff --git a/pkg/tsdb/influxdb/flux/executor_test.go b/pkg/tsdb/influxdb/flux/executor_test.go
+index b42389c94d..a24e16f97e 100644
+--- a/pkg/tsdb/influxdb/flux/executor_test.go
++++ b/pkg/tsdb/influxdb/flux/executor_test.go
+@@ -285,12 +285,3 @@ func TestBuckets(t *testing.T) {
+ fmt.Println("----------------------")
+ })
+ }
+-
+-func TestGoldenFiles(t *testing.T) {
+- t.Run("Renamed", func(t *testing.T) {
+- _, err := verifyGoldenResponse("renamed")
+- if err != nil {
+- t.Fatal(err.Error())
+- }
+- })
+-}
diff --git a/005-pkg-main-fix-import-paths.patch b/005-pkg-main-fix-import-paths.patch
deleted file mode 100644
index 4021e3f..0000000
--- a/005-pkg-main-fix-import-paths.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/pkg/extensions/main.go b/pkg/extensions/main.go
-index a88f67ff9e..7844aa1227 100644
---- a/pkg/extensions/main.go
-+++ b/pkg/extensions/main.go
-@@ -9,10 +9,10 @@ import (
- "github.com/grafana/grafana/pkg/registry"
- "github.com/grafana/grafana/pkg/services/licensing"
- _ "github.com/jung-kurt/gofpdf"
-- _ "github.com/linkedin/goavro/v2"
-+ _ "github.com/linkedin/goavro"
- _ "github.com/pkg/errors"
- _ "github.com/robfig/cron"
-- _ "github.com/robfig/cron/v3"
-+ _ "gopkg.in/robfig/cron.v3"
- _ "github.com/stretchr/testify/require"
- _ "gopkg.in/square/go-jose.v2"
- )
diff --git a/006-pkg-setting-ini-default-section.patch b/006-pkg-setting-ini-default-section.patch
deleted file mode 100644
index 263c614..0000000
--- a/006-pkg-setting-ini-default-section.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go
-index 19181be84e..9a745f67e4 100644
---- a/pkg/setting/setting.go
-+++ b/pkg/setting/setting.go
-@@ -387,7 +387,7 @@ func applyCommandLineDefaultProperties(props map[string]string, file *ini.File)
- func applyCommandLineProperties(props map[string]string, file *ini.File) {
- for _, section := range file.Sections() {
- sectionName := section.Name() + "."
-- if section.Name() == ini.DefaultSection {
-+ if section.Name() == ini.DEFAULT_SECTION {
- sectionName = ""
- }
- for _, key := range section.Keys() {
diff --git a/007-pkg-prometheus-client-query-range.patch b/007-pkg-prometheus-client-query-range.patch
deleted file mode 100644
index 5af4b40..0000000
--- a/007-pkg-prometheus-client-query-range.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/pkg/tsdb/prometheus/prometheus.go b/pkg/tsdb/prometheus/prometheus.go
-index 1244031bb4..c1d85b7e53 100644
---- a/pkg/tsdb/prometheus/prometheus.go
-+++ b/pkg/tsdb/prometheus/prometheus.go
-@@ -112,10 +112,10 @@ func (e *PrometheusExecutor) Query(ctx context.Context, dsInfo *models.DataSourc
- span.SetTag("stop_unixnano", query.End.UnixNano())
- defer span.Finish()
-
-- value, _, err := client.QueryRange(ctx, query.Expr, timeRange)
-+ value, queryErr := client.QueryRange(ctx, query.Expr, timeRange)
-
-- if err != nil {
-- return nil, err
-+ if queryErr != nil {
-+ return nil, queryErr
- }
-
- queryResult, err := parseResponse(value, query)
diff --git a/008-pkg-services-notifications-codes-Unknwon.patch b/008-pkg-services-notifications-codes-Unknwon.patch
deleted file mode 100644
index 8263705..0000000
--- a/008-pkg-services-notifications-codes-Unknwon.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pkg/services/notifications/codes.go b/pkg/services/notifications/codes.go
-index ae66aa1d1b..bfb95560fe 100644
---- a/pkg/services/notifications/codes.go
-+++ b/pkg/services/notifications/codes.go
-@@ -6,7 +6,7 @@ import (
- "fmt"
- "time"
-
-- "github.com/unknwon/com"
-+ "github.com/Unknwon/com"
-
- "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/setting"
diff --git a/009-pkg-fix-xorm-import.patch b/009-pkg-fix-xorm-import.patch
deleted file mode 100644
index c8a1c0a..0000000
--- a/009-pkg-fix-xorm-import.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-diff --git a/pkg/services/sqlstore/datasource.go b/pkg/services/sqlstore/datasource.go
-index c84f6bb948..414e343a63 100644
---- a/pkg/services/sqlstore/datasource.go
-+++ b/pkg/services/sqlstore/datasource.go
-@@ -5,7 +5,7 @@ import (
- "github.com/grafana/grafana/pkg/components/simplejson"
- "github.com/grafana/grafana/pkg/models"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
-
- "github.com/grafana/grafana/pkg/bus"
- "github.com/grafana/grafana/pkg/components/securejsondata"
-diff --git a/pkg/services/sqlstore/logger.go b/pkg/services/sqlstore/logger.go
-index 498c2b58c1..850e10cd21 100644
---- a/pkg/services/sqlstore/logger.go
-+++ b/pkg/services/sqlstore/logger.go
-@@ -5,7 +5,7 @@ import (
-
- glog "github.com/grafana/grafana/pkg/infra/log"
-
-- "github.com/go-xorm/core"
-+ "xorm.io/core"
- )
-
- type XormLogger struct {
-diff --git a/pkg/services/sqlstore/migrations/annotation_mig.go b/pkg/services/sqlstore/migrations/annotation_mig.go
-index 3ec5df841e..505ab5cf6e 100644
---- a/pkg/services/sqlstore/migrations/annotation_mig.go
-+++ b/pkg/services/sqlstore/migrations/annotation_mig.go
-@@ -1,7 +1,7 @@
- package migrations
-
- import (
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- . "github.com/grafana/grafana/pkg/services/sqlstore/migrator"
- )
-
-diff --git a/pkg/services/sqlstore/migrations/migrations_test.go b/pkg/services/sqlstore/migrations/migrations_test.go
-index 62ecbaad11..a9a3b38e62 100644
---- a/pkg/services/sqlstore/migrations/migrations_test.go
-+++ b/pkg/services/sqlstore/migrations/migrations_test.go
-@@ -3,7 +3,7 @@ package migrations
- import (
- "testing"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- . "github.com/grafana/grafana/pkg/services/sqlstore/migrator"
- "github.com/grafana/grafana/pkg/services/sqlstore/sqlutil"
-
-diff --git a/pkg/services/sqlstore/migrations/user_mig.go b/pkg/services/sqlstore/migrations/user_mig.go
-index 53110fe49b..e1a54a57bf 100644
---- a/pkg/services/sqlstore/migrations/user_mig.go
-+++ b/pkg/services/sqlstore/migrations/user_mig.go
-@@ -3,7 +3,7 @@ package migrations
- import (
- "fmt"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- . "github.com/grafana/grafana/pkg/services/sqlstore/migrator"
- "github.com/grafana/grafana/pkg/util"
- )
-diff --git a/pkg/services/sqlstore/migrator/column.go b/pkg/services/sqlstore/migrator/column.go
-index 28cef60a94..af093a8e59 100644
---- a/pkg/services/sqlstore/migrator/column.go
-+++ b/pkg/services/sqlstore/migrator/column.go
-@@ -1,7 +1,7 @@
- package migrator
-
- // Notice
--// code based on parts from from https://github.com/go-xorm/core/blob/3e0fa232ab5c90996406c0cd7ae86ad0e5ec...
-+// code based on parts from from https://xorm.io/core/blob/3e0fa232ab5c90996406c0cd7ae86ad0e5ecf85f/column.go
-
- type Column struct {
- Name string
-diff --git a/pkg/services/sqlstore/migrator/dialect.go b/pkg/services/sqlstore/migrator/dialect.go
-index 0aa2be7301..5246f17971 100644
---- a/pkg/services/sqlstore/migrator/dialect.go
-+++ b/pkg/services/sqlstore/migrator/dialect.go
-@@ -4,7 +4,7 @@ import (
- "fmt"
- "strings"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- )
-
- type Dialect interface {
-diff --git a/pkg/services/sqlstore/migrator/migrator.go b/pkg/services/sqlstore/migrator/migrator.go
-index 612a333a72..f314b6ea84 100644
---- a/pkg/services/sqlstore/migrator/migrator.go
-+++ b/pkg/services/sqlstore/migrator/migrator.go
-@@ -4,7 +4,7 @@ import (
- "time"
-
- _ "github.com/go-sql-driver/mysql"
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- "github.com/grafana/grafana/pkg/infra/log"
- "github.com/grafana/grafana/pkg/util/errutil"
- _ "github.com/lib/pq"
-diff --git a/pkg/services/sqlstore/migrator/mysql_dialect.go b/pkg/services/sqlstore/migrator/mysql_dialect.go
-index 147df03357..a658819ea2 100644
---- a/pkg/services/sqlstore/migrator/mysql_dialect.go
-+++ b/pkg/services/sqlstore/migrator/mysql_dialect.go
-@@ -7,7 +7,7 @@ import (
-
- "github.com/VividCortex/mysqlerr"
- "github.com/go-sql-driver/mysql"
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- )
-
- type Mysql struct {
-diff --git a/pkg/services/sqlstore/migrator/postgres_dialect.go b/pkg/services/sqlstore/migrator/postgres_dialect.go
-index 70803f3a9e..5ae7c57ea5 100644
---- a/pkg/services/sqlstore/migrator/postgres_dialect.go
-+++ b/pkg/services/sqlstore/migrator/postgres_dialect.go
-@@ -5,7 +5,7 @@ import (
- "strconv"
- "strings"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- "github.com/grafana/grafana/pkg/util/errutil"
- "github.com/lib/pq"
- )
-diff --git a/pkg/services/sqlstore/migrator/sqlite_dialect.go b/pkg/services/sqlstore/migrator/sqlite_dialect.go
-index 8372898c35..a306badd82 100644
---- a/pkg/services/sqlstore/migrator/sqlite_dialect.go
-+++ b/pkg/services/sqlstore/migrator/sqlite_dialect.go
-@@ -3,7 +3,7 @@ package migrator
- import (
- "fmt"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- "github.com/mattn/go-sqlite3"
- )
-
-diff --git a/pkg/services/sqlstore/migrator/types.go b/pkg/services/sqlstore/migrator/types.go
-index 48354998d8..957bef392d 100644
---- a/pkg/services/sqlstore/migrator/types.go
-+++ b/pkg/services/sqlstore/migrator/types.go
-@@ -4,7 +4,7 @@ import (
- "fmt"
- "strings"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- )
-
- const (
-diff --git a/pkg/services/sqlstore/session.go b/pkg/services/sqlstore/session.go
-index 07f1d4524c..e44105c79c 100644
---- a/pkg/services/sqlstore/session.go
-+++ b/pkg/services/sqlstore/session.go
-@@ -4,7 +4,7 @@ import (
- "context"
- "reflect"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- )
-
- type DBSession struct {
-diff --git a/pkg/services/sqlstore/sqlstore.go b/pkg/services/sqlstore/sqlstore.go
-index bede60f1ff..7076b76dd6 100644
---- a/pkg/services/sqlstore/sqlstore.go
-+++ b/pkg/services/sqlstore/sqlstore.go
-@@ -11,7 +11,7 @@ import (
- "time"
-
- "github.com/go-sql-driver/mysql"
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- "github.com/grafana/grafana/pkg/bus"
- "github.com/grafana/grafana/pkg/infra/localcache"
- "github.com/grafana/grafana/pkg/infra/log"
-diff --git a/pkg/services/sqlstore/transactions.go b/pkg/services/sqlstore/transactions.go
-index 27928f52a4..6d9888af39 100644
---- a/pkg/services/sqlstore/transactions.go
-+++ b/pkg/services/sqlstore/transactions.go
-@@ -4,7 +4,7 @@ import (
- "context"
- "time"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- "github.com/grafana/grafana/pkg/bus"
- "github.com/grafana/grafana/pkg/infra/log"
- "github.com/grafana/grafana/pkg/util/errutil"
-diff --git a/pkg/tsdb/mssql/mssql.go b/pkg/tsdb/mssql/mssql.go
-index 1ca3778b9d..debe106fa7 100644
---- a/pkg/tsdb/mssql/mssql.go
-+++ b/pkg/tsdb/mssql/mssql.go
-@@ -8,7 +8,7 @@ import (
- "github.com/grafana/grafana/pkg/setting"
-
- _ "github.com/denisenkom/go-mssqldb"
-- "github.com/go-xorm/core"
-+ "xorm.io/core"
- "github.com/grafana/grafana/pkg/infra/log"
- "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/tsdb"
-diff --git a/pkg/tsdb/mssql/mssql_test.go b/pkg/tsdb/mssql/mssql_test.go
-index 760c6dcf07..84e5e0e219 100644
---- a/pkg/tsdb/mssql/mssql_test.go
-+++ b/pkg/tsdb/mssql/mssql_test.go
-@@ -8,7 +8,7 @@ import (
- "testing"
- "time"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- "github.com/grafana/grafana/pkg/components/securejsondata"
- "github.com/grafana/grafana/pkg/components/simplejson"
- "github.com/grafana/grafana/pkg/models"
-diff --git a/pkg/tsdb/mysql/mysql.go b/pkg/tsdb/mysql/mysql.go
-index 682c3bc456..5ae7a9a87d 100644
---- a/pkg/tsdb/mysql/mysql.go
-+++ b/pkg/tsdb/mysql/mysql.go
-@@ -13,7 +13,7 @@ import (
- "github.com/grafana/grafana/pkg/setting"
-
- "github.com/go-sql-driver/mysql"
-- "github.com/go-xorm/core"
-+ "xorm.io/core"
- "github.com/grafana/grafana/pkg/infra/log"
- "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/tsdb"
-diff --git a/pkg/tsdb/mysql/mysql_test.go b/pkg/tsdb/mysql/mysql_test.go
-index b2ff2bc969..609f923d2c 100644
---- a/pkg/tsdb/mysql/mysql_test.go
-+++ b/pkg/tsdb/mysql/mysql_test.go
-@@ -8,7 +8,7 @@ import (
- "testing"
- "time"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- "github.com/grafana/grafana/pkg/components/securejsondata"
- "github.com/grafana/grafana/pkg/components/simplejson"
- "github.com/grafana/grafana/pkg/models"
-diff --git a/pkg/tsdb/postgres/postgres.go b/pkg/tsdb/postgres/postgres.go
-index a417699c1d..f38b94913b 100644
---- a/pkg/tsdb/postgres/postgres.go
-+++ b/pkg/tsdb/postgres/postgres.go
-@@ -7,7 +7,7 @@ import (
-
- "github.com/grafana/grafana/pkg/setting"
-
-- "github.com/go-xorm/core"
-+ "xorm.io/core"
- "github.com/grafana/grafana/pkg/infra/log"
- "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/tsdb"
-diff --git a/pkg/tsdb/postgres/postgres_test.go b/pkg/tsdb/postgres/postgres_test.go
-index 23d0830d3d..d839d42ddb 100644
---- a/pkg/tsdb/postgres/postgres_test.go
-+++ b/pkg/tsdb/postgres/postgres_test.go
-@@ -8,7 +8,7 @@ import (
- "testing"
- "time"
-
-- "github.com/go-xorm/xorm"
-+ "xorm.io/xorm"
- "github.com/grafana/grafana/pkg/components/securejsondata"
- "github.com/grafana/grafana/pkg/components/simplejson"
- "github.com/grafana/grafana/pkg/models"
-diff --git a/pkg/tsdb/sqleng/sql_engine.go b/pkg/tsdb/sqleng/sql_engine.go
-index 0cfb1560e4..13bc84bd06 100644
---- a/pkg/tsdb/sqleng/sql_engine.go
-+++ b/pkg/tsdb/sqleng/sql_engine.go
-@@ -19,8 +19,8 @@ import (
-
- "github.com/grafana/grafana/pkg/components/null"
-
-- "github.com/go-xorm/core"
-- "github.com/go-xorm/xorm"
-+ "xorm.io/core"
-+ "xorm.io/xorm"
- "github.com/grafana/grafana/pkg/components/simplejson"
- "github.com/grafana/grafana/pkg/models"
- )
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..3f1696f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,30 @@
+all: grafana-vendor-$(VER).tar.gz \
+ grafana-vendor-$(VER).tar.gz.manifest \
+ grafana-webpack-$(VER).tar.gz \
+ grafana-webpack-$(VER).tar.gz.manifest
+
+grafana-$(VER).tar.gz grafana-$(VER):
+ wget https://github.com/grafana/grafana/archive/v$(VER)/grafana-$(VER).tar.gz
+ tar xfz grafana-$(VER).tar.gz
+
+grafana-vendor-$(VER).tar.gz: grafana-$(VER).tar.gz
+ cd grafana-$(VER) && go mod vendor -v
+ tar cfz $@ grafana-$(VER)/vendor
+
+grafana-vendor-$(VER).tar.gz.manifest: grafana-$(VER).tar.gz
+ awk '$$2~/^v/ && $$4 != "indirect" {print "Provides: bundled(golang(" $$1 ")) = " substr($$2, 2)}' grafana-$(VER)/go.mod | \
+ sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > $@
+
+grafana-webpack-$(VER).tar.gz: grafana-$(VER).tar.gz
+ cd grafana-$(VER) && yarn install --pure-lockfile && yarn run build
+ cd grafana-$(VER) && \
+ mkdir plugins-bundled/external && yarn run plugins:build-bundled && \
+ for plugin in plugins-bundled/internal/*; do mv $$plugin $$plugin.tmp; mv $$plugin.tmp/dist $$plugin; rm -rf $$plugin.tmp; done && \
+ rm plugins-bundled/README.md plugins-bundled/.gitignore plugins-bundled/external.json
+ tar cfz $@ grafana-$(VER)/public/build grafana-$(VER)/public/views grafana-$(VER)/plugins-bundled
+
+grafana-webpack-$(VER).tar.gz.manifest: grafana-$(VER).tar.gz
+ ./create_webpack_manifest.py grafana-$(VER)/ > $@
+
+clean:
+ rm -rf *.tar.gz grafana-*/
diff --git a/README.md b/README.md
index a2871e3..1c34177 100644
--- a/README.md
+++ b/README.md
@@ -5,12 +5,11 @@ The grafana package
(replace X.Y.Z with the new Grafana version)
* update `Version` and `%changelog` in the specfile
-* download source tarball and create webpack: `./make_grafana_webpack.sh X.Y.Z`
-* update golang buildrequires: `./list_go_buildrequires.sh grafana-X.Y.Z` and replace the old golang `BuildRequires:` with the new ones
-* update nodejs provides: `./list_bundled_nodejs_packages.py grafana-X.Y.Z` and replace the old nodejs `Provides:` with the new ones
+* create bundles and manifests: `VER=X.Y.Z make`
+* update specfile with contents of `grafana-vendor-X.Y.Z.tar.gz.manifest` and `grafana-webpack-X.Y.Z.tar.gz.manifest`
* check if the default configuration has changed: `diff grafana-X.Y.Z/conf/defaults.ini distro-defaults.ini` and update `distro-defaults.ini` if necessary
-* install all new golang build dependencies: `sudo dnf builddep grafana.spec` and create packages for missing dependencies
-* run local build: `rpkg local`, and if any patches fail, update them accordingly
+* run local build: `rpkg local`
* run rpm linter: `rpkg lint`
-* run local builds with different OS versions: `./run_container_build.sh version` (place not yet published dependencies in the `deps/` directory)
+* run local builds with different OS versions: `./run_container_build.sh version`
* run a scratch build: `fedpkg scratch-build --srpm`
+* upload new source tarballs: `fedpkg new-sources grafana-X.Y.Z.tar.gz grafana-vendor-X.Y.Z.tar.gz grafana-webpack-X.Y.Z.tar.gz`
diff --git a/list_bundled_nodejs_packages.py b/create_webpack_manifest.py
similarity index 100%
rename from list_bundled_nodejs_packages.py
rename to create_webpack_manifest.py
diff --git a/distro-defaults.ini b/distro-defaults.ini
index b982480..7b61f6e 100644
--- a/distro-defaults.ini
+++ b/distro-defaults.ini
@@ -24,7 +24,7 @@ logs = /var/log/grafana
plugins = /var/lib/grafana/plugins
# folder that contains provisioning config files that grafana will apply on startup and while running.
-provisioning = conf/provisioning
+provisioning = /etc/grafana/provisioning
#################################### Server ##############################
[server]
@@ -126,7 +126,8 @@ connstr =
# This enables data proxy logging, default is false
logging = false
-# How long the data proxy should wait before timing out default is 30 (seconds)
+# How long the data proxy waits before timing out, default is 30 seconds.
+# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
timeout = 30
# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false.
@@ -188,7 +189,6 @@ allow_embedding = false
# Set to true if you want to enable http strict transport security (HSTS) response header.
# This is only sent when HTTPS is enabled in this configuration.
# HSTS tells browsers that the site should only be accessed using HTTPS.
-# The default will change to true in the next minor release, 6.3.
strict_transport_security = false
# Sets how long a browser should cache HSTS. Only applied if strict_transport_security is enabled.
@@ -202,12 +202,12 @@ strict_transport_security_subdomains = false
# Set to true to enable the X-Content-Type-Options response header.
# The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised
-# in the Content-Type headers should not be changed and be followed. The default will change to true in the next minor release, 6.3.
-x_content_type_options = false
+# in the Content-Type headers should not be changed and be followed.
+x_content_type_options = true
# Set to true to enable the X-XSS-Protection header, which tells browsers to stop pages from loading
-# when they detect reflected cross-site scripting (XSS) attacks. The default will change to true in the next minor release, 6.3.
-x_xss_protection = false
+# when they detect reflected cross-site scripting (XSS) attacks.
+x_xss_protection = true
#################################### Snapshots ###########################
@@ -230,9 +230,12 @@ snapshot_remove_expired = true
# Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1
versions_to_keep = 20
-# Minimum dashboard refresh interval. When set, this will restrict users to set the refresh interval of a dashboard lower than given interval. Per default this is not set/unrestricted.
+# Minimum dashboard refresh interval. When set, this will restrict users to set the refresh interval of a dashboard lower than given interval. Per default this is 5 seconds.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
-min_refresh_interval =
+min_refresh_interval = 1s
+
+# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
+default_home_dashboard_path =
#################################### Users ###############################
[users]
@@ -298,6 +301,9 @@ signout_redirect_url =
# This setting is ignored if multiple OAuth providers are configured.
oauth_auto_login = false
+# OAuth state max age cookie duration. Defaults to 60 seconds.
+oauth_state_cookie_max_age = 60
+
# limit of api_key seconds to live before expiration
api_key_max_seconds_to_live = -1
@@ -312,6 +318,9 @@ org_name = Main Org.
# specify role for unauthenticated users
org_role = Viewer
+# mask the Grafana version number for unauthenticated users
+hide_version = false
+
#################################### Github Auth #########################
[auth.github]
enabled = false
@@ -383,6 +392,21 @@ token_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
allowed_domains =
allowed_groups =
+#################################### Okta OAuth #######################
+[auth.okta]
+name = Okta
+enabled = false
+allow_sign_up = true
+client_id = some_id
+client_secret = some_secret
+scopes = openid profile email groups
+auth_url = https://<tenant-id>.okta.com/oauth2/v1/authorize
+token_url = https://<tenant-id>.okta.com/oauth2/v1/token
+api_url = https://<tenant-id>.okta.com/oauth2/v1/userinfo
+allowed_domains =
+allowed_groups =
+role_attribute_path =
+
#################################### Generic OAuth #######################
[auth.generic_oauth]
name = OAuth
@@ -405,47 +429,6 @@ tls_client_cert =
tls_client_key =
tls_client_ca =
-#################################### SAML Auth ###########################
-[auth.saml] # Enterprise only
-# Defaults to false. If true, the feature is enabled
-enabled = false
-
-# Base64-encoded public X.509 certificate. Used to sign requests to the IdP
-certificate =
-
-# Path to the public X.509 certificate. Used to sign requests to the IdP
-certificate_path =
-
-# Base64-encoded private key. Used to decrypt assertions from the IdP
-private_key =
-
-# Path to the private key. Used to decrypt assertions from the IdP
-private_key_path =
-
-# Base64-encoded IdP SAML metadata XML. Used to verify and obtain binding locations from the IdP
-idp_metadata =
-
-# Path to the SAML metadata XML. Used to verify and obtain binding locations from the IdP
-idp_metadata_path =
-
-# URL to fetch SAML IdP metadata. Used to verify and obtain binding locations from the IdP
-idp_metadata_url =
-
-# Duration, since the IdP issued a response and the SP is allowed to process it. Defaults to 90 seconds
-max_issue_delay = 90s
-
-# Duration, for how long the SP's metadata should be valid. Defaults to 48 hours
-metadata_valid_duration = 48h
-
-# Friendly name or name of the attribute within the SAML assertion to use as the user's name
-assertion_attribute_name = displayName
-
-# Friendly name or name of the attribute within the SAML assertion to use as the user's login handle
-assertion_attribute_login = mail
-
-# Friendly name or name of the attribute within the SAML assertion to use as the user's email
-assertion_attribute_email = mail
-
#################################### Basic Auth ##########################
[auth.basic]
enabled = true
@@ -472,7 +455,7 @@ allow_sign_up = true
# LDAP backround sync (Enterprise only)
# At 1 am every day
sync_cron = "0 0 1 * * *"
-active_sync_enabled = false
+active_sync_enabled = true
#################################### SMTP / Emailing #####################
[smtp]
@@ -487,6 +470,7 @@ skip_verify = false
from_address = admin(a)grafana.localhost
from_name = Grafana
ehlo_identity =
+startTLS_policy =
[emails]
welcome_email_on_sign_up = false
@@ -706,6 +690,9 @@ container_name =
server_url =
# If the remote HTTP image renderer service runs on a different server than the Grafana server you may have to configure this to a URL where Grafana is reachable, e.g. http://grafana.domain/.
callback_url =
+# Concurrent render request limit affects when the /render HTTP endpoint is used. Rendering many images at the same time can overload the server,
+# which this setting can help protect against by only allowing a certain amount of concurrent requests.
+concurrent_render_request_limit = 30
[panels]
# here for to support old env variables, can remove after a few months
@@ -715,6 +702,68 @@ disable_sanitize_html = false
[plugins]
enable_alpha = false
app_tls_skip_verify_insecure = false
+# Enter a comma-separated list of plugin identifiers to identify plugins that are allowed to be loaded even if they lack a valid signature.
+allow_loading_unsigned_plugins =
+
+#################################### Grafana Image Renderer Plugin ##########################
+[plugin.grafana-image-renderer]
+# Instruct headless browser instance to use a default timezone when not provided by Grafana, e.g. when rendering panel image of alert.
+# See ICU’s metaZones.txt (https://cs.chromium.org/chromium/src/third_party/icu/source/data/misc/met...) for a list of supported
+# timezone IDs. Fallbacks to TZ environment variable if not set.
+rendering_timezone =
+
+# Instruct headless browser instance to use a default language when not provided by Grafana, e.g. when rendering panel image of alert.
+# Please refer to the HTTP header Accept-Language to understand how to format this value, e.g. 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'.
+rendering_language =
+
+# Instruct headless browser instance to use a default device scale factor when not provided by Grafana, e.g. when rendering panel image of alert.
+# Default is 1. Using a higher value will produce more detailed images (higher DPI), but will require more disk space to store an image.
+rendering_viewport_device_scale_factor =
+
+# Instruct headless browser instance whether to ignore HTTPS errors during navigation. Per default HTTPS errors are not ignored. Due to
+# the security risk it's not recommended to ignore HTTPS errors.
+rendering_ignore_https_errors =
+
+# Instruct headless browser instance whether to capture and log verbose information when rendering an image. Default is false and will
+# only capture and log error messages. When enabled, debug messages are captured and logged as well.
+# For the verbose information to be included in the Grafana server log you have to adjust the rendering log level to debug, configure
+# [log].filter = rendering:debug.
+rendering_verbose_logging =
+
+# Instruct headless browser instance whether to output its debug and error messages into running process of remote rendering service.
+# Default is false. This can be useful to enable (true) when troubleshooting.
+rendering_dumpio =
+
+# Additional arguments to pass to the headless browser instance. Default is --no-sandbox. The list of Chromium flags can be found
+# here (https://peter.sh/experiments/chromium-command-line-switches/). Multiple arguments is separated with comma-character.
+rendering_args =
+
+# You can configure the plugin to use a different browser binary instead of the pre-packaged version of Chromium.
+# Please note that this is not recommended, since you may encounter problems if the installed version of Chrome/Chromium is not
+# compatible with the plugin.
+rendering_chrome_bin =
+
+# Instruct how headless browser instances are created. Default is 'default' and will create a new browser instance on each request.
+# Mode 'clustered' will make sure that only a maximum of browsers/incognito pages can execute concurrently.
+# Mode 'reusable' will have one browser instance and will create a new incognito page on each request.
+rendering_mode =
+
+# When rendering_mode = clustered you can instruct how many browsers or incognito pages can execute concurrently. Default is 'browser'
+# and will cluster using browser instances.
+# Mode 'context' will cluster using incognito pages.
+rendering_clustering_mode =
+# When rendering_mode = clustered you can define maximum number of browser instances/incognito pages that can execute concurrently..
+rendering_clustering_max_concurrency =
+
+# Limit the maximum viewport width, height and device scale factor that can be requested.
+rendering_viewport_max_width =
+rendering_viewport_max_height =
+rendering_viewport_max_device_scale_factor =
+
+# Change the listening host and port of the gRPC server. Default host is 127.0.0.1 and default port is 0 and will automatically assign
+# a port not in use.
+grpc_host =
+grpc_port =
[enterprise]
license_path =
diff --git a/grafana.rpmlintrc b/grafana.rpmlintrc
index c6b221d..d7a45e7 100644
--- a/grafana.rpmlintrc
+++ b/grafana.rpmlintrc
@@ -1,10 +1,11 @@
-addFilter("W: non-standard-gid.* grafana")
-addFilter("W: non-standard-uid.* grafana")
-addFilter("E: script-without-shebang .*\.json")
-addFilter("E: zero-length /usr/share/grafana/public/.*")
-addFilter("W: log-files-without-logrotate .*")
-addFilter("W: no-documentation")
addFilter("E: non-readable /etc/grafana/grafana.ini 640")
addFilter("E: non-readable /etc/grafana/ldap.toml 640")
addFilter("E: non-standard-dir-perm /var/lib/grafana 750")
+addFilter("E: zero-length /usr/share/grafana/public/.*")
+addFilter("E: script-without-shebang .*\.json")
+
+addFilter("W: non-standard-uid.* grafana")
+addFilter("W: non-standard-gid.* grafana")
+addFilter("W: hidden-file-or-dir /usr/share/grafana/public/.*")
+addFilter("W: log-files-without-logrotate .*")
addFilter("W: dangerous-command-in-%post chown")
diff --git a/grafana.spec b/grafana.spec
index 690b8d8..2db57f1 100644
--- a/grafana.spec
+++ b/grafana.spec
@@ -8,15 +8,9 @@
end
end}
-# Unbundle Grafana vendor sources and instead use BuildRequires
-# on platforms that have enough golang devel support.
-%if 0%{?rhel} == 0
-%global unbundle_vendor_sources 1
-%endif
-
Name: grafana
-Version: 6.7.4
-Release: 2%{?dist}
+Version: 7.1.1
+Release: 1%{?dist}
Summary: Metrics dashboard and graph editor
License: ASL 2.0
URL: https://grafana.org
@@ -24,32 +18,35 @@ URL: https://grafana.org
# Source0 contains the tagged upstream sources
Source0: https://github.com/grafana/grafana/archive/v%{version}/%{name}-%{version}...
-# Source1 contains the front-end javascript modules bundled into a webpack
-Source1: grafana_webpack-%{version}.tar.gz
+# Source1 contains the bundled Go dependencies
+Source1: grafana-vendor-%{version}.tar.gz
-# Source2 contains Grafana configuration defaults for distributions
-Source2: distro-defaults.ini
+# Source2 contains the front-end javascript modules bundled into a webpack
+Source2: grafana-webpack-%{version}.tar.gz
-# Source3 is the script to create the webpack from grafana sources
-Source3: make_grafana_webpack.sh
+# Source3 contains Grafana configuration defaults for distributions
+Source3: distro-defaults.ini
-# Source4 is the script to generate the list of Go build dependencies:
-Source4: list_go_buildrequires.sh
-
-# Source5 is the script to generate the list of bundled nodejs packages
-Source5: list_bundled_nodejs_packages.py
+# Source4 contains the Makefile to create a Go vendor tarball and a webpack from grafana sources
+Source4: Makefile
+# Source5 contains the script to generate the list of bundled nodejs packages
+Source5: create_webpack_manifest.py
# Patches
-Patch1: 001-login-oauth-use-oauth2-exchange.patch
-Patch2: 002-remove-jaeger-tracing.patch
-Patch3: 003-manpages.patch
-Patch4: 004-wrappers-grafana-cli.patch
-Patch5: 005-pkg-main-fix-import-paths.patch
-Patch6: 006-pkg-setting-ini-default-section.patch
-Patch7: 007-pkg-prometheus-client-query-range.patch
-Patch8: 008-pkg-services-notifications-codes-Unknwon.patch
-Patch9: 009-pkg-fix-xorm-import.patch
+Patch1: 001-wrappers-grafana-cli.patch
+Patch2: 002-manpages.patch
+
+# Required for Go >= 1.15
+# https://github.com/golang/go/commit/201cb046b745f8bb00e3d382290190c74ba7b7e1
+# https://github.com/golang/go/issues/32479
+Patch3: 003-golang1.15.patch
+
+# Required for s390x
+# the golden files include memory dumps from a x86 machine
+# integers are stored as little endian on x86, but as big endian on s390x
+# therefore loading this memory dump fails on s390x
+Patch4: 004-remove-goldenfiles-test.patch
# Intersection of go_arches and nodejs_arches
ExclusiveArch: %{grafana_arches}
@@ -68,203 +65,176 @@ Requires(pre): shadow-utils
BuildRequires: git, systemd, golang, go-srpm-macros, go-rpm-macros
+Obsoletes: grafana-cloudwatch < 7.1.1-1
+Obsoletes: grafana-elasticsearch < 7.1.1-1
+Obsoletes: grafana-azure-monitor < 7.1.1-1
+Obsoletes: grafana-graphite < 7.1.1-1
+Obsoletes: grafana-influxdb < 7.1.1-1
+Obsoletes: grafana-loki < 7.1.1-1
+Obsoletes: grafana-mssql < 7.1.1-1
+Obsoletes: grafana-mysql < 7.1.1-1
+Obsoletes: grafana-opentsdb < 7.1.1-1
+Obsoletes: grafana-postgres < 7.1.1-1
+Obsoletes: grafana-prometheus < 7.1.1-1
+Obsoletes: grafana-stackdriver < 7.1.1-1
+
%if 0%{?fedora} || 0%{?rhel} > 7
-Recommends: grafana-cloudwatch = %{version}-%{release}
-Recommends: grafana-elasticsearch = %{version}-%{release}
-Recommends: grafana-azure-monitor = %{version}-%{release}
-Recommends: grafana-graphite = %{version}-%{release}
-Recommends: grafana-influxdb = %{version}-%{release}
-Recommends: grafana-loki = %{version}-%{release}
-Recommends: grafana-mssql = %{version}-%{release}
-Recommends: grafana-mysql = %{version}-%{release}
-Recommends: grafana-opentsdb = %{version}-%{release}
-Recommends: grafana-postgres = %{version}-%{release}
-Recommends: grafana-prometheus = %{version}-%{release}
-Recommends: grafana-stackdriver = %{version}-%{release}
-Recommends: grafana-pcp >= 2
+Recommends: grafana-pcp >= 3.0.0
%endif
-%if 0%{?unbundle_vendor_sources}
-# golang build deps. These allow us to unbundle vendor golang source.
-# Note: generated with the list_go_buildrequires.sh script (see README.md)
-BuildRequires: golang(github.com/apache/arrow/go/arrow)
-BuildRequires: golang(github.com/apache/arrow/go/arrow/array)
-BuildRequires: golang(github.com/apache/arrow/go/arrow/ipc)
-BuildRequires: golang(github.com/apache/arrow/go/arrow/memory)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awsutil)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/endpointcreds)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws/defaults)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws/request)
-BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session)
-BuildRequires: golang(github.com/aws/aws-sdk-go/service/cloudwatch)
-BuildRequires: golang(github.com/aws/aws-sdk-go/service/ec2)
-BuildRequires: golang(github.com/aws/aws-sdk-go/service/ec2/ec2iface)
-BuildRequires: golang(github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi)
-BuildRequires: golang(github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/resourc...
-BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager)
-BuildRequires: golang(github.com/aws/aws-sdk-go/service/sts)
-BuildRequires: golang(github.com/benbjohnson/clock)
-BuildRequires: golang(github.com/bradfitz/gomemcache/memcache)
-BuildRequires: golang(github.com/BurntSushi/toml)
-BuildRequires: golang(github.com/cheekybits/genny/generic)
-BuildRequires: golang(github.com/crewjam/saml)
-BuildRequires: golang(github.com/davecgh/go-spew/spew)
-BuildRequires: golang(github.com/denisenkom/go-mssqldb)
-BuildRequires: golang(github.com/facebookgo/inject)
-BuildRequires: golang(github.com/fatih/color)
-BuildRequires: golang(github.com/gobwas/glob)
-BuildRequires: golang(github.com/golang/protobuf/proto)
-BuildRequires: golang(github.com/go-macaron/binding)
-BuildRequires: golang(github.com/go-macaron/gzip)
-BuildRequires: golang(github.com/go-macaron/session)
-BuildRequires: golang(github.com/google/go-cmp/cmp)
-BuildRequires: golang(github.com/google/go-cmp/cmp/cmpopts)
-BuildRequires: golang(github.com/gorilla/websocket)
-BuildRequires: golang(github.com/gosimple/slug)
-BuildRequires: golang(github.com/go-sql-driver/mysql)
-BuildRequires: golang(github.com/go-stack/stack)
-BuildRequires: golang(github.com/go-xorm/core)
-BuildRequires: golang(github.com/hashicorp/go-hclog)
-BuildRequires: golang(github.com/hashicorp/go-plugin)
-BuildRequires: golang(github.com/hashicorp/go-version)
-BuildRequires: golang(github.com/inconshreveable/log15)
-BuildRequires: golang(github.com/jmespath/go-jmespath)
-BuildRequires: golang(github.com/jung-kurt/gofpdf)
-BuildRequires: golang(github.com/lib/pq)
-BuildRequires: golang(github.com/linkedin/goavro)
-BuildRequires: golang(github.com/mattetti/filebuffer)
-BuildRequires: golang(github.com/mattn/go-isatty)
-BuildRequires: golang(github.com/mattn/go-sqlite3)
-BuildRequires: golang(github.com/opentracing/opentracing-go)
-BuildRequires: golang(github.com/opentracing/opentracing-go/ext)
-BuildRequires: golang(github.com/opentracing/opentracing-go/log)
-BuildRequires: golang(github.com/patrickmn/go-cache)
-BuildRequires: golang(github.com/pkg/errors)
-BuildRequires: golang(github.com/prometheus/client_golang/api)
-BuildRequires: golang(github.com/prometheus/client_golang/api/prometheus/v1)
-BuildRequires: golang(github.com/prometheus/client_golang/prometheus)
-BuildRequires: golang(github.com/prometheus/client_golang/prometheus/promhttp)
-BuildRequires: golang(github.com/prometheus/client_model/go)
-BuildRequires: golang(github.com/prometheus/common/expfmt)
-BuildRequires: golang(github.com/prometheus/common/model)
-BuildRequires: golang(github.com/robfig/cron)
-BuildRequires: golang(github.com/smartystreets/goconvey/convey)
-BuildRequires: golang(github.com/stretchr/testify/require)
-BuildRequires: golang(github.com/teris-io/shortid)
-BuildRequires: golang(github.com/ua-parser/uap-go/uaparser)
-BuildRequires: golang(github.com/uber/jaeger-client-go/config)
-BuildRequires: golang(github.com/uber/jaeger-client-go/zipkin)
-BuildRequires: golang(github.com/Unknwon/com)
-BuildRequires: golang(github.com/urfave/cli/v2)
-BuildRequires: golang(github.com/VividCortex/mysqlerr)
-BuildRequires: golang(github.com/yudai/gojsondiff)
-BuildRequires: golang(github.com/yudai/gojsondiff/formatter)
-BuildRequires: golang(golang.org/x/crypto/pbkdf2)
-BuildRequires: golang(golang.org/x/net/context)
-BuildRequires: golang(golang.org/x/net/context/ctxhttp)
-BuildRequires: golang(golang.org/x/oauth2)
-BuildRequires: golang(golang.org/x/oauth2/google)
-BuildRequires: golang(golang.org/x/oauth2/jwt)
-BuildRequires: golang(golang.org/x/sync/errgroup)
-BuildRequires: golang(golang.org/x/xerrors)
-BuildRequires: golang(google.golang.org/grpc)
-BuildRequires: golang(google.golang.org/grpc/codes)
-BuildRequires: golang(google.golang.org/grpc/metadata)
-BuildRequires: golang(google.golang.org/grpc/status)
-BuildRequires: golang(gopkg.in/ini.v1)
-BuildRequires: golang(gopkg.in/ldap.v3)
-BuildRequires: golang(gopkg.in/macaron.v1)
-BuildRequires: golang(gopkg.in/mail.v2)
-BuildRequires: golang(gopkg.in/redis.v5)
-BuildRequires: golang(gopkg.in/robfig/cron.v3)
-BuildRequires: golang(gopkg.in/square/go-jose.v2)
-BuildRequires: golang(gopkg.in/square/go-jose.v2/jwt)
-BuildRequires: golang(gopkg.in/yaml.v2)
-BuildRequires: golang(xorm.io/xorm)
-%endif
+# vendored golang build dependencies
+# Note: generated by the Makefile (see README.md)
+Provides: bundled(golang(github.com/BurntSushi/toml)) = 0.3.1
+Provides: bundled(golang(github.com/VividCortex/mysqlerr)) = 0.0.0-20170204212430.6c6b55f8796f
+Provides: bundled(golang(github.com/aws/aws-sdk-go)) = 1.29.20
+Provides: bundled(golang(github.com/benbjohnson/clock)) = 0.0.0-20161215174838.7dc76406b6d3
+Provides: bundled(golang(github.com/bradfitz/gomemcache)) = 0.0.0-20190329173943.551aad21a668
+Provides: bundled(golang(github.com/crewjam/saml)) = 0.0.0-20191031171751.c42136edf9b1
+Provides: bundled(golang(github.com/davecgh/go-spew)) = 1.1.1
+Provides: bundled(golang(github.com/denisenkom/go-mssqldb)) = 0.0.0-20190707035753.2be1aa521ff4
+Provides: bundled(golang(github.com/facebookgo/inject)) = 0.0.0-20180706035515.f23751cae28b
+Provides: bundled(golang(github.com/fatih/color)) = 1.7.0
+Provides: bundled(golang(github.com/go-macaron/binding)) = 0.0.0-20190806013118.0b4f37bab25b
+Provides: bundled(golang(github.com/go-macaron/gzip)) = 0.0.0-20160222043647.cad1c6580a07
+Provides: bundled(golang(github.com/go-macaron/session)) = 0.0.0-20190805070824.1a3cdc6f5659
+Provides: bundled(golang(github.com/go-sql-driver/mysql)) = 1.5.0
+Provides: bundled(golang(github.com/go-stack/stack)) = 1.8.0
+Provides: bundled(golang(github.com/gobwas/glob)) = 0.2.3
+Provides: bundled(golang(github.com/golang/protobuf)) = 1.4.0
+Provides: bundled(golang(github.com/google/go-cmp)) = 0.4.0
+Provides: bundled(golang(github.com/gorilla/websocket)) = 1.4.1
+Provides: bundled(golang(github.com/gosimple/slug)) = 1.4.2
+Provides: bundled(golang(github.com/grafana/grafana-plugin-model)) = 0.0.0-20190930120109.1fc953a61fb4
+Provides: bundled(golang(github.com/grafana/grafana-plugin-sdk-go)) = 0.75.0
+Provides: bundled(golang(github.com/hashicorp/go-hclog)) = 0.0.0-20180709165350.ff2cf002a8dd
+Provides: bundled(golang(github.com/hashicorp/go-plugin)) = 1.2.2
+Provides: bundled(golang(github.com/hashicorp/go-version)) = 1.1.0
+Provides: bundled(golang(github.com/inconshreveable/log15)) = 0.0.0-20180818164646.67afb5ed74ec
+Provides: bundled(golang(github.com/influxdata/influxdb-client-go)) = 1.3.0
+Provides: bundled(golang(github.com/jmespath/go-jmespath)) = 0.0.0-20180206201540.c2b33e8439af
+Provides: bundled(golang(github.com/jung-kurt/gofpdf)) = 1.10.1
+Provides: bundled(golang(github.com/lib/pq)) = 1.2.0
+Provides: bundled(golang(github.com/linkedin/goavro/v2)) = 2.9.7
+Provides: bundled(golang(github.com/mattn/go-isatty)) = 0.0.12
+Provides: bundled(golang(github.com/mattn/go-sqlite3)) = 1.11.0
+Provides: bundled(golang(github.com/opentracing/opentracing-go)) = 1.1.0
+Provides: bundled(golang(github.com/patrickmn/go-cache)) = 2.1.0+incompatible
+Provides: bundled(golang(github.com/pkg/errors)) = 0.9.1
+Provides: bundled(golang(github.com/prometheus/client_golang)) = 1.3.0
+Provides: bundled(golang(github.com/prometheus/client_model)) = 0.1.0
+Provides: bundled(golang(github.com/prometheus/common)) = 0.7.0
+Provides: bundled(golang(github.com/robfig/cron)) = 0.0.0-20180505203441.b41be1df6967
+Provides: bundled(golang(github.com/robfig/cron/v3)) = 3.0.0
+Provides: bundled(golang(github.com/smartystreets/goconvey)) = 0.0.0-20190731233626.505e41936337
+Provides: bundled(golang(github.com/stretchr/testify)) = 1.5.1
+Provides: bundled(golang(github.com/teris-io/shortid)) = 0.0.0-20171029131806.771a37caa5cf
+Provides: bundled(golang(github.com/timberio/go-datemath)) = 0.1.1-0.20200323150745.74ddef604fff
+Provides: bundled(golang(github.com/ua-parser/uap-go)) = 0.0.0-20190826212731.daf92ba38329
+Provides: bundled(golang(github.com/uber/jaeger-client-go)) = 2.24.0+incompatible
+Provides: bundled(golang(github.com/unknwon/com)) = 1.0.1
+Provides: bundled(golang(github.com/urfave/cli/v2)) = 2.1.1
+Provides: bundled(golang(github.com/xorcare/pointer)) = 1.1.0
+Provides: bundled(golang(github.com/yudai/gojsondiff)) = 1.0.0
+Provides: bundled(golang(golang.org/x/crypto)) = 0.0.0-20200406173513.056763e48d71
+Provides: bundled(golang(golang.org/x/net)) = 0.0.0-20200501053045.e0ff5e5a1de5
+Provides: bundled(golang(golang.org/x/oauth2)) = 0.0.0-20200107190931.bf48bf16ab8d
+Provides: bundled(golang(golang.org/x/sync)) = 0.0.0-20200317015054.43a5402ce75a
+Provides: bundled(golang(golang.org/x/xerrors)) = 0.0.0-20191204190536.9bdfabe68543
+Provides: bundled(golang(google.golang.org/grpc)) = 1.29.1
+Provides: bundled(golang(gopkg.in/ini.v1)) = 1.46.0
+Provides: bundled(golang(gopkg.in/ldap.v3)) = 3.0.2
+Provides: bundled(golang(gopkg.in/macaron.v1)) = 1.3.9
+Provides: bundled(golang(gopkg.in/mail.v2)) = 2.3.1
+Provides: bundled(golang(gopkg.in/redis.v5)) = 5.2.9
+Provides: bundled(golang(gopkg.in/square/go-jose.v2)) = 2.4.1
+Provides: bundled(golang(gopkg.in/yaml.v2)) = 2.2.8
+Provides: bundled(golang(xorm.io/core)) = 0.7.3
+Provides: bundled(golang(xorm.io/xorm)) = 0.8.1
# Declare all nodejs modules bundled in the webpack - this is for security
# purposes so if nodejs-foo ever needs an update, affected packages can be
# easily identified.
-# Note: generated with the list_bundled_nodejs_packages.sh script (see README.md)
-Provides: bundled(nodejs-@braintree/sanitize-url) = 4.0.0
+# Note: generated with the Makefile (see README.md)
Provides: bundled(nodejs-@grafana/slate-react) = 0.22.9-grafana
-Provides: bundled(nodejs-@reduxjs/toolkit) = 1.2.1
+Provides: bundled(nodejs-@reduxjs/toolkit) = 1.3.4
Provides: bundled(nodejs-@torkelo/react-select) = 3.0.8
+Provides: bundled(nodejs-@types/antlr4) = 4.7.1
+Provides: bundled(nodejs-@types/braintree__sanitize-url) = 4.0.0
+Provides: bundled(nodejs-@types/common-tags) = 1.8.0
+Provides: bundled(nodejs-@types/jsurl) = 1.2.28
Provides: bundled(nodejs-@types/md5) = 2.1.33
Provides: bundled(nodejs-@types/react-loadable) = 5.5.2
Provides: bundled(nodejs-@types/react-virtualized-auto-sizer) = 1.0.0
-Provides: bundled(nodejs-@types/uuid) = 3.4.7
+Provides: bundled(nodejs-@welldone-software/why-did-you-render) = 4.0.6
Provides: bundled(nodejs-abortcontroller-polyfill) = 1.4.0
Provides: bundled(nodejs-angular) = 1.6.9
Provides: bundled(nodejs-angular-bindonce) = 0.3.1
Provides: bundled(nodejs-angular-native-dragdrop) = 1.2.2
Provides: bundled(nodejs-angular-route) = 1.6.6
Provides: bundled(nodejs-angular-sanitize) = 1.6.6
+Provides: bundled(nodejs-antlr4) = 4.8.0
Provides: bundled(nodejs-baron) = 3.0.3
-Provides: bundled(nodejs-brace) = 0.10.0
+Provides: bundled(nodejs-brace) = 0.11.1
Provides: bundled(nodejs-calculate-size) = 1.1.1
Provides: bundled(nodejs-classnames) = 2.2.6
Provides: bundled(nodejs-clipboard) = 2.0.4
+Provides: bundled(nodejs-common-tags) = 1.8.0
Provides: bundled(nodejs-core-js) = 1.2.7
Provides: bundled(nodejs-d3) = 5.15.0
Provides: bundled(nodejs-d3-scale-chromatic) = 1.5.0
+Provides: bundled(nodejs-dangerously-set-html-content) = 1.0.6
Provides: bundled(nodejs-emotion) = 10.0.27
-Provides: bundled(nodejs-eventemitter3) = 2.0.3
+Provides: bundled(nodejs-eventemitter3) = 3.1.2
Provides: bundled(nodejs-fast-text-encoding) = 1.0.0
-Provides: bundled(nodejs-file-saver) = 1.3.8
-Provides: bundled(nodejs-hoist-non-react-statics) = 3.3.0
+Provides: bundled(nodejs-file-saver) = 2.0.2
+Provides: bundled(nodejs-hoist-non-react-statics) = 2.5.5
Provides: bundled(nodejs-immutable) = 3.8.2
Provides: bundled(nodejs-is-hotkey) = 0.1.4
Provides: bundled(nodejs-jquery) = 3.4.1
+Provides: bundled(nodejs-jsurl) = 0.1.5
Provides: bundled(nodejs-lodash) = 3.10.1
Provides: bundled(nodejs-lru-cache) = 4.1.5
Provides: bundled(nodejs-marked) = 0.3.19
Provides: bundled(nodejs-md5) = 2.2.1
Provides: bundled(nodejs-memoize-one) = 4.1.0
Provides: bundled(nodejs-moment) = 2.24.0
-Provides: bundled(nodejs-mousetrap) = 1.6.3
+Provides: bundled(nodejs-moment-timezone) = 0.5.28
+Provides: bundled(nodejs-mousetrap) = 1.6.5
Provides: bundled(nodejs-mousetrap-global-bind) = 1.1.0
-Provides: bundled(nodejs-nodemon) = 1.18.10
+Provides: bundled(nodejs-nodemon) = 2.0.2
Provides: bundled(nodejs-papaparse) = 4.6.3
-Provides: bundled(nodejs-prismjs) = 1.16.0
+Provides: bundled(nodejs-prismjs) = 1.17.1
Provides: bundled(nodejs-prop-types) = 15.7.2
-Provides: bundled(nodejs-rc-cascader) = 0.17.5
+Provides: bundled(nodejs-rc-cascader) = 1.0.1
Provides: bundled(nodejs-re-resizable) = 6.2.0
Provides: bundled(nodejs-react) = 16.10.2
Provides: bundled(nodejs-react-dom) = 16.10.2
Provides: bundled(nodejs-react-grid-layout) = 0.17.1
-Provides: bundled(nodejs-react-highlight-words) = 0.11.0
+Provides: bundled(nodejs-react-highlight-words) = 0.16.0
Provides: bundled(nodejs-react-loadable) = 5.5.0
Provides: bundled(nodejs-react-popper) = 1.3.3
-Provides: bundled(nodejs-react-redux) = 7.1.1
-Provides: bundled(nodejs-react-sizeme) = 2.5.2
+Provides: bundled(nodejs-react-redux) = 7.2.0
+Provides: bundled(nodejs-react-sizeme) = 2.6.8
Provides: bundled(nodejs-react-split-pane) = 0.1.89
-Provides: bundled(nodejs-react-transition-group) = 2.6.1
-Provides: bundled(nodejs-react-use) = 12.8.0
+Provides: bundled(nodejs-react-transition-group) = 2.9.0
+Provides: bundled(nodejs-react-use) = 13.27.0
Provides: bundled(nodejs-react-virtualized-auto-sizer) = 1.0.2
-Provides: bundled(nodejs-react-window) = 1.7.1
+Provides: bundled(nodejs-react-window) = 1.8.5
Provides: bundled(nodejs-redux) = 3.7.2
Provides: bundled(nodejs-redux-logger) = 3.0.6
Provides: bundled(nodejs-redux-thunk) = 2.3.0
Provides: bundled(nodejs-regenerator-runtime) = 0.11.1
Provides: bundled(nodejs-reselect) = 4.0.0
Provides: bundled(nodejs-rst2html) = 1.0.4
-Provides: bundled(nodejs-rxjs) = 5.5.12
-Provides: bundled(nodejs-search-query-parser) = 1.5.2
+Provides: bundled(nodejs-rxjs) = 6.5.5
+Provides: bundled(nodejs-search-query-parser) = 1.5.4
Provides: bundled(nodejs-slate) = 0.47.8
Provides: bundled(nodejs-slate-plain-serializer) = 0.7.10
-Provides: bundled(nodejs-tether) = 1.4.5
+Provides: bundled(nodejs-tether) = 1.4.7
Provides: bundled(nodejs-tether-drop) = 1.5.0
Provides: bundled(nodejs-tinycolor2) = 1.4.1
Provides: bundled(nodejs-tti-polyfill) = 0.2.2
-Provides: bundled(nodejs-uuid) = 3.3.3
Provides: bundled(nodejs-whatwg-fetch) = 3.0.0
-Provides: bundled(nodejs-xss) = 1.0.3
%description
@@ -272,105 +242,19 @@ Grafana is an open source, feature rich metrics dashboard and graph editor for
Graphite, InfluxDB & OpenTSDB.
-%package cloudwatch
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana cloudwatch datasource
-
-%description cloudwatch
-The Grafana cloudwatch datasource.
-
-%package elasticsearch
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana elasticsearch datasource
-
-%description elasticsearch
-The Grafana elasticsearch datasource.
-
-%package azure-monitor
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana azure-monitor datasource
-
-%description azure-monitor
-The Grafana azure-monitor datasource.
-
-%package graphite
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana graphite datasource
-
-%description graphite
-The Grafana graphite datasource.
-
-%package influxdb
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana influxdb datasource
-
-%description influxdb
-The Grafana influxdb datasource.
-
-%package loki
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana loki datasource
-
-%description loki
-The Grafana loki datasource.
-
-%package mssql
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana mssql datasource
-
-%description mssql
-The Grafana mssql datasource.
-
-%package mysql
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana mysql datasource
-
-%description mysql
-The Grafana mysql datasource.
-
-%package opentsdb
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana opentsdb datasource
-
-%description opentsdb
-The Grafana opentsdb datasource.
-
-%package postgres
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana postgres datasource
-
-%description postgres
-The Grafana postgres datasource.
-
-%package prometheus
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana prometheus datasource
-
-%description prometheus
-The Grafana prometheus datasource.
-
-%package stackdriver
-Requires: %{name} = %{version}-%{release}
-Summary: Grafana stackdriver datasource
-
-%description stackdriver
-The Grafana stackdriver datasource.
-
-
%prep
%setup -q -T -D -b 0
+rm -r plugins-bundled # compiled bundled plugins are in grafana-webpack
%setup -q -T -D -b 1
+%setup -q -T -D -b 2
+
%patch1 -p1
%patch2 -p1
+%if 0%{?fedora} >= 33
%patch3 -p1
+%endif
+%ifarch s390x
%patch4 -p1
-%patch6 -p1
-
-%if 0%{?unbundle_vendor_sources}
-%patch5 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
%endif
# Set up build subdirs and links
@@ -378,59 +262,32 @@ mkdir -p %{_builddir}/src/github.com/grafana
ln -sf %{_builddir}/%{name}-%{version} \
%{_builddir}/src/github.com/grafana/grafana
-# remove some (apparent) development files, for rpmlint
-rm -f public/sass/.sass-lint.yml public/test/.jshintrc
-
-%if 0%{?unbundle_vendor_sources}
-# Unbundle all grafana vendor sources, as per BuildRequires above.
-# Note there are some exceptions.
-cp --parents -a \
- vendor/github.com/grafana/grafana-plugin-model \
- vendor/github.com/grafana/grafana-plugin-sdk-go \
- %{_builddir}
-rm -r vendor # remove all vendor sources
-mv %{_builddir}/vendor vendor # put back what we're keeping
-%endif
%build
# Build the server-side binaries
cd %{_builddir}/src/github.com/grafana/grafana
-%global archbindir bin/`go env GOOS`-`go env GOARCH`
-echo _builddir=%{_builddir} archbindir=%{archbindir} gopath=%{gopath}
-[ ! -d %{archbindir} ] && mkdir -p %{archbindir}
-
-# non-modular build
-export GOPATH=%{_builddir}:%{gopath}
-export GO111MODULE=off; rm -f go.mod
+export GOPATH=%{_builddir}
# see grafana-X.X.X/build.go
export LDFLAGS="-X main.version=%{version} -X main.buildstamp=${SOURCE_DATE_EPOCH}"
for cmd in grafana-cli grafana-server; do
- %gobuild -o %{archbindir}/${cmd} ./pkg/cmd/${cmd}
+ %gobuild -o %{_builddir}/bin/${cmd} ./pkg/cmd/${cmd}
done
%install
-# Fix up arch bin directories
-[ ! -d bin/x86_64 ] && ln -sf linux-amd64 bin/x86_64
-[ ! -d bin/i386 ] && ln -sf linux-386 bin/i386
-[ ! -d bin/ppc64le ] && ln -sf linux-ppc64le bin/ppc64le
-[ ! -d bin/s390x ] && ln -sf linux-s390x bin/s390x
-[ ! -d bin/arm ] && ln -sf linux-arm bin/arm
-[ ! -d bin/arm64 ] && ln -sf linux-arm64 bin/aarch64
-[ ! -d bin/aarch64 ] && ln -sf linux-aarch64 bin/aarch64
# dirs, shared files, public html, webpack
install -d %{buildroot}%{_sbindir}
install -d %{buildroot}%{_datadir}/%{name}
install -d %{buildroot}%{_libexecdir}/%{name}
-cp -a conf public %{buildroot}%{_datadir}/%{name}
+cp -a conf public plugins-bundled %{buildroot}%{_datadir}/%{name}
# wrappers
install -p -m 755 packaging/wrappers/grafana-cli %{buildroot}%{_sbindir}/%{name}-cli
# binaries
-install -p -m 755 %{archbindir}/%{name}-server %{buildroot}%{_sbindir}
-install -p -m 755 %{archbindir}/%{name}-cli %{buildroot}%{_libexecdir}/%{name}
+install -p -m 755 %{_builddir}/bin/%{name}-server %{buildroot}%{_sbindir}
+install -p -m 755 %{_builddir}/bin/%{name}-cli %{buildroot}%{_libexecdir}/%{name}
# man pages
install -d %{buildroot}%{_mandir}/man1
@@ -438,12 +295,17 @@ install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1
# config dirs
install -d %{buildroot}%{_sysconfdir}/%{name}
+install -d %{buildroot}%{_sysconfdir}/%{name}/provisioning
+install -d %{buildroot}%{_sysconfdir}/%{name}/provisioning/dashboards
+install -d %{buildroot}%{_sysconfdir}/%{name}/provisioning/datasources
+install -d %{buildroot}%{_sysconfdir}/%{name}/provisioning/notifiers
+install -d %{buildroot}%{_sysconfdir}/%{name}/provisioning/plugins
install -d %{buildroot}%{_sysconfdir}/sysconfig
# config defaults
-install -p -m 640 %{SOURCE2} %{buildroot}%{_sysconfdir}/%{name}/grafana.ini
+install -p -m 640 %{SOURCE3} %{buildroot}%{_sysconfdir}/%{name}/grafana.ini
install -p -m 640 conf/ldap.toml %{buildroot}%{_sysconfdir}/%{name}/ldap.toml
-install -p -m 644 %{SOURCE2} %{buildroot}%{_datadir}/%{name}/conf/defaults.ini
+install -p -m 644 %{SOURCE3} %{buildroot}%{_datadir}/%{name}/conf/defaults.ini
install -p -m 644 packaging/rpm/sysconfig/grafana-server \
%{buildroot}%{_sysconfdir}/sysconfig/grafana-server
@@ -503,12 +365,11 @@ chmod 640 %{_sysconfdir}/%{name}/ldap.toml
%check
cd %{_builddir}/src/github.com/grafana/grafana
-export GOPATH=%{_builddir}:%{gopath}
+export GOPATH=%{_builddir}
# remove tests currently failing - these two are due to a symlink
# BUILD/src/github.com/grafana/grafana -> BUILD/grafana-6.6.1
rm -f pkg/services/provisioning/dashboards/file_reader_linux_test.go
rm -f pkg/services/provisioning/dashboards/file_reader_test.go
-export GO111MODULE=off
%gotest ./pkg/...
@@ -520,36 +381,24 @@ export GO111MODULE=off
# config files
%dir %{_sysconfdir}/%{name}
-%config(noreplace) %attr(640, root, %{GRAFANA_GROUP}) %{_sysconfdir}/%{name}/grafana.ini
-%config(noreplace) %attr(640, root, %{GRAFANA_GROUP}) %{_sysconfdir}/%{name}/ldap.toml
+%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning
+%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/dashboards
+%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/datasources
+%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/notifiers
+%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_sysconfdir}/%{name}/provisioning/plugins
+%config(noreplace) %attr(0640, root, %{GRAFANA_GROUP}) %{_sysconfdir}/%{name}/grafana.ini
+%config(noreplace) %attr(0640, root, %{GRAFANA_GROUP}) %{_sysconfdir}/%{name}/ldap.toml
%config(noreplace) %{_sysconfdir}/sysconfig/grafana-server
# Grafana configuration to dynamically create /run/grafana/grafana.pid on tmpfs
%{_tmpfilesdir}/%{name}.conf
# config database directory and plugins
-%attr(750, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}
+%attr(0750, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}
%attr(-, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}/plugins
-# shared directory and all files therein, except some datasources
+# shared directory and all files therein
%{_datadir}/%{name}
-
-# built-in datasources that are sub-packaged
-%global dsdir %{_datadir}/%{name}/public/app/plugins/datasource
-%exclude %{dsdir}/cloudwatch
-%exclude %{dsdir}/elasticsearch
-%exclude %{dsdir}/graphite
-%exclude %{dsdir}/grafana-azure-monitor-datasource
-%exclude %{dsdir}/influxdb
-%exclude %{dsdir}/loki
-%exclude %{dsdir}/mssql
-%exclude %{dsdir}/mysql
-%exclude %{dsdir}/opentsdb
-%exclude %{dsdir}/postgres
-%exclude %{dsdir}/prometheus
-%exclude %{dsdir}/stackdriver
-
-%dir %{_datadir}/%{name}/conf
%attr(-, root, %{GRAFANA_GROUP}) %{_datadir}/%{name}/conf/*
# systemd service file
@@ -564,61 +413,16 @@ export GO111MODULE=off
# other docs and license
%license LICENSE
-%doc CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md NOTICE.md
-%doc PLUGIN_DEV.md README.md ROADMAP.md UPGRADING_DEPENDENCIES.md
-
-#
-# datasources split out into subpackages
-#
-%files cloudwatch
-%{_datadir}/%{name}/public/app/plugins/datasource/cloudwatch
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/cloudwatch/README.md
-
-%files elasticsearch
-%{_datadir}/%{name}/public/app/plugins/datasource/elasticsearch
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/elasticsearch/README.md
-
-%files azure-monitor
-%{_datadir}/%{name}/public/app/plugins/datasource/grafana-azure-monitor-datasource
-
-%files graphite
-%{_datadir}/%{name}/public/app/plugins/datasource/graphite
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/graphite/README.md
-
-%files influxdb
-%{_datadir}/%{name}/public/app/plugins/datasource/influxdb
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/influxdb/README.md
-
-%files loki
-%{_datadir}/%{name}/public/app/plugins/datasource/loki
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/loki/README.md
-
-%files mssql
-%{_datadir}/%{name}/public/app/plugins/datasource/mssql
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/mssql/README.md
-
-%files mysql
-%{_datadir}/%{name}/public/app/plugins/datasource/mysql
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/mysql/README.md
-
-%files opentsdb
-%{_datadir}/%{name}/public/app/plugins/datasource/opentsdb
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/opentsdb/README.md
-
-%files postgres
-%{_datadir}/%{name}/public/app/plugins/datasource/postgres
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/postgres/README.md
-
-%files prometheus
-%{_datadir}/%{name}/public/app/plugins/datasource/prometheus
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/prometheus/README.md
-
-%files stackdriver
-%{_datadir}/%{name}/public/app/plugins/datasource/stackdriver
-%doc %{_datadir}/%{name}/public/app/plugins/datasource/stackdriver/README.md
+%doc CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md GOVERNANCE.md ISSUE_TRIAGE.md MAINTAINERS.md NOTICE.md
+%doc PLUGIN_DEV.md README.md ROADMAP.md SECURITY.md SUPPORT.md UPGRADING_DEPENDENCIES.md WORKFLOW.md
%changelog
+* Thu Jul 30 2020 Andreas Gerstmayr <agerstmayr(a)redhat.com> 7.1.1-1
+- update to 7.1.1 tagged upstream community sources, see CHANGELOG
+- merge all datasources into main grafana package
+- bundle golang dependencies
+
* Tue Jul 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.7.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
diff --git a/list_go_buildrequires.sh b/list_go_buildrequires.sh
deleted file mode 100755
index 62e4d06..0000000
--- a/list_go_buildrequires.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-
-[ $# -ne 1 ] && echo "Usage: $0 grafana-X.Y.Z/" && exit 1
-GRAFANA_SOURCES="$(readlink -f "$1")"
-
-cd "$(mktemp -d)"
-mkdir -p src/github.com/grafana
-ln -s "${GRAFANA_SOURCES}" src/github.com/grafana/grafana
-ln -s "${GRAFANA_SOURCES}/vendor/github.com/grafana/grafana-plugin-model" src/github.com/grafana/grafana-plugin-model
-ln -s "${GRAFANA_SOURCES}/vendor/github.com/grafana/grafana-plugin-sdk-go" src/github.com/grafana/grafana-plugin-sdk-go
-
-for pkg in grafana grafana-plugin-model grafana-plugin-sdk-go
-do
- GOPATH=$(pwd) golist --imported --package-path "github.com/grafana/$pkg" --skip-self --template 'BuildRequires: golang({{.}})\n'
-done | sed \
- -e "s,github.com/linkedin/goavro/v2,github.com/linkedin/goavro,g" \
- -e "s,github.com/go-xorm/xorm,xorm.io/xorm,g" \
- -e "s,github.com/robfig/cron/v3,gopkg.in/robfig/cron.v3,g" \
- -e "s,github.com/unknwon/com,github.com/Unknwon/com,g" \
- | sort | uniq
diff --git a/make_grafana_webpack.sh b/make_grafana_webpack.sh
deleted file mode 100755
index 7baf487..0000000
--- a/make_grafana_webpack.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#! /bin/bash
-#
-# Copyright (c) 2019-2020 Red Hat.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2 of the License, or (at your
-# option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-
-[ $# -ne 1 ] && echo "Usage: $0 version" && exit 1
-
-# grafana version (must be tagged on github.com/grafana/grafana as "v$VER")
-VER=$1
-
-command -v yarn || { echo Error, please install the yarn package manager. && exit 1; }
-
-# get src tree and set cwd
-echo Fetching pristine upstream git tagged branch for grafana version v$VER ...
-git clone https://github.com/grafana/grafana grafana-$VER
-cd grafana-$VER
-git checkout -b v$VER v$VER
-
-# exclude the phantomjs-prebuilt binary module from the webpack
-sed -i '/phantomjs-prebuilt/d' package.json
-
-# nuke grunt task for copying phantomjs
-rm -f scripts/grunt/options/phantomjs.js
-sed -i '/phantomjs/d' scripts/grunt/*.js
-
-# populate node_modules using package.json
-echo Running yarn to populate local node_modules ....
-yarn --non-interactive --no-progress --ignore-engines install --pure-lockfile > yarn.out 2>&1
-
-# build the webpack
-echo;echo Building production webpack ....
-node_modules/webpack/bin/webpack.js --display errors-only --mode production --config scripts/webpack/webpack.prod.js
-
-cd ..
-
-# webpack tarball. Includes public/views because index.html references the webpack
-tar czf grafana_webpack-$VER.tar.gz grafana-$VER/public/build grafana-$VER/public/views
-
-# source tarball (if needed)
-if [ ! -f grafana-$VER.tar.gz ]; then
- wget --quiet -O grafana-$VER.tar.gz https://github.com/grafana/grafana/archive/v$VER/grafana-$VER.tar.gz
-fi
-
-# done
-echo Both grafana-$VER.tar.gz and grafana_webpack-$VER.tar.gz
-echo should now be in your working directory.
-
-exit 0
diff --git a/run_container_build.sh b/run_container_build.sh
index e6746e6..69ed10d 100755
--- a/run_container_build.sh
+++ b/run_container_build.sh
@@ -16,7 +16,7 @@ RUN mkdir /grafana /deps
${INSTALL_UNPUBLISHED_DEPENDENCIES}
-COPY grafana.spec *.patch grafana-*.tar.gz grafana_webpack-*.tar.gz make_grafana_webpack.sh distro-defaults.ini /grafana
+COPY grafana.spec *.patch grafana-*.tar.gz distro-defaults.ini Makefile create_webpack_manifest.py /grafana
WORKDIR /grafana
RUN dnf -y builddep grafana.spec
RUN rpkg local
diff --git a/sources b/sources
index 212fa97..0bf5376 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
-SHA512 (grafana-6.7.4.tar.gz) = f05f09d476a8be4b7d331f8a769c3353b0fffd17b3317fe1c14aa8a776187cdfdf4b9a13fb58d0b40c7734f603af2c47220aa8c40797acad0258275705167166
-SHA512 (grafana_webpack-6.7.4.tar.gz) = 3182caa9fd7d9398b6cd3ed596558c2d051c99c359bd8de80f149e5fb55f7f003b5e7679786e8c9861b2afe1ddd5056c36b702145dd0a89d5d184cbe1e9b14bd
+SHA512 (grafana-7.1.1.tar.gz) = 487322d6d26cdc1ce6fc03719ded482380c2be4bb01279367ff166b2bc9e3ca7691edc32a6c42bb9a64eb39d6620ca47855786e259dbfeb636585add5e1fe5b0
+SHA512 (grafana-vendor-7.1.1.tar.gz) = 966ec92abdd644e4a189e8c381c0ffc6e54995983ae4746eee183cdc65a6817e3368faf1366990795cb18299fe8a9883257ba7e2b7b5f24db0631e16ae223884
+SHA512 (grafana-webpack-7.1.1.tar.gz) = 5e271ecd9539dba4f902d3c2a14e5deb5b0f1fa686d20bf6ac3db11af54c6571477a56d270dae9c43f374c485c7cdc48155acfdeb7428ac3a1a09dd6abc71d90
commit 21d92f3f7f64dadb4d1d7fca352cdaa37e7c9c51
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Tue Jul 28 00:17:23 2020 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/grafana.spec b/grafana.spec
index a783904..690b8d8 100644
--- a/grafana.spec
+++ b/grafana.spec
@@ -16,7 +16,7 @@ end}
Name: grafana
Version: 6.7.4
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Metrics dashboard and graph editor
License: ASL 2.0
URL: https://grafana.org
@@ -619,6 +619,9 @@ export GO111MODULE=off
%changelog
+* Tue Jul 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.7.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
* Fri Jun 05 2020 Andreas Gerstmayr <agerstmayr(a)redhat.com> 6.7.4-1
- update to 6.7.4 tagged upstream community sources, see CHANGELOG
- security fix for CVE-2020-13379
3 years, 5 months
Architecture specific change in rpms/libtaskotron.git
by githook-noreply@fedoraproject.org
The package rpms/libtaskotron.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/libtaskotron.git/commit/?id=066bb....
Change:
-ExclusiveArch: %{kernel_arches} noarch
Thanks.
Full change:
============
commit 066bbde7a392c9caf0f058e36c22762b4d5160fe
Author: Kamil Páral <kparal(a)redhat.com>
Date: Wed Nov 25 15:27:57 2020 +0100
The upstream project is no longer developed nor maintained
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 76f9220..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,34 +0,0 @@
-/*.rpm
-/libtaskotron-0.4.13.tar.gz
-/libtaskotron-0.4.14.tar.gz
-/libtaskotron-0.4.15.tar.gz
-/libtaskotron-0.4.16.tar.gz
-/libtaskotron-0.4.17.tar.gz
-/libtaskotron-0.4.18.tar.gz
-/libtaskotron-0.4.19.tar.gz
-/libtaskotron-0.4.20.tar.gz
-/libtaskotron-0.4.21.tar.gz
-/libtaskotron-0.4.22.tar.gz
-/libtaskotron-0.4.23.tar.gz
-/libtaskotron-0.4.24.tar.gz
-/libtaskotron-0.4.25.tar.gz
-/libtaskotron-0.5.0.tar.gz
-/libtaskotron-0.5.1.tar.gz
-/libtaskotron-0.6.0.tar.gz
-/libtaskotron-0.6.1.tar.gz
-/libtaskotron-0.7.0.tar.gz
-/libtaskotron-0.8.0.tar.gz
-/libtaskotron-0.9.0.tar.gz
-/libtaskotron-0.9.1.tar.gz
-/libtaskotron-0.9.2.tar.gz
-/libtaskotron-0.9.3.tar.gz
-/libtaskotron-0.9.4.tar.gz
-/libtaskotron-0.9.5.tar.gz
-/libtaskotron-0.9.6.tar.gz
-/libtaskotron-0.9.7.tar.gz
-/libtaskotron-0.9.8.tar.gz
-/libtaskotron-0.10.0.tar.gz
-/libtaskotron-0.10.1.tar.gz
-/libtaskotron-0.10.2.tar.gz
-/libtaskotron-0.10.3.tar.gz
-/libtaskotron-0.10.4.tar.gz
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..cbdd2b3
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+The upstream project is no longer developed nor maintained
diff --git a/libtaskotron.spec b/libtaskotron.spec
deleted file mode 100644
index e2c091b..0000000
--- a/libtaskotron.spec
+++ /dev/null
@@ -1,637 +0,0 @@
-Name: libtaskotron
-# NOTE: if you update version, *make sure* to also update `libtaskotron/__init__.py`
-
-ExclusiveArch: %{kernel_arches} noarch
-
-Version: 0.10.4
-Release: 5%{?dist}
-Summary: Taskotron Support Library
-
-License: GPLv3
-URL: https://pagure.io/taskotron/libtaskotron
-Source0: https://qa.fedoraproject.org/releases/%{name}/%{name}-%{version}.tar.gz
-
-BuildArch: noarch
-
-%description
-Libtaskotron is a support library for running taskotron tasks.
-
-%package -n python3-libtaskotron
-Summary: libtaskotron python3 libraries
-
-Obsoletes: python2-libtaskotron <= %{version}-%{release}
-
-Requires: ansible
-Requires: createrepo_c
-Requires: dnf
-Requires: python3-bodhi-client
-Requires: python3-hawkey
-Requires: python3-jinja2
-Requires: python3-koji
-Requires: python3-munch
-Requires: python3-progressbar
-Requires: python3-pyyaml
-Requires: python3-requests
-Requires: python3-resultsdb_api
-Requires: python3-rpm
-Requires: python3-setuptools
-Requires: python3-xunitparser
-# used by 'synchronize' task in ansible
-Requires: rsync
-
-BuildRequires: python3-bodhi-client
-BuildRequires: python3-devel
-BuildRequires: python3-hawkey
-BuildRequires: python3-koji
-BuildRequires: python3-mock
-BuildRequires: python3-munch
-BuildRequires: python3-progressbar
-BuildRequires: python3-pytest
-BuildRequires: python3-pytest-cov
-BuildRequires: python3-pyyaml
-BuildRequires: python3-requests
-BuildRequires: python3-resultsdb_api
-BuildRequires: python3-rpmfluff
-BuildRequires: python3-setuptools
-BuildRequires: python3-sphinx_rtd_theme
-BuildRequires: python3-testcloud
-BuildRequires: python3-xunitparser
-
-%description -n python3-libtaskotron
-Libtaskotron libraries built for Python 3.
-
-%pre -n python3-libtaskotron
-getent group taskotron >/dev/null || groupadd taskotron
-
-
-# ****** taskotron-runner ******
-
-%package -n taskotron-runner
-Summary: runtask binary used to execute tasks
-
-Provides: libtaskotron = %{version}-%{release}
-Provides: libtaskotron-core = %{version}-%{release}
-Provides: libtaskotron-fedora = %{version}-%{release}
-Provides: libtaskotron-disposable = %{version}-%{release}
-Provides: libtaskotron-config = %{version}-%{release}
-Obsoletes: libtaskotron < 0.9.2-1
-Obsoletes: libtaskotron-core < 0.9.2-1
-Obsoletes: libtaskotron-fedora < 0.9.2-1
-Obsoletes: libtaskotron-disposable < 0.9.2-1
-Obsoletes: libtaskotron-config < 0.9.2-1
-
-BuildRequires: ansible
-BuildRequires: grep
-# used by 'synchronize' task in ansible
-BuildRequires: rsync
-BuildRequires: sed
-
-Requires: python3-libtaskotron = %{version}-%{release}
-Requires: python3-testcloud
-
-%description -n taskotron-runner
-libtaskotron's runtask binary which is used to execute taskotron tasks.
-
-
-# *************************************
-
-%prep
-%setup -q
-
-%build
-# testing needs to occur here instead of %%check section, because we need to
-# patch config files after testing is done, but before py[co] files are built
-# (so that they match the source files)
-%{__python3} setup.py test
-
-# adjust data path in config
-sed -i "/_data_dir/s#_data_dir = '../data'#_data_dir = '%{_datarootdir}/libtaskotron'#" libtaskotron/config_defaults.py
-grep -Fq "_data_dir = '%{_datarootdir}/libtaskotron'" libtaskotron/config_defaults.py
-
-# build files
-%py3_build
-
-%install
-%py3_install
-
-# configuration files
-mkdir -p %{buildroot}%{_sysconfdir}/taskotron/
-install -m 0644 conf/taskotron.yaml.example %{buildroot}%{_sysconfdir}/taskotron/taskotron.yaml
-install -m 0644 conf/namespaces.yaml.example %{buildroot}%{_sysconfdir}/taskotron/namespaces.yaml
-install -m 0644 conf/yumrepoinfo.conf.example %{buildroot}%{_sysconfdir}/taskotron/yumrepoinfo.conf
-
-# log dir
-install -d %{buildroot}/%{_localstatedir}/log/taskotron
-
-# tmp dir
-install -d %{buildroot}/%{_tmppath}/taskotron
-
-# artifacts dir
-install -d %{buildroot}/%{_sharedstatedir}/taskotron/artifacts
-
-# cache dir
-install -d %{buildroot}/%{_localstatedir}/cache/taskotron
-
-# images dir
-install -d %{buildroot}/%{_sharedstatedir}/taskotron/images
-
-# data files
-mkdir -p %{buildroot}%{_datarootdir}/libtaskotron
-cp -a data/* %{buildroot}%{_datarootdir}/libtaskotron
-
-%files -n taskotron-runner
-%{_bindir}/runtask
-%doc README.rst
-%license LICENSE
-
-%files -n python3-libtaskotron
-%{_bindir}/taskotron_result
-
-%{python3_sitelib}/%{name}/
-%{python3_sitelib}/%{name}-*.egg-info
-
-%dir %{_sysconfdir}/taskotron
-%config(noreplace) %{_sysconfdir}/taskotron/namespaces.yaml
-%config(noreplace) %{_sysconfdir}/taskotron/taskotron.yaml
-%config %{_sysconfdir}/taskotron/yumrepoinfo.conf
-
-%{_datarootdir}/libtaskotron
-%dir %attr(0775, root, taskotron) %{_sharedstatedir}/taskotron
-%dir %attr(2775, root, taskotron) %{_localstatedir}/cache/taskotron
-%dir %attr(2775, root, taskotron) %{_localstatedir}/log/taskotron
-%dir %attr(2775, root, taskotron) %{_sharedstatedir}/taskotron/artifacts
-%dir %attr(2775, root, taskotron) %{_sharedstatedir}/taskotron/images
-%dir %attr(2775, root, taskotron) %{_tmppath}/taskotron
-
-%doc README.rst
-%license LICENSE
-
-%changelog
-* Thu Aug 27 2020 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.10.4-5
-- ExclusiveArch to prevent koji from trying to build this on i686
-
-* Sat Aug 01 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.10.4-4
-- Second attempt - Rebuilt for
- https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Tue Jul 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.10.4-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Tue May 26 2020 Miro Hrončok <mhroncok(a)redhat.com> - 0.10.4-2
-- Rebuilt for Python 3.9
-
-* Wed Feb 12 2020 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.10.4-1
-- yumrepoinfo: F32 is Branched
-
-* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.10.3-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Thu Nov 21 2019 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.10.3-1
-- yumrepoinfo: F31 is stable, F29 is EOL
-- Drop Python 2 Support from spec
-
-* Thu Oct 03 2019 Miro Hrončok <mhroncok(a)redhat.com> - 0.10.2-3
-- Rebuilt for Python 3.8.0rc1 (#1748018)
-
-* Mon Aug 19 2019 Miro Hrončok <mhroncok(a)redhat.com> - 0.10.2-2
-- Rebuilt for Python 3.8
-
-* Thu Aug 15 2019 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.10.2-1
-- yumrepoinfo: Fedora 31 is branched now
-
-* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.10.1-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Wed May 29 2019 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.10.1-1
-- yumrepoinfo: Fedora 30 is stable now
-
-* Wed May 22 2019 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.10.0-1
-- Reland "update to new bodhi library"
-- tests: execute just on Python 3 by default
-- ansible: update python requirements to work on F30
-- executor: force ansible to use python3
-- yumrepoinfo.conf: Fedora 28 is EOL
-
-* Wed Apr 24 2019 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.8-1
-- distgit_directive: download from pagure instead of cgit
-
-* Wed Feb 20 2019 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.7-1
-- yumrepoinfo: Fedora 30 has been branched
-- docs: allow CRASHED outcome
-
-* Fri Feb 15 2019 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.6-1
-- Build scripts: Use Fedora 29 chroot
-- ansible.cfg: configure ssh connection retry
-
-* Fri Feb 08 2019 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.5-1
-- Drop dependency on python3-configparser
-- Support both progressbar and progressbar2
-
-* Fri Feb 01 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.9.4-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Thu Dec 27 2018 Miro Hrončok <mhroncok(a)redhat.com> - 0.9.4-3
-- Support python3-progressbar2 (hotfix, rawhide dist-git only)
-
-* Tue Dec 04 2018 Kamil Páral <kparal(a)redhat.com> - 0.9.4-1
-- revert to old bodhi library
-- fix group creation during rpm install
-
-* Tue Dec 04 2018 Kamil Páral <kparal(a)redhat.com> - 0.9.3-2
-- add 'pre' section to libraries, the generic one is not executed for them
-
-* Sun Dec 02 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.3-1
-- yumrepoinfo.conf: Fedora 27 is EOL
-- spec: replace python-fedora with python-bodhi-client
-- requirements: unify libtaskotron sections
-
-* Tue Nov 20 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.2-3
-- Obsolete python2-libtaskotron in Fedora >= 30
-- Require python-bodhi-client instead of python-fedora
-
-* Fri Nov 16 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.2-2
-- Drop support for Fedora 27
-- Don't build python2-libtaskotron on Fedora >= 30
-
-* Thu Nov 01 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.2-1
-- New packaging scheme
-- Build the library both for Python 2 and Python 3
-- Binaries will use Python 3 by default
-- runtask is now in taskotron-runner, which obsoletes libtaskotron-disposable
-
-* Tue Oct 30 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.1-1
-- Fedora 29 GA
-
-* Tue Aug 21 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.9.0-1
-- Python 3.7 fixes
-- Use F28 in example files
-- New BR: python2/3-testcloud
-- Add Branched F29 to yumrepoinfo
-- remove support for executing distgit (vanilla STI) tests
-- switch createrepo for createrepo_c
-- config: add minion_repos_ignore_errors (bool) option
-
-* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.8.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Mon Jul 09 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.8.0-1
-- spec: use python2 macros explicitly, fix python deps
-- runner: retry installing required packages
-- executor: add friendly error when results.yml is missing
-- Enable grabbing secrets from Vault server
-- file_utils: fix presence of status code errno for failed http requests
-- spec: adjust testcloud requirement
-- file_utils: retry 5xx errors when downloading files
-- yumrepoinfo: F26 is EOL
-- runner: retry network errors when adding minion repos
-- doit: update dodo.py to work with Python 3
-
-* Mon May 28 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.7.0-1
-- koji_utils: consider debugsource packages as debuginfo
-- fix: reintroduce --no-destroy
-- executor: fix running as root
-- fix: docs variables handling
-- Minion env matching extended with taskotron_match_* vars
-- Python 3 support for tests
-- create file indicating that results were reported
-
-* Thu May 03 2018 Frantisek Zatloukal <fzatlouk(a)redhat.com> - 0.6.1-1
-- yumrepoinfo: retry on socket errors
-- yumrepoinfo: mark F28 as stable
-
-* Wed Apr 04 2018 Kamil Páral <kparal(a)redhat.com> - 0.6.0-1
-- distgit_directive: use correct branch name for Rawhide
-- allow to specify COPR repos in minion_repos
-- spawn new vm for each test*.yml
-- save output of 'rpm -qa' to artifacts dir
-- yumrepoinfo: Fix F28 updates URL
-- distgit_directive: add param ignore_missing
-- exit with non-zero code when some playbook crashes
-- retry VM spawning when it fails
-
-* Tue Mar 06 2018 Kamil Páral <kparal(a)redhat.com> - 0.5.1-1
-- yumrepoinfo.conf: fix updates repo url for F28+
-
-* Thu Mar 1 2018 Kamil Páral <kparal(a)redhat.com> - 0.5.0-1
-- Support Standard Test Interface (Ansible-based) tasks
- (removes support for previous task format)
-
-* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 0.4.25-4
-- Escape macros in %%changelog
-
-* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.25-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Wed Jan 10 2018 Kamil Páral <kparal(a)redhat.com> - 0.4.25-2
-- Update Python 2 dependency declarations to new packaging standards
- (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 and
- https://src.fedoraproject.org/rpms/libtaskotron/pull-request/1)
-
-* Thu Nov 23 2017 Kamil Páral <kparal(a)redhat.com> - 0.4.25-1
-- update yumrepoinfo
-- update to latest testcloud API
-- add `pull_request` item type
-
-* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.24-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Fri Jul 14 2017 Kamil Páral <kparal(a)redhat.com> - 0.4.24-1
-- do not use --cacheonly for dnf operations
-
-* Wed Jul 12 2017 Kamil Páral <kparal(a)redhat.com> - 0.4.23-1
-- fix python2-koji dep on F27+
-- fix broken test suite
-
-* Wed Jul 12 2017 Kamil Páral <kparal(a)redhat.com> - 0.4.22-1
-- mark Fedora 26 as stable in yumrepoinfo
-- remove check for installed packages because it was problematic
-
-* Fri Jun 30 2017 Kamil Páral <kparal(a)redhat.com> - 0.4.21-1
-- documentation improvements
-- DNF_REPO item type removed
-- default task artifact now points to artifacts root dir instead of task log
-- fix rpm deps handling via dnf on Fedora 26 (but only support package names
- and filepaths as deps in task formulas)
-
-* Tue Apr 4 2017 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.20-1
-- Add module_build item type (D1184)
-- taskformula: replace vars in dictionary keys (D1176)
-- koji_directive: always create target_dir (D1175)
-- koji_directive: don't crash when latest stable build doesn't exist (D1174)
-- argparse: change --arch to be a single value instead of a string (D1171)
-- yumrepoinfo: specify all primary and alternate arches (D1172)
-
-* Fri Mar 24 2017 Tim Flink <tflink(a)fedoraproject.org> - 0.4.19-4
-- bumping revision to test package-specific testing again
-
-* Fri Mar 17 2017 Tim Flink <tflink(a)fedoraproject.org> - 0.4.19-3
-- bumping revision to test package-specific testing again
-
-* Fri Mar 17 2017 Tim Flink <tflink(a)fedoraproject.org> - 0.4.19-2
-- bumping revision to test package-specific testing
-
-* Fri Mar 17 2017 Tim Flink <tflink(a)fedoraproject.org> - 0.4.19-1
-- updating yumrepoinfo for F26
-- improved support for secondary architectures
-
-* Thu Mar 16 2017 Tim Flink <tflink(a)fedoraproject.org> - 0.4.18-3
-- bumping revision to test package-specific testing
-
-* Fri Feb 17 2017 Kamil Páral <kparal(a)redhat.com> - 0.4.18-4
-- require koji >= 1.10.0 because of T910
-
-* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4.18-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Fri Feb 10 2017 Kamil Páral <kparal(a)redhat.com> - 0.4.18-3
-- add python-pytest-cov builddep because the test suite now needs it,
- and python-rpmfluff because we're missing it
-
-* Thu Feb 09 2017 Kamil Páral <kparal(a)redhat.com> - 0.4.18-2
-- require python-resultsdb_api >= 2.0.0
-
-* Wed Jan 11 2017 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.18-1
-- distgit directive improvements (D1055, D1069)
-- yumrepoinfo.conf updates (D1057, D1074)
-- koji_utils: use supported arches when downloading build logs (D1076)
-
-* Thu Nov 3 2016 Tim Flink <tflink(a)fedoraproject.org> - 0.4.17-1
-- add support for resultsdb 2.0 (D1019)
-- add armhfp as a primary arch (D1040)
-
-* Wed Aug 17 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.16-1
-- symlink testcloud images instead of copying
-- copy dir to minion via tarball
-- yumrepoinfo.conf: Fedora 25 has been branched
-
-* Thu Jul 28 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.15-1
-- Allow resultsdb_directive to read from file
-- create_report_directive: allow input from file
-- bash to shell directive
-- yumrepoinfo.conf: F22 is now EOL
-- various fixes and improvements
-
-* Tue Jul 12 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.14-1
-- add xunit directive
-- docker testing documentation
-- taskotron_result tool
-- various fixes and improvements
-
-* Fri May 27 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.13-3
-- fix download URL for Source0
-- fix conf files permissions
-
-* Thu May 26 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.13-2
-- remove not needed custom python_sitelib macro
-
-* Thu May 26 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.13-1
-- add distgit docs
-- fix progressbar
-- koji: allow to exclude arches
-- remote_exec: update to latest packages even when cache is outdated
-
-* Tue May 10 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.12-2
-- remove global write permissions of libtaskotron directories and change group ownership
- to the taskotron group
-
-* Mon May 9 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.12-1
-- bash directive
-- allow using a dot to access attributes of a variable in formula
-- various fixes
-
-* Mon Apr 18 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.11-1
-- add result namespace whitelist
-- various fixes and small improvements
-
-* Tue Mar 15 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.10-3
-- add python-configparser as dep
-- install namespaces.yaml
-
-* Mon Mar 14 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.10-2
-- add report_templates directory
-
-* Thu Mar 03 2016 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.4.10-1
-- various performance fixes in disposable clients
-
-* Sun Feb 07 2016 Tim Flink <tflink(a)fedoraproject.org> - 0.4.9-1
-- add report directive (D735)
-- restructure docs (D734)
-
-* Thu Jan 28 2016 Martin Krizek <mkrizek(a)redhat.com> - 0.4.8-2
-- Add jinja2 as a dep
-
-* Mon Jan 25 2016 Tim Flink <tflink(a)fedoraproject.org> - 0.4.8-1
-- Documentation updates (D726, D725)
-
-* Wed Jan 20 2016 Tim Flink <tflink(a)fedoraproject.org> - 0.4.7-1
-- changed filename structure for disposable images (D696)
-- fixed crash when a check does not provide result (D723)
-- Lots of documentation fixes and updates
-
-* Wed Dec 9 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.4.6-1
-- urlgrabber replaced with requests (D668)
-- Make minion repos configurable (D682)
-- Copy all config files on a minion (D662)
-- Fix module import error masking missing modules (D659)
-
-* Fri Nov 20 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.4.5-2
-- Require the exact same version of subpackages
-- Remove unused deps
-
-* Thu Nov 19 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.4.5-1
-- Do not fail when copying a task from cwd (D656)
-- We need -core not -disposable on disposable clients (D652)
-- Don't require -disposable in -core (D652)
-
-* Thu Nov 12 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.4.4-1
-- add %%files for libtaskotron meta-package so it's actually built
-- make imageurl configurable
-- change package install commands to work with new subpackage structure
-
-* Thu Nov 12 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.4.3-1
-- break libtaskotron up into subpackages (D616)
-
-* Tue Nov 3 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.4.2-1
-- setup.py: fix entry point
-- check if packages are installed before installing them
-- taskotron.yaml.example: fix typo
-
-* Tue Nov 3 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.4.1-1
-- Save tmp files into /tmpdir/$username (D632)
-- find latest image using filename convention (D618)
-- yumrepoinfo.conf: Fedora 23 has been released (D633)
-
-* Wed Oct 14 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.4.0-1
-- merge disposable branch to add option to execute the task in a throwaway client
-
-* Wed Sep 02 2015 Josef Skladanka <jskaladan(a)fedoraproject.org> - 0.3.24-1
-- remove pytap, bayeux and yamlish dependencies
-
-* Fri Aug 28 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.23-1
-- only submit bodhi comments on failure (D542)
-
-* Wed Aug 26 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.22-1
-- Re-enabling bodhi comment directive (D527)
-- Include artifacts dir at end of run (D533)
-
-* Wed Aug 19 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.21-1
-- Fixing bad initialization of bodhi_utils (D514)
-- Removing default value of None for fas_password (D511)
-
-* Tue Aug 18 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.20-1
-- Fixing tests to not try network connecitons (T574)
-
-* Tue Aug 18 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.19-1
-- Fixes to make libtaskotron mostly compatible with bodhi2 (T558)
-
-* Wed Jul 15 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.17-1
-- several minor fixes and enhancements, see git log for more information
-
-* Wed Jul 8 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.3.16-1
-- 0.3.16 release. See git log for more information
-
-* Wed May 13 2015 Kamil Paral <kparal(a)redhat.com> - 0.3.15-2
-- synchronize package versions between spec file and requirements.txt (D337)
-
-* Mon Apr 20 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.15-1
-- Do not report ABORTED runs to bodhi (T467)
-
-* Mon Apr 20 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.14-1
-- Removing logrotate in production (D339)
-- Adding status to bodhi operations and removing excess queries (D344)
-
-* Tue Apr 7 2015 Kamil Paral <kparal(a)redhat.com> - 0.3.13-2
-- Require python-setuptools, otherwise runtask fails to execute. See T449.
-
-* Tue Mar 31 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.3.13-1
-- Add support for execdb
-- Various fixes
-
-* Wed Feb 25 2015 Martin Krizek <mkrizek(a)redhat.com> - 0.3.12-1
-- Add support for task artifacts
-
-* Thu Feb 12 2015 Tim Flink <tflink(a)fedoraproject.org> - 0.3.11-1
-- Adding 'compose' item type (T381)
-- Fix issue with mash when no RPMs downloaded (T351)
-
-* Wed Oct 22 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.3.10-1
-- Fix for i386 unit tests (T361)
-- Small documentation fixes
-
-* Fri Oct 17 2014 Martin Krizek <mkrizek(a)redhat.com> - 0.3.9-1
-- Improve logging messages
-- Update documentation
-
-* Thu Oct 9 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.3.8-1
-- Adding bodhi query retries for read-only operations (T338)
-- several small bugfixes and typo corrections
-
-* Fri Aug 22 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.3.7-1
-- Adding mash as a BR for functional tests
-- removing all as an option for runtask
-
-* Fri Aug 22 2014 Martin Krizek <mkrizek(a)redhat.com> - 0.3.6-1
-- Releasing libtaskotron 0.3.6
-
-* Tue Jul 08 2014 Martin Krizek <mkrizek(a)fedoraproject.org> - 0.3.3-2
-- Add /var/log/taskotron directory
-
-* Mon Jun 30 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.3.3-1
-- Changed distibution license to gpl3
-- New user-facing docs
-
-* Mon Jun 23 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.3.2-1
-- Gracefully handle missing rpms in build. Fixes T251.
-
-* Mon Jun 23 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.3.1-1
-- Better support for depcheck in koji_utils and mash_directive
-- Added ability for check name to be specified in TAP13 output
-
-* Mon Jun 16 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.3.0-1
-- Added sphinx to requirements.txt
-
-* Fri Jun 13 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.2.1-1
-- documentation improvements, added LICENSE file
-- better support for depcheck, srpm downloading
-- improved logging configuration
-
-* Wed May 28 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.1.1-1
-- adding libtaskotron-config as requires for libtaskotron
-- changing variable syntax to $var and ${var}
-- add yumrepoinfo directive, other bugfixes
-
-* Fri May 16 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.1.0-1
-- Releasing libtaskotron 0.1
-
-* Fri May 09 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.11-4
-- Disabling %%check so that the code can be used while the tests are fixed
-
-* Tue May 06 2014 Kamil Páral <kparal(a)redhat.com> - 0.0.11-3
-- Add a minimum version to python-hawkey. Older versions have a different API.
-
-* Tue Apr 29 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.11-2
-- moved config files to libtaskotron-config subpackage
-
-* Tue Apr 29 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.11-1
-- changed config files to be noreplace
-- updated config file source paths
-
-* Tue Apr 29 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.10-1
-- yumrepo fix for upgradepath, output fix for readability
-
-* Fri Apr 25 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.9-1
-- koji_utils fix for upgradepath
-
-* Fri Apr 25 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.8-1
-- Updating to latest upstream version
-- Fixing resultsdb integration, adding some rpm and koji utility methods
-
-* Wed Apr 16 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.7-2
-- Fixing some urls and other small packaging changes
-
-* Tue Apr 15 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.7-1
-- Updating to latest upstream
-- Change to more generic CLI arguments to match reporting and work better with buildbot
-
-* Mon Apr 14 2014 Tim Flink <tflink(a)fedoraproject.org> - 0.0.6-2
-- Initial package for libtaskotron
diff --git a/sources b/sources
deleted file mode 100644
index 38cdfa1..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-SHA512 (libtaskotron-0.10.4.tar.gz) = f3ea7dc74af736cb340e202508a0ea38fd555bbdc68884bc1ce1803aeb5b292518d811da41b31f02aa99cbeabad5bef8cd2cc36db3be940b9683ad9db15a82b2
3 years, 5 months
Architecture specific change in rpms/thunderbird.git
by githook-noreply@fedoraproject.org
The package rpms/thunderbird.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/thunderbird.git/commit/?id=5f0bec....
Change:
-ExcludeArch: s390x
Thanks.
Full change:
============
commit e485bc63ecdcb1021afc53f537b0cbba961660d2
Author: Jan Horak <jhorak(a)redhat.com>
Date: Wed Nov 25 11:36:49 2020 +0100
Update to 78.5 build3
diff --git a/.gitignore b/.gitignore
index 8bb3050..1501287 100644
--- a/.gitignore
+++ b/.gitignore
@@ -313,3 +313,5 @@ thunderbird-langpacks-3.1.2-20100803.tar.bz2
/thunderbird-langpacks-78.4.0-20201022.tar.xz
/thunderbird-78.4.3.source.tar.xz
/thunderbird-langpacks-78.4.3-20201112.tar.xz
+/thunderbird-78.5.0.source.tar.xz
+/thunderbird-langpacks-78.5.0-20201125.tar.xz
diff --git a/sources b/sources
index d64b31f..9a0d4a0 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (thunderbird-78.4.3.source.tar.xz) = 0c441f5a55301f4d012caff111d6a882205048e4adf301ff3cfa553e1665e47a1fd835a926bd97c61e543a79465c5ada73ae699fc56425dec3dbc40f17b75620
-SHA512 (thunderbird-langpacks-78.4.3-20201112.tar.xz) = b89d1832f9aa436f8205583951aec59cec4fa1b0ccdae521904126018a1bd9c672eea70f29dcd0d0f6676b3954c279a78566ef4ffb09bd8dc6a8a9906248300b
+SHA512 (thunderbird-78.5.0.source.tar.xz) = dae49dc0910dd017250643c920c79f03d3ef14bcbafde7fcdb3aaeba2b27a42ef6f88c8de8b961f8bb1c3d1a153bc8988ab43a39eb051d81839cf3b9e8373118
+SHA512 (thunderbird-langpacks-78.5.0-20201125.tar.xz) = c18d0f0f541535197bbb42a1600a847366109dd32aa5626d083c77f0bc4572496a153d266ac8272333669cbbc3950f791404d457a29c0ccff9700c325df6bfe8
SHA512 (cbindgen-vendor-0.14.3.tar.xz) = 33c8d28547674121f690eea0d3ebac33926a39caacac787bf8ed8b346478822e74da5a4a1f57ab4df4105fa8376739a2ece888845a85bc5712aaed20e4a508bc
diff --git a/thunderbird.spec b/thunderbird.spec
index a2e69d4..28c88ad 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -80,13 +80,13 @@ ExcludeArch: armv7hl
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
-Version: 78.4.3
+Version: 78.5.0
Release: 1%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: ftp://ftp.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/...
%if %{build_langpacks}
-Source1: thunderbird-langpacks-%{version}-20201112.tar.xz
+Source1: thunderbird-langpacks-%{version}-20201125.tar.xz
%endif
Source3: get-calendar-langpacks.sh
Source4: cbindgen-vendor-0.14.3.tar.xz
@@ -736,6 +736,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
+* Wed Nov 25 2020 Jan Horak <jhorak(a)redhat.com> - 78.5.0-1
+- Update to 78.5.0 build3
+
* Thu Nov 12 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.3-1
- Update to 78.4.3 build1
commit 43de65877be095c336646b0aa0580d0bb6ccd368
Author: Jan Horak <jhorak(a)redhat.com>
Date: Fri Nov 13 09:36:33 2020 +0100
Fixed sources
diff --git a/sources b/sources
index 3eb30fb..d64b31f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
SHA512 (thunderbird-78.4.3.source.tar.xz) = 0c441f5a55301f4d012caff111d6a882205048e4adf301ff3cfa553e1665e47a1fd835a926bd97c61e543a79465c5ada73ae699fc56425dec3dbc40f17b75620
SHA512 (thunderbird-langpacks-78.4.3-20201112.tar.xz) = b89d1832f9aa436f8205583951aec59cec4fa1b0ccdae521904126018a1bd9c672eea70f29dcd0d0f6676b3954c279a78566ef4ffb09bd8dc6a8a9906248300b
+SHA512 (cbindgen-vendor-0.14.3.tar.xz) = 33c8d28547674121f690eea0d3ebac33926a39caacac787bf8ed8b346478822e74da5a4a1f57ab4df4105fa8376739a2ece888845a85bc5712aaed20e4a508bc
commit f41316d9d50d9c27197f4c3a5e6466e89fa44688
Author: Jan Horak <jhorak(a)redhat.com>
Date: Thu Nov 12 16:46:32 2020 +0100
Update to 78.4.3 build1
diff --git a/.gitignore b/.gitignore
index a6a5784..8bb3050 100644
--- a/.gitignore
+++ b/.gitignore
@@ -311,3 +311,5 @@ thunderbird-langpacks-3.1.2-20100803.tar.bz2
/cbindgen-vendor-0.14.3.tar.xz
/thunderbird-78.4.0.source.tar.xz
/thunderbird-langpacks-78.4.0-20201022.tar.xz
+/thunderbird-78.4.3.source.tar.xz
+/thunderbird-langpacks-78.4.3-20201112.tar.xz
diff --git a/sources b/sources
index 7095e19..3eb30fb 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,2 @@
-SHA512 (thunderbird-78.4.0.source.tar.xz) = 0536a59286dec2f05e3fa00bdcc4f2e52139d9c53d5c086e0074d0d7c6a3b01bbb4beee2c996ffecace2950d1b8b35e2731e6c681ece804b1505acd26f58b308
-SHA512 (thunderbird-langpacks-78.4.0-20201022.tar.xz) = 4430e33dce1404941aad3122f755bfb540fba8fb4ea4a2b4f1f6e564375b8663bf1f341183527fd598f79fb7500c71219aea21e44484ee5dd891cd510750ec70
-SHA512 (cbindgen-vendor-0.14.3.tar.xz) = 33c8d28547674121f690eea0d3ebac33926a39caacac787bf8ed8b346478822e74da5a4a1f57ab4df4105fa8376739a2ece888845a85bc5712aaed20e4a508bc
+SHA512 (thunderbird-78.4.3.source.tar.xz) = 0c441f5a55301f4d012caff111d6a882205048e4adf301ff3cfa553e1665e47a1fd835a926bd97c61e543a79465c5ada73ae699fc56425dec3dbc40f17b75620
+SHA512 (thunderbird-langpacks-78.4.3-20201112.tar.xz) = b89d1832f9aa436f8205583951aec59cec4fa1b0ccdae521904126018a1bd9c672eea70f29dcd0d0f6676b3954c279a78566ef4ffb09bd8dc6a8a9906248300b
diff --git a/thunderbird.spec b/thunderbird.spec
index f3fc8d1..a2e69d4 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -80,13 +80,13 @@ ExcludeArch: armv7hl
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
-Version: 78.4.0
-Release: 3%{?dist}
+Version: 78.4.3
+Release: 1%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: ftp://ftp.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/...
%if %{build_langpacks}
-Source1: thunderbird-langpacks-%{version}-20201022.tar.xz
+Source1: thunderbird-langpacks-%{version}-20201112.tar.xz
%endif
Source3: get-calendar-langpacks.sh
Source4: cbindgen-vendor-0.14.3.tar.xz
@@ -736,6 +736,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
+* Thu Nov 12 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.3-1
+- Update to 78.4.3 build1
+
* Mon Nov 09 2020 Kalev Lember <klember(a)redhat.com> - 78.4.0-3
- Add release tag to appdata
commit f11e4fcd510dde30b13e4861f501815a9e8f08e9
Author: Kalev Lember <klember(a)redhat.com>
Date: Mon Nov 9 12:49:08 2020 +0100
Add release tag to appdata
flatpak uses this to display version information.
diff --git a/thunderbird.spec b/thunderbird.spec
index 794c4ec..f3fc8d1 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -81,7 +81,7 @@ ExcludeArch: armv7hl
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
Version: 78.4.0
-Release: 2%{?dist}
+Release: 3%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: ftp://ftp.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/...
@@ -655,6 +655,9 @@ SentUpstream: 2014-09-22
<screenshots>
<screenshot type="default">https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screens...</screenshot>
</screenshots>
+ <releases>
+ <release version="%{version}" date="$(date '+%F')"/>
+ </releases>
<!-- FIXME: change this to an upstream email address for spec updates
<updatecontact>someone_who_cares(a)upstream_project.org</updatecontact>
-->
@@ -733,6 +736,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
+* Mon Nov 09 2020 Kalev Lember <klember(a)redhat.com> - 78.4.0-3
+- Add release tag to appdata
+
* Thu Oct 22 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.0-2
- Update to 78.4.0 build1
commit 20280bc94243d84aec3d1792e6b3614c1c643508
Author: Jan Horak <jhorak(a)redhat.com>
Date: Thu Oct 29 13:11:36 2020 +0100
Bump release
diff --git a/thunderbird.spec b/thunderbird.spec
index f60d21c..794c4ec 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -81,7 +81,7 @@ ExcludeArch: armv7hl
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
Version: 78.4.0
-Release: 1%{?dist}
+Release: 2%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: ftp://ftp.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/...
@@ -733,7 +733,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
-* Thu Oct 22 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.0-1
+* Thu Oct 22 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.0-2
- Update to 78.4.0 build1
* Wed Oct 07 2020 Jan Horak <jhorak(a)redhat.com> - 78.3.1-2
commit 5f0bec1b5b79e117cc469710afbfa4d008af9c29
Author: Jan Horak <jhorak(a)redhat.com>
Date: Thu Oct 29 13:10:48 2020 +0100
Enabled s390x again with patch and disabled elfhack everywhere
diff --git a/mozilla-1556931-s390x-hidden-syms.patch b/mozilla-1556931-s390x-hidden-syms.patch
new file mode 100644
index 0000000..c423d1f
--- /dev/null
+++ b/mozilla-1556931-s390x-hidden-syms.patch
@@ -0,0 +1,25 @@
+diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp
+index c38baa12bffa8..2858a7bb4d319 100644
+--- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp
++++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp
+@@ -45,16 +45,20 @@ void TIntermTraverser::traverse(T *node)
+ ++childIndex;
+ }
+
+ if (visit && postVisit)
+ node->visit(PostVisit, this);
+ }
+ }
+
++// Instantiate template for RewriteAtomicFunctionExpressions.
++template
++void TIntermTraverser::traverse(TIntermNode *);
++
+ void TIntermNode::traverse(TIntermTraverser *it)
+ {
+ it->traverse(this);
+ }
+
+ void TIntermSymbol::traverse(TIntermTraverser *it)
+ {
+ TIntermTraverser::ScopedNodeInTraversalPath addToPath(it, this);
diff --git a/thunderbird.spec b/thunderbird.spec
index 1a04a97..f60d21c 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -1,9 +1,6 @@
# Disabled arm due to rhbz#1658940
ExcludeArch: armv7hl
-# Disabled due to https://bugzilla.redhat.com/show_bug.cgi?id=1886672
-ExcludeArch: s390x
-
# Use system nspr/nss?
%define system_nss 1
@@ -19,10 +16,7 @@ ExcludeArch: s390x
%global build_with_clang 0
%global use_bundled_cbindgen 1
-%global disable_elfhack 0
-%if 0%{?fedora} > 28
%global disable_elfhack 1
-%endif
%if %{?system_nss}
%global nspr_version 4.26.0
@@ -126,6 +120,7 @@ Patch307: build-disable-elfhack.patch
# Upstream patches
Patch402: mozilla-526293.patch
Patch404: rust-1.47.patch
+Patch405: mozilla-1556931-s390x-hidden-syms.patch
%if %{official_branding}
# Required by Mozilla Corporation
@@ -267,6 +262,7 @@ debug %{name}, you want to install %{name}-debuginfo instead.
%patch402 -p1 -b .526293
%patch404 -p1 -b .rust-1.47
+%patch405 -p1 -b .1556931-s390x-hidden-syms
%if %{official_branding}
# Required by Mozilla Corporation
3 years, 5 months
Architecture specific change in rpms/thunderbird.git
by githook-noreply@fedoraproject.org
The package rpms/thunderbird.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/thunderbird.git/commit/?id=5f0bec....
Change:
-ExcludeArch: s390x
Thanks.
Full change:
============
commit e485bc63ecdcb1021afc53f537b0cbba961660d2
Author: Jan Horak <jhorak(a)redhat.com>
Date: Wed Nov 25 11:36:49 2020 +0100
Update to 78.5 build3
diff --git a/.gitignore b/.gitignore
index 8bb3050..1501287 100644
--- a/.gitignore
+++ b/.gitignore
@@ -313,3 +313,5 @@ thunderbird-langpacks-3.1.2-20100803.tar.bz2
/thunderbird-langpacks-78.4.0-20201022.tar.xz
/thunderbird-78.4.3.source.tar.xz
/thunderbird-langpacks-78.4.3-20201112.tar.xz
+/thunderbird-78.5.0.source.tar.xz
+/thunderbird-langpacks-78.5.0-20201125.tar.xz
diff --git a/sources b/sources
index d64b31f..9a0d4a0 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (thunderbird-78.4.3.source.tar.xz) = 0c441f5a55301f4d012caff111d6a882205048e4adf301ff3cfa553e1665e47a1fd835a926bd97c61e543a79465c5ada73ae699fc56425dec3dbc40f17b75620
-SHA512 (thunderbird-langpacks-78.4.3-20201112.tar.xz) = b89d1832f9aa436f8205583951aec59cec4fa1b0ccdae521904126018a1bd9c672eea70f29dcd0d0f6676b3954c279a78566ef4ffb09bd8dc6a8a9906248300b
+SHA512 (thunderbird-78.5.0.source.tar.xz) = dae49dc0910dd017250643c920c79f03d3ef14bcbafde7fcdb3aaeba2b27a42ef6f88c8de8b961f8bb1c3d1a153bc8988ab43a39eb051d81839cf3b9e8373118
+SHA512 (thunderbird-langpacks-78.5.0-20201125.tar.xz) = c18d0f0f541535197bbb42a1600a847366109dd32aa5626d083c77f0bc4572496a153d266ac8272333669cbbc3950f791404d457a29c0ccff9700c325df6bfe8
SHA512 (cbindgen-vendor-0.14.3.tar.xz) = 33c8d28547674121f690eea0d3ebac33926a39caacac787bf8ed8b346478822e74da5a4a1f57ab4df4105fa8376739a2ece888845a85bc5712aaed20e4a508bc
diff --git a/thunderbird.spec b/thunderbird.spec
index a2e69d4..28c88ad 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -80,13 +80,13 @@ ExcludeArch: armv7hl
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
-Version: 78.4.3
+Version: 78.5.0
Release: 1%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: ftp://ftp.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/...
%if %{build_langpacks}
-Source1: thunderbird-langpacks-%{version}-20201112.tar.xz
+Source1: thunderbird-langpacks-%{version}-20201125.tar.xz
%endif
Source3: get-calendar-langpacks.sh
Source4: cbindgen-vendor-0.14.3.tar.xz
@@ -736,6 +736,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
+* Wed Nov 25 2020 Jan Horak <jhorak(a)redhat.com> - 78.5.0-1
+- Update to 78.5.0 build3
+
* Thu Nov 12 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.3-1
- Update to 78.4.3 build1
commit 43de65877be095c336646b0aa0580d0bb6ccd368
Author: Jan Horak <jhorak(a)redhat.com>
Date: Fri Nov 13 09:36:33 2020 +0100
Fixed sources
diff --git a/sources b/sources
index 3eb30fb..d64b31f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
SHA512 (thunderbird-78.4.3.source.tar.xz) = 0c441f5a55301f4d012caff111d6a882205048e4adf301ff3cfa553e1665e47a1fd835a926bd97c61e543a79465c5ada73ae699fc56425dec3dbc40f17b75620
SHA512 (thunderbird-langpacks-78.4.3-20201112.tar.xz) = b89d1832f9aa436f8205583951aec59cec4fa1b0ccdae521904126018a1bd9c672eea70f29dcd0d0f6676b3954c279a78566ef4ffb09bd8dc6a8a9906248300b
+SHA512 (cbindgen-vendor-0.14.3.tar.xz) = 33c8d28547674121f690eea0d3ebac33926a39caacac787bf8ed8b346478822e74da5a4a1f57ab4df4105fa8376739a2ece888845a85bc5712aaed20e4a508bc
commit f41316d9d50d9c27197f4c3a5e6466e89fa44688
Author: Jan Horak <jhorak(a)redhat.com>
Date: Thu Nov 12 16:46:32 2020 +0100
Update to 78.4.3 build1
diff --git a/.gitignore b/.gitignore
index a6a5784..8bb3050 100644
--- a/.gitignore
+++ b/.gitignore
@@ -311,3 +311,5 @@ thunderbird-langpacks-3.1.2-20100803.tar.bz2
/cbindgen-vendor-0.14.3.tar.xz
/thunderbird-78.4.0.source.tar.xz
/thunderbird-langpacks-78.4.0-20201022.tar.xz
+/thunderbird-78.4.3.source.tar.xz
+/thunderbird-langpacks-78.4.3-20201112.tar.xz
diff --git a/sources b/sources
index 7095e19..3eb30fb 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,2 @@
-SHA512 (thunderbird-78.4.0.source.tar.xz) = 0536a59286dec2f05e3fa00bdcc4f2e52139d9c53d5c086e0074d0d7c6a3b01bbb4beee2c996ffecace2950d1b8b35e2731e6c681ece804b1505acd26f58b308
-SHA512 (thunderbird-langpacks-78.4.0-20201022.tar.xz) = 4430e33dce1404941aad3122f755bfb540fba8fb4ea4a2b4f1f6e564375b8663bf1f341183527fd598f79fb7500c71219aea21e44484ee5dd891cd510750ec70
-SHA512 (cbindgen-vendor-0.14.3.tar.xz) = 33c8d28547674121f690eea0d3ebac33926a39caacac787bf8ed8b346478822e74da5a4a1f57ab4df4105fa8376739a2ece888845a85bc5712aaed20e4a508bc
+SHA512 (thunderbird-78.4.3.source.tar.xz) = 0c441f5a55301f4d012caff111d6a882205048e4adf301ff3cfa553e1665e47a1fd835a926bd97c61e543a79465c5ada73ae699fc56425dec3dbc40f17b75620
+SHA512 (thunderbird-langpacks-78.4.3-20201112.tar.xz) = b89d1832f9aa436f8205583951aec59cec4fa1b0ccdae521904126018a1bd9c672eea70f29dcd0d0f6676b3954c279a78566ef4ffb09bd8dc6a8a9906248300b
diff --git a/thunderbird.spec b/thunderbird.spec
index f3fc8d1..a2e69d4 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -80,13 +80,13 @@ ExcludeArch: armv7hl
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
-Version: 78.4.0
-Release: 3%{?dist}
+Version: 78.4.3
+Release: 1%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: ftp://ftp.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/...
%if %{build_langpacks}
-Source1: thunderbird-langpacks-%{version}-20201022.tar.xz
+Source1: thunderbird-langpacks-%{version}-20201112.tar.xz
%endif
Source3: get-calendar-langpacks.sh
Source4: cbindgen-vendor-0.14.3.tar.xz
@@ -736,6 +736,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
+* Thu Nov 12 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.3-1
+- Update to 78.4.3 build1
+
* Mon Nov 09 2020 Kalev Lember <klember(a)redhat.com> - 78.4.0-3
- Add release tag to appdata
commit f11e4fcd510dde30b13e4861f501815a9e8f08e9
Author: Kalev Lember <klember(a)redhat.com>
Date: Mon Nov 9 12:49:08 2020 +0100
Add release tag to appdata
flatpak uses this to display version information.
diff --git a/thunderbird.spec b/thunderbird.spec
index 794c4ec..f3fc8d1 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -81,7 +81,7 @@ ExcludeArch: armv7hl
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
Version: 78.4.0
-Release: 2%{?dist}
+Release: 3%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: ftp://ftp.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/...
@@ -655,6 +655,9 @@ SentUpstream: 2014-09-22
<screenshots>
<screenshot type="default">https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screens...</screenshot>
</screenshots>
+ <releases>
+ <release version="%{version}" date="$(date '+%F')"/>
+ </releases>
<!-- FIXME: change this to an upstream email address for spec updates
<updatecontact>someone_who_cares(a)upstream_project.org</updatecontact>
-->
@@ -733,6 +736,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
+* Mon Nov 09 2020 Kalev Lember <klember(a)redhat.com> - 78.4.0-3
+- Add release tag to appdata
+
* Thu Oct 22 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.0-2
- Update to 78.4.0 build1
commit 20280bc94243d84aec3d1792e6b3614c1c643508
Author: Jan Horak <jhorak(a)redhat.com>
Date: Thu Oct 29 13:11:36 2020 +0100
Bump release
diff --git a/thunderbird.spec b/thunderbird.spec
index f60d21c..794c4ec 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -81,7 +81,7 @@ ExcludeArch: armv7hl
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
Version: 78.4.0
-Release: 1%{?dist}
+Release: 2%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: ftp://ftp.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/...
@@ -733,7 +733,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
-* Thu Oct 22 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.0-1
+* Thu Oct 22 2020 Jan Horak <jhorak(a)redhat.com> - 78.4.0-2
- Update to 78.4.0 build1
* Wed Oct 07 2020 Jan Horak <jhorak(a)redhat.com> - 78.3.1-2
commit 5f0bec1b5b79e117cc469710afbfa4d008af9c29
Author: Jan Horak <jhorak(a)redhat.com>
Date: Thu Oct 29 13:10:48 2020 +0100
Enabled s390x again with patch and disabled elfhack everywhere
diff --git a/mozilla-1556931-s390x-hidden-syms.patch b/mozilla-1556931-s390x-hidden-syms.patch
new file mode 100644
index 0000000..c423d1f
--- /dev/null
+++ b/mozilla-1556931-s390x-hidden-syms.patch
@@ -0,0 +1,25 @@
+diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp
+index c38baa12bffa8..2858a7bb4d319 100644
+--- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp
++++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp
+@@ -45,16 +45,20 @@ void TIntermTraverser::traverse(T *node)
+ ++childIndex;
+ }
+
+ if (visit && postVisit)
+ node->visit(PostVisit, this);
+ }
+ }
+
++// Instantiate template for RewriteAtomicFunctionExpressions.
++template
++void TIntermTraverser::traverse(TIntermNode *);
++
+ void TIntermNode::traverse(TIntermTraverser *it)
+ {
+ it->traverse(this);
+ }
+
+ void TIntermSymbol::traverse(TIntermTraverser *it)
+ {
+ TIntermTraverser::ScopedNodeInTraversalPath addToPath(it, this);
diff --git a/thunderbird.spec b/thunderbird.spec
index 1a04a97..f60d21c 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -1,9 +1,6 @@
# Disabled arm due to rhbz#1658940
ExcludeArch: armv7hl
-# Disabled due to https://bugzilla.redhat.com/show_bug.cgi?id=1886672
-ExcludeArch: s390x
-
# Use system nspr/nss?
%define system_nss 1
@@ -19,10 +16,7 @@ ExcludeArch: s390x
%global build_with_clang 0
%global use_bundled_cbindgen 1
-%global disable_elfhack 0
-%if 0%{?fedora} > 28
%global disable_elfhack 1
-%endif
%if %{?system_nss}
%global nspr_version 4.26.0
@@ -126,6 +120,7 @@ Patch307: build-disable-elfhack.patch
# Upstream patches
Patch402: mozilla-526293.patch
Patch404: rust-1.47.patch
+Patch405: mozilla-1556931-s390x-hidden-syms.patch
%if %{official_branding}
# Required by Mozilla Corporation
@@ -267,6 +262,7 @@ debug %{name}, you want to install %{name}-debuginfo instead.
%patch402 -p1 -b .526293
%patch404 -p1 -b .rust-1.47
+%patch405 -p1 -b .1556931-s390x-hidden-syms
%if %{official_branding}
# Required by Mozilla Corporation
3 years, 5 months