Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unify maintainerScripts #625

Merged
merged 1 commit into from
Dec 13, 2015
Merged

Unify maintainerScripts #625

merged 1 commit into from
Dec 13, 2015

Conversation

muuki88
Copy link
Contributor

@muuki88 muuki88 commented Jul 12, 2015

This is the initial implementation for a unified maintainerScripts API, which at the current state servers for

  • debian: postinst, preinst, etc.
  • rpm scriptlets

Usage

The basic task is TaskKey[Map[String, Seq[String]]]. Every script (String Key) is mapped to the content ( Seq[String] ). For debian the taskoutput could look like this:

maintainerScripts in Debian := Map(
 "postinst" -> List("#!/bin/bash", "echo 'installed' "),
 "postinst" -> List("#!/bin/bash", "echo 'uninstalled' ")
)

Every package-plugin should scope this setting and use it to generate it's custom output.

Using the helper:

import DebianConstants._
maintainerScripts in Debian := maintainerScriptsFromDirectory(
  sourceDirectory.value / DebianSource / DebianMaintainerScripts,
  Seq(Preinst, Postinst, Prerm, Postrm)
)

State of this PR

Currently the DebianPlugin / RpmPlugin implements this new structure. We will need additional helper as well to make it easy adding custom lines or using files ( already started in MaintainerScriptHelper ).

# ___) | __/ | \ V / __/ | / ___ \| | | (__| | | | __/ |_| |_| | |_) | __/
# |____/ \___|_| \_/ \___|_| /_/ \_\_| \___|_| |_|\___|\__|\__, | .__/ \___|
# |___/|_|
# ------------------------------------------------------------------------------------
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, is this part of the server archetype?

@jsuereth
Copy link
Member

I like the direciton a lot. Should clean up some confusion across keys. Ideally, I'd like to see if we can stretch this to not break binary compatibility, yet keep the same underlying structure...

@muuki88
Copy link
Contributor Author

muuki88 commented Jul 23, 2015

Ideally, I'd like to see if we can stretch this to not break binary compatibility, yet keep the same underlying structure...

Me too. I probably will add the keys back. Throwing exceptions doesn't break BC, right ;)
While cleaning this up, I really discovered what a mess this all is. When what gets overridden is not a trivial thing.

This is one of the things I will probably add with this PR as well. A setting describing how to merge maintainerScripts.

