diff options
-rw-r--r-- | Ice-3.3-dont-build-demo-test.patch | 24 | ||||
-rw-r--r-- | Ice-3.4.0-s390.patch | 21 | ||||
-rw-r--r-- | Ice-README.Fedora | 283 | ||||
-rw-r--r-- | IceGridAdmin.desktop | 10 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | glacier2router.conf | 104 | ||||
-rw-r--r-- | glacier2router.init | 110 | ||||
-rw-r--r-- | ice-3.4.1-no-mono.patch | 16 | ||||
-rw-r--r-- | ice-3.4.2-gcc46.patch | 100 | ||||
-rw-r--r-- | ice-3.4.2-jgoodies.patch | 44 | ||||
-rw-r--r-- | ice.ini | 1 | ||||
-rw-r--r-- | ice.pth | 4 | ||||
-rw-r--r-- | ice.spec | 838 | ||||
-rwxr-xr-x | icegridgui | 5 | ||||
-rw-r--r-- | icegridnode.conf | 48 | ||||
-rw-r--r-- | icegridnode.init | 111 | ||||
-rw-r--r-- | icegridregistry.conf | 70 | ||||
-rw-r--r-- | icegridregistry.init | 111 |
18 files changed, 1904 insertions, 0 deletions
diff --git a/Ice-3.3-dont-build-demo-test.patch b/Ice-3.3-dont-build-demo-test.patch new file mode 100644 index 0000000..87c0ce8 --- /dev/null +++ b/Ice-3.3-dont-build-demo-test.patch @@ -0,0 +1,24 @@ +diff -ur Ice-3.3.0.orig/cpp/Makefile Ice-3.3.0/cpp/Makefile +--- Ice-3.3.0.orig/cpp/Makefile 2008-05-16 18:24:00.000000000 +0100 ++++ Ice-3.3.0/cpp/Makefile 2008-05-21 11:18:17.000000000 +0100 +@@ -11,7 +11,7 @@ + + include $(top_srcdir)/config/Make.rules + +-SUBDIRS = config src include test demo ++SUBDIRS = config src include + + INSTALL_SUBDIRS = $(install_bindir) $(install_libdir) $(install_includedir) $(install_configdir) + +diff -ur Ice-3.3.0.orig/cs/Makefile Ice-3.3.0/cs/Makefile +--- Ice-3.3.0.orig/cs/Makefile 2008-05-16 18:24:01.000000000 +0100 ++++ Ice-3.3.0/cs/Makefile 2008-05-21 11:18:22.000000000 +0100 +@@ -11,7 +11,7 @@ + + include $(top_srcdir)/config/Make.rules.cs + +-SUBDIRS = src test demo ++SUBDIRS = src + + install:: install-common + @if test ! -d $(install_bindir) ; \ diff --git a/Ice-3.4.0-s390.patch b/Ice-3.4.0-s390.patch new file mode 100644 index 0000000..819b18a --- /dev/null +++ b/Ice-3.4.0-s390.patch @@ -0,0 +1,21 @@ +diff -up Ice-3.4.0/cpp/include/IceUtil/Config.h.s390 Ice-3.4.0/cpp/include/IceUtil/Config.h +--- Ice-3.4.0/cpp/include/IceUtil/Config.h.s390 2010-06-20 10:57:34.000000000 +0200 ++++ Ice-3.4.0/cpp/include/IceUtil/Config.h 2010-06-20 10:59:38.000000000 +0200 +@@ -26,7 +26,7 @@ + # define ICE_LITTLE_ENDIAN + #elif defined(__sparc) || defined(__sparc__) || defined(__hppa) || \ + defined(__ppc__) || defined(__powerpc) || defined(_ARCH_COM) || \ +- defined(__MIPSEB__) || (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) ++ defined(__MIPSEB__) || defined(__s390__) || (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) + # define ICE_BIG_ENDIAN + #else + # error "Unknown architecture" +@@ -42,7 +42,7 @@ + // + # define ICE_32 + #elif defined(__sun) && (defined(__sparcv9) || defined(__x86_64)) || \ +- defined(__linux) && defined(__x86_64) || \ ++ defined(__linux) && (defined(__x86_64) || defined(__s390x__)) || \ + defined(__hppa) && defined(__LP64__) || \ + defined(_ARCH_COM) && defined(__64BIT__) || \ + defined(__alpha__) || \ diff --git a/Ice-README.Fedora b/Ice-README.Fedora new file mode 100644 index 0000000..f50106d --- /dev/null +++ b/Ice-README.Fedora @@ -0,0 +1,283 @@ +====================================================================== +The Internet Communications Engine +====================================================================== + +Ice is a modern alternative to object middleware such as CORBA or +COM/DCOM/COM+. It is easy to learn, yet provides a powerful network +infrastructure for demanding technical applications. It features an +object-oriented specification language, easy to use C++, C#, Java, +Python, Ruby, PHP, and Visual Basic mappings, a highly efficient +protocol, asynchronous method invocation and dispatch, dynamic +transport plug-ins, TCP/IP and UDP/IP support, SSL-based security, a +firewall solution, and much more. + +Ice is available under the terms of the GNU General Public License +(GPL) (see LICENSE file). Commercial licenses are available for +customers who wish to use Ice with proprietary products. Please +contact sales@zeroc.com for more information about licensing Ice. + + +====================================================================== +About this distribution +====================================================================== + +This distribution is an RPM release of the Ice 3.3.1 run time for +Fedora and includes executables for the Ice services, HTML +documentation, Slice files, and the C++ runtime libraries. It has been +modified from the RPM distribution provided through +http://www.zeroc.com/download.html to meet Fedora packaging standards. + +Additional Ice components are provided in separate RPM packages: + +- Run time libraries for Java, Python, PHP, Ruby and C# (Mono). These + libraries enable you to execute Ice applications. (ice-java, + ice-python, ice-php, ice-ruby, ice-csharp) + +- Development kits for C++, Java, Python, Ruby, and C# (Mono). A + development kit is required for building Ice applications using a + supported language mapping. (ice-devel, ice-java-devel, + ice-python-devel, ice-ruby-devel, ice-csharp-devel) + +- Sample /etc/init.d scripts. (ice-servers) + +- The graphical IceGrid administrative tool. (icegrid-gui) + +These RPMS can all also be installed through yum. + + +====================================================================== +Setting up your environment to use Ice +====================================================================== + + +C++ +--- + +No additional compiler or linker options are required for an RPM +installation of the Ice for C++ development kit. + + +Java +---- + +To use Ice for Java with Java5 or Java6, add Ice.jar to your CLASSPATH, +as shown in the following bash command: + +$ export CLASSPATH=`build-classpath Ice`:$CLASSPATH + +Note that the Freeze component of Ice for Java requires Berkeley DB. +In order to use Freeze, you must add db.jar to your CLASSPATH. In +addition, the JVM requires the directory containing the Berkeley DB +libraries to be listed in java.library.path, therefore you must add +this directory to your LD_LIBRARY_PATH. Assuming you are using the RPM +installation of Berkeley DB, the bash command is shown below: + +$ export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH + +On a x86_64 system with a 64-bit JVM, the 64-bit Berkeley DB libraries +are installed in /usr/lib64, so use instead: + +$ export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH + +When using the Ice for Java SSL plugin (IceSSL), you may experience +occasional hangs. The most likely reason is that your system's entropy +pool is empty. If you have sufficient system privileges, you can solve +this issue by editing the following file + +<java.home>/jre/lib/security/java.security + +and changing it to use /dev/urandom instead of /dev/random. If you do +not have permission to modify the security file, you can also use the +command-line option shown below: + +$ java -Djava.security.egd=file:/dev/urandom MyClass ... + +On SuSE Linux Enterprise Server, you may experience occasional hangs +the first time an Ice object adapter is activated within a JVM. A +work-around is to disable IPv6 support by setting the Java property +java.net.preferIPv4Stack to true. For example: + +$ java -Djava.net.preferIPv4Stack=true MyClass ... + +For more information on this issue, refer to Sun's bug database: + + http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6483406 + + +Python +------ + +The RPM installation puts the Python libraries into the correct +sitelib directories; there is no need for any additional configuration +to use them. + + +C#/Mono +------- + +The RPM installation adds the C# runtime libraries to the global +assembly cache (GAC), so that no changes to your environment are +necessary to locate the assemblies. + +The instructions for running the demos assume that you have configured +your kernel to automatically execute the Mono interpreter. To do this, +run the following commands as root (replace /usr/bin/mono with the +location of your mono interpreter): + + if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then + /sbin/modprobe binfmt_misc + mount -t binfmt_misc none /proc/sys/fs/binfmt_misc + fi + if [ -e /proc/sys/fs/binfmt_misc/register ]; then + echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register + else + echo "No binfmt_misc support" exit 1 + fi + +If you don't want to do this you need to run the executable with +mono. For example, + +$ mono server.exe + + +Ruby +---- + +The RPM installation puts the Ruby libraries into the correct +sitelib directories; there is no need for any additional configuration +to use them. + + +PHP +--- + +The Ice extension for PHP is loaded automatically when the interpreter +loads the contents of the file /etc/php.d/ice.ini. + +extension=IcePHP.so + +You can modify this file to include additional configuration +directives, such as those used by the Ice extension. + +At run time, the PHP interpreter requires the Ice shared libraries as +well as the Slice preprocessor (icecpp). + +You can verify that the Ice extension is installed properly by +examining the output of the "php -m" command, or by calling the +phpinfo() function from a script. + + +SELinux Notes +-------------------------------------------------- + +SELinux augments the traditional Unix permissions with a number of +new features. In particular, SELinux can prevent the httpd daemon from +opening network connections and reading files without the proper +SELinux types. + +If you suspect that your IcePHP application does not work due to +SELinux restrictions, we recommend that you first try it with SELinux +disabled. As root, run: + +# setenforce 0 + +to disable SELinux until the next reboot of your computer. + +If you want to run httpd with IcePHP and SELinux enabled, you must do +the following: + +- Allow httpd to open network connections: + + # setsebool httpd_can_network_connect=1 + + (add the -P option to make this setting persistent across reboots) + +- Make sure any .ice file used by your PHP scripts can be read by + httpd. The enclosing directory also needs to be accessible. For + example: + + # chcon -R -t httpd_sys_content_t /opt/MyApp/slice + +For more information on SELinux, refer to the link below: + + http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/selinux-guide/ + + +====================================================================== +/etc/init.d scripts +====================================================================== + +The ice-servers includes the following sample /etc/init.d scripts and +associated configuration files: + +- /etc/init.d/icegridregistry and /etc/icegridregistry.conf +- /etc/init.d/icegridnode and /etc/icegridnode.conf +- /etc/init.d/glacier2router and /etc/glacier2router.conf + +This RPM also creates an "iceuser" account to run the services. + +None of these services are enabled during the RPM installation; you +need to manually enable the desired service(s) using the chkconfig +command, for example: + +# chkconfig --add icegridregistry + +Before doing so, please review the script itself and its associated +configuration file. For icegridregistry and icegridnode, you also need +to create 'data' directories with the proper permissions (refer to the +.conf files). + + +====================================================================== +Using the IceGrid Administrative Console +====================================================================== + +The Java-based graphical tool for administering IceGrid applications +can be run as follows: + +$ icegridgui + +Full documentation of this tool is at the following URL: + + http://www.zeroc.com/doc/latest/IceGridAdmin/ + + +====================================================================== +Demos and documentation +====================================================================== + +Sample programs are provided in the Ice-3.3.1-demos.tar.gz package, +which can be downloaded from the ZeroC web site at + + http://www.zeroc.com/download.html + +Please refer to the README.DEMOS file included in that package for +more information. + +See doc/README.html for information on the documentation included with +this distribution. + + +====================================================================== +Binary compatibility +====================================================================== + +Patch releases of Ice are binary compatible. For example, version +<x>.<y>.1 is compatible with <x>.<y>.0, so you can run applications +compiled with <x>.<y>.0 with the <x>.<y>.1 runtime without having to +recompile. + +With the binary installers, simply uninstall the previous version of +Ice and install the new one. Already deployed applications that were +compiled against the <x>.<y>.0 runtime will automatically use the +<x>.<y>.1 runtime. + +Note: Under Mono, binary compatibility currently does not work due to + issues with Mono. Until this problem in Mono is fixed, you + cannot run applications compiled with previous minor versions of + Ice against a newer version of the Ice assemblies. For example, + an application compiled with version <x>.<y>.0 of Ice cannot run + with the <x>.<y>.1 Ice assemblies. + +[ This file was modified by Mary Ellen Foster from the original +README.Linux-RPM distributed by ZeroC. ] diff --git a/IceGridAdmin.desktop b/IceGridAdmin.desktop new file mode 100644 index 0000000..3eb72a8 --- /dev/null +++ b/IceGridAdmin.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=IceGrid Admin +GenericName=IceGrid Admin +Comment=Graphical administration tool for IceGrid +Exec=icegridgui +Icon=icegrid +Terminal=false +Type=Application +Categories=Development; diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1e65467 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../common/Makefile + diff --git a/glacier2router.conf b/glacier2router.conf new file mode 100644 index 0000000..90a3cfb --- /dev/null +++ b/glacier2router.conf @@ -0,0 +1,104 @@ +# +# Sample configuration file for the Glacier2 router daemon +# + +# +# Set the instance name +# +Glacier2.InstanceName=DemoGlacier2Router + +# +# The client-visible endpoint of Glacier2. This should be an endpoint +# visible from the public Internet, and it should be secure. +# IANA-registered TCP ports for the Glacier2 router: +# - 4063 (insecure) +# - 4064 (secure, using SSL) +# +# Using tcp is not recommended for production! +# +Glacier2.Client.Endpoints=tcp -p 4063 -h localhost +#Glacier2.Client.Endpoints=ssl -p 4064 -h localhost + +# +# The server-visible endpoint of Glacier2. This endpoint is only +# required if callbacks are needed (leave empty otherwise). This +# should be an endpoint on an internal network (like 192.168.x.x), or +# on the loopback, so that the server is not directly accessible from +# the Internet. +# +Glacier2.Server.Endpoints=tcp -h localhost + +# +# This permissions verifier allows any user-id / password combination; +# this is not recommended for production! +# +Glacier2.PermissionsVerifier=DemoGlacier2Router/NullPermissionsVerifier + +# +# The timeout for inactive sessions. If any client session is inactive +# for longer than this value, the session expires and is removed. The +# unit is seconds. +# +Glacier2.SessionTimeout=30 + +# +# Glacier2 always disables active connection management so there is no +# need to configure this manually. Connection retry does not need to +# be disabled, as it's safe for Glacier2 to retry outgoing connections +# to servers. Retry for incoming connections from clients must be +# disabled in the clients. +# + +# +# Various settings to trace requests, overrides, etc. +# +Ice.UseSyslog=1 +Glacier2.Client.Trace.Request=1 +Glacier2.Server.Trace.Request=1 +Glacier2.Client.Trace.Override=1 +Glacier2.Server.Trace.Override=1 +Glacier2.Client.Trace.Reject=1 +Glacier2.Trace.Session=1 +Glacier2.Trace.RoutingTable=1 + +# +# Warn about connection exceptions +# +Ice.Warn.Connections=1 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 + +# +# Protocol Tracing +# +# 0 = no protocol tracing +# 1 = trace protocol messages +# +#Ice.Trace.Protocol=1 + +# +# Security Tracing +# +# 0 = no security tracing +# 1 = trace messages +# +#IceSSL.Trace.Security=1 + +# +# SSL Configuration +# +#Ice.Plugin.IceSSL=IceSSL:createIceSSL + +#IceSSL.DefaultDir=<path to certs dir> + +#IceSSL.CertAuthFile=cacert.pem +#IceSSL.CertFile=s_rsa1024_pub.pem +#IceSSL.KeyFile=s_rsa1024_priv.pem diff --git a/glacier2router.init b/glacier2router.init new file mode 100644 index 0000000..5466419 --- /dev/null +++ b/glacier2router.init @@ -0,0 +1,110 @@ +#!/bin/bash +# +# Copyright (c) 2007-2010 ZeroC, Inc. All rights reserved. +# +# glacier2router This shell script takes care of starting and +# stopping the glacier2router daemon. +# +# chkconfig: - 62 74 +# description: The Glacier2 router daemon. \ +# Glacier2 is the firewall traversal service for the Internet \ +# Communications Engine (Ice). + +# +# Source function library. +# +. /etc/init.d/functions + +# +# The Glacier2 router user; root is allowed, but not necessary, therefore +# it is recommended to use a non-root account. +# +user=iceuser + +# +# Ask for a password at startup? +# +prompt=no + +# +# The Glacier2 router configuration file +# +routerconf="/etc/glacier2router.conf" + +prog="/usr/bin/glacier2router" + +progbase=${prog##*/} +pidfile=/var/run/$progbase.pid + +options="--daemon --pidfile $pidfile --Ice.Config=$routerconf" + +RETVAL=0 + +start() { + if [ "${prompt:-}" = "yes" ] + then + echo $"Starting $progbase: " + INITLOG_ARGS= # clears -q + else + echo -n $"Starting $progbase: " + fi + + daemonoptions="--pidfile $pidfile" + if [ "$user" != "root" ] + then + daemonoptions="$daemonoptions --user $user" + + if [ ! -e $pidfile ] + then + touch $pidfile + fi + chown $user $pidfile + fi + + daemon $daemonoptions $prog $options + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progbase + return $RETVAL +} + +stop() { + echo -n $"Shutting down $progbase: " + killproc -p $pidfile $prog + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progbase + return $RETVAL +} + + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $progbase + RETVAL=$? + ;; + restart|reload) + stop + start + RETVAL=$? + ;; + condrestart) + if [ -f /var/lock/subsys/$progbase ]; then + stop + start + RETVAL=$? + fi + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart|status}" + exit 1 +esac + +exit $RETVAL diff --git a/ice-3.4.1-no-mono.patch b/ice-3.4.1-no-mono.patch new file mode 100644 index 0000000..c72e754 --- /dev/null +++ b/ice-3.4.1-no-mono.patch @@ -0,0 +1,16 @@ +diff -up Ice-3.4.1/Makefile.no-mono Ice-3.4.1/Makefile +--- Ice-3.4.1/Makefile.no-mono 2011-03-21 18:55:22.000000000 +0100 ++++ Ice-3.4.1/Makefile 2011-03-21 18:55:36.000000000 +0100 +@@ -7,10 +7,10 @@ + # + # ********************************************************************** + +-SUBDIRS = cpp java cs py rb php ++SUBDIRS = cpp java py rb php + CLEAN_SUBDIRS = java cs py rb php cpp + DEPEND_SUBDIRS = cpp cs py rb php +-INSTALL_SUBDIRS = cpp java cs py rb php ++INSTALL_SUBDIRS = cpp java py rb php + + all:: + @for subdir in $(SUBDIRS); \ diff --git a/ice-3.4.2-gcc46.patch b/ice-3.4.2-gcc46.patch new file mode 100644 index 0000000..9a2e639 --- /dev/null +++ b/ice-3.4.2-gcc46.patch @@ -0,0 +1,100 @@ +diff --git a/cpp/include/Freeze/Map.h b/cpp/include/Freeze/Map.h +index 2ec759d..d8ef692 100644 +--- a/cpp/include/Freeze/Map.h ++++ b/cpp/include/Freeze/Map.h +@@ -15,7 +15,7 @@ + #include <Freeze/DB.h> + #include <Freeze/Exception.h> + #include <Freeze/Connection.h> +- ++#include <cstddef> + // + // Berkeley DB's DbEnv + // +diff --git a/cpp/include/Ice/Buffer.h b/cpp/include/Ice/Buffer.h +index 6f7ebab..9501f08 100644 +--- a/cpp/include/Ice/Buffer.h ++++ b/cpp/include/Ice/Buffer.h +@@ -12,6 +12,8 @@ + + #include <Ice/Config.h> + ++#include <cstddef> ++ + namespace IceInternal + { + +diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp +index ee201fd..c5cfae1 100644 +--- a/cpp/src/Ice/ConnectionFactory.cpp ++++ b/cpp/src/Ice/ConnectionFactory.cpp +@@ -26,6 +26,7 @@ + #include <Ice/Functional.h> + #include <IceUtil/Random.h> + #include <iterator> ++#include <cstddef> + + using namespace std; + using namespace Ice; +diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp +index 2d942ca..a864509 100644 +--- a/cpp/src/Ice/ConnectionI.cpp ++++ b/cpp/src/Ice/ConnectionI.cpp +@@ -26,6 +26,7 @@ + #include <Ice/ReferenceFactory.h> // For createProxy(). + #include <Ice/ProxyFactory.h> // For createProxy(). + #include <bzlib.h> ++#include <cstddef> + + using namespace std; + using namespace Ice; +diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp +index 875b64e..6f84069 100644 +--- a/cpp/src/Ice/Reference.cpp ++++ b/cpp/src/Ice/Reference.cpp +@@ -28,7 +28,7 @@ + #include <IceUtil/StringUtil.h> + #include <IceUtil/Random.h> + #include <IceUtil/MutexPtrLock.h> +- ++#include <cstddef> + #include <functional> + + using namespace std; +diff --git a/cpp/src/IceGrid/Util.h b/cpp/src/IceGrid/Util.h +index 72ffded..0047e57 100644 +--- a/cpp/src/IceGrid/Util.h ++++ b/cpp/src/IceGrid/Util.h +@@ -16,6 +16,7 @@ + #include <IceUtil/Random.h> + #include <functional> + #include <iterator> ++#include <cstddef> + + namespace IceGrid + { +diff --git a/cpp/src/slice2freeze/Main.cpp b/cpp/src/slice2freeze/Main.cpp +index 7e2afb2..af68a7d 100644 +--- a/cpp/src/slice2freeze/Main.cpp ++++ b/cpp/src/slice2freeze/Main.cpp +@@ -19,6 +19,7 @@ + #include <IceUtil/OutputUtil.h> + #include <IceUtil/StringUtil.h> + #include <cstring> ++#include <cstddef> + + using namespace std; + using namespace IceUtil; +diff --git a/cpp/test/Ice/binding/AllTests.cpp b/cpp/test/Ice/binding/AllTests.cpp +index f4da896..912aed1 100644 +--- a/cpp/test/Ice/binding/AllTests.cpp ++++ b/cpp/test/Ice/binding/AllTests.cpp +@@ -12,7 +12,7 @@ + #include <TestCommon.h> + #include <Test.h> + #include <set> +- ++#include <cstddef> + #include <functional> + + using namespace std; diff --git a/ice-3.4.2-jgoodies.patch b/ice-3.4.2-jgoodies.patch new file mode 100644 index 0000000..ac2c299 --- /dev/null +++ b/ice-3.4.2-jgoodies.patch @@ -0,0 +1,44 @@ +diff --git a/java/config/build.properties b/java/config/build.properties +index 6d53b7b..224b16b 100644 +--- a/java/config/build.properties ++++ b/java/config/build.properties +@@ -31,9 +31,9 @@ lint = unchecked,deprecation + # These properties only need to be set if you want to build the + # standalone jar for the IceGrid GUI. + # +-jgoodies.common = /usr/share/java/jgoodies-common-1.2.0.jar +-jgoodies.forms = /usr/share/java/jgoodies-forms-1.4.1.jar +-jgoodies.looks = /usr/share/java/jgoodies-looks-2.4.1.jar ++jgoodies.common = /usr/share/java/jgoodies-common.jar ++jgoodies.forms = /usr/share/java/jgoodies-forms.jar ++jgoodies.looks = /usr/share/java/jgoodies-looks.jar + #jgoodies.common = C:/Program\ Files/ZeroC/Ice-${ice.version}-ThirdParty/lib/jgoodies-common-1.2.0.jar + #jgoodies.forms = C:/Program\ Files/ZeroC/Ice-${ice.version}-ThirdParty/lib/jgoodies-forms-1.4.1.jar + #jgoodies.looks = C:/Program\ Files/ZeroC/Ice-${ice.version}-ThirdParty/lib/jgoodies-looks-2.4.1.jar +diff --git a/java/src/IceGridGUI/ApplicationPane.java b/java/src/IceGridGUI/ApplicationPane.java +index d35baae..b98766a 100644 +--- a/java/src/IceGridGUI/ApplicationPane.java ++++ b/java/src/IceGridGUI/ApplicationPane.java +@@ -29,7 +29,6 @@ import javax.swing.tree.TreeSelectionModel; + + import com.jgoodies.looks.Options; + import com.jgoodies.looks.plastic.PlasticLookAndFeel; +-import com.jgoodies.looks.windows.WindowsLookAndFeel; + import com.jgoodies.forms.factories.Borders; + + import IceGrid.*; +diff --git a/java/src/IceGridGUI/SimpleInternalFrame.java b/java/src/IceGridGUI/SimpleInternalFrame.java +index 8f3b017..a60689a 100644 +--- a/java/src/IceGridGUI/SimpleInternalFrame.java ++++ b/java/src/IceGridGUI/SimpleInternalFrame.java +@@ -373,8 +373,8 @@ public class SimpleInternalFrame extends JPanel { + UIManager.getColor("SimpleInternalFrame.activeTitleBackground"); + if (c != null) + return c; +- if (SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) +- c = UIManager.getColor("InternalFrame.activeTitleGradient"); ++ /*if (SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) ++ c = UIManager.getColor("InternalFrame.activeTitleGradient");*/ + return c != null + ? c + : UIManager.getColor("InternalFrame.activeTitleBackground"); @@ -0,0 +1 @@ +extension=IcePHP.so @@ -0,0 +1,4 @@ +# This file belongs in the "site-packages" directory of a Python +# installation. It causes the interpreter to add the subdirectory +# listed below to the default module search path. +Ice diff --git a/ice.spec b/ice.spec new file mode 100644 index 0000000..53d402f --- /dev/null +++ b/ice.spec @@ -0,0 +1,838 @@ +# Get Python and Ruby packages into sitearch (see Fedora Wiki) +%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} +%{!?ruby_sitearch: %define ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]')} + +%global php_extdir %(php-config --extension-dir 2>/dev/null || echo %{_libdir}/php4) +%global php_apiver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1) + +Name: ice +Version: 3.4.2 +Release: 3%{?dist} +Summary: ZeroC Object-Oriented middleware + +Group: System Environment/Libraries +License: GPLv2 with exceptions +URL: http://www.zeroc.com/ +Source0: http://zeroc.com/download/Ice/3.4/Ice-%{version}.tar.gz +# Man pages courtesy of Francisco Moya's Debian packages +Source1: ice-3.4.2-man-pages.tar.gz +Source2: icegridgui +Source3: IceGridAdmin.desktop +Source4: Ice-README.Fedora +Source5: glacier2router.conf +Source6: glacier2router.init +Source7: icegridnode.conf +Source8: icegridnode.init +Source9: icegridregistry.conf +Source10: icegridregistry.init +Source11: ice.ini +Source12: ice.pth +# Remove reference to Windows L&F +Patch0: ice-3.4.2-jgoodies.patch +# fix gcc46 issue +Patch1: ice-3.4.2-gcc46.patch +# Add support for the s390/s390x architecture +Patch2: Ice-3.4.0-s390.patch +# don't build demo/test +# TODO: should we keep it or not ? +# significantly reduce compile time but shipping demos could be useful +Patch3: Ice-3.3-dont-build-demo-test.patch +# disable the CSharp interface +Patch4: ice-3.4.1-no-mono.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +# Ice doesn't officially support ppc64 at all +ExcludeArch: ppc64 + +# mono exists only on these +%ifarch %{ix86} x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x +%global with_mono 1 +%endif + +# Some file suffixes we need to grab the right stuff for the file lists +%define soversion 34 + +BuildRequires: db4-devel, expat-devel, openssl-devel, bzip2-devel +BuildRequires: ant, ant-nodeps, jpackage-utils, db4-java +BuildRequires: php, php-devel +BuildRequires: ruby, ruby(abi) = 1.8, ruby-devel +BuildRequires: python-devel +%if 0%{?with_mono} +BuildRequires: mono-core, mono-devel +%endif +BuildRequires: libmcpp-devel >= 2.7.2 +BuildRequires: dos2unix +BuildRequires: java-1.6.0-openjdk-devel +BuildRequires: jgoodies-forms jgoodies-looks jgoodies-common +BuildRequires: /usr/bin/convert +BuildRequires: desktop-file-utils + +%description +Ice is a modern alternative to object middleware such as CORBA or +COM/DCOM/COM+. It is easy to learn, yet provides a powerful network +infrastructure for demanding technical applications. It features an +object-oriented specification language, easy to use C++, C#, Java, +Python, Ruby, PHP, and Visual Basic mappings, a highly efficient +protocol, asynchronous method invocation and dispatch, dynamic +transport plug-ins, TCP/IP and UDP/IP support, SSL-based security, a +firewall solution, and much more. + +# All of the other Ice packages also get built by this SRPM. + +%package servers +Summary: ICE SysV style services +Group: Development/Tools +Requires: ice%{?_isa} = %{version}-%{release} +# Requirements for the users +Requires(pre): shadow-utils%{?isa} +# Requirements for the init.d services +Requires(post): /sbin/chkconfig%{?isa} +Requires(preun): /sbin/chkconfig%{?isa} +Requires(preun): /sbin/service%{?isa} +%description servers +Ice services to run through /etc/rc.d/init.d + +%package devel +Summary: C++ tools for developing Ice applications +Group: Development/Tools +Provides: ice-c++-devel = %{version}-%{release} +Obsoletes: ice-c++-devel < %{version}-%{release} +Requires: ice%{?isa} = %{version}-%{release} +%description devel +Tools for developing Ice applications in C++. + +%package java +Summary: Java runtime for Ice applications +Group: System Environment/Libraries +Requires: java >= 1:1.6.0 +Requires: ice%{?_isa} = %{version}-%{release} +Requires: db4-java%{?_isa} +%description java +The Ice runtime for Java + +%package java-devel +Summary: Java tools for developing Ice Applications +Group: Development/Tools +Requires: ice-java%{?_isa} = %{version}-%{release} +%description java-devel +Tools for developing Ice applications in Java. + +%package -n icegrid-gui +Summary: IceGrid Admin Tool +Group: Development/Tools +Requires: ice-java%{?_isa} = %{version}-%{release} +Requires: jgoodies-forms, jgoodies-looks +Requires: jpackage-utils +%description -n icegrid-gui +Graphical administration tool for IceGrid + +%if 0%{?with_mono} +%package csharp +Summary: C# runtime for Ice applications +Group: System Environment/Libraries +Provides: ice-dotnet = %{version}-%{release} +Obsoletes: ice-dotnet < %{version}-%{release} +Requires: ice%{?_isa} = %{version}-%{release} +Requires: mono-core%{?_isa} >= 1.2.2 +%description csharp +The Ice runtime for C# + +%package csharp-devel +Summary: C# tools for developping Ice applications +Group: Development/Tools +Requires: ice-csharp%{?_isa} = %{version}-%{release} +%description csharp-devel +Tools for developing Ice applications in C#. +%endif + +%package ruby +Summary: Ruby runtime for Ice applications +Group: Development/Tools +Requires: ice%{?_isa} = %{version}-%{release} +Requires: ruby(abi) = 1.8 +%description ruby +The Ice runtime for Ruby applications. + +%package ruby-devel +Summary: Ruby tools for developping Ice applications +Group: Development/Tools +Requires: ice-ruby%{?_isa} = %{version}-%{release} +%description ruby-devel +Tools for developing Ice applications in Ruby. + +%package python +Summary: Python runtime for Ice applications +Group: Development/Tools +Requires: ice%{?_isa} = %{version}-%{release} +Requires: python >= 2.3.4 +%description python +The Ice runtime for Python applications. + +%package python-devel +Summary: Python tools for developping Ice applications +Group: Development/Tools +Requires: ice-python%{?_isa} = %{version}-%{release} +%description python-devel +Tools for developing Ice applications in Python. + +%package php +Summary: PHP runtime for developping Ice applications +Group: System Environment/Libraries +Requires: ice%{?_isa} = %{version}-%{release} +%if %{?php_zend_api:1}%{!?php_zend_api:0} +Requires: php(zend-abi) = %{php_zend_api} +Requires: php(api) = %{php_core_api} +%else +Requires: php-api = %{php_apiver} +%endif +%description php +The Ice runtime for PHP applications. + +%package php-devel +Summary: PHP tools for developping Ice applications +Group: Development/Tools +Requires: ice-php%{?_isa} = %{version}-%{release} +%description php-devel +Tools for developing Ice applications in PHP. + +%prep +%setup -q -n Ice-%{version} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%if ! 0%{?with_mono} +%patch4 -p1 +%endif +%setup -q -n ice-3.4.2-man-pages -T -b 1 +rm -f slice2docbook.1 + +%build +# Set the CLASSPATH correctly for the Java compile +export CLASSPATH=`build-classpath db jgoodies-forms jgoodies-looks` + +# Compile the main Ice runtime +cd ${RPM_BUILD_DIR}/Ice-%{version} +make CXXFLAGS="%{optflags} -fPIC" CFLAGS="%{optflags} -fPIC" embedded_runpath_prefix="" + +# Rebuild the Java ImportKey class +cd ${RPM_BUILD_DIR}/Ice-%{version}/cpp/src/ca +rm *.class +javac ImportKey.java + +# Create the IceGrid icon +cd $RPM_BUILD_DIR/Ice-%{version}/java +cd resources/icons +convert icegrid.ico temp.png +mv temp-8.png icegrid.png +rm temp*.png + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT + +# Do the basic "make install" +cd $RPM_BUILD_DIR/Ice-%{version} +make prefix=$RPM_BUILD_ROOT GACINSTALL=yes GAC_ROOT=$RPM_BUILD_ROOT%{_libdir} embedded_runpath_prefix="" install + +## install java bindings in the right place +mkdir -p ${RPM_BUILD_ROOT}%{_javadir} +mv ${RPM_BUILD_ROOT}/lib/ant-ice.jar $RPM_BUILD_ROOT%{_javadir}/ant-ice-%{version}.jar +ln -s ant-ice-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/ant-ice.jar +mv ${RPM_BUILD_ROOT}/lib/Ice.jar $RPM_BUILD_ROOT%{_javadir}/Ice-%{version}.jar +ln -s Ice-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/Ice.jar +mv ${RPM_BUILD_ROOT}/lib/Freeze.jar $RPM_BUILD_ROOT%{_javadir}/Freeze-%{version}.jar +ln -s Freeze-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/Freeze.jar + +## install IceGrid GUI in the right place +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version} +mv ${RPM_BUILD_ROOT}/lib/IceGridGUI.jar $RPM_BUILD_ROOT%{_datadir}/Ice-%{version} +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps/ +cp -p ${RPM_BUILD_DIR}/Ice-%{version}/java/resources/icons/icegrid.png \ + ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps/ +mkdir -p ${RPM_BUILD_ROOT}%{_bindir} +cp -p %{SOURCE2} ${RPM_BUILD_ROOT}%{_bindir} +sed -i -e "s#DIR#%{_datadir}/Ice-%{version}#" $RPM_BUILD_ROOT%{_bindir}/icegridgui + +%if 0%{?rhel} +desktop-file-install \ + --dir=${RPM_BUILD_ROOT}%{_datadir}/applications \ + --vendor = zeroc \ + %{SOURCE3} +%else +desktop-file-install \ + --dir=${RPM_BUILD_ROOT}%{_datadir}/applications \ + %{SOURCE3} +%endif + +# Move other rpm-specific files into the right place (README, service stuff) +mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir}/Ice-%{version} +cp -p %{SOURCE4} $RPM_BUILD_ROOT/%{_defaultdocdir}/Ice-%{version}/README.Fedora + +## install SysV services configuration +## glacier2router +install -Dp -m0644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/glacier2router.conf +install -Dp -m0755 %{SOURCE6} $RPM_BUILD_ROOT%{_initddir}/glacier2router +## icegridnode +install -Dp -m0644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/icegridnode.conf +install -Dp -m0755 %{SOURCE8} $RPM_BUILD_ROOT%{_initddir}/icegridnode +## icegridregistry +install -Dp -m0644 %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/icegridregistry.conf +install -Dp -m0755 %{SOURCE10} $RPM_BUILD_ROOT%{_initddir}/icegridregistry +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/icegrid + +# "make install" assumes it's going into a directory under /opt. +# Move things to where they should be in an RPM setting (adapted from +# the original ZeroC srpm). +install -p -m0755 -t $RPM_BUILD_ROOT%{_bindir} $RPM_BUILD_ROOT/bin/* +rm -rf $RPM_BUILD_ROOT/bin +mkdir -p $RPM_BUILD_ROOT%{_includedir} +mv $RPM_BUILD_ROOT/include/* ${RPM_BUILD_ROOT}%{_includedir} +mkdir -p $RPM_BUILD_ROOT%{_libdir} +# There are a couple of files that end up installed in /lib, not %%{_libdir}, +# so we try this move too. +mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkgconfig +install -p -m0644 -t $RPM_BUILD_ROOT%{_libdir}/pkgconfig \ + $RPM_BUILD_ROOT/lib/pkgconfig/*.pc +install -p -m0755 -t $RPM_BUILD_ROOT%{_libdir}/ \ + $RPM_BUILD_ROOT/%{_lib}/*.so* +# Move the ImportKey.class file +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version} +mv $RPM_BUILD_ROOT/lib/ImportKey.class ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version} +rm -rf $RPM_BUILD_ROOT/%{_lib} $RPM_BUILD_ROOT/lib + +mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir}/Ice-%{version} +mv $RPM_BUILD_ROOT/help/IceGridAdmin $RPM_BUILD_ROOT%{_defaultdocdir}/Ice-%{version} + +# Copy the man pages into the correct directory +mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 +cp -p $RPM_BUILD_DIR/ice-3.4.2-man-pages/*.1 $RPM_BUILD_ROOT%{_mandir}/man1 + +# Fix the encoding and line-endings of all the IceGridAdmin documentation files +pushd $RPM_BUILD_ROOT%{_defaultdocdir}/Ice-%{version}/IceGridAdmin +chmod a-x * +for f in *.js *.css *.js; +do + dos2unix $f +done +for f in helpman_topicinit.js icegridadmin_navigation.js \ + IceGridAdmin_popup_html.js zoom_pageinfo.js highlight.js; +do + iconv -f ISO88591 -t UTF8 $f -o $f.tmp + mv $f.tmp $f +done +popd + +## Mono bindings +%if 0%{?with_mono} +# .NET spec files (for csharp-devel) -- convert the paths +for f in IceGrid Glacier2 IceBox Ice IceStorm IcePatch2; +do + sed -i -e "s#/lib/#%{_libdir}/#" $RPM_BUILD_ROOT%{_libdir}/pkgconfig/$f.pc + sed -i -e "s#mono_root}/usr#mono_root}#" \ + $RPM_BUILD_ROOT%{_libdir}/pkgconfig/$f.pc + mv $RPM_BUILD_ROOT%{_bindir}/$f.xml \ + $RPM_BUILD_ROOT%{_libdir}/mono/gac/$f/%{version}.*/ + # fix xml files permissions + chmod 0644 $RPM_BUILD_ROOT%{_libdir}/mono/gac/$f/%{version}.*/*.xml +done +%else +# clean some files when building without mono +rm $RPM_BUILD_ROOT%{_bindir}/slice2cs +rm $RPM_BUILD_ROOT%{_mandir}/man1/iceboxnet.exe.1* +rm $RPM_BUILD_ROOT%{_mandir}/man1/slice2cs.1* +%endif + +## install PHP bindings in the right place +install -D -p -m0644 %{SOURCE11} \ + $RPM_BUILD_ROOT%{_sysconfdir}/php.d/%{name}.ini +install -D -p -m0755 ${RPM_BUILD_ROOT}/php/IcePHP.so \ + ${RPM_BUILD_ROOT}%{php_extdir}/IcePHP.so +rm -f ${RPM_BUILD_ROOT}/php/IcePHP.so +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/php +mv ${RPM_BUILD_ROOT}/php/* ${RPM_BUILD_ROOT}%{_datadir}/php + +## install Python and Ruby bindings in the right place +# remove shebangs from python/ruby modules +for f in $RPM_BUILD_ROOT/python/Ice.py $RPM_BUILD_ROOT/ruby/*.rb; +do + grep -v '/usr/bin/env' $f > $f.tmp + mv $f.tmp $f +done +mkdir -p ${RPM_BUILD_ROOT}%{ruby_sitearch} +mv $RPM_BUILD_ROOT/ruby/* ${RPM_BUILD_ROOT}%{ruby_sitearch} +mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch}/Ice +mv ${RPM_BUILD_ROOT}/python/* ${RPM_BUILD_ROOT}%{python_sitearch}/Ice +cp -p %{SOURCE12} $RPM_BUILD_ROOT%{python_sitearch} +# fix permissions for Python/Ruby C extensions libraries +chmod 0755 $RPM_BUILD_ROOT%{python_sitearch}/Ice/IcePy.so* +chmod 0755 $RPM_BUILD_ROOT%{ruby_sitearch}/IceRuby.so* + +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version} +mv $RPM_BUILD_ROOT/config/* ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version} +mv $RPM_BUILD_ROOT/slice ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version} +# Somehow, some files under "slice" end up with executable permissions -- ?? +find ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version} -name "*.ice" | xargs chmod a-x + + +# Move license files into the documentation directory +mkdir -p ${RPM_BUILD_ROOT}%{_defaultdocdir}/Ice-%{version} +mv $RPM_BUILD_ROOT/ICE_LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/Ice-%{version}/ICE_LICENSE +mv $RPM_BUILD_ROOT/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/Ice-%{version}/LICENSE +# Copy in the other files too +cd ${RPM_BUILD_DIR}/Ice-%{version} +cp CHANGES RELEASE_NOTES ${RPM_BUILD_ROOT}%{_defaultdocdir}/Ice-%{version}/ + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root,-) +%{_defaultdocdir}/Ice-%{version} +%doc %{_mandir}/man1/dumpdb.1.gz +%doc %{_mandir}/man1/glacier2router.1.gz +%doc %{_mandir}/man1/icebox.1.gz +%doc %{_mandir}/man1/iceboxadmin.1.gz +%doc %{_mandir}/man1/iceca.1.gz +%doc %{_mandir}/man1/icegridadmin.1.gz +%doc %{_mandir}/man1/icegridnode.1.gz +%doc %{_mandir}/man1/icegridregistry.1.gz +%doc %{_mandir}/man1/icepatch2calc.1.gz +%doc %{_mandir}/man1/icepatch2client.1.gz +%doc %{_mandir}/man1/icepatch2server.1.gz +%doc %{_mandir}/man1/icestormadmin.1.gz +%doc %{_mandir}/man1/slice2html.1.gz +%doc %{_mandir}/man1/transformdb.1.gz +%{_bindir}/dumpdb +%{_bindir}/glacier2router +%{_bindir}/icebox +%{_bindir}/iceboxadmin +%{_bindir}/iceca +%{_bindir}/icegridadmin +%{_bindir}/icegridnode +%{_bindir}/icegridregistry +%{_bindir}/icepatch2calc +%{_bindir}/icepatch2client +%{_bindir}/icepatch2server +%{_bindir}/icestormadmin +%{_bindir}/icestormmigrate +%{_bindir}/slice2html +%{_bindir}/transformdb +%{_libdir}/lib*.so.%{version} +%{_libdir}/lib*.so.%{soversion} +%{_datadir}/Ice-%{version} +# Exclude the stuff that's in IceGrid +%exclude %{_defaultdocdir}/Ice-%{version}/IceGridAdmin +%exclude %{_datadir}/Ice-%{version}/IceGridGUI.jar + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files servers +%defattr(-,root,root,-) +%{_initddir}/icegridregistry +%{_initddir}/icegridnode +%{_initddir}/glacier2router +%config(noreplace) %{_sysconfdir}/icegridregistry.conf +%config(noreplace) %{_sysconfdir}/icegridnode.conf +%config(noreplace) %{_sysconfdir}/glacier2router.conf +%dir %{_localstatedir}/lib/icegrid + +%pre servers +# Following the Wiki instructions ... +getent group iceuser > /dev/null || groupadd -r iceuser +getent passwd iceuser > /dev/null || \ + useradd -r -g iceuser -d %{_localstatedir}/lib/icegrid \ + -s /sbin/nologin -c "IceGrid server user" iceuser +exit 0 + +%post servers +/sbin/chkconfig --add icegridregistry +/sbin/chkconfig --add icegridnode +/sbin/chkconfig --add glacier2router + +%preun servers +if [ $1 = 0 ]; then + /sbin/service icegridregistry stop >/dev/null 2>&1 || : + /sbin/chkconfig --del icegridregistry + /sbin/service icegridnode stop >/dev/null 2>&1 || : + /sbin/chkconfig --del icegridnode + /sbin/service glacier2router stop >/dev/null 2>&1 || : + /sbin/chkconfig --del glacier2router +fi + +%postun servers +if [ "$1" -ge "1" ]; then + /sbin/service icegridregistry condrestart >/dev/null 2>&1 || : + /sbin/service icegridnode condrestart >/dev/null 2>&1 || : + /sbin/service glacier2router condrestart >/dev/null 2>&1 || : +fi + +%files devel +%defattr(-,root,root,-) +%doc %{_mandir}/man1/slice2cpp.1.gz +%doc %{_mandir}/man1/slice2freeze.1.gz +%{_bindir}/slice2cpp +%{_bindir}/slice2freeze +%{_includedir}/Freeze +%{_includedir}/Glacier2 +%{_includedir}/Ice +%{_includedir}/IceBox +%{_includedir}/IceGrid +%{_includedir}/IcePatch2 +%{_includedir}/IceSSL +%{_includedir}/IceStorm +%{_includedir}/IceUtil +%{_includedir}/IceXML +%{_includedir}/Slice +%{_libdir}/lib*.so + +%files java +%defattr(-,root,root,-) +%{_javadir}/*.jar + +%files -n icegrid-gui +%defattr(-,root,root,-) +%{_datadir}/Ice-%{version}/IceGridGUI.jar +%attr(755,root,root) %{_bindir}/icegridgui +%doc %{_mandir}/man1/icegridgui.1.gz +%{_datadir}/applications/* +%{_datadir}/icons/hicolor/48x48/apps/icegrid.png +%doc %{_defaultdocdir}/Ice-%{version}/IceGridAdmin + +%files java-devel +%defattr(-,root,root,-) +%doc %{_mandir}/man1/slice2java.1.gz +%doc %{_mandir}/man1/slice2freezej.1.gz +%{_bindir}/slice2java +%{_bindir}/slice2freezej +%{_javadir}/ant-ice-%{version}.jar +%{_javadir}/ant-ice.jar + +%if 0%{?with_mono} +%files csharp +%defattr(-,root,root,-) +%{_libdir}/mono/Glacier2/ +%{_libdir}/mono/Ice/ +%{_libdir}/mono/IceBox/ +%{_libdir}/mono/IceGrid/ +%{_libdir}/mono/IcePatch2/ +%{_libdir}/mono/IceStorm/ +%{_libdir}/mono/gac/Glacier2 +%{_libdir}/mono/gac/Ice +%{_libdir}/mono/gac/IceBox +%{_libdir}/mono/gac/IceGrid +%{_libdir}/mono/gac/IcePatch2 +%{_libdir}/mono/gac/IceStorm +%{_libdir}/mono/gac/policy* +%{_bindir}/iceboxnet.exe +%doc %{_mandir}/man1/iceboxnet.exe.1.gz + +%files csharp-devel +%defattr(-,root,root,-) +%doc %{_mandir}/man1/slice2cs.1.gz +%{_bindir}/slice2cs +%{_libdir}/pkgconfig/Glacier2.pc +%{_libdir}/pkgconfig/Ice.pc +%{_libdir}/pkgconfig/IceBox.pc +%{_libdir}/pkgconfig/IceGrid.pc +%{_libdir}/pkgconfig/IcePatch2.pc +%{_libdir}/pkgconfig/IceStorm.pc +%endif + +%files python +%defattr(-,root,root,-) +%{python_sitearch}/Ice/ +%{python_sitearch}/%{name}.pth + +%files python-devel +%defattr(-,root,root,-) +%{_bindir}/slice2py +%doc %{_mandir}/man1/slice2py.1.gz + +%files ruby +%defattr(-,root,root,-) +%{ruby_sitearch}/* + +%files ruby-devel +%defattr(-,root,root,-) +%{_bindir}/slice2rb +%doc %{_mandir}/man1/slice2rb.1.gz + +%files php +%defattr(-,root,root,-) +%{php_extdir}/IcePHP.so +%{_datadir}/php/* +%config(noreplace) %{_sysconfdir}/php.d/ice.ini + +%files php-devel +%defattr(-,root,root,-) +%{_bindir}/slice2php +%{_mandir}/man1/slice2php.1.gz + + +%changelog +* Wed Aug 31 2011 Haïkel Guémar <hguemar@fedoraproject.org> - 3.4.2-3 +- remove arch-dependency on java requires + +* Sun Aug 28 2011 Haïkel Guémar <hguemar@fedoraproject.org> - 3.4.2-2 +- ice-java: bump java requires epoch + +* Fri Aug 05 2011 Haïkel Guémar <hguemar@fedoraproject.org> - 3.4.2-1 +- upstream 3.4.2 +- refresh gcc 4.6/jgoodies patch +- retrieved updated debian man pages +- fix permissions +- use %%{?_isa} for arch-dependent requires +- spec cleanup + +* Tue Mar 22 2011 Dan Horák <dan[at]danny.cz> - 3.4.1-2 +- conditionalize CSharp/Mono support + +* Sat Feb 12 2011 Haïkel Guémar <hguemar@fedoraproject.org> - 3.4.1-1 +- upstream 3.4.1 +- fix gcc46 build issue +- some spec cleaning and patches revamping (dropped: java, openssl) +- updated man pages from Francisco Moya Debian's package + +* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 3.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Sun Jun 20 2010 Dan Horák <dan[at]danny.cz> - 3.4.0-2 +- add support for the s390/s390x architectures + +* Fri Mar 12 2010 Mary Ellen Foster <mefoster at gmail.com> - 3.4.0-1 +- Update to new upstream release -- complete release notes at + http://www.zeroc.com/download/Ice/3.4/Ice-3.4.0-RELEASE_NOTES +- Of particular note: + - There is a completely new AMI facility for C++, C#, Java, and Python + - The PHP support has changed significantly (note the new ice-php-devel + package). + - The slice2docbook command is no longer included + - The Java2 mapping has been removed -- Java5 only + +* Tue Feb 16 2010 Mary Ellen Foster <mefoster at gmail.com> - 3.3.1-7 +- Add a couple of changes to allow the RPM to be rebuilt on RHEL + (bugs 511068, 565411) + +* Mon Feb 1 2010 Mary Ellen Foster <mefoster at gmail.com> - 3.3.1-6 +- Fix the user name in the server scripts (bug 557411) + +* Sat Aug 22 2009 Tomas Mraz <tmraz@redhat.com> - 3.3.1-5 +- rebuilt with new openssl + +* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Jul 13 2009 Remi Collet <Fedora@FamilleCollet.com> - 3.3.1-3 +- rebuild for new PHP 5.3.0 ABI (20090626) + ice-php53.patch +- add PHP ABI check +- use php_extdir + +* Wed Jul 8 2009 Mary Ellen Foster <mefoster at gmail.com> - 3.3.1-2 +- Include upstream patches: + - slice2html creates bad links + - slice compilers abort on symlinks and double backslashes + - random endpoint selection in .Net + See http://www.zeroc.com/forums/patches/ for details + +* Wed Mar 25 2009 Mary Ellen Foster <mefoster at gmail.com> - 3.3.1-1 +- Update to new upstream 3.3.1 release + - Includes all previous patches + - Support for serializable Java and .NET types in your Slice definitions + - Ability to use Ice for Java in an applet and to load IceSSL files, such + as keystores, from class path resources +- Details at http://www.zeroc.com/download/Ice/3.3/Ice-3.3.1-RELEASE_NOTES + +* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 23 2009 Mary Ellen Foster <mefoster at gmail.com> - 3.3.0-13 +- Explicitly BuildRequire OpenJDK to fix a build failure on rawhide +- Fix author name in previous change log +- No longer include ant.jar in the CLASSPATH for building (unnecessary) + +* Fri Feb 6 2009 Mary Ellen Foster <mefoster at gmail.com> - 3.3.0-12 +- Include Debian patch for GCC 4.4 + +* Sat Jan 17 2009 Tomas Mraz <tmraz@redhat.com> - 3.3.0-11 +- rebuild with new openssl + +* Sat Jan 10 2009 Dennis Gilmore <dennis@ausil.us> - 3.3.0-10 +- ExcludeArch sparc64 no mono there + +* Thu Dec 4 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 3.3.0-9 +- Rebuild for Python 2.6 + +* Thu Dec 4 2008 <mefoster at gmail.com> - 3.3.0-8 +- Add all accumulated upstream patches + +* Thu Dec 4 2008 <mefoster at gmail.com> - 3.3.0-7 +- (Tiny) patch to support Python 2.6 + +* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 3.3.0-6 +- Rebuild for Python 2.6 + +* Tue Aug 12 2008 Mary Ellen Foster <mefoster at gmail.com> 3.3.0-5 +- Explicitly create build root so it builds on F10 +- Patch to build against DB4.7 + +* Wed Jul 30 2008 Mary Ellen Foster <mefoster at gmail.com> 3.3.0-4 +- Re-add .pth file -- the alternative method involves editing auto-generated + files that say "don't edit" and I don't want to break other parts of Ice + +* Fri Jun 27 2008 Mary Ellen Foster <mefoster at gmail.com> 3.3.0-3 +- Bump release to fix tag problem and bad date +- Add dist back to release field + +* Wed Jun 25 2008 Mary Ellen Foster <mefoster at gmail.com> 3.3.0-2 +- Add patch from ZeroC + +* Mon Jun 9 2008 Mary Ellen Foster <mefoster at gmail.com> 3.3.0-1 +- Update for 3.3 final +- Fix ppc64 issues with directories in Mono .pc files (I hope) +- Incorporate patches and man pages from Debian package + +* Tue May 06 2008 Mary Ellen Foster <mefoster at gmail.com> 3.3-0.1.b +- Update for 3.3 beta prerelease +- Fix Python sitelib/sitearch issues + +* Fri Feb 22 2008 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-17 +- Improved, less invasive patch based on the Debian one + +* Fri Feb 22 2008 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-16 +- Add includes so that it compiles with GCC 4.3 + +* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 3.2.1-15 +- Autorebuild for GCC 4.3 + +* Wed Dec 05 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-14 +- Version bump to rebuild because of changed OpenSSL in rawhide + +* Tue Nov 20 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-13 +- Enable the IceGrid GUI +- Fix a problem with Python on 64-bit systems (bz #392751) +- Incorporate one more Mono patch from ZeroC + +* Tue Oct 30 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-12 +- Put the slice2java classes into a .jar file instead of as bare classes +- Incorporate all Ice 3.2.1 patches from ZeroC +- Fix templates path in icegridregistry.conf + +* Fri Sep 7 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-11 +- Also add Obsoletes: for the old zeroc names +- Fix bad date in changelog + +* Wed Aug 29 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-9 +- Add "with exceptions" to license tag +- Minor typo corrections in README.Fedora +- Move ruby sitearch files out of an "Ice/" subdirectory so that they're + actually useful + +* Tue Aug 28 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-8 +- Remove parallel make to see if that fixes build errors + +* Mon Aug 27 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-7 +- Fix over-zealous patch in csharp IceBox Makefile + +* Mon Aug 27 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-6 +- Put IcePy.so* into sitearch, not sitelib +- Use %%ifarch in python file list to avoid duplicate warnings +- Actually use gacutil for the Mono dlls instead of faking it + +* Fri Aug 24 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-5 +- Clean up packaging of icegridgui: it's a gui app, so we should treat it as + such (NB: building this package is still disabled by default because it needs + jgoodies) +- Actually create the working directory for the Ice services +- Remove redundant requires on java-devel and csharp-devel packages +- Fix file list for python package to own directories too +- Modified the README to accurately reflect what's in the Fedora package + +* Thu Aug 23 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-4 +- Whoops, ruby(abi) doesn't pull in ruby ... +- Redirect getent output to /dev/null +- Try again to remove execute permission on all *.ice files (????) +- Move ImportKey.class out of bin and into share (not sure what it does, but I'm + pretty sure it doesn't belong in bin!) + +* Wed Aug 22 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-3 +- Changed BuildRequires on ruby to ruby(abi) = 1.8 +- Fixed all dependencies between subpackages: everything requires the base + package, and -devel packages should all require their corresponding non-devel + package now +- Made ice-csharp require pkgconfig +- Modified the user/group creation process based on the wiki +- Removed ldconfig for ice-c++-devel subpackage +- Made the python_sitelib subdirectory owned by ice-python +- Removed executable permission on all files under slice (how did that happen?) +- Fixed typo on ice-csharp group +- Changed license tag to GPLv2 +- Removed macros in changelog +- Set CFLAGS as well as CPPFLAGS for make so that building icecpp gets the + correct flags too +- Renamed ice-c++-devel to ice-devel +- Added Provides: for ice-c++-devel and ice-dotnet for people moving from the + ZeroC RPMs +- Also don't build "test" or "demo" for IceCS + +* Sun Aug 18 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-2 +- ExcludeArch ppc64 +- Fix one more hard-coding problem for x86_64 + +* Thu Aug 16 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.1-1 +- Update to 3.2.1 + +* Wed Aug 1 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.0-7 +- Fixed arch-specific issues: + - %%ifnarch ppc64 in a lot of places; it doesn't have db4-java or mono-core, + so no Java or CSharp packages + - Replaced one literal "lib" with %%{_lib} +- Added IceGrid registry patch from ZeroC forum +- Don't build "test" or "demo" subdirectories +- Use "/sbin/ldconfig" instead of %%{_sbindir} because that's /usr/sbin (also + for other things like /sbin/service etc) +- Removed useless "dotnetversion" define (it's the same as "version") +- Remove executable bit on all "*.ice" files (it gets set somehow on a few) + +* Tue Jul 31 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.0-6 +- Updated to incorporate more suggestions from Mamoru Tasaka (sorry for the delay!) +- Include Java and C# stuff in the single SRPM (NB: they'll no longer be noarch) + +* Mon Jul 9 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.0-5 +- Updated following review comments from Mamoru Tasaka +- Renamed file to "ice.spec" +- Use %%{_libdir} instead of literal "lib"/"lib64" (not yet tested on 64-bit + system) +- Changed "make" calls to use the correct compiler flags (including -fPIC) +- Changed "cp" to "cp -p" everywhere for timestamps +- Use more macros instead of hard-coded directory names: + %%_prefix, %%_libdir, %%_initrddir, %%_localstatedir, %%_sbindir +- Un-excluded *.pyo files + +* Wed Jun 13 2007 Mary Ellen foster <mefoster at gmail.com> 3.2.0-4 +- Removed cruft so that it no longer tries to build Java stuff (whoops) + +* Wed Apr 18 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.0-3 +- Use RPM macros instead of /etc and /usr/bin (Thanks to Peter Lemenkov) +- Suggestions from ZeroC forum (http://zeroc.com/forums/showthread.php?t=3095): + - Use Python site-packages directory + - Create "iceuser" user + - Split /etc/init.d services into a separate sub-package +- Follow guidelines from Fedora wiki about packaging Ruby + - Use Ruby site-arch directory + - Depend on ruby(abi) +- Make sure to compile all Java files with -source 1.4 -target 1.4 + +* Wed Apr 11 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.0-2 +- Remove "assert" in Java classes for compilation with Java 1.4 + +* Fri Mar 30 2007 Mary Ellen Foster <mefoster at gmail.com> 3.2.0-1 +- Initial spec, based on spec distributed by ZeroC diff --git a/icegridgui b/icegridgui new file mode 100755 index 0000000..93e8976 --- /dev/null +++ b/icegridgui @@ -0,0 +1,5 @@ +#!/bin/sh + +exec java \ + -cp `build-classpath Ice jgoodies-looks jgoodies-forms`:DIR/IceGridGUI.jar \ + IceGridGUI.Main "$@" diff --git a/icegridnode.conf b/icegridnode.conf new file mode 100644 index 0000000..4d2efd3 --- /dev/null +++ b/icegridnode.conf @@ -0,0 +1,48 @@ +# +# Sample configuration file for the IceGrid node daemon +# + +# +# Proxy to the IceGrid registry +# +Ice.Default.Locator=DemoIceGrid/Locator:tcp -h localhost -p 4061 +#Ice.Default.Locator=DemoIceGrid/Locator:ssl -h localhost -p 4062 + +# +# The name of this node; must be unique within an IceGrid deployment +# +IceGrid.Node.Name=node1 + +# +# The node object adapter listens on the loopback interface using an +# OS-assigned port +# +# These endpoints must be accessible to IceGrid registries. +# +# To listen on an additional interface add an additional endpoint with +# -h <name | IP address> or remove -h localhost to listen on all +# interfaces. Note that access to these endpoints can pose a security +# risk (remote code execution) and therefore these endpoints should be +# secured. See the Ice manual for more information. +# +IceGrid.Node.Endpoints=tcp -h localhost + +# +# The directory where the IceGrid node maintains its data +# (server configuration files etc.) +# This directory must exist when icegridnode starts +# +IceGrid.Node.Data=/var/lib/ice/icegrid/node1 + +# +# Redirect the servers'stdout and stderr to files in this directory: +# +IceGrid.Node.Output=/var/lib/ice/icegrid/node1 +#IceGrid.Node.RedirectErrToOut=1 + +# +# Logging to syslog +# +Ice.UseSyslog=1 +Ice.ProgramName=icegridnode (DemoIceGrid node1) +IceGrid.Node.Trace.Replica=2 diff --git a/icegridnode.init b/icegridnode.init new file mode 100644 index 0000000..f400d11 --- /dev/null +++ b/icegridnode.init @@ -0,0 +1,111 @@ +#!/bin/bash +# +# Copyright (c) 2007-2010 ZeroC, Inc. All rights reserved. +# +# icegridnode This shell script takes care of starting and +# stopping the icegridnode daemon. +# +# chkconfig: - 61 75 +# description: The IceGrid node daemon. \ +# IceGrid is the server deployment and monitoring for the Internet \ +# Communications Engine (Ice). An IceGrid domain consists of one master \ +# registry, zero or more slave registries, and zero or more IceGrid nodes. + +# +# Source function library. +# +. /etc/init.d/functions + +# +# The IceGrid node user; root is allowed, but not necessary, therefore +# it is recommended to use a non-root account. +# +user=iceuser + +# +# Ask for a password at startup? +# +prompt=no + +# +# The IceGrid node configuration file +# +nodeconf="/etc/icegridnode.conf" + +prog="/usr/bin/icegridnode" + +progbase=${prog##*/} +pidfile=/var/run/$progbase.pid + +options="--daemon --pidfile $pidfile --Ice.Config=$nodeconf" + +RETVAL=0 + +start() { + if [ "${prompt:-}" = "yes" ] + then + echo $"Starting $progbase: " + INITLOG_ARGS= # clears -q + else + echo -n $"Starting $progbase: " + fi + + daemonoptions="--pidfile $pidfile" + if [ "$user" != "root" ] + then + daemonoptions="$daemonoptions --user $user" + + if [ ! -e $pidfile ] + then + touch $pidfile + fi + chown $user $pidfile + fi + + daemon $daemonoptions $prog $options + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progbase + return $RETVAL +} + +stop() { + echo -n $"Shutting down $progbase: " + killproc -p $pidfile $prog + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progbase + return $RETVAL +} + + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $progbase + RETVAL=$? + ;; + restart|reload) + stop + start + RETVAL=$? + ;; + condrestart) + if [ -f /var/lock/subsys/$progbase ]; then + stop + start + RETVAL=$? + fi + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart|status}" + exit 1 +esac + +exit $RETVAL diff --git a/icegridregistry.conf b/icegridregistry.conf new file mode 100644 index 0000000..e64303a --- /dev/null +++ b/icegridregistry.conf @@ -0,0 +1,70 @@ +# +# Sample configuration file for the IceGrid registry daemon +# + +# +# The IceGrid instance name; must be unique, to distinguish several +# IceGrid deployments +# +IceGrid.InstanceName=DemoIceGrid + +# +# Client object adapter: listens on the loopback interface +# IANA-registered TCP ports for the IceGrid registry: +# - 4061 (insecure) +# - 4062 (secure, using SSL) +# +# These endpoints must be accessible to Ice clients and servers as +# well as the IceGrid administrative utilities. +# +# To listen on an additional interface add an additional endpoint with +# -h <name | IP address> or remove -h localhost to listen on all +# interfaces. +# +IceGrid.Registry.Client.Endpoints=tcp -p 4061 -h localhost +#IceGrid.Registry.Client.Endpoints=ssl -p 4062 -h localhost +#IceGrid.Registry.Client.Endpoints=tcp -p 4061 -h localhost:ssl -p 4062 -h localhost + +# +# Server and Internal object adapters: listens on the loopback +# interface using an OS-assigned port number. +# +# The Server endpoints must be accessible to Ice servers deployed on +# IceGrid nodes or to Ice servers using IceGrid dynamic +# registration. The Internal endpoints must be accessible to IceGrid +# nodes. +# +# To listen on an additional interface add an additional endpoint with +# -h <name | IP address> or remove -h localhost to listen on all +# interfaces. Note that access to these endpoints can pose a security +# risk (remote code execution) and therefore these endpoints should be +# secured. See the Ice manual for more information. +# +IceGrid.Registry.Server.Endpoints=tcp -h localhost +IceGrid.Registry.Internal.Endpoints=tcp -h localhost + +# +# The registry DB home; must exist when icegridregistry starts +# +IceGrid.Registry.Data=/var/lib/ice/icegrid/registry + +# +# Authentication/authorization +# With NullPermissionsVerifier, any password is accepted (not recommended +# for production) +# +IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier +IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier + +# +# Default templates +# +IceGrid.Registry.DefaultTemplates=/usr/share/Ice-3.4.1/templates.xml + +# +# Logging to syslog +# +Ice.UseSyslog=1 +Ice.ProgramName=icegridregistry (DemoIceGrid Master) +IceGrid.Registry.Trace.Node=1 +IceGrid.Registry.Trace.Replica=1 diff --git a/icegridregistry.init b/icegridregistry.init new file mode 100644 index 0000000..1e9eae9 --- /dev/null +++ b/icegridregistry.init @@ -0,0 +1,111 @@ +#!/bin/bash +# +# Copyright (c) 2007-2010 ZeroC, Inc. All rights reserved. +# +# icegridregistry This shell script takes care of starting and +# stopping the icegridregistry daemon. +# +# chkconfig: - 60 76 +# description: The IceGrid registry daemon. \ +# IceGrid is the server deployment and monitoring for the Internet \ +# Communications Engine (Ice). An IceGrid domain consists of one master \ +# registry, zero or more slave registries, and zero or more IceGrid nodes. + +# +# Source function library. +# +. /etc/init.d/functions + +# +# The IceGrid registry user; root is allowed, but not necessary, therefore +# it is recommended to use a non-root account. +# +user=iceuser + +# +# Ask for a password at startup? +# +prompt=no + +# +# The IceGrid registry configuration file +# +registryconf="/etc/icegridregistry.conf" + +prog="/usr/bin/icegridregistry" + +progbase=${prog##*/} +pidfile=/var/run/$progbase.pid + +options="--daemon --pidfile $pidfile --Ice.Config=$registryconf" + +RETVAL=0 + +start() { + if [ "${prompt:-}" = "yes" ] + then + echo $"Starting $progbase: " + INITLOG_ARGS= # clears -q + else + echo -n $"Starting $progbase: " + fi + + daemonoptions="--pidfile $pidfile" + if [ "$user" != "root" ] + then + daemonoptions="$daemonoptions --user $user" + + if [ ! -e $pidfile ] + then + touch $pidfile + fi + chown $user $pidfile + fi + + daemon $daemonoptions $prog $options + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progbase + return $RETVAL +} + +stop() { + echo -n $"Shutting down $progbase: " + killproc -p $pidfile $prog + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progbase + return $RETVAL +} + + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $progbase + RETVAL=$? + ;; + restart|reload) + stop + start + RETVAL=$? + ;; + condrestart) + if [ -f /var/lock/subsys/$progbase ]; then + stop + start + RETVAL=$? + fi + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart|status}" + exit 1 +esac + +exit $RETVAL |