Bochs/bochs/build/redhat/bochs.rpmspec.template
Bryce Denney 1baa9ea124 - only build the list of plugins on the fly, for now. Leave all other
files specified as before.  This solves the problem of
  "error: cannot remove /usr/share/doc - directory not empty"
  which I was getting when I tried to remove the RPM.
2002-11-19 20:26:09 +00:00

82 lines
2.6 KiB
Plaintext

Summary: Bochs Project x86 PC Emulator
Name: bochs
Version: @SEDVERSION@
Release: 1
License: LGPL
Group: Applications/Emulators
URL:http://bochs.sourceforge.net
Packager:Bryce Denney <bryce.denney@bigfoot.com>
Source:bochs-@SEDVERSION@.tar.gz
BuildRoot: /var/tmp/%{name}-buildroot
%description
Bochs is a portable x86 PC emulation software package that emulates enough of
the x86 CPU, related AT hardware, and BIOS to run DOS, Windows '95, Minix 2.0,
and other OS's, all on your workstation.
%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}
/usr/bin/bochs
/usr/bin/bochs-docs
/usr/bin/bochs-dlx
/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
%post
# for non-X-windows RPM, this script doesn't exist.
if test -x /usr/share/bochs/install-x11-fonts; then
/usr/share/bochs/install-x11-fonts
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