@muuki88 muuki88 changed the title Initial API draft and reference implementation for debian Unify maintainerScripts Aug 16, 2015
@@ -37,23 +37,32 @@ trait RpmKeys {
val rpmConflicts = SettingKey[Seq[String]]("rpm-conflicts", "Packages this RPM conflicts with.")
val rpmDependencies = SettingKey[RpmDependencies]("rpm-dependencies", "Configuration of dependency info for this RPM.")

// MAINTAINER SCRIPTS
@deprecated("Use maintainerScripts in RPM and RpmConstants.Pretrans instead.", "1.1.x")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just an FYI -

Deprecated warnings aren't really flagged well in sbt (Maybe we should open a ticket about that).

Additionally, we may want to issue the warning when someone sets these settings, i.e. something like:

val keyDeprecationWarnings: SettingKey[Seq[SettingKey]]
def warnIfSet(k: SettingKey[_]): Setting[_] = {
   warn ++= k.?.value match {
     case None => Seq()
     case Some(_) => Seq(k)
  }
}

This should be good enough for now, but we should probably check to see what the experience is upgraded.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That looks pretty nice. Could you do this in another PR 😍

@jsuereth
Copy link
Member

Really like the cleanups and the ASCII art. LGTM. One caveat on deprecated error messages though.

@muuki88 muuki88 force-pushed the wip/unify-maintainerscripts branch from df80cf9 to 14a07e7 Compare September 11, 2015 20:02
@muuki88
Copy link
Contributor Author

muuki88 commented Sep 12, 2015

@fsat would you be able to test this? If this doesn't break anything with the rpm relocatable packages?

@fsat
Copy link
Collaborator

fsat commented Sep 14, 2015

Yes, I should be able to test this. I'll get back to you in a day or two.

@fsat
Copy link
Collaborator

fsat commented Sep 14, 2015

@muuki88 - I've manually tested the RPM build & install using the test-project as well as ConductR.

The test-project passes the build, install, and uninstallation without a hitch.

For the ConductR manual test, I did a publish-local and made sure the ConductR project uses the local version.

The ConductR project however failed the brp-python-bytecompile process of rpmbuild - errors attached below. This brp-python-bytecompile is not called in the 1.0.5-M3. Also, please note I have not made any changes to the ConductR script that failed.

[info] Executing(%clean): /bin/sh -e /tmp/sbt_16959fb3/rpm-tmp.p941lt
[error] + umask 022
[error] + cd /home/felix/workspace/typesafe-fsat/conductr/conductr-haproxy/target/rpm/BUILD
[error] + /usr/bin/rm -rf /home/felix/workspace/typesafe-fsat/conductr/conductr-haproxy/target/rpm/buildroot
[error] + exit 0
[info] Building target platforms: noarch-Typesafe Inc.-Linux
[info] Building for target noarch-Typesafe Inc.-Linux
[info] Executing(%install): /bin/sh -e /tmp/sbt_2be50a44/rpm-tmp.ItUgKa
[error] + umask 022
[error] + cd /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/BUILD
[error] + '[' /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot '!=' / ']'
[error] + rm -rf /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot
[error] ++ dirname /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot
[error] + mkdir -p /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm
[error] + mkdir /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot
[error] + '[' -e /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot ']'
[error] + mv /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/tmp-buildroot/etc /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/tmp-buildroot/usr /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/tmp-buildroot/var /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot
[error] + /usr/lib/rpm/check-buildroot
[error] + /usr/lib/rpm/redhat/brp-compress
[error] + /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
[error] + /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
[error] + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
[error] + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
[info] Compiling /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot/usr/share/conductr/lib/typesafe_conductr/check.py ...
[info]   File "/usr/share/conductr/lib/typesafe_conductr/check.py", line 87
[info]     reachable = yield from run_check_strategy(func, params)
[info]                          ^
[info] SyntaxError: invalid syntax
[info]
[error] error: Bad exit status from /tmp/sbt_2be50a44/rpm-tmp.ItUgKa (%install)
[error]     Bad exit status from /tmp/sbt_2be50a44/rpm-tmp.ItUgKa (%install)
[info]
[info]
[info] RPM build errors:
java.lang.RuntimeException: Unable to run rpmbuild, check output for details. Errorcode 1
    at scala.sys.package$.error(package.scala:27)
    at com.typesafe.sbt.packager.rpm.RpmHelper$$anonfun$buildPackage$1.apply(RpmHelper.scala:89)
    at com.typesafe.sbt.packager.rpm.RpmHelper$$anonfun$buildPackage$1.apply(RpmHelper.scala:74)
    at sbt.IO$.withTemporaryDirectory(IO.scala:291)
    at com.typesafe.sbt.packager.rpm.RpmHelper$.buildPackage(RpmHelper.scala:74)
    at com.typesafe.sbt.packager.rpm.RpmHelper$.buildRpm(RpmHelper.scala:20)
    at com.typesafe.sbt.packager.rpm.RpmPlugin$$anonfun$projectSettings$33.apply(RpmPlugin.scala:122)
    at com.typesafe.sbt.packager.rpm.RpmPlugin$$anonfun$projectSettings$33.apply(RpmPlugin.scala:120)
    at scala.Function3$$anonfun$tupled$1.apply(Function3.scala:35)
    at scala.Function3$$anonfun$tupled$1.apply(Function3.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)

@muuki88
Copy link
Contributor Author

muuki88 commented Sep 14, 2015

@fsat thanks a lot! You have really short days ;)

So my changes make the rpmbuild calling brp-python-bytecompile? Can you post the specs file here?

@fsat
Copy link
Collaborator

fsat commented Sep 18, 2015

Yes it was :) Now it's turned long - sorry for not getting back to you sooner.

There's a diff between this branch's specs file vs 1.0.5-M3. It seems these lines are missing from this branch. These lines are defined just before the start of the %post block.

%define __os_install_post \
%{_rpmconfigdir}/brp-compress \
%{!?__debug_package:%{_rpmconfigdir}/brp-strip %{__strip}} \
%{_rpmconfigdir}/brp-strip-static-archive %{__strip} \
%{_rpmconfigdir}/brp-strip-comment-note %{__strip} %{__objdump} \
%{nil}

I have pasted the specs file from failing vs successful build.

The specs file when the build failed is below.

Name: conductr
Version: 0.1.0
Release: 1
Summary: The Typesafe ConductR process
prefix: /usr/share
License: Typesafe Subscription Agreement
Vendor: Typesafe Inc.
URL: https://conductr.typesafe.com
AutoProv: yes
AutoReq: yes
BuildRoot: /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot
BuildArch: noarch

%description
Manages processes and process containers across a cluster


