Skip to content
Snippets Groups Projects
Verified Commit 9069269c authored by Casey's avatar Casey :recycle: Committed by Clayton Craft
Browse files

systemd/accountsservice: new aport


Forked from alpine to rebuild with systemd support.

Signed-off-by: default avatarCaleb Connolly <caleb@postmarketos.org>
parent 7a830eaa
Branches
No related tags found
No related merge requests found
# Forked from Alpine to build with systemd support
# this provides the ability to activate user sessions
# from dbus by invoking logind
pkgname=accountsservice
pkgver=99923.13.9
_pkgver=23.13.9
pkgrel=0
pkgdesc="D-Bus interface for user account query and manipulation"
url="https://www.freedesktop.org/software/accountsservice/"
arch="all"
license="GPL-3.0-or-later"
depends_dev="gobject-introspection-dev"
makedepends="
$depends_dev
dbus-dev
systemd-dev
glib-dev
meson
polkit-dev
vala
"
subpackages="$pkgname-dev $pkgname-lang lib$pkgname:libs"
source="https://www.freedesktop.org/software/accountsservice/accountsservice-$_pkgver.tar.xz
musl-fgetspent_r.patch
musl-wtmp.patch
opt-tests.patch
"
# mocklibc fails to build with implicits
options="!check"
builddir="$srcdir/accountsservice-$_pkgver"
build() {
abuild-meson \
-Db_lto=true \
-Dsystemdsystemunitdir=/usr/lib/systemd/system \
-Dintrospection=true \
-Ddocbook=false \
-Dgtk_doc=false \
-Dadmin_group=wheel \
-Dtests="$(want_check && echo true || echo false)" \
. output
meson compile -C output
}
check() {
meson test --print-errorlogs --no-rebuild -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
sha512sums="
c6eb543ce2e07b61bbdfa454e388949bc688517be0536b14f30c66383ed105b15d3fab8b6c62b1eaa08f67d9bdc29b928729d9f7c704f47de4decf0de8e12f89 accountsservice-23.13.9.tar.xz
469392beca8f5941eafaa193c4fcb0472770ee4183ce520416a1b5d6abafe0e201990eb74d06bfbd9e20af08e55aff5f0031f267083f6c6879f0fe4e5028103c musl-fgetspent_r.patch
6d81caed730473d5c94d575c580a236b4267b374bf50588860922a7ecbeef0b2a1d50124fa3ae195c4f26abe8c3bd6df2aea6d27a0ce23e99acef9fff3eb9652 musl-wtmp.patch
cc5ea18d885ccc5a85f5f4191d3157f3953878af289a9cabc373afea67726042144d66fd9f8d08dac7090fc23037ab98adb4101e8378a16ab2eb04043c88378f opt-tests.patch
"
diff --git a/src/daemon.c b/src/daemon.c
index 312394a..e7b3c58 100644
--- a/src/daemon.c
+++ b/src/daemon.c
@@ -140,6 +140,28 @@ error_get_type (void)
#define MAX_LOCAL_USERS 50
#endif
+#ifndef __GLIBC__
+ /* Musl libc does not support fgetspent_r(), write own
+ * wrapper
+ */
+static int fgetspent_r(FILE *fp, struct spwd *spbuf, char *buf, size_t buflen, struct spwd **spbufp) {
+ struct spwd *shadow_entry = fgetspent(fp);
+ if(!shadow_entry)
+ return -1;
+ size_t namplen = strlen(shadow_entry->sp_namp);
+ size_t pwdplen = strlen(shadow_entry->sp_pwdp);
+
+ if(namplen + pwdplen + 2 > buflen)
+ return -1;
+
+ *spbufp = memcpy(spbuf, shadow_entry, sizeof(struct spwd));
+ spbuf->sp_namp = strncpy(buf, shadow_entry->sp_namp, namplen + 1);
+ spbuf->sp_pwdp = strncpy(buf + namplen + 1, shadow_entry->sp_pwdp, pwdplen + 1);
+
+ return 0;
+}
+#endif
+
static struct passwd *
entry_generator_fgetpwent (Daemon *daemon,
GHashTable *users,
the assert expects a working /var/log/wtmp at build time
diff --git a/meson.build b/meson.build
index 4a509e7..f995d28 100644
--- a/meson.build
+++ b/meson.build
@@ -103,8 +103,7 @@ elif cc.has_header_symbol('paths.h', '_PATH_WTMPX')
config_h.set('PATH_WTMP', '_PATH_WTMPX')
else
- path_wtmp = '/var/log/utx.log'
- assert(run_command('test', '-e', path_wtmp, check: false).returncode() == 0, 'Do not know which filename to watch for wtmp changes')
+ path_wtmp = '/var/log/wtmp'
config_h.set_quoted('PATH_WTMP', path_wtmp)
endif
diff --git a/meson.build b/meson.build
index 4a509e7..5119fab 100644
--- a/meson.build
+++ b/meson.build
@@ -232,7 +232,9 @@ if get_option('gtk_doc')
subdir('doc/libaccountsservice')
endif
-subdir('tests')
+if get_option('tests')
+ subdir('tests')
+endif
configure_file(
output: 'config.h',
diff --git a/meson_options.txt b/meson_options.txt
index b34a0fa..56872c7 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -13,3 +13,4 @@ option('vapi', type: 'boolean', value: true, description : 'Enable Vala bindings
option('docbook', type: 'boolean', value: false, description: 'build documentation (requires xmlto)')
option('gtk_doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
+option('tests', type: 'boolean', value: true, description: 'tests')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment