Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tuned-ppd: Support the new UPower PPD namespace #684

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ TUNED_PROFILES_DIR = $(TUNED_SYSTEM_DIR)/profiles
TUNED_RECOMMEND_DIR = $(TUNED_SYSTEM_DIR)/recommend.d
TUNED_USER_RECOMMEND_DIR = $(SYSCONFDIR)/tuned/recommend.d
BASH_COMPLETIONS = $(DATADIR)/bash-completion/completions
PPD_BUS_NAMES = org.freedesktop.UPower.PowerProfiles net.hadess.PowerProfiles

copy_executable = install -Dm 0755 $(1) $(2)
rewrite_shebang = sed -i -r -e $(SHEBANG_REWRITE_REGEX) $(1)
Expand Down Expand Up @@ -231,10 +232,14 @@ install: install-dirs
install-ppd: install
$(call install_python_script,tuned-ppd.py,$(DESTDIR)/usr/sbin/tuned-ppd)
install -Dpm 0644 tuned/ppd/tuned-ppd.service $(DESTDIR)$(UNITDIR)/tuned-ppd.service
install -Dpm 0644 tuned/ppd/tuned-ppd.dbus.service $(DESTDIR)$(DATADIR)/dbus-1/system-services/net.hadess.PowerProfiles.service
install -Dpm 0644 tuned/ppd/dbus.conf $(DESTDIR)$(DATADIR)/dbus-1/system.d/net.hadess.PowerProfiles.conf
install -Dpm 0644 tuned/ppd/tuned-ppd.policy $(DESTDIR)$(DATADIR)/polkit-1/actions/net.hadess.PowerProfiles.policy
install -Dpm 0644 tuned/ppd/ppd.conf $(DESTDIR)$(SYSCONFDIR)/tuned/ppd.conf
$(foreach bus, $(PPD_BUS_NAMES), \
install -Dpm 0644 tuned/ppd/tuned-ppd.dbus.service $(DESTDIR)$(DATADIR)/dbus-1/system-services/$(bus).service; \
sed -i 's/?name?/$(bus)/g' $(DESTDIR)$(DATADIR)/dbus-1/system-services/$(bus).service; \
install -Dpm 0644 tuned/ppd/dbus.conf $(DESTDIR)$(DATADIR)/dbus-1/system.d/$(bus).conf; \
sed -i 's/?name?/$(bus)/g' $(DESTDIR)$(DATADIR)/dbus-1/system.d/$(bus).conf; \
install -Dpm 0644 tuned/ppd/tuned-ppd.policy $(DESTDIR)$(DATADIR)/polkit-1/actions/$(bus).policy; \
sed -i 's/?name?/$(bus)/g' $(DESTDIR)$(DATADIR)/polkit-1/actions/$(bus).policy;)

clean: clean-html
find -name "*.pyc" | xargs rm -f
Expand Down
8 changes: 4 additions & 4 deletions tuned-ppd.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ def handler_wrapper(_signal_number, _frame):
handle_signal(signal.SIGTERM, controller.terminate)
handle_signal(signal.SIGHUP, controller.initialize)

dbus_exporter = exports.dbus_with_properties.DBusExporterWithProperties(
consts.PPD_DBUS_BUS, consts.PPD_DBUS_INTERFACE, consts.PPD_DBUS_OBJECT, consts.PPD_NAMESPACE
)
for name_dict in consts.PPD_DBUS_NAMES:
dbus_exporter = exports.dbus_with_properties.DBusExporterWithProperties(
name_dict["bus"], name_dict["interface"], name_dict["object"], name_dict["namespace"])
exports.register_exporter(dbus_exporter)

exports.register_exporter(dbus_exporter)
exports.register_object(controller)
controller.run()
3 changes: 3 additions & 0 deletions tuned.spec
Original file line number Diff line number Diff line change
Expand Up @@ -610,6 +610,9 @@ fi
%{_datadir}/dbus-1/system-services/net.hadess.PowerProfiles.service
%{_datadir}/dbus-1/system.d/net.hadess.PowerProfiles.conf
%{_datadir}/polkit-1/actions/net.hadess.PowerProfiles.policy
%{_datadir}/dbus-1/system-services/org.freedesktop.UPower.PowerProfiles.service
%{_datadir}/dbus-1/system.d/org.freedesktop.UPower.PowerProfiles.conf
%{_datadir}/polkit-1/actions/org.freedesktop.UPower.PowerProfiles.policy
%config(noreplace) %{_sysconfdir}/tuned/ppd.conf

