فهرست منبع

new package: bochs 2.0 (IA-32 Emulator)

Ralf S. Engelschall 23 سال پیش
والد
کامیت
0b517dea8e
1فایلهای تغییر یافته به همراه164 افزوده شده و 0 حذف شده
  1. 164 0
      bochs/bochs.spec

+ 164 - 0
bochs/bochs.spec

@@ -0,0 +1,164 @@
+##
+##  bochs.spec -- OpenPKG RPM Specification
+##  Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
+##  Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
+##  Copyright (c) 2000-2002 Ralf S. Engelschall <rse@engelschall.com>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE.
+##
+
+#   package information
+Name:         bochs
+Summary:      IA-32 Emulator
+URL:          http://bochs.sourceforge.net/ 
+Vendor:       John Doe
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [EVAL]
+Group:        Misc
+License:      LGPL
+Version:      2.0
+Release:      20021229
+
+#   list of sources
+Source0:      http://osdn.dl.sourceforge.net/sourceforge/bochs/bochs-%{version}.tar.gz
+Source1:      http://osdn.dl.sourceforge.net/sourceforge/bochs/fdos-10meg.tar.gz
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20021218, X11, gcc
+PreReq:       OpenPKG, openpkg >= 20021218, X11
+AutoReq:      no
+AutoReqProv:  no
+
+%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 or
+    Pentium CPU. Bochs is capable of running most Operating Systems
+    inside the emulation including Linux, Windows, DOS, etc.
+
+    This package also contains a pre-configured FreeBSD 8h1 image
+    for Bochs demonstration purposes and to see Bochs running easily.
+
+    Options: none
+
+%prep
+    %setup0 -q
+    %setup1 -q -T -D -a 1
+
+    #   remove CVS sub-directories because they would be
+    #   picked up by "make install" later.
+    find . -type d -name CVS -print | xargs rm -rf
+
+%build
+    #   make sure Bochs find the global configuration
+    %{l_shtool} subst \
+        -e 's;/etc/bochsrc;%{l_prefix}/etc/bochs/bochsrc;' \
+        main.cc
+
+    #   configure the sources
+    CC="%{l_cc}" \
+    CXX="%{l_cxx}" \
+    CFLAGS="%{l_cflags -O}" \
+    CXXFLAGS="%{l_cxxflags -O}" \
+    ./configure \
+        --prefix=%{l_prefix} \
+        --with-x11 \
+        --x-includes=`%{l_prefix}/etc/rc --query x11_incdir` \
+        --x-libraries=`%{l_prefix}/etc/rc --query x11_libdir` \
+        --enable-cpu-level=5 \
+        --enable-all-optimizations \
+        --enable-cdrom \
+        --enable-ne2000 \
+        --disable-shared
+
+    #   build the sources
+    %{l_make} %{l_mflags -O}
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+
+    #   pre-generate extra directories
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/bochs \
+        $RPM_BUILD_ROOT%{l_prefix}/libexec/bochs
+
+    #   perform standard installation procedure
+    %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
+
+    #   post-adjust manual pages
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/bochs-dlx.1.gz
+    %{l_gzip} -d $RPM_BUILD_ROOT%{l_prefix}/man/man*/*.gz
+
+    #   provide configuration file
+    mv $RPM_BUILD_ROOT%{l_prefix}/share/doc/bochs/bochsrc-sample.txt \
+       $RPM_BUILD_ROOT%{l_prefix}/etc/bochs/bochsrc.sample
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/doc
+
+    #   provide VGA font directory
+    ( cd $RPM_BUILD_ROOT%{l_prefix}/share/bochs
+      rm -f install-x11-fonts test-x11-fonts
+      mkdir fonts; mv vga.pcf fonts/
+      x11_bindir=`%{l_prefix}/etc/rc --query x11_bindir`
+      $x11_bindir/mkfontdir fonts
+    )
+
+    #   provide executable wrapper which finds the VGA font
+    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+    mv $RPM_BUILD_ROOT%{l_prefix}/bin/bochs \
+       $RPM_BUILD_ROOT%{l_prefix}/libexec/bochs/
+    ( echo "#!/bin/sh"
+      echo "xset fp+ %{l_prefix}/share/bochs/fonts"
+      echo "exec %{l_prefix}/libexec/bochs/bochs \${1+\"\$@\"}"
+    ) >$RPM_BUILD_ROOT%{l_prefix}/bin/bochs
+    chmod a+x $RPM_BUILD_ROOT%{l_prefix}/bin/bochs
+
+    #   install FreeDOS image as default scratch OS
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/share/bochs/img
+    %{l_shtool} install -c -m 644 \
+        fdos-10meg/fdosmini.img \
+        $RPM_BUILD_ROOT%{l_prefix}/share/bochs/img/freedos.img
+    %{l_shtool} install -c -m 644 \
+        -e 's;$BXBIOS;%{l_prefix}/share/bochs;g' \
+        -e 's;fdosmini.img;%{l_prefix}/share/bochs/img/freedos.img;g' \
+        -e '/vga_update_interval.*/d' \
+        -e '/realtime_pit/d' \
+        fdos-10meg/bochsrc.txt \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/bochs/bochsrc
+
+    #   determine installation files
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+
+%post
+    if [ $1 -eq 1 ]; then
+        ( echo "Hint: This Bochs package has a FreeDOS image pre-installed"
+          echo "In order to run it as a regular user, you either have to"
+          echo "change the permissions and/or the ownership of the image file"
+          echo "%{l_prefix}/share/bochs/img/freedos.img manually."
+        ) | %{l_rpmtool} msg -b -t notice
+    fi
+