fix #948696: new upstream bugfix release, drop patches

- fix #925363: aarch64 support
This commit is contained in:
Tomas Smetana 2013-04-08 13:57:51 +02:00
parent 13feca5817
commit ec1f563228
9 changed files with 8 additions and 370 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
freeglut-2.6.0.tar.gz
openglut-0.6.3-doc.tar.gz
/freeglut-2.8.0.tar.gz
/freeglut-2.8.1.tar.gz

View File

@ -1,19 +0,0 @@
--- src/freeglut_cursor.c.old 2006-10-11 20:49:13.000000000 +0200
+++ src/freeglut_cursor.c 2006-10-11 20:51:43.000000000 +0200
@@ -147,11 +147,13 @@
}
}
- if ( ( cursorIDToUse != GLUT_CURSOR_NONE ) && ( cursor == None ) ) {
+ if ( cursorIDToUse == GLUT_CURSOR_INHERIT ) {
+ XUndefineCursor( fgDisplay.Display, window->Window.Handle );
+ } else if ( cursor != None ) {
+ XDefineCursor( fgDisplay.Display, window->Window.Handle, cursor );
+ } else if ( cursorIDToUse != GLUT_CURSOR_NONE ) {
fgError( "Failed to create cursor" );
}
- XDefineCursor( fgDisplay.Display,
- window->Window.Handle, cursor );
}
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE

View File

@ -1,14 +0,0 @@
diff -up freeglut-2.6.0/src/freeglut_main.c.noxwarn freeglut-2.6.0/src/freeglut_main.c
--- freeglut-2.6.0/src/freeglut_main.c.noxwarn 2010-05-31 10:49:29.002037712 +0200
+++ freeglut-2.6.0/src/freeglut_main.c 2010-05-31 10:50:58.986037800 +0200
@@ -1413,7 +1413,9 @@ void FGAPIENTRY glutMainLoopEvent( void
break;
default:
- fgWarning ("Unknown X event type: %d\n", event.type);
+ /* Fedora patch: the unknown events seem to be quite frequent with
+ * the new xorg. Let's not spam the user with the messages */
+ /* fgWarning ("Unknown X event type: %d\n", event.type); */
break;
}
}

View File

