%define major 34 %define libname %mklibname %{name} %{major} Name: ice Version: 3.4.2 Release: %mkrel 3 Summary: The Ice base runtime and services Group: Networking/WWW License: GPLv2 with exceptions URL: http://www.zeroc.com/ Source0: http://www.zeroc.com/download/Ice/%{version}/Ice-%{version}.tar.gz # Extracted from http://zeroc.com/download/Ice/3.5/ice-3.5b-1.src.rpm Source1: Ice-rpmbuild-%{version}.tar.gz # Man pages courtesy of Francisco Moya's Debian packages Source2: Ice-3.3.0-man-pages.tbz Source8: icegridgui Source9: IceGridAdmin.desktop Source10: Ice-README.Mandriva # Don't build the demo or test directories Patch0: Ice-3.4.2-dont-build-demo-test.patch # Don't put manifest in jar; don't build demo or test; use system jgoodies Patch1: Ice-3.5b-java-build.patch # Remove reference to Windows L&F Patch2: Ice-3.3.1-jgoodies.patch Patch3: ice-3.4.2-gcc46.patch Patch4: ice-3.4.2-gcc47.patch Patch5: ice-3.4.2-java7.patch Patch6: ice-3.4.2-jgoodies.patch Patch7: ice-3.4.2-fix-str-fmt.patch Patch9: ice-3.4.2-php54.patch # Fix redhat initscripts for mdv and change user in server scripts # from "ice" to "iceuser" to match the config Patch8: Ice-rpmbuild-3.3.1-fix-initscripts-for-mdv.patch # Ice doesn't officially support ppc64 at all # sparc64 doesnt have mono ExcludeArch: ppc64 sparc64 BuildRequires: db4.8-devel BuildRequires: expat-devel BuildRequires: openssl-devel BuildRequires: bzip2-devel BuildRequires: ant BuildRequires: ant-nodeps BuildRequires: jpackage-utils BuildRequires: php BuildRequires: php-devel BuildRequires: ruby >= 1.8 BuildRequires: ruby-devel >= 1.8 BuildRequires: python-devel BuildRequires: mono BuildRequires: mono-devel BuildRequires: mcpp-devel >= 2.7.1 BuildRequires: dos2unix BuildRequires: java-rpmbuild BuildRequires: jgoodies-forms BuildRequires: jgoodies-looks BuildRequires: jgoodies-common BuildRequires: imagemagick BuildRequires: desktop-file-utils Requires: %{libname} = %{version}-%{release} %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 -n %{libname} Summary: Ice shared libraries Group: System/Libraries %description -n %{libname} This package contains Ice shared libraries. %package servers Summary: Ice services to run through /etc/rc.d/init.d Group: Development/Other Requires: %{name} = %{version}-%{release} # Requirements for the users Requires(pre): shadow-utils # Requirements for the init.d services %description servers Ice services to run through /etc/rc.d/init.d %package devel Summary: Tools for developing Ice applications in C++ Group: Development/C++ Provides: ice-c++-devel = %{version}-%{release} Requires: %{libname} = %{version}-%{release} %description devel Tools for developing Ice applications in C++. %package java Summary: The Ice runtime for Java Group: System/Libraries Requires: java >= 1.5.0 Requires: db4.8 Requires: %{libname} = %{version}-%{release} %description java The Ice runtime for Java %package java-devel Summary: Tools for developing Ice applications in Java Group: Development/Java Requires: %{name}-java = %{version}-%{release} %description java-devel Tools for developing Ice applications in Java. %package -n icegrid-gui Summary: IceGrid Admin Tool Group: Development/Other Requires: java Requires: %{name}-java = %{version}-%{release} Requires: %{libname} = %{version}-%{release} Requires: jgoodies-forms Requires: jgoodies-looks Requires: jpackage-utils %description -n icegrid-gui Graphical administration tool for IceGrid %package csharp Summary: The Ice runtime for C# Group: System/Libraries Provides: ice-dotnet = %{version}-%{release} Requires: %{libname} = %{version}-%{release} Requires: mono >= 1.2.2 %description csharp The Ice runtime for C# %package csharp-devel Summary: Tools for developing Ice applications in C# Group: Development/C# Requires: %{name}-csharp = %{version}-%{release} Requires: pkgconfig %description csharp-devel Tools for developing Ice applications in C#. %package ruby Summary: The Ice runtime for Ruby applications Group: Development/Ruby Requires: %{libname} = %{version}-%{release} Requires: ruby >= 1.8 %description ruby The Ice runtime for Ruby applications. %package ruby-devel Summary: Tools for developing Ice applications in Ruby Group: Development/Ruby Requires: %{name}-ruby = %{version}-%{release} %description ruby-devel Tools for developing Ice applications in Ruby. %package -n python-%{name} Summary: The Ice runtime for Python applications Group: Development/Python Requires: %{libname} = %{version}-%{release} Requires: python >= 2.3.4 %description -n python-%{name} The Ice runtime for Python applications. %package -n python-%{name}-devel Summary: Tools for developing Ice applications in Python Group: Development/Python Requires: python-%{name} = %{version}-%{release} %description -n python-%{name}-devel Tools for developing Ice applications in Python. %package -n php-%{name} Summary: The Ice runtime for PHP applications Group: System/Libraries Requires: %{libname} = %{version}-%{release} Requires: php %description -n php-%{name} The Ice runtime for PHP applications. %prep %setup -n Ice-%{version} -q %patch0 -p1 #patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch9 -p1 %setup -q -n Ice-rpmbuild-%{version} -T -b 1 %patch8 -p1 -b .formdv %setup -q -n Ice-3.3.0-man-pages -T -b 2 %build # Set the CLASSPATH correctly for the Java compile export CLASSPATH=`build-classpath db4.8 jgoodies-forms jgoodies-looks` # Set JAVA_HOME export JAVA_HOME=%{java_home} # Compile the main Ice runtime 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 *.class javac ImportKey.java # Create the IceGrid icon cd %{_builddir}/Ice-%{version}/java cd resources/icons convert icegrid.ico temp.png #mv temp-8.png icegrid.png rm temp*.png %install mkdir -p %{buildroot} # Do the basic "make install" cd %{_builddir}/Ice-%{version} make prefix=%{buildroot} GACINSTALL=yes GAC_ROOT=%{buildroot}%{_libdir} embedded_runpath_prefix="" install # Move Java stuff where it should be mkdir -p %{buildroot}%{_javadir} mv %{buildroot}/lib/ant-ice.jar %{buildroot}%{_javadir}/ant-ice-%{version}.jar ln -s ant-ice-%{version}.jar %{buildroot}%{_javadir}/ant-ice.jar mv %{buildroot}/lib/Ice.jar %{buildroot}%{_javadir}/Ice-%{version}.jar ln -s Ice-%{version}.jar %{buildroot}%{_javadir}/Ice.jar # Install the IceGrid GUI mkdir -p %{buildroot}%{_datadir}/%{name} mv %{buildroot}/lib/IceGridGUI.jar %{buildroot}%{_datadir}/%{name} mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/ mkdir -p %{buildroot}%{_bindir} cp -p %{SOURCE8} %{buildroot}%{_bindir} sed -i -e "s#DIR#%{_datadir}/%{name}#" %{buildroot}%{_bindir}/icegridgui desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE9} # Move other rpm-specific files into the right place (README, service stuff) mkdir -p %{buildroot}%{_defaultdocdir}/%{name} cp -p %{SOURCE10} %{buildroot}/%{_defaultdocdir}/%{name}/README.Mandriva cp -p %{_builddir}/Ice-rpmbuild-%{version}/ice.ini %{buildroot}/ice.ini # Install the 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 # "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). mkdir -p %{buildroot}%{_bindir} mv %{buildroot}/bin/* %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_includedir} mv %{buildroot}/include/* %{buildroot}%{_includedir} mkdir -p %{buildroot}%{_libdir} # There are a couple of files that end up installed in /lib, not %{_libdir}, # so we try this move too. mv %{buildroot}/%{_lib}/* %{buildroot}%{_libdir} mv %{buildroot}/lib/* %{buildroot}%{_libdir} || true mkdir -p %{buildroot}%{_defaultdocdir}/icegrid-gui mv %{buildroot}/help/IceGridAdmin %{buildroot}%{_defaultdocdir}/icegrid-gui # Copy the man pages into the correct directory mkdir -p %{buildroot}%{_mandir}/man1 cp -p %{_builddir}/Ice-3.3.0-man-pages/*.1 %{buildroot}%{_mandir}/man1 # Fix the encoding and line-endings of all the IceGridAdmin documentation files cd %{buildroot}%{_defaultdocdir}/icegrid-gui/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 # .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}/#" %{buildroot}%{_libdir}/pkgconfig/$f.pc sed -i -e "s#mono_root}/usr#mono_root}#" %{buildroot}%{_libdir}/pkgconfig/$f.pc done # Put the PHP stuff into the right place mkdir -p %{buildroot}%{_sysconfdir}/php.d mv %{buildroot}/ice.ini %{buildroot}%{_sysconfdir}/php.d mkdir -p %{buildroot}%{_libdir}/php/extensions/ mv %{buildroot}/php/IcePHP.so %{buildroot}%{_libdir}/php/extensions/ # Also Ruby and Python -- remove all shebang lines while we're at it for f in %{buildroot}/python/Ice.py %{buildroot}/ruby/*.rb; do grep -v '/usr/bin/env' $f > $f.tmp mv $f.tmp $f done mkdir -p %{buildroot}%{ruby_sitearchdir} mv %{buildroot}/ruby/* %{buildroot}%{ruby_sitearchdir} 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}/%{name} mv %{buildroot}/config/* %{buildroot}%{_datadir}/%{name} mv %{buildroot}/slice %{buildroot}%{_datadir}/%{name} # Somehow, some files under "slice" end up with executable permissions -- ?? find %{buildroot}%{_datadir}/%{name} -name "*.ice" | xargs chmod a-x # Move the ImportKey.class file -- it'll be in %{_libdir} because of the moves earlier mkdir -p %{buildroot}%{_datadir}/%{name} mv %{buildroot}%{_libdir}/ImportKey.class %{buildroot}%{_datadir}/%{name} # Put the license files in as documentation mkdir -p %{buildroot}%{_defaultdocdir}/%{name} mv %{buildroot}/ICE_LICENSE %{buildroot}%{_defaultdocdir}/%{name}/ICE_LICENSE mv %{buildroot}/LICENSE %{buildroot}%{_defaultdocdir}/%{name}/LICENSE rm -fr %{buildroot}/php %pre servers %_pre_useradd iceuser %{_localstatedir}/lib/icegrid /bin/sh %post servers %_post_service icegridregistry %_post_service icegridnode %_post_service glacier2router %preun servers if [ $1 = 0 ]; then %_preun_service icegridregistry %_preun_service icegridnode %_preun_service 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 %{_defaultdocdir}/%{name} %{_bindir}/*.xml %{_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 %{_datadir}/%{name} # Exclude the stuff that's in IceGrid %exclude %{_datadir}/%{name}/IceGridGUI.jar %{_mandir}/man1/dumpdb.1.* %{_mandir}/man1/glacier2router.1.* %{_mandir}/man1/icebox.1.* %{_mandir}/man1/iceboxadmin.1.* %{_mandir}/man1/icegridadmin.1.* %{_mandir}/man1/icegridnode.1.* %{_mandir}/man1/icegridregistry.1.* %{_mandir}/man1/icepatch2calc.1.* %{_mandir}/man1/icepatch2client.1.* %{_mandir}/man1/icepatch2server.1.* %{_mandir}/man1/icestormadmin.1.* %{_mandir}/man1/slice2docbook.1.* %{_mandir}/man1/slice2html.1.* %{_mandir}/man1/transformdb.1.* %files -n %{libname} %{_libdir}/*.so.%{version} %{_libdir}/*.so.%{major} %files servers %{_initrddir}/icegridregistry %{_initrddir}/icegridnode %{_initrddir}/glacier2router %config(noreplace) %{_sysconfdir}/icegridregistry.conf %config(noreplace) %{_sysconfdir}/icegridnode.conf %config(noreplace) %{_sysconfdir}/glacier2router.conf %dir %{_localstatedir}/lib/icegrid %files devel %{_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}/*.so %{_mandir}/man1/slice2cpp.1.* %{_mandir}/man1/slice2freeze.1.* %files java %{_libdir}/Freeze.jar %{_javadir}/Ice-%{version}.jar %{_javadir}/Ice.jar %files -n icegrid-gui %attr(755,root,root) %{_bindir}/icegridgui %{_datadir}/%{name}/IceGridGUI.jar %{_datadir}/applications/IceGridAdmin.desktop #%{_datadir}/icons/hicolor/48x48/apps/icegrid.png %{_defaultdocdir}/icegrid-gui %{_mandir}/man1/icegridgui.1.* %files java-devel %{_bindir}/slice2java %{_bindir}/slice2freezej %{_javadir}/ant-ice-%{version}.jar %{_javadir}/ant-ice.jar %{_mandir}/man1/slice2java.1.* %{_mandir}/man1/slice2freezej.1.* %files csharp %{_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 %{_mandir}/man1/iceboxnet.exe.1.* %files csharp-devel %{_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.* %files -n python-%{name} %{python_sitearch}/Ice/ %{python_sitearch}/%{name}.pth %files -n python-%{name}-devel %{_bindir}/slice2py %{_mandir}/man1/slice2py.1.* %files ruby %{ruby_sitearchdir}/* %files ruby-devel %{_bindir}/slice2rb %{_mandir}/man1/slice2rb.1.* %files -n php-%{name} %{_bindir}/slice2php %{_libdir}/php/extensions/IcePHP.so %config(noreplace) %{_sysconfdir}/php.d/ice.ini %changelog * Sat Jan 12 2013 umeabot <umeabot> 3.4.2-3.mga3 + Revision: 354115 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Sun Dec 16 2012 fwang <fwang> 3.4.2-2.mga3 + Revision: 331637 - fix requires of ruby binding * Sun Dec 16 2012 fwang <fwang> 3.4.2-1.mga3 + Revision: 331619 - update file list - update file list - update file list - update file list - requires dbjava - update file list - more str fmt fix - build with php 5.4 - fix str fmt - build with system jgoodies - fix build with recent java - use db4.8 - use db4.8 - br db 4.8 - br db 4.8 - fix build with recent gcc - rediff some patches - new version 3.4.2 - add includedir - cleanup spec - fix build - rediff some patches - new version 3.5b - more patch - fix patch - more patch on building - br db 5.2 + malo <malo> - update RPM group + stormi <stormi> - rebuild for new glibc * Mon Mar 19 2012 fwang <fwang> 3.3.1-5.mga2 + Revision: 224290 - more patches - more patch - fix build - fix build with new gcc * Thu Mar 24 2011 boklm <boklm> 3.3.1-4.mga1 + Revision: 76158 - rebuild for bug #497 * Wed Mar 09 2011 ennael <ennael> 3.3.1-3.mga1 + Revision: 67193 - remove unexisting image - clean spec file - imported package ice