%define kversion %(rpm -q --qf '%%{version}-%%{release}' kernel-source-2.6) %define krelease %(rpm -q --qf '%%{release}' kernel-source-2.6) %define kname %(rpm -q --qf '%%{version}.%%{release}' kernel-source-2.6) %define kernel_tree $RPM_BUILD_DIR/mol-%{source_version}/linux-%{kversion} # default is to build mol and build kmods # use --without mol to disable mol build # use --without kmods to disable kmods build %define build_kmods 1 %define build_mol 1 %{?_without_mol: %global build_mol 0} %{?_without_kmods: %global build_kmods 0} %{?_with_mol: %global build_mol 1} %{?_with_kmods: %global build_kmods 1} %define source_version 0.9.71 %define source_pre -pre1 %define package_version 0.9.70 Summary: Native MacOS emulator Name: mol Version: %{package_version} Release: 7mdk License: GPL Group: Emulators Source: http://www.maconlinux.com/downloads/%{name}-%{source_version}%{source_pre}.tar.bz2 Source1: mol_16.png Source2: mol_32.png Source3: mol_48.png Patch1: mol-0.9.71-skbuff-mac-fix.patch.bz2 Patch2: mol-0.9.71-kmod-unresolved-symbols.patch.bz2 URL: http://www.maconlinux.com/ BuildRoot: %_tmppath/%{name}-%{version}-root BuildRequires: XFree86-devel Requires: mol-kernel-modules ExclusiveArch: ppc %description With MOL you can run MacOS under Linux - in full speed! All PowerPC versions of MacOS are supported, including OS/X. %package kmods Summary: Mac-on-Linux kernel modules Group: Emulators Provides: mol-kernel-modules BuildRequires: kernel-source-2.6 BuildRequires: bison flex BuildConflicts: kernel-source-stripped-2.6 Requires: kernel-%{kname} %description kmods This package contains the Mac-on-Linux kernel module needed by MOL. It also contains the networking kernel modules. Built for: kernel-%{kname}. %prep %setup -q -n %{name}-%{source_version} %patch1 -p1 -b .skbuff-mac-fix %patch2 -p1 -b .unresolved-symbols # (sb) copy kernel-source tree, so we can build as a normal user # this will fail if permissions are too restrictive on kernel-source %if %build_kmods cp -ar %{_prefix}/src/linux-%{kversion} . perl -pi -e 's|mdkcustom|mdk|' linux-%{kversion}/Makefile #pushd linux-%{kversion} #make oldconfig #make dep #popd %endif #change default molrc.video to disable console mode for automagic setup perl -pi -e 's|enable_console_video:\tyes|enable_console_video:\tno|g' Doc/config/molrc.video %build ./configure \ --prefix=/usr \ --exec-prefix=/usr \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --sysconfdir=/etc \ --datadir=/usr/share \ --includedir=/usr/include \ --libdir=%{_libdir} \ --libexecdir=%{_libdir} \ --localstatedir=/var/lib \ --sharedstatedir=/usr/com \ --mandir=/usr/share/man \ --infodir=/usr/share/info make defconfig make clean %if build_mol %make BUILD_MODS=n prefix=%{_prefix} %endif # (sb) kernel modules build # (cjw) build for all 2.6 flavors except *BOOT %if %build_kmods if [ -d "%kernel_tree" ] then rm -f %{kernel_tree}/arch/ppc/defconfig-maximum rm -f %{kernel_tree}/arch/ppc/defconfig-BOOT rm -f %{kernel_tree}/arch/ppc/defconfig-power4BOOT rm -rf $RPM_BUILD_DIR/ktrees mkdir $RPM_BUILD_DIR/ktrees for i in %{kernel_tree}/arch/ppc/defconfig* ; do base=`basename $i` ver=`echo $base |awk -F- '{print $2 }'`; cp -al %{kernel_tree} $RPM_BUILD_DIR/ktrees/$base pushd $RPM_BUILD_DIR/ktrees/$base perl -p -i -e "s/^EXTRAVERSION[^.]*(\.[0-9]+)?-.*\$/EXTRAVERSION = \$1-%{krelease}$ver/" Makefile make mrproper > /dev/null cp $i .config make oldconfig > /dev/null 2>&1 make include/linux/version.h make include/asm make scripts popd make modules NETMODS=y KERNEL_TREES=$RPM_BUILD_DIR/ktrees/$base done rm -rf $RPM_BUILD_DIR/ktrees %{kernel_tree} fi %endif %install rm -fr %buildroot %if build_mol %makeinstall_std prefix=%{_prefix} # (sb) move the docs and let rpm install them rm -fr moldoc mv -f $RPM_BUILD_ROOT/usr/share/doc/mol-%{source_version} moldoc mkdir -p $RPM_BUILD_ROOT%{_menudir} cat << EOF > $RPM_BUILD_ROOT%{_menudir}/%{name} ?package(%{name}):command="%{_bindir}/startmol" \ needs="x11" section="Applications/Emulators" title="MOL" \ longtitle="MOL - Mac On Linux" icon="%{name}.png" EOF cat << EOF > $RPM_BUILD_ROOT%{_menudir}/%{name}OSX ?package(%{name}):command="%{_bindir}/startmol -X" \ needs="x11" section="Applications/Emulators" title="MOL - OSX" \ longtitle="MOL - Mac On Linux" icon="%{name}.png" EOF mkdir -p $RPM_BUILD_ROOT%{_miconsdir} $RPM_BUILD_ROOT%{_liconsdir} cp %{SOURCE1} $RPM_BUILD_ROOT%{_miconsdir}/%{name}.png cp %{SOURCE2} $RPM_BUILD_ROOT%{_iconsdir}/%{name}.png cp %{SOURCE3} $RPM_BUILD_ROOT%{_liconsdir}/%{name}.png %endif %if %build_kmods # (sb) install kernel modules if we built them make install-modules DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} %endif # (sb) unpackaged files %if !%build_mol rm -fr $RPM_BUILD_ROOT/%{_bindir} rm -fr $RPM_BUILD_ROOT/%{_datadir} rm -fr $RPM_BUILD_ROOT/%{_localstatedir} rm -fr $RPM_BUILD_ROOT/%{_sysconfdir} rm -fr $RPM_BUILD_ROOT/%{_menudir} rm -fr $RPM_BUILD_ROOT/%{_libdir}/%{name}/%{source_version}/bin rm -fr $RPM_BUILD_ROOT/%{_libdir}/%{name}/%{source_version}/%{name}* %endif %if !%build_kmods rm -fr $RPM_BUILD_ROOT/%{_libdir}/%{name}/%{source_version}/modules/* %endif %post %update_menus %postun %clean_menus %post kmods if [ ! -e /dev/sheep_net ]; then mknod /dev/sheep_net c 10 198 fi %clean rm -fr %buildroot %define _mol_libdir %{_libdir}/mol/%{source_version} %define _mol_datadir %{_datadir}/mol/%{source_version} %define _mol_localstatedir /var/lib/mol %if %build_mol %files %defattr(-,root,root) %doc moldoc %dir %_sysconfdir/mol %config(noreplace) %_sysconfdir/mol/session.map %config(noreplace) %_sysconfdir/mol/tunconfig %config(noreplace) %_sysconfdir/mol/dhcpd-mol.conf %config(noreplace) %_sysconfdir/mol/molrc.input %config(noreplace) %_sysconfdir/mol/molrc.linux %config(noreplace) %_sysconfdir/mol/molrc.macos %config(noreplace) %_sysconfdir/mol/molrc.video %config(noreplace) %_sysconfdir/mol/molrc.net %config(noreplace) %_sysconfdir/mol/molrc.ow %config(noreplace) %_sysconfdir/mol/molrc.osx %config(noreplace) %_sysconfdir/mol/yaboot.conf %config(noreplace) %_sysconfdir/mol/molrc.sound %_mol_localstatedir/nvram.nw %_mandir/man?/* %_bindir/startmol %_bindir/molvconfig #%_bindir/mol %_bindir/molrcget %dir %_mol_libdir/modules %_mol_libdir/bin %_mol_libdir/mol.symbols %_mol_datadir/images %_mol_datadir/oftrees %_mol_datadir/drivers %_mol_datadir/syms %_mol_datadir/vmodes %_mol_datadir/nvram %_mol_datadir/graphics %_mol_datadir/startboing %dir %_mol_datadir/config %_mol_datadir/config/molrc.sys %_mol_datadir/config/molrc.post %dir %_mol_localstatedir %{_menudir}/mol %{_menudir}/molOSX %{_iconsdir}/*.png %{_miconsdir}/*.png %{_liconsdir}/*.png %endif %if %build_kmods %files kmods %defattr(-,root,root) %_mol_libdir/modules/* %endif %changelog * Mon Mar 28 2005 Christiaan Welvaart <cjw@daneel.dyndns.org> 0.9.70-7mdk - rebuild for kernel 2.6.11-6mdk * Mon Mar 14 2005 Christiaan Welvaart <cjw@daneel.dyndns.org> 0.9.70-6mdk - add BuildRequires: bison flex, BuildConflicts: kernel-source-stripped for kmods - add BuildRequires: XFree86-devel - kernel 2.6.11-2mdk * Sun Feb 06 2005 Christiaan Welvaart <cjw@daneel.dyndns.org> 0.9.70-5mdk - patch2: fix unresolved symbols in kernel modules * Sun Feb 06 2005 Christiaan Welvaart <cjw@daneel.dyndns.org> 0.9.70-4mdk - kernel 2.6.10-1mdk - patch1: fix build * Sat Oct 23 2004 Christiaan Welvaart <cjw@daneel.dyndns.org> 0.9.70-3mdk - kernel 2.6.8.1-12.2mdk * Tue Sep 14 2004 Christiaan Welvaart <cjw@daneel.dyndns.org> 0.9.70-2mdk - 0.9.71-pre1 - build mol-kmods for all kernels except *BOOT * Wed May 5 2004 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.70-1mdk - 0.9.70 - merge mol-kmods into this spec - use switches to build kmods, mol, or both (default is mol only) - use existing kernel-source, deps on mol-kmods to this kernel * Fri Jan 2 2004 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.68-6mdk - not sure why this src rpm got lost, couple of spec fixes * Thu Mar 27 2003 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.68-5mdk - menu entry for OS/X * Wed Mar 26 2003 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.68-4mdk - don't use %%configure macro - fix OS/X keyboard repeat issue * Mon Mar 17 2003 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.68-3mdk - disable console mode for default install - add menu entry * Tue Mar 11 2003 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.68-2mdk - fix file attributes * Mon Mar 10 2003 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.68-1mdk - new release * Sat Dec 28 2002 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.66-1mdk - new release * Tue Oct 29 2002 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.65-1mdk - new release, patch for expand_stack (thx Samuel) (patch0) * Thu Mar 28 2002 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.60-5mdk - fix build with latest headers * Tue Jan 8 2002 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.60-4mdk - add BenH patch to fix altivec/G4 mode * Mon Nov 12 2001 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.60-3mdk - make clear in description that OS/X is not supported * Thu Nov 1 2001 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.60-2mdk - new version for cooker, cleanup .spec, modify default molrc for safe mode - kernel modules now built in mol-kmods package * Wed Aug 15 2001 Stew Benedict <sbenedict@mandrakesoft.com> 0.9.60-1mdk - new version courtesy of Samuel Rydh <samuel@ibrium.se> * Mon Aug 13 2001 Stew Benedict <sbenedict@mandrakesoft.com> 0.8.58.1.1mdk - build against 2.4.4-6.2mdk kernel * Mon May 14 2001 David BAUDENS <baudens@mandrakesoft.com> 0.9.58-1mdk - 0.9.58 * Wed Apr 18 2001 David BAUDENS <baudens@mandrakesoft.Com> 0.9.57-1mdk - 0.9.57 * Tue Oct 31 2000 David BAUDENS <baudens@mandrakesoft.com> 0.9.53-2_1mdk - O.9.53-2 * Thu Oct 26 2000 David BAUDENS <baudens@mandrakesoft.com> 0.9.52-1mdk - 0.9.52 * Mon Oct 23 2000 David BAUDENS <baudens@mandrakesoft.con> 0.9.51-1mdk - 0.9.51 * Fri Oct 21 2000 David BAUDENS <baudens@mandrakesoft.com> 0.9.50-1mdk - First spec for Linux-Mandrake distribution