%install
if [ -e "$RPM_BUILD_ROOT" ]; then
  mv "/home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/tmp-buildroot"/* "$RPM_BUILD_ROOT"
else
  mv "/home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/tmp-buildroot" "$RPM_BUILD_ROOT"
fi
%pre
# #######################################
# ## SBT Native Packager Bash Library  ##
# #######################################

# Adding system user
# $1 = user
# $2 = uid
# $3 = group
# $4 = description
# $5 = shell (defaults to /bin/false)
addUser() {
    user="$1"
    if [ -z "$user" ]; then
    echo "usage: addUser user [group] [description] [shell]"
    exit 1
    fi
    uid="$2"
    if [ -z "$uid" ]; then
    uid_flags=""
      else
  uid_flags="--uid $uid"
    fi
    group=${3:-$user}
    descr=${4:-No description}
    shell=${5:-/bin/false}
    if ! getent passwd | grep -q "^$user:";
    then
    echo "Creating system user: $user in $group with $descr and shell $shell"
    useradd $uid_flags --gid $group -r --shell $shell -c "$descr" $user
    fi
}

# Adding system group
# $1 = group
# $2 = gid
addGroup() {
    group="$1"
    gid="$2"
    if [ -z "$gid" ]; then
      gid_flags=""
  else
    gid_flags="--gid $gid"
  fi
    if ! getent group | grep -q "^$group:" ;
    then
    echo "Creating system group: $group"
    groupadd $gid_flags -r $group
    fi
}

# Will return true even if deletion fails
# $1 = user
deleteUser() {
    if hash deluser 2>/dev/null; then
    deluser --quiet --system $1 > /dev/null || true
    elif hash userdel 2>/dev/null; then
    userdel $1
    else
    echo "WARNING: Could not delete user $1 . No suitable program (deluser, userdel) found"
    fi
}

# Will return true even if deletion fails
# $1 = group
deleteGroup() {
    if hash delgroup 2>/dev/null; then
    delgroup --quiet --system $1 > /dev/null || true
    elif hash groupdel 2>/dev/null; then
    groupdel $1
    else
    echo "WARNING: Could not delete user $1 . No suitable program (delgroup, groupdel) found"
    fi
}

# #######################################


# Scriptlet syntax: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax
# $1 == 1 is first installation and $1 == 2 is upgrade
if [ $1 -eq 1 ] ;
then
    # Adding system user/group : conductr and conductr

    addGroup conductr ""
    addUser conductr "" conductr "conductr user-daemon" "/bin/false"
fi

if [ -e /etc/sysconfig/conductr ] ;
then
  sed -i 's/PACKAGE_PREFIX\=.*//g' /etc/sysconfig/conductr
fi

if [ -n "$RPM_INSTALL_PREFIX" ] ;
then
  echo "PACKAGE_PREFIX=${RPM_INSTALL_PREFIX}" >> /etc/sysconfig/conductr
fi


%post
#
# Adding service to autostart
# $1 = service name
#
startService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using update-rc.d"
        update-rc.d $app_name defaults
        service $app_name start
    elif hash chkconfig >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using chkconfig"
        chkconfig --add conductr
        chkconfig $app_name on
        service $app_name start
    else
        echo "WARNING: Could not add $app_name to autostart: neither update-rc nor chkconfig found!"
    fi
}

#
# Removing service from autostart
# $1 = service name
#
stopService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using update-rc.d"
    update-rc.d -f $app_name remove
    service $app_name stop
    elif hash chkconfig >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using chkconfig"
    chkconfig $app_name off
    chkconfig --del $app_name
    service $app_name stop
    else
    echo "WARNING: Could not remove $app_name from autostart: neither update-rc nor chkconfig found!"
    fi

}

#
# Restarting the service after package upgrade
# $1 = service name
#
restartService() {
    app_name=$1
    service $app_name start
}


# Scriptlet syntax: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax
# $1 == 1 is first installation and $1 == 2 is upgrade

if [ $1 -eq 1 ] ;
then
  startService conductr || echo "Could not start conductr"
fi


%preun
#
# Adding service to autostart
# $1 = service name
#
startService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using update-rc.d"
        update-rc.d $app_name defaults
        service $app_name start
    elif hash chkconfig >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using chkconfig"
        chkconfig --add conductr
        chkconfig $app_name on
        service $app_name start
    else
        echo "WARNING: Could not add $app_name to autostart: neither update-rc nor chkconfig found!"
    fi
}

#
# Removing service from autostart
# $1 = service name
#
stopService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using update-rc.d"
    update-rc.d -f $app_name remove
    service $app_name stop
    elif hash chkconfig >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using chkconfig"
    chkconfig $app_name off
    chkconfig --del $app_name
    service $app_name stop
    else
    echo "WARNING: Could not remove $app_name from autostart: neither update-rc nor chkconfig found!"
    fi

}