@ -1,40 +0,0 @@
diff -up freeglut-2.8.0/src/freeglut_xinput.c.btnmask freeglut-2.8.0/src/freeglut_xinput.c
--- freeglut-2.8.0/src/freeglut_xinput.c.btnmask 2012-08-27 15:55:07.841482330 +0200
+++ freeglut-2.8.0/src/freeglut_xinput.c 2012-08-27 15:57:12.423604612 +0200
@@ -13,6 +13,9 @@
#include <X11/Xlib.h>
#include <X11/extensions/XInput2.h>
+/* convert the XInput button state mask to the regular X mouse event button mask */
+#define BUTTON_MASK(xistate) ((xistate) << 8)
+
/* import function from freeglut_main.c */
int fghGetXModifiers( int state );
@@ -188,7 +191,7 @@ void fgHandleExtensionEvents( XEvent* ba
std_ev.xcrossing.detail = evcross->detail;
std_ev.xcrossing.same_screen = evcross->same_screen;
std_ev.xcrossing.focus = evcross->focus;
- std_ev.xcrossing.state = *(unsigned int*)evcross->buttons.mask;
+ std_ev.xcrossing.state = BUTTON_MASK(*(unsigned int*)evcross->buttons.mask);
XPutBackEvent(fgDisplay.Display, &std_ev);
break;
@@ -213,7 +216,7 @@ void fgHandleExtensionEvents( XEvent* ba
std_ev.xbutton.y = event->event_y;
std_ev.xbutton.x_root = event->root_x;
std_ev.xbutton.y_root = event->root_y;
- std_ev.xbutton.state = *(unsigned int*)event->buttons.mask;
+ std_ev.xbutton.state = BUTTON_MASK(*(unsigned int*)event->buttons.mask);
std_ev.xbutton.button = event->detail;
XPutBackEvent(fgDisplay.Display, &std_ev);
@@ -245,7 +248,7 @@ void fgHandleExtensionEvents( XEvent* ba
std_ev.xmotion.y = event->event_y;
std_ev.xmotion.x_root = event->root_x;
std_ev.xmotion.y_root = event->root_y;
- std_ev.xmotion.state = *(unsigned int*)event->buttons.mask;
+ std_ev.xmotion.state = BUTTON_MASK(*(unsigned int*)event->buttons.mask);
std_ev.xmotion.is_hint = NotifyNormal;
XPutBackEvent(fgDisplay.Display, &std_ev);

View File

@ -1,176 +0,0 @@
--- freeglut-2.8.0/src/freeglut_xinput.c-before 2012-08-09 15:19:24.201786724 +0200
+++ freeglut-2.8.0/src/freeglut_xinput.c 2012-08-09 15:19:28.219736211 +0200
@@ -143,72 +143,120 @@ void fgPrintXIDeviceEvent(XIDeviceEvent*
* \brief This function is called when an Extension Event is received
* and calls the corresponding callback functions for these events.
*/
-void fgHandleExtensionEvents( XEvent* base_ev ) {
-
+void fgHandleExtensionEvents( XEvent* base_ev )
+{
+ XEvent std_ev; /* standard single-pointer event to be added to the event queue */
int i, button = 0;
XGenericEventCookie* cookie = (XGenericEventCookie*)&(base_ev->xcookie);
+ /* initialize the generic fields from base_ev */
+ std_ev.xany = base_ev->xany;
+
if ( XGetEventData( fgDisplay.Display, cookie ) && (cookie->type == GenericEvent) && (cookie->extension == xi_opcode) ) {
XIDeviceEvent* event = (XIDeviceEvent*)(cookie->data);
+ XIEnterEvent *evcross;
/*printf("XI2 event type: %d - %d\n", cookie->evtype, event->type );*/
SFG_Window* window = fgWindowByHandle( event->event );
if (!window) return;
switch (cookie->evtype) {
-
- case XI_Enter:
- case XI_Leave:
- fgState.Modifiers = fghGetXModifiers( ((XIEnterEvent*)event)->mods.base );
- INVOKE_WCB( *window, MultiEntry, (
- event->deviceid,
- (event->evtype == XI_Enter ? GLUT_ENTERED : GLUT_LEFT)
- ));
- #if _DEBUG
- fgPrintXILeaveEvent((XILeaveEvent*)event);
- #endif
- break;
-
- case XI_ButtonPress:
- case XI_ButtonRelease:
- fgState.Modifiers = fghGetXModifiers( event->mods.base );
- INVOKE_WCB( *window, MultiButton, (
- event->deviceid,
- event->event_x,
- event->event_y,
- (event->detail)-1,
- (event->evtype == XI_ButtonPress ? GLUT_DOWN : GLUT_UP)
- ));
- INVOKE_WCB( *window, Mouse, (
- (event->detail)-1,
- (event->evtype == XI_ButtonPress ? GLUT_DOWN : GLUT_UP),
- event->event_x,
- event->event_y
- ));
- break;
-
- case XI_Motion:
- fgState.Modifiers = fghGetXModifiers( event->mods.base );
- for (i = 0; i < event->buttons.mask_len; i++) if (event->buttons.mask[i]) button = 1;
- if (button) {
- INVOKE_WCB( *window, MultiMotion, ( event->deviceid, event->event_x, event->event_y ) );
- INVOKE_WCB( *window, Motion, ( event->event_x, event->event_y ) );
- } else {
- INVOKE_WCB( *window, MultiPassive, ( event->deviceid, event->event_x, event->event_y ) );
- INVOKE_WCB( *window, Passive, ( event->event_x, event->event_y ) );
+ case XI_Enter:
+ case XI_Leave:
+ evcross = (XIEnterEvent*)event;
+
+ fgState.Modifiers = fghGetXModifiers( evcross->mods.base );
+ INVOKE_WCB( *window, MultiEntry, (
+ event->deviceid,
+ (event->evtype == XI_Enter ? GLUT_ENTERED : GLUT_LEFT)
+ ));
+ #if _DEBUG
+ fgPrintXILeaveEvent((XILeaveEvent*)event);
+ #endif
+
+ /* Also process the standard crossing event */
+ std_ev.type = evcross->evtype == XI_Enter ? EnterNotify : LeaveNotify;
+ std_ev.xcrossing.window = evcross->event;
+ std_ev.xcrossing.root = evcross->root;
+ std_ev.xcrossing.subwindow = evcross->child;
+ std_ev.xcrossing.x = evcross->event_x;
+ std_ev.xcrossing.y = evcross->event_y;
+ std_ev.xcrossing.x_root = evcross->root_x;
+ std_ev.xcrossing.y_root = evcross->root_y;
+ std_ev.xcrossing.mode = evcross->mode;
+ std_ev.xcrossing.detail = evcross->detail;
+ std_ev.xcrossing.same_screen = evcross->same_screen;
+ std_ev.xcrossing.focus = evcross->focus;
+ std_ev.xcrossing.state = *(unsigned int*)evcross->buttons.mask;
+
+ XPutBackEvent(fgDisplay.Display, &std_ev);
+ break;
+
+ case XI_ButtonPress:
+ case XI_ButtonRelease:
+ fgState.Modifiers = fghGetXModifiers( event->mods.base );
+ INVOKE_WCB( *window, MultiButton, (
+ event->deviceid,
+ event->event_x,
+ event->event_y,
+ event->detail-1,
+ (event->evtype == XI_ButtonPress ? GLUT_DOWN : GLUT_UP)
+ ));
+
+ /* Also process the standard button event */
+ std_ev.type = event->evtype == XI_ButtonPress ? ButtonPress : ButtonRelease;
+ std_ev.xbutton.window = event->event;
+ std_ev.xbutton.root = event->root;
+ std_ev.xbutton.subwindow = event->child;
+ std_ev.xbutton.x = event->event_x;
+ std_ev.xbutton.y = event->event_y;
+ std_ev.xbutton.x_root = event->root_x;
+ std_ev.xbutton.y_root = event->root_y;
+ std_ev.xbutton.state = *(unsigned int*)event->buttons.mask;
+ std_ev.xbutton.button = event->detail;
+
+ XPutBackEvent(fgDisplay.Display, &std_ev);
+ break;
+
+ case XI_Motion:
+ fgState.Modifiers = fghGetXModifiers( event->mods.base );
+ for (i = 0; i < event->buttons.mask_len; i++) {
+ if (event->buttons.mask[i]) {
+ button = 1;
}
- #if _DEBUG
- fgPrintXIDeviceEvent(event);
- #endif
- break;
-
- default:
- #if _DEBUG
- fgWarning( "Unknown XI2 device event:" );
- fgPrintXIDeviceEvent( event );
- #endif
- break;
+ }
+ if (button) {
+ INVOKE_WCB( *window, MultiMotion, ( event->deviceid, event->event_x, event->event_y ) );
+ } else {
+ INVOKE_WCB( *window, MultiPassive, ( event->deviceid, event->event_x, event->event_y ) );
+ }
+ #if _DEBUG
+ fgPrintXIDeviceEvent(event);
+ #endif
+
+ /* Also process the standard motion event */
+ std_ev.type = MotionNotify;
+ std_ev.xmotion.window = event->event;
+ std_ev.xmotion.root = event->root;
+ std_ev.xmotion.subwindow = event->child;
+ std_ev.xmotion.time = event->time;
+ std_ev.xmotion.x = event->event_x;
+ std_ev.xmotion.y = event->event_y;
+ std_ev.xmotion.x_root = event->root_x;
+ std_ev.xmotion.y_root = event->root_y;
+ std_ev.xmotion.state = *(unsigned int*)event->buttons.mask;
+ std_ev.xmotion.is_hint = NotifyNormal;
+
+ XPutBackEvent(fgDisplay.Display, &std_ev);
+ break;
+
+ default:
+ #if _DEBUG
+ fgWarning( "Unknown XI2 device event:" );
+ fgPrintXIDeviceEvent( event );
+ #endif
+ break;
}
fgState.Modifiers = INVALID_MODIFIERS;
}

View File

@ -1,96 +0,0 @@
diff -up freeglut-2.8.0/progs/demos/CallbackMaker/Makefile.in.fixld freeglut-2.8.0/progs/demos/CallbackMaker/Makefile.in
--- freeglut-2.8.0/progs/demos/CallbackMaker/Makefile.in.fixld 2012-01-02 13:18:07.000000000 +0100
+++ freeglut-2.8.0/progs/demos/CallbackMaker/Makefile.in 2012-01-03 11:04:07.711906872 +0100
@@ -110,7 +110,7 @@ LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY = @LIBRARY@
-LIBS = @LIBS@
+LIBS = @LIBS@ -lGL
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBUSBHID = @LIBUSBHID@
diff -up freeglut-2.8.0/progs/demos/Fractals/Makefile.in.fixld freeglut-2.8.0/progs/demos/Fractals/Makefile.in
--- freeglut-2.8.0/progs/demos/Fractals/Makefile.in.fixld 2012-01-02 13:18:07.000000000 +0100
+++ freeglut-2.8.0/progs/demos/Fractals/Makefile.in 2012-01-03 11:04:07.711906872 +0100
@@ -110,7 +110,7 @@ LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY = @LIBRARY@
-LIBS = @LIBS@
+LIBS = @LIBS@ -lGL
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBUSBHID = @LIBUSBHID@
diff -up freeglut-2.8.0/progs/demos/Fractals_random/Makefile.in.fixld freeglut-2.8.0/progs/demos/Fractals_random/Makefile.in
--- freeglut-2.8.0/progs/demos/Fractals_random/Makefile.in.fixld 2012-01-02 13:18:07.000000000 +0100
+++ freeglut-2.8.0/progs/demos/Fractals_random/Makefile.in 2012-01-03 11:04:07.719906936 +0100
@@ -111,7 +111,7 @@ LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY = @LIBRARY@
-LIBS = @LIBS@
+LIBS = @LIBS@ -lGL
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBUSBHID = @LIBUSBHID@
diff -up freeglut-2.8.0/progs/demos/Lorenz/Makefile.in.fixld freeglut-2.8.0/progs/demos/Lorenz/Makefile.in
--- freeglut-2.8.0/progs/demos/Lorenz/Makefile.in.fixld 2012-01-02 13:18:07.000000000 +0100
+++ freeglut-2.8.0/progs/demos/Lorenz/Makefile.in 2012-01-03 11:04:07.720907364 +0100
@@ -110,7 +110,7 @@ LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY = @LIBRARY@
-LIBS = @LIBS@
+LIBS = @LIBS@ -lGL -lm
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBUSBHID = @LIBUSBHID@
diff -up freeglut-2.8.0/progs/demos/One/Makefile.in.fixld freeglut-2.8.0/progs/demos/One/Makefile.in
--- freeglut-2.8.0/progs/demos/One/Makefile.in.fixld 2012-01-02 13:18:07.000000000 +0100
+++ freeglut-2.8.0/progs/demos/One/Makefile.in 2012-01-03 11:04:07.721907192 +0100
@@ -109,7 +109,7 @@ LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY = @LIBRARY@
-LIBS = @LIBS@
+LIBS = @LIBS@ -lGL
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBUSBHID = @LIBUSBHID@
diff -up freeglut-2.8.0/progs/demos/shapes/Makefile.in.fixld freeglut-2.8.0/progs/demos/shapes/Makefile.in
--- freeglut-2.8.0/progs/demos/shapes/Makefile.in.fixld 2012-01-02 13:18:07.000000000 +0100
+++ freeglut-2.8.0/progs/demos/shapes/Makefile.in 2012-01-03 11:04:07.722907340 +0100
@@ -110,7 +110,7 @@ LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY = @LIBRARY@
-LIBS = @LIBS@
+LIBS = @LIBS@ -lGL
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBUSBHID = @LIBUSBHID@
diff -up freeglut-2.8.0/progs/demos/smooth_opengl3/Makefile.in.fixld freeglut-2.8.0/progs/demos/smooth_opengl3/Makefile.in
--- freeglut-2.8.0/progs/demos/smooth_opengl3/Makefile.in.fixld 2012-01-02 13:18:07.000000000 +0100
+++ freeglut-2.8.0/progs/demos/smooth_opengl3/Makefile.in 2012-01-03 11:04:07.723914882 +0100
@@ -110,7 +110,7 @@ LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY = @LIBRARY@
-LIBS = @LIBS@
+LIBS = @LIBS@ -lGL
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBUSBHID = @LIBUSBHID@
diff -up freeglut-2.8.0/progs/demos/spaceball/Makefile.in.fixld freeglut-2.8.0/progs/demos/spaceball/Makefile.in
--- freeglut-2.8.0/progs/demos/spaceball/Makefile.in.fixld 2012-01-02 13:18:07.000000000 +0100
+++ freeglut-2.8.0/progs/demos/spaceball/Makefile.in 2012-01-03 11:04:07.723914882 +0100
@@ -111,7 +111,7 @@ LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY = @LIBRARY@
-LIBS = @LIBS@
+LIBS = @LIBS@ -lm -lGL
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBUSBHID = @LIBUSBHID@

View File

@ -1,10 +0,0 @@
--- freeglut-2.8.0/progs/demos/smooth_opengl3/smooth_opengl3.c.orig 2012-08-02 18:52:39.007793150 -0400
+++ freeglut-2.8.0/progs/demos/smooth_opengl3/smooth_opengl3.c 2012-08-02 18:52:41.387901801 -0400
@@ -102,7 +102,6 @@
typedef void (APIENTRY *PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
typedef void (APIENTRY *PFNGLBUFFERDATAPROC) (GLenum target, ourGLsizeiptr size, const GLvoid *data, GLenum usage);
typedef GLuint (APIENTRY *PFNGLCREATESHADERPROC) (GLenum type);
-typedef void (APIENTRY *PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const ourGLchar **string, const GLint *length);
typedef void (APIENTRY *PFNGLCOMPILESHADERPROC) (GLuint shader);
typedef GLuint (APIENTRY *PFNGLCREATEPROGRAMPROC) (void);
typedef void (APIENTRY *PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);

View File

@ -1,7 +1,7 @@
Summary: A freely licensed alternative to the GLUT library
Name: freeglut
Version: 2.8.0
Release: 8%{?dist}
Version: 2.8.1
Release: 1%{?dist}
URL: http://freeglut.sourceforge.net
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
# For the manpages
@ -19,14 +19,6 @@ BuildRequires: libXi-devel libICE-devel
Provides: glut = 3.7
Obsoletes: glut < 3.7
# Fix linking of the examples -- we don't package them, they just need to
# compile and link
Patch0: freeglut-2.8.0-fixld.patch
# Fix for conflicting types found in GLext
Patch1: freeglut-glextconflict.patch
Patch2: freeglut-2.8.0-fixXInput.patch
Patch3: freeglut-2.8.0-btnmask.patch
%description
freeglut is a completely open source alternative to the OpenGL Utility Toolkit
(GLUT) library with an OSI approved free software license. GLUT was originally
@ -56,10 +48,6 @@ license.
%prep
%setup -q -a 1
%patch0 -p1 -b .fixld
%patch1 -p1 -b .fix-glext
%patch2 -p1 -b .fixXInput
%patch3 -p1 -b .btnmask
%build
# --disable-warnings -> don't add -Werror to CFLAGS
@ -93,6 +81,10 @@ install -p -m 644 doc/man/*.3 $RPM_BUILD_ROOT/%{_mandir}/man3
%changelog
* Mon Apr 08 2013 Tomas Smetana <tsmetana@redhat.com> - 2.8.1-1
- fix #948696: new upstream bugfix release, drop patches
- fix #925363: aarch64 support
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

View File

@ -1,2 +1,2 @@
5db8651af306bc403fbfd36934a20e1d freeglut-2.8.0.tar.gz
918ffbddcffbac83c218bc52355b6d5a freeglut-2.8.1.tar.gz
cf6c3e8cd7711e2b75ff8d7950ac2f97 openglut-0.6.3-doc.tar.gz