SHA256
1
0
forked from pool/grafana

Accepting request 753312 from home:witekbedyk:branches:server:monitoring

- Revert the spec file and make script
- Remove PhantomJS dependency

OBS-URL: https://build.opensuse.org/request/show/753312
OBS-URL: https://build.opensuse.org/package/show/server:monitoring/grafana?expand=0&rev=28
This commit is contained in:
Joao Cavalheiro 2019-12-05 15:43:17 +00:00 committed by Git OBS Bridge
parent a647090d27
commit 89794e01f3
14 changed files with 175 additions and 1927 deletions

View File

@ -1,13 +0,0 @@
diff --git a/pkg/api/login_oauth.go b/pkg/api/login_oauth.go
index a46c97238..76fc8480c 100644
--- a/pkg/api/login_oauth.go
+++ b/pkg/api/login_oauth.go
@@ -125,7 +125,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

View File

@ -1,208 +0,0 @@
diff --git a/pkg/cmd/grafana-server/server.go b/pkg/cmd/grafana-server/server.go
index 85d6db43e..6de99b58b 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 d1511a533..000000000
--- a/pkg/infra/tracing/tracing.go
+++ /dev/null
@@ -1,148 +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 {
- 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) initGlobalTracer() 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,
- },
- }
-
- 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.InitGlobalTracer(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 27e4de777..000000000
--- a/pkg/infra/tracing/tracing_test.go
+++ /dev/null
@@ -1,36 +0,0 @@
-package tracing
-
-import "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]
- if !exists || value != v {
- t.Errorf("tags does not match %v ", test)
- }
- }
- }
-}

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +0,0 @@
Index: grafana-6.4.3/conf/defaults.ini
===================================================================
--- grafana-6.4.3.orig/conf/defaults.ini
+++ grafana-6.4.3/conf/defaults.ini
@@ -12,16 +12,16 @@ instance_name = ${HOSTNAME}
#################################### Paths ###############################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
-data = data
+data = /var/lib/grafana
# Temporary files in `data` directory older than given duration will be removed
temp_data_lifetime = 24h
# Directory where grafana can store logs
-logs = data/log
+logs = /var/log/grafana
# Directory where grafana will automatically scan and look for plugins
-plugins = data/plugins
+plugins = /var/lib/grafana/plugins
# folder that contains provisioning config files that grafana will apply on startup and while running.
provisioning = conf/provisioning

39
Makefile Normal file
View File

@ -0,0 +1,39 @@
NAME = grafana
SPEC = $(NAME).spec
default: verify-deps clean tar
verify-deps:
@which yarn >/dev/null 2>&1 || ( echo "yarn not found; run \`sudo npm install -g yarn\`" && false )
@which grunt >/dev/null 2>&1 || ( echo "grunt not found; run \`sudo npm install -g grunt-cli\`" && false )
clean:
rm -f $(NAME)-*.tar $(NAME)-*.tar.xz
tar:
osc service disabledrun
@version=$$( awk '/^Version:/ {print $$2}' $(SPEC) ) && \
echo "Package version is $$version" && \
basename=$(NAME)-$$version && \
tar=$$basename.tar && \
tmpdir=$$(mktemp -d -p .) && \
cd $$tmpdir && \
tar -xf ../$$tar && \
cd $$basename && \
# 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 && \
yarn install --pure-lockfile && \
grunt release && \
cp -pr tmp/public . && \
cp -pr tmp/tools . && \
cd .. && \
echo "Updating $$basename/tools $$basename/public in tarball..." && \
tar -rf ../$$tar $$basename/tools $$basename/public && \
# remove go.mod and go.sum as we build exclusively using vendor deps \
tar -f ../$$tar --delete $$basename/go.mod $$basename/go.sum && \
cd .. && \
xz $$tar && \
rm -rf $$tmpdir

27
README Normal file
View File

@ -0,0 +1,27 @@
The tarball is generated via the OBS source service, but Grafana
needs to ship the compiled frontend assets as well, which have to
be built by running yarn and grunt inside the source tree (see
https://github.com/grafana/grafana#building-frontend-assets).
This can't be done at build time on OBS, because it involves
downloading and installing packages from the internet, so instead
we have a Makefile which does the following:
- Runs `osc service disabledrun` to get the latest source tarball
- Unpacks the tarball to a temporary directory
- Runs `yarn install --pure-lockfile && grunt release`
- Adds the generated "vendor" and "public" content to the tarball,
then compresses it with xz.
- The tarball can then be used by OBS to build an RPM.
In order for this to work you need to have npm >= 6, < 12, yarn and
grunt installed. To get set up, run:
# zypper in npm10
# npm install -g yarn
# npm install -g grunt-cli
Then, to package a new release of Grafana, run `make` then `osc ci`
and you should be good.
Please direct any questions to Tim Serong <tserong@suse.com>

13
_service Normal file
View File

@ -0,0 +1,13 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="url">https://github.com/grafana/grafana</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
<param name="versionformat">6.4.3</param>
<param name="revision">v6.4.3</param>
<param name="changesgenerate">enable</param>
</service>
<service name="set_version" mode="disabled">
<param name="basename">grafana</param>
</service>
</services>

6
_servicedata Normal file
View File

@ -0,0 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/grafana/grafana</param>
<param name="changesrevision">3a2bfb7e3809a193125f0dbb8109e95cbf52db3e</param>
</service>
</servicedata>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2ed2bbaae731c0d168800ed41af2bd18e3df50abb6c9852347d4488a5cc8d63b
size 13805699

3
grafana-6.4.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5cb6e8bf9f1080022dc169fa29afbb5876acbc5adba2c4420a8dbf1ef9a2aa4c
size 18172892

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Tue Dec 03 15:09:41 UTC 2019 - witold.bedyk@suse.com
- Revert the spec file and make script
- Remove PhantomJS dependency
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 16 19:29:48 UTC 2019 - ecsos@opensuse.org Wed Oct 16 19:29:48 UTC 2019 - ecsos@opensuse.org

View File

@ -1,7 +1,7 @@
# #
# spec file for package grafana # spec file for package grafana
# #
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2019 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -16,501 +16,87 @@
# #
# Unbundle grafana vendor sources and instead use BuildRequires %define GRAFANA_USER %{name}
# only on platforms that have enough golang devel support. %define GRAFANA_GROUP %{name}
%global unbundle_vendor_sources 0 %define GRAFANA_HOME %{_datadir}/%{name}
# omit golang debugsource, see BZ995136 and related #Compat macro for new _fillupdir macro introduced in Nov 2017
%global _debugsource_template %{nil} %if ! %{defined _fillupdir}
%global GRAFANA_USER %{name} %define _fillupdir /var/adm/fillup-templates
%global GRAFANA_GROUP %{name} %endif
%global GRAFANA_HOME %{_datadir}/%{name}
Name: grafana Name: grafana
Version: 6.4.3 Version: 6.4.3
Release: 1%{?dist} Release: 0
Summary: Metrics dashboard and graph editor Summary: Dashboards and editors for Graphite, InfluxDB, OpenTSDB
License: Apache-2.0 License: Apache-2.0
Group: System/Monitoring Group: System/Monitoring
URL: https://grafana.org URL: http://grafana.org/
# Source0 contains the tagged upstream sources Source: %{name}-%{version}.tar.xz
Source0: https://github.com/grafana/grafana/archive/v%{version}/%{name}-%{version}.tar.gz Source1: %{name}-rpmlintrc
# Source1 contains the front-end javascript modules bundled into a webpack # Instructions on the build process
Source1: grafana_webpack-%{version}.tar.gz Source2: README
# Source2 is the script to create the above webpack from grafana sources # Makefile to automate build process
Source2: make_grafana_webpack.sh Source3: Makefile
# rpmlintrc
Source99: %{name}-rpmlintrc
# Patches for upstream
Patch1: 001-login-oauth-use-oauth2-exchange.patch
Patch2: 002-remove-jaeger-tracing.patch
Patch3: 003-new-files.patch
Patch4: 004-distro-defaults-ini.patch
#
Requires(pre): shadow
Requires(post): %insserv_prereq
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: gettext-tools BuildRequires: go >= 1.11
BuildRequires: config(krb5)
BuildRequires: go >= 1.12.9
BuildRequires: golang-packaging BuildRequires: golang-packaging
# Without cloudwatch you can not add data sources BuildRequires: shadow
Requires: grafana-cloudwatch = %{version}-%{release} Requires(post): %insserv_prereq
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{?systemd_requires} %{?systemd_requires}
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}
%if 0%{?unbundle_vendor_sources}
# golang build deps. These allow us to unbundle vendor golang source.
BuildRequires: golang(github.com/BurntSushi/toml)
BuildRequires: golang(github.com/aws/aws-sdk-go)
BuildRequires: golang(github.com/benbjohnson/clock)
BuildRequires: golang(github.com/beorn7/perks/quantile)
BuildRequires: golang(github.com/bmizerany/assert)
BuildRequires: golang(github.com/bradfitz/gomemcache/memcache)
BuildRequires: golang(github.com/codahale/hdrhistogram)
BuildRequires: golang(github.com/codegangsta/cli)
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/facebookgo/structtag)
BuildRequires: golang(github.com/fatih/color)
BuildRequires: golang(github.com/go-ini/ini)
BuildRequires: golang(github.com/go-macaron/binding)
BuildRequires: golang(github.com/go-macaron/gzip)
BuildRequires: golang(github.com/go-macaron/inject)
BuildRequires: golang(github.com/go-macaron/session)
BuildRequires: golang(github.com/go-sql-driver/mysql)
BuildRequires: golang(github.com/go-stack/stack)
BuildRequires: golang(github.com/go-xorm/builder)
BuildRequires: golang(github.com/go-xorm/core)
BuildRequires: golang(github.com/go-xorm/xorm)
BuildRequires: golang(github.com/gobwas/glob)
BuildRequires: golang(github.com/gobwas/glob/compiler)
BuildRequires: golang(github.com/gobwas/glob/match)
BuildRequires: golang(github.com/gobwas/glob/syntax)
BuildRequires: golang(github.com/gobwas/glob/syntax/ast)
BuildRequires: golang(github.com/gobwas/glob/syntax/lexer)
BuildRequires: golang(github.com/gobwas/glob/util/runes)
BuildRequires: golang(github.com/gobwas/glob/util/strings)
BuildRequires: golang(github.com/gopherjs/gopherjs/js)
BuildRequires: golang(github.com/gorilla/websocket)
BuildRequires: golang(github.com/gosimple/slug)
BuildRequires: golang(github.com/hashicorp/go-hclog)
BuildRequires: golang(golang.org/x/sys/unix)
BuildRequires: golang(google.golang.org/appengine)
BuildRequires: golang(google.golang.org/genproto/googleapis/rpc/status)
BuildRequires: golang(google.golang.org/grpc)
# need grpc_broker in go-plugin >= 1.0.0-1
BuildRequires: golang-github-prometheus-common-devel
BuildRequires: golang(cloud.google.com/go/compute/metadata)
BuildRequires: golang(github.com/Unknwon/com)
BuildRequires: golang(github.com/VividCortex/mysqlerr)
BuildRequires: golang(github.com/go-bufio/bufio)
BuildRequires: golang(github.com/go-ini/ini)
BuildRequires: golang(github.com/go-macaron/macaron)
BuildRequires: golang(github.com/go-redis/redis)
BuildRequires: golang(github.com/go-yaml/yaml)
BuildRequires: golang(github.com/golang/protobuf/proto)
BuildRequires: golang(github.com/golang/protobuf/ptypes)
BuildRequires: golang(github.com/golang/protobuf/ptypes)
BuildRequires: golang(github.com/golang/protobuf/ptypes/any)
BuildRequires: golang(github.com/golang/protobuf/ptypes/duration)
BuildRequires: golang(github.com/golang/protobuf/ptypes/timestamp)
BuildRequires: golang(github.com/hashicorp/go-plugin)
BuildRequires: golang(github.com/hashicorp/go-version)
BuildRequires: golang(github.com/hashicorp/yamux)
BuildRequires: golang(github.com/inconshreveable/log15)
BuildRequires: golang(github.com/jmespath/go-jmespath)
BuildRequires: golang(github.com/jonboulle/clockwork)
BuildRequires: golang(github.com/jtolds/gls)
BuildRequires: golang(github.com/klauspost/compress/flate)
BuildRequires: golang(github.com/klauspost/compress/gzip)
BuildRequires: golang(github.com/klauspost/compress/snappy)
BuildRequires: golang(github.com/klauspost/cpuid)
BuildRequires: golang(github.com/klauspost/crc32)
BuildRequires: golang(github.com/kr/pretty)
BuildRequires: golang(github.com/kr/text)
BuildRequires: golang(github.com/lib/pq)
BuildRequires: golang(github.com/mattn/go-colorable)
BuildRequires: golang(github.com/mattn/go-isatty)
BuildRequires: golang(github.com/mattn/go-sqlite3)
BuildRequires: golang(github.com/matttproud/golang_protobuf_extensions/pbutil)
BuildRequires: golang(github.com/mitchellh/go-testing-interface)
BuildRequires: golang(github.com/oklog/run)
BuildRequires: golang(github.com/opentracing/opentracing-go)
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_model/go)
BuildRequires: golang(github.com/prometheus/common/expfmt)
BuildRequires: golang(github.com/prometheus/common/expfmt)
BuildRequires: golang(github.com/prometheus/common/model)
BuildRequires: golang(github.com/prometheus/procfs)
BuildRequires: golang(github.com/prometheus/procfs)
BuildRequires: golang(github.com/prometheus/procfs/internal/util)
BuildRequires: golang(github.com/prometheus/procfs/internal/util)
BuildRequires: golang(github.com/prometheus/procfs/nfs)
BuildRequires: golang(github.com/prometheus/procfs/xfs)
BuildRequires: golang(github.com/rainycape/unidecode)
BuildRequires: golang(github.com/sergi/go-diff/diffmatchpatch)
BuildRequires: golang(github.com/smartystreets/assertions)
BuildRequires: golang(github.com/smartystreets/goconvey/convey)
BuildRequires: golang(github.com/smartystreets/goconvey/convey/gotest)
BuildRequires: golang(github.com/smartystreets/goconvey/convey/reporting)
BuildRequires: golang(github.com/teris-io/shortid)
BuildRequires: golang(github.com/yudai/gojsondiff)
BuildRequires: golang(github.com/yudai/golcs)
BuildRequires: golang(golang.org/x/crypto/ed25519)
BuildRequires: golang(golang.org/x/crypto/md4)
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/net/http/httpguts)
BuildRequires: golang(golang.org/x/net/http2)
BuildRequires: golang(golang.org/x/net/http2/hpack)
BuildRequires: golang(golang.org/x/net/idna)
BuildRequires: golang(golang.org/x/net/internal/timeseries)
BuildRequires: golang(golang.org/x/net/trace)
BuildRequires: golang(golang.org/x/oauth2)
BuildRequires: golang(golang.org/x/oauth2/google)
BuildRequires: golang(golang.org/x/oauth2/internal)
BuildRequires: golang(golang.org/x/oauth2/jws)
BuildRequires: golang(golang.org/x/oauth2/jwt)
BuildRequires: golang(golang.org/x/sync/errgroup)
BuildRequires: golang(golang.org/x/text/collate)
BuildRequires: golang(golang.org/x/text/collate/build)
BuildRequires: golang(golang.org/x/text/internal/colltab)
BuildRequires: golang(golang.org/x/text/internal/gen)
BuildRequires: golang(golang.org/x/text/internal/tag)
BuildRequires: golang(golang.org/x/text/internal/triegen)
BuildRequires: golang(golang.org/x/text/internal/ucd)
BuildRequires: golang(gopkg.in/alexcesaro/quotedprintable.v3)
BuildRequires: golang(gopkg.in/asn1-ber.v1)
BuildRequires: golang(gopkg.in/ldap.v3)
BuildRequires: golang(gopkg.in/mail.v2)
BuildRequires: golang(gopkg.in/square/go-jose.v2)
BuildRequires: golang(gopkg.in/square/go-jose.v2/cipher)
BuildRequires: golang(gopkg.in/square/go-jose.v2/json)
%endif
# 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. This is generated from package-lock.json once the webpack
# has been built with make_webpack.sh.
Provides: bundled(nodejs-abbrev) = 1.1.1
Provides: bundled(nodejs-ansi-regex) = 2.1.1
Provides: bundled(nodejs-ansi-styles) = 2.2.1
Provides: bundled(nodejs-argparse) = 1.0.10
Provides: bundled(nodejs-array-find-index) = 1.0.2
Provides: bundled(nodejs-async) = 1.5.2
Provides: bundled(nodejs-balanced-match) = 1.0.0
Provides: bundled(nodejs-brace-expansion) = 1.1.11
Provides: bundled(nodejs-builtin-modules) = 1.1.1
Provides: bundled(nodejs-camelcase) = 2.1.1
Provides: bundled(nodejs-camelcase-keys) = 2.1.0
Provides: bundled(nodejs-chalk) = 1.1.3
Provides: bundled(nodejs-coffee-script) = 1.10.0
Provides: bundled(nodejs-colors) = 1.1.2
Provides: bundled(nodejs-concat-map) = 0.0.1
Provides: bundled(nodejs-currently-unhandled) = 0.4.1
Provides: bundled(nodejs-dateformat) = 1.0.12
Provides: bundled(nodejs-decamelize) = 1.2.0
Provides: bundled(nodejs-error-ex) = 1.3.2
Provides: bundled(nodejs-escape-string-regexp) = 1.0.5
Provides: bundled(nodejs-esprima) = 2.7.3
Provides: bundled(nodejs-eventemitter2) = 0.4.14
Provides: bundled(nodejs-exit) = 0.1.2
Provides: bundled(nodejs-find-up) = 1.1.2
Provides: bundled(nodejs-findup-sync) = 0.3.0
Provides: bundled(nodejs-fs.realpath) = 1.0.0
Provides: bundled(nodejs-get-stdin) = 4.0.1
Provides: bundled(nodejs-getobject) = 0.1.0
Provides: bundled(nodejs-glob) = 7.0.6
Provides: bundled(nodejs-graceful-fs) = 4.1.15
Provides: bundled(nodejs-grunt) = 1.0.1
Provides: bundled(nodejs-grunt-cli) = 1.2.0
Provides: bundled(nodejs-grunt-known-options) = 1.1.1
Provides: bundled(nodejs-grunt-legacy-log) = 1.0.2
Provides: bundled(nodejs-grunt-legacy-log-utils) = 1.0.0
Provides: bundled(nodejs-grunt-legacy-util) = 1.0.0
Provides: bundled(nodejs-has-ansi) = 2.0.0
Provides: bundled(nodejs-hooker) = 0.2.3
Provides: bundled(nodejs-hosted-git-info) = 2.7.1
Provides: bundled(nodejs-iconv-lite) = 0.4.24
Provides: bundled(nodejs-indent-string) = 2.1.0
Provides: bundled(nodejs-inflight) = 1.0.6
Provides: bundled(nodejs-inherits) = 2.0.3
Provides: bundled(nodejs-is-arrayish) = 0.2.1
Provides: bundled(nodejs-is-builtin-module) = 1.0.0
Provides: bundled(nodejs-is-finite) = 1.0.2
Provides: bundled(nodejs-is-utf8) = 0.2.1
Provides: bundled(nodejs-isexe) = 2.0.0
Provides: bundled(nodejs-js-yaml) = 3.5.5
Provides: bundled(nodejs-load-json-file) = 1.1.0
Provides: bundled(nodejs-lodash) = 4.17.11
Provides: bundled(nodejs-loud-rejection) = 1.6.0
Provides: bundled(nodejs-map-obj) = 1.0.1
Provides: bundled(nodejs-meow) = 3.7.0
Provides: bundled(nodejs-minimatch) = 3.0.4
Provides: bundled(nodejs-minimist) = 1.2.0
Provides: bundled(nodejs-nopt) = 3.0.6
Provides: bundled(nodejs-normalize-package-data) = 2.4.2
Provides: bundled(nodejs-number-is-nan) = 1.0.1
Provides: bundled(nodejs-object-assign) = 4.1.1
Provides: bundled(nodejs-once) = 1.4.0
Provides: bundled(nodejs-parse-json) = 2.2.0
Provides: bundled(nodejs-path-exists) = 2.1.0
Provides: bundled(nodejs-path-is-absolute) = 1.0.1
Provides: bundled(nodejs-path-type) = 1.1.0
Provides: bundled(nodejs-pify) = 2.3.0
Provides: bundled(nodejs-pinkie) = 2.0.4
Provides: bundled(nodejs-pinkie-promise) = 2.0.1
Provides: bundled(nodejs-read-pkg) = 1.1.0
Provides: bundled(nodejs-read-pkg-up) = 1.0.1
Provides: bundled(nodejs-redent) = 1.0.0
Provides: bundled(nodejs-repeating) = 2.0.1
Provides: bundled(nodejs-resolve) = 1.1.7
Provides: bundled(nodejs-rimraf) = 2.2.8
Provides: bundled(nodejs-safer-buffer) = 2.1.2
Provides: bundled(nodejs-semver) = 5.6.0
Provides: bundled(nodejs-signal-exit) = 3.0.2
Provides: bundled(nodejs-spdx-correct) = 3.1.0
Provides: bundled(nodejs-spdx-exceptions) = 2.2.0
Provides: bundled(nodejs-spdx-expression-parse) = 3.0.0
Provides: bundled(nodejs-spdx-license-ids) = 3.0.3
Provides: bundled(nodejs-sprintf-js) = 1.0.3
Provides: bundled(nodejs-strip-ansi) = 3.0.1
Provides: bundled(nodejs-strip-bom) = 2.0.0
Provides: bundled(nodejs-strip-indent) = 1.0.1
Provides: bundled(nodejs-supports-color) = 2.0.0
Provides: bundled(nodejs-trim-newlines) = 1.0.0
Provides: bundled(nodejs-underscore.string) = 3.2.3
Provides: bundled(nodejs-validate-npm-package-license) = 3.0.4
Provides: bundled(nodejs-which) = 1.2.14
Provides: bundled(nodejs-wrappy) = 1.0.2
Provides: bundled(nodejs-yarn) = 1.13.0
%description %description
Grafana is an open source, feature rich metrics dashboard and graph editor for A graph and dashboard builder for visualizing time series metrics.
Graphite, InfluxDB & OpenTSDB.
%package cloudwatch
Requires: %{name} = %{version}-%{release}
Summary: Grafana cloudwatch datasource
Group: System/Monitoring
%description cloudwatch
The Grafana cloudwatch datasource.
%package elasticsearch
Requires: %{name} = %{version}-%{release}
Summary: Grafana elasticsearch datasource
Group: System/Monitoring
%description elasticsearch
The Grafana elasticsearch datasource.
%package azure-monitor
Requires: %{name} = %{version}-%{release}
Summary: Grafana azure-monitor datasource
Group: System/Monitoring
%description azure-monitor
The Grafana azure-monitor datasource.
%package graphite
Requires: %{name} = %{version}-%{release}
Summary: Grafana graphite datasource
Group: System/Monitoring
%description graphite
The Grafana graphite datasource.
%package influxdb
Requires: %{name} = %{version}-%{release}
Summary: Grafana influxdb datasource
Group: System/Monitoring
%description influxdb
The Grafana influxdb datasource.
%package loki
Requires: %{name} = %{version}-%{release}
Summary: Grafana loki datasource
Group: System/Monitoring
%description loki
The Grafana loki datasource.
%package mssql
Requires: %{name} = %{version}-%{release}
Summary: Grafana mssql datasource
Group: System/Monitoring
%description mssql
The Grafana mssql datasource.
%package mysql
Requires: %{name} = %{version}-%{release}
Summary: Grafana mysql datasource
Group: System/Monitoring
%description mysql
The Grafana mysql datasource.
%package opentsdb
Requires: %{name} = %{version}-%{release}
Summary: Grafana opentsdb datasource
Group: System/Monitoring
%description opentsdb
The Grafana opentsdb datasource.
%package postgres
Requires: %{name} = %{version}-%{release}
Summary: Grafana postgres datasource
Group: System/Monitoring
%description postgres
The Grafana postgres datasource.
%package prometheus
Requires: %{name} = %{version}-%{release}
Summary: Grafana prometheus datasource
Group: System/Monitoring
%description prometheus
The Grafana prometheus datasource.
%package stackdriver
Requires: %{name} = %{version}-%{release}
Summary: Grafana stackdriver datasource
Group: System/Monitoring
%description stackdriver
The Grafana stackdriver datasource.
Grafana provides ways to create, explore, and share
dashboards and data with teams.
%prep %prep
%setup -q -T -D -b 0 %setup -q -n grafana-%{version}
%setup -q -T -D -b 1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
# Set up build subdirs and links
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.
# An exception is grafana-plugin-model, which is part of grafana.
# Another exception is xerrors, which is a transition package
# for the new Go 1.13 error values, see https://github.com/golang/xerrors
cp --parents -a vendor/github.com/grafana vendor/golang.org/x/xerrors \
vendor/github.com/robfig vendor/github.com/crewjam/saml \
vendor/github.com/ua-parser/uap-go/uaparser \
vendor/github.com/beevik/etree \
vendor/github.com/russellhaering/goxmldsig \
%{_builddir}
rm -r vendor # remove all vendor sources
mv %{_builddir}/vendor vendor # put back what we're keeping
%endif
%build %build
%goprep github.com/grafana/grafana %goprep github.com/grafana/grafana
export GOPATH=%{_builddir}:%{_builddir}/contrib # Manual build in order to inject ldflags so grafana correctly displays
###go install $BUILDFLAGS -ldflags '-X main.version=%%{version}' $IMPORTPATH/pkg/cmd/... # the version in the footer of each page. Note that we're only injecting
cd %{_builddir}/src/github.com/grafana/grafana # main.version, not main.commit or main.buildstamp as is done in the upstream
go run build.go setup # build.go, because we don't have access to the git commit history here.
go run build.go build # (The %%gobuild macro can't take quoted strings; they get split up when
# expanded to $extra_flags in process_build() in /usr/lib/rpm/golang.sh.)
export IMPORTPATH="github.com/grafana/grafana"
export BUILDFLAGS="-v -p 4 -x -buildmode=pie"
export GOPATH=%{_builddir}/go:%{_builddir}/contrib
export GOBIN=%{_builddir}/go/bin
go install $BUILDFLAGS -ldflags '-X main.version=%{version}' $IMPORTPATH/pkg/cmd/...
%install %install
%goinstall %goinstall
# Fix up arch bin directories # we're missing %%gosrc and %%gofilelist... (although that *might* be ok...)
[ ! -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 install -Dm644 {packaging/rpm/systemd/,%{buildroot}%{_unitdir}/}%{name}-server.service
install -d -m0755 %{buildroot}%{_sbindir} install -dm755 %{buildroot}%{_sbindir}
install -d -m0755 %{buildroot}%{_datadir}/%{name} ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}-server
install -d -m0755 %{buildroot}%{_datadir}/%{name}/bin mv %{buildroot}/%{_bindir}/grafana-* %{buildroot}/%{_sbindir}
install -d -m0755 %{buildroot}%{_datadir}/%{name}/tools
install -d -m0755 %{buildroot}%{_datadir}/%{name}/vendor install -Dm644 packaging/rpm/sysconfig/%{name}-server \
%{buildroot}%{_fillupdir}/sysconfig.%{name}-server
install -d -m0750 %{buildroot}%{_localstatedir}/lib/%{name}
install -d -m0750 %{buildroot}%{_localstatedir}/log/%{name} install -d -m0750 %{buildroot}%{_localstatedir}/log/%{name}
install -d -m0750 %{buildroot}%{_sharedstatedir}/%{name} install -d -m0755 %{buildroot}/%{_localstatedir}/lib/%{name}/plugins
install -d -m0755 %{buildroot}%{_sharedstatedir}/%{name}/plugins install -d -m0755 %{buildroot}/%{_localstatedir}/lib/%{name}/dashboards
install -d -m0755 %{buildroot}%{_sharedstatedir}/%{name}/dashboards
install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/provisioning/dashboards install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/provisioning/dashboards
install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/provisioning/datasources
install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/provisioning/notifiers
# wrappers
sed -i -e 's|\/usr\/bin\/env bash|\/bin\/bash|g' packaging/wrappers/grafana-cli
install -p -m 755 packaging/wrappers/grafana-cli %{buildroot}%{_sbindir}/%{name}-cli
# binaries
install -p -m 755 bin/%{_arch}/%{name}-server %{buildroot}%{_sbindir}
install -p -m 755 bin/%{_arch}/%{name}-cli %{buildroot}%{_datadir}/%{name}/bin
# man pages
install -d -m0755 %{buildroot}%{_mandir}/man1
install -p -m0644 docs/man/man1/* %{buildroot}%{_mandir}/man1
# configs defaults
install -Dm640 conf/sample.ini %{buildroot}%{_sysconfdir}/%{name}/%{name}.ini install -Dm640 conf/sample.ini %{buildroot}%{_sysconfdir}/%{name}/%{name}.ini
install -Dm640 {conf/,%{buildroot}%{_sysconfdir}/%{name}/}ldap.toml install -Dm640 {conf/,%{buildroot}%{_sysconfdir}/%{name}/}ldap.toml
cp -a conf/provisioning %{buildroot}%{_sysconfdir}/%{name} install -Dm644 {conf/,%{buildroot}%{_datadir}/%{name}/conf/}defaults.ini
install -m644 {conf/,%{buildroot}%{_datadir}/%{name}/conf/}sample.ini
# sysconfig install -Dm644 {conf/provisioning/dashboards/,%{buildroot}%{_datadir}/%{name}/conf/provisioning/dashboards/}sample.yaml
install -Dm644 packaging/rpm/sysconfig/%{name}-server %{buildroot}%{_fillupdir}/sysconfig.%{name}-server install -Dm644 {conf/provisioning/datasources/,%{buildroot}%{_datadir}/%{name}/conf/provisioning/datasources/}sample.yaml
cp -pr public %{buildroot}%{_datadir}/%{name}/
# rest install -d -m755 %{buildroot}%{_datadir}/%{name}/vendor
cp -a conf public %{buildroot}%{_datadir}/%{name} install -d -m755 %{buildroot}%{_datadir}/%{name}/tools
# systemd
install -Dm644 {packaging/rpm/systemd/,%{buildroot}%{_unitdir}/}%{name}-server.service
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}-server
# daemon run pid file config for using tmpfs
install -d %{buildroot}%{_tmpfilesdir}
echo "d %{_rundir}/%{name} 0755 %{GRAFANA_USER} %{GRAFANA_GROUP} -" > %{buildroot}%{_tmpfilesdir}/%{name}.conf
%if %{with phantomjs}
# phantomjs is used for rendering PNG images of graphs. The frontend asset
# build process downloadsa prebuilt x86_64 binary, which ends up in
# vendor/phantomjs/phantomjs. This is ugly but works for x86_64. It naturally
# will not work for other architectures, so instead we remove the phantomjs
# binary and install a symlink to the systemwide /usr/bin/phantomjs.
cp -pr tools/phantomjs %{buildroot}%{_datadir}/%{name}/tools/
rm -f %{buildroot}%{_datadir}/%{name}/tools/phantomjs/phantomjs
ln -s %{_bindir}/phantomjs %{buildroot}%{_datadir}/%{name}/tools/phantomjs/phantomjs
%endif
# Do *not* use %%fudpes -s -- this will result in grafana failing to load # Do *not* use %%fudpes -s -- this will result in grafana failing to load
# all the plugins (something in the plugin scanner can't cope with files # all the plugins (something in the plugin scanner can't cope with files
@ -518,28 +104,19 @@ ln -s %{_bindir}/phantomjs %{buildroot}%{_datadir}/%{name}/tools/phantomjs/phant
%fdupes %{buildroot}/%{_datadir} %fdupes %{buildroot}/%{_datadir}
%check %check
cd %{_builddir}/src/github.com/grafana/grafana #gotest github.com/grafana/grafana/pkg...
###export GOPATH=%%{_builddir}:%%{gopath}
export GOPATH=%{_builddir}
# remove tests currently failing
rm -f pkg/services/provisioning/dashboards/file_reader_linux_test.go
rm -f pkg/services/provisioning/dashboards/file_reader_test.go
rm -f pkg/services/sqlstore/alert_test.go
rm -f pkg/services/sqlstore/apikey_test.go
rm -f pkg/setting/setting_test.go
go test ./pkg/...
%pre %pre
%service_add_pre %{name}-server.service %service_add_pre %{name}-server.service
echo Creating user %{GRAFANA_USER} and group %{GRAFANA_GROUP} if not present
echo "Creating user %{GRAFANA_USER} and group %{GRAFANA_GROUP} if not present"
getent group %{GRAFANA_GROUP} > /dev/null || groupadd -r %{GRAFANA_GROUP} getent group %{GRAFANA_GROUP} > /dev/null || groupadd -r %{GRAFANA_GROUP}
getent passwd %{GRAFANA_USER} > /dev/null || useradd -r -g %{GRAFANA_GROUP} -d %{GRAFANA_HOME} -s /sbin/nologin -c "%{GRAFANA_USER} user" %{GRAFANA_USER} getent passwd %{GRAFANA_GROUP} > /dev/null || useradd -r -g %{GRAFANA_GROUP} \
exit 0 -d %{GRAFANA_HOME} -s /sbin/nologin -c "%{GRAFANA_USER} user" %{GRAFANA_GROUP}
%post %post
%{fillup_only -n %{name}-server}
%service_add_post %{name}-server.service %service_add_post %{name}-server.service
%fillup_only -n %{name}-server
%tmpfiles_create %{_tmpfilesdir}/%{name}.conf
%preun %preun
%service_del_preun %{name}-server.service %service_del_preun %{name}-server.service
@ -548,101 +125,27 @@ exit 0
%service_del_postun %{name}-server.service %service_del_postun %{name}-server.service
%files %files
%license LICENSE %defattr(-,root,root)
%doc CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md NOTICE.md %license LICENSE*
%doc PLUGIN_DEV.md README.md ROADMAP.md UPGRADING_DEPENDENCIES.md %doc CHANGELOG*
# binaries %{_sbindir}/%{name}*
%{_sbindir}/%{name}-server %{_sbindir}/rc%{name}-server
%{_sbindir}/%{name}-cli %{_unitdir}/%{name}-server.service
# config files %{_fillupdir}/sysconfig.%{name}-server
%attr(0755,root,root) %dir %{_sysconfdir}/%{name} %attr(0755,root,root) %dir %{_sysconfdir}/%{name}
%attr(0755,root,root) %dir %{_sysconfdir}/%{name}/provisioning %attr(0755,root,root) %dir %{_sysconfdir}/%{name}/provisioning
%attr(0755,root,root) %dir %{_sysconfdir}/%{name}/provisioning/dashboards %attr(0755,root,root) %dir %{_sysconfdir}/%{name}/provisioning/dashboards
%attr(0755, root, root) %dir %{_sysconfdir}/%{name}/provisioning/datasources
%attr(0755, root, root) %dir %{_sysconfdir}/%{name}/provisioning/notifiers
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/grafana.ini
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/ldap.toml
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/provisioning/dashboards/sample.yaml
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/provisioning/datasources/sample.yaml
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/provisioning/notifiers/sample.yaml
# config database directory and plugins (actual db files are created by grafana-server)
%attr(0755, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}
%attr(0755, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}/plugins
%attr(0755, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}/dashboards
# log directory - grafana.log is created by grafana-server, and it does it's own log rotation
%attr(0750, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_localstatedir}/log/%{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
# shared directory and all files therein, except some datasources
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_datadir}/%{name}
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_datadir}/%{name}/bin
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_datadir}/%{name}/public
%attr(0755,root,%{GRAFANA_GROUP}) %dir %{_datadir}/%{name}/conf %attr(0755,root,%{GRAFANA_GROUP}) %dir %{_datadir}/%{name}/conf
%attr(0644, root, %{GRAFANA_GROUP}) %config %{_datadir}/%{name}/conf/*.{ini,toml} %attr(0640,root,%{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/%{name}.ini
%attr(0644, root, %{GRAFANA_GROUP}) %config %{_datadir}/%{name}/conf/provisioning/dashboards/sample.yaml %attr(0640,root,%{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/ldap.toml
%attr(0644, root, %{GRAFANA_GROUP}) %config %{_datadir}/%{name}/conf/provisioning/datasources/sample.yaml %attr(0755,%{GRAFANA_USER},%{GRAFANA_GROUP}) %dir %{_localstatedir}/lib/%{name}
%attr(0644, root, %{GRAFANA_GROUP}) %config %{_datadir}/%{name}/conf/provisioning/notifiers/sample.yaml %attr(0755,%{GRAFANA_USER},%{GRAFANA_GROUP}) %dir %{_localstatedir}/lib/%{name}/plugins
%attr(0755,%{GRAFANA_USER},%{GRAFANA_GROUP}) %dir %{_localstatedir}/lib/%{name}/dashboards
%attr(0750,%{GRAFANA_USER},%{GRAFANA_GROUP}) %dir %{_localstatedir}/log/%{name}
%doc %{_datadir}/%{name}/conf/sample.ini
%doc %{_datadir}/%{name}/conf/provisioning/dashboards/sample.yaml
%doc %{_datadir}/%{name}/conf/provisioning/datasources/sample.yaml
%config %{_datadir}/%{name}/conf/defaults.ini
%{_datadir}/%{name} %{_datadir}/%{name}
# systemd service file
%{_unitdir}/grafana-server.service
%{_sbindir}/rc%{name}-server
# man pages for grafana binaries
%{_mandir}/man1/%{name}-server.1*
%{_mandir}/man1/%{name}-cli.1*
# other
%{_fillupdir}/sysconfig.%{name}-server
%{_tmpfilesdir}/%{name}.conf
%ghost %dir %{_rundir}/%{name}
#
# datasources split out into subpackages
#
%files cloudwatch
%{_datadir}/%{name}/public/app/plugins/datasource/cloudwatch
%files elasticsearch
%{_datadir}/%{name}/public/app/plugins/datasource/elasticsearch
%files azure-monitor
%{_datadir}/%{name}/public/app/plugins/datasource/grafana-azure-monitor-datasource
%files graphite
%{_datadir}/%{name}/public/app/plugins/datasource/graphite
%files influxdb
%{_datadir}/%{name}/public/app/plugins/datasource/influxdb
%files loki
%{_datadir}/%{name}/public/app/plugins/datasource/loki
%files mssql
%{_datadir}/%{name}/public/app/plugins/datasource/mssql
%files mysql
%{_datadir}/%{name}/public/app/plugins/datasource/mysql
%files opentsdb
%{_datadir}/%{name}/public/app/plugins/datasource/opentsdb
%files postgres
%{_datadir}/%{name}/public/app/plugins/datasource/postgres
%files prometheus
%{_datadir}/%{name}/public/app/plugins/datasource/prometheus
%files stackdriver
%{_datadir}/%{name}/public/app/plugins/datasource/stackdriver
%changelog %changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:45269de4b895b9406b393c7961863dc9b508ba1c9b3b0f37ccd0a4d544c34002
size 7022676

View File

@ -1,61 +0,0 @@
#! /bin/bash
#
# Copyright (c) 2019 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
BUILDDIR=`mktemp -d buildXXXXXX`
[ ! -f /usr/bin/npm ] && echo Error, please install \"npm\" package && 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 ....
npm install yarn
node_modules/yarn/bin/yarn --non-interactive --no-progress --ignore-engines install --pure-lockfile > yarn.out 2>&1
node_modules/yarn/bin/yarn --non-interactive -W add webpack-cli
# 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 copied to your \$HOME/rpmbuild/SOURCES
exit 0