2016-12-01 11:38:15 +02:00
|
|
|
/**
|
2020-01-06 16:52:41 +02:00
|
|
|
* Copyright © 2016-2020 The Thingsboard Authors
|
2016-12-01 11:38:15 +02:00
|
|
|
*
|
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
|
*
|
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
*
|
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
|
* limitations under the License.
|
|
|
|
|
*/
|
2017-03-08 11:20:13 +02:00
|
|
|
import org.apache.tools.ant.filters.ReplaceTokens
|
|
|
|
|
|
2016-12-01 11:38:15 +02:00
|
|
|
buildscript {
|
|
|
|
|
ext {
|
2020-05-21 11:51:51 +03:00
|
|
|
osPackageVersion = "8.3.0"
|
2016-12-01 11:38:15 +02:00
|
|
|
}
|
|
|
|
|
repositories {
|
|
|
|
|
jcenter()
|
|
|
|
|
}
|
|
|
|
|
dependencies {
|
|
|
|
|
classpath("com.netflix.nebula:gradle-ospackage-plugin:${osPackageVersion}")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
apply plugin: "nebula.ospackage"
|
|
|
|
|
|
|
|
|
|
buildDir = projectBuildDir
|
|
|
|
|
version = projectVersion
|
|
|
|
|
distsDirName = "./"
|
|
|
|
|
|
|
|
|
|
// OS Package plugin configuration
|
|
|
|
|
ospackage {
|
|
|
|
|
packageName = pkgName
|
|
|
|
|
version = "${project.version}"
|
|
|
|
|
release = 1
|
|
|
|
|
os = LINUX
|
|
|
|
|
type = BINARY
|
|
|
|
|
|
|
|
|
|
into pkgInstallFolder
|
|
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
user pkgUser
|
|
|
|
|
permissionGroup pkgUser
|
2016-12-01 11:38:15 +02:00
|
|
|
|
|
|
|
|
// Copy the actual .jar file
|
|
|
|
|
from(mainJar) {
|
|
|
|
|
// Strip the version from the jar filename
|
|
|
|
|
rename { String fileName ->
|
2016-12-14 17:00:36 +02:00
|
|
|
"${pkgName}.jar"
|
2016-12-01 11:38:15 +02:00
|
|
|
}
|
|
|
|
|
fileMode 0500
|
|
|
|
|
into "bin"
|
|
|
|
|
}
|
|
|
|
|
|
2017-07-04 13:44:57 +03:00
|
|
|
// Copy the install files
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/bin/install/install.sh") {
|
2017-07-04 13:44:57 +03:00
|
|
|
fileMode 0775
|
|
|
|
|
into "bin/install"
|
|
|
|
|
}
|
|
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/bin/install/upgrade.sh") {
|
2017-07-04 13:44:57 +03:00
|
|
|
fileMode 0775
|
|
|
|
|
into "bin/install"
|
|
|
|
|
}
|
|
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/bin/install/logback.xml") {
|
2017-07-04 13:44:57 +03:00
|
|
|
into "bin/install"
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-01 11:38:15 +02:00
|
|
|
// Copy the config files
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/conf") {
|
2017-03-08 11:20:13 +02:00
|
|
|
exclude "${pkgName}.conf"
|
2016-12-01 11:38:15 +02:00
|
|
|
fileType CONFIG | NOREPLACE
|
|
|
|
|
fileMode 0754
|
|
|
|
|
into "conf"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Copy the data files
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/data") {
|
2016-12-01 11:38:15 +02:00
|
|
|
fileType CONFIG | NOREPLACE
|
|
|
|
|
fileMode 0754
|
|
|
|
|
into "data"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Copy the extensions files
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/extensions") {
|
2016-12-01 11:38:15 +02:00
|
|
|
into "extensions"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Configure our RPM build task
|
|
|
|
|
buildRpm {
|
|
|
|
|
|
|
|
|
|
arch = NOARCH
|
|
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
archiveVersion = projectVersion.replace('-', '')
|
|
|
|
|
archiveFileName = "${pkgName}.rpm"
|
2016-12-01 11:38:15 +02:00
|
|
|
|
|
|
|
|
requires("java-1.8.0")
|
|
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/conf") {
|
2017-03-08 20:06:04 +02:00
|
|
|
include "${pkgName}.conf"
|
|
|
|
|
filter(ReplaceTokens, tokens: ['pkg.platform': 'rpm'])
|
|
|
|
|
fileType CONFIG | NOREPLACE
|
|
|
|
|
fileMode 0754
|
|
|
|
|
into "${pkgInstallFolder}/conf"
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-01 11:38:15 +02:00
|
|
|
preInstall file("${buildDir}/control/rpm/preinst")
|
|
|
|
|
postInstall file("${buildDir}/control/rpm/postinst")
|
|
|
|
|
preUninstall file("${buildDir}/control/rpm/prerm")
|
|
|
|
|
postUninstall file("${buildDir}/control/rpm/postrm")
|
|
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
user pkgUser
|
|
|
|
|
permissionGroup pkgUser
|
2016-12-01 11:38:15 +02:00
|
|
|
|
|
|
|
|
// Copy the system unit files
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/control/template.service") {
|
2016-12-01 11:38:15 +02:00
|
|
|
addParentDirs = false
|
|
|
|
|
fileMode 0644
|
|
|
|
|
into "/usr/lib/systemd/system"
|
2020-05-21 11:51:51 +03:00
|
|
|
rename { String filename ->
|
|
|
|
|
"${pkgName}.service"
|
|
|
|
|
}
|
2016-12-01 11:38:15 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml")
|
|
|
|
|
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Same as the buildRpm task
|
|
|
|
|
buildDeb {
|
|
|
|
|
|
|
|
|
|
arch = "all"
|
|
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
archiveFileName = "${pkgName}.deb"
|
2016-12-01 11:38:15 +02:00
|
|
|
|
2016-12-01 13:04:59 +02:00
|
|
|
requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer").or("openjdk-8-jre-headless")
|
2016-12-01 11:38:15 +02:00
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/conf") {
|
2017-03-08 20:06:04 +02:00
|
|
|
include "${pkgName}.conf"
|
|
|
|
|
filter(ReplaceTokens, tokens: ['pkg.platform': 'deb'])
|
|
|
|
|
fileType CONFIG | NOREPLACE
|
|
|
|
|
fileMode 0754
|
|
|
|
|
into "${pkgInstallFolder}/conf"
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-01 11:38:15 +02:00
|
|
|
configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
|
|
|
|
|
configurationFile("${pkgInstallFolder}/conf/${pkgName}.yml")
|
|
|
|
|
configurationFile("${pkgInstallFolder}/conf/logback.xml")
|
|
|
|
|
configurationFile("${pkgInstallFolder}/conf/actor-system.conf")
|
|
|
|
|
|
|
|
|
|
preInstall file("${buildDir}/control/deb/preinst")
|
|
|
|
|
postInstall file("${buildDir}/control/deb/postinst")
|
|
|
|
|
preUninstall file("${buildDir}/control/deb/prerm")
|
|
|
|
|
postUninstall file("${buildDir}/control/deb/postrm")
|
|
|
|
|
|
2020-05-21 11:51:51 +03:00
|
|
|
user pkgUser
|
|
|
|
|
permissionGroup pkgUser
|
2016-12-01 11:38:15 +02:00
|
|
|
|
2019-06-20 13:31:38 +03:00
|
|
|
// Copy the system unit files
|
2020-05-21 11:51:51 +03:00
|
|
|
from("${buildDir}/control/template.service") {
|
2019-06-20 13:31:38 +03:00
|
|
|
addParentDirs = false
|
|
|
|
|
fileMode 0644
|
|
|
|
|
into "/lib/systemd/system"
|
2020-05-21 11:51:51 +03:00
|
|
|
rename { String filename ->
|
|
|
|
|
"${pkgName}.service"
|
|
|
|
|
}
|
2019-06-20 13:31:38 +03:00
|
|
|
}
|
|
|
|
|
|
2016-12-01 11:38:15 +02:00
|
|
|
link("/etc/init.d/${pkgName}", "${pkgInstallFolder}/bin/${pkgName}.jar")
|
|
|
|
|
link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml")
|
|
|
|
|
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
|
|
|
|
|
}
|
2020-05-21 11:51:51 +03:00
|
|
|
|
|
|
|
|
task renameDeb(type: Copy) {
|
|
|
|
|
from("${buildDir}/") {
|
|
|
|
|
include '*.deb'
|
|
|
|
|
destinationDir file("${buildDir}/")
|
|
|
|
|
rename { String filename ->
|
|
|
|
|
"${pkgName}.deb"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
task renameRpm(type: Copy) {
|
|
|
|
|
from("${buildDir}/") {
|
|
|
|
|
include '*.rpm'
|
|
|
|
|
destinationDir file("${buildDir}/")
|
|
|
|
|
rename { String filename ->
|
|
|
|
|
"${pkgName}.rpm"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|