Ice/Ice.spec

579 lines
18 KiB
RPMSpec
Raw Normal View History

%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 <puntogil@libero.it>
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 <silvan.calarco@mambasoft.it> 3.4.0-3mamba
- replace java-bdb requirement with java-bdb48 and add make include flag
* Mon Jan 17 2011 gil <puntogil@libero.it> 3.4.0-2mamba
- rebuilt devel
* Sun Jun 20 2010 gil <puntogil@libero.it> 3.4.0-1mamba
- First build