%define majversion %(echo %version | cut -d. -f 1-2) %define php_extensiondir %(php-config --extension-dir) %define ruby_sitelibdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]') %define ruby_sitearchdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]') %define ruby_version %(ruby -rrbconfig -e 'puts Config::CONFIG["ruby_version"]') Name: Ice Version: 3.4.0 Release: 2mamba Summary: The Internet Communications Engine (Ice) Group: System/Libraries Vendor: openmamba Distribution: openmamba Packager: gil URL: http://www.zeroc.com/ Source0: http://zeroc.com/download/Ice/%{majversion}/Ice-%{version}.tar.gz # from http://www.zeroc.com/download/Ice/3.4/ice-%{version}-1.src.rpm Source1: Ice-rpmbuild-%{version}.tar.gz Source2: icegridgui Source3: IceGridAdmin.desktop Source4: Ice-3.3.0-man-pages.tar.gz Patch0: Ice-3.3.0-dont-build-demo-test.patch Patch1: Ice-3.4.0-java-build.patch Patch2: Ice-3.3.1-jgoodies.patch Patch3: Ice-3.3.1-openssl.patch Patch4: Ice-3.3.1-rpmbuild-change-user.patch # http://www.zeroc.com/forums/attachments/patches/745d1268183564-patch-1-ice-3-4-0-slice2cpp-stream-issue-patch-stream.txt Patch5: patch-stream.txt Patch6: Ice-3.4.0-s390.patch License: GPL BuildRequires: apache-ant BuildRequires: apache-ant-nodeps BuildRequires: ImageMagick BuildRequires: java-bdb48 BuildRequires: java-openjdk BuildRequires: java-proguard ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel BuildRequires: jgoodies-forms13 BuildRequires: jgoodies-looks BuildRequires: jpackage-utils BuildRequires: libbzip2-devel BuildRequires: libdb-devel BuildRequires: libexpat-devel BuildRequires: libgcc BuildRequires: libmcpp-devel BuildRequires: libopenssl-devel BuildRequires: libpython-devel BuildRequires: libstdc++6-devel BuildRequires: mono-core BuildRequires: ruby-devel ## AUTOBUILDREQ-END BuildRequires: libqt4-devel BuildRequires: mono-devel BuildRequires: openssl BuildRequires: php-devel BuildRequires: ruby-devel BuildRoot: %{_tmppath}/%{name}-%{version}-root %description The Internet Communications Engine (Ice) is a modern object-oriented middleware with support for C++, .NET, Java, Python, Objective-C, Ruby, and PHP. Ice is used in many mission-critical projects by companies all over the world. Ice is easy to learn, yet provides a powerful network infrastructure and vast array of features for demanding technical applications. Ice is free software, available with full source, and released under the terms of GNU General Public License (GPL). Commercial licenses are available for customers who wish to use Ice for closed-source software. %package devel Summary: Tools for developing Ice applications in C++ Group: Development/Tools Requires: %{name} = %{version}-%{release} %description devel The Internet Communications Engine (Ice). This package contains tools for developing Ice applications in C++. %package -n mono-Ice Summary: The Ice runtime for C# Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: mono-core %description -n mono-Ice The Internet Communications Engine (Ice). This package contains the Ice runtime for C#. %package -n mono-Ice-devel Summary: Tools for developing Ice applications in C# Group: Development/Tools Requires: mono-Ice = %{version}-%{release} %description -n mono-Ice-devel The Internet Communications Engine (Ice). This package contains tools for developing Ice applications in C#+. %package -n icegrid-gui Summary: IceGrid Admin Tool Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: java-Ice = %{version}-%{release} Requires: jgoodies-forms13 Requires: jgoodies-looks Requires: jpackage-utils %description -n icegrid-gui The Internet Communications Engine (Ice). This package contains graphical administration tool for IceGrid. %package -n java-Ice Summary: The Ice runtime for Java Group: Development/Tools Requires: %{name} = %{version}-%{release} %description -n java-Ice The Internet Communications Engine (Ice). This package contains the Ice runtime for Java. %package -n php-Ice Summary: The Ice runtime for Java Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: php %description -n php-Ice The Internet Communications Engine (Ice). This package contains the Ice runtime for PHP applications. %package -n python-Ice Summary: The Ice runtime for Python applications Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: python %description -n python-Ice The Internet Communications Engine (Ice). This package contains the Ice runtime for Python applications. %package -n ruby-Ice Summary: The Ice runtime for Ruby applications Group: Development/Tools Requires: %{name} = %{version}-%{release} Requires: ruby %description -n ruby-Ice The Internet Communications Engine (Ice). This package contains the Ice runtime for Ruby applications. %package servers Summary: Ice services to run through /etc/rc.d/init.d Group: Development/Tools Requires: %{name} = %{version}-%{release} %description servers The Internet Communications Engine (Ice). This package contains Ice services to run through /etc/rc.d/init.d. %prep %setup -q for p in $(find . -name "*.py"); do # sed -i 's|#!/usr/bin/python|#!%{__python}|' $p sed -i 's|#!/usr/bin/env python|#!%{__python}|' $p # sed -i 's|#!python|#!%{__python}|' $p sed -i 's|#!/usr/local/bin/python2.1|#!%{__python}|' $p sed -i 's|#!/usr/local/bin/python|#!%{__python}|' $p done sed -i 's|#!/usr/local/bin/python|#!%{__python}|' %{_builddir}/Ice-%{version}/cpp/src/ca/iceca for r in $(find . -name "*.rb"); do sed -i 's|#!/usr/bin/env ruby|#!/usr/bin/ruby|' $r done %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch5 -p1 %patch6 -p1 %setup -q -n Ice-rpmbuild-%{version} -T -b 1 %patch4 -p1 %setup -q -n Ice-3.3.0-man-pages -T -b 4 rm -f slice2docbook.1 %build unset JAVA_HOME export JAVA_HOME=%{_jvmdir}/java-openjdk unset QT_HOME || : ; source /etc/profile.d/libqt4.sh export PYTHON_VERSION=python2.6 CPPFLAGS=-I%{_qt4_headerdir} LIBS="-lQtCore -lQtSql" export CLASSPATH="" CLASSPATH=$CLASSPATH:$(build-classpath db ant/ant-nodeps jgoodies-forms13 jgoodies-looks proguard) cd %{_builddir}/Ice-%{version} make CXXFLAGS="%{optflags} -fPIC" CFLAGS="%{optflags} -fPIC" embedded_runpath_prefix="" DB_FLAGS="-I%{_includedir}/db4" # rebuild the Java ImportKey class cd %{_builddir}/Ice-%{version}/cpp/src/ca rm -rf *.class $JAVA_HOME/bin/javac ImportKey.java cd %{_builddir}/Ice-%{version}/java cd resources/icons convert icegrid.ico temp.png mv temp-8.png icegrid.png rm -rf temp*.png %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" cd %{_builddir}/Ice-%{version}/ make prefix=%{buildroot} GACINSTALL=yes GAC_ROOT=%{buildroot}%{_libdir} embedded_runpath_prefix="" install # java mkdir -p %{buildroot}%{_javadir} mv %{buildroot}/lib/ant-ice.jar %{buildroot}%{_javadir}/ant-ice-%{version}.jar mv %{buildroot}/lib/Ice.jar %{buildroot}%{_javadir}/Ice-%{version}.jar mv %{buildroot}/lib/Freeze.jar %{buildroot}%{_javadir}/Freeze-%{version}.jar ( cd %{buildroot}%{_javadir}/ for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"` done ) mkdir -p %{buildroot}%{_datadir}/Ice-%{version} mv %{buildroot}/lib/IceGridGUI.jar %{buildroot}%{_datadir}/Ice-%{version} mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/ install -pm 644 %{_builddir}/Ice-%{version}/java/resources/icons/icegrid.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/ mkdir -p %{buildroot}%{_datadir}/pixmaps ln -sf ../icons/hicolor/48x48/apps/icegrid.png \ %{buildroot}%{_datadir}/pixmaps/icegrid.png mkdir -p %{buildroot}%{_bindir} install -pm 755 %{SOURCE2} %{buildroot}%{_bindir} sed -i -e "s#DIR#%{_datadir}/Ice-%{version}#" %{buildroot}%{_bindir}/icegridgui mkdir -p %{buildroot}%{_datadir}/applications desktop-file-install --mode=644 --dir=%{buildroot}%{_datadir}/applications %{SOURCE3} mkdir -p %{buildroot}%{_defaultdocdir}/Ice-%{version} cp -p %{_builddir}/Ice-rpmbuild-%{version}/ice.ini %{buildroot}/ice.ini # servers mkdir -p %{buildroot}%{_sysconfdir} cp -p %{_builddir}/Ice-rpmbuild-%{version}/*.conf %{buildroot}%{_sysconfdir} mkdir -p %{buildroot}%{_initrddir} for i in icegridregistry icegridnode glacier2router ; do cp -p %{_builddir}/Ice-rpmbuild-%{version}/$i.redhat %{buildroot}%{_initrddir}/$i done mkdir -p %{buildroot}%{_localstatedir}/lib/icegrid mkdir -p %{buildroot}%{_localstatedir}/lib/ice/icegrid/node1 mkdir -p %{buildroot}%{_localstatedir}/lib/ice/icegrid/registry mkdir -p %{buildroot}%{_bindir} mv %{buildroot}/bin/* %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_includedir} mv %{buildroot}/include/* %{buildroot}%{_includedir} mkdir -p %{buildroot}%{_libdir} mv %{buildroot}/%{_lib}/* %{buildroot}%{_libdir} || true mv %{buildroot}/lib/* %{buildroot}%{_libdir} || true mkdir -p %{buildroot}%{_defaultdocdir}/Ice-%{version} mv %{buildroot}/help/IceGridAdmin %{buildroot}%{_defaultdocdir}/Ice-%{version} cd %{buildroot}%{_defaultdocdir}/Ice-%{version}/IceGridAdmin chmod a-x * for f in *.js *.css; do dos2unix $f done for f in helpman_topicinit.js icegridadmin_navigation.js IceGridAdmin_popup_html.js zoom_pageinfo.js; do iconv -f ISO88591 -t UTF8 $f -o $f.tmp mv $f.tmp $f done # csharp for f in IceGrid Glacier2 IceBox Ice IceStorm IcePatch2; do sed -i -e "s#/lib/#%{_libdir}/#" %{buildroot}%{_libdir}/pkgconfig/$f.pc sed -i -e "s#mono_root}/usr#mono_root}#" %{buildroot}%{_libdir}/pkgconfig/$f.pc mv %{buildroot}%{_bindir}/$f.xml %{buildroot}%{_libdir}/mono/gac/$f/%{version}.*/ done # php mkdir -p %{buildroot}%{_sysconfdir}/php mv %{buildroot}/ice.ini %{buildroot}%{_sysconfdir}/php mkdir -p %{buildroot}%{php_extensiondir} mv %{buildroot}/php/IcePHP.so %{buildroot}%{php_extensiondir} mkdir -p %{buildroot}%{_libdir}/php mv %{buildroot}/php/* %{buildroot}%{_libdir}/php for f in %{buildroot}/python/Ice.py %{buildroot}/ruby/*.rb; do grep -v '/usr/bin/env' $f > $f.tmp mv $f.tmp $f done # ruby mkdir -p %{buildroot}%{ruby_sitearchdir} mv %{buildroot}/ruby/* %{buildroot}%{ruby_sitearchdir} # python mkdir -p %{buildroot}%{python_sitearch}/Ice mv %{buildroot}/python/* %{buildroot}%{python_sitearch}/Ice cp -p %{_builddir}/Ice-rpmbuild-%{version}/ice.pth %{buildroot}%{python_sitearch} mkdir -p %{buildroot}%{_datadir}/Ice-%{version} mv %{buildroot}/config/* %{buildroot}%{_datadir}/Ice-%{version} mv %{buildroot}/slice %{buildroot}%{_datadir}/Ice-%{version} find %{buildroot}%{_datadir}/Ice-%{version} -name "*.ice" | xargs chmod a-x mkdir -p %{buildroot}%{_datadir}/Ice-%{version} mv %{buildroot}%{_libdir}/ImportKey.class %{buildroot}%{_datadir}/Ice-%{version} mkdir -p %{buildroot}%{_defaultdocdir}/Ice-%{version} mv %{buildroot}/ICE_LICENSE %{buildroot}%{_defaultdocdir}/Ice-%{version}/ICE_LICENSE mv %{buildroot}/LICENSE %{buildroot}%{_defaultdocdir}/Ice-%{version}/LICENSE cd %{_builddir}/Ice-%{version} cp CHANGES RELEASE_NOTES %{buildroot}%{_defaultdocdir}/Ice-%{version}/ mkdir -p %{buildroot}%{_mandir}/man1 cp -p %{_builddir}/Ice-3.3.0-man-pages/*.1 %{buildroot}%{_mandir}/man1 %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root) %{_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}/libFreeze.so.* %{_libdir}/libGlacier2.so.* %{_libdir}/libIce.so.* %{_libdir}/libIceBox.so.* %{_libdir}/libIceDB.so.* %{_libdir}/libIceGrid.so.* %{_libdir}/libIceGridFreezeDB.so.* %{_libdir}/libIcePatch2.so.* %{_libdir}/libIceSSL.so.* %{_libdir}/libIceStorm.so.* %{_libdir}/libIceStormFreezeDB.so.* %{_libdir}/libIceStormService.so.* %{_libdir}/libIceUtil.so.* %{_libdir}/libIceXML.so.* %{_libdir}/libSlice.so.* %{_datadir}/Ice-%{version}/*.class %{_datadir}/Ice-%{version}/*.ice.gz %{_datadir}/Ice-%{version}/slice %{_datadir}/Ice-%{version}/*.xml %{_datadir}/Ice-%{version}/*.py %{_defaultdocdir}/Ice-%{version}/CHANGES %{_defaultdocdir}/Ice-%{version}/ICE_LICENSE %{_defaultdocdir}/Ice-%{version}/LICENSE %{_defaultdocdir}/Ice-%{version}/RELEASE_NOTES %{_mandir}/man1/dumpdb.1.gz %{_mandir}/man1/glacier2router.1.gz %{_mandir}/man1/icebox.1.gz %{_mandir}/man1/iceboxadmin.1.gz %{_mandir}/man1/icegridadmin.1.gz %{_mandir}/man1/icegridnode.1.gz %{_mandir}/man1/icegridregistry.1.gz %{_mandir}/man1/icepatch2calc.1.gz %{_mandir}/man1/icepatch2client.1.gz %{_mandir}/man1/icepatch2server.1.gz %{_mandir}/man1/icestormadmin.1.gz %{_mandir}/man1/slice2html.1.gz %{_mandir}/man1/transformdb.1.gz %files devel %defattr(-,root,root) %{_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}/libFreeze.so %{_libdir}/libGlacier2.so %{_libdir}/libIce.so %{_libdir}/libIceBox.so %{_libdir}/libIceDB.so %{_libdir}/libIceGrid.so %{_libdir}/libIceGridFreezeDB.so %{_libdir}/libIcePatch2.so %{_libdir}/libIceSSL.so %{_libdir}/libIceStorm.so %{_libdir}/libIceStormFreezeDB.so %{_libdir}/libIceStormService.so %{_libdir}/libIceUtil.so %{_libdir}/libIceXML.so %{_libdir}/libSlice.so %{_mandir}/man1/slice2cpp.1.gz %{_mandir}/man1/slice2freeze.1.gz %files -n mono-Ice %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 %{_bindir}/iceboxnet.exe %{_mandir}/man1/iceboxnet.exe.1.gz %files -n mono-Ice-devel %defattr(-,root,root) %{_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 %{_mandir}/man1/slice2cs.1.gz %post -n icegrid-gui touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache -q %{_datadir}/icons/hicolor fi %postun -n icegrid-gui touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache -q %{_datadir}/icons/hicolor fi %files -n icegrid-gui %defattr(-,root,root) %{_datadir}/Ice-%{version}/IceGridGUI.jar %attr(755,root,root) %{_bindir}/icegridgui %{_datadir}/applications/* %{_datadir}/icons/hicolor/48x48/apps/icegrid.png %{_datadir}/pixmaps/icegrid.png %doc %{_defaultdocdir}/Ice-%{version}/IceGridAdmin %{_mandir}/man1/icegridgui.1.gz %files -n java-Ice %defattr(-,root,root) %{_bindir}/slice2java %{_bindir}/slice2freezej %{_javadir}/Ice-%{version}.jar %{_javadir}/Ice.jar %{_javadir}/ant-ice-%{version}.jar %{_javadir}/ant-ice.jar %{_javadir}/Freeze-%{version}.jar %{_javadir}/Freeze.jar %{_mandir}/man1/slice2freezej.1.gz %{_mandir}/man1/slice2java.1.gz %files -n php-Ice %defattr(-,root,root) %{_bindir}/slice2php %config(noreplace) %{_sysconfdir}/php/ice.ini %{php_extensiondir}/IcePHP.so %{_libdir}/php/Glacier2.php %{_libdir}/php/Ice.php %{_libdir}/php/IceBox.php %{_libdir}/php/IceGrid.php %{_libdir}/php/IcePatch2.php %{_libdir}/php/IceStorm.php %dir %{_libdir}/php/Glacier2 %{_libdir}/php/Glacier2/*.php %dir %{_libdir}/php/Ice %{_libdir}/php/Ice/*.php %dir %{_libdir}/php/IceBox %{_libdir}/php/IceBox/*.php %dir %{_libdir}/php/IceGrid %{_libdir}/php/IceGrid/*.php %dir %{_libdir}/php/IcePatch2 %{_libdir}/php/IcePatch2/*.php %dir %{_libdir}/php/IceStorm %{_libdir}/php/IceStorm/*.php %files -n python-Ice %defattr(-,root,root) %{_bindir}/slice2py %{python_sitearch}/Ice/ %{python_sitearch}/ice.pth %{_mandir}/man1/slice2py.1.gz %files -n ruby-Ice %defattr(-,root,root) %{_bindir}/slice2rb %{ruby_sitearchdir}/* %{_mandir}/man1/slice2rb.1.gz %pre servers getent group iceuser > /dev/null || /usr/sbin/groupadd -r iceuser getent passwd iceuser > /dev/null || \ /usr/sbin/groupadd -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 servers %defattr(-,root,root) %{_initrddir}/icegridregistry %{_initrddir}/icegridnode %{_initrddir}/glacier2router %config(noreplace) %{_sysconfdir}/icegridregistry.conf %config(noreplace) %{_sysconfdir}/icegridnode.conf %config(noreplace) %{_sysconfdir}/glacier2router.conf %attr(0775,root,iceuser) %dir %{_localstatedir}/lib/icegrid %attr(0775,root,iceuser) %dir %{_localstatedir}/lib/ice/icegrid/node1 %attr(0775,root,iceuser) %dir %{_localstatedir}/lib/ice/icegrid/registry %changelog * Sun Aug 14 2011 Silvan Calarco 3.4.0-3mamba - replace java-bdb requirement with java-bdb48 and add make include flag * Mon Jan 17 2011 gil 3.4.0-2mamba - rebuilt devel * Sun Jun 20 2010 gil 3.4.0-1mamba - First build