#
# Restarting the service after package upgrade
# $1 = service name
#
restartService() {
    app_name=$1
    service $app_name start
}


# Scriptlet syntax: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax
# $1 == 1 is upgrade and $1 == 0 is uninstall
if [ $1 -eq 0 ] ;
then
    stopService conductr || echo "Could not stop conductr"
fi


%postun
# #######################################
# ## SBT Native Packager Bash Library  ##
# #######################################

# Adding system user
# $1 = user
# $2 = uid
# $3 = group
# $4 = description
# $5 = shell (defaults to /bin/false)
addUser() {
    user="$1"
    if [ -z "$user" ]; then
    echo "usage: addUser user [group] [description] [shell]"
    exit 1
    fi
    uid="$2"
    if [ -z "$uid" ]; then
    uid_flags=""
      else
  uid_flags="--uid $uid"
    fi
    group=${3:-$user}
    descr=${4:-No description}
    shell=${5:-/bin/false}
    if ! getent passwd | grep -q "^$user:";
    then
    echo "Creating system user: $user in $group with $descr and shell $shell"
    useradd $uid_flags --gid $group -r --shell $shell -c "$descr" $user
    fi
}

# Adding system group
# $1 = group
# $2 = gid
addGroup() {
    group="$1"
    gid="$2"
    if [ -z "$gid" ]; then
      gid_flags=""
  else
    gid_flags="--gid $gid"
  fi
    if ! getent group | grep -q "^$group:" ;
    then
    echo "Creating system group: $group"
    groupadd $gid_flags -r $group
    fi
}

# Will return true even if deletion fails
# $1 = user
deleteUser() {
    if hash deluser 2>/dev/null; then
    deluser --quiet --system $1 > /dev/null || true
    elif hash userdel 2>/dev/null; then
    userdel $1
    else
    echo "WARNING: Could not delete user $1 . No suitable program (deluser, userdel) found"
    fi
}

# Will return true even if deletion fails
# $1 = group
deleteGroup() {
    if hash delgroup 2>/dev/null; then
    delgroup --quiet --system $1 > /dev/null || true
    elif hash groupdel 2>/dev/null; then
    groupdel $1
    else
    echo "WARNING: Could not delete user $1 . No suitable program (delgroup, groupdel) found"
    fi
}

# #######################################

#
# Adding service to autostart
# $1 = service name
#
startService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using update-rc.d"
        update-rc.d $app_name defaults
        service $app_name start
    elif hash chkconfig >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using chkconfig"
        chkconfig --add conductr
        chkconfig $app_name on
        service $app_name start
    else
        echo "WARNING: Could not add $app_name to autostart: neither update-rc nor chkconfig found!"
    fi
}

#
# Removing service from autostart
# $1 = service name
#
stopService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using update-rc.d"
    update-rc.d -f $app_name remove
    service $app_name stop
    elif hash chkconfig >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using chkconfig"
    chkconfig $app_name off
    chkconfig --del $app_name
    service $app_name stop
    else
    echo "WARNING: Could not remove $app_name from autostart: neither update-rc nor chkconfig found!"
    fi

}

#
# Restarting the service after package upgrade
# $1 = service name
#
restartService() {
    app_name=$1
    service $app_name start
}


# Removing system user/group : conductr and conductr

# Scriptlet syntax: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax
# $1 == 1 is upgrade and $1 == 0 is uninstall

if [ $1 -eq 0 ] ;
then
    echo "Try deleting system user and group [conductr:conductr]"
    if getent passwd | grep -q "^conductr:";
    then
    echo "Deleting system user: conductr"
    deleteUser conductr
    fi
    if getent group | grep -q "^conductr:" ;
    then
    echo "Deleting system group: conductr"
    deleteGroup conductr
    fi
else
     restartService conductr || echo "Failed to try-restart conductr"
fi

