pam: Port to sd-bus

This pam plugin never used GDBus because it transparently uses threads
which do not work well with a lot of PAM applications. But even settling
on the "still better to use than plain dbus library" dbus-glib wasn't
without problems, as any use or initialisation of GIO sockets would
modify signal handler for signals such as SIGPIPE (see gio/gsocket.c).

Many years later, sd-bus is a more modern alternative to the bare dbus
library with a better API.

This includes:
- Removing use of gboolean, guint, g_new0() and many glib string helpers
- Simplifying debug logging
- Marking user-facing messages to be translated
This commit is contained in:
Bastien Nocera
2020-01-14 15:34:06 +01:00
parent 6f63beb1fc
commit d70f15b5e8
5 changed files with 417 additions and 316 deletions

View File

@ -3,20 +3,11 @@ if HAVE_PAM
pammod_LTLIBRARIES = pam_fprintd.la
pammoddir=$(libdir)/security
pam_fprintd_la_SOURCES = pam_fprintd.c $(MARSHALFILES)
pam_fprintd_la_SOURCES = pam_fprintd.c
pam_fprintd_la_CFLAGS = -fPIC $(WARN_CFLAGS) $(PAM_MODULE_CFLAGS) -DLOCALEDIR="\"$(localedir)\""
pam_fprintd_la_LDFLAGS = -avoid-version -module -Wl,-z,nodelete
pam_fprintd_la_LIBADD = $(PAM_LIBS) $(PAM_MODULE_LIBS)
MARSHALFILES = marshal.c marshal.h
GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0`
BUILT_SOURCES = $(MARSHALFILES)
marshal.h: $(top_srcdir)/src/fprintd-marshal.list
( $(GLIB_GENMARSHAL) --prefix=fprintd_marshal $(top_srcdir)/src/fprintd-marshal.list --header > marshal.h )
marshal.c: marshal.h
( $(GLIB_GENMARSHAL) --prefix=fprintd_marshal $(top_srcdir)/src/fprintd-marshal.list --body --header > marshal.c )
endif
EXTRA_DIST = pam_fprintd.c fingerprint-strings.h