Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ivykis for openSUSE:Factory checked in at 2021-05-12 19:31:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ivykis (Old) and /work/SRC/openSUSE:Factory/.ivykis.new.2988 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ivykis" Wed May 12 19:31:51 2021 rev:13 rq:892299 version:0.42.4 Changes: -------- --- /work/SRC/openSUSE:Factory/ivykis/ivykis.changes 2017-09-12 19:56:07.856867579 +0200 +++ /work/SRC/openSUSE:Factory/.ivykis.new.2988/ivykis.changes 2021-05-12 19:32:19.295016181 +0200 @@ -1,0 +2,9 @@ +Tue May 11 21:26:20 UTC 2021 - Dirk M??ller <dmuel...@suse.com> + +- update to 0.42.4: + * iv_event: Fix crash in __iv_event_run_pending_events(). + * Don't install IV_FD_PUMP_INIT.3 when on a case sensitive filesystem. + * iv_timer: Protect against some cases of timer memory corruption. + * Avoid marking pthread_atfork() as weak if provided by libc_nonshared.a. + +------------------------------------------------------------------- Old: ---- ivykis-0.42.1.tar.gz New: ---- ivykis-0.42.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ivykis.spec ++++++ --- /var/tmp/diff_new_pack.YS8LvI/_old 2021-05-12 19:32:19.731014440 +0200 +++ /var/tmp/diff_new_pack.YS8LvI/_new 2021-05-12 19:32:19.731014440 +0200 @@ -1,7 +1,7 @@ # # spec file for package ivykis # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,27 +12,20 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -Name: ivykis %define lname libivykis0 -Version: 0.42.1 +Name: ivykis +Version: 0.42.4 Release: 0 Summary: An event dispatching library -License: LGPL-2.1 +License: LGPL-2.1-only Group: Development/Libraries/C and C++ -Url: http://sf.net/projects/libivykis/ - -#Freshcode-URL: http://freshcode.club/projects/ivykis -#Git-Clone: git://github.com/buytenh/ivykis -Source: http://downloads.sf.net/libivykis/%name-%version.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-build +URL: https://sourceforge.net/projects/libivykis/ +Source: https://downloads.sf.net/libivykis/%{name}-%{version}.tar.gz BuildRequires: pkgconfig -%if 0%{?suse_version} || 0%{?sles_version} -BuildRequires: fdupes -%endif %description libivykis is a thin wrapper over various OS'es implementation of I/O @@ -40,11 +33,11 @@ mainly intended for writing portable high-performance network servers. -%package -n %lname +%package -n %{lname} Summary: An event dispatching library Group: System/Libraries -%description -n %lname +%description -n %{lname} libivykis is a thin wrapper over various OS'es implementation of I/O readiness notification facilities (such as poll(2), kqueue(2)) and is mainly intended for writing portable high-performance network @@ -53,7 +46,7 @@ %package devel Summary: Development files for libivykis, an event dispatching library Group: Development/Libraries/C and C++ -Requires: %lname = %version +Requires: %{lname} = %{version} %description devel libivykis is a thin wrapper over various OS'es implementation of I/O @@ -64,42 +57,30 @@ This package contains the header files and development symlinks. %prep -%if 0%{?__xz:1} %setup -q -%else -tar -xf "%{S:0}" --use=xz; -%setup -DTq -%endif %build -%configure --disable-static --includedir=%_includedir/%name-%version -make %{?_smp_mflags} +%configure --disable-static --includedir=%{_includedir}/%{name}-%{version} +%make_build %install -b="%buildroot"; -make install DESTDIR="$b"; -rm -f "$b/%_libdir"/*.la; -%if 0%{?fdupes:1} -%fdupes %buildroot/%_prefix -%endif +%make_install +find %{buildroot} -type f -name "*.la" -delete -print %check -make %{?_smp_mflags} check; - -%post -n %lname -p /sbin/ldconfig +%make_build check -%postun -n %lname -p /sbin/ldconfig +%post -n %{lname} -p /sbin/ldconfig +%postun -n %{lname} -p /sbin/ldconfig -%files -n %lname -%defattr(-,root,root) -%_libdir/libivykis.so.0* +%files -n %{lname} +%{_libdir}/libivykis.so.0* %files devel -%defattr(-,root,root) -%_includedir/%name-%version -%_libdir/libivykis.so -%_libdir/pkgconfig/ivykis.pc -%_mandir/man3/iv*.3* -%_mandir/man3/IV*.3* +%{_includedir}/%{name}-%{version} +%{_libdir}/libivykis.so +%{_libdir}/pkgconfig/ivykis.pc +%{_mandir}/man3/iv*.3%{?ext_man} +%{_mandir}/man3/IV*.3%{?ext_man} %changelog ++++++ ivykis-0.42.1.tar.gz -> ivykis-0.42.4.tar.gz ++++++ ++++ 7714 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/Makefile.am new/ivykis-0.42.4/Makefile.am --- old/ivykis-0.42.1/Makefile.am 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/Makefile.am 2019-05-17 00:41:51.000000000 +0200 @@ -1,9 +1,6 @@ SUBDIRS = src test test.mt if HAVE_POSIX -SUBDIRS += contrib misc -if !BUILD_ON_CYGWIN -SUBDIRS += man3 -endif +SUBDIRS += contrib man3 misc endif EXTRA_DIST = DEDICATION libivykis.posix.ver libivykis.win32.ver diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/compile new/ivykis-0.42.4/compile --- old/ivykis-0.42.1/compile 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/compile 2019-05-17 00:41:51.000000000 +0200 @@ -1,9 +1,9 @@ -#! /bin/sh +#!/usr/bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey <tro...@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/config.h.in new/ivykis-0.42.4/config.h.in --- old/ivykis-0.42.1/config.h.in 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/config.h.in 2019-05-17 00:41:51.000000000 +0200 @@ -36,6 +36,9 @@ /* Define to 1 if you have the `kqueue' function. */ #undef HAVE_KQUEUE +/* Define to 1 if you have the `c_nonshared' library. */ +#undef HAVE_LIBC_NONSHARED + /* Define to 1 if you have the `pthread_nonshared' library (-lpthread_nonshared). */ #undef HAVE_LIBPTHREAD_NONSHARED diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/configure.ac new/ivykis-0.42.4/configure.ac --- old/ivykis-0.42.1/configure.ac 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/configure.ac 2019-05-17 00:41:51.000000000 +0200 @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT([ivykis], [0.42.1], [libivykis-disc...@lists.sourceforge.net]) +AC_INIT([ivykis], [0.42.4], [libivykis-disc...@lists.sourceforge.net]) AC_CONFIG_SRCDIR([src/iv_avl.c]) AC_CONFIG_SUBDIRS([test.mt]) AC_CONFIG_HEADER(config.h) @@ -69,18 +69,40 @@ # CFLAGS="$CFLAGS -D_BSD -D_POSIX_PII_SOCKET" ;; +solaris*) + # + # On Solaris, we want -D_REENTRANT, so that we get the + # threadsafe version of 'errno'. + # + CFLAGS="$CFLAGS -D_REENTRANT" esac # -# On Linux, linking against libpthread.so.0 doesn't give you -# pthread_atfork(), as the latter is defined in libpthread_nonshared.a, -# which doesn't get pulled in if libpthread.so.0 is pulled in -# indirectly, e.g. via -lrt, but does get pulled in if you link against -# -lpthread, as libpthread.so is a linker script that references both -# libpthread.so.0 and libpthread_nonshared.a. As we can link in -# libpthread_nonshared.a without pulling in libpthread.so.0, explicitly -# link in libpthread_nonshared.a if it is available. +# On Linux, pthread_atfork() is provided not by libpthread.so, but by +# libc_nonshared.a (for glibc >= 2.28) or by libpthread_nonshared.a +# (for glibc <= 2.27), and using "#pragma weak pthread_atfork" will +# cause pthread_atfork to be undefined (and have an address of NULL) +# even if the relevant lib*_nonshared.a was explicitly specified to +# the linker. This is explained by this paragraph from Chapter 4, +# section "Symbol Table", of the System V ABI specification, as pointed +# out by Hugo Grostabussiat: +# +# When the link editor searches archive libraries [see ``Archive +# File'' in Chapter 7], it extracts archive members that contain +# definitions of undefined global symbols. The member's definition +# may be either a global or a weak symbol. The link editor does +# not extract archive members to resolve undefined weak symbols. +# Unresolved weak symbols have a zero value. +# +# Therefore, if either of these lib*_nonshared.a libraries exists, we +# need to make note of this, to avoid marking pthread_atfork as weak. +# Also, if pthread_atfork is provided by libpthread_nonshared.a, we'll +# need to pull that library in explicitly, as we are not necessarily +# linked against libpthread.so.0. # +AC_CHECK_LIB([c_nonshared], [pthread_atfork], + [AC_DEFINE(HAVE_LIBC_NONSHARED, 1, + Define to 1 if you have the `c_nonshared' library.)]) AC_CHECK_LIB([pthread_nonshared], [pthread_atfork]) # Checks for header files. @@ -279,7 +301,8 @@ AM_CONDITIONAL([HAVE_PORT], [test x$ac_cv_func_port_create = xyes]) # Other conditionals. -AM_CONDITIONAL([BUILD_ON_CYGWIN], [test $build_os = cygwin]) +AM_CONDITIONAL([CASE_INSENSITIVE_FS], + [test $srcdir/COPYING -ef $srcdir/copying]) AM_CONDITIONAL([HAVE_INOTIFY], [test x$ac_cv_func_inotify_init = xyes]) AM_CONDITIONAL([HAVE_LINUX_NETFILTER_IPV4_H], [test x$ac_cv_header_linux_netfilter_ipv4_h = xyes]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/man3/Makefile.am new/ivykis-0.42.4/man3/Makefile.am --- old/ivykis-0.42.1/man3/Makefile.am 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/man3/Makefile.am 2019-05-17 00:41:51.000000000 +0200 @@ -14,7 +14,6 @@ iv_fd.3 \ iv_fd_pump.3 \ iv_fd_pump_destroy.3 \ - IV_FD_PUMP_INIT.3 \ iv_fd_pump_init.3 \ iv_fd_pump_is_done.3 \ iv_fd_pump_pump.3 \ @@ -68,6 +67,10 @@ iv_work_pool_submit_work.3 \ ivykis.3 +if !CASE_INSENSITIVE_FS +man3_MANS += IV_FD_PUMP_INIT.3 +endif + if HAVE_INOTIFY man3_MANS += iv_inotify.3 \ IV_INOTIFY_INIT.3 \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/missing new/ivykis-0.42.4/missing --- old/ivykis-0.42.1/missing 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/missing 2019-05-17 00:41:51.000000000 +0200 @@ -1,9 +1,9 @@ -#! /bin/sh +#!/usr/bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/src/Makefile.am new/ivykis-0.42.4/src/Makefile.am --- old/ivykis-0.42.1/src/Makefile.am 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/src/Makefile.am 2019-05-17 00:41:51.000000000 +0200 @@ -60,7 +60,7 @@ INC += include/iv_inotify.h endif -LINKFLAGS = -version-info 5:3:5 +LINKFLAGS = -version-info 5:6:5 if HAVE_VERSIONING LINKFLAGS += -Wl,--version-script,$(top_srcdir)/libivykis.posix.ver endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/src/iv_event.c new/ivykis-0.42.4/src/iv_event.c --- old/ivykis-0.42.1/src/iv_event.c 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/src/iv_event.c 2019-05-17 00:41:51.000000000 +0200 @@ -58,6 +58,11 @@ break; ___mutex_lock(&st->event_list_mutex); + + if (iv_list_empty(&events)) { + ___mutex_unlock(&st->event_list_mutex); + break; + } } } @@ -92,6 +97,8 @@ { struct iv_state *st = iv_get_state(); + st->numobjs++; + if (!st->event_count++ && is_mt_app()) { if (!iv_event_use_event_raw && event_rx_on(st)) iv_event_use_event_raw = 1; @@ -131,6 +138,8 @@ event_rx_off(st); } } + + st->numobjs--; } void iv_event_post(struct iv_event *this) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/src/iv_timer.c new/ivykis-0.42.4/src/iv_timer.c --- old/ivykis-0.42.1/src/iv_timer.c 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/src/iv_timer.c 2019-05-17 00:41:51.000000000 +0200 @@ -100,6 +100,11 @@ while (st->num_timers) { struct iv_timer_ *t = st->ratnode.first_leaf.child[1]; + if (t->index != 1) { + iv_fatal("iv_run_timers: root timer has heap " + "index %d", t->index); + } + if (timespec_gt(&t->expires, &st->time)) break; iv_timer_unregister((struct iv_timer *)t); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/src/pthr.h new/ivykis-0.42.4/src/pthr.h --- old/ivykis-0.42.1/src/pthr.h 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/src/pthr.h 2019-05-17 00:41:51.000000000 +0200 @@ -37,12 +37,12 @@ #ifdef HAVE_PRAGMA_WEAK /* - * On Linux, pthread_atfork() is defined in libpthread_nonshared.a, - * a static library, and we want to avoid "#pragma weak" for that - * symbol because that causes it to be undefined even if you link - * libpthread_nonshared.a in explicitly. + * On Linux, pthread_atfork() is defined in libc_nonshared.a (for + * glibc >= 2.28) or libpthread_nonshared.a (for glibc <= 2.27), and + * we want to avoid "#pragma weak" for that symbol because that causes + * it to be undefined even if you link lib*_nonshared.a in explicitly. */ -#ifndef HAVE_LIBPTHREAD_NONSHARED +#if !defined(HAVE_LIBC_NONSHARED) && !defined(HAVE_LIBPTHREAD_NONSHARED) #pragma weak pthread_atfork #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/test/Makefile.am new/ivykis-0.42.4/test/Makefile.am --- old/ivykis-0.42.1/test/Makefile.am 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/test/Makefile.am 2019-05-17 00:41:51.000000000 +0200 @@ -7,6 +7,7 @@ PROGS = iv_event_raw_bench_timer TESTS = avl \ + event_unregister_bug \ iv_event_raw_test \ struct_sizes \ timer \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/test/event_unregister_bug.c new/ivykis-0.42.4/test/event_unregister_bug.c --- old/ivykis-0.42.1/test/event_unregister_bug.c 1970-01-01 01:00:00.000000000 +0100 +++ new/ivykis-0.42.4/test/event_unregister_bug.c 2019-05-17 00:41:51.000000000 +0200 @@ -0,0 +1,55 @@ +/* + * ivykis, an event handling library + * Copyright (C) 2017 Lennert Buytenhek + * Dedicated to Marija Kulikova. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version + * 2.1 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 2.1 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License version 2.1 along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <iv.h> +#include <iv_event.h> + +static struct iv_event event1; +static struct iv_event event2; + +static void handler(void *_t) +{ + iv_event_unregister(&event1); + iv_event_unregister(&event2); +} + +int main() +{ + iv_init(); + + IV_EVENT_INIT(&event1); + event1.handler = handler; + iv_event_register(&event1); + iv_event_post(&event1); + + IV_EVENT_INIT(&event2); + event2.handler = handler; + iv_event_register(&event2); + iv_event_post(&event2); + + iv_main(); + + iv_deinit(); + + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ivykis-0.42.1/test-driver new/ivykis-0.42.4/test-driver --- old/ivykis-0.42.1/test-driver 2017-08-19 10:05:32.000000000 +0200 +++ new/ivykis-0.42.4/test-driver 2019-05-17 00:41:51.000000000 +0200 @@ -1,9 +1,9 @@ -#! /bin/sh +#!/usr/bin/sh # test-driver - basic testsuite driver script. -scriptversion=2013-07-13.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2018 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -140,9 +140,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: