summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2011-12-28 07:44:11 +0100
committerRemi Collet <fedora@famillecollet.com>2011-12-28 07:44:11 +0100
commit02e36a99a9739e660a17243fc442380284a81d99 (patch)
tree4a6c0be04616519a0c642e658277aa43bd15b666
ice: import from f16
-rw-r--r--Ice-3.3-dont-build-demo-test.patch24
-rw-r--r--Ice-3.4.0-s390.patch21
-rw-r--r--Ice-README.Fedora283
-rw-r--r--IceGridAdmin.desktop10
-rw-r--r--Makefile4
-rw-r--r--glacier2router.conf104
-rw-r--r--glacier2router.init110
-rw-r--r--ice-3.4.1-no-mono.patch16
-rw-r--r--ice-3.4.2-gcc46.patch100
-rw-r--r--ice-3.4.2-jgoodies.patch44
-rw-r--r--ice.ini1
-rw-r--r--ice.pth4
-rw-r--r--ice.spec838
-rwxr-xr-xicegridgui5
-rw-r--r--icegridnode.conf48
-rw-r--r--icegridnode.init111
-rw-r--r--icegridregistry.conf70
-rw-r--r--icegridregistry.init111
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");
diff --git a/ice.ini b/ice.ini
new file mode 100644
index 0000000..f9c9870
--- /dev/null
+++ b/ice.ini
@@ -0,0 +1 @@
+extension=IcePHP.so
diff --git a/ice.pth b/ice.pth
new file mode 100644
index 0000000..4c67afd
--- /dev/null
+++ b/ice.pth
@@ -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