%files
%attr(0755,conductr,conductr) /usr/share/conductr/bin/conductr
%attr(0755,conductr,conductr) /usr/share/conductr/bin/check
%dir %attr(0755,conductr,conductr) /usr/share/conductr/conf
%dir %attr(0755,conductr,conductr) /usr/share/conductr/bin
%config %attr(0644,conductr,conductr) /usr/share/conductr/conf/application.ini
%attr(0644,conductr,conductr) /usr/share/conductr/bin/docker-entrypoint.py
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.conductr.conductr-0.1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.scala-library-2.11.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-actor_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-cluster_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-remote_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/io.netty.netty-3.8.0.Final.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.google.protobuf.protobuf-java-2.5.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.uncommons.maths.uncommons-maths-1.2.2a.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-contrib_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-persistence-experimental_2.11-2.3.11.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.iq80.leveldb.leveldb-0.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.iq80.leveldb.leveldb-api-0.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.google.guava.guava-12.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.google.code.findbugs.jsr305-1.3.9.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-all-1.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-1.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.hawtjni.hawtjni-runtime-1.8.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-osx-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-linux32-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-linux64-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-win32-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-win64-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-contrib-extra_2.11-1.18.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-stream-experimental_2.11-1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.reactivestreams.reactive-streams-1.0.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-http-experimental_2.11-1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-http-core-experimental_2.11-1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-parsing-experimental_2.11-1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.github.patriknw.akka-data-replication_2.11-0.11.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/de.heikoseeberger.akka-sse_2.11-1.0.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-slf4j_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.contrail.akka-syslog-adapter_2.11-1.2.6.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.contrail.syslog-codec_2.11-1.2.6.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.parboiled.parboiled_2.11-2.0.1.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.chuusai.shapeless_2.11-2.0.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.play.play-json_2.11-2.4.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.play.play-iteratees_2.11-2.4.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-stm.scala-stm_2.11-0.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.config-1.3.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.play.play-functional_2.11-2.4.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.play.play-datacommons_2.11-2.4.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/joda-time.joda-time-2.8.1.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.joda.joda-convert-1.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.scala-reflect-2.11.6.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.core.jackson-core-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.core.jackson-annotations-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.core.jackson-databind-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.apache.commons.commons-compress-1.8.1.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/commons-io.commons-io-2.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/ch.qos.logback.logback-classic-1.1.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/ch.qos.logback.logback-core-1.1.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.slf4j.slf4j-api-1.7.6.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.modules.scala-pickling_2.11-0.10.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.scala-compiler-2.11.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.modules.scala-xml_2.11-1.0.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.modules.scala-parser-combinators_2.11-1.0.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.github.scopt.scopt_2.11-3.3.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/io.spray.spray-caching_2.11-1.3.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/io.spray.spray-util_2.11-1.3.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.googlecode.concurrentlinkedhashmap.concurrentlinkedhashmap-lru-1.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/typesafe_conductr/check.py
%attr(0644,conductr,conductr) /usr/share/conductr/lib/typesafe_conductr/test/test_check.py
%attr(0644,conductr,conductr) /usr/share/conductr/samples/visualizer-0.1.0-3505d2687aba4fe17331e63e0b1c5b8f7326bc77543b04ecb69a992ec51dd472.zip
%attr(0644,conductr,conductr) /usr/share/conductr/extra/conductr-elasticsearch-0.1.0-6705850b93181f36c20cf159c874bc1232cef1d1edcf776b184b8bfc17e1c35a.zip
%attr(0644,conductr,conductr) /usr/share/conductr/extra/elasticsearch-prod-baf8ac4232d168ddd0b89968507fd6a2ce118a7f4239d15d282655a41c43d57a.zip
%dir %attr(755,conductr,conductr) /var/log/conductr
%config %attr(644,conductr,conductr) /etc/default/conductr
%dir %attr(755,conductr,conductr) /var/run/conductr
%attr(0755,root,root) /etc/init.d/conductr
%attr(755,root,root) /usr/share/conductr/extra/conductr-haproxy-0.1.0-1.noarch.rpm
/usr/bin/docker-entrypoint.py
/usr/bin/conductr
/usr/bin/check
/etc/conductr
/usr/share/conductr/logs

And the specs file when the build is passing:

Name: conductr
Version: 0.1.0
Release: 1
Summary: The Typesafe ConductR process
prefix: /usr/share
License: Typesafe Subscription Agreement
Vendor: Typesafe Inc.
URL: https://conductr.typesafe.com
AutoProv: yes
AutoReq: yes
BuildRoot: /home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/buildroot
BuildArch: noarch

%description
Manages processes and process containers across a cluster


