mate-desktop / mate-control-center

Utilities to configure the MATE desktop
https://mate-desktop.org
GNU General Public License v2.0
68 stars 59 forks source link

[Clarification and Documentation] systemd requirement of mate-control-center? #744

Closed rubyFeedback closed 8 months ago

rubyFeedback commented 9 months ago

Hey guys,

This is not to get into any debate about pro or con; I am mostly fine by decisions made either way, but perhaps a bit of context, in addition to the issue I report here.

I am currently compiling all of mate and I have almost finished. Example of versions I have:

Reporting the installed versions of the mate-desktop components:

  Mate-Desktop:         1.28.1
  Mate-Utils:           1.28.0
  Mate-Common:          1.28.0
  Mate-Keyboard:        1.28.0
  Mate-Media:           1.28.0
  Mate-Mixer:           1.28.0
  Mate-Applets:         1.28.0
  Mate-Weather:         1.28.0
  Mate-Control-Center:  1.26.1
  Mate-Panel:           1.28.0
  Mate-Power-Manager:   1.28.0
  Marco:                marco: symbol lookup error: marco: undefined symbol: meta_verbose_real
  Mate-Screensaver:     1.28.0
  Atril:                1.28.0
  Eom:                  1.28.0
  Pluma:                1.28.0
  Engrampa:             1.28.0
  Caja:                 1.28.0
  Caja-extensions:      1.28.0

Don't worry about the marco error - that is an unrelated error. I'll fix that lateron.

So I am now trying to update Mate-Control-Center: 1.26.1 to its 1.28.x variant.

When I run GNU configure, though, it tells me this:

checking for polkit-gobject-1... yes
checking for mate-desktop-2.0 >= 1.27.1... yes
checking for libxml-2.0... yes
checking for libmarco-private >= 1.17.0... yes
checking for gmodule-2.0 glib-2.0 >= 2.64.0 gio-2.0 gtk+-3.0 >= 3.22.0... yes
checking for gio-2.0... yes
checking for libgtop-2.0... yes
checking for udisks2... yes
checking for systemd >= 248... no
configure: error: Package requirements (systemd >= 248) were not met:

No package 'systemd' found

So systemd is now required. Note that mate-control-center is the only package that has this issue; at the least I don't recall any of the other mate 1.28.x components have this problem. (I do not use systemd, instead I use the LFS scripts udev variants.)

I tried:

--disable-systemd

But this does not exist so I assume systemd is now mandatory for mate-control-center.

This is a bit unusual though. How much of the code in mate-control-center depends on systemd? All of it? If not, would it be possible to ignore these parts of it that require systemd?

I am not sure how much would depend on systemd, but it would be nice if we'd have the flexibility to not use systemd. Perhaps mate-control-center is not critical for running the mate-desktop, but ideally I'd love to use as much as possible that mate-desktop offers, by default. So my rationale was to try and get all of the downloads that you folks make available on the download page possible.

Anyway, I am not really here to argue one way or another. What I would like to see, however had, is a clarification as well as documentation in this regard, ideally on the main README, such as "systemd is now required for mate-control-center". (I believe the 1.26.x variant does not require systemd, at the least I was able to compile it; also not sure if we can mix 1.26 and 1.28 - my attempt to upgrade mate-control-center failed though. Not sure if I can use mate-desktop still or not. I usually start it via runlevel 3, then "startx". Right now I am running icewm though; I wanted to switch once I compiled all of it.)

Either way any clarification via a document would be helpful here, so we downstream users or developers can adjust to this; or have more flexibility if that is possible.

lukefromdc commented 9 months ago

mate-system-info (EDIT: NOT mate-time-admin!) depends on systemd as it uses that interface. Making it optional to build that capplet would allow depending on systemd only if building mate-system-info. For now, you could build mate-control-center on a systemd distro, then just remove that capplet from the binaries to be installed for a non systemd distro. For that matter, I am pretty sure the control center would work and just that capplet would crash if opened.

I myself have no landline so cannot download something like Devuan for testing this. I don't know if we have ANY team members on a non systemd distro. This one sort of came up by surprise: the new capplet was proposed, worked well, and every tester was on a systemd distro so the need to make that optional was never noticed.

DidierSpaier commented 9 months ago

Same issue here. I am the maintainer of the Slint distribution https://slint.fr (based on Slackware) and Mate is our flagship among DEs, as Slint is accessible to the blind and Mate is the best accessible DE (with Gnome that we do not ship). It would be very sad for us to have to not be able to provide Mate anymore or at least one of its core components.

