SDL2.spec.in
author Ryan C. Gordon
Mon, 21 Aug 2017 00:42:06 -0400
changeset 11334 749cb40916f2
parent 9707 5ca9f59ab336
child 12839 1b94a9e6746e
permissions -rw-r--r--
x11: specify event mask for buttons when grabbing pointer (thanks, Stas!).

This fixes a strange corner case (notes appended below), and should be
safe to do anyhow.

Fixes Bugzilla #3674.

"I did more tests.
It appears the bug only happens if there is
another window on the screen that has "always
on top" property. For me it is xawtv - it is
always opened in a screen corner. Closing
xawtv or removing "always on top" property
from it makes the problem to go away.
Plus, it doesn't appear like the buttons are
not delivered at all. It appears that instead
the button presses are delivered on some mouse
positions, but not delivered when you move the
mouse to other part of the window... So this is
really weird and is likely somewhere deep in the
Xorg.
Maybe somehow it happens that the cursor is
actually above the xawtv window, but, because
my app uses grab, it is not visible there, and
in that case the events are not delivered to
my app?
But with my patch the button events are
always delivered flawlessly, it seems.

Hmm, and that indeed seems to explain my problem:
if the mask is set properly and my app uses
grab, then, even if the mouse is above some
other window, the events would still be delivered
to the grabbing app, which is what actually wanted
because my app uses relative mouse mode, so it
doesn't know the pointer can cross some other window
(my app draws the pointer itself).
So my current theory is that my patch only enforces
the mouse grab, which otherwise can be tricked by
some other window preventing the button events
delivery (but motion events are still delivered
via xinput2, which makes it all look very obscure)."
slouken@0
     1
Summary: Simple DirectMedia Layer
slouken@6255
     2
Name: SDL2
slouken@1361
     3
Version: @SDL_VERSION@
icculus@9361
     4
Release: 2
icculus@1133
     5
Source: http://www.libsdl.org/release/%{name}-%{version}.tar.gz
slouken@0
     6
URL: http://www.libsdl.org/
slouken@5537
     7
License: zlib
slouken@0
     8
Group: System Environment/Libraries
icculus@1133
     9
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
slouken@0
    10
Prefix: %{_prefix}
icculus@1133
    11
%ifos linux
slouken@6265
    12
Provides: libSDL2-2.0.so.0
icculus@1133
    13
%endif
slouken@0
    14
slouken@1844
    15
%define __defattr %defattr(-,root,root)
slouken@1844
    16
%define __soext so
slouken@1844
    17
slouken@0
    18
%description
slouken@0
    19
This is the Simple DirectMedia Layer, a generic API that provides low
slouken@0
    20
level access to audio, keyboard, mouse, and display framebuffer across
slouken@0
    21
multiple platforms.
slouken@0
    22
slouken@0
    23
%package devel
slouken@0
    24
Summary: Libraries, includes and more to develop SDL applications.
slouken@0
    25
Group: Development/Libraries
icculus@1133
    26
Requires: %{name} = %{version}
slouken@0
    27
slouken@0
    28
%description devel
slouken@0
    29
This is the Simple DirectMedia Layer, a generic API that provides low
slouken@0
    30
level access to audio, keyboard, mouse, and display framebuffer across
slouken@0
    31
multiple platforms.
slouken@0
    32
slouken@0
    33
This is the libraries, include files and other resources you can use
slouken@0
    34
to develop SDL applications.
slouken@0
    35
slouken@0
    36
slouken@0
    37
%prep
slouken@0
    38
%setup -q 
slouken@0
    39
slouken@0
    40
%build
icculus@1133
    41
%ifos linux
slouken@5047
    42
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --disable-video-directfb
icculus@1133
    43
%else
slouken@1588
    44
%configure
icculus@1133
    45
%endif
slouken@0
    46
make
slouken@0
    47
slouken@0
    48
%install
slouken@0
    49
rm -rf $RPM_BUILD_ROOT
icculus@1133
    50
%ifos linux
slouken@1390
    51
