%global major 4
%global minor 10
%global patch 2
%global rev 2614
%global vmver %{major}.%{minor}.%{patch}.%{rev}
%global vmver2 %{major}.%{minor}.%{patch}-%{rev}
%global source Squeak-%{vmver}-src-no-mp3
Name: squeak-vm
Version: %{vmver}
Release: 19%{?dist}
Summary: The Squeak virtual machine
Group: Development/Languages
License: MIT
URL: http://squeakvm.org/unix
Source0: http://squeakvm.org/unix/release/%{source}.tar.gz
Source1: inisqueak
Source2: squeak-desktop-files.tar.gz
Patch0: squeak-vm-dprintf.patch
Patch1: alsa-fixes.patch
Patch2: squeak-vm-4.10.2-fix-cmake.patch
Patch3: squeak-vm-4.10.2-squeak-init-fix.patch
Patch4: squeak-vm-4.10.2-format-security.patch
# For clean upgrade path, could be probably dropped in F20 or later
Provides: %{name}-nonXOplugins = %{version}-%{release}
Obsoletes: %{name}-nonXOplugins < 4.10.2.2614-1
Requires: xorg-x11-apps
BuildRequires: cmake
BuildRequires: libX11-devel libXt-devel libvorbis-devel libtheora-devel speex-devel
BuildRequires: dbus-devel alsa-lib-devel pango-devel gstreamer-devel mesa-libGL-devel
BuildRequires: libICE-devel libSM-devel libXext-devel libuuid-devel
BuildRequires: libffi-devel nas-devel pulseaudio-libs-devel libxml2-devel glib2-devel
BuildRequires: cairo-devel, libv4l-devel
%description
Squeak is a full-featured implementation of the Smalltalk programming
language and environment based on (and largely compatible with) the original
Smalltalk-80 system.
This package contains just the Squeak virtual machine.
%prep
%setup -q -n %{source} -a 2
%patch0 -p1 -b .dprintf
%patch1 -p2 -b .alsa-fixes
%patch2 -p1 -b .fix-cmake
%patch3 -p1 -b .squeak-init-fix
%patch4 -p1 -b .format-security
# Fix libdir
sed -i 's|libdir="${prefix}/lib/squeak"|libdir="%{_libdir}/squeak"|' unix/cmake/squeak.in
%build
mkdir -p bld
cd bld
%cmake ../unix -DCMAKE_VERBOSE_MAKEFILE=ON -DVM_HOST="%{_host}" -DVM_VERSION="%{vmver2}" -DPLATFORM_SOURCE_VERSION="%{rev}"
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
make -C bld install DESTDIR=%{buildroot}
# these files will be put in std RPM doc location
rm -rf %{buildroot}%{_prefix}/doc/squeak
# install the desktop stuff
install -D --mode=u=rw,go=r squeak.xml %{buildroot}%{_datadir}/mime/packages/squeak.xml
install -D --mode=u=rw,go=r squeak.png %{buildroot}%{_datadir}/pixmaps/squeak.png
%global icons_dir %{buildroot}%{_datadir}/icons/gnome
for size in 16 24 32 48 64 72 96
do
mkdir -p %{icons_dir}/${size}x${size}/mimetypes
install -m0644 squeak${size}.png %{icons_dir}/${size}x${size}/mimetypes/application-x-squeak-image.png
install -m0644 squeaksource${size}.png %{icons_dir}/${size}x${size}/mimetypes/application-x-squeak-source.png
done
# Remove squeak.sh & mysqueak, obsoleted
rm -f %{buildroot}%{_bindir}/squeak.sh
# Install own version of inisqueak
install -m0755 %{SOURCE1} %{buildroot}%{_bindir}/inisqueak
%files
%defattr(-,root,root,-)
%doc unix/ChangeLog unix/doc/{README*,LICENSE,*RELEASE_NOTES}
%{_bindir}/*
%dir %{_libdir}/squeak
%dir %{_libdir}/squeak/%{vmver2}
%if 0 == 0%{?nonXOplugins}
%{_libdir}/squeak/%{vmver2}/so.FileCopyPlugin
%{_libdir}/squeak/%{vmver2}/so.B3DAcceleratorPlugin
#%{_libdir}/squeak/%{vmver2}/so.PseudoTTYPlugin
%{_libdir}/squeak/%{vmver2}/so.UnixOSProcessPlugin
%{_libdir}/squeak/%{vmver2}/so.XDisplayControlPlugin
%{_libdir}/squeak/%{vmver2}/so.AioPlugin
%{_libdir}/squeak/%{vmver2}/so.ClipboardExtendedPlugin
%{_libdir}/squeak/%{vmver2}/so.DBusPlugin
#%{_libdir}/squeak/%{vmver2}/so.GStreamerPlugin
#%{_libdir}/squeak/%{vmver2}/so.ImmX11Plugin
#%{_libdir}/squeak/%{vmver2}/so.KedamaPlugin
#%{_libdir}/squeak/%{vmver2}/so.KedamaPlugin2
%{_libdir}/squeak/%{vmver2}/so.MIDIPlugin
#%{_libdir}/squeak/%{vmver2}/so.OggPlugin
%{_libdir}/squeak/%{vmver2}/so.RomePlugin
%{_libdir}/squeak/%{vmver2}/so.Squeak3D
%{_libdir}/squeak/%{vmver2}/so.UUIDPlugin
#%{_libdir}/squeak/%{vmver2}/so.VideoForLinuxPlugin
%{_libdir}/squeak/%{vmver2}/so.HostWindowPlugin
#%{_libdir}/squeak/%{vmver2}/npsqueak.so
#%{_libdir}/squeak/%{vmver2}/squeak
%{_libdir}/squeak/%{vmver2}/so.vm-display-X11
%{_libdir}/squeak/%{vmver2}/so.vm-display-fbdev
%{_libdir}/squeak/%{vmver2}/so.vm-display-null
%{_libdir}/squeak/%{vmver2}/so.vm-sound-ALSA
%{_libdir}/squeak/%{vmver2}/so.vm-sound-OSS
%{_libdir}/squeak/%{vmver2}/so.vm-sound-null
#%{_libdir}/squeak/%{vmver2}/so.Mpeg3Plugin
%{_libdir}/squeak/%{vmver2}/so.SqueakFFIPrims
%{_libdir}/squeak/%{vmver2}/so.vm-display-custom
%{_libdir}/squeak/%{vmver2}/so.vm-sound-NAS
%{_libdir}/squeak/%{vmver2}/so.vm-sound-custom
%{_libdir}/squeak/%{vmver2}/so.vm-sound-pulse
%{_libdir}/squeak/%{vmver2}/squeakvm
# 4.10 plugins
%{_libdir}/squeak/%{vmver2}/ckformat
%{_libdir}/squeak/%{vmver2}/so.CameraPlugin
%{_libdir}/squeak/%{vmver2}/so.ScratchPlugin
%{_libdir}/squeak/%{vmver2}/so.UnicodePlugin
%{_libdir}/squeak/%{vmver2}/so.WeDoPlugin
%endif
%{_mandir}/man*/*
#%dir %{_datadir}/squeak
#%{_datadir}/squeak/*
%{_datadir}/pixmaps/*
%{_datadir}/mime/packages/*.xml
%{_datadir}/icons/gnome/*/mimetypes/*.png
%changelog
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.2.2614-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.10.2.2614-18
- Remove obsolete scriptlets
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.2.2614-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.2.2614-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.2.2614-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.2.2614-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.10.2.2614-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Oct 02 2014 Rex Dieter <rdieter@fedoraproject.org> 4.10.2.2614-12
- update icon/mime scriptlets
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.10.2.2614-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.10.2.2614-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Fri Dec 6 2013 Jaroslav Škarvada <jskarvad@redhat.com> - 4.10.2.2614-9
- Fixed compilation with -Werror=format-security
Resolves: rhbz#1037336
- Fixed bogus dates in changelog (best effort)
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.10.2.2614-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Apr 15 2013 Daniel Drake <dsd@laptop.org> - 4.10.2.2614-7
- Add upstream fixes for ALSA sound backend, needed for OLPC.
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.10.2.2614-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Dec 21 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 4.10.2.2614-5
- Removed desktop file
Resolves: rhbz#544256
* Mon Nov 26 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 4.10.2.2614-4
- Another upgrade path fix
* Sun Nov 25 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 4.10.2.2614-3
- Rebuilt with RPM_OPT_FLAGS and made build more verbose
Resolves: rhbz#879974
* Fri Nov 23 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 4.10.2.2614-2
- Fixed upgrade path from older Fedoras
* Fri Nov 23 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 4.10.2.2614-1
- New version
Resolves: rhbz#861633, rhbz#861970, rhbz#856016
- Fixed desktop file
Resolves: rhbz#544256
- Merged nonXOplugins to main package
- Replaced defines by globals
- Added own version of inisqueak
- Fixed squeak startup script (by squeak-init-fix patch)
- Removed squeak.sh and mysqueak
- Removed sources symlinks
- Dropped alsa-scratchy-sound patch (upstreamed)
- Dropped imgdir, rpath patches (not needed)
- Defuzzification of patches
- Added xmessage requirement (xorg-x11-apps)
- Fixed bogus dates in changelog
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.5-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed Mar 7 2012 Daniel Drake <dsd@laptop.org> - 3.10.5-8
- Fix build, by temporarily excluding V4L plugin (for now).
- A V4L2 port is in progress.
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.5-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Mon Jun 21 2010 Daniel Drake <dsd@laptop.org> - 3.10.5-5
- Add upstream patch to fix sound loss during suspend/resume
* Mon Dec 28 2009 Daniel Drake <dsd@laptop.org> - 3.10.5-4
- forgot to add patch to cvs; retag
* Mon Dec 28 2009 Daniel Drake <dsd@laptop.org> - 3.10.5-3
- Add (already upstream) patch to fix crackly sound output
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Mon Jul 20 2009 Gavin Romig-Koch <gavin@redhat.com> - 3.10.5-1
- upgrade to new upstream
- work around dprintf problem
- UUID lib now in libuuid-devel (moved from e2fsprogs-devel)
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Tue Jan 20 2009 Gavin Romig-Koch <gavin@redhat.com> - 3.10.4-3
- SqueakFFIPrims only works on ix86 and ppc
- add a missing dir macro
- correct the requires on -nonXOplugins
- correct handling of no nonXOplugins
* Mon Jan 19 2009 Gavin Romig-Koch <gavin@redhat.com> - 3.10.4-3
- add missing build dependancy for UUIDPlugin
- add missing defattr macro
- corrections needed by rpmlint
* Sat Jan 17 2009 Gavin Romig-Koch <gavin@redhat.com> - 3.10.3-4
- upgrade to upstream 3.10.3-4
- switch from svn to tarball as upstream source
* Wed Jan 07 2009 Gavin Romig-Koch <gavin@redhat.com> - 3.10.3-3
- split out nonXOplugins
- corrected script requirements
* Tue Nov 25 2008 Gavin Romig-Koch <gavin@redhat.com> - 3.10.3-2
- Fix rpmlint problems
- mode of squeak-vm-tarball-from-svn.sh
- squeak.desktop: Icon, MimeType, Encoding
- move the _libdir .source links into this, non-noarch, rpm
- remove x mode of a number of .c and .h source files from upstream
- use explicit --mode when installing files
- replace tabs with spaces
- shbang for mysqueak
* Tue Jul 29 2008 Gavin Romig-Koch <gavin@redhat.com> - 3.10.3-1
- incorporated slightly modified Desktop related changes from
Gerard Milmeister <gemi@bluewin.ch>
- update .spec to Fedora Guidelines
- add mysqueak
- olpc macro to distinguish olpc builds
- distinguish between squeak image icons, and squeak source icons
* Mon Jul 07 2008 Bert Freudenberg <bert@freudenbergs.de>
- 3.10-3olpc5; SVN r. 1899
- re-enable new (IPv6) socket primitives (bf)
- RomePlugin pango fixes (yo)
* Mon Jun 23 2008 Bert Freudenberg <bert@freudenbergs.de>
- 3.10-3olpc4; SVN r. 1895
- RomePlugin pango fixes (yo)
- X11 drag-and-drop fixes (tak)
* Tue Jun 03 2008 Bert Freudenberg <bert@freudenbergs.de>
- 3.10-3olpc3; SVN r.1889
- prefer 24 and 16 bpp over 32 to fix alpha issue in compositing desktops (bf)
* Mon May 19 2008 Bert Freudenberg <bert@freudenbergs.de>
- 3.10-3olpc2; SVN r.1879
- re-add big cursor support (bf)
* Wed May 14 2008 Bert Freudenberg <bert@freudenbergs.de>
- 3.10-3olpc1; SVN r. 1878
- updated DBus plugin (incompatible w/ previous versions)
- add plugins: GStreamer, ImmX11, Aio
- fixed international keyboard input
- merged with trunk
* Fri Jan 04 2008 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-12olpc5; SVN r. 1811
- remove Mpeg3Plugin
- fix KedamaPlugin2 (exports where not listed)
- fix show-source key
- fix SEGFAULT in OggPlugin
- add RomePlugin w/ Pango support
- fix drag-n-drop
* Mon Dec 03 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-12olpc4: SVN r. 1795
- fix dbus plugin not zero-terminating some strings (bf)
* Wed Oct 31 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-12olpc3: SVN r. 1787
- fixed errors about state checking in drag and drop (tak)
- make cursor keys work with utf32 char code (yo)
- add SetSwitch, GetSwitch, and SetDevice mixer functions (yo)
* Tue Oct 23 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-12olpc2: SVN r. 1779
- use CPPFLAGS not CFLAGS for -DSUGAR
- handle view-source key (bf)
* Mon Oct 15 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-12olpc1: SVN r. 1776
- merged with trunk (bf)
- signed oop fixes (dave)
- unicode key events (ian)
- fix dbus plugin (bf)
* Thu Aug 30 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-11olpc5: SVN r. 1761
- set _NET_WM_PID to our process id (danw)
- generate WindowEventClose on delete window message (ian)
* Tue Jul 17 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-11olpc4: SVN r. 1747
- added LocalePlugin (ian)
- FileCopyPlugin is external now
- follow symlinks in npsqueakregister (bf)
- explicitely link against libXt (bf)
* Thu Jul 12 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-11olpc3: SVN r. 1740
- fix spec file clean, add _smp_mflags as requested by fedora (bf)
- XdndFinished is sent properly in drag-in with multiple types (tak)
- Show cursor forced when drag-out (tak)
- Fixed a bug about type index for clipboard (tak)
* Mon Jul 02 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-11olpc2: SVN r. 1735
- clipboard/dns fixes (tak)
- update spec to satisfy rpmlint
* Tue Jun 26 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-11olpc1: SVN r. 1728
- IPv6 support (ian)
- updated DBus plugin (impara, bf)
- better drag-and-drop support, extended clipboard support (tak)
* Fri Jun 22 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-10olpc7: SVN r.1723
- move build env to Fedora 7
- require libdbus-1.so.3
- configure without OpenGL (rather than hiding GL libs)
* Thu May 17 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-10olpc6: SVN r.1687
- add ClipboardExtendedPlugin (tak)
- add DBusPlugin (impara, bf)
- support keypad keys (bf)
* Thu Apr 19 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-10olpc5: SVN r.1658
- enabled Kedama plugin
* Wed Apr 04 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-10olpc4: SVN r.1652 (moved to OLPC branch)
- added ogg plugin (tak)
* Fri Mar 23 2007 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-10olpc3: SVN r.1613 + olpc.patch
- big cursor support (bf)
- faster camera input (dgd)
* Thu Nov 09 2006 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-10olpc1: SVN r.1591
- work around ALSA SIGIO issue (bf)
- added dgd's camera support (V4L plugin)
* Thu Nov 09 2006 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-9olpc4: SVN r.1571
- compile without GL
* Wed Oct 18 2006 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-9olpc3: SVN r.1571
- relicensed to MIT
* Tue Oct 17 2006 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-9olpc2: SVN r.1566
- yet another ALSA fix
* Thu Oct 12 2006 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-9olpc1: SVN r.1563
- fix ALSA prim failed
- add warpblt optimization
- add Kedama2 plugin
- exclude unneeded plugins
* Wed Oct 11 2006 Bert Freudenberg <bert@freudenbergs.de>
- 3.9-8olpc2: SVN r.1557 adds access to ALSA mixer
* Fri Oct 06 2006 Bert Freudenberg <bert@freudenbergs.de>
- initial RPM for OLPC (3.9-8olpc1)