And we are not alone: there are several other distributions not including systemd, let alone the specific version of systemd required. If to avoid that we have to give up this capplet so be it be it, but please let us continue to build and ship Mate with its control center.

PS I see that someone has found a workaround: https://slackbuilds.org/slackbuilds/15.0/desktop/mate-control-center/mate-control-center.SlackBuild and will apply it for now, but that systemd be an optional dependency of Mate as whole and in the future would be appreciated.

Thanks.

lukefromdc commented 9 months ago

We need more developers. I am entirely time-saturated and bandwidth saturated and cannot maintain multiple distro cases myself. If one of you can submit a PR for this (just removing the offending capplet if systemd is not found is enough) we can test that and ensure it doesn't break when systemd is present.

raveit65 commented 9 months ago

If to avoid that we have to give up this capplet so be it be it, but please let us continue to build and ship Mate with its control center.

OMG, I am so tired of such comments. Go ahead with removing mate from your distro or help us and do a pull request

zhuyaliang commented 9 months ago

@rubyFeedback I will fix this issue soon

yledoare commented 8 months ago

Hello, my disto (LinuxConsole) is not using systemd I build Mate 1.28 for the LinuxConsole 2024 release, with your last fix it and now it builds and runs fine, thanks ! Here is my mate software list : https://github.com/yledoare/ydfs/blob/2.10/2.10/packages/list-mate

DidierSpaier commented 8 months ago

Hello, my disto (LinuxConsole) is not using systemd I build Mate 1.28 for the LinuxConsole 2024 release, with your last fix it and now it builds and runs fine, thanks ! Here is my mate software list : https://github.com/yledoare/ydfs/blob/2.10/2.10/packages/list-mate

Hello, I ended up getting rid of two capplets: system-info but also time-admin, see attached patch.

EDIT: in text message this thing does not accept to upload files with extension.diff...

DidierSpaier commented 8 months ago

drop_system_info_and_time_admin_capplets.txt

zhuyaliang commented 8 months ago

Can we close this issue ?

yledoare commented 8 months ago

Yes !

DidierSpaier commented 8 months ago

I will build from git master today then answer.

DidierSpaier commented 8 months ago

Sorry, but no.

I built from git master (using meson this time) with no issue, but clicking on System Clock in the mate-control-center raises a window with the title GetNtpState and a message GDBus.Error:org.freedestop.timedate1 was not provided by any .service files

This has been reported downstream in several distributions, for instance: https://forums.gentoo.org/viewtopic-t-1133610-view-previous.html?sid=3feb188738cbdd57ad742e87ca0ae977 https://forum.artixlinux.org/index.php/topic,465.0.html

I had a look in Ubuntu-mate, it appears that the expected service file /usr/share/dbus-1/system-services/org.freedesktop.timedate1.service comes from the systemd package there.

However, Mate include a somehow similar applet in mate-panel (the clock applet) and in this case the service file is included in the applet's source: https://github.com/mate-desktop/mate-panel/blob/master/applets/clock/org.mate.panel.applet.ClockAppletFactory.service.in so... Would it not be possible to include the service file in mate-control-center for the time-admin capplet as well?

yledoare commented 8 months ago

@DidierSpaier : do you want the System Clock be hidden when systemd is not detected ?

I use a home made script to set hour without Systemd : https://github.com/yledoare/ydfs/blob/2.10/2.10/init-x86/ydfs/config/date

DidierSpaier commented 8 months ago

@DidierSpaier : do you want the System Clock be hidden when systemd is not detected ?

I can do that myself customizing in the control-center the file matemenu.cc. But I would prefer that the applet work in this context :)

I use a home made script to set hour without Systemd : https://github.com/yledoare/ydfs/blob/2.10/2.10/init-x86/ydfs/config/date

Thanks, nice script but we use an application that does that in text mode as in a GUI (it can also set or not ntp and the time zone, with the hardware set to local time or not), written by George Vlahavas, Salix maintainer.

zhuyaliang commented 8 months ago

@DidierSpaier I will fix this time admin capplet issue soon

zhuyaliang commented 8 months ago

@DidierSpaier The new time admin issue has been opened and I will close it

DidierSpaier commented 7 months ago

@DidierSpaier The new time admin issue has been opened and I will close it

Sorry this issue should no be closed just because another one has been opened, only if a solution to this one has been provided and tested which is not the case. This issue should stay open until then.

zhuyaliang commented 7 months ago

@DidierSpaier Fixed this issue in the latest commit