%install
if [ -e "$RPM_BUILD_ROOT" ]; then
  mv "/home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/tmp-buildroot"/* "$RPM_BUILD_ROOT"
else
  mv "/home/felix/workspace/typesafe-fsat/conductr/conductr/target/rpm/tmp-buildroot" "$RPM_BUILD_ROOT"
fi
%pre
# #######################################
# ## SBT Native Packager Bash Library  ##
# #######################################

# Adding system user
# $1 = user
# $2 = uid
# $3 = group
# $4 = description
# $5 = shell (defaults to /bin/false)
addUser() {
    user="$1"
    if [ -z "$user" ]; then
    echo "usage: addUser user [group] [description] [shell]"
    exit 1
    fi
    uid="$2"
    if [ -z "$uid" ]; then
    uid_flags=""
      else
  uid_flags="--uid $uid"
    fi
    group=${3:-$user}
    descr=${4:-No description}
    shell=${5:-/bin/false}
    if ! getent passwd | grep -q "^$user:";
    then
    echo "Creating system user: $user in $group with $descr and shell $shell"
    useradd $uid_flags --gid $group -r --shell $shell -c "$descr" $user
    fi
}

# Adding system group
# $1 = group
# $2 = gid
addGroup() {
    group="$1"
    gid="$2"
    if [ -z "$gid" ]; then
      gid_flags=""
  else
    gid_flags="--gid $gid"
  fi
    if ! getent group | grep -q "^$group:" ;
    then
    echo "Creating system group: $group"
    groupadd $gid_flags -r $group
    fi
}

# Will return true even if deletion fails
# $1 = user
deleteUser() {
    if hash deluser 2>/dev/null; then
    deluser --quiet --system $1 > /dev/null || true
    elif hash userdel 2>/dev/null; then
    userdel $1
    else
    echo "WARNING: Could not delete user $1 . No suitable program (deluser, userdel) found"
    fi
}

# Will return true even if deletion fails
# $1 = group
deleteGroup() {
    if hash delgroup 2>/dev/null; then
    delgroup --quiet --system $1 > /dev/null || true
    elif hash groupdel 2>/dev/null; then
    groupdel $1
    else
    echo "WARNING: Could not delete user $1 . No suitable program (delgroup, groupdel) found"
    fi
}

# #######################################


# Scriptlet syntax: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax
# $1 == 1 is first installation and $1 == 2 is upgrade
if [ $1 -eq 1 ] ;
then
    # Adding system user/group : conductr and conductr

    addGroup conductr ""
    addUser conductr "" conductr "conductr user-daemon" "/bin/false"
fi

if [ -e /etc/sysconfig/conductr ] ;
then
  sed -i 's/PACKAGE_PREFIX\=.*//g' /etc/sysconfig/conductr
fi

if [ -n "$RPM_INSTALL_PREFIX" ] ;
then
  echo "PACKAGE_PREFIX=${RPM_INSTALL_PREFIX}" >> /etc/sysconfig/conductr
fi

%define __os_install_post \
%{_rpmconfigdir}/brp-compress \
%{!?__debug_package:%{_rpmconfigdir}/brp-strip %{__strip}} \
%{_rpmconfigdir}/brp-strip-static-archive %{__strip} \
%{_rpmconfigdir}/brp-strip-comment-note %{__strip} %{__objdump} \
%{nil}


%post
#
# Adding service to autostart
# $1 = service name
#
startService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using update-rc.d"
        update-rc.d $app_name defaults
        service $app_name start
    elif hash chkconfig >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using chkconfig"
        chkconfig --add conductr
        chkconfig $app_name on
        service $app_name start
    else
        echo "WARNING: Could not add $app_name to autostart: neither update-rc nor chkconfig found!"
    fi
}

#
# Removing service from autostart
# $1 = service name
#
stopService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using update-rc.d"
    update-rc.d -f $app_name remove
    service $app_name stop
    elif hash chkconfig >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using chkconfig"
    chkconfig $app_name off
    chkconfig --del $app_name
    service $app_name stop
    else
    echo "WARNING: Could not remove $app_name from autostart: neither update-rc nor chkconfig found!"
    fi

}

#
# Restarting the service after package upgrade
# $1 = service name
#
restartService() {
    app_name=$1
    service $app_name start
}


# Scriptlet syntax: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax
# $1 == 1 is first installation and $1 == 2 is upgrade

if [ $1 -eq 1 ] ;
then
  startService conductr || echo "Could not start conductr"
fi


%preun
#
# Adding service to autostart
# $1 = service name
#
startService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using update-rc.d"
        update-rc.d $app_name defaults
        service $app_name start
    elif hash chkconfig >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using chkconfig"
        chkconfig --add conductr
        chkconfig $app_name on
        service $app_name start
    else
        echo "WARNING: Could not add $app_name to autostart: neither update-rc nor chkconfig found!"
    fi
}

#
# Removing service from autostart
# $1 = service name
#
stopService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using update-rc.d"
    update-rc.d -f $app_name remove
    service $app_name stop
    elif hash chkconfig >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using chkconfig"
    chkconfig $app_name off
    chkconfig --del $app_name
    service $app_name stop
    else
    echo "WARNING: Could not remove $app_name from autostart: neither update-rc nor chkconfig found!"
    fi

}

#
# Restarting the service after package upgrade
# $1 = service name
#
restartService() {
    app_name=$1
    service $app_name start
}


