]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Introduce RPM
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 16 Apr 2010 08:34:47 +0000 (08:34 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 16 Apr 2010 08:34:47 +0000 (08:34 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@3462 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

demo/agent.properties
dist/org.argeo.slc.sdk/pom.xml
dist/org.argeo.slc.sdk/src/main/rpm/etc/init.d/slc-agent [new file with mode: 0644]
dist/org.argeo.slc.sdk/src/main/rpm/etc/init.d/slc-server [new file with mode: 0644]
dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-agent/config.ini [new file with mode: 0644]
dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-agent/log4j.properties [new file with mode: 0644]
dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-server/config.ini [new file with mode: 0644]
dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-server/log4j.properties [new file with mode: 0644]
dist/org.argeo.slc.sdk/src/main/rpm/usr/bin/slc [new file with mode: 0644]
dist/org.argeo.slc.sdk/src/main/scripts/postinstall [new file with mode: 0644]
dist/org.argeo.slc.sdk/src/main/scripts/preremove [new file with mode: 0644]

index 7bc17a29fd6f4dc378150dc24202c68b8ac73c2b..1b05a55cbe31d3679042872459e5233919384b31 100644 (file)
@@ -5,3 +5,5 @@ org.argeo.slc.agent,\
 org.argeo.slc.agent.jms
 #org.argeo.slc.agent.jmx
 #com.sun.management.jmxremote=
+
+#log4j.configuration=file:/home/mbaudier/dev/src/slc/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-agent/bundles/org.argeo.slc.app.agent.log4j/log4j.properties
index d9cda3b5be39ec32cb190011ab63c9ac9180a328..f984fd2144760f830926d11dde6a1d35b34f7179 100644 (file)
@@ -74,6 +74,7 @@
                                <artifactId>maven-resources-plugin</artifactId>
                                <executions>
                                        <execution>
+                                               <id>filter-base</id>
                                                <phase>validate</phase>
                                                <goals>
                                                        <goal>copy-resources</goal>
                                                        </resources>
                                                </configuration>
                                        </execution>
+                                       <!--
+                                               <execution> <id>filter-rpm</id> <phase>validate</phase> <goals>
+                                               <goal>copy-resources</goal> </goals> <configuration>
+                                               <outputDirectory>${basedir}/target/rpmfiltered</outputDirectory>
+                                               <resources> <resource> <directory>src/main/rpm</directory>
+                                               <filtering>true</filtering> </resource> </resources>
+                                               </configuration> </execution>
+                                       -->
                                </executions>
                        </plugin>
                        <plugin>
                                </dependency>
                        </dependencies>
                </profile>
+               <profile>
+                       <id>rpmbuild</id><!--
+                       <activation>
+                               <os>
+                                       <name>Linux</name>
+                               </os>
+                               <file>
+                                       <exists>/usr/bin/rpmbuild</exists>
+                               </file>
+                       </activation>
+                       --><properties>
+                               <package.version>${project.version}</package.version>
+                               <distribution.label>argeo</distribution.label>
+                       </properties>
+                       <build>
+                               <plugins>
+                                       <plugin>
+                                               <groupId>org.codehaus.mojo</groupId>
+                                               <artifactId>rpm-maven-plugin</artifactId>
+                                               <version>2.0.1</version>
+                                               <extensions>true</extensions>
+                                               <executions>
+                                                       <execution>
+                                                               <id>rpm</id>
+                                                               <phase>package</phase>
+                                                               <goals>
+                                                                       <goal>rpm</goal>
+                                                               </goals>
+                                                       </execution>
+                                               </executions>
+                                               <configuration>
+                                                       <version>${package.version}</version>
+                                                       <release>r${buildNumber}.${distribution.label}</release>
+                                                       <copyright>2010 Argeo</copyright>
+                                                       <distribution>${distribution.label}</distribution>
+                                                       <packager>mbaudier@argeo.org</packager>
+                                                       <group>Applications/System</group>
+                                                       <prefix>/usr</prefix>
+                                                       <mappings>
+                                                               <mapping>
+                                                                       <directory>/usr/bin</directory>
+                                                                       <username>root</username>
+                                                                       <groupname>root</groupname>
+                                                                       <filemode>755</filemode>
+                                                                       <directoryIncluded>false</directoryIncluded>
+                                                                       <sources>
+                                                                               <source>
+                                                                                       <location>src/main/rpm/usr/bin</location>
+                                                                                       <includes>
+                                                                                               <include>*</include>
+                                                                                       </includes>
+                                                                               </source>
+                                                                       </sources>
+                                                               </mapping>
+                                                               <mapping>
+                                                                       <directory>/etc/init.d</directory>
+                                                                       <username>root</username>
+                                                                       <groupname>root</groupname>
+                                                                       <filemode>755</filemode>
+                                                                       <directoryIncluded>false</directoryIncluded>
+                                                                       <sources>
+                                                                               <source>
+                                                                                       <location>src/main/rpm/etc/init.d</location>
+                                                                                       <includes>
+                                                                                               <include>*</include>
+                                                                                       </includes>
+                                                                               </source>
+                                                                       </sources>
+                                                               </mapping>
+                                                               <mapping>
+                                                                       <directory>/etc/slc-agent</directory>
+                                                                       <username>root</username>
+                                                                       <groupname>root</groupname>
+                                                                       <filemode>644</filemode>
+                                                                       <configuration>true</configuration>
+                                                                       <sources>
+                                                                               <source>
+                                                                                       <location>src/main/rpm/etc/slc-agent</location>
+                                                                                       <includes>
+                                                                                               <include>*</include>
+                                                                                       </includes>
+                                                                               </source>
+                                                                       </sources>
+                                                               </mapping>
+                                                               <mapping>
+                                                                       <directory>/etc/slc-server</directory>
+                                                                       <username>root</username>
+                                                                       <groupname>root</groupname>
+                                                                       <filemode>644</filemode>
+                                                                       <configuration>true</configuration>
+                                                                       <sources>
+                                                                               <source>
+                                                                                       <location>src/main/rpm/etc/slc-server</location>
+                                                                                       <includes>
+                                                                                               <include>*</include>
+                                                                                       </includes>
+                                                                               </source>
+                                                                       </sources>
+                                                               </mapping>
+                                                               <mapping>
+                                                                       <directory>/usr/share/osgi</directory>
+                                                                       <username>root</username>
+                                                                       <groupname>root</groupname>
+                                                                       <filemode>644</filemode>
+                                                                       <directoryIncluded>false</directoryIncluded>
+                                                                       <sources>
+                                                                               <source>
+                                                                                       <location>target</location>
+                                                                                       <includes>
+                                                                                               <include>*.jar</include>
+                                                                                       </includes>
+                                                                               </source>
+                                                                       </sources>
+                                                               </mapping>
+                                                               <mapping>
+                                                                       <directory>/usr/src/osgi/pde</directory>
+                                                                       <username>root</username>
+                                                                       <groupname>root</groupname>
+                                                                       <filemode>644</filemode>
+                                                                       <directoryIncluded>false</directoryIncluded>
+                                                                       <sources>
+                                                                               <source>
+                                                                                       <location>target/libsrc</location>
+                                                                                       <includes>
+                                                                                               <include>*.jar</include>
+                                                                                       </includes>
+                                                                               </source>
+                                                                       </sources>
+                                                               </mapping>
+                                                       </mappings>
+                                                       <postinstallScriptlet>
+                                                               <scriptFile>src/main/scripts/postinstall</scriptFile>
+                                                       </postinstallScriptlet>
+                                                       <preremoveScriptlet>
+                                                               <scriptFile>src/main/scripts/preremove</scriptFile>
+                                                       </preremoveScriptlet>
+                                                       <requires>
+                                                               <require>java-1.6.0-openjdk</require>
+                                                       </requires>
+                                               </configuration>
+                                       </plugin>
+                                       <!--
+                                               <plugin> <groupId>org.codehaus.mojo</groupId>
+                                               <artifactId>buildnumber-maven-plugin</artifactId> <executions>
+                                               <execution> <id>buildNumber-create</id> <phase>validate</phase>
+                                               <goals> <goal>create</goal> </goals> </execution> </executions>
+                                               <configuration> <format>{0,number}</format> <items>
+                                               <item>buildNumber0</item> </items> </configuration> </plugin>
+                                       -->
+                                       <!--
+                                               <plugin> <artifactId>maven-scm-plugin</artifactId> <executions>
+                                               <execution> <id>buildNumber-commit</id> <phase>verify</phase>
+                                               <goals> <goal>checkin</goal> </goals> </execution> </executions>
+                                               <configuration> <username>${username}</username>
+                                               <password>${password}</password> <message> Update buildNumber to
+                                               ${buildNumber} </message> </configuration> </plugin>
+                                       -->
+                                       <plugin>
+                                               <groupId>org.apache.maven.plugins</groupId>
+                                               <artifactId>maven-antrun-plugin</artifactId>
+                                               <executions>
+                                                       <execution>
+                                                               <id>rpm-copyToRepo</id>
+                                                               <phase>deploy</phase>
+                                                               <goals>
+                                                                       <goal>run</goal>
+                                                               </goals>
+                                                               <configuration>
+                                                                       <tasks>
+                                                                               <property name="repo.base"
+                                                                                       location="${distributions.root}/${distribution.label}/i386/os" />
+                                                                               <copy todir="${repo.base}/Packages" verbose="true">
+                                                                                       <fileset dir="target">
+                                                                                               <include name="rpm/RPMS/*/*.rpm" />
+                                                                                       </fileset>
+                                                                                       <flattenmapper />
+                                                                               </copy>
+                                                                               <exec executable="/usr/bin/createrepo">
+                                                                                       <arg value="${repo.base}" />
+                                                                               </exec>
+                                                                       </tasks>
+                                                               </configuration>
+                                                       </execution>
+                                               </executions>
+                                       </plugin>
+                               </plugins>
+                       </build>
+
+               </profile>
        </profiles>
 </project>
\ No newline at end of file
diff --git a/dist/org.argeo.slc.sdk/src/main/rpm/etc/init.d/slc-agent b/dist/org.argeo.slc.sdk/src/main/rpm/etc/init.d/slc-agent
new file mode 100644 (file)
index 0000000..416b278
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/bash
+#
+# slc-agent    SLC Agent
+#
+# chkconfig: 3 92 92
+# description: SLC Agent
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+start() {
+       EXECDIR=/var/lib/slc-agent
+       cd $EXECDIR
+       export JAVA_OPTS=-Xmx128m
+       /usr/bin/slc -console 3030 &
+       action $"Start SLC agent" /bin/true
+       return $RETVAL
+}
+
+stop() {
+       telnet localhost 3030  << EOF
+close
+EOF
+       action $"Stop SLC agent" /bin/true
+       return $RETVAL
+}
+
+# See how we were called.
+case "$1" in
+  start)
+        start
+        ;;
+  stop)
+        stop
+        ;;
+  restart|reload)
+        stop
+        start
+        RETVAL=$?
+        ;;
+  condrestart)
+               echo Not implemented
+               exit 1
+        ;;
+  status)
+               echo Not implemented
+               exit 1
+        ;;
+  *)
+        echo $"Usage: $0 {start|stop|restart}"
+        exit 1
+esac
+
+exit $RETVAL
diff --git a/dist/org.argeo.slc.sdk/src/main/rpm/etc/init.d/slc-server b/dist/org.argeo.slc.sdk/src/main/rpm/etc/init.d/slc-server
new file mode 100644 (file)
index 0000000..6835212
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/bash
+#
+# slc-server   SLC Server
+#
+# chkconfig: 3 92 92
+# description: SLC Server
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+start() {
+       EXECDIR=/var/lib/slc-server
+       cd $EXECDIR
+       export JAVA_OPTS=-Xmx256m
+       /usr/bin/slc -console 3040 &
+       action $"Start SLC server" /bin/true
+       return $RETVAL
+}
+
+stop() {
+       telnet localhost 3040  << EOF
+close
+EOF
+       action $"Stop SLC server" /bin/true
+       return $RETVAL
+}
+
+# See how we were called.
+case "$1" in
+  start)
+        start
+        ;;
+  stop)
+        stop
+        ;;
+  restart|reload)
+        stop
+        start
+        RETVAL=$?
+        ;;
+  condrestart)
+               echo Not implemented
+               exit 1
+        ;;
+  status)
+               echo Not implemented
+               exit 1
+        ;;
+  *)
+        echo $"Usage: $0 {start|stop|restart}"
+        exit 1
+esac
+
+exit $RETVAL
diff --git a/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-agent/config.ini b/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-agent/config.ini
new file mode 100644 (file)
index 0000000..ad38c49
--- /dev/null
@@ -0,0 +1,11 @@
+argeo.osgi.start=org.springframework.osgi.extender,\
+       org.argeo.slc.agent,\
+       org.argeo.slc.agent.jms,\
+       org.argeo.slc.support.equinox
+
+log4j.configuration=file:/etc/slc-agent/log4j.properties
+
+# ADVANCED PROPERTIES
+# should not be changed in general
+osgi.bundles=org.argeo.osgi.boot.jar@start
+argeo.osgi.bundles=${osgi.install.area};in=*
diff --git a/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-agent/log4j.properties b/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-agent/log4j.properties
new file mode 100644 (file)
index 0000000..5e2db1e
--- /dev/null
@@ -0,0 +1,16 @@
+log4j.rootLogger=WARN, file
+#log4j.rootLogger=WARN, console
+
+## Levels
+log4j.logger.org.argeo=INFO
+#log4j.logger.org.springframework=DEBUG
+
+## Appenders
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n
+
+log4j.appender.file=org.apache.log4j.RollingFileAppender
+log4j.appender.file.File=/var/log/slc-agent.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n
diff --git a/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-server/config.ini b/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-server/config.ini
new file mode 100644 (file)
index 0000000..45d4ed9
--- /dev/null
@@ -0,0 +1,15 @@
+argeo.osgi.start=org.springframework.osgi.extender,\
+       org.argeo.server.ads.server,\
+       org.argeo.slc.server.hsqldb,\
+       org.argeo.slc.server.main,\
+       org.argeo.slc.ria
+
+log4j.configuration=file:/etc/slc-server/log4j.properties
+
+org.osgi.framework.bootdelegation=com.sun.jndi.ldap
+
+# ADVANCED PROPERTIES
+# should not be changed in general
+osgi.bundles=org.argeo.osgi.boot.jar@start
+argeo.osgi.bundles=${osgi.install.area};in=*
+       
\ No newline at end of file
diff --git a/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-server/log4j.properties b/dist/org.argeo.slc.sdk/src/main/rpm/etc/slc-server/log4j.properties
new file mode 100644 (file)
index 0000000..5646e20
--- /dev/null
@@ -0,0 +1,21 @@
+log4j.rootLogger=WARN, file
+#log4j.rootLogger=WARN, console
+
+## Levels
+log4j.logger.org.argeo=INFO
+#log4j.logger.org.springframework=DEBUG
+#log4j.logger.org.hibernate=DEBUG
+#log4j.logger.org.apache.activemq=DEBUG
+
+log4j.logger.org.apache.directory.server.core.partition=ERROR
+log4j.logger.org.apache.directory.server.core.schema.bootstrap.BootstrapAttributeTypeRegistry=ERROR
+
+## Appenders
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} [%15.15t] %m - %c%n - %t
+
+log4j.appender.file=org.apache.log4j.RollingFileAppender
+log4j.appender.file.File=/var/log/slc-server.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern= %-5p %d{ISO8601} [%15.15t] %m - %c%n
diff --git a/dist/org.argeo.slc.sdk/src/main/rpm/usr/bin/slc b/dist/org.argeo.slc.sdk/src/main/rpm/usr/bin/slc
new file mode 100644 (file)
index 0000000..5f72472
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+if [ -d ./lib ];then
+       OSGI_INSTALL_AREA=`pwd`/lib
+else
+       OSGI_INSTALL_AREA=/usr/share/osgi
+fi
+
+
+java $JAVA_OPTS -jar $OSGI_INSTALL_AREA/org.eclipse.osgi.jar \
+       -clean \
+       -configuration conf \
+       -data data \
+       "$@"
diff --git a/dist/org.argeo.slc.sdk/src/main/scripts/postinstall b/dist/org.argeo.slc.sdk/src/main/scripts/postinstall
new file mode 100644 (file)
index 0000000..9d9f306
--- /dev/null
@@ -0,0 +1,23 @@
+if [ ! -L /usr/share/osgi/org.eclipse.osgi.jar ];then
+       ln -s /usr/share/osgi/org.eclipse.osgi-*.jar /usr/share/osgi/org.eclipse.osgi.jar
+fi
+
+if [ ! -L /usr/share/osgi/org.argeo.osgi.boot.jar ];then
+       ln -s /usr/share/osgi/org.argeo.osgi.boot-*.jar /usr/share/osgi/org.argeo.osgi.boot.jar
+fi
+
+if [ $1 = "1" ];then
+       APP=slc-agent
+       mkdir -p /var/lib/$APP/{conf,data}
+       ln -s /etc/$APP/config.ini /var/lib/$APP/conf
+       mkdir -p /var/lib/$APP/lib
+       ln -s /usr/share/osgi/* /var/lib/$APP/lib
+       /sbin/chkconfig --add $APP
+
+       APP=slc-server
+       mkdir -p /var/lib/$APP/{conf,data}
+       ln -s /etc/$APP/config.ini /var/lib/$APP/conf
+       mkdir -p /var/lib/$APP/lib
+       ln -s /usr/share/osgi/* /var/lib/$APP/lib
+       /sbin/chkconfig --add $APP
+fi
\ No newline at end of file
diff --git a/dist/org.argeo.slc.sdk/src/main/scripts/preremove b/dist/org.argeo.slc.sdk/src/main/scripts/preremove
new file mode 100644 (file)
index 0000000..175e693
--- /dev/null
@@ -0,0 +1,16 @@
+echo Remove symbolic links
+rm -f /usr/share/osgi/org.argeo.osgi.boot.jar
+rm -f /usr/share/osgi/org.eclipse.osgi.jar
+
+if [ $1 = "0" ];then
+       APP=slc-agent
+       /sbin/chkconfig --del $APP
+       rm -f /var/lib/$APP/conf/config.ini
+       rm -rf /var/lib/$APP/lib
+
+       APP=slc-server
+       /sbin/chkconfig --del $APP
+       rm -f /var/lib/$APP/conf/config.ini
+       rm -rf /var/lib/$APP/lib
+
+fi