pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel



Module Name:    pkgsrc
Committed By:   jdolecek
Date:           Mon May  3 17:17:17 UTC 2021

Modified Files:
        pkgsrc/devel: Makefile
Added Files:
        pkgsrc/devel/libepoll-shim: DESCR Makefile PLIST buildlink3.mk distinfo

Log Message:
add libepoll-shim 0.0.20210418 small library that implements epoll with kqueue

will be used for net/xfreerdp2


To generate a diff of this commit:
cvs rdiff -u -r1.3370 -r1.3371 pkgsrc/devel/Makefile
cvs rdiff -u -r0 -r1.1 pkgsrc/devel/libepoll-shim/DESCR \
    pkgsrc/devel/libepoll-shim/Makefile pkgsrc/devel/libepoll-shim/PLIST \
    pkgsrc/devel/libepoll-shim/buildlink3.mk \
    pkgsrc/devel/libepoll-shim/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/Makefile
diff -u pkgsrc/devel/Makefile:1.3370 pkgsrc/devel/Makefile:1.3371
--- pkgsrc/devel/Makefile:1.3370        Sun May  2 13:43:15 2021
+++ pkgsrc/devel/Makefile       Mon May  3 17:17:17 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3370 2021/05/02 13:43:15 pho Exp $
+# $NetBSD: Makefile,v 1.3371 2021/05/03 17:17:17 jdolecek Exp $
 #
 
 COMMENT=       Development utilities
@@ -765,6 +765,7 @@ SUBDIR+=    libdstr
 SUBDIR+=       libdwarf
 SUBDIR+=       libebml
 SUBDIR+=       libelf
+SUBDIR+=       libepoll-shim
 SUBDIR+=       libestr
 SUBDIR+=       libetm
 SUBDIR+=       libev

Added files:

