SDL2.spec.in
author Sam Lantinga <slouken@libsdl.org>
Fri, 28 Nov 2014 04:51:33 -0800
changeset 9246 a761913e5e91
parent 7222 2435b221d77d
child 9361 17a2821b451c
permissions -rw-r--r--
Fixed bug 2786 - "UCS-2-INTERNAL" iconv encoding is not supported everywhere, use UTF-16LE instead

Jonas Kulla

src/main/windows/SDL_windows_main.c:137:
cmdline = SDL_iconv_string("UTF-8", "UCS-2-INTERNAL", (char *)(text), (SDL_wcslen(text)+1)*sizeof(WCHAR));

I'm trying to compile an SDL2 application for windows using the mingw-w64 32bit toolchain provided by my distro (Fedora 19). However, even the simplest test program that does nothing at all fails to startup with a "Fatal error - out of memory" message because the mingw iconv library provided by my distro does not support the "UCS-2-INTERNAL" encoding and the conversion returns null.

From my little bit of research, it turns out that even though this encoding is supported by the external GNU libiconv library, some glibc versions (?) don't support it with their internal iconv routines, and will instead provide the native endian encoding when "UCS-2" is specified.

Nonetheless, I wonder why the native endianness is considered in the first place when Windows doesn't even run on any big endian archs (to my knowledge). And true enough, 'WIN_StringToUTF8' from core/windows/SDL_windows.h is used everywhere else in the windows backend, which is just a macro to iconv with "UTF-16LE" as source. Therefore it would IMO make sense to use this macro here as well, which would solve my problem (patch attached).
     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