Monday, September 05, 2022

Re: Fix FindInotify in devel/kf5/extra-cmake-modules

On 2022/09/04 09:40, Rafael Sadowski wrote:
> On Sun Sep 04, 2022 at 09:28:35AM +0200, Antoine Jacoutot wrote:
> > On Sun, Sep 04, 2022 at 09:24:22AM +0200, Rafael Sadowski wrote:
> > > I figure out that FindInotify from ecm was useless. Please find below a
> > > patch to unbreak FindInotify. With this FindInotify will find our
> > > devel/libinotify includes and shared lib.
> > >
> > > In most ports it should then look like this:
> > >
> > > WANTLIB += lib/inotify/inotify
> > >
> > > LIB_DEPENDS = devel/libinotify
> > >
> > > CXXFLAGS += -I${LOCALBASE}/include/inotify
> > > MODCMAKE_LDFLAGS = -L${LOCALBASE}/lib/inotify
> > >
> > > OK or should this go into a bulk build? Volunteers?
> >
> > Is it time to install libinotify to the standard lib and inclure dirs?
>
> I would love to see it! But even then, we need some patches unless we
> install it in ${LOCALBASE}/include/sys/inotify.h and not
> ${LOCALBASE}/include/inotify.h.
>
> Anyway it will help with WANTLIB and ld.

I worry that we'll have the same problem we had with libexecinfo with
ports picking up the header but not realising that they need to link an
extra library because the function isn't in libc like it is on Linux.

Now libexecinfo is in base we miss the worst of that (dep not listed ->
dpb junking breaks builds) but I think we'll see it again with libinotify
in a standard searched dir. (It won't show up in check-lib-depends if
some port knows about the header but not the library).

It goes double with the way we're using lld (which I think is connected
with how we don't list deps on libc in shared libraries) as it often
doesn't tell us about missing symbols.

There is another side-issue that we might suddenly run into huge fd use
from some software (our default fd limits are really low and the way that
directory-monitoring has to be implemented for the kqueue backend uses a
lot of FDs) though this could be partially dealt with by disabling
inotify case-by-case when we find those ports (so if we *do* change this
it's probably best to time it for soon after unlock).

inotify shows up in logs from these:

audio/mpd
databases/kdb
databases/pspg
databases/recoll
databases/tdb
devel/git-cola
devel/glib2
devel/kf5/kcoreaddons
devel/libev
devel/libivykis
devel/libtalloc
devel/monotone
devel/p5-EV
devel/py-gevent
devel/py-intervaltree
devel/py-pyinotify
devel/py-twisted
devel/ruby-ffi
devel/sdl2
devel/spidermonkey91
editors/emacs
emulators/qemu
games/0ad/base
games/openclonk
graphics/nsxiv
graphics/sane-backends
lang/dmd
lang/gcc/11
lang/ldc
lang/mono
lang/wasi-libc
mail/courier-imap
mail/dovecot
mail/extsmail
mail/maildrop
mail/mozilla-thunderbird
mail/mutt
mail/neomutt
mail/rspamd
math/graphviz
math/py-networkx
math/rstudio
multimedia/mediainfo
multimedia/minidlna
net/avahi
net/dnsmasq
net/gdnsd
net/nextcloudclient
net/owncloudclient
net/ruby-eventmachine
net/samba
net/seafile/seafile
net/transmission
security/ossec-hids
security/pwntools
security/sn0int
sysutils/bacula
sysutils/conky
sysutils/consolekit
sysutils/coreutils
sysutils/gamin
sysutils/incron
sysutils/inotify-tools
sysutils/logfmon
sysutils/lsyncd
sysutils/rsy
sysutils/salt
sysutils/syslog-ng
sysutils/vifm
telephony/asterisk/16
telephony/asterisk/18
telephony/asterisk/19
textproc/calibre
textproc/mdbook
textproc/ruby-haml
textproc/wkhtmltopdf
www/firefox-esr
www/lighttpd
www/mozilla-firefox
www/ruby-passenger
www/tor-browser/browser
www/zola
x11/alacritty
x11/compiz/ccsm
x11/compiz/core
x11/compiz/libcompizconfig
x11/dbus
x11/ede/lib
x11/emelfm2
x11/kde-applications/akonadi-import-wizard
x11/kde-applications/akonadiconsole
x11/kde-applications/akregator
x11/kde-applications/grantlee-editor
x11/kde-applications/kdepim-addons
x11/kde-applications/khelpcenter
x11/kde-applications/kmail
x11/kde-applications/mailcommon
x11/kde-applications/mbox-importer
x11/kde-applications/messagelib
x11/kde-applications/pim-data-exporter
x11/nitrogen
x11/polybar
x11/qt5/qtbase
x11/qt6/qtbase
x11/qtfm
x11/rox-filer
x11/rxvt-unicode
x11/windowmaker
x11/wxWidgets
x11/xmobar

No comments:

Post a Comment