]> git.pld-linux.org Git - SPECS.git/blob - mkcdrec.spec
29485a43c0a4af9556a7b62f3eda458eba9fcc0a
[SPECS.git] / mkcdrec.spec
1 # TODO
2 # - kill race in %post
3 %define         _boot_arch              x86
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
7 Name:           mkcdrec
8 Version:        0.8.9
9 Release:        0.1
10 License:        GPL
11 Group:          Applications
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
20 Requires:       MAKEDEV
21 Provides:       perl(mkcdrec-lib.pl)
22 %if %{_boot_arch} == ia64
23 Requires:       fileutils
24 Requires:       mtools
25 Requires:       parted >= 1.6
26 %endif
27 %if %{_boot_arch} == x86_64
28 Requires:       fileutils
29 Requires:       syslinux
30 %endif
31 %if %{_boot_arch} == x86
32 BuildRequires:  syslinux >= 1.60
33 Requires:       coreutils
34 Requires:       syslinux
35 %endif
36 Requires(post): coreutils
37 Requires(post): ed
38 Requires:       ash
39 Requires:       cdrtools
40 Requires:       cdrtools-mkisofs
41 Requires:       perl-base >= 1:5.0
42 Requires:       rsync
43 Requires:       tar
44 Requires:       util-linux >= 2.11
45 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46
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
51
52 %description
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.
64
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
76 również wpierana.
77
78 %prep
79 %setup -q -n %{name} -a 1
80 %patch0 -p0
81
82 find . -name CVS | xargs rm -Rf
83
84 %build
85 %{__make} -f Makefile.%{_boot_arch} build
86
87 %install
88 rm -rf $RPM_BUILD_ROOT
89
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
103 done
104
105 install busybox*/applets/install.sh $RPM_BUILD_ROOT%{_prefix}/busybox/applets
106
107 for fname in  cutstream*/cutstream \
108  pastestream*/pastestream mediacheck/checkisomd5 mediacheck/implantisomd5
109 do
110         install -m 755 $fname $RPM_BUILD_ROOT%{_bindir}
111 done
112 for fname in contributions/*.sh contributions/mkcdrec; do
113         install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/contributions
114 done
115 for fname in scripts/messages/*; do
116         install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/scripts/messages
117 done
118 for fname in `find scripts -type f`; do
119         install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/$fname
120 done
121 for fname in modules/*; do
122         install -m 755 $fname $RPM_BUILD_ROOT%{_prefix}/modules
123 done
124 for fname in doc/*.html doc/*.gif doc/*.jpg doc/*.png; do
125         install -m 755  $fname $RPM_BUILD_ROOT%{_prefix}/doc
126 done
127 for fname in doc/style/*.css; do
128         install -m 755  $fname $RPM_BUILD_ROOT%{_prefix}/doc/style
129 done
130 for fname in doc/images/*; do
131         install -m 755  $fname $RPM_BUILD_ROOT%{_prefix}/doc/images
132 done
133
134 for fname in `find etc -type d`; do
135         install -d -m 755  $fname $RPM_BUILD_ROOT%{_prefix}/$fname
136 done
137 for fname in `find etc -type f`; do
138         install -m 755  $fname $RPM_BUILD_ROOT%{_prefix}/$fname
139 done
140 for fname in `find usr -type d`; do
141         install -d -m 755  $fname $RPM_BUILD_ROOT%{_prefix}/$fname
142 done
143 for fname in `find usr -type f`; do
144         install -m 755  $fname $RPM_BUILD_ROOT%{_prefix}/$fname
145 done
146
147 for fname in `find . -type f -maxdepth 1`; do
148         install -m 755  $fname $RPM_BUILD_ROOT%{_prefix}/$fname
149 done
150
151 install doc/mkcdrec.8 $RPM_BUILD_ROOT%{_mandir}/man8
152
153 for file in \
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
159
160 # installation of webmin module
161
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}
165
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/'`
168         done
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/'`
171         done
172 #fi
173
174 %clean
175 rm -rf $RPM_BUILD_ROOT
176
177 %post
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
183 /root:
184 s/root:/root: mkcdrec/
185 w
186 q
187 EOF
188 else
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."
190
191 fi
192 # install the mkcdrec wrapper
193 install -m 750 %{_prefix}/contributions/mkcdrec /usr/sbin/mkcdrec
194
195 %postun
196 if [ "$1" = 0 ]; then
197 # we remove mkcdrec from webmin root's ACL
198
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
202 s/mkcdrec//g
203 w
204 q
205 EOF
206 fi
207 # rm the mkcdrec wrapper
208 rm -f /usr/sbin/mkcdrec
209 fi
210
211 %files
212 %defattr(644,root,root,755)
213 %doc Changelog README COPYING
214 %dir %{_prefix}
215 %doc %{_prefix}/doc
216 %config %{_prefix}/Config.sh
217 %{_prefix}/VERSION
218 %{_prefix}/.config.bb
219 %{_prefix}/busybox
220 %attr(755,root,root) %{_bindir}
221 %{_prefix}/contributions
222 %{_prefix}/scripts
223 %{_prefix}/modules
224 %{_prefix}/etc
225 %{_prefix}/usr
226 %{_prefix}/linuxrc
227 %{_prefix}/linuxrc_find_and_prep_root
228 %{_prefix}/linuxrc_post
229 %{_prefix}/linuxrc_pre
230 %{_prefix}/Makefile
231 %{_prefix}/Makefile.new-powermac
232 %{_prefix}/Makefile.x86
233 %{_prefix}/Makefile.sparc
234 %{_prefix}/Makefile.ia64
235 %{_prefix}/Makefile.x86_64
236 %{_mandir}/man8/*
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
This page took 0.210013 seconds and 4 git commands to generate.