SDL2.spec.in
author David Ludwig <dludwig@pobox.com>
Sat, 29 Nov 2014 10:09:30 -0500
changeset 9247 eddb899239fe
parent 7222 2435b221d77d
child 9361 17a2821b451c
permissions -rw-r--r--
WinRT: bug and data-integrity fixes for SDL_GetPrefPath()

This change does a few things, all with regards to the WinRT implementation of
SDL_GetPrefPath():

1. it fixes a bug whereby SDL_GetPrefPath() did not create the directory it
returned. On other SDL platforms, SDL_GetPrefPath() will create separate
directories for its 'org' and 'app' folders. Without this, attempts to create
files in the pref-path would fail, unless those directories were first created
by the app, or by some other library the app used. This change makes sure
that these directories get created, before SDL_GetPrefPath() returns to its
caller(s).


2. it defaults to having SDL_GetPrefPath() return a WinRT 'Local' folder
on all platforms. Previously, for Windows Store apps, it would have used a
different, 'Roaming' folder. Files in Roaming folders can be automatically,
and synchronized across multiple devices by Windows. This synchronization can
happen while the app runs, with new files being copied into a running app's
pref-path. Unless an app is specifically designed to handle this scenario,
there is a chance that save-data could be overwritten in unwanted or
unexpected ways.

The default is now to use a Local folder, which does not get synchronized, and
which is arguably a bit safer to use. Apps that wish to use Roaming folders
can do so by setting SDL_HINT_WINRT_PREF_PATH_ROOT to "roaming", however it
is recommended that one first read Microsoft's documentation for Roaming
files, a link to which is provided in README-winrt.md.

To preserve older pref-path selection behavior (found in SDL 2.0.3, as well as
many pre-2.0.4 versions of SDL from hg.libsdl.org), which uses a Roaming path
in Windows Store apps, and a Local path in Windows Phone, set
SDL_HINT_WINRT_PREF_PATH_ROOT to "old".

Please note that Roaming paths are not supported on Windows Phone 8.0, due to
limitations in the OS itself. Attempts to use this will fail.
(Windows Phone 8.1 does not have this limitation, however.)


3. It makes SDL_GetPrefPath(), when on Windows Phone 8.0, and when
SDL_HINT_WINRT_PREF_PATH_ROOT is set to "roaming", return NULL, rather than
silently defaulting to a Local path (then switching to a Roaming path if and
when the user upgraded to Windows Phone 8.1).
     1 Summary: Simple DirectMedia Layer
     2 Name: SDL2
     3 Version: @SDL_VERSION@
     4 Release: 1
     5 Source: http://www.libsdl.org/release/%{name}-%{version}.tar.gz
     6 URL: http://www.libsdl.org/
     7 License: zlib
     8 Group: System Environment/Libraries
     9 BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
    10 Prefix: %{_prefix}
    11 %ifos linux
    12 Provides: libSDL2-2.0.so.0
    13 %endif
    14 
    15 %define __defattr %defattr(-,root,root)
    16 %define __soext so
    17 
    18 %description
    19 This is the Simple DirectMedia Layer, a generic API that provides low
    20 level access to audio, keyboard, mouse, and display framebuffer across
    21 multiple platforms.
    22 
    23 %package devel
    24 Summary: Libraries, includes and more to develop SDL applications.
    25 Group: Development/Libraries
    26 Requires: %{name} = %{version}
    27 
    28 %description devel
    29 This is the Simple DirectMedia Layer, a generic API that provides low
    30 level access to audio, keyboard, mouse, and display framebuffer across
    31 multiple platforms.
    32 
    33 This is the libraries, include files and other resources you can use
    34 to develop SDL applications.
    35 
    36 
    37 %prep
    38 %setup -q 
    39 
    40 %build
    41 %ifos linux
    42 CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --disable-video-directfb
    43 %else
    44 %configure
    45 %endif
    46 make
    47 
    48 %install
    49 rm -rf $RPM_BUILD_ROOT
    50 %ifos linux
    51 make install prefix=$RPM_BUILD_ROOT%{prefix} \
    52              bindir=$RPM_BUILD_ROOT%{_bindir} \
    53              libdir=$RPM_BUILD_ROOT%{_libdir} \
    54              includedir=$RPM_BUILD_ROOT%{_includedir} \
    55              datadir=$RPM_BUILD_ROOT%{_datadir} \
    56              mandir=$RPM_BUILD_ROOT%{_mandir}
    57 %else
    58 %makeinstall
    59 %endif
    60 
    61 %clean
    62 rm -rf $RPM_BUILD_ROOT
    63 
    64 %files
    65 %{__defattr}
    66 %doc README-SDL.txt COPYING.txt CREDITS.txt BUGS.txt
    67 %{_libdir}/lib*.%{__soext}.*
    68 
    69 %files devel
    70 %{__defattr}
    71 %doc README README-SDL.txt COPYING CREDITS BUGS WhatsNew
    72 %{_bindir}/*-config
    73 %{_libdir}/lib*.a
    74 %{_libdir}/lib*.la
    75 %{_libdir}/lib*.%{__soext}
    76 %{_includedir}/*/*.h
    77 %{_libdir}/pkgconfig/*
    78 %{_datadir}/aclocal/*
    79 
    80 %changelog
    81 * Sun Jan 22 2012 Sam Lantinga <slouken@libsdl.org>
    82 - Updated for SDL 2.0
    83 
    84 * Tue May 16 2006 Sam Lantinga <slouken@libsdl.org>
    85 - Removed support for Darwin, due to build problems on ps2linux
    86 
    87 * Mon Jan 03 2004 Anders Bjorklund <afb@algonet.se>
    88 - Added support for Darwin, updated spec file
    89 
    90 * Wed Jan 19 2000 Sam Lantinga <slouken@libsdl.org>
    91 - Re-integrated spec file into SDL distribution
    92 - 'name' and 'version' come from configure 
    93 - Some of the documentation is devel specific
    94 - Removed SMP support from %build - it doesn't work with libtool anyway
    95 
    96 * Tue Jan 18 2000 Hakan Tandogan <hakan@iconsult.com>
    97 - Hacked Mandrake sdl spec to build 1.1
    98 
    99 * Sun Dec 19 1999 John Buswell <johnb@mandrakesoft.com>
   100 - Build Release
   101 
   102 * Sat Dec 18 1999 John Buswell <johnb@mandrakesoft.com>
   103 - Add symlink for libSDL-1.0.so.0 required by sdlbomber
   104 - Added docs
   105 
   106 * Thu Dec 09 1999 Lenny Cartier <lenny@mandrakesoft.com>
   107 - v 1.0.0
   108 
   109 * Mon Nov  1 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
   110 - First spec file for Mandrake distribution.
   111 
   112 # end of file