# Scriptlet syntax: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax
# $1 == 1 is upgrade and $1 == 0 is uninstall
if [ $1 -eq 0 ] ;
then
    stopService conductr || echo "Could not stop conductr"
fi


%postun
# #######################################
# ## SBT Native Packager Bash Library  ##
# #######################################

# Adding system user
# $1 = user
# $2 = uid
# $3 = group
# $4 = description
# $5 = shell (defaults to /bin/false)
addUser() {
    user="$1"
    if [ -z "$user" ]; then
    echo "usage: addUser user [group] [description] [shell]"
    exit 1
    fi
    uid="$2"
    if [ -z "$uid" ]; then
    uid_flags=""
      else
  uid_flags="--uid $uid"
    fi
    group=${3:-$user}
    descr=${4:-No description}
    shell=${5:-/bin/false}
    if ! getent passwd | grep -q "^$user:";
    then
    echo "Creating system user: $user in $group with $descr and shell $shell"
    useradd $uid_flags --gid $group -r --shell $shell -c "$descr" $user
    fi
}

# Adding system group
# $1 = group
# $2 = gid
addGroup() {
    group="$1"
    gid="$2"
    if [ -z "$gid" ]; then
      gid_flags=""
  else
    gid_flags="--gid $gid"
  fi
    if ! getent group | grep -q "^$group:" ;
    then
    echo "Creating system group: $group"
    groupadd $gid_flags -r $group
    fi
}

# Will return true even if deletion fails
# $1 = user
deleteUser() {
    if hash deluser 2>/dev/null; then
    deluser --quiet --system $1 > /dev/null || true
    elif hash userdel 2>/dev/null; then
    userdel $1
    else
    echo "WARNING: Could not delete user $1 . No suitable program (deluser, userdel) found"
    fi
}

# Will return true even if deletion fails
# $1 = group
deleteGroup() {
    if hash delgroup 2>/dev/null; then
    delgroup --quiet --system $1 > /dev/null || true
    elif hash groupdel 2>/dev/null; then
    groupdel $1
    else
    echo "WARNING: Could not delete user $1 . No suitable program (delgroup, groupdel) found"
    fi
}

# #######################################

#
# Adding service to autostart
# $1 = service name
#
startService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using update-rc.d"
        update-rc.d $app_name defaults
        service $app_name start
    elif hash chkconfig >/dev/null 2>&1; then
        echo "Adding $app_name to autostart using chkconfig"
        chkconfig --add conductr
        chkconfig $app_name on
        service $app_name start
    else
        echo "WARNING: Could not add $app_name to autostart: neither update-rc nor chkconfig found!"
    fi
}

#
# Removing service from autostart
# $1 = service name
#
stopService() {
    app_name=$1
    if hash update-rc.d >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using update-rc.d"
    update-rc.d -f $app_name remove
    service $app_name stop
    elif hash chkconfig >/dev/null 2>&1; then
    echo "Removing $app_name from autostart using chkconfig"
    chkconfig $app_name off
    chkconfig --del $app_name
    service $app_name stop
    else
    echo "WARNING: Could not remove $app_name from autostart: neither update-rc nor chkconfig found!"
    fi

}

#
# Restarting the service after package upgrade
# $1 = service name
#
restartService() {
    app_name=$1
    service $app_name start
}


# Removing system user/group : conductr and conductr

# Scriptlet syntax: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax
# $1 == 1 is upgrade and $1 == 0 is uninstall

if [ $1 -eq 0 ] ;
then
    echo "Try deleting system user and group [conductr:conductr]"
    if getent passwd | grep -q "^conductr:";
    then
    echo "Deleting system user: conductr"
    deleteUser conductr
    fi
    if getent group | grep -q "^conductr:" ;
    then
    echo "Deleting system group: conductr"
    deleteGroup conductr
    fi
else
     restartService conductr || echo "Failed to try-restart conductr"
fi