make install prefix=$RPM_BUILD_ROOT%{prefix} \
slouken@1390
    52
             bindir=$RPM_BUILD_ROOT%{_bindir} \
slouken@1390
    53
             libdir=$RPM_BUILD_ROOT%{_libdir} \
slouken@1390
    54
             includedir=$RPM_BUILD_ROOT%{_includedir} \
slouken@1390
    55
             datadir=$RPM_BUILD_ROOT%{_datadir} \
slouken@1390
    56
             mandir=$RPM_BUILD_ROOT%{_mandir}
icculus@1133
    57
%else
icculus@1133
    58
%makeinstall
icculus@1133
    59
%endif
slouken@0
    60
slouken@0
    61
%clean
slouken@0
    62
rm -rf $RPM_BUILD_ROOT
slouken@0
    63
slouken@0
    64
%files
icculus@1133
    65
%{__defattr}
icculus@9361
    66
%doc README*.txt COPYING.txt CREDITS.txt BUGS.txt
icculus@1133
    67
%{_libdir}/lib*.%{__soext}.*
slouken@0
    68
slouken@0
    69
%files devel
slouken@1844
    70
%{__defattr}
icculus@9707
    71
%doc docs/README*.md
icculus@1133
    72
%{_bindir}/*-config
icculus@1133
    73
%{_libdir}/lib*.a
icculus@1133
    74
%{_libdir}/lib*.la
icculus@1133
    75
%{_libdir}/lib*.%{__soext}
slouken@6265
    76
%{_includedir}/*/*.h
slouken@6265
    77
%{_libdir}/pkgconfig/*
slouken@1361
    78
%{_datadir}/aclocal/*
slouken@0
    79
slouken@0
    80
%changelog
icculus@9707
    81
* Thu Jun 04 2015 Ryan C. Gordon <icculus@icculus.org>
icculus@9707
    82
- Fixed README paths.
icculus@9707
    83
icculus@9361
    84
* Sun Dec 07 2014 Simone Contini <s.contini@oltrelinux.com>
icculus@9361
    85
- Fixed changelog date issue and docs filenames
icculus@9361
    86
slouken@6265
    87
* Sun Jan 22 2012 Sam Lantinga <slouken@libsdl.org>
slouken@6265
    88
- Updated for SDL 2.0
slouken@6265
    89
slouken@1844
    90
* Tue May 16 2006 Sam Lantinga <slouken@libsdl.org>
slouken@1844
    91
- Removed support for Darwin, due to build problems on ps2linux
slouken@1844
    92
icculus@9361
    93
* Sat Jan 03 2004 Anders Bjorklund <afb@algonet.se>
icculus@1133
    94
- Added support for Darwin, updated spec file
icculus@1133
    95
slouken@0
    96
* Wed Jan 19 2000 Sam Lantinga <slouken@libsdl.org>
slouken@0
    97
- Re-integrated spec file into SDL distribution
slouken@0
    98
- 'name' and 'version' come from configure 
slouken@0
    99
- Some of the documentation is devel specific
slouken@0
   100
- Removed SMP support from %build - it doesn't work with libtool anyway
slouken@0
   101
slouken@0
   102
* Tue Jan 18 2000 Hakan Tandogan <hakan@iconsult.com>
slouken@0
   103
- Hacked Mandrake sdl spec to build 1.1
slouken@0
   104
slouken@0
   105
* Sun Dec 19 1999 John Buswell <johnb@mandrakesoft.com>
slouken@0
   106
- Build Release
slouken@0
   107
slouken@0
   108
* Sat Dec 18 1999 John Buswell <johnb@mandrakesoft.com>
slouken@0
   109
- Add symlink for libSDL-1.0.so.0 required by sdlbomber
slouken@0
   110
- Added docs
slouken@0
   111
slouken@0
   112
* Thu Dec 09 1999 Lenny Cartier <lenny@mandrakesoft.com>
slouken@0
   113
- v 1.0.0
slouken@0
   114
slouken@0
   115
* Mon Nov  1 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
slouken@0
   116
- First spec file for Mandrake distribution.
slouken@0
   117
slouken@0
   118
# end of file