root/trunk/systemimager.spec

Revision 4464, 35.6 kB (checked in by bli, 4 months ago)

When BitTorrent? binaries are not found, also print out the URL for Wiki Quick Start HOWTO which describes in
detail how to install them.
Suggested-by: Ole Holm Nielsen

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 #
2 # $Id$
3 #
4 %define name     systemimager
5 #
6 # "ver" below, is automatically set to the current version (as defined
7 # by the VERSION file) when "make source_tarball" is executed.
8 # Therefore, it can be set to any three digit number here.
9 #
10 %define ver      0.0.0
11 %define rel      1
12 %define packager Bernard Li <bernard@vanhpc.org>
13 %define prefix   /usr
14 %define _build_all 1
15 %define _boot_flavor standard
16 # Set this to 1 to build only the boot rpm
17 # it can also be done in the .rpmmacros file
18 #define _build_only_boot 1
19 %{?_build_only_boot:%{expand: %%define _build_all 0}}
20
21 %define _unpackaged_files_terminate_build 0
22
23 # prevent RPM from stripping files (eg. bittorrent binaries)
24 %define __spec_install_post /usr/lib/rpm/brp-compress
25 # prevent RPM files to be changed by prelink
26 %{?__prelink_undo_cmd:%undefine __prelink_undo_cmd}
27
28 %define is_suse %(test -f /etc/SuSE-release && echo 1 || echo 0)
29 %define is_ppc64 %([ "`uname -m`" = "ppc64" ] && echo 1 || echo 0)
30 %define is_ps3 %([ `grep PS3 /proc/cpuinfo >& /dev/null; echo $?` -eq 0 ] && echo 1 || echo 0)
31
32 %if %is_ppc64
33 %define _build_arch ppc64
34 %endif
35
36 %if %is_ps3
37 %define _build_arch ppc64-ps3
38 %endif
39
40 %if %is_suse
41 %define python_xml python-xml
42 %else
43 %define python_xml PyXML
44 %endif
45
46 Summary: Software that automates Linux installs, software distribution, and production deployment.
47 Name: %name
48 Version: %ver
49 Release: %rel
50 License: GPL
51 Group: Applications/System
52 Source0: http://download.sourceforge.net/systemimager/%{name}-%{ver}.tar.bz2
53 BuildRoot: /tmp/%{name}-%{ver}-root
54 BuildArchitectures: noarch
55 Packager: %packager
56 URL: http://wiki.systemimager.org/
57 Distribution: System Installation Suite
58 BuildRequires: docbook-utils, dos2unix, e2fsprogs-devel, flex, libtool, readline-devel, /usr/bin/wget, openssl-devel, gcc, gcc-c++
59 Requires: rsync >= 2.4.6, syslinux >= 1.48, libappconfig-perl, dosfstools, /usr/bin/perl
60 AutoReqProv: no
61
62 %description
63 SystemImager is software that automates Linux installs, software
64 distribution, and production deployment.  SystemImager makes it easy to
65 do installs, software distribution, content or data distribution,
66 configuration changes, and operating system updates to your network of
67 Linux machines. You can even update from one Linux release version to
68 another!  It can also be used to ensure safe production deployments.
69 By saving your current production image before updating to your new
70 production image, you have a highly reliable contingency mechanism.  If
71 the new production enviroment is found to be flawed, simply roll-back
72 to the last production image with a simple update command!  Some
73 typical environments include: Internet server farms, database server
74 farms, high performance clusters, computer labs, and corporate desktop
75 environments.
76
77 %if %{_build_all}
78
79 %package server
80 Summary: Software that automates Linux installs, software distribution, and production deployment.
81 Version: %ver
82 Release: %rel
83 License: GPL
84 Group: Applications/System
85 BuildRoot: /tmp/%{name}-%{ver}-root
86 Packager: %packager
87 URL: http://wiki.systemimager.org/
88 Distribution: System Installation Suite
89 Requires: rsync >= 2.4.6, systemimager-common = %{version}, perl-AppConfig, dosfstools, /sbin/chkconfig, perl, perl(XML::Simple) >= 2.14, python, mkisofs
90 AutoReqProv: no
91
92 %description server
93 SystemImager is software that automates Linux installs, software
94 distribution, and production deployment.  SystemImager makes it easy to
95 do installs, software distribution, content or data distribution,
96 configuration changes, and operating system updates to your network of
97 Linux machines. You can even update from one Linux release version to
98 another!  It can also be used to ensure safe production deployments. 
99 By saving your current production image before updating to your new
100 production image, you have a highly reliable contingency mechanism.  If
101 the new production enviroment is found to be flawed, simply roll-back
102 to the last production image with a simple update command!  Some
103 typical environments include: Internet server farms, database server
104 farms, high performance clusters, computer labs, and corporate desktop
105 environments.
106
107 The server package contains those files needed to run a SystemImager
108 server.
109
110 %package flamethrower
111 Summary: Software that automates Linux installs, software distribution, and production deployment.
112 Version: %ver
113 Release: %rel
114 License: GPL
115 Group: Applications/System
116 BuildRoot: /tmp/%{name}-%{ver}-root
117 Packager: %packager
118 URL: http://wiki.systemimager.org/
119 Distribution: System Installation Suite
120 Requires: systemimager-server = %{version}, /sbin/chkconfig, perl, flamethrower >= 0.1.6
121 AutoReqProv: no
122
123 %description flamethrower
124 SystemImager is software that automates Linux installs, software
125 distribution, and production deployment.  SystemImager makes it easy to
126 do installs, software distribution, content or data distribution,
127 configuration changes, and operating system updates to your network of
128 Linux machines. You can even update from one Linux release version to
129 another!  It can also be used to ensure safe production deployments. 
130 By saving your current production image before updating to your new
131 production image, you have a highly reliable contingency mechanism.  If
132 the new production enviroment is found to be flawed, simply roll-back
133 to the last production image with a simple update command!  Some
134 typical environments include: Internet server farms, database server
135 farms, high performance clusters, computer labs, and corporate desktop
136 environments.
137
138 The flamethrower package allows you to use the flamethrower utility to perform
139 installations over multicast.
140
141 %package common
142 Summary: Software that automates Linux installs, software distribution, and production deployment.
143 Version: %ver
144 Release: %rel
145 License: GPL
146 Group: Applications/System
147 BuildRoot: /tmp/%{name}-%{ver}-root
148 Packager: %packager
149 URL: http://wiki.systemimager.org/
150 Distribution: System Installation Suite
151 Requires: perl, systemconfigurator >= 2.2.11
152 AutoReqProv: no
153
154 %description common
155 SystemImager is software that automates Linux installs, software
156 distribution, and production deployment.  SystemImager makes it easy to
157 do installs, software distribution, content or data distribution,
158 configuration changes, and operating system updates to your network of
159 Linux machines. You can even update from one Linux release version to
160 another!  It can also be used to ensure safe production deployments. 
161 By saving your current production image before updating to your new
162 production image, you have a highly reliable contingency mechanism.  If
163 the new production enviroment is found to be flawed, simply roll-back
164 to the last production image with a simple update command!  Some
165 typical environments include: Internet server farms, database server
166 farms, high performance clusters, computer labs, and corporate desktop
167 environments.
168
169 The common package contains files common to SystemImager clients
170 and servers.
171
172 %package client
173 Summary: Software that automates Linux installs, software distribution, and production deployment.
174 Version: %ver
175 Release: %rel
176 License: GPL
177 Group: Applications/System
178 BuildRoot: /tmp/%{name}-%{ver}-root
179 Packager: %packager
180 URL: http://wiki.systemimager.org/
181 Distribution: System Installation Suite
182 Requires: systemimager-common = %{version}, systemconfigurator >= 2.2.11, perl-AppConfig, rsync >= 2.4.6, perl
183 AutoReqProv: no
184
185 %description client
186 SystemImager is software that automates Linux installs, software
187 distribution, and production deployment.  SystemImager makes it easy to
188 do installs, software distribution, content or data distribution,
189 configuration changes, and operating system updates to your network of
190 Linux machines. You can even update from one Linux release version to
191 another!  It can also be used to ensure safe production deployments.
192 By saving your current production image before updating to your new
193 production image, you have a highly reliable contingency mechanism.  If
194 the new production enviroment is found to be flawed, simply roll-back
195 to the last production image with a simple update command!  Some
196 typical environments include: Internet server farms, database server
197 farms, high performance clusters, computer labs, and corporate desktop
198 environments.
199
200 The client package contains the files needed on a machine for it to
201 be imaged by a SystemImager server.
202
203 %endif
204
205 %package %{_build_arch}boot-%{_boot_flavor}
206 Summary: Software that automates Linux installs, software distribution, and production deployment.
207 Version: %ver
208 Release: %rel
209 License: GPL
210 Group: Applications/System
211 BuildRoot: /tmp/%{name}-%{ver}-root
212 Packager: %packager
213 URL: http://wiki.systemimager.org/
214 Distribution: System Installation Suite
215 Obsoletes: systemimager-%{_build_arch}boot
216 BuildRequires: python, python-devel
217 %if %is_ps3
218 BuildRequires: dtc
219 %endif
220 Requires: systemimager-server >= %{version}
221 AutoReqProv: no
222
223 %description %{_build_arch}boot-%{_boot_flavor}
224 SystemImager is software that automates Linux installs, software
225 distribution, and production deployment.  SystemImager makes it easy to
226 do installs, software distribution, content or data distribution,
227 configuration changes, and operating system updates to your network of
228 Linux machines. You can even update from one Linux release version to
229 another!  It can also be used to ensure safe production deployments. 
230 By saving your current production image before updating to your new
231 production image, you have a highly reliable contingency mechanism.  If
232 the new production enviroment is found to be flawed, simply roll-back
233 to the last production image with a simple update command!  Some
234 typical environments include: Internet server farms, database server
235 farms, high performance clusters, computer labs, and corporate desktop
236 environments.
237
238 The %{_build_arch}boot package provides specific kernel, ramdisk, and fs utilities
239 to boot and install %{_build_arch} Linux machines during the SystemImager autoinstall
240 process.
241
242 %package %{_build_arch}initrd_template
243 Summary: Software that automates Linux installs, software distribution, and production deployment.
244 Version: %ver
245 Release: %rel
246 License: GPL
247 Group: Applications/System
248 BuildRoot: /tmp/%{name}-%{ver}-root
249 Packager: %packager
250 URL: http://wiki.systemimager.org/
251 Distribution: System Installation Suite
252 BuildRequires: python, python-devel, %{python_xml}
253 AutoReqProv: no
254
255 %description %{_build_arch}initrd_template
256 SystemImager is software that automates Linux installs, software
257 distribution, and production deployment.  SystemImager makes it easy to
258 do installs, software distribution, content or data distribution,
259 configuration changes, and operating system updates to your network of
260 Linux machines. You can even update from one Linux release version to
261 another!  It can also be used to ensure safe production deployments.
262 By saving your current production image before updating to your new
263 production image, you have a highly reliable contingency mechanism.  If
264 the new production enviroment is found to be flawed, simply roll-back
265 to the last production image with a simple update command!  Some
266 typical environments include: Internet server farms, database server
267 farms, high performance clusters, computer labs, and corporate desktop
268 environments.
269
270 The %{_build_arch}initrd_template package provides initrd template files for creating custom
271 ramdisk that works with a specific kernel by using UYOK (Use Your Own Kernel).  The custom
272 ramdisk can then be used to boot and install %{_build_arch} Linux machines during the
273 SystemImager autoinstall process.
274
275 %package bittorrent
276 Summary: Software that automates Linux installs, software distribution, and production deployment.
277 Version: %ver
278 Release: %rel
279 License: GPL
280 Group: Applications/System
281 BuildRoot: /tmp/%{name}-%{ver}-root
282 Packager: %packager
283 URL: http://wiki.systemimager.org/
284 Distribution: System Installation Suite
285 Requires: systemimager-server = %{version}, /sbin/chkconfig, perl, perl(Getopt::Long)
286 AutoReqProv: no
287
288 %description bittorrent
289 SystemImager is software that automates Linux installs, software
290 distribution, and production deployment.  SystemImager makes it easy to
291 do installs, software distribution, content or data distribution,
292 configuration changes, and operating system updates to your network of
293 Linux machines. You can even update from one Linux release version to
294 another!  It can also be used to ensure safe production deployments.
295 By saving your current production image before updating to your new
296 production image, you have a highly reliable contingency mechanism.  If
297 the new production enviroment is found to be flawed, simply roll-back
298 to the last production image with a simple update command!  Some
299 typical environments include: Internet server farms, database server
300 farms, high performance clusters, computer labs, and corporate desktop
301 environments.
302
303 The bittorrent package allows you to use the BitTorrent protocol to perform
304 installations.
305
306 %changelog
307 * Sun Dec 02 2007 Bernard Li <bernard@vanhpc.org>
308 - Added dtc to BuildRequires for building ps3-ppc64boot-standard package
309   (new PS3 kernel requires it)
310
311 * Wed Nov 21 2007 Andrea Righi <a.righi@cineca.it>
312 - added systemconfigurator >= 2.2.11 dependency
313
314 * Thu Oct 04 2007 Andrea Righi <a.righi@cineca.it>
315 - Removed systemimager-client dependency from systemimager-initrd-template
316
317 * Sun Sep 02 2007 Bernard Li <bernard@vanhpc.org>
318 - Make function is_ps3 work with different formats of /proc/cpuinfo on the PS3
319
320 * Sat Aug 04 2007 Andrea Righi <a.righi@cineca.it>
321 - Removed unmaintained package imagemanip
322
323 * Fri Aug 03 2007 Andrea Righi <a.righi@cineca.it>
324 - Include missing manpages in the server package
325
326 * Wed Aug 01 2007 Bernard Li <bernard@vanhpc.org>
327 - Add support for ppc64-ps3/kboot
328 - Include dir /etc/systemimager/kboot.cfg
329
330 * Tue May 22 2007 Bernard Li <bernard@vanhpc.org>
331 - Fixed typo: systemimager-server-rsyncd -> systemimager-server-monitord for upgrade service restart
332
333 * Tue Apr 17 2007 Andrea Righi <a.righi@cineca.it>
334 - added systemconfigurator >= 2.2.9 dependency
335
336 * Tue Apr 03 2007 Andrea Righi <a.righi@cineca.it>
337 - added pattern exclusions for si_getimage in /etc/systemimager/getimage.exclude
338
339 * Thu Mar 08 2007 Andrea Righi <a.righi@cineca.it>
340 - Added si_pushoverrides command.
341
342 * Wed Feb 28 2007 Bernard Li <bernard@vanhpc.org>
343 - Change perl(XML::Simple) dependency to >= 2.14 since starting with that version
344   it correctly has the dependency for perl(XML::Parser) (Noted by Andrew M. Lyons)
345
346 * Wed Feb 21 2007 Andrea Righi <a.righi@cineca.it>
347 - Removed deprecated file README.ssh_support
348
349 * Sun Jan 28 2007 Bernard Li <bernard@vanhpc.org>
350 - Added missing directories to filelist for systemimager-server
351
352 * Sun Jan 28 2007 Andrea Righi <a.righi@cineca.it>
353 - Differentiate between upgrade and uninstall operations in all the
354   %preun sections.
355
356 * Sat Jan 27 2007 Andrea Righi <a.righi@cineca.it>
357 - Added a warning about what will remain untouched during the update of
358   the server package
359 - Re-added "Obsoletes" attribute for the boot-standard package.
360
361 * Wed Jan 17 2007 Andrea Righi <a.righi@cineca.it>
362 - Removed "Obsoletes" attribute from boot and initrd_template.
363
364 * Sun Nov 19 2006 Andrea Righi <a.righi@cineca.it>
365 - Moved the BitTorrent dependency for systemimager-bittorrent in %pre
366   section. In this way we have a package compatible both for SuSE and RH
367   distributions.
368
369 * Sun Nov 12 2006 Andrea Righi <a.righi@cineca.it>
370 - Removed python-xml dependency from systemimager-server package (this
371   package is needed only by BitTorrent).
372 - Added python-xml and BitTorrent dependencies for initrd_template
373   package.
374 - Removed python-xml dependency from systemimager-bittorrent (this
375   package is a dependency only for BitTorrent, that is already present
376   in the list of the required packages).
377
378 * Wed Aug 02 2006 Andrea Righi <a.righi@cineca.it>
379 - Updated URLs to http://wiki.systemimager.org
380
381 * Wed Aug 02 2006 Bernard Li <bli@bcgsc.ca>
382 - Officially taking over as packager of SystemImager RPMs
383
384 * Wed Jul 26 2006 Bernard Li <bli@bcgsc.ca>
385 - Prevent RPM from stripping binaries (eg. bittorrent)
386
387 * Tue Jul 11 2006 Bernard Li <bli@bcgsc.ca>
388 - Added code to cleanup buildroot etc.
389
390 * Sun Jul 02 2006 Bernard Li <bli@bcgsc.ca>
391 - After a init service is added, turn it off, because we don't want the
392   service to be turned on after installation (the user should do that)
393
394 * Sat Jun 17 2006 Bernard Li <bli@bcgsc.ca>
395 - Added %doc README.SystemImager_DHCP_options, README.ssh_support and
396   TODO to systemimager-server package
397
398 * Mon Jun 11 2006 Bernard Li <bli@bcgsc.ca>
399 - New package: systemimager-imagemanip
400
401 * Fri Jun 09 2006 Bernard Li <bli@bcgsc.ca>
402 - Added file /etc/systemimager/UYOK.modules_to_include
403
404 * Fri Apr 21 2006 Bernard Li <bli@bcgsc.ca>
405 - New package: systemimager-bittorrent
406 - Requires bittorrent RPM
407
408 * Sun Apr 16 2006 Bernard Li <bli@bcgsc.ca>
409 - Added %post and %preun sections for flamethrower
410
411 * Sat Apr 15 2006 Bernard Li <bli@bcgsc.ca>
412 - Added bits to add/remove init scripts for systemimager-server-{netbootmond
413   monitord,bittorrent}
414 - Added /usr/share/systemimager/icons/* to %files
415
416 * Sun Mar 26 2006 Bernard Li <bli@bcgsc.ca>
417 - Added new function %is_suse to test if we're building on SuSE Linux
418 - Changed python-xml requires such that it is only required on SuSE Linux, otherwise,
419   require PyXML (Red Hat, Fedora, Mandriva)
420
421 * Thu Dec 08 2005 Bernard Li <bli@bcgsc.ca>
422 - New package - %{_build_arch}initrd_template
423
424 * Thu Dec 01 2005 Bernard Li <bli@bcgsc.ca>
425 - Added general description text for systemimager package as this is used by SRPM
426
427 * Thu Nov 17 2005 Bernard Li <bli@bcgsc.ca>
428 - Added ./configure SI_BUILD_DOCS=1 to ensure building of docs
429 - Added docbook-utils to BuildRequires
430
431 * Mon Aug 08 2005 Bernard Li <bli@bcgsc.ca>
432 - Changed requirement of perl-XML-Simple to perl(XML::Simple)
433 - Changed requirement of perl-TermReadKey to perl(Term::ReadKey)
434
435 * Mon Jul 25 2005 Bernard Li <bli@bcgsc.ca>
436 - Added directory /var/lock/systemimager
437
438 * Sat Jul 23 2005 Bernard Li <bli@bcgsc.ca>
439 - Updated Copyright -> License (deprecated)
440 - Added requirement for perl-TermReadKey
441 - Updated requirement for perl-XML-Simple to >= 2.08
442
443 * Sun Dec 19 2004 Josh Aas <josha@sgi.com>
444 - Here is another patch for RPM building. With this patch, you should be
445   able to make an srpm, install it, build from the spec file ("rpmbuild
446   -ba systemimager.spec") and get a full set of RPMs. I assume you want
447   BootMedia stuff in the server RPM.
448
449 * Wed Jun 02 2004 sis devel <sisuite-devel@lists.sourceforge.net> 3.3.1-1
450 - include pre-install and post-install directories
451
452 * Fri Mar 12 2004 sis devel <sisuite-devel@lists.sourceforge.net> 3.2.0-3
453 - html documentation returned to systemimager-server package
454
455 * Wed Mar 10 2004 sis devel <sisuite-devel@lists.sourceforge.net> 3.2.0-2
456 - remove more files created by multiple calls to install phases
457
458 * Wed Mar 03 2004 sis devel <sisuite-devel@lists.sourceforge.net> 3.2.0-1
459
460 * Wed Nov 12 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.6-1
461 - new upstream release
462 - add version dependency for systemimager-flamethrower package
463
464 * Tue Aug 19 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.5-1
465 - new upstream release
466
467 * Tue Jul 14 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.4-1
468 - new upstream release
469
470 * Tue Jul 09 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.3-1
471 - new upstream release
472
473 * Tue Jul 08 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.2-5
474 - add missing Client.pm, pushupdate manpage & overrides readme
475
476 * Sun Jul 06 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.2-4
477 - add missing conf file & state dir to systemimager-server-flamethrower
478
479 * Sat Jul 05 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.2-3
480 - install missing autoinstallscript.template
481
482 * Tue Jul 01 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.2-2
483 - make systemimager-flamethrower depend on flamethrower
484 - patch the x86 config to support sk98lin, so it does not go interactive
485
486 * Tue Jul 01 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.1.2-1
487 - new upstream development release
488
489 * Tue Apr 02 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.0.1-4
490 - fix mkautoinstallcd on ia64 - 751740
491
492 * Tue Apr 02 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.0.1-3
493 - added a patch from bef that no longer sorts module names - 755463
494
495 * Tue Apr 02 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.0.1-2
496 - remove eepro100 (but keep e100) so boel will fit on a floppy again
497
498 * Sun Mar 30 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.0.1-1
499 - new upstream bug-fix release
500
501 * Sun Jan 08 2003 sis devel <sisuite-devel@lists.sourceforge.net> 3.0.0-2
502 - various ia64 fixes
503 - stop attempting to build ps manual
504
505 * Sun Dec 08 2002 sis devel <sisuite-devel@lists.sourceforge.net> 3.0.0-1
506 - new upstream release
507
508 * Sun Nov 18 2002 dann frazier <dannf@dannf.org> 2.9.5-1
509 - new upstream release
510
511 * Sun Oct 27 2002 dann frazier <dannf@dannf.org> 2.9.4-1
512 - new upstream release
513
514 * Thu Oct 13 2002 dann frazier <dannf@dannf.org> 2.9.3-2
515 - added code to migrate users to rsync stubs
516
517 * Thu Oct 02 2002 dann frazier <dannf@dannf.org> 2.9.3-1
518 - new upstream release
519
520 * Thu Sep 19 2002 Sean Dague <sean@dague.net> 2.9.1-1
521 - Added \%if \%{_build_all} stanzas to make building easier.
522
523 * Tue Feb  5 2002 Sean Dague <sean@dague.net> 2.1.1-1
524 - Added section 5 manpages
525 - removed syslinux requirement, as it isn't need for ia64
526
527 * Mon Jan 14 2002 Sean Dague <sean@dague.net> 2.1.0-1
528 - Set Macro to build $ARCHboot packages propperly
529 - Targetted rpms for noarch target (dannf@dannf.org)
530 - Synced up file listing
531
532 * Wed Dec  5 2001 Sean Dague <sean@dague.net> 2.0.1-1
533 - Update SystemImager version
534 - Changed prefix to /usr
535 - Made seperate i386boot package
536
537 * Mon Nov  5 2001 Sean Dague <sean@dague.net> 2.0.0-4
538 - Added build section for true SRPM ability
539
540 * Mon Oct  28 2001 Sean Dague <sean@dague.net> 2.0.0-3
541 - Added common package
542
543 * Sat Oct 20 2001  Sean Dague <sean@dague.net> 2.0.0-2
544 - Recombined client and server into one spec file
545
546 * Thu Oct 18 2001 Sean Dague <sean@dague.net> 2.0.0-1
547 - Initial build
548 - Based on work by Ken Segura <ksegura@5o7.org>
549
550 %prep
551 %setup -q
552
553 make -j11 get_source
554
555 %build
556 cd $RPM_BUILD_DIR/%{name}-%{version}/
557
558 # Make sure we build the docs
559 ./configure SI_BUILD_DOCS=1
560
561 # Only build everything if on x86, this helps with PPC build issues
562 %if %{_build_all}
563 make all
564
565 %else
566 make binaries
567
568 %endif
569
570 %install
571 cd $RPM_BUILD_DIR/%{name}-%{version}/
572
573 %if %{_build_all}
574
575 make install_server_all DESTDIR=/tmp/%{name}-%{ver}-root PREFIX=%prefix
576 make install_client_all DESTDIR=/tmp/%{name}-%{ver}-root PREFIX=%prefix
577 (cd doc/manual_source;make html)
578
579 %else
580
581 make install_binaries DESTDIR=/tmp/%{name}-%{ver}-root PREFIX=%prefix
582
583 %endif
584
585 # Some things that get duplicated because there are multiple calls to
586 # the make install_* phases.
587 find /tmp/%{name}-%{ver}-root/ -name \*~ -exec rm -f '{}' \;
588 #rm -f /tmp/%{name}-%{ver}-root/etc/init.d/systemimager-server-flamethrowerd~
589 #rm -f /tmp/%{name}-%{ver}-root/etc/init.d/systemimager-server-netbootmond~
590 #rm -f /tmp/%{name}-%{ver}-root/etc/init.d/systemimager-server-rsyncd~
591 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/client.conf~
592 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/pxelinux.cfg/default~
593 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/pxelinux.cfg/message.txt~
594 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/pxelinux.cfg/syslinux.cfg~
595 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/pxelinux.cfg/syslinux.cfg.localboot~
596 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/rsync_stubs/10header~
597 # Should I do this?
598 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/rsync_stubs/99local.dist~
599 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/rsync_stubs/99local.dist~~
600 #
601 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/rsync_stubs/README~
602 #rm -f /tmp/%{name}-%{ver}-root/etc/systemimager/updateclient.local.exclude~
603
604 %clean
605 %__rm -rf $RPM_BUILD_DIR/%{name}-%{version}/
606 %__rm -rf $RPM_BUILD_ROOT
607
608 %if %{_build_all}
609
610 %pre server
611 # /etc/systemimager/rsyncd.conf is now generated from stubs stored
612 # in /etc/systemimager/rsync_stubs.  if upgrading from an early
613 # version, we need to create stub files for all image entries
614 if [ -f /etc/systemimager/rsyncd.conf -a \
615     ! -d /etc/systemimager/rsync_stubs ]; then
616     echo "You appear to be upgrading from a pre-rsync stubs release."
617     echo "/etc/systemimager/rsyncd.conf is now auto-generated from stub"
618     echo "files stored in /etc/systemimager/rsync_stubs."
619     echo "Backing up /etc/systemimager/rsyncd.conf to:"
620     echo -n "  /etc/systemimager/rsyncd.conf-before-rsync-stubs... "
621     mv /etc/systemimager/rsyncd.conf \
622       /etc/systemimager/rsyncd.conf-before-rsync-stubs
623
624     ## leave an extra copy around so the postinst knows to make stub files from it
625     cp /etc/systemimager/rsyncd.conf-before-rsync-stubs \
626       /etc/systemimager/rsyncd.conf-before-rsync-stubs.tmp
627     echo "done."
628 fi   
629
630
631 %post server
632 # First we check for rsync service under xinetd and get rid of it
633 # also note the use of DURING_INSTALL, which is used to
634 # support using this package in Image building without affecting
635 # processes running on the parrent
636 if [[ -a /etc/xinetd.d/rsync ]]; then
637     mv /etc/xinetd.d/rsync /etc/xinetd.d/rsync.presis~
638     `pidof xinetd > /dev/null`
639     if [[ $? == 0 ]]; then
640         if [ -z $DURING_INSTALL ]; then
641             /etc/init.d/xinetd restart
642         fi
643     fi
644 fi
645
646 # If we are upgrading from a pre-rsync-stubs release, the preinst script
647 # will have left behind a copy of the old rsyncd.conf file.  we need to parse
648 # it and make stubs files for each image.
649
650 # This assumes that this file has been managed by systemimager, and
651 # that there is nothing besides images entries that need to be carried
652 # forward.
653
654 in_image_section=0
655 current_image=""
656 if [ -f /etc/systemimager/rsyncd.conf-before-rsync-stubs.tmp ]; then
657     echo "Migrating image entries from existing /etc/systemimager/rsyncd.conf to"
658     echo "individual files in the /etc/systemimager/rsync_stubs/ directory..."
659     while read line; do
660         ## Ignore all lines until we get to the image section
661         if [ $in_image_section -eq 0 ]; then
662             echo $line | grep -q "^# only image entries below this line"
663             if [ $? -eq 0 ]; then
664                 in_image_section=1
665             fi
666         else
667             echo $line | grep -q "^\[.*]$"
668             if [ $? -eq 0 ]; then
669                 current_image=$(echo $line | sed 's/^\[//' | sed 's/\]$//')
670                 echo -e "\tMigrating entry for $current_image"
671                 if [ -e "/etc/systemimager/rsync_stubs/40$current_image" ]; then
672                     echo -e "\t/etc/systemimager/rsync_stubs/40$current_image already exists."
673                     echo -e "\tI'm not going to overwrite it with the value from"
674                     echo -e "\t/etc/systemimager/rsyncd.conf-before-rsync-stubs.tmp"
675                     current_image=""
676                 fi
677             fi
678             if [ "$current_image" != "" ]; then
679                 echo "$line" >> /etc/systemimager/rsync_stubs/40$current_image
680             fi
681         fi
682     done < /etc/systemimager/rsyncd.conf-before-rsync-stubs.tmp
683     rm -f /etc/systemimager/rsyncd.conf-before-rsync-stubs.tmp
684     echo "Migration complete - please make sure to migrate any configuration you have"
685     echo "    made in /etc/systemimager/rsyncd.conf outside of the image section."
686 fi
687 ## END make stubs from pre-stub /etc/systemimager/rsyncd.conf file
688
689 /usr/sbin/si_mkrsyncd_conf
690
691 if [[ -a /usr/lib/lsb/install_initd ]]; then
692     /usr/lib/lsb/install_initd /etc/init.d/systemimager-server-rsyncd
693     /usr/lib/lsb/install_initd /etc/init.d/systemimager-server-netbootmond
694     /usr/lib/lsb/install_initd /etc/init.d/systemimager-server-monitord
695 fi
696
697 if [[ -a /sbin/chkconfig ]]; then
698     /sbin/chkconfig --add systemimager-server-rsyncd
699     /sbin/chkconfig systemimager-server-rsyncd off
700     /sbin/chkconfig --add systemimager-server-netbootmond
701     /sbin/chkconfig systemimager-server-netbootmond off
702     /sbin/chkconfig --add systemimager-server-monitord
703     /sbin/chkconfig systemimager-server-monitord off
704 fi
705
706 %preun server
707
708 if [ $1 = 0 ]; then
709         /etc/init.d/systemimager-server-rsyncd stop
710         /etc/init.d/systemimager-server-netbootmond stop
711         /etc/init.d/systemimager-server-monitord stop
712
713         if [[ -a /usr/lib/lsb/remove_initd ]]; then
714             /usr/lib/lsb/remove_initd /etc/init.d/systemimager-server-rsyncd
715             /usr/lib/lsb/remove_initd /etc/init.d/systemimager-server-netbootmond
716             /usr/lib/lsb/remove_initd /etc/init.d/systemimager-server-monitord
717         fi
718
719         if [[ -a /sbin/chkconfig ]]; then
720             /sbin/chkconfig --del systemimager-server-rsyncd
721             /sbin/chkconfig --del systemimager-server-netbootmond
722             /sbin/chkconfig --del systemimager-server-monitord
723         fi
724
725         if [[ -a /etc/xinetd.d/rsync.presis~ ]]; then
726             mv /etc/xinetd.d/rsync.presis~ /etc/xinetd.d/rsync
727             `pidof xinetd > /dev/null`
728             if [[ $? == 0 ]]; then
729                 /etc/init.d/xinetd restart
730             fi
731         fi
732 else
733         echo
734         echo "WARNING: this seems to be an upgrade!"
735         echo
736         echo "Remember that this operation does not touch the following objects:"
737         echo "  - master, pre-install, post-install scripts"
738         echo "  - images"
739         echo "  - overrides"
740         echo
741
742         # This is an upgrade: restart the daemons.
743         echo "Restarting services..."
744         (/etc/init.d/systemimager-server-rsyncd status >/dev/null 2>&1 && \
745                 /etc/init.d/systemimager-server-rsyncd restart) || true
746         (/etc/init.d/systemimager-server-netbootmond status >/dev/null 2>&1 && \
747                 /etc/init.d/systemimager-server-netbootmond restart) || true
748         (/etc/init.d/systemimager-server-monitord status >/dev/null 2>&1 && \
749                 /etc/init.d/systemimager-server-monitord restart) || true
750 fi
751
752 %post flamethrower
753 if [[ -a /usr/lib/lsb/install_initd ]]; then
754     /usr/lib/lsb/install_initd /etc/init.d/systemimager-server-flamethrowerd
755 fi
756
757 if [[ -a /sbin/chkconfig ]]; then
758     /sbin/chkconfig --add systemimager-server-flamethrowerd
759     /sbin/chkconfig systemimager-server-flamethrowerd off
760 fi
761
762 %preun flamethrower
763 if [ $1 = 0 ]; then
764         /etc/init.d/systemimager-server-flamethrowerd stop
765
766         if [[ -a /usr/lib/lsb/remove_initd ]]; then
767             /usr/lib/lsb/remove_initd /etc/init.d/systemimager-server-flamethrowerd
768         fi
769
770         if [[ -a /sbin/chkconfig ]]; then
771             /sbin/chkconfig --del systemimager-server-flamethrowerd
772         fi
773 else
774         # This is an upgrade: restart the daemon.
775         (/etc/init.d/systemimager-server-flamethrowerd status >/dev/null 2>&1 && \
776                 /etc/init.d/systemimager-server-flamethrowerd restart) || true
777 fi
778
779 %post bittorrent
780 if [[ -a /usr/lib/lsb/install_initd ]]; then
781     /usr/lib/lsb/install_initd /etc/init.d/systemimager-server-bittorrent
782 fi
783
784 if [[ -a /sbin/chkconfig ]]; then
785     /sbin/chkconfig --add systemimager-server-bittorrent
786     /sbin/chkconfig systemimager-server-bittorrent off
787 fi
788
789 %pre bittorrent
790 echo "checking for a tracker binary..."
791 BT_TRACKER_BIN=`(which bittorrent-tracker || which bttrack) 2>/dev/null`
792 if [ -z $BT_TRACKER_BIN ]; then
793         echo "WARNING: couldn't find a valid tracker binary!"
794         echo "--> Install the BitTorrent package (bittorrent for RH)."
795         echo "--> For details, please see http://wiki.systemimager.org/index.php/Quick_Start_HOWTO"
796 else
797         echo done
798 fi
799
800 echo "checking for a maketorrent binary..."
801 BT_MAKETORRENT_BIN=`(which maketorrent-console || which btmaketorrent) 2>/dev/null`
802 if [ -z $BT_MAKETORRENT_BIN ]; then
803         echo "WARNING: couldn't find a valid maketorrent binary!"
804         echo "--> Install the BitTorrent package (bittorrent for RH)."
805         echo "--> For details, please see http://wiki.systemimager.org/index.php/Quick_Start_HOWTO"
806 else
807         echo done
808 fi
809
810 echo "checking for a bittorrent binary..."
811 BT_BITTORRENT_BIN=`(which launchmany-console || which btlaunchmany) 2>/dev/null`
812 if [ -z $BT_BITTORRENT_BIN ]; then
813         echo "WARNING: couldn't find a valid bittorrent binary!"
814         echo "--> Install the BitTorrent package (bittorrent for RH)."
815         echo "--> For details, please see http://wiki.systemimager.org/index.php/Quick_Start_HOWTO"
816 else
817         echo done
818 fi
819
820 %preun bittorrent
821 if [ $1 = 0 ]; then
822         /etc/init.d/systemimager-server-bittorrent stop
823
824         if [[ -a /usr/lib/lsb/remove_initd ]]; then
825             /usr/lib/lsb/remove_initd /etc/init.d/systemimager-server-bittorrent
826         fi
827
828         if [[ -a /sbin/chkconfig ]]; then
829             /sbin/chkconfig --del systemimager-server-bittorrent
830         fi
831 else
832         # This is an upgrade: restart the daemon.
833         (/etc/init.d/systemimager-server-bittorrent status >/dev/null 2>&1 && \
834                 /etc/init.d/systemimager-server-bittorrent restart) || true
835 fi
836
837 %files common
838 %defattr(-, root, root)
839 %prefix/bin/si_lsimage
840 %prefix/share/man/man8/si_lsimage*
841 %prefix/share/man/man5/autoinstall*
842 %dir %prefix/lib/systemimager
843 %prefix/lib/systemimager/perl/SystemImager/Common.pm
844 %prefix/lib/systemimager/perl/SystemImager/Config.pm
845 %prefix/lib/systemimager/perl/SystemImager/Options.pm
846 %prefix/lib/systemimager/perl/SystemImager/UseYourOwnKernel.pm
847 %dir /etc/systemimager
848 %config /etc/systemimager/UYOK.modules_to_exclude
849 %config /etc/systemimager/UYOK.modules_to_include
850
851 %files server
852 %defattr(-, root, root)
853 %doc CHANGE.LOG COPYING CREDITS README TODO VERSION
854 %doc README.SystemImager_DHCP_options
855 %doc doc/manual_source/html
856 # These should move to a files doc section, because they are missing if you don't do doc
857 # %doc doc/manual/systemimager* doc/manual/html doc/manual/examples
858 %doc doc/man/autoinstall* doc/examples/local.cfg
859 %dir /var/lock/systemimager
860 %dir /var/log/systemimager
861 %dir /var/lib/systemimager
862 %dir /var/lib/systemimager/images
863 %dir /var/lib/systemimager/scripts
864 %dir /var/lib/systemimager/scripts/pre-install
865 %dir /var/lib/systemimager/scripts/post-install
866 %dir /var/lib/systemimager/overrides
867 /var/lib/systemimager/overrides/README
868 %dir /etc/systemimager
869 %dir %prefix/share/systemimager
870 %dir %prefix/share/systemimager/icons
871 %config /etc/systemimager/pxelinux.cfg/*
872 %config /etc/systemimager/kboot.cfg/*
873 %config /etc/systemimager/autoinstallscript.template
874 %config(noreplace) /etc/systemimager/rsync_stubs/*
875 %config(noreplace) /etc/systemimager/systemimager.conf
876 %config(noreplace) /etc/systemimager/cluster.xml
877 %config(noreplace) /etc/systemimager/getimage.exclude
878 /etc/init.d/systemimager-server-rsyncd
879 /etc/init.d/systemimager-server-netboot*
880 /etc/init.d/systemimager-server-monitord
881 /var/lib/systemimager/images/*
882 /var/lib/systemimager/scripts/post-install/*
883 /var/lib/systemimager/scripts/pre-install/*
884 %prefix/sbin/si_addclients
885 %prefix/sbin/si_cpimage
886 %prefix/sbin/si_getimage
887 %prefix/sbin/si_mk*
888 %prefix/sbin/si_mvimage
889 %prefix/sbin/si_netbootmond
890 %prefix/sbin/si_pushupdate
891 %prefix/sbin/si_pushinstall
892 %prefix/sbin/si_rmimage
893 %prefix/sbin/si_monitor
894 %prefix/sbin/si_monitortk
895 %prefix/bin/si_clusterconfig
896 %prefix/bin/si_mk*
897 %prefix/bin/si_psh
898 %prefix/bin/si_pcp
899 %prefix/bin/si_pushoverrides
900 %prefix/lib/systemimager/perl/SystemImager/Server.pm
901 %prefix/lib/systemimager/perl/SystemImager/Config.pm
902 %prefix/lib/systemimager/perl/SystemImager/HostRange.pm
903 %prefix/lib/systemimager/perl/confedit
904 %prefix/lib/systemimager/perl/BootMedia/*
905 %prefix/share/man/man5/systemimager*
906 %prefix/share/man/man8/si_*
907 %prefix/share/systemimager/icons/*
908
909 %files client
910 %defattr(-, root, root)
911 %doc CHANGE.LOG COPYING CREDITS README VERSION
912 %dir /etc/systemimager
913 %config /etc/systemimager/updateclient.local.exclude
914 %config /etc/systemimager/client.conf
915 %prefix/sbin/si_updateclient
916 %prefix/sbin/si_prepareclient
917 %prefix/share/man/man8/si_updateclient*
918 %prefix/share/man/man8/si_prepareclient*
919 %prefix/lib/systemimager/perl/SystemImager/Client.pm
920
921 %files flamethrower
922 %defattr(-, root, root)
923 %doc CHANGE.LOG COPYING CREDITS README VERSION
924 %dir /var/state/systemimager/flamethrower
925 %config /etc/systemimager/flamethrower.conf
926 /etc/init.d/systemimager-server-flamethrowerd
927
928 %files bittorrent
929 %defattr(-, root, root)
930 %dir /etc/systemimager
931 %dir /var/lib/systemimager/tarballs
932 %dir /var/lib/systemimager/torrents
933 %config /etc/systemimager/bittorrent.conf
934 /etc/init.d/systemimager-server-bittorrent
935 %prefix/sbin/si_installbtimage
936
937 %endif
938
939 %files %{_build_arch}boot-%{_boot_flavor}
940 %defattr(-, root, root)
941 %dir %prefix/share/systemimager/boot/%{_build_arch}
942 %dir %prefix/share/systemimager/boot/%{_build_arch}/standard
943 %prefix/share/systemimager/boot/%{_build_arch}/standard/boel_binaries.tar.gz
944 %prefix/share/systemimager/boot/%{_build_arch}/standard/config
945 %prefix/share/systemimager/boot/%{_build_arch}/standard/initrd.img
946 %prefix/share/systemimager/boot/%{_build_arch}/standard/kernel
947
948 %files %{_build_arch}initrd_template
949 %defattr(-, root, root)
950 %dir %prefix/share/systemimager/boot/%{_build_arch}/standard/initrd_template
951 %prefix/share/systemimager/boot/%{_build_arch}/standard/initrd_template/*
Note: See TracBrowser for help on using the browser.