%files
%attr(0755,conductr,conductr) /usr/share/conductr/bin/conductr
%attr(0755,conductr,conductr) /usr/share/conductr/bin/check
%dir %attr(0755,conductr,conductr) /usr/share/conductr/conf
%dir %attr(0755,conductr,conductr) /usr/share/conductr/bin
%config %attr(0644,conductr,conductr) /usr/share/conductr/conf/application.ini
%attr(0644,conductr,conductr) /usr/share/conductr/bin/docker-entrypoint.py
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.conductr.conductr-0.1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.scala-library-2.11.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-actor_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-cluster_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-remote_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/io.netty.netty-3.8.0.Final.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.google.protobuf.protobuf-java-2.5.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.uncommons.maths.uncommons-maths-1.2.2a.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-contrib_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-persistence-experimental_2.11-2.3.11.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.iq80.leveldb.leveldb-0.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.iq80.leveldb.leveldb-api-0.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.google.guava.guava-12.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.google.code.findbugs.jsr305-1.3.9.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-all-1.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-1.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.hawtjni.hawtjni-runtime-1.8.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-osx-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-linux32-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-linux64-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-win32-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.fusesource.leveldbjni.leveldbjni-win64-1.5.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-contrib-extra_2.11-1.18.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-stream-experimental_2.11-1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.reactivestreams.reactive-streams-1.0.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-http-experimental_2.11-1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-http-core-experimental_2.11-1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-parsing-experimental_2.11-1.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.github.patriknw.akka-data-replication_2.11-0.11.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/de.heikoseeberger.akka-sse_2.11-1.0.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.akka.akka-slf4j_2.11-2.3-bin-rp-15v01p05.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.contrail.akka-syslog-adapter_2.11-1.2.6.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.contrail.syslog-codec_2.11-1.2.6.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.parboiled.parboiled_2.11-2.0.1.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.chuusai.shapeless_2.11-2.0.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.play.play-json_2.11-2.4.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.play.play-iteratees_2.11-2.4.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-stm.scala-stm_2.11-0.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.config-1.3.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.play.play-functional_2.11-2.4.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.typesafe.play.play-datacommons_2.11-2.4.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/joda-time.joda-time-2.8.1.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.joda.joda-convert-1.7.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.scala-reflect-2.11.6.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.core.jackson-core-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.core.jackson-annotations-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.core.jackson-databind-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.5.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.apache.commons.commons-compress-1.8.1.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/commons-io.commons-io-2.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/ch.qos.logback.logback-classic-1.1.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/ch.qos.logback.logback-core-1.1.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.slf4j.slf4j-api-1.7.6.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.modules.scala-pickling_2.11-0.10.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.scala-compiler-2.11.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.modules.scala-xml_2.11-1.0.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/org.scala-lang.modules.scala-parser-combinators_2.11-1.0.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.github.scopt.scopt_2.11-3.3.0.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/io.spray.spray-caching_2.11-1.3.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/io.spray.spray-util_2.11-1.3.2.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/com.googlecode.concurrentlinkedhashmap.concurrentlinkedhashmap-lru-1.4.jar
%attr(0644,conductr,conductr) /usr/share/conductr/lib/typesafe_conductr/check.py
%attr(0644,conductr,conductr) /usr/share/conductr/lib/typesafe_conductr/test/test_check.py
%attr(0644,conductr,conductr) /usr/share/conductr/samples/visualizer-0.1.0-cb6a3e09169aefca03b3a5befbeaba9eb2eaa23b0e4c8ed5b70a95daacb846b5.zip
%attr(0644,conductr,conductr) /usr/share/conductr/extra/conductr-elasticsearch-0.1.0-433a544d229b8b97f2a13b1ddc0d660e23a12b393352704c618187ecd1468b67.zip
%attr(0644,conductr,conductr) /usr/share/conductr/extra/elasticsearch-prod-baf8ac4232d168ddd0b89968507fd6a2ce118a7f4239d15d282655a41c43d57a.zip
%dir %attr(755,conductr,conductr) /var/log/conductr
%config %attr(644,conductr,conductr) /etc/default/conductr
%dir %attr(755,conductr,conductr) /var/run/conductr
%attr(0755,root,root) /etc/init.d/conductr
%attr(755,root,root) /usr/share/conductr/extra/conductr-haproxy-0.1.0-1.noarch.rpm
/usr/bin/docker-entrypoint.py
/usr/bin/conductr
/usr/bin/check
/etc/conductr
/usr/share/conductr/logs

@muuki88 muuki88 force-pushed the wip/unify-maintainerscripts branch 2 times, most recently from 398c219 to 81753b2 Compare November 8, 2015 12:52
@muuki88 muuki88 force-pushed the wip/unify-maintainerscripts branch from 81753b2 to f70d59c Compare December 12, 2015 20:11
* @param replacements
*/
protected def rpmScriptletContents(scriptDirectory: File, scripts: Map[String, Seq[String]], replacements: Seq[(String, String)]): Map[String, Seq[String]] = {
import RpmConstants._
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@muuki88 muuki88 force-pushed the wip/unify-maintainerscripts branch from f70d59c to a38b34f Compare December 13, 2015 15:13
muuki88 added a commit that referenced this pull request Dec 13, 2015
@muuki88 muuki88 merged commit 57c938d into master Dec 13, 2015
@muuki88 muuki88 deleted the wip/unify-maintainerscripts branch December 13, 2015 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants