/** * Copyright © 2016-2024 The Thingsboard Authors * * 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. */ import org.apache.tools.ant.filters.ReplaceTokens plugins { id "nebula.ospackage" version "8.6.3" } buildDir = projectBuildDir version = projectVersion distsDirName = "./" // OS Package plugin configuration ospackage { packageName = pkgName version = "${project.version}" release = 1 os = LINUX type = BINARY into pkgInstallFolder user pkgUser permissionGroup pkgUser // Copy the actual .jar file from(mainJar) { // Strip the version from the jar filename rename { String fileName -> "${pkgName}.jar" } fileMode 0500 into "bin" } if("${pkgCopyInstallScripts}".equalsIgnoreCase("true")) { // Copy the install files from("${buildDir}/bin/install/install.sh") { fileMode 0775 into "bin/install" } from("${buildDir}/bin/install/upgrade.sh") { fileMode 0775 into "bin/install" } from("${buildDir}/bin/install/logback.xml") { into "bin/install" } } // Copy the config files from("${buildDir}/conf") { exclude "${pkgName}.conf" fileType CONFIG | NOREPLACE fileMode 0754 into "conf" } // Copy the data files from("${buildDir}/data") { fileType CONFIG | NOREPLACE fileMode 0754 into "data" } // Copy the extensions files from("${buildDir}/extensions") { into "extensions" } } // Configure our RPM build task buildRpm { arch = NOARCH archiveVersion = projectVersion.replace('-', '') archiveFileName = "${pkgName}.rpm" requires("java-11") from("${buildDir}/conf") { include "${pkgName}.conf" filter(ReplaceTokens, tokens: ['pkg.platform': 'rpm']) fileType CONFIG | NOREPLACE fileMode 0754 into "${pkgInstallFolder}/conf" } preInstall file("${buildDir}/control/rpm/preinst") postInstall file("${buildDir}/control/rpm/postinst") preUninstall file("${buildDir}/control/rpm/prerm") postUninstall file("${buildDir}/control/rpm/postrm") user pkgUser permissionGroup pkgUser // Copy the system unit files from("${buildDir}/control/template.service") { addParentDirs = false fileMode 0644 into "/usr/lib/systemd/system" rename { String filename -> "${pkgName}.service" } } link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml") link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf") } // Same as the buildRpm task buildDeb { arch = "all" archiveFileName = "${pkgName}.deb" requires("openjdk-11-jre").or("java11-runtime").or("oracle-java11-installer").or("openjdk-11-jre-headless") from("${buildDir}/conf") { include "${pkgName}.conf" filter(ReplaceTokens, tokens: ['pkg.platform': 'deb']) fileType CONFIG | NOREPLACE fileMode 0754 into "${pkgInstallFolder}/conf" } 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") user pkgUser permissionGroup pkgUser // Copy the system unit files from("${buildDir}/control/template.service") { addParentDirs = false fileMode 0644 into "/lib/systemd/system" rename { String filename -> "${pkgName}.service" } } link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml") link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf") }