Index: pkgsrc/devel/libepoll-shim/DESCR
diff -u /dev/null pkgsrc/devel/libepoll-shim/DESCR:1.1
--- /dev/null   Mon May  3 17:17:17 2021
+++ pkgsrc/devel/libepoll-shim/DESCR    Mon May  3 17:17:17 2021
@@ -0,0 +1,48 @@
+This is a small library that implements epoll on top of kqueue. It
+has been successfully used to port libinput, libevdev, Wayland and
+more software to FreeBSD: https://www.freshports.org/devel/libepoll-shim/
+
+It may be useful for porting other software that uses epoll as well.
+
+The library provides implementation of Linux timerfd_create(2) related
+APIs, eventfd(2), signalfd(2).
+
+However, this library contains some very ugly hacks and workarounds.
+For example:
+
+- When using timerfd, signalfd or eventfd, the system calls read,
+  write and close are redefined as macros to internal helper
+  functions.  This is needed as there is some internal context that
+  has to be free'd properly. This means that you shouldn't create
+  a timerfd/signalfd in one part of a program and close it in a
+  different part where sys/timerfd.h isn't included. The context
+  would leak. Luckily, software such as libinput behaves very nicely
+  and puts all timerfd related code in a single source file.
+
+- There is limited support for file descriptors that lack support
+  for kqueue but are supported by poll(2). This includes graphics
+  or sound devices under /dev. Those descriptors are handled in an
+  outer poll(2) loop. Edge triggering using EPOLLET will not work.
+
+- Shimmed file descriptors cannot be shared between processes. On
+  fork() those fds are closed. When trying to pass a shimmed fd to
+  another process the sendmsg call will return EOPNOTSUPP. In most
+  cases sharing epoll/timerfd/signalfd is a bad idea anyway, but
+  there are some legitimate use cases (for example sharing semaphore
+  eventfds, issue #23). When the OS natively supports eventfds (as
+  is the case for FreeBSD >= 13) this library won't provide eventfd
+  shims or the sys/eventfd.h header.
+
+- There is no proper notification mechanism for changes to the
+  system CLOCK_REALTIME clock on BSD systems. Also, kevent
+  EVFILT_TIMERs use the system monotonic clock as reference.
+  Therefore, in order to implement absolute (TFD_TIMER_ABSTIME)
+  CLOCK_REALTIME timerfds or cancellation support
+  (TFD_TIMER_CANCEL_ON_SET), a thread is spawned that periodically
+  polls the system boot time for changes to the realtime clock.
+
+The following operating systems are supported:
+
+FreeBSD >= 11.4, >= 12.2, >= 13.0
+NetBSD >= 9.1
+OpenBSD >= 6.7
Index: pkgsrc/devel/libepoll-shim/Makefile
diff -u /dev/null pkgsrc/devel/libepoll-shim/Makefile:1.1
--- /dev/null   Mon May  3 17:17:17 2021
+++ pkgsrc/devel/libepoll-shim/Makefile Mon May  3 17:17:17 2021
@@ -0,0 +1,24 @@
+# $NetBSD: Makefile,v 1.1 2021/05/03 17:17:17 jdolecek Exp $
+
+GITHUB_PROJECT=        epoll-shim
+GITHUB_TAG=    refs/tags/v${PKGVERSION_NOREV}
+DISTNAME=      ${GITHUB_PROJECT}-0.0.20210418
+PKGNAME=       lib${DISTNAME}
+PKGREVISION=   # empty
+CATEGORIES=    devel
+MASTER_SITES=  ${MASTER_SITE_GITHUB:=jiixyj/}
+
+MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=      https://github.com/jiixyj/epoll-shim
+COMMENT=       Small epoll implemented using kevent
+LICENSE=       mit
+
+USE_CMAKE=     yes
+USE_TOOLS+=    pkg-config
+USE_LANGUAGES= c c++
+
+CMAKE_ARGS+=   -DBUILD_TESTING=OFF
+
+WRKSRC=                ${WRKDIR}/${DISTNAME}
+
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/devel/libepoll-shim/PLIST
diff -u /dev/null pkgsrc/devel/libepoll-shim/PLIST:1.1
--- /dev/null   Mon May  3 17:17:17 2021
+++ pkgsrc/devel/libepoll-shim/PLIST    Mon May  3 17:17:17 2021
@@ -0,0 +1,15 @@
+@comment $NetBSD: PLIST,v 1.1 2021/05/03 17:17:17 jdolecek Exp $
+include/libepoll-shim/epoll-shim/detail/common.h
+include/libepoll-shim/epoll-shim/detail/poll.h
+include/libepoll-shim/epoll-shim/detail/read.h
+include/libepoll-shim/epoll-shim/detail/write.h
+include/libepoll-shim/sys/epoll.h
+include/libepoll-shim/sys/eventfd.h
+include/libepoll-shim/sys/signalfd.h
+include/libepoll-shim/sys/timerfd.h
+lib/cmake/epoll-shim/epoll-shim-config.cmake
+lib/cmake/epoll-shim/epoll-shim-targets-noconfig.cmake
+lib/cmake/epoll-shim/epoll-shim-targets.cmake
+lib/libepoll-shim.so
+lib/libepoll-shim.so.0
+libdata/pkgconfig/epoll-shim.pc
Index: pkgsrc/devel/libepoll-shim/buildlink3.mk
diff -u /dev/null pkgsrc/devel/libepoll-shim/buildlink3.mk:1.1
--- /dev/null   Mon May  3 17:17:17 2021
+++ pkgsrc/devel/libepoll-shim/buildlink3.mk    Mon May  3 17:17:17 2021
@@ -0,0 +1,14 @@
+# $NetBSD: buildlink3.mk,v 1.1 2021/05/03 17:17:17 jdolecek Exp $
+
+BUILDLINK_TREE+=       libepoll-shim
+
+.if !defined(LIBEPOLL_SHIM_BUILDLINK3_MK)
+LIBEPOLL_SHIM_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.libepoll-shim+=  libepoll-shim>=0.0.20210418
+BUILDLINK_PKGSRCDIR.libepoll-shim?=    ../../devel/libepoll-shim
+BUILDLINK_INCDIRS.libepoll-shim=       include/libepoll-shim
+
+.endif # LIBEPOLL_SHIM_BUILDLINK3_MK
+
+BUILDLINK_TREE+=       -libepoll-shim
Index: pkgsrc/devel/libepoll-shim/distinfo
diff -u /dev/null pkgsrc/devel/libepoll-shim/distinfo:1.1
--- /dev/null   Mon May  3 17:17:17 2021
+++ pkgsrc/devel/libepoll-shim/distinfo Mon May  3 17:17:17 2021
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.1 2021/05/03 17:17:17 jdolecek Exp $
+
+SHA1 (epoll-shim-0.0.20210418.tar.gz) = 91d34e8a3e07afc1bfbca4575894f31bc7d3aa70
+RMD160 (epoll-shim-0.0.20210418.tar.gz) = 0e8a136b1b3716eaa4f7b1c7b52219d36522b09d
+SHA512 (epoll-shim-0.0.20210418.tar.gz) = 34272a694165bfb47f8a103d18aec304f7a72b36491b83268ff63dd696f5103ab53dc9e32173ed20ddd7baa36b9d7ca2b3ec6236eef8dc2f02a101819b75eb7b
+Size (epoll-shim-0.0.20210418.tar.gz) = 91936 bytes



Home | Main Index | Thread Index | Old Index