%changelog
Expand Down
20 changes: 16 additions & 4 deletions tuned/consts.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,23 @@
PREFIX_PROFILE_USER = "User"

# PPD-to-tuned API translation daemon configuration
PPD_NAMESPACE = "net.hadess.PowerProfiles"
PPD_DBUS_BUS = PPD_NAMESPACE
PPD_DBUS_OBJECT = "/net/hadess/PowerProfiles"
PPD_DBUS_INTERFACE = PPD_DBUS_BUS
PPD_CONFIG_FILE = "/etc/tuned/ppd.conf"
PPD_DBUS_BUS = "org.freedesktop.UPower.PowerProfiles"
PPD_DBUS_BUS_LEGACY = "net.hadess.PowerProfiles"
PPD_DBUS_NAMES = [
{
"bus": PPD_DBUS_BUS,
"namespace": PPD_DBUS_BUS,
"interface": PPD_DBUS_BUS,
"object": "/org/freedesktop/UPower/PowerProfiles"
},
{
"bus": PPD_DBUS_BUS_LEGACY,
"namespace": PPD_DBUS_BUS_LEGACY,
"interface": PPD_DBUS_BUS_LEGACY,
"object": "/net/hadess/PowerProfiles"
}
]

# After adding new option to tuned-main.conf add here its name with CFG_ prefix
# and eventually default value with CFG_DEF_ prefix (default is None)
Expand Down
10 changes: 5 additions & 5 deletions tuned/ppd/dbus.conf
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

<busconfig>
<policy user="root">
<allow own="net.hadess.PowerProfiles"/>
<allow own="?name?"/>
</policy>

<policy context="default">
<allow send_destination="net.hadess.PowerProfiles" send_interface="net.hadess.PowerProfiles"/>
<allow send_destination="net.hadess.PowerProfiles" send_interface="org.freedesktop.DBus.Introspectable"/>
<allow send_destination="net.hadess.PowerProfiles" send_interface="org.freedesktop.DBus.Properties"/>
<allow send_destination="net.hadess.PowerProfiles" send_interface="org.freedesktop.DBus.Peer"/>
<allow send_destination="?name?" send_interface="?name?"/>
<allow send_destination="?name?" send_interface="org.freedesktop.DBus.Introspectable"/>
<allow send_destination="?name?" send_interface="org.freedesktop.DBus.Properties"/>
<allow send_destination="?name?" send_interface="org.freedesktop.DBus.Peer"/>
</policy>
</busconfig>
2 changes: 1 addition & 1 deletion tuned/ppd/tuned-ppd.dbus.service
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[D-BUS Service]
Name=net.hadess.PowerProfiles
Name=?name?
Exec=/bin/false
User=root
SystemdService=tuned-ppd.service
4 changes: 2 additions & 2 deletions tuned/ppd/tuned-ppd.policy
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<vendor>TuneD</vendor>
<vendor_url>https://tuned-project.org/</vendor_url>

<action id="net.hadess.PowerProfiles.HoldProfile">
<action id="?name?.HoldProfile">
<description>Hold power profile</description>
<message>Authentication is required to hold power profiles.</message>
<defaults>
Expand All @@ -16,7 +16,7 @@
</defaults>
</action>

<action id="net.hadess.PowerProfiles.ReleaseProfile">
<action id="?name?.ReleaseProfile">
<description>Release power profile</description>
<message>Authentication is required to release power profiles.</message>
<defaults>
Expand Down
1 change: 1 addition & 0 deletions tuned/ppd/tuned-ppd.service
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Before=multi-user.target display-manager.target

[Service]
Type=dbus
BusName=org.freedesktop.UPower.PowerProfiles
BusName=net.hadess.PowerProfiles
ExecStart=/usr/sbin/tuned-ppd -l

Expand Down
Loading