/[packages]/cauldron/ice/current/SPECS/ice.spec
ViewVC logotype

Contents of /cauldron/ice/current/SPECS/ice.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1562263 - (show annotations) (download)
Sun Mar 29 21:59:47 2020 UTC (4 years ago) by pterjan
File size: 15199 byte(s)
Update to 3.7.3, 3.5.1 is from 2013...
1 %define major 35
2 %define libname %mklibname %{name} %{major}
3
4 # Hack, we need bigger update of the spec to handle usrmove
5 %define _bindir /bin
6 %define _libdir /%_lib
7
8 %bcond_with mono
9 %bcond_with php
10 %bcond_with java
11
12 Name: ice
13 Version: 3.7.3
14 Release: %mkrel 1
15 Summary: The Ice base runtime and services
16
17 Group: Networking/WWW
18 License: GPLv2 with exceptions
19 URL: http://www.zeroc.com/
20 Source0: https://github.com/zeroc-ice/ice/archive/v%{version}.tar.gz
21 Source3: IceGridAdmin.desktop
22 Source4: Ice-README.Mageia
23 Source5: glacier2router.conf
24 Source6: glacier2router.service
25 Source7: icegridnode.conf
26 Source8: icegridnode.service
27 Source9: icegridregistry.conf
28 Source10: icegridregistry.service
29 Source11: ice.ini
30 Source12: ice.pth
31
32 Patch0: ice-3.7.3-python-undefined.patch
33 Patch1: ice-3.7.3-ruby27-1.patch
34 Patch2: ice-3.7.3-ruby27-2.patch
35
36 # Ice doesn't officially support ppc64 at all
37 # sparc64 doesnt have mono
38 ExcludeArch: ppc64 sparc64
39
40 BuildRequires: db4.8-devel
41 BuildRequires: expat-devel
42 BuildRequires: compat-openssl10-devel
43 BuildRequires: bzip2-devel
44 %if %{with php}
45 BuildRequires: php
46 BuildRequires: php-devel
47 %endif
48 BuildRequires: ruby >= 1.8
49 BuildRequires: ruby-devel >= 1.8
50 BuildRequires: python-devel
51 %if %{with mono}
52 BuildRequires: mono
53 BuildRequires: mono-devel
54 %endif
55 BuildRequires: mcpp-devel >= 2.7.1
56 BuildRequires: dos2unix
57 %if %{with java}
58 BuildRequires: ant
59 BuildRequires: java-devel
60 BuildRequires: jpackage-utils
61 BuildRequires: jgoodies-forms >= 1.6.0
62 BuildRequires: jgoodies-looks
63 BuildRequires: jgoodies-common
64 %endif
65 BuildRequires: imagemagick
66 BuildRequires: desktop-file-utils
67
68 Requires: %{libname} = %{version}-%{release}
69
70 Obsoletes: icegrid-gui < 3.5.1-8
71 Obsoletes: ice-java < 3.5.1-8
72 Obsoletes: ice-java-devel < 3.5.1-8
73
74 %description
75 Ice is a modern alternative to object middleware such as CORBA or
76 COM/DCOM/COM+. It is easy to learn, yet provides a powerful network
77 infrastructure for demanding technical applications. It features an
78 object-oriented specification language, easy to use C++, C#, Java,
79 Python, Ruby, PHP, and Visual Basic mappings, a highly efficient
80 protocol, asynchronous method invocation and dispatch, dynamic
81 transport plug-ins, TCP/IP and UDP/IP support, SSL-based security, a
82 firewall solution, and much more.
83
84 # All of the other Ice packages also get built by this SRPM.
85
86 %package -n %{libname}
87 Summary: Ice shared libraries
88 Group: System/Libraries
89
90 %description -n %{libname}
91 This package contains Ice shared libraries.
92
93 %package servers
94 Summary: Ice services to run through /etc/rc.d/init.d
95 Group: Development/Other
96 Requires: %{name} = %{version}-%{release}
97 # Requirements for the users
98 Requires(pre): shadow-utils
99 # Requirements for the init.d services
100 %description servers
101 Ice services to run through /etc/rc.d/init.d
102
103 %package devel
104 Summary: Tools for developing Ice applications in C++
105 Group: Development/C++
106 Provides: ice-c++-devel = %{version}-%{release}
107 Requires: %{libname} = %{version}-%{release}
108
109 %description devel
110 Tools for developing Ice applications in C++.
111
112 %if %{with java}
113 %package java
114 Summary: The Ice runtime for Java
115 Group: System/Libraries
116 Requires: java >= 1.5.0
117 Requires: db4.8
118 Requires: %{libname} = %{version}-%{release}
119
120 %description java
121 The Ice runtime for Java
122
123 %package java-devel
124 Summary: Tools for developing Ice applications in Java
125 Group: Development/Java
126 Requires: %{name}-java = %{version}-%{release}
127
128 %description java-devel
129 Tools for developing Ice applications in Java.
130
131 %package -n icegrid-gui
132 Summary: IceGrid Admin Tool
133 Group: Development/Other
134 Requires: java
135 Requires: %{name}-java = %{version}-%{release}
136 Requires: %{libname} = %{version}-%{release}
137 Requires: jgoodies-forms >= 1.6.0
138 Requires: jgoodies-looks
139 Requires: jgoodies-common
140
141 %description -n icegrid-gui
142 Graphical administration tool for IceGrid
143 %endif
144
145 %if %{with mono}
146 %package csharp
147 Summary: The Ice runtime for C#
148 Group: System/Libraries
149 Provides: ice-dotnet = %{version}-%{release}
150 Requires: %{libname} = %{version}-%{release}
151 Requires: mono >= 1.2.2
152 %description csharp
153 The Ice runtime for C#
154
155 %package csharp-devel
156 Summary: Tools for developing Ice applications in C#
157 Group: Development/C#
158 Requires: %{name}-csharp = %{version}-%{release}
159 Requires: pkgconfig
160 %description csharp-devel
161 Tools for developing Ice applications in C#.
162 %endif
163
164 %package ruby
165 Summary: The Ice runtime for Ruby applications
166 Group: Development/Ruby
167 Requires: %{libname} = %{version}-%{release}
168 Requires: ruby >= 1.8
169
170 %description ruby
171 The Ice runtime for Ruby applications.
172
173 %package ruby-devel
174 Summary: Tools for developing Ice applications in Ruby
175 Group: Development/Ruby
176 Requires: %{name}-ruby = %{version}-%{release}
177
178 %description ruby-devel
179 Tools for developing Ice applications in Ruby.
180
181 %package -n python-%{name}
182 Summary: The Ice runtime for Python applications
183 Group: Development/Python
184 Requires: %{libname} = %{version}-%{release}
185 Requires: python >= 2.3.4
186 %description -n python-%{name}
187 The Ice runtime for Python applications.
188
189 %package -n python-%{name}-devel
190 Summary: Tools for developing Ice applications in Python
191 Group: Development/Python
192 Requires: python-%{name} = %{version}-%{release}
193 %description -n python-%{name}-devel
194 Tools for developing Ice applications in Python.
195
196 %if %{with php}
197 %package -n php-%{name}
198 Summary: The Ice runtime for PHP applications
199 Group: System/Libraries
200 Requires: %{libname} = %{version}-%{release}
201 Requires: php
202
203 %description -n php-%{name}
204 The Ice runtime for PHP applications.
205 %endif
206
207 %prep
208 %setup -q
209 %autopatch -p1
210
211 %if %{without mono}
212 sed -i -e 's|\(SUBDIRS.*=.*\)cs\s*|\1|g' Makefile
213 %endif
214
215 %if %{without java}
216 sed -i -e 's|\(SUBDIRS.*=.*\)java\s*|\1|g' Makefile
217 %endif
218
219 %if %{without php}
220 sed -i -e 's|\(SUBDIRS.*=.*\)php\s*|\1|g' Makefile
221 %endif
222
223 %build
224 %if %{with java}
225 # Set the CLASSPATH correctly for the Java compile
226 export CLASSPATH=`build-classpath db4.8 jgoodies-forms jgoodies-looks jgoodies-common`
227
228 # Set JAVA_HOME
229 export JAVA_HOME=%{java_home}
230 %endif
231
232 # Compile the main Ice runtime
233 %make_build CXXFLAGS="%{optflags} -fPIC -fpermissive -pthread" CFLAGS="%{optflags} -fPIC -fpermissive -pthread" embedded_runpath_prefix="" libsubdir=%{_lib} DB_FLAGS="-I/usr/include/db4" LANGUAGES="cpp ruby"
234
235 %make_build CXXFLAGS="%{optflags} -fPIC -fpermissive -pthread" CFLAGS="%{optflags} -fPIC -fpermissive -pthread" embedded_runpath_prefix="" libsubdir=%{_lib} DB_FLAGS="-I/usr/include/db4" LANGUAGES="python" LDFLAGS="$(echo %{build_ldflags} | sed -e s/-Wl,--as-needed// -e s/-Wl,--no-undefined//)"
236
237 %if %{with java}
238 # Rebuild the Java ImportKey class
239 pushd %{_builddir}/Ice-%{version}/cpp/src/ca
240 rm *.class
241 javac ImportKey.java
242 popd
243
244 pushd %{_builddir}/Ice-%{version}/java/resources/icons
245 # Create the IceGrid icon
246 convert icegrid.ico temp.png
247 mv temp-8.png icegrid.png
248 rm temp*.png
249 popd
250 %endif
251
252 %install
253 %if %{with java}
254 # For some reason it tries to rebuild icegridgui here, so set the CLASSPATH again
255 export CLASSPATH=`build-classpath db4.8 jgoodies-forms jgoodies-looks jgoodies-common`
256 %endif
257
258 # Do the basic "make install"
259 make prefix=%{buildroot} GACINSTALL=yes GAC_ROOT=%{buildroot}%{_libdir} embedded_runpath_prefix="" libsubdir=%{_lib} install
260
261 %if %{with java}
262 # Move Java stuff where it should be
263 mkdir -p %{buildroot}%{_javadir}
264 for file in %{buildroot}/lib/*.jar; do
265 mv $file %{buildroot}%{_javadir}
266 done
267
268 ## install IceGrid GUI in the right place
269 mkdir -p %{buildroot}%{_datadir}/Ice-%{version}
270 mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/
271 cp -p java/resources/icons/icegrid.png \
272 %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/
273 %jpackage_script IceGridGUI.Main "" "" IceGridGUI:jgoodies-looks:jgoodies-forms:jgoodies-common icegridgui 0
274
275 desktop-file-install \
276 --dir=%{buildroot}%{_datadir}/applications \
277 %{SOURCE3}
278 %endif
279
280 # Move other rpm-specific files into the right place (README, service stuff)
281 mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
282 cp -p %{SOURCE4} %{buildroot}/%{_defaultdocdir}/%{name}/README.Mageia
283
284 # There are a couple of files that end up installed in /lib, not %%{_libdir},
285 # so we try this move too.
286 %if %{with mono}
287 mkdir -p %{buildroot}%{_libdir}/pkgconfig
288 install -p -m0644 -t %{buildroot}%{_libdir}/pkgconfig \
289 %{buildroot}/lib/pkgconfig/*.pc
290 %endif
291
292 # Move the ImportKey.class file
293 mkdir -p %{buildroot}%{_datadir}/Ice-%{version}
294 mv %{buildroot}/lib/ImportKey.class %{buildroot}%{_datadir}/Ice-%{version}
295
296 mv %{buildroot}/include %{buildroot}/%{_includedir}
297
298 # Copy the man pages into the correct directory
299 mv %{buildroot}/man %{buildroot}/%{_mandir}
300
301 %if %{with mono}
302 # .NET spec files (for csharp-devel) -- convert the paths
303 for f in IceGrid Glacier2 IceBox Ice IceStorm IcePatch2;
304 do
305 mv %{buildroot}/usr/lib/mono/$f/$f.xml \
306 %{buildroot}%{_prefix}/lib/mono/gac/$f/%{version}.*/
307 # fix xml files permissions
308 chmod 0644 %{buildroot}%{_prefix}/lib/mono/gac/$f/%{version}.*/*.xml
309 done
310 %else
311 rm -fv %buildroot%_bindir/slice2cs
312 rm -fv %buildroot%_mandir/man1/slice2cs.1*
313 %endif
314
315 %if %{with php}
316 # Put the PHP stuff into the right place
317 mkdir -p %{buildroot}%{_sysconfdir}/php.d
318 mkdir -p %{buildroot}%{_libdir}/php/extensions/
319 mv %{buildroot}/php/IcePHP.so %{buildroot}%{_libdir}/php/extensions/
320 install -D -p -m0644 %{SOURCE11} \
321 %{buildroot}%{_sysconfdir}/php.d/%{name}.ini
322 %endif
323
324 # Also Ruby and Python -- remove all shebang lines while we're at it
325 for f in %{buildroot}/python/Ice.py %{buildroot}/ruby/*.rb;
326 do
327 grep -v '/usr/bin/env' $f > $f.tmp
328 mv $f.tmp $f
329 done
330 mkdir -p %{buildroot}%{ruby_vendorarchdir}
331 mv %{buildroot}/ruby/* %{buildroot}%{ruby_vendorarchdir}
332 mkdir -p %{buildroot}%{python_sitearch}/Ice
333 mv %{buildroot}/python/* %{buildroot}%{python_sitearch}/Ice
334 cp -p %{SOURCE12} %{buildroot}%{python_sitearch}
335
336 mkdir -p %{buildroot}%{_datadir}/%{name}
337 mv %{buildroot}/config/* %{buildroot}%{_datadir}/%{name}
338 mv %{buildroot}/slice %{buildroot}%{_datadir}/%{name}
339 # Somehow, some files under "slice" end up with executable permissions -- ??
340 find %{buildroot}%{_datadir}/%{name} -name "*.ice" | xargs chmod a-x
341
342 # Put the license files in as documentation
343 mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
344 mv %{buildroot}/ICE_LICENSE %{buildroot}/LICENSE \
345 %{buildroot}/CHANGES %{buildroot}/RELEASE_NOTES \
346 %{buildroot}%{_defaultdocdir}/%{name}
347
348 %if %{with php}
349 rm -fr %{buildroot}/php
350 %endif
351
352 ## install systemd services configuration
353 mkdir -p %{buildroot}%{_unitdir}
354 mkdir -p %{buildroot}%{_sysconfdir}
355 ## glacier2router
356 install -p -m0644 %{SOURCE5} %{buildroot}%{_sysconfdir}
357 install -p -m0644 %{SOURCE6} %{buildroot}%{_unitdir}
358 ## icegridnode
359 install -p -m0644 %{SOURCE7} %{buildroot}%{_sysconfdir}
360 install -p -m0644 %{SOURCE8} %{buildroot}%{_unitdir}
361 ## icegridregistry
362 install -p -m0644 %{SOURCE9} %{buildroot}%{_sysconfdir}
363 install -p -m0644 %{SOURCE10} %{buildroot}%{_unitdir}
364
365 mkdir -p %{buildroot}%{_localstatedir}/lib/icegrid
366
367
368 %pre servers
369 %_pre_useradd iceuser %{_localstatedir}/lib/icegrid /bin/sh
370
371 %post servers
372 %_post_service icegridregistry
373 %_post_service icegridnode
374 %_post_service glacier2router
375
376 %preun servers
377 if [ $1 = 0 ]; then
378 %_preun_service icegridregistry
379 %_preun_service icegridnode
380 %_preun_service glacier2router
381 fi
382
383 %postun servers
384 if [ "$1" -ge "1" ]; then
385 /sbin/service icegridregistry condrestart >/dev/null 2>&1 || :
386 /sbin/service icegridnode condrestart >/dev/null 2>&1 || :
387 /sbin/service glacier2router condrestart >/dev/null 2>&1 || :
388 fi
389
390 %files
391 %{_defaultdocdir}/%{name}
392 %{_bindir}/dumpdb
393 %{_bindir}/glacier2router
394 %{_bindir}/icebox
395 %{_bindir}/iceboxadmin
396 %{_bindir}/iceca
397 %{_bindir}/icegridadmin
398 %{_bindir}/icegridnode
399 %{_bindir}/icegridregistry
400 %{_bindir}/icepatch2calc
401 %{_bindir}/icepatch2client
402 %{_bindir}/icepatch2server
403 %{_bindir}/icestormadmin
404 %{_bindir}/icestormmigrate
405 %{_bindir}/slice2html
406 %{_bindir}/transformdb
407 %{_datadir}/%{name}
408 %{_mandir}/man1/dumpdb.1.*
409 %{_mandir}/man1/glacier2router.1.*
410 %{_mandir}/man1/icebox.1.*
411 %{_mandir}/man1/iceboxadmin.1.*
412 %{_mandir}/man1/icegridadmin.1.*
413 %{_mandir}/man1/icegridnode.1.*
414 %{_mandir}/man1/icegridregistry.1.*
415 %{_mandir}/man1/icepatch2calc.1.*
416 %{_mandir}/man1/icepatch2client.1.*
417 %{_mandir}/man1/icepatch2server.1.*
418 %{_mandir}/man1/icestormadmin.1.*
419 %{_mandir}/man1/slice2html.1.*
420 %{_mandir}/man1/transformdb.1.*
421 %{_mandir}/man1/iceca.1.*
422 %{_mandir}/man1/icestormmigrate.1.*
423 %{_datadir}/Ice-%{version}
424
425 %files -n %{libname}
426 %{_libdir}/*.so.%{version}
427 %{_libdir}/*.so.%{major}
428
429 %files servers
430 %{_unitdir}/icegridregistry.service
431 %{_unitdir}/icegridnode.service
432 %{_unitdir}/glacier2router.service
433 %config(noreplace) %{_sysconfdir}/icegridregistry.conf
434 %config(noreplace) %{_sysconfdir}/icegridnode.conf
435 %config(noreplace) %{_sysconfdir}/glacier2router.conf
436 %{_localstatedir}/lib/icegrid
437
438 %files devel
439 %{_bindir}/slice2cpp
440 %{_bindir}/slice2freeze
441 %{_includedir}/Freeze
442 %{_includedir}/Glacier2
443 %{_includedir}/Ice
444 %{_includedir}/IceBox
445 %{_includedir}/IceGrid
446 %{_includedir}/IcePatch2
447 %{_includedir}/IceSSL
448 %{_includedir}/IceStorm
449 %{_includedir}/IceUtil
450 %{_includedir}/IceXML
451 %{_includedir}/Slice
452 %{_libdir}/*.so
453 %{_mandir}/man1/slice2cpp.1.*
454 %{_mandir}/man1/slice2freeze.1.*
455 %if %{without java}
456 %exclude %{_bindir}/slice2java
457 %exclude %{_bindir}/slice2freezej
458 %exclude %{_mandir}/man1/slice2java.1.*
459 %exclude %{_mandir}/man1/slice2freezej.1.*
460 %endif
461 %if %{without php}
462 %exclude %{_bindir}/slice2php
463 %exclude %{_mandir}/man1/slice2php.1.*
464 %endif
465
466 %if %{with java}
467 %files java
468 %{_javadir}/*.jar
469 # Exclude the stuff that's in IceGrid and java-devel
470 %exclude %{_javadir}/IceGridGUI.jar
471 %exclude %{_javadir}/ant-ice.jar
472
473 %files -n icegrid-gui
474 %{_javadir}/IceGridGUI.jar
475 %attr(755,root,root) %{_bindir}/icegridgui
476 %{_datadir}/applications/*
477 %{_datadir}/icons/hicolor/48x48/apps/icegrid.png
478
479 %files java-devel
480 %{_bindir}/slice2java
481 %{_bindir}/slice2freezej
482 %{_javadir}/ant-ice.jar
483 %{_mandir}/man1/slice2java.1.*
484 %{_mandir}/man1/slice2freezej.1.*
485 %endif
486
487 %if %{with mono}
488 %files csharp
489 %{_libdir}/mono/Glacier2/
490 %{_libdir}/mono/Ice/
491 %{_libdir}/mono/IceBox/
492 %{_libdir}/mono/IceGrid/
493 %{_libdir}/mono/IcePatch2/
494 %{_libdir}/mono/IceStorm/
495
496 %{_libdir}/mono/gac/Glacier2
497 %{_libdir}/mono/gac/Ice
498 %{_libdir}/mono/gac/IceBox
499 %{_libdir}/mono/gac/IceGrid
500 %{_libdir}/mono/gac/IcePatch2
501 %{_libdir}/mono/gac/IceStorm
502 %{_prefix}/lib/mono/gac/policy.*
503
504 %{_bindir}/iceboxnet.exe
505 %doc %{_mandir}/man1/iceboxnet.1.*
506
507 %files csharp-devel
508 %{_bindir}/slice2cs
509 %{_libdir}/pkgconfig/Glacier2.pc
510 %{_libdir}/pkgconfig/Ice.pc
511 %{_libdir}/pkgconfig/IceBox.pc
512 %{_libdir}/pkgconfig/IceGrid.pc
513 %{_libdir}/pkgconfig/IcePatch2.pc
514 %{_libdir}/pkgconfig/IceStorm.pc
515 %{_mandir}/man1/slice2cs.1.*
516 %endif
517
518 %files -n python-%{name}
519 %{python_sitearch}/Ice/
520 %{python_sitearch}/%{name}.pth
521
522 %files -n python-%{name}-devel
523 %{_bindir}/slice2py
524 %{_mandir}/man1/slice2py.1.*
525
526 %files ruby
527 %{ruby_vendorarchdir}/*
528
529 %files ruby-devel
530 %{_bindir}/slice2rb
531 %{_mandir}/man1/slice2rb.1.*
532
533 %if %{with php}
534 %files -n php-%{name}
535 %{_libdir}/php/extensions/IcePHP.so
536 %config(noreplace) %{_sysconfdir}/php.d/ice.ini
537 # Move on a php-devel
538 %{_bindir}/slice2php
539 %{_mandir}/man1/slice2php.1.*
540 %endif

  ViewVC Help
Powered by ViewVC 1.1.30