Skip to content

Commit a548d95

Browse files
committed
Fix #195 Adding rpmBrpJavaRepackJars setting to trigger faster rpm
builds
1 parent 515338d commit a548d95

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
%define __os_install_post \
2+
/usr/lib/rpm/brp-compress \
3+
%{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
4+
/usr/lib/rpm/brp-strip-static-archive %{__strip} \
5+
/usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
6+
%{nil}

src/main/scala/com/typesafe/sbt/packager/rpm/Keys.scala

+2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ trait RpmKeys {
4646
val rpmPosttrans = SettingKey[Option[String]]("rpm-posttrans", "%posttrans scriptlet")
4747
val rpmPreun = SettingKey[Option[String]]("rpm-preun", "%preun scriptlet")
4848
val rpmPostun = SettingKey[Option[String]]("rpm-postun", "%postun scriptlet")
49+
val rpmBrpJavaRepackJars = SettingKey[Boolean]("brp-java-repack-jars", """Overrides the __os_post_install scriplet
50+
http://swaeku.github.io/blog/2013/08/05/how-to-disable-brp-java-repack-jars-during-rpm-build/ for details""")
4951

5052
// Building
5153
val rpmLint = TaskKey[Unit]("rpm-lint", "Runs rpmlint program against the genreated RPM, if available.")

src/main/scala/com/typesafe/sbt/packager/rpm/RpmPlugin.scala

+13-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package rpm
55
import Keys._
66
import linux._
77
import sbt._
8+
import java.nio.charset.Charset
89

910
/** Plugin trait containing all generic values used for packaging linux software. */
1011
trait RpmPlugin extends Plugin with LinuxPlugin {
@@ -34,6 +35,7 @@ trait RpmPlugin extends Plugin with LinuxPlugin {
3435
rpmPosttrans := None,
3536
rpmPreun := None,
3637
rpmPostun := None,
38+
rpmBrpJavaRepackJars := false,
3739
packageSummary in Rpm <<= packageSummary in Linux,
3840
packageDescription in Rpm <<= packageDescription in Linux,
3941
target in Rpm <<= target(_ / "rpm")
@@ -45,6 +47,12 @@ trait RpmPlugin extends Plugin with LinuxPlugin {
4547
(rpmLicense, rpmDistribution, rpmUrl, rpmGroup, rpmPackager, rpmIcon) apply RpmDescription,
4648
rpmDependencies <<=
4749
(rpmProvides, rpmRequirements, rpmPrerequisites, rpmObsoletes, rpmConflicts) apply RpmDependencies,
50+
rpmPre <<= (rpmPre, rpmBrpJavaRepackJars) apply {
51+
case (_, true) => None
52+
case (pre, false) =>
53+
val scriptBits = IO.readStream(RpmPlugin.osPostInstallMacro.openStream, Charset forName "UTF-8")
54+
Some(pre.map(_ + "\n").getOrElse("") + scriptBits)
55+
},
4856
rpmScripts <<=
4957
(rpmPretrans, rpmPre, rpmPost, rpmVerifyscript, rpmPosttrans, rpmPreun, rpmPostun) apply RpmScripts,
5058
rpmSpecConfig <<=
@@ -64,8 +72,9 @@ trait RpmPlugin extends Plugin with LinuxPlugin {
6472

6573
object RpmPlugin {
6674

67-
def preinstTemplateSource: java.net.URL = getClass.getResource("preinstall")
68-
def postinstTemplateSource: java.net.URL = getClass.getResource("postinstall")
69-
def preuninstallTemplateSource: java.net.URL = getClass.getResource("preuninstall")
70-
def postuninstallTemplateSource: java.net.URL = getClass.getResource("postuninstall")
75+
def preinstTemplateSource: java.net.URL = getClass getResource "preinstall"
76+
def postinstTemplateSource: java.net.URL = getClass getResource "postinstall"
77+
def preuninstallTemplateSource: java.net.URL = getClass getResource "preuninstall"
78+
def postuninstallTemplateSource: java.net.URL = getClass getResource "postuninstall"
79+
def osPostInstallMacro: java.net.URL = getClass getResource "brpJavaRepackJar"
7180
}

0 commit comments

Comments
 (0)