[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fedora-extras-commits
Subject:    ignatenkobrain pushed to eegdev (master).  "Initial import (..more)"
From:       notifications () fedoraproject ! org
Date:       2015-11-30 21:53:02
Message-ID: 20151130215302.C97256087C32 () bastion01 ! phx2 ! fedoraproject ! org
[Download RAW message or body]

From cafe9dbb04e0158e430ea11c19707b51e1b97230 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Date: Mon, 30 Nov 2015 22:52:53 +0100
Subject: Initial import

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
---
 .gitignore                          |   1 +
 eegdev.spec                         | 107 ++++++++++++++++++++++++++++
 fix-biosemi-close-hangups.patch     |  63 +++++++++++++++++
 fix-biosemi-on-bigendian.patch      |  39 ++++++++++
 fix-bison-grammar-file.patch        |  81 +++++++++++++++++++++
 fix-racecond-in-biosemi-tests.patch | 137 ++++++++++++++++++++++++++++++++++++
 fix-unaligned-memory-access.patch   |  46 ++++++++++++
 include-config_h.patch              |  91 ++++++++++++++++++++++++
 sources                             |   1 +
 9 files changed, 566 insertions(+)
 create mode 100644 eegdev.spec
 create mode 100644 fix-biosemi-close-hangups.patch
 create mode 100644 fix-biosemi-on-bigendian.patch
 create mode 100644 fix-bison-grammar-file.patch
 create mode 100644 fix-racecond-in-biosemi-tests.patch
 create mode 100644 fix-unaligned-memory-access.patch
 create mode 100644 include-config_h.patch

diff --git a/.gitignore b/.gitignore
index e69de29..0586eb9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/eegdev-0.2.tar.bz2
diff --git a/eegdev.spec b/eegdev.spec
new file mode 100644
index 0000000..369de83
--- /dev/null
+++ b/eegdev.spec
@@ -0,0 +1,107 @@
+Name:           eegdev
+Version:        0.2
+Release:        1%{?dist}
+Summary:        Library to acquire data from various EEG recording devices
+
+License:        LGPLv3+
+URL:            http://cnbi.epfl.ch/software/eegdev.html
+Source0:        http://download.sourceforge.net/eegdev/%{name}-%{version}.tar.bz2
+Patch0:         fix-biosemi-on-bigendian.patch
+Patch1:         fix-racecond-in-biosemi-tests.patch
+Patch2:         fix-biosemi-close-hangups.patch
+Patch3:         fix-bison-grammar-file.patch
+Patch4:         include-config_h.patch
+Patch5:         fix-unaligned-memory-access.patch
+
+BuildRequires:  gcc
+BuildRequires:  automake autoconf
+BuildRequires:  gnulib-devel
+BuildRequires:  bison flex
+# EEGfile backend
+BuildRequires:  xdffileio-devel
+# Biosemi backend
+BuildRequires:  libusbx-devel
+# Neurosky backend
+BuildRequires:  bluez-libs-devel
+# Tobi interface A backend
+BuildRequires:  expat-devel
+
+%description
+eegdev is a library that provides a unified interface for accessing various EEG
+(and other biosignals) acquisition systems. This interface has been designed to
+be both flexible and efficient. The device specific part is implemented by the
+mean of plugins which makes adding new device backend fairly easy even if the
+library does not support them yet officially.
+
+The core library not only provides to users a unified and consistent interfaces
+to the acquisition device but it also provides many functionalities to the
+device backends (plugins) ranging from configuration to data casting and scaling
+making writing new device backend an easy task.
+
+%package        devel
+Summary:        Development files for %{name}
+Requires:       %{name}%{?_isa} = %{version}-%{release}
+
+%description    devel
+The %{name}-devel package contains libraries and header files for
+developing applications that use %{name}.
+
+%package        plugins
+Summary:        Plugins for %{name}
+Requires:       %{name}%{?_isa} = %{version}-%{release}
+
+%description    plugins
+Plugins for %{name}.
+
+%prep
+%autosetup -p1
+
+# drop bundled libs
+rm -rf lib/*
+
+# do not run neurosky test (requires /dev/rfcomm0)
+sed -i -e '/TESTS += sysneurosky/d' tests/Makefile.am
+
+%build
+./autogen.sh
+%configure --enable-corelib-build \
+  --with-xdf                      \
+  --with-act2                     \
+  --with-neurosky                 \
+  --with-tia                      
+make %{?_smp_mflags}
+
+%install
+%make_install
+
+find %{buildroot} -name '*.la' -exec rm -f {} ';'
+
+%check
+make check
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%license COPYING
+%doc AUTHORS NEWS
+%{_libdir}/lib%{name}.so.*
+%dir %{_libdir}/%{name}/
+%{_mandir}/man5/%{name}-open-options.5*
+
+%files devel
+%doc %{_docdir}/%{name}
+%{_libdir}/lib%{name}.so
+%{_libdir}/pkgconfig/%{name}.pc
+%{_includedir}/%{name}*.h
+%{_mandir}/man3/egd_*.3*
+
+%files plugins
+%{_libdir}/%{name}/*
+%exclude %{_mandir}/man5/%{name}-open-options.5*
+%{_mandir}/man5/%{name}-*.5*
+
+%changelog
+* Sun Nov 29 2015 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 0.2-1
+- Initial package
diff --git a/fix-biosemi-close-hangups.patch b/fix-biosemi-close-hangups.patch
new file mode 100644
index 0000000..d67b7c9
--- /dev/null
+++ b/fix-biosemi-close-hangups.patch
@@ -0,0 +1,63 @@
+Description: fix possible hangups of egd_close on biosemi
+ When stopping the handshake, URB can report of URB failure because of
+ timeout. This patch makes sure that whenever a URB is not resubmitted, this
+ will be indicated by reducing the number of running transfers
+ (a2dev->num_running). This should also fix the hang when closing a device
+ that has failed during acquisition.
+Origin: upstream, http://cnbisrv02.epfl.ch/cgit/eegdev.git/commit/?id=cdf41d
+Bug-Debian: http://bugs.debian.org/673681
+Author: Nicolas Bourdaud <nicolas.bourdaud@gmail.com>
+Last-Update: 2012-05-23
+Applied-Upstream: yes
+
+diff --git a/src/plugins/biosemi.c b/src/plugins/biosemi.c
+index 473edde..6e5e4aa 100644
+--- a/src/plugins/biosemi.c
++++ b/src/plugins/biosemi.c
+@@ -393,7 +393,7 @@ void process_usbbuf(struct act2_eegdev* a2dev, uint32_t* buf, \
ssize_t bs) + #endif                                                        	
+ static void LIBUSB_CALL req_completion_fn(struct libusb_transfer *transfer)
+ {                                                                     
+-	int ret;
++	int ret, requeue = 1;
+ 	struct act2_eegdev* a2dev = transfer->user_data;
+ 	const struct core_interface* ci = &(a2dev->dev.ci);
+ 
+@@ -405,20 +405,24 @@ static void LIBUSB_CALL req_completion_fn(struct \
libusb_transfer *transfer) + 	// Check that no error occured
+ 	if ((ret = proc_libusb_transfer_ret(transfer->status))) {
+ 		ci->report_error(&(a2dev->dev), ret);
+-		return;
++		requeue = 0;
+ 	}
+ 	
+-	// requeue again the chunk buffer if still running
+ 	pthread_mutex_lock(&a2dev->mtx);
+-	if (a2dev->resubmit) {
+-		// Try submit
+-		if ((ret = libusb_submit_transfer(transfer))) {
+-			ci->report_error(&(a2dev->dev),
+-			                 proc_libusb_error(ret));
+-			a2dev->num_running--;
+-		}
+-	} else 	if (!--(a2dev->num_running))
++
++	// requeue again the chunk buffer if still running
++	requeue = a2dev->resubmit ? requeue : 0;
++	if (requeue && (ret = libusb_submit_transfer(transfer))) {
++		ci->report_error(&(a2dev->dev), proc_libusb_error(ret));
++		requeue = 0;
++	}
++
++	// Signal main thread that this urb stopped
++	if (!requeue) {
++		a2dev->num_running--;
+ 		pthread_cond_signal(&a2dev->cond);
++	}
++
+ 	pthread_mutex_unlock(&a2dev->mtx);
+ }
+ 
+-- 
+1.7.10
+
diff --git a/fix-biosemi-on-bigendian.patch b/fix-biosemi-on-bigendian.patch
new file mode 100644
index 0000000..4ca939f
--- /dev/null
+++ b/fix-biosemi-on-bigendian.patch
@@ -0,0 +1,39 @@
+Subject: fix biosemi execution on big endian architectures
+ replace preprocessor conditional on WORD_BIGENDIAN by WORDS_BIGENDIAN.
+Origin: upstream, http://cnbisrv02.epfl.ch/cgit/eegdev.git/commit/?id=be3fc5
+Author: Nicolas Bourdaud <nicolas.bourdaud@gmail.com>
+Last-Update: 2012-05-21
+diff --git a/src/plugins/biosemi.c b/src/plugins/biosemi.c
+index 4ec9c7c..473edde 100644
+--- a/src/plugins/biosemi.c
++++ b/src/plugins/biosemi.c
+@@ -32,11 +32,11 @@
+ #include <eegdev-pluginapi.h>
+ 
+ #ifndef le_to_cpu_32
+-# if WORD_BIGENDIAN
++# if WORDS_BIGENDIAN
+ #  define le_to_cpu_u32(data)	bswap_32(data)
+ # else
+ #  define le_to_cpu_u32(data)	(data)
+-# endif //WORD_BIGENDIAN
++# endif //WORDS_BIGENDIAN
+ #endif
+ 
+ // It should ABSOLUTELY be a power of two or the read call will fail
+@@ -367,10 +367,10 @@ void process_usbbuf(struct act2_eegdev* a2dev, uint32_t* buf, \
ssize_t bs) + 	int i, start, slen = a2dev->samplelen, inoffset = a2dev->inoffset;
+ 	const struct core_interface* ci = &(a2dev->dev.ci);
+ 
+-#if WORD_BIGENDIAN
++#if WORDS_BIGENDIAN
+ 	for (i=0; i<bs; i++)
+ 		buf[i] = bswap_32(buf[i]);
+-#endif //WORD_BIGENDIAN
++#endif //WORDS_BIGENDIAN
+ 
+ 	// check presence synchro code and shift trigger value         	
+ 	start = (slen - inoffset) % slen;
+-- 
+1.7.10
+
diff --git a/fix-bison-grammar-file.patch b/fix-bison-grammar-file.patch
new file mode 100644
index 0000000..b4a99e5
--- /dev/null
+++ b/fix-bison-grammar-file.patch
@@ -0,0 +1,81 @@
+From: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
+Date: Tue, 11 Mar 2014 18:16:39 +0100
+Description: FTBFS: conflicting types for 'cff_parse'
+ Changes to bison input files (src/core/conffile.y and src/core/confline.y),
+ in order to adapt to newer bison version.
+Debian-Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720833
+
+--- a/src/core/conffile.y
++++ b/src/core/conffile.y
+@@ -17,9 +17,11 @@
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ %define api.pure
++%no-lines
+ %name-prefix "cff_"
+ %defines "conffile.tab.h"
+ %parse-param { struct cfdata *pp }
++%lex-param { yyscan_t cff_scaninfo }
+ %{
+ #if HAVE_CONFIG_H
+ # include <config.h>
+@@ -28,6 +30,11 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "configuration.h"
++#ifndef YY_TYPEDEF_YY_SCANNER_T
++#define YY_TYPEDEF_YY_SCANNER_T
++typedef void* yyscan_t;
++#endif
++#include "conffile.h"
+ %}
+ 
+ %union value {
+@@ -36,9 +43,7 @@
+ 
+ %{
+ #include "conffile.lex.h"
+-#include "conffile.h"
+-#define YYLEX_PARAM pp->scaninfo
+-
++#define cff_scaninfo pp->scaninfo
+ static int yyerror(struct cfdata *pp, const char* s);
+ %}
+ 
+--- a/src/core/confline.y
++++ b/src/core/confline.y
+@@ -17,9 +17,11 @@
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ %define api.pure
++%no-lines
+ %name-prefix "cfl_"
+ %defines "confline.tab.h"
+ %parse-param { struct cfldata *pp }
++%lex-param { yyscan_t cfl_scaninfo }
+ %{
+ #if HAVE_CONFIG_H
+ # include <config.h>
+@@ -28,6 +30,11 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "configuration.h"
++#ifndef YY_TYPEDEF_YY_SCANNER_T
++#define YY_TYPEDEF_YY_SCANNER_T
++typedef void* yyscan_t;
++#endif
++#include "confline.h"
+ %}
+ 
+ %union value {
+@@ -36,9 +43,7 @@
+ 
+ %{
+ #include "confline.lex.h"
+-#include "confline.h"
+-#define YYLEX_PARAM pp->scaninfo
+-
++#define cfl_scaninfo pp->scaninfo
+ static int yyerror(struct cfldata *pp, const char* s);
+ %}
+ 
diff --git a/fix-racecond-in-biosemi-tests.patch \
b/fix-racecond-in-biosemi-tests.patch new file mode 100644
index 0000000..40052fe
--- /dev/null
+++ b/fix-racecond-in-biosemi-tests.patch
@@ -0,0 +1,137 @@
+Description: fix race conditions in biosemi tests
+ Fix two race conditions in the synchronous transfer and in transfer queues
+ destruction of the fake libusb library. In addition to these fixes, the
+ synchronous transfer wrapper has slightly been rewritten to avoid the use
+ of stack allocated objects for synchronization: this is done solely to
+ avoid the false positives with helgrind (which have masked until now the
+ previous race conditions).
+Origin: upstream, http://cnbisrv02.epfl.ch/cgit/eegdev.git/commit/?id=88b1ff
+Bug-Debian: http://bugs.debian.org/673681
+Author: Nicolas Bourdaud <nicolas.bourdaud@gmail.com>
+Last-Update: 2012-05-21
+
+diff --git a/tests/fakelibs/activetwo.c b/tests/fakelibs/activetwo.c
+index 1e95ced..f11ce0e 100644
+--- a/tests/fakelibs/activetwo.c
++++ b/tests/fakelibs/activetwo.c
+@@ -95,13 +95,16 @@ void init_queue(struct event_queue* queue)
+ 
+ 
+ static
+-void destroy_queue(struct event_queue* queue)
++void destroy_queue(struct event_queue* queue, pthread_t thid)
+ {
+ 	pthread_mutex_lock(&queue->lock);
+ 	queue->free = 1;
+ 	pthread_cond_signal(&queue->cond);
+ 	pthread_mutex_unlock(&queue->lock);
+ 
++	if (thid)
++		pthread_join(thid, NULL);
++
+ 	pthread_cond_destroy(&queue->cond);	
+ 	pthread_mutex_destroy(&queue->lock);	
+ }
+@@ -471,12 +474,8 @@ void init_device(struct libusb_device_handle* dev, struct \
libusb_context* ctx) + static
+ void destroy_device(struct libusb_device_handle* dev)
+ {
+-	destroy_queue(&dev->ep_in);
+-	destroy_queue(&dev->ep_out);
+-
+-	pthread_join(dev->th_ep_in, NULL);
+-	pthread_join(dev->th_ep_out, NULL);
+-
++	destroy_queue(&dev->ep_in, dev->th_ep_in);
++	destroy_queue(&dev->ep_out, dev->th_ep_out);
+ }
+ 
+ 
+@@ -499,7 +498,7 @@ int libusb_init(libusb_context **context)
+ LIBUSB_CALL
+ void libusb_exit(libusb_context *ctx)
+ {
+-	destroy_queue(&ctx->queue);
++	destroy_queue(&ctx->queue, 0);
+ 	free(ctx);
+ }
+ 
+@@ -507,6 +506,7 @@ void libusb_exit(libusb_context *ctx)
+ LIBUSB_CALL
+ int libusb_handle_events_timeout(libusb_context *ctx, struct timeval *tv)
+ {
++	int free_xfer;
+ 	struct libusb_transfer* xfer = NULL;
+ 	struct timespec tots, curr, *to = NULL;
+ 
+@@ -521,8 +521,9 @@ int libusb_handle_events_timeout(libusb_context *ctx, struct \
timeval *tv) + 	// Get transfer one by one
+ 	while ((xfer = dequeue_transfer(&ctx->queue, to))) {
+ 		to = NULL;
++		free_xfer = xfer->flags & LIBUSB_TRANSFER_FREE_TRANSFER;
+ 		xfer->callback(xfer);
+-		if (xfer->flags & LIBUSB_TRANSFER_FREE_TRANSFER)
++		if (free_xfer)
+ 			libusb_free_transfer(xfer);
+ 	}
+ 
+@@ -631,35 +632,37 @@ int libusb_bulk_transfer(libusb_device_handle *dev,
+ 	int *actual_length, unsigned int timeout)
+ {
+ 	int retval = 0;
+-	struct sync_data user_data = {
+-		.done = 0,
+-		.cond = PTHREAD_COND_INITIALIZER,
+-		.lock = PTHREAD_MUTEX_INITIALIZER
+-	};
++	struct sync_data* user_data;
++	struct libusb_transfer* xfer;
+ 
+-	struct libusb_transfer xfer = {.num_iso_packets = 0};
++	// Initialize sychronization primitives
++	user_data = calloc(1, sizeof(*user_data));
++	pthread_mutex_init(&user_data->lock, NULL);
++	pthread_cond_init(&user_data->cond, NULL);
+ 
+ 	// Submit asynchronous transfer
+-	libusb_fill_bulk_transfer(&xfer, dev, endpoint, data, length,
+-	                          sync_transfer_cb, &user_data, timeout);
+-	libusb_submit_transfer(&xfer);
++	xfer = libusb_alloc_transfer(0);
++	libusb_fill_bulk_transfer(xfer, dev, endpoint, data, length,
++	                          sync_transfer_cb, user_data, timeout);
++	libusb_submit_transfer(xfer);
+ 
+ 	// wait for completion
+-	pthread_mutex_lock(&user_data.lock);
+-	while (!user_data.done)
+-		pthread_cond_wait(&user_data.cond, &user_data.lock);
+-	pthread_mutex_unlock(&user_data.lock);
++	pthread_mutex_lock(&user_data->lock);
++	while (!user_data->done)
++		pthread_cond_wait(&user_data->cond, &user_data->lock);
++	pthread_mutex_unlock(&user_data->lock);
+ 	
+-	*actual_length = user_data.actual_length;
+-	if (user_data.status == LIBUSB_TRANSFER_COMPLETED)
++	*actual_length = user_data->actual_length;
++	if (user_data->status == LIBUSB_TRANSFER_COMPLETED)
+ 		retval = 0;
+-	else if (user_data.status == LIBUSB_TRANSFER_TIMED_OUT)
++	else if (user_data->status == LIBUSB_TRANSFER_TIMED_OUT)
+ 		retval = LIBUSB_ERROR_TIMEOUT;
+ 		
++	libusb_free_transfer(xfer);
+ 
+-	pthread_cond_destroy(&user_data.cond);
+-	pthread_mutex_destroy(&user_data.lock);
+-
++	pthread_cond_destroy(&user_data->cond);
++	pthread_mutex_destroy(&user_data->lock);
++	free(user_data);
+ 
+ 	return retval;
+ }
+-- 
+1.7.10
+
diff --git a/fix-unaligned-memory-access.patch b/fix-unaligned-memory-access.patch
new file mode 100644
index 0000000..9e11e28
--- /dev/null
+++ b/fix-unaligned-memory-access.patch
@@ -0,0 +1,46 @@
+From: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
+Date: Tue, 11 Mar 2014 18:16:39 +0100
+Description: Fix unaligned memory access errors on MIPS systems
+ This patch fixes unaligned memory access errors on MIPS systems.
+Debian-Bug: 
+
+--- a/src/core/typecast.c	2014-03-17 17:03:03.868239764 +0000
++++ b/src/core/typecast.c	2014-03-17 17:07:18.253726412 +0000
+@@ -37,6 +37,28 @@ static void cast_##tsrc##_##tdst (void*
+ 	}								\
+ }						
+ 
++// Prototype of a generic type scale and cast function for unaligned memory access
++#define DEFINE_CASTUNALIGNED_FN(tsrc, tdst)				\
++static void cast_##tsrc##_##tdst (void* restrict d, const void* restrict s, union \
gval sc, size_t len)  \ ++{									\
++	union dstdata							\
++	{								\
++		tdst Data;						\
++		unsigned int intData[2];				\
++	};								\
++	const tsrc* src = s;						\
++	union dstdata *dst = d;						\
++	tdst scale = sc.val##tdst;					\
++	while(len)							\
++	{								\
++		union dstdata dst_tmp;					\
++		dst_tmp.Data = scale * ((tdst)(*src));			\
++		dst->intData[0] = dst_tmp.intData[0];			\
++		dst->intData[1] = dst_tmp.intData[1];			\
++		src++; dst++;						\
++		len -= sizeof(*src);					\
++	}								\
++}
+ // Prototype of a generic type cast function
+ #define DEFINE_CASTNOSC_FN(tsrc, tdst)				\
+ static void castnosc_##tsrc##_##tdst (void* restrict d, const void* restrict s, \
union gval sc, size_t len)	\ +@@ -60,7 +82,7 @@ static void identity(void* restrict \
d, c + 
+ // Declaration/definition of type cast and scale functions
+ DEFINE_CAST_FN(int32_t, int32_t)
+-DEFINE_CAST_FN(int32_t, double)
++DEFINE_CASTUNALIGNED_FN(int32_t, double)
+ DEFINE_CAST_FN(double, int32_t)
+ DEFINE_CAST_FN(int32_t, float)
+ DEFINE_CAST_FN(float, int32_t)
diff --git a/include-config_h.patch b/include-config_h.patch
new file mode 100644
index 0000000..0984c5e
--- /dev/null
+++ b/include-config_h.patch
@@ -0,0 +1,91 @@
+From: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
+Date: Tue, 11 Mar 2014 18:16:39 +0100
+Description: include "config.h" before including system headers
+ The following source files were modified to include "config.h" before
+ including system headers (due to changes in gnulib).
+Debian-Bug: 
+
+--- a/doc/examples/library-usage/acquisition.c
++++ b/doc/examples/library-usage/acquisition.c
+@@ -15,6 +15,9 @@
+     You should have received a copy of the GNU General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
++#if HAVE_CONFIG_H
++#include <config.h>
++#endif
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <stdint.h>
+--- a/doc/examples/library-usage/eegdev_acq.c
++++ b/doc/examples/library-usage/eegdev_acq.c
+@@ -15,6 +15,9 @@
+     You should have received a copy of the GNU General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
++#if HAVE_CONFIG_H
++#include <config.h>
++#endif
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+--- a/doc/examples/library-usage/recinxdf.c
++++ b/doc/examples/library-usage/recinxdf.c
+@@ -15,6 +15,9 @@
+     You should have received a copy of the GNU General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
++#if HAVE_CONFIG_H
++#include <config.h>
++#endif
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+--- a/tests/sysbiosemi.c
++++ b/tests/sysbiosemi.c
+@@ -17,6 +17,9 @@
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ //#include <sys/time.h>
++#if HAVE_CONFIG_H
++#include <config.h>
++#endif
+ #include <time.h>
+ #include <string.h>
+ #include <stdlib.h>
+--- a/tests/syseegfile.c
++++ b/tests/syseegfile.c
+@@ -17,6 +17,9 @@
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ //#include <sys/time.h>
++#if HAVE_CONFIG_H
++#include <config.h>
++#endif
+ #include <time.h>
+ #include <string.h>
+ #include <stdlib.h>
+--- a/tests/sysneurosky.c
++++ b/tests/sysneurosky.c
+@@ -17,6 +17,9 @@
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ //#include <sys/time.h>
++#if HAVE_CONFIG_H
++#include <config.h>
++#endif
+ #include <time.h>
+ #include <string.h>
+ #include <stdlib.h>
+--- a/tests/systobiia.c
++++ b/tests/systobiia.c
+@@ -16,6 +16,9 @@
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ //#include <sys/time.h>
++#if HAVE_CONFIG_H
++#include <config.h>
++#endif
+ #include <time.h>
+ #include <string.h>
+ #include <stdlib.h>
diff --git a/sources b/sources
index e69de29..85779ce 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+4508e0c8fedfc122c01a73149036d23d  eegdev-0.2.tar.bz2
-- 
cgit v0.11.2


	http://pkgs.fedoraproject.org/cgit/eegdev.git/commit/?h=master&id=cafe9dbb04e0158e430ea11c19707b51e1b97230
                
--
scm-commits mailing list
scm-commits@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/scm-commits@lists.fedoraproject.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic