Skip to content

Commit

Permalink
Make systemd optional
Browse files Browse the repository at this point in the history
There is not much of direct systemd usage in the system-info plugin.
This patch suggestion enables building this plugin on system like
alpine, voidlinux or gentoo with openrc.

Signed-off-by: Oz Tiram <oz.tiram@gmail.com>
  • Loading branch information
oz123 authored and lukefromdc committed Mar 11, 2024
1 parent 4c33e64 commit 2ad9568
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
12 changes: 10 additions & 2 deletions capplets/system-info/mate-system-info.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
*
*/
#include <gtk/gtk.h>
#include <glib.h>
#include <glibtop/fsusage.h>
#include <glibtop/mountlist.h>
#include <glibtop/mem.h>
Expand Down Expand Up @@ -159,6 +160,7 @@ mate_system_info_set_row (MateSystemInfo *info)
static char *
get_system_hostname (void)
{
# ifdef HAVE_SYSTEMD
GDBusProxy *hostnamed_proxy;
g_autoptr(GVariant) variant = NULL;
g_autoptr(GError) error = NULL;
Expand Down Expand Up @@ -206,6 +208,9 @@ get_system_hostname (void)
g_object_unref (hostnamed_proxy);
return g_variant_dup_string (variant, NULL);
}
# else
return g_strdup (g_get_host_name ());
# endif
}

static char *
Expand Down Expand Up @@ -493,7 +498,9 @@ static struct {
{ "openvz", "OpenVZ" },
{ "lxc", "LXC" },
{ "lxc-libvirt", "LXC (libvirt)" },
{ "systemd-nspawn", "systemd (nspawn)" }
# ifdef HAVE_SYSTEMD
{ "systemd-nspawn", "systemd (nspawn)" },
# endif
};

static char *
Expand Down Expand Up @@ -666,14 +673,15 @@ mate_system_info_setup (MateSystemInfo *info)
kernel_text = get_kernel_vesrion ();
label = g_object_get_data (G_OBJECT (info->kernel_row), "labelvalue");
set_lable_style (label, "gray", 12, kernel_text, FALSE);

# ifdef HAVE_SYSTEMD
virt_text = get_system_virt ();
if (virt_text != NULL)
{
gtk_widget_show_all (info->virtualization_row);
label = g_object_get_data (G_OBJECT (info->virtualization_row), "labelvalue");
set_lable_style (label, "gray", 12, virt_text, FALSE);
}
# endif
windowing_system_text = get_windowing_system ();
label = g_object_get_data (G_OBJECT (info->windowing_system_row), "labelvalue");
set_lable_style (label, "gray", 12, windowing_system_text, FALSE);
Expand Down
16 changes: 15 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ PKG_CHECK_MODULES(TYPING, $GMODULE_ADD glib-2.0 >= $GLIB_REQUIRED gio-2.0 gtk+-3
PKG_CHECK_MODULES(GIO, gio-2.0)
PKG_CHECK_MODULES(GLIBTOP, libgtop-2.0)
PKG_CHECK_MODULES(UDISKS, udisks2)
PKG_CHECK_MODULES(SYSTEMD, systemd >= $SYSTEMD_REQUIRED)

PKG_CHECK_MODULES([DCONF], [dconf >= 0.13.4])
AC_SUBST(DCONF_CFLAGS)
Expand Down Expand Up @@ -168,6 +167,20 @@ AC_ARG_ENABLE([libappindicator],
[enable_appindicator=yes],
[enable_appindicator=no])])])

AC_ARG_ENABLE([systemd],
[AS_HELP_STRING([--enable-systemd[=@<:@no/auto/yes@:>@]],[Use systemd @<:@default=yes@:>@])],
[enable_systemd=$enableval],
[PKG_CHECK_EXISTS([$SYSTEMD >= $SYSTEMD_REQUIRED],
[enable_systemd=no],
,
)])

AS_IF([test "x$enable_systemd" = xyes],
[AC_MSG_NOTICE([Building with systemd support.])
PKG_CHECK_MODULES([SYSTEMD],
[systemd >= $SYSTEMD_REQUIRED],
[AC_DEFINE(HAVE_SYSTEMD, 1, [Have systemd])])])

AS_IF([test "x$enable_appindicator" = xyes],
[AC_MSG_NOTICE([Buidling against Ubuntu AppIndicator.])
PKG_CHECK_MODULES([APPINDICATOR],
Expand Down Expand Up @@ -313,6 +326,7 @@ Configure summary:

Ayatana AppIndicator (preferred) $(test "x$enable_appindicator" = xyes && echo no || echo yes)
Ubuntu AppIndicator (legacy) $(test "x$enable_appindicator" = xyes && echo yes || echo no)
Systemd: $(test "x$enable_systemd" = xyes && echo yes || echo no)

Accountsservice: ${have_accountsservice}
Native Language support: ${USE_NLS}
Expand Down

0 comments on commit 2ad9568

Please sign in to comment.