Summary: Bochs Project x86 PC Emulator Name: bochs Version: @SEDVERSION@ Release: 1 License: LGPL Group: Applications/Emulators URL:http://bochs.sourceforge.net Packager:Volker Ruppert Source:bochs-@SEDVERSION@.tar.gz BuildRoot: /var/tmp/%{name}-buildroot %description Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS. Currently, Bochs can be compiled to emulate a 386, 486, Pentium, Pentium Pro or AMD64 CPU, including optional MMX, SSE, SSE2 and 3DNow! instructions. Bochs is capable of running most Operating Systems inside the emulation including Linux, DOS, Windows® 95/98 and Windows® NT/2000. %define pkg_name bochs %prep rm -rf $RPM_BUILD_DIR/bochs-@SEDVERSION@ tar xzvf $RPM_SOURCE_DIR/bochs-@SEDVERSION@.tar.gz if test "/" != $RPM_BUILD_ROOT; then rm -rf $RPM_BUILD_ROOT fi %build cd $RPM_BUILD_DIR/bochs-@SEDVERSION@ CONFIGURE_ARGS="--prefix=/usr --mandir=$RPM_BUILD_ROOT/%{_mandir}" export CONFIGURE_ARGS sh .conf.linux make make unpack_dlx # must use prefix=/usr since this step sets up # the paths in dlx bochsrc file. %install pwd cd $RPM_BUILD_DIR/bochs-@SEDVERSION@ for i in "" usr usr/bin usr/lib usr/share usr/share/doc %{_mandir}; do if ! test -d $RPM_BUILD_ROOT/$i; then mkdir $RPM_BUILD_ROOT/$i; fi done make install install_dlx prefix=$RPM_BUILD_ROOT/usr # Build list of plugins on the fly (if any). This allows the # spec file to support RPM building with or without plugins. cd $RPM_BUILD_ROOT find ./usr/lib -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > \ $RPM_BUILD_DIR/file.list.%{pkg_name} find ./usr/lib -type f | sed -e 's,^\.,\%attr(-\,root\,root) ,' \ -e '/\/etc\//s|^|%config|' >> \ $RPM_BUILD_DIR/file.list.%{pkg_name} find ./usr/lib -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> \ $RPM_BUILD_DIR/file.list.%{pkg_name} # We could use the same technique to produce the complete file list, # with only one very minor problem: it lists directories that are # used by other programs, so when you remove the package you get # errors like # error: cannot remove /usr/share/doc - directory not empty %files -f file.list.%{pkg_name} %defattr(-, root, root) /usr/bin/bochs /usr/bin/bochs-dlx /usr/bin/bxcommit /usr/bin/bximage /usr/share/bochs/* /usr/share/doc/* %{_mandir}/* %clean rm -rf $RPM_BUILD_DIR/bochs-@SEDVERSION@ rm -rf $RPM_BUILD_DIR/file.list.%{pkg_name} if test "/" != $RPM_BUILD_ROOT; then rm -rf $RPM_BUILD_ROOT fi %preun # clean up the bochsout.txt that is always produced if you # run bochs-dlx. rm -rf /usr/share/bochs/dlxlinux/bochsout.txt core %postun rmdir /usr/share/bochs > /dev/null 2>&1