Hello community, here is the log from the commit of package libuev for openSUSE:Factory checked in at 2019-04-12 09:15:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libuev (Old) and /work/SRC/openSUSE:Factory/.libuev.new.27019 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libuev" Fri Apr 12 09:15:01 2019 rev:5 rq:692243 version:2.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libuev/libuev.changes 2018-10-08 17:50:55.802062840 +0200 +++ /work/SRC/openSUSE:Factory/.libuev.new.27019/libuev.changes 2019-04-12 09:15:04.753701618 +0200 @@ -1,0 +2,6 @@ +Mon Apr 8 08:28:23 UTC 2019 - mvet...@suse.com + +- Update to 2.3.0: + * Support for Linux eventfd, uev_event_*() see API.md for details + +------------------------------------------------------------------- Old: ---- libuev-2.2.0.tar.gz New: ---- libuev-2.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libuev.spec ++++++ --- /var/tmp/diff_new_pack.su8Znf/_old 2019-04-12 09:15:06.365702641 +0200 +++ /var/tmp/diff_new_pack.su8Znf/_new 2019-04-12 09:15:06.365702641 +0200 @@ -1,7 +1,7 @@ # # spec file for package libuev # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2018, Martin Hauke <mar...@gmx.de> # # All modifications and additions to the file contributed by third parties @@ -19,7 +19,7 @@ %define sover 2 Name: libuev -Version: 2.2.0 +Version: 2.3.0 Release: 0 Summary: Event loop library License: MIT ++++++ libuev-2.2.0.tar.gz -> libuev-2.3.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/API.md new/libuev-2.3.0/API.md --- old/libuev-2.2.0/API.md 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/API.md 2019-04-06 13:33:06.000000000 +0200 @@ -87,6 +87,11 @@ int uev_signal_set (uev_t *w, int signo); /* Change signal to wait for */ int uev_signal_start(uev_t *w); /* Restart a stopped signal watcher */ int uev_signal_stop (uev_t *w); /* Stop signal watcher */ + +/* Generic event watcher, post events for later processing, or from forked child */ +int uev_event_init (uev_ctx_t *ctx, uev_t *w, uev_cb_t *cb, void *arg); +int uev_event_post (uev_t *w); +int uev_event_stop (uev_t *w); ``` @@ -309,16 +314,16 @@ int main(void) { - int fd; - uev_t watcher; uev_ctx_t ctx; + uev_t js; + int fd; fd = open("/dev/input/js0", O_RDONLY, O_NONBLOCK); if (fd < 0) errx(errno, "Cannot find a joystick attached."); uev_init(&ctx); - uev_io_init(&ctx, &watcher, joystick_cb, NULL, fd, UEV_READ); + uev_io_init(&ctx, &js, joystick_cb, NULL, fd, UEV_READ); puts("Starting, press Ctrl-C to exit."); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/ChangeLog.md new/libuev-2.3.0/ChangeLog.md --- old/libuev-2.2.0/ChangeLog.md 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/ChangeLog.md 2019-04-06 13:33:06.000000000 +0200 @@ -4,6 +4,14 @@ All notable changes to the project are documented in this file. +[v2.3.0][] - 2019-04-06 +----------------------- + +### Changes + +- Support for Linux eventfd, `uev_event_*()` see [API.md][] for details + + [v2.2.0][] - 2018-10-04 ----------------------- @@ -384,7 +392,8 @@ Lua users mailing list. -[UNRELEASED]: https://github.com/troglobit/libuev/compare/v2.2.0...HEAD +[UNRELEASED]: https://github.com/troglobit/libuev/compare/v2.3.0...HEAD +[v2.3.0]: https://github.com/troglobit/libuev/compare/v2.2.0...v2.3.0 [v2.2.0]: https://github.com/troglobit/libuev/compare/v2.1.3...v2.2.0 [v2.1.3]: https://github.com/troglobit/libuev/compare/v2.1.2...v2.1.3 [v2.1.2]: https://github.com/troglobit/libuev/compare/v2.1.1...v2.1.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/HACKING.md new/libuev-2.3.0/HACKING.md --- old/libuev-2.2.0/HACKING.md 1970-01-01 01:00:00.000000000 +0100 +++ new/libuev-2.3.0/HACKING.md 2019-04-06 13:33:06.000000000 +0200 @@ -0,0 +1,106 @@ +Maintenance and Release Checklist +================================= + +Maintenance +----------- + +* Encourage contributors to write tests, in particular for new features +* Run tests regularly, use Travis-CI to do this automatically +* Leverage GitHub issues for milestone planning +* Reference issues from GitHub pull requests to alert issue subscribers +* Bump library ABI version just before release! + + +Release Checklist +----------------- + +* Update ChangeLog, follow http://keepachangelog.com/ loosely + - Inform users in a plain language of changes and bug fixes + - Do *not* copy-paste GIT commit logs! + - Order entries according to importance, most relevant first +* Run unit tests: `make check` +* Make at least one `-rcN` release and test it in an actual real project +* **REMEMBER:** bump ABI version according to below rules +* Tag +* Push last commit(s) *and* tags to GitHub +* Make release + + make distclean + ./autogen.sh + ./configure + make release + +* Create new release in GitHub releases page +* Copy and paste ChangeLog entry, check any stale links! +* Upload release tarball and MD5 files + + +Library Versioning +------------------ + +libuEv relies on GNU Libtool for building the library. For users of the +library it is important to maintain a clear ABI versioning scheme. This +is not the same as the libuEv version, but rather its "compatibility +level". + +The libuEv ABI version is specified in `src/Makefile.am`: + + libuev_la_LDFLAGS = -version-info 0:0:0 + \ \ `-- age + \ `--- revision + `---- current + +It must be updated according to the [GNU Libtool recommendations][1]: + +1. Start with version information of `0:0:0` for each libtool library. +2. Update the version information only immediately before a public + release of your software. More frequent updates are unnecessary, and + only guarantee that the current interface number gets larger faster. +3. If the library *source code has changed at all* since the last update, + then increment revision (`c:r:a` becomes `c:r+1:a`). +4. If any *interfaces have been added, removed, or changed* since the + last update, increment current, and set revision to 0. +5. If any *interfaces have been added* since the last public release, + then increment age. +6. If any *interfaces have been removed or changed* since the last + public release, then set age to 0. + +The libtool ABI versioning logic is very confusing but works if you just +disable your brain and follow the rules, one by one. + +**Example #1:** a new function has been added, none of the existing ones +have changed. The initial version is 1:0:0, we follow the rules above to +the letter: increase revision, increase current and set revision to zero, +and finally increase age. This, rather confusingly, gives us 2:0:1 which +libtool then translates to `libuev.so.1.1.0`. + +**Example #2:** some existing functions are changed, they now return an +`int` instead of `void`. The initial version is 0:0:0, and we follow the +rules again: increment revision, increment current and set revision to +zero, set age to zero. This gives us 1:0:0, which is then translated to + `libuev.so.1.0.0`. + + +### Note + +Usually, non-developers have no interest in running development versions +(releases are frequent enough), and developers are expected to know how +to juggle versions. In such an ideal world, it is good enough to bump +the library version just prior to a release, point 2. + +However, if releases are few and far between, distributors may start to +use snapshots. When a distributor uses a snapshot, the distributor has +to handle the library version manually. Things can get ugly when the +distributor has released an intermediate version with a bumped library +version, and when the official release is bumped to that version, the +distributor will then have to bump the library version for the official +release, and it can be confusing if someone reports bugs on versions +that you didn't even know existed. + +The problem with bumping the version with every change is that if your +interface is not finished, the version number might run away, and it +looks pretty bad if a library is at version 262. It kind of tells the +user that the library interface is volatile, which is not good for +business. + +[1]: https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/LICENSE new/libuev-2.3.0/LICENSE --- old/libuev-2.2.0/LICENSE 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/LICENSE 2019-04-06 13:33:06.000000000 +0200 @@ -1,5 +1,5 @@ Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> -Copyright (c) 2013-2017 Joachim Nilsson <troglobit()gmail!com> +Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/README.md new/libuev-2.3.0/README.md --- old/libuev-2.2.0/README.md 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/README.md 2019-04-06 13:33:06.000000000 +0200 @@ -1,5 +1,5 @@ -libuEv | Simple event loop for Linux -==================================== +µEv | Simple event loop for Linux +================================== [![Travis Status][]][Travis] [![Coverity Status][]][Coverity Scan] @@ -20,10 +20,10 @@ Introduction ------------ -[libuEv][] is a simple event loop in the style of the more established -[libevent][1], [libev][2] and the venerable [Xt(3)][3] event loop. The -*u* (micro) in the name refers to both the small feature set and the -small size overhead impact of the library. +[libuEv][] is a small event loop that wraps the Linux `epoll()` family +of APIs. It is similar to the more established [libevent][], [libev][] +and the venerable [Xt(3)][] event loop. The *µ* in the name refers to +both its limited feature set and the size impact of the library. Failure mode changes introduced in v2.0 may affect users of v1.x, See the [ChangeLog][] for the full details. @@ -34,34 +34,35 @@ Example ------- -Notice below how watcher `UEV_ERROR` conditions must be handled by each +Notice how watcher conditions like `UEV_ERROR` must be handled by each callback. I/O watchers must also check for `UEV_HUP`. Both errors are usually fatal, libuEv makes sure to stop each watcher before a callback runs, leaving it up to the callback to take appropriate action. ```C +/* Set up a timer watcher to call cb() every other second */ #include <stdio.h> #include <uev/uev.h> static void cb(uev_t *w, void *arg, int events) { - if (UEV_ERROR == events) { - puts("Problem with timer, attempting to restart."); - uev_timer_start(w); - } - puts("Every other second"); + if (UEV_ERROR == events) { + puts("Problem with timer, attempting to restart."); + uev_timer_start(w); + } + + puts("Every other second"); } int main(void) { - uev_t timer; - uev_ctx_t ctx; + uev_ctx_t ctx; + uev_t timer; - uev_init(&ctx); - /* Set up a timer watcher to call cb() every other second */ - uev_timer_init(&ctx, &timer, cb, NULL, 2 * 1000, 2 * 1000); + uev_init(&ctx); + uev_timer_init(&ctx, &timer, cb, NULL, 2 * 1000, 2 * 1000); - return uev_run(&ctx, 0); + return uev_run(&ctx, 0); } ``` @@ -82,36 +83,40 @@ sudo ldconfig ``` -The resulting .so file is ~14 kiB. +The resulting .so library is ~23 kiB. + +To build from GIT sources; clone the repository and run the `autogen.sh` +script. This requires GNU `automake`, `autoconf` amd `libtool` to be +installed on your system. (If you build from a released tarball you do +not need them.) Origin & References ------------------- -[libuEv][] originates from [LibUEvent][8] by [Flemming Madsen][], but -with a rewritten and much cleaner API. It is now more similar to the -famous [libev][2] by [Mark Lehmann][]. Another library inspiring this -project is [picoev][9] by [Oku Kazuho][]. - -[libuEv][] is developed and maintained by [Joachim Nilsson][]. It is -built for and developed on GNU/Linux systems, patches to support *BSD -and its [kqueue][] interface are most welcome. +[libuEv][] is developed and maintained by [Joachim Nilsson][] on GitHub. +It is primarily built for and developed on GNU/Linux systems, patches to +support the BSD [kqueue][] interface are most welcome. + +Originally based on [LibUEvent][] by [Flemming Madsen][], uEv has since +evolved to support all of the Linux `epoll()` family APIs. It is now +more similar to the excellent [libev][] by [Mark Lehmann][], with some +inspiration also from [picoev][] by [Oku Kazuho][]. -[1]: http://libevent.org -[2]: http://software.schmorp.de/pkg/libev.html -[3]: http://unix.com/man-page/All/3x/XtDispatchEvent -[8]: http://code.google.com/p/libuevent/ -[9]: https://github.com/kazuho/picoev [ChangeLog]: https://github.com/troglobit/libuev/blob/master/ChangeLog.md [Travis]: https://travis-ci.org/troglobit/libuev [Travis Status]: https://travis-ci.org/troglobit/libuev.png?branch=master [Coverity Scan]: https://scan.coverity.com/projects/3846 [Coverity Status]: https://scan.coverity.com/projects/3846/badge.svg +[libevent]: https://libevent.org +[Xt(3)]: https://unix.com/man-page/All/3x/XtDispatchEvent +[LibUEvent]: https://code.google.com/p/libuevent/ +[picoev]: https://github.com/kazuho/picoev +[libev]: http://software.schmorp.de/pkg/libev.html [LibuEv]: https://github.com/troglobit/libuev [kqueue]: https://github.com/mheily/libkqueue [Oku Kazuho]: https://github.com/kazuho [Mark Lehmann]: http://software.schmorp.de [Joachim Nilsson]: http://troglobit.com [Flemming Madsen]: http://www.madsensoft.dk -[Dave Zarzycki, Apple]: http://www.youtube.com/watch?v=cD_s6Fjdri8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/configure.ac new/libuev-2.3.0/configure.ac --- old/libuev-2.2.0/configure.ac 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/configure.ac 2019-04-06 13:33:06.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT(libuev, 2.2.0, https://github.com/troglobit/libuev/issues) +AC_INIT(libuev, 2.3.0, https://github.com/troglobit/libuev/issues) AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz]) AM_SILENT_RULES([yes]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/debian/README.debian new/libuev-2.3.0/debian/README.debian --- old/libuev-2.2.0/debian/README.debian 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/debian/README.debian 2019-04-06 13:33:06.000000000 +0200 @@ -8,7 +8,7 @@ Recommended reading is the upstream README and API docs. - less /usr/share/doc/libuev-dev/README.md - zless /usr/share/doc/libuev-dev/API.md.gz + less /usr/share/doc/libuev-dev/README.md + less /usr/share/doc/libuev-dev/API.md - -- Joachim Nilsson <troglo...@gmail.com> Thu, 21 Sep 18:10, 2017 + -- Joachim Nilsson <troglo...@gmail.com> Sat, 6 Apr 13:18, 2019 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/debian/changelog new/libuev-2.3.0/debian/changelog --- old/libuev-2.2.0/debian/changelog 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/debian/changelog 2019-04-06 13:33:06.000000000 +0200 @@ -1,3 +1,9 @@ +libuev (2.3.0) unstable; urgency=medium + + * Support for Linux eventfd, uev_event_*(), see API.md for details. + + -- Joachim Nilsson <troglo...@gmail.com> Thu, 06 Apr 2019 13:09:31 +0200 + libuev (2.2.0) unstable; urgency=medium * Replaced BSD queue.h with own linked list implementation. This means diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/debian/compat new/libuev-2.3.0/debian/compat --- old/libuev-2.2.0/debian/compat 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/debian/compat 2019-04-06 13:33:06.000000000 +0200 @@ -1 +1 @@ -9 +10 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/debian/control new/libuev-2.3.0/debian/control --- old/libuev-2.2.0/debian/control 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/debian/control 2019-04-06 13:33:06.000000000 +0200 @@ -1,12 +1,12 @@ Source: libuev +Section: libs Priority: optional Maintainer: Joachim Nilsson <troglo...@gmail.com> Build-Depends: dpkg-dev (>= 1.14.9), debhelper (>= 9), dh-autoreconf -Standards-Version: 3.9.6 -Section: libs +Standards-Version: 4.3.0 Homepage: https://github.com/troglobit/libuev/ -Vcs-Git: https://github.com/troglobit/libuev.git Vcs-Browser: https://github.com/troglobit/libuev/ +Vcs-Git: https://github.com/troglobit/libuev.git Package: libuev-dev Priority: extra @@ -14,26 +14,24 @@ Architecture: any Depends: ${misc:Depends}, libuev (= ${binary:Version}) Description: static library, header files, and docs for libuev - Static library, header files, and documentation for libuev. + Static library, header files, and documentation for libuEv . - libuEv is a simple event loop in the style of the more established - libevent, libev and the venerable Xt(3) event loop. The u (micro) in the - name refers to both the small feature set and the small size overhead - impact of the library. + libuEv is a small event loop that wraps the Linux epoll() family of APIs. + It is similar to the more established libevent, libev and the venerable + Xt(3) event loop. The u (micro) in the name refers to both its limited + feature set and the small size impact of the library. . - Experienced developers may appreciate that libuEv is built on top of - modern Linux APIs: epoll, timerfd and signalfd. Note however, a certain - amount of care is needed when dealing with APIs that employ signalfd. + Experienced developers may appreciate libuEv is built on top of modern + Linux APIs like epoll, eventfd, timerf, and signalfd. Package: libuev Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} -Description: Lightweight event loop library - libuEv is a simple event loop in the style of the more established - libevent, libev and the venerable Xt(3) event loop. The u (micro) in the - name refers to both the small feature set and the small size overhead - impact of the library. +Description: Lightweight event loop library for Linux + libuEv is a small event loop that wraps the Linux epoll() family of APIs. + It is similar to the more established libevent, libev and the venerable + Xt(3) event loop. The u (micro) in the name refers to both its limited + feature set and the small size impact of the library. . - Experienced developers may appreciate that libuEv is built on top of - modern Linux APIs: epoll, timerfd and signalfd. Note however, a certain - amount of care is needed when dealing with APIs that employ signalfd. + Experienced developers may appreciate libuEv is built on top of modern + Linux APIs like epoll, eventfd, timerfd, and signalfd. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/debian/copyright new/libuev-2.3.0/debian/copyright --- old/libuev-2.2.0/debian/copyright 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/debian/copyright 2019-04-06 13:33:06.000000000 +0200 @@ -1,26 +1,35 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: libuEv +Upstream-Contact: troglo...@gmail.com Source: https.//github.com/troglobit/libuev/ +Comment: Debianized by upstream on Mon, Nov 28 2016 23:23:17 +0100 Files: * -Copyright: 2013-2017 Joachim Nilsson <troglo...@gmail.com> +Copyright: 2012 Flemming Madsen <flemming.mad...@madsensoft.dk> + 2013-2019 Joachim Nilsson <troglo...@gmail.com> License: MIT -Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> -Copyright (c) 2013-2017 Joachim Nilsson <troglobit()gmail!com> -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Files: debian/* +Copyright: 2016-2019 Joachim Nilsson <troglo...@gmail.com> -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +License: MIT + Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> + Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> + . + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/debian/libuev.dirs new/libuev-2.3.0/debian/libuev.dirs --- old/libuev-2.2.0/debian/libuev.dirs 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/debian/libuev.dirs 2019-04-06 13:33:06.000000000 +0200 @@ -1 +1,2 @@ usr/lib +usr/share diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/debian/rules new/libuev-2.3.0/debian/rules --- old/libuev-2.2.0/debian/rules 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/debian/rules 2019-04-06 13:33:06.000000000 +0200 @@ -1,10 +1,17 @@ #!/usr/bin/make -f - # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 +export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ --with autoreconf override_dh_compress: dh_compress -A -X.md + +override_dh_installchangelogs: + dh_installchangelogs ChangeLog.md + +override_dh_auto_install: + dh_auto_install + find debian -name LICENSE -delete diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/examples/joystick.c new/libuev-2.3.0/examples/joystick.c --- old/libuev-2.2.0/examples/joystick.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/examples/joystick.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,6 +1,6 @@ /* Simple example of how to use libuEv with Linux joystick API * - * Copyright (c) 2014-2017 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2014-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -74,16 +74,16 @@ int main(void) { - int fd; - uev_t js1_watcher; uev_ctx_t ctx; + uev_t js1; + int fd; fd = open("/dev/input/js0", O_RDONLY, O_NONBLOCK); if (fd < 0) errx(errno, "Cannot find a joystick attached."); uev_init(&ctx); - uev_io_init(&ctx, &js1_watcher, joystick_cb, NULL, fd, UEV_READ); + uev_io_init(&ctx, &js1, joystick_cb, NULL, fd, UEV_READ); puts("Starting, press Ctrl-C to exit."); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/examples/redirect.c new/libuev-2.3.0/examples/redirect.c --- old/libuev-2.2.0/examples/redirect.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/examples/redirect.c 2019-04-06 13:33:06.000000000 +0200 @@ -47,9 +47,9 @@ int main(int argc, char **argv) { - int ret; - uev_t watcher; uev_ctx_t ctx; + uev_t watcher; + int ret; uev_init(&ctx); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/Makefile.am new/libuev-2.3.0/src/Makefile.am --- old/libuev-2.2.0/src/Makefile.am 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/src/Makefile.am 2019-04-06 13:33:06.000000000 +0200 @@ -1,8 +1,8 @@ lib_LTLIBRARIES = libuev.la -libuev_la_SOURCES = uev.c uev.h private.h io.c timer.c signal.c cron.c +libuev_la_SOURCES = uev.c uev.h private.h io.c timer.c signal.c cron.c event.c libuev_la_CPPFLAGS = -D_GNU_SOURCE -D_TIME_BITS=64 libuev_la_CFLAGS = -W -Wall -Wextra -std=gnu11 -libuev_la_LDFLAGS = $(AM_LDFLAGS) -version-info 3:0:1 +libuev_la_LDFLAGS = $(AM_LDFLAGS) -version-info 4:0:2 noinst_PROGRAMS = bench bench_CPPFLAGS = -D_GNU_SOURCE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/cron.c new/libuev-2.3.0/src/cron.c --- old/libuev-2.2.0/src/cron.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/src/cron.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,7 +1,7 @@ /* libuEv - Micro event loop library * * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> - * Copyright (c) 2013-2017 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/event.c new/libuev-2.3.0/src/event.c --- old/libuev-2.2.0/src/event.c 1970-01-01 01:00:00.000000000 +0100 +++ new/libuev-2.3.0/src/event.c 2019-04-06 13:33:06.000000000 +0200 @@ -0,0 +1,106 @@ +/* libuEv - Micro event loop library + * + * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include <errno.h> +#include <sys/eventfd.h> +#include <unistd.h> /* close(), read() */ + +#include "uev.h" + + +/** + * Create a generic event watcher + * @param ctx A valid libuEv context + * @param w Pointer to an uev_t watcher + * @param cb Callback when an event is posted + * @param arg Optional callback argument + * + * @return POSIX OK(0) or non-zero with @param errno set on error. + */ +int uev_event_init(uev_ctx_t *ctx, uev_t *w, uev_cb_t *cb, void *arg) +{ + int fd; + + if (!w || !ctx) { + errno = EINVAL; + return -1; + } + w->fd = -1; + + fd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC); + if (fd < 0) + return -1; + + return _uev_watcher_init(ctx, w, UEV_EVENT_TYPE, cb, arg, fd, UEV_READ) + || _uev_watcher_start(w); +} + +/** + * Post a generic event + * @param w Watcher to post to + * + * @return POSIX OK(0) or non-zero with @param errno set on error. + */ +int uev_event_post(uev_t *w) +{ + uint64_t val = 1; + + if (!w || -1 == w->fd) { + errno = EINVAL; + return -1; + } + + + if (write(w->fd, &val, sizeof(val)) != sizeof(val)) + return -1; + + return 0; +} + +/** + * Stop a generic event watcher + * @param w Watcher to stop + * + * @return POSIX OK(0) or non-zero with @param errno set on error. + */ +int uev_event_stop(uev_t *w) +{ + if (!_uev_watcher_active(w)) + return 0; + + if (_uev_watcher_stop(w)) + return -1; + + close(w->fd); + w->fd = -1; + + return 0; +} + +/** + * Local Variables: + * indent-tabs-mode: t + * c-file-style: "linux" + * End: + */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/io.c new/libuev-2.3.0/src/io.c --- old/libuev-2.2.0/src/io.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/src/io.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,7 +1,7 @@ /* libuEv - Micro event loop library * * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> - * Copyright (c) 2013-2017 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/private.h new/libuev-2.3.0/src/private.h --- old/libuev-2.2.0/src/private.h 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/src/private.h 2019-04-06 13:33:06.000000000 +0200 @@ -1,7 +1,7 @@ /* libuEv - Private methods and data types, do not use directly! * * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> - * Copyright (c) 2013-2015 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -66,6 +66,7 @@ UEV_SIGNAL_TYPE, UEV_TIMER_TYPE, UEV_CRON_TYPE, + UEV_EVENT_TYPE, } uev_type_t; /* Event mask, used internally only. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/signal.c new/libuev-2.3.0/src/signal.c --- old/libuev-2.2.0/src/signal.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/src/signal.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,7 +1,7 @@ /* libuEv - Micro event loop library * * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> - * Copyright (c) 2013-2017 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,7 @@ * Create a signal watcher * @param ctx A valid libuEv context * @param w Pointer to an uev_t watcher - * @param cb Timer callback + * @param cb Signal callback * @param arg Optional callback argument * @param signo Signal to watch for * @@ -42,8 +42,8 @@ */ int uev_signal_init(uev_ctx_t *ctx, uev_t *w, uev_cb_t *cb, void *arg, int signo) { - int fd; sigset_t mask; + int fd; if (!w || !ctx) { errno = EINVAL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/timer.c new/libuev-2.3.0/src/timer.c --- old/libuev-2.2.0/src/timer.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/src/timer.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,7 +1,7 @@ /* libuEv - Micro event loop library * * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> - * Copyright (c) 2013-2017 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/uev.c new/libuev-2.3.0/src/uev.c --- old/libuev-2.2.0/src/uev.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/src/uev.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,7 +1,7 @@ /* libuEv - Micro event loop library * * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> - * Copyright (c) 2013-2017 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -245,17 +245,21 @@ continue; switch (w->type) { - case UEV_CRON_TYPE: - case UEV_TIMER_TYPE: - uev_timer_stop(w); + case UEV_IO_TYPE: + uev_io_stop(w); break; case UEV_SIGNAL_TYPE: uev_signal_stop(w); break; - case UEV_IO_TYPE: - uev_io_stop(w); + case UEV_TIMER_TYPE: + case UEV_CRON_TYPE: + uev_timer_stop(w); + break; + + case UEV_EVENT_TYPE: + uev_event_stop(w); break; } } @@ -285,8 +289,8 @@ */ int uev_run(uev_ctx_t *ctx, int flags) { - int timeout = -1; uev_t *w; + int timeout = -1; if (!ctx || ctx->fd < 0) { errno = EINVAL; @@ -308,8 +312,8 @@ } while (ctx->running && ctx->watchers) { - int i, nfds, rerun = 0; struct epoll_event ee[UEV_MAX_EVENTS]; + int i, nfds, rerun = 0; /* Handle special case: `application < file.txt` */ if (ctx->workaround) { @@ -345,9 +349,9 @@ } for (i = 0; ctx->running && i < nfds; i++) { - uint64_t exp; - uint32_t events; struct signalfd_siginfo fdsi; + uint32_t events; + uint64_t exp; ssize_t sz = sizeof(fdsi); w = (uev_t *)ee[i].data.ptr; @@ -396,6 +400,11 @@ if (!w->u.c.when) uev_timer_stop(w); break; + + case UEV_EVENT_TYPE: + if (read(w->fd, &exp, sizeof(exp)) != sizeof(exp)) + events = UEV_HUP; + break; } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/src/uev.h new/libuev-2.3.0/src/uev.h --- old/libuev-2.2.0/src/uev.h 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/src/uev.h 2019-04-06 13:33:06.000000000 +0200 @@ -1,7 +1,7 @@ /* libuEv - Micro event loop library * * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> - * Copyright (c) 2013-2015 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -47,9 +47,10 @@ /* Macros */ #define uev_io_active(w) _uev_watcher_active(w) +#define uev_signal_active(w) _uev_watcher_active(w) #define uev_timer_active(w) _uev_watcher_active(w) #define uev_cron_active(w) _uev_watcher_active(w) -#define uev_signal_active(w) _uev_watcher_active(w) +#define uev_event_active(w) _uev_watcher_active(w) /* Event watcher */ typedef struct uev { @@ -100,6 +101,10 @@ int uev_signal_start (uev_t *w); int uev_signal_stop (uev_t *w); +int uev_event_init (uev_ctx_t *ctx, uev_t *w, uev_cb_t *cb, void *arg); +int uev_event_post (uev_t *w); +int uev_event_stop (uev_t *w); + #endif /* LIBUEV_UEV_H_ */ /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/tests/.gitignore new/libuev-2.3.0/tests/.gitignore --- old/libuev-2.2.0/tests/.gitignore 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/tests/.gitignore 2019-04-06 13:33:06.000000000 +0200 @@ -6,3 +6,4 @@ cronrun signal timer +event diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/tests/Makefile.am new/libuev-2.3.0/tests/Makefile.am --- old/libuev-2.2.0/tests/Makefile.am 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/tests/Makefile.am 2019-04-06 13:33:06.000000000 +0200 @@ -8,6 +8,7 @@ TESTS += cronrun TESTS += signal TESTS += timer +TESTS += event check_PROGRAMS = $(TESTS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/tests/active.c new/libuev-2.3.0/tests/active.c --- old/libuev-2.2.0/tests/active.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/tests/active.c 2019-04-06 13:33:06.000000000 +0200 @@ -38,8 +38,8 @@ int main(void) { - uev_ctx_t ctx; struct timeval tomorrow; + uev_ctx_t ctx; gettimeofday(&tomorrow, NULL); tomorrow.tv_sec += 24 * 60 * 60; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/tests/complete.c new/libuev-2.3.0/tests/complete.c --- old/libuev-2.2.0/tests/complete.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/tests/complete.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,7 +1,7 @@ /* Test libuEv event library * * Copyright (c) 2012 Flemming Madsen <flemming!madsen()madsensoft!dk> - * Copyright (c) 2013-2015 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2013-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/tests/cronrun.c new/libuev-2.3.0/tests/cronrun.c --- old/libuev-2.2.0/tests/cronrun.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/tests/cronrun.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,6 +1,6 @@ /* Test cron API in libuEv event library * - * Copyright (c) 2016 Joachim Nilsson <troglobit()gmail!com> + * Copyright (c) 2016-2019 Joachim Nilsson <troglobit()gmail!com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,8 +33,8 @@ static void cron_job(uev_t *w, void *arg, int events) { - static int laps = 3; struct timeval now; + static int laps = 3; if (UEV_ERROR == events) fprintf(stderr, "cron watcher failed, ignoring ...\n"); @@ -54,10 +54,10 @@ int main(void) { - int rc; - uev_t cron_watcher; uev_ctx_t ctx; time_t when, interval; + uev_t cron; + int rc; uev_init(&ctx); @@ -68,7 +68,7 @@ printf("Expected cron %s", ctime(&when)); interval = INTERVAL; - uev_cron_init(&ctx, &cron_watcher, cron_job, NULL, when, interval); + uev_cron_init(&ctx, &cron, cron_job, NULL, when, interval); rc = uev_run(&ctx, 0); fail_unless(result == 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/tests/event.c new/libuev-2.3.0/tests/event.c --- old/libuev-2.2.0/tests/event.c 1970-01-01 01:00:00.000000000 +0100 +++ new/libuev-2.3.0/tests/event.c 2019-04-06 13:33:06.000000000 +0200 @@ -0,0 +1,78 @@ +/* Verifies eventfd support + * + * Copyright (c) 2018-2019 Joachim Nilsson <troglo...@gmail.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "check.h" +#include <err.h> +#include <stdio.h> +#include <unistd.h> +#include <sys/wait.h> + +#define LAPS 10 +pid_t pid; + +static void cb(uev_t *w, void *arg, int events) +{ + static int num = LAPS; + + num--; +// printf("Got event %d ...\n", LAPS - num); + if (num == 0) { + waitpid(pid, NULL, 0); + uev_exit(w->ctx); + } +} + +int main(void) +{ + uev_ctx_t ctx; + uev_t ev; + int i; + + /* Initialize libuEv */ + uev_init(&ctx); + + /* Setup callbacks */ + uev_event_init(&ctx, &ev, cb, NULL); + + pid = fork(); + if (-1 == pid) + err(1, "fork"); + + /* Start event loop */ + if (pid > 0) + return uev_run(&ctx, 0); + + for (i = 0; i < LAPS; i++) { + uev_event_post(&ev); + usleep(10000); + } + + return 0; +} + +/** + * Local Variables: + * indent-tabs-mode: t + * c-file-style: "linux" + * End: + */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/tests/signal.c new/libuev-2.3.0/tests/signal.c --- old/libuev-2.2.0/tests/signal.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/tests/signal.c 2019-04-06 13:33:06.000000000 +0200 @@ -1,6 +1,6 @@ /* Multiple signals, segfault and fork() to test sub-processes. * - * Copyright (c) 2015 Joachim Nilsson <troglo...@gmail.com> + * Copyright (c) 2015-2019 Joachim Nilsson <troglo...@gmail.com> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -81,8 +81,8 @@ static void work_cb(uev_t *w, void *arg, int events) { - int status = 0; - pid_t pid; + pid_t pid; + int status = 0; pid = fork(); if (-1 == pid) @@ -113,8 +113,8 @@ int main(void) { - uev_t sigsegv_watcher, sigchld_watcher, timeout_watcher, deadline_watcher; uev_ctx_t ctx; + uev_t sigsegv_watcher, sigchld_watcher, timeout_watcher, deadline_watcher; /* Initialize libuEv */ uev_init(&ctx); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libuev-2.2.0/tests/timer.c new/libuev-2.3.0/tests/timer.c --- old/libuev-2.2.0/tests/timer.c 2018-10-04 21:06:51.000000000 +0200 +++ new/libuev-2.3.0/tests/timer.c 2019-04-06 13:33:06.000000000 +0200 @@ -23,9 +23,9 @@ int main(void) { - int rc; - uev_t w; uev_ctx_t ctx; + uev_t w; + int rc; uev_init(&ctx); uev_timer_init(&ctx, &w, cb, NULL, TIMEOUT * 1000, 0);