|
|
@@ -43,7 +43,9 @@ var (
|
|
|
workingDir string
|
|
|
includeBuildId bool = true
|
|
|
buildId string = "0"
|
|
|
- binaries []string = []string{"grafana-server", "grafana-cli"}
|
|
|
+ serverBinary string = "grafana-server"
|
|
|
+ cliBinary string = "grafana-cli"
|
|
|
+ binaries []string = []string{serverBinary, cliBinary}
|
|
|
isDev bool = false
|
|
|
enterprise bool = false
|
|
|
skipRpmGen bool = false
|
|
|
@@ -230,6 +232,7 @@ type linuxPackageOptions struct {
|
|
|
packageType string
|
|
|
packageArch string
|
|
|
homeDir string
|
|
|
+ homeBinDir string
|
|
|
binPath string
|
|
|
serverBinPath string
|
|
|
cliBinPath string
|
|
|
@@ -240,10 +243,11 @@ type linuxPackageOptions struct {
|
|
|
initdScriptFilePath string
|
|
|
systemdServiceFilePath string
|
|
|
|
|
|
- postinstSrc string
|
|
|
- initdScriptSrc string
|
|
|
- defaultFileSrc string
|
|
|
- systemdFileSrc string
|
|
|
+ postinstSrc string
|
|
|
+ initdScriptSrc string
|
|
|
+ defaultFileSrc string
|
|
|
+ systemdFileSrc string
|
|
|
+ cliBinaryWrapperSrc string
|
|
|
|
|
|
depends []string
|
|
|
}
|
|
|
@@ -258,6 +262,7 @@ func createDebPackages() {
|
|
|
packageType: "deb",
|
|
|
packageArch: debPkgArch,
|
|
|
homeDir: "/usr/share/grafana",
|
|
|
+ homeBinDir: "/usr/share/grafana/bin",
|
|
|
binPath: "/usr/sbin",
|
|
|
configDir: "/etc/grafana",
|
|
|
etcDefaultPath: "/etc/default",
|
|
|
@@ -265,10 +270,11 @@ func createDebPackages() {
|
|
|
initdScriptFilePath: "/etc/init.d/grafana-server",
|
|
|
systemdServiceFilePath: "/usr/lib/systemd/system/grafana-server.service",
|
|
|
|
|
|
- postinstSrc: "packaging/deb/control/postinst",
|
|
|
- initdScriptSrc: "packaging/deb/init.d/grafana-server",
|
|
|
- defaultFileSrc: "packaging/deb/default/grafana-server",
|
|
|
- systemdFileSrc: "packaging/deb/systemd/grafana-server.service",
|
|
|
+ postinstSrc: "packaging/deb/control/postinst",
|
|
|
+ initdScriptSrc: "packaging/deb/init.d/grafana-server",
|
|
|
+ defaultFileSrc: "packaging/deb/default/grafana-server",
|
|
|
+ systemdFileSrc: "packaging/deb/systemd/grafana-server.service",
|
|
|
+ cliBinaryWrapperSrc: "packaging/wrappers/grafana-cli",
|
|
|
|
|
|
depends: []string{"adduser", "libfontconfig1"},
|
|
|
})
|
|
|
@@ -286,6 +292,7 @@ func createRpmPackages() {
|
|
|
packageType: "rpm",
|
|
|
packageArch: rpmPkgArch,
|
|
|
homeDir: "/usr/share/grafana",
|
|
|
+ homeBinDir: "/usr/share/grafana/bin",
|
|
|
binPath: "/usr/sbin",
|
|
|
configDir: "/etc/grafana",
|
|
|
etcDefaultPath: "/etc/sysconfig",
|
|
|
@@ -293,10 +300,11 @@ func createRpmPackages() {
|
|
|
initdScriptFilePath: "/etc/init.d/grafana-server",
|
|
|
systemdServiceFilePath: "/usr/lib/systemd/system/grafana-server.service",
|
|
|
|
|
|
- postinstSrc: "packaging/rpm/control/postinst",
|
|
|
- initdScriptSrc: "packaging/rpm/init.d/grafana-server",
|
|
|
- defaultFileSrc: "packaging/rpm/sysconfig/grafana-server",
|
|
|
- systemdFileSrc: "packaging/rpm/systemd/grafana-server.service",
|
|
|
+ postinstSrc: "packaging/rpm/control/postinst",
|
|
|
+ initdScriptSrc: "packaging/rpm/init.d/grafana-server",
|
|
|
+ defaultFileSrc: "packaging/rpm/sysconfig/grafana-server",
|
|
|
+ systemdFileSrc: "packaging/rpm/systemd/grafana-server.service",
|
|
|
+ cliBinaryWrapperSrc: "packaging/wrappers/grafana-cli",
|
|
|
|
|
|
depends: []string{"/sbin/service", "fontconfig", "freetype", "urw-fonts"},
|
|
|
})
|
|
|
@@ -323,10 +331,12 @@ func createPackage(options linuxPackageOptions) {
|
|
|
runPrint("mkdir", "-p", filepath.Join(packageRoot, "/usr/lib/systemd/system"))
|
|
|
runPrint("mkdir", "-p", filepath.Join(packageRoot, "/usr/sbin"))
|
|
|
|
|
|
- // copy binary
|
|
|
- for _, binary := range binaries {
|
|
|
- runPrint("cp", "-p", filepath.Join(workingDir, "tmp/bin/"+binary), filepath.Join(packageRoot, "/usr/sbin/"+binary))
|
|
|
- }
|
|
|
+ // copy grafana-cli wrapper
|
|
|
+ runPrint("cp", "-p", options.cliBinaryWrapperSrc, filepath.Join(packageRoot, "/usr/sbin/"+cliBinary))
|
|
|
+
|
|
|
+ // copy grafana-server binary
|
|
|
+ runPrint("cp", "-p", filepath.Join(workingDir, "tmp/bin/"+serverBinary), filepath.Join(packageRoot, "/usr/sbin/"+serverBinary))
|
|
|
+
|
|
|
// copy init.d script
|
|
|
runPrint("cp", "-p", options.initdScriptSrc, filepath.Join(packageRoot, options.initdScriptFilePath))
|
|
|
// copy environment var file
|
|
|
@@ -338,6 +348,13 @@ func createPackage(options linuxPackageOptions) {
|
|
|
// remove bin path
|
|
|
runPrint("rm", "-rf", filepath.Join(packageRoot, options.homeDir, "bin"))
|
|
|
|
|
|
+ // create /bin within home
|
|
|
+ runPrint("mkdir", "-p", filepath.Join(packageRoot, options.homeBinDir))
|
|
|
+ // The grafana-cli binary is exposed through a wrapper to ensure a proper
|
|
|
+ // configuration is in place. To enable that, we need to store the original
|
|
|
+ // binary in a separate location to avoid conflicts.
|
|
|
+ runPrint("cp", "-p", filepath.Join(workingDir, "tmp/bin/"+cliBinary), filepath.Join(packageRoot, options.homeBinDir, cliBinary))
|
|
|
+
|
|
|
args := []string{
|
|
|
"-s", "dir",
|
|
|
"--description", "Grafana",
|
|
|
@@ -391,7 +408,7 @@ func createPackage(options linuxPackageOptions) {
|
|
|
args = append(args, "--iteration", linuxPackageIteration)
|
|
|
}
|
|
|
|
|
|
- // add dependenciesj
|
|
|
+ // add dependencies
|
|
|
for _, dep := range options.depends {
|
|
|
args = append(args, "--depends", dep)
|
|
|
}
|