4 %define _utils_version 0.7.9
5 Summary: mkCDrec (make CD-ROM Recovery) disaster recovery tool-set
6 Summary(pl.UTF-8): mkCDrec - zestaw narzędzi do tworzenia płyt do odtwarzania systemu po awarii
12 Source0: http://mkcdrec.ota.be/project/mkCDrec_v%{version}.tar.gz
13 # Source0-md5: 0cbe2efbd083ce9745c5d5c5cea1c7c2
14 Source1: http://mkcdrec.ota.be/project/mkCDrec_v%{_utils_version}_utils.tar.gz
15 # Source1-md5: 3294f58cbc69532f4377224daa544174
16 ##Source10: busybox-1.01.tar.bz2
17 Patch0: %{name}-usebashizms.patch
18 URL: http://mkcdrec.ota.be/
19 BuildRequires: gcc >= 5:2.96
21 Provides: perl(mkcdrec-lib.pl)
22 %if %{_boot_arch} == ia64
25 Requires: parted >= 1.6
27 %if %{_boot_arch} == x86_64
31 %if %{_boot_arch} == x86
32 BuildRequires: syslinux >= 1.60
36 Requires(post): coreutils
40 Requires: cdrtools-mkisofs
41 Requires: perl-base >= 1:5.0
44 Requires: util-linux >= 2.11
45 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
47 %define _prefix /var/opt/mkcdrec
48 %define _webmin_root /usr/lib/webmin
49 %define _webmin_access_file /etc/webmin/webmin.acl
50 %define _webmin_cache_cile /etc/webmin/module.infos.cache
53 mkCDrec (Make CDROM Recovery) makes a bootable (El Torito) disaster
54 recovery image, including backups of the Linux system to one or more
55 CD-ROM(s) (multi-volume sets). Otherwise, the backups can be stored on
56 another disk, NFS disk, or (remote) tape. After a disk crash or system
57 intrusion, the system can be booted from the CD-ROM and one can
58 restore the complete system as it was. It also features disk cloning,
59 which allows one to restore a disk to another disk (the destination
60 disk does not have to be of the same size, as it calculates the
61 partition layout itself). Currently, ext2, ext3, minix, msdos, fat,
62 vfat, reiserfs, xfs and jfs filesystems are supported. One Button
63 Disaster Recovery (OBDR) is also supported as recovery method.
65 %description -l pl.UTF-8
66 mkCDrec (Make CDROM Recovery) tworzy uruchamialny (El Torito) obraz
67 zawierający kopię zapasową systemu na jednej lub większej liczbie
68 płytek CD-ROM. Zamiast wielu płytek można posłużyć się innym dyskiem,
69 NFS-em lub kopią na taśmie. Po awarii systemu albo wejściu intruza
70 system może być uruchomiony z płytki i przywrócony do pierwotnego
71 stanu. mkcdrec obsługuje klonowanie systemu, pozwalające na
72 odtworzenie dysku z innego dysku (dysk docelowy nie musi być tego
73 samego rozmiaru, rozkład partycji jest przeliczany). Aktualnie można
74 używać systemów plików ext2, ext3, minix, msdos, fat, vfat, reiserfs,
75 xfs i jfs. Metoda zwana "One Button Disaster Recovery" (OBDR) jest
79 %setup -q -n %{name} -a 1
82 find . -name CVS | xargs rm -Rf
85 %{__make} -f Makefile.%{_boot_arch} build
88 rm -rf $RPM_BUILD_ROOT
90 install -d $RPM_BUILD_ROOT%{_prefix}/busybox/applets
91 install -d $RPM_BUILD_ROOT%{_bindir}
92 install -d $RPM_BUILD_ROOT%{_prefix}/contributions
93 install -d $RPM_BUILD_ROOT%{_prefix}/modules
94 install -d $RPM_BUILD_ROOT%{_prefix}/scripts/messages
95 install -d $RPM_BUILD_ROOT%{_prefix}/doc
96 install -d $RPM_BUILD_ROOT%{_prefix}/doc/style
97 install -d $RPM_BUILD_ROOT%{_prefix}/doc/images
98 install -d $RPM_BUILD_ROOT%{_prefix}/usr
99 install -d $RPM_BUILD_ROOT%{_prefix}%{_sysconfdir}
100 install -d $RPM_BUILD_ROOT%{_mandir}/man8
101 for fname in busybox*/busybox busybox*/busybox.links; do
102 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/busybox
105 install busybox*/applets/install.sh $RPM_BUILD_ROOT%{_prefix}/busybox/applets
107 for fname in cutstream*/cutstream \
108 pastestream*/pastestream mediacheck/checkisomd5 mediacheck/implantisomd5
110 install -m 755 $fname $RPM_BUILD_ROOT%{_bindir}
112 for fname in contributions/*.sh contributions/mkcdrec; do
113 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/contributions
115 for fname in scripts/messages/*; do
116 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/scripts/messages
118 for fname in `find scripts -type f`; do
119 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/$fname
121 for fname in modules/*; do
122 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/modules
124 for fname in doc/*.html doc/*.gif doc/*.jpg doc/*.png; do
125 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/doc
127 for fname in doc/style/*.css; do
128 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/doc/style
130 for fname in doc/images/*; do
131 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/doc/images
134 for fname in `find etc -type d`; do
135 install -d -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/$fname
137 for fname in `find etc -type f`; do
138 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/$fname
140 for fname in `find usr -type d`; do
141 install -d -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/$fname
143 for fname in `find usr -type f`; do
144 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/$fname
147 for fname in `find . -type f -maxdepth 1`; do
148 install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/$fname
151 install doc/mkcdrec.8 $RPM_BUILD_ROOT%{_mandir}/man8
154 $RPM_BUILD_ROOT%{_prefix}/.cvsignore \
155 $RPM_BUILD_ROOT%{_prefix}/COPYING \
156 $RPM_BUILD_ROOT%{_prefix}/Changelog \
157 $RPM_BUILD_ROOT%{_prefix}/README \
158 ; do rm -f $file ; done
160 # installation of webmin module
162 [ ! -d $RPM_BUILD_ROOT%{_webmin_root}/mkcdrec ] && install -d -m 755 $RPM_BUILD_ROOT%{_webmin_root}/mkcdrec
163 # we copy files in webmin directory
164 #if test -d $RPM_BUILD_ROOT%{_webmin_root}
166 for fname in `find webmin -type d`; do
167 install -d -m 755 $fname $RPM_BUILD_ROOT%{_webmin_root}/`echo $fname | sed -e 's/webmin/mkcdrec/'`
169 for fname in `find webmin -type f`; do
170 install -m 755 $fname $RPM_BUILD_ROOT%{_webmin_root}/`echo $fname | sed -e 's/webmin/mkcdrec/'`
175 rm -rf $RPM_BUILD_ROOT
178 #we add mkcdrec in webmin root's ACL
179 if [ -f %{_webmin_access_file} ]; then
180 cp %{_webmin_access_file} %{_webmin_access_file}.beforemkcdrec.sauv
181 # FIXME: race possible! (fixed name in world writable dir)
182 ed %{_webmin_access_file} << EOF > /tmp/mkcdrec.log 2>&1
184 s/root:/root: mkcdrec/
189 echo "WARNING: it seems that webmin isn't installed on that system.If you install it later, don't forget to add mkcdrec to the list of modules in %{_webmin_access_file} to make mkcdrec's webmin module available."
192 # install the mkcdrec wrapper
193 install -m 750 %{_prefix}/contributions/mkcdrec /usr/sbin/mkcdrec
196 if [ "$1" = 0 ]; then
197 # we remove mkcdrec from webmin root's ACL
199 if [ -f %{_webmin_access_file} ]; then
200 # FIXME: race possible! (fixed name in world writable dir)
201 ed %{_webmin_access_file} << EOF > /tmp/mkcdrec.log 2>&1
207 # rm the mkcdrec wrapper
208 rm -f /usr/sbin/mkcdrec
212 %defattr(644,root,root,755)
213 %doc Changelog README COPYING
216 %config %{_prefix}/Config.sh
218 %{_prefix}/.config.bb
220 %attr(755,root,root) %{_bindir}
221 %{_prefix}/contributions
227 %{_prefix}/linuxrc_find_and_prep_root
228 %{_prefix}/linuxrc_post
229 %{_prefix}/linuxrc_pre
231 %{_prefix}/Makefile.new-powermac
232 %{_prefix}/Makefile.x86
233 %{_prefix}/Makefile.sparc
234 %{_prefix}/Makefile.ia64
235 %{_prefix}/Makefile.x86_64
237 %dir %{_webmin_root}/mkcdrec
238 %{_webmin_root}/mkcdrec/help.cgi
239 %dir %{_webmin_root}/mkcdrec/images
240 %{_webmin_root}/mkcdrec/images/icon
241 %{_webmin_root}/mkcdrec/images/icon.gif
242 %{_webmin_root}/mkcdrec/index.cgi
243 %dir %{_webmin_root}/mkcdrec/lang
244 %{_webmin_root}/mkcdrec/lang/en
245 %{_webmin_root}/mkcdrec/lang/fr
246 %{_webmin_root}/mkcdrec/mkcdrec-lib.pl
247 %{_webmin_root}/mkcdrec/module.info
248 %{_webmin_root}/mkcdrec/save.cgi
249 %{_webmin_root}/mkcdrec/README.webmin