forked from pool/brightnessctl
Accepting request 768528 from home:dancermak:branches:utilities
Add support for using logind mode for recent distributions OBS-URL: https://build.opensuse.org/request/show/768528 OBS-URL: https://build.opensuse.org/package/show/utilities/brightnessctl?expand=0&rev=8
This commit is contained in:
parent
fea4177952
commit
082b2e0945
26
0001-Fixed-inconsistency-in-README-thanks-AJGQ.patch
Normal file
26
0001-Fixed-inconsistency-in-README-thanks-AJGQ.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From 5bee979cd84347369027b45b5df5d917b3231ab6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hummer12007 <hilobakho@gmail.com>
|
||||||
|
Date: Fri, 2 Aug 2019 15:23:38 +0300
|
||||||
|
Subject: [PATCH 1/4] Fixed inconsistency in README (thanks @AJGQ)
|
||||||
|
|
||||||
|
Closes #28
|
||||||
|
---
|
||||||
|
README.md | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/README.md b/README.md
|
||||||
|
index 92b65b0..0042bb4 100644
|
||||||
|
--- a/README.md
|
||||||
|
+++ b/README.md
|
||||||
|
@@ -23,7 +23,7 @@ Modifying brightness requires write permissions for device files. `brightnessctl
|
||||||
|
|
||||||
|
2) installing `brightnessctl` as a suid binary.
|
||||||
|
|
||||||
|
-The behavior is controlled by the `INSTALL_UDEV_RULES` flag (setting it to `1` installs the udev rules, `0` is the default value).
|
||||||
|
+The behavior is controlled by the `INSTALL_UDEV_RULES` flag (setting it to `1` installs the udev rules, it is the default value).
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
```
|
||||||
|
--
|
||||||
|
2.25.0
|
||||||
|
|
155
0002-Support-the-new-SetBrightness-logind-API.patch
Normal file
155
0002-Support-the-new-SetBrightness-logind-API.patch
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
From d8dfd8ed49762922e9ff8ebd19b2607fc6cd60aa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Antoine Damhet <antoine.damhet@lse.epita.fr>
|
||||||
|
Date: Tue, 10 Sep 2019 00:24:05 +0200
|
||||||
|
Subject: [PATCH 2/4] Support the new `SetBrightness` logind API
|
||||||
|
|
||||||
|
This API from `org.freedesktop.login1.Session` allows an unprivileged
|
||||||
|
user with an active session to change its own backlight.
|
||||||
|
|
||||||
|
Systemd >= v243 is needed.
|
||||||
|
|
||||||
|
Signed-off-by: Antoine Damhet <antoine.damhet@lse.epita.fr>
|
||||||
|
---
|
||||||
|
Makefile | 6 ++++++
|
||||||
|
README.md | 6 +++++-
|
||||||
|
brightnessctl.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
3 files changed, 58 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index f324efd..22ff475 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -11,6 +11,12 @@ INSTALL_UDEV_RULES = 1
|
||||||
|
INSTALL_UDEV_1 = install_udev_rules
|
||||||
|
UDEVDIR ?= /lib/udev/rules.d
|
||||||
|
|
||||||
|
+ifdef ENABLE_SYSTEMD
|
||||||
|
+ CFLAGS += ${shell pkg-config --cflags libsystemd}
|
||||||
|
+ LDLIBS += ${shell pkg-config --libs libsystemd}
|
||||||
|
+ CPPFLAGS += -DENABLE_SYSTEMD
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
MODE_0 = 4711
|
||||||
|
MODE_1 = 0755
|
||||||
|
MODE = ${MODE_${INSTALL_UDEV_RULES}}
|
||||||
|
diff --git a/README.md b/README.md
|
||||||
|
index 0042bb4..b57d3df 100644
|
||||||
|
--- a/README.md
|
||||||
|
+++ b/README.md
|
||||||
|
@@ -17,14 +17,18 @@ One can build and install the program using `make install`. Consult the Makefile
|
||||||
|
|
||||||
|
## Permissions
|
||||||
|
|
||||||
|
-Modifying brightness requires write permissions for device files. `brightnessctl` accomplishes this (without using `sudo`/`su`/etc.) by either of the following means:
|
||||||
|
+Modifying brightness requires write permissions for device files or systemd support. `brightnessctl` accomplishes this (without using `sudo`/`su`/etc.) by either of the following means:
|
||||||
|
|
||||||
|
1) installing relevant udev rules to add permissions to backlight class devices for users in `video` and leds for users in `input`. (done by default)
|
||||||
|
|
||||||
|
2) installing `brightnessctl` as a suid binary.
|
||||||
|
|
||||||
|
+3) using the `systemd-logind` API.
|
||||||
|
+
|
||||||
|
The behavior is controlled by the `INSTALL_UDEV_RULES` flag (setting it to `1` installs the udev rules, it is the default value).
|
||||||
|
|
||||||
|
+The systemd support (since v243) is controlled by the `ENABLE_SYSTEMD` flag (in that case it is recommended to set `INSTALL_UDEV_RULES` to 0).
|
||||||
|
+
|
||||||
|
## Usage
|
||||||
|
```
|
||||||
|
Usage: brightnessctl [options] [operation] [value]
|
||||||
|
diff --git a/brightnessctl.c b/brightnessctl.c
|
||||||
|
index eb3ce3c..3fec6ec 100644
|
||||||
|
--- a/brightnessctl.c
|
||||||
|
+++ b/brightnessctl.c
|
||||||
|
@@ -14,6 +14,10 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
+#ifdef ENABLE_SYSTEMD
|
||||||
|
+# include <systemd/sd-bus.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
static char *path = "/sys/class";
|
||||||
|
static char *classes[] = { "backlight", "leds", NULL };
|
||||||
|
|
||||||
|
@@ -101,7 +105,12 @@ int main(int argc, char **argv) {
|
||||||
|
struct device *devs[255];
|
||||||
|
struct device *dev;
|
||||||
|
struct utsname name;
|
||||||
|
- char *dev_name, *file_path, *sys_run_dir;
|
||||||
|
+ char *dev_name, *sys_run_dir;
|
||||||
|
+
|
||||||
|
+#ifndef ENABLE_SYSTEMD
|
||||||
|
+ char *file_path;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
int n, c, phelp = 0;
|
||||||
|
if (uname(&name))
|
||||||
|
fail("Unable to determine current OS. Exiting!\n");
|
||||||
|
@@ -194,6 +203,8 @@ int main(int argc, char **argv) {
|
||||||
|
fail("Invalid value given");
|
||||||
|
if (!(dev = find_device(devs, dev_name)))
|
||||||
|
fail("Device '%s' not found.\n", dev_name);
|
||||||
|
+
|
||||||
|
+#ifndef ENABLE_SYSTEMD
|
||||||
|
if ((p.operation == SET || p.restore) && !p.pretend && geteuid()) {
|
||||||
|
errno = 0;
|
||||||
|
file_path = cat_with('/', path, dev->class, dev->id, "brightness");
|
||||||
|
@@ -204,6 +215,8 @@ int main(int argc, char **argv) {
|
||||||
|
}
|
||||||
|
free(file_path);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if ((sys_run_dir = getenv("XDG_RUNTIME_DIR")))
|
||||||
|
run_dir = dir_child(sys_run_dir, "brightnessctl");
|
||||||
|
if (p.save)
|
||||||
|
@@ -325,6 +338,37 @@ apply:
|
||||||
|
d->curr_brightness = new;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef ENABLE_SYSTEMD
|
||||||
|
+
|
||||||
|
+bool write_device(struct device *d) {
|
||||||
|
+ sd_bus *bus = NULL;
|
||||||
|
+ int r = sd_bus_default_system(&bus);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ fprintf(stderr, "Can't connect to system bus: %s\n", strerror(-r));
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ r = sd_bus_call_method(bus,
|
||||||
|
+ "org.freedesktop.login1",
|
||||||
|
+ "/org/freedesktop/login1/session/auto",
|
||||||
|
+ "org.freedesktop.login1.Session",
|
||||||
|
+ "SetBrightness",
|
||||||
|
+ NULL,
|
||||||
|
+ NULL,
|
||||||
|
+ "ssu",
|
||||||
|
+ d->class,
|
||||||
|
+ d->id,
|
||||||
|
+ d->curr_brightness);
|
||||||
|
+ if (r < 0)
|
||||||
|
+ fprintf(stderr, "Failed to set brightness: %s\n", strerror(-r));
|
||||||
|
+
|
||||||
|
+ sd_bus_unref(bus);
|
||||||
|
+
|
||||||
|
+ return r >= 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#else
|
||||||
|
+
|
||||||
|
bool write_device(struct device *d) {
|
||||||
|
FILE *f;
|
||||||
|
char c[16];
|
||||||
|
@@ -348,6 +392,8 @@ fail:
|
||||||
|
return !errno;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
bool read_device(struct device *d, char *class, char *id) {
|
||||||
|
DIR *dirp;
|
||||||
|
FILE *f;
|
||||||
|
--
|
||||||
|
2.25.0
|
||||||
|
|
115
0003-Make-the-use-of-SetBrightness-dynamic.patch
Normal file
115
0003-Make-the-use-of-SetBrightness-dynamic.patch
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
From 658d5d058cb03a94269f8eec5b7ac4f1e8c43880 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Antoine Damhet <antoine.damhet@lse.epita.fr>
|
||||||
|
Date: Tue, 10 Sep 2019 08:52:59 +0200
|
||||||
|
Subject: [PATCH 3/4] Make the use of `SetBrightness` dynamic
|
||||||
|
|
||||||
|
It will only be used if the user do not have the permission to directly
|
||||||
|
write to the backlight device.
|
||||||
|
|
||||||
|
Signed-off-by: Antoine Damhet <antoine.damhet@lse.epita.fr>
|
||||||
|
---
|
||||||
|
brightnessctl.c | 31 +++++++++++++++----------------
|
||||||
|
1 file changed, 15 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/brightnessctl.c b/brightnessctl.c
|
||||||
|
index 3fec6ec..576e591 100644
|
||||||
|
--- a/brightnessctl.c
|
||||||
|
+++ b/brightnessctl.c
|
||||||
|
@@ -38,7 +38,7 @@ static char *class_path(char *);
|
||||||
|
static void apply_value(struct device *, struct value *);
|
||||||
|
static int apply_operation(struct device *, enum operation, struct value *);
|
||||||
|
static bool parse_value(struct value *, char *);
|
||||||
|
-static bool write_device(struct device *);
|
||||||
|
+static bool do_write_device(struct device *);
|
||||||
|
static bool read_device(struct device *, char *, char *);
|
||||||
|
static int read_class(struct device **, char *);
|
||||||
|
static int read_devices(struct device **);
|
||||||
|
@@ -50,6 +50,10 @@ static bool restore_device_data(struct device *);
|
||||||
|
static bool ensure_dir(char *);
|
||||||
|
#define ensure_run_dir() ensure_dir(run_dir)
|
||||||
|
|
||||||
|
+#ifdef ENABLE_SYSTEMD
|
||||||
|
+static bool logind_set_brightness(struct device *);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
struct device {
|
||||||
|
char *class;
|
||||||
|
char *id;
|
||||||
|
@@ -101,16 +105,13 @@ static const struct option options[] = {
|
||||||
|
{NULL,}
|
||||||
|
};
|
||||||
|
|
||||||
|
+static bool (*write_device)(struct device *) = do_write_device;
|
||||||
|
+
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
struct device *devs[255];
|
||||||
|
struct device *dev;
|
||||||
|
struct utsname name;
|
||||||
|
- char *dev_name, *sys_run_dir;
|
||||||
|
-
|
||||||
|
-#ifndef ENABLE_SYSTEMD
|
||||||
|
- char *file_path;
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
+ char *dev_name, *file_path, *sys_run_dir;
|
||||||
|
int n, c, phelp = 0;
|
||||||
|
if (uname(&name))
|
||||||
|
fail("Unable to determine current OS. Exiting!\n");
|
||||||
|
@@ -203,20 +204,20 @@ int main(int argc, char **argv) {
|
||||||
|
fail("Invalid value given");
|
||||||
|
if (!(dev = find_device(devs, dev_name)))
|
||||||
|
fail("Device '%s' not found.\n", dev_name);
|
||||||
|
-
|
||||||
|
-#ifndef ENABLE_SYSTEMD
|
||||||
|
if ((p.operation == SET || p.restore) && !p.pretend && geteuid()) {
|
||||||
|
errno = 0;
|
||||||
|
file_path = cat_with('/', path, dev->class, dev->id, "brightness");
|
||||||
|
if (access(file_path, W_OK)) {
|
||||||
|
+#ifdef ENABLE_SYSTEMD
|
||||||
|
+ write_device = logind_set_brightness;
|
||||||
|
+#else
|
||||||
|
perror("Can't modify brightness");
|
||||||
|
fail("\nYou should run this program with root privileges.\n"
|
||||||
|
"Alternatively, get write permissions for device files.\n");
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
free(file_path);
|
||||||
|
}
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
if ((sys_run_dir = getenv("XDG_RUNTIME_DIR")))
|
||||||
|
run_dir = dir_child(sys_run_dir, "brightnessctl");
|
||||||
|
if (p.save)
|
||||||
|
@@ -340,7 +341,7 @@ apply:
|
||||||
|
|
||||||
|
#ifdef ENABLE_SYSTEMD
|
||||||
|
|
||||||
|
-bool write_device(struct device *d) {
|
||||||
|
+bool logind_set_brightness(struct device *d) {
|
||||||
|
sd_bus *bus = NULL;
|
||||||
|
int r = sd_bus_default_system(&bus);
|
||||||
|
if (r < 0) {
|
||||||
|
@@ -367,9 +368,9 @@ bool write_device(struct device *d) {
|
||||||
|
return r >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#else
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-bool write_device(struct device *d) {
|
||||||
|
+bool do_write_device(struct device *d) {
|
||||||
|
FILE *f;
|
||||||
|
char c[16];
|
||||||
|
size_t s = sprintf(c, "%u", d->curr_brightness);
|
||||||
|
@@ -392,8 +393,6 @@ fail:
|
||||||
|
return !errno;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
bool read_device(struct device *d, char *class, char *id) {
|
||||||
|
DIR *dirp;
|
||||||
|
FILE *f;
|
||||||
|
--
|
||||||
|
2.25.0
|
||||||
|
|
41
0004-Use-non-suid-permissions-when-logind-is-used.patch
Normal file
41
0004-Use-non-suid-permissions-when-logind-is-used.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From 4e815152fb366972ca24ce17d3d25f337a3b01b9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Sun, 26 Jan 2020 13:15:40 +0100
|
||||||
|
Subject: [PATCH 4/4] Use non-suid permissions when logind is used
|
||||||
|
|
||||||
|
When systemd-logind and its D-Bus API is used to actual change the
|
||||||
|
brightness of devices the binary does not have to be suid, which is
|
||||||
|
desired for security reasons.
|
||||||
|
---
|
||||||
|
Makefile | 9 +++++----
|
||||||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 22ff475..fcd746a 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -11,16 +11,17 @@ INSTALL_UDEV_RULES = 1
|
||||||
|
INSTALL_UDEV_1 = install_udev_rules
|
||||||
|
UDEVDIR ?= /lib/udev/rules.d
|
||||||
|
|
||||||
|
+MODE_0 = 4711
|
||||||
|
+MODE_1 = 0755
|
||||||
|
+MODE = ${MODE_${INSTALL_UDEV_RULES}}
|
||||||
|
+
|
||||||
|
ifdef ENABLE_SYSTEMD
|
||||||
|
CFLAGS += ${shell pkg-config --cflags libsystemd}
|
||||||
|
LDLIBS += ${shell pkg-config --libs libsystemd}
|
||||||
|
CPPFLAGS += -DENABLE_SYSTEMD
|
||||||
|
+ MODE = 0755
|
||||||
|
endif
|
||||||
|
|
||||||
|
-MODE_0 = 4711
|
||||||
|
-MODE_1 = 0755
|
||||||
|
-MODE = ${MODE_${INSTALL_UDEV_RULES}}
|
||||||
|
-
|
||||||
|
all: brightnessctl brightnessctl.1
|
||||||
|
|
||||||
|
install: all ${INSTALL_UDEV_${INSTALL_UDEV_RULES}}
|
||||||
|
--
|
||||||
|
2.25.0
|
||||||
|
|
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jan 30 08:52:07 UTC 2020 - Dan Čermák <dcermak@suse.com>
|
||||||
|
|
||||||
|
- Add support for using logind mode for recent distributions
|
||||||
|
cherry pick patches from upstream:
|
||||||
|
* 0001-Fixed-inconsistency-in-README-thanks-AJGQ.patch
|
||||||
|
* 0002-Support-the-new-SetBrightness-logind-API.patch
|
||||||
|
* 0003-Make-the-use-of-SetBrightness-dynamic.patch
|
||||||
|
* 0004-Use-non-suid-permissions-when-logind-is-used.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Oct 17 14:57:05 UTC 2019 - Richard Brown <rbrown@suse.com>
|
Thu Oct 17 14:57:05 UTC 2019 - Richard Brown <rbrown@suse.com>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package brightnessctl
|
# spec file for package brightnessctl
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2020 SUSE LLC
|
||||||
# Copyright (c) 2019 R Tyler Croy <rtyler@brokenco.de>
|
# Copyright (c) 2019 R Tyler Croy <rtyler@brokenco.de>
|
||||||
# Copyright (c) 2016 Fabio Alessandro Locati <fale@fedoraproject.org>
|
# Copyright (c) 2016 Fabio Alessandro Locati <fale@fedoraproject.org>
|
||||||
#
|
#
|
||||||
@ -18,36 +18,69 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# use systemd-logind instead of udev for systemd >= 243
|
||||||
|
%if 0%{?sle_version} >= 150200 || 0%{?suse_version} > 1500
|
||||||
|
%global use_logind 1
|
||||||
|
%else
|
||||||
|
%global use_logind 0
|
||||||
|
%endif
|
||||||
Name: brightnessctl
|
Name: brightnessctl
|
||||||
Version: 0.4
|
Version: 0.4
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Tool to read and control device brightness
|
Summary: Tool to read and control device brightness
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/Hummer12007/%{name}
|
URL: https://github.com/Hummer12007/%{name}
|
||||||
Source: https://github.com/Hummer12007/brightnessctl/archive/%{version}.tar.gz
|
Source: %{URL}/archive/%{version}.tar.gz
|
||||||
|
# required to resolve cherry pick conflicts
|
||||||
|
# https://github.com/Hummer12007/brightnessctl/commit/aa6a71cd8206992a64269239f038dbf5f516e54a
|
||||||
|
Patch0: 0001-Fixed-inconsistency-in-README-thanks-AJGQ.patch
|
||||||
|
# https://github.com/Hummer12007/brightnessctl/pull/33
|
||||||
|
Patch1: 0002-Support-the-new-SetBrightness-logind-API.patch
|
||||||
|
Patch2: 0003-Make-the-use-of-SetBrightness-dynamic.patch
|
||||||
|
# https://github.com/Hummer12007/brightnessctl/pull/41
|
||||||
|
Patch3: 0004-Use-non-suid-permissions-when-logind-is-used.patch
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
|
%if %{use_logind}
|
||||||
|
BuildRequires: pkgconfig(libsystemd)
|
||||||
|
Requires: systemd >= 243
|
||||||
|
%else
|
||||||
BuildRequires: systemd-rpm-macros
|
BuildRequires: systemd-rpm-macros
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
A utility to read and control the display brightness.
|
A utility to read and control the display brightness.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup
|
%autosetup -N
|
||||||
|
%if %{use_logind}
|
||||||
|
%autopatch -p1
|
||||||
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="%{optflags}"
|
%if %{use_logind}
|
||||||
|
export ENABLE_SYSTEMD=1
|
||||||
|
%{set_build_flags}
|
||||||
|
%else
|
||||||
export MODE="4755"
|
export MODE="4755"
|
||||||
|
export CFLAGS="%{optflags}"
|
||||||
|
%endif
|
||||||
%make_build
|
%make_build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
%if %{use_logind}
|
||||||
|
%make_install INSTALL_UDEV_RULES=0 ENABLE_SYSTEMD=1 PREFIX=%{_prefix}
|
||||||
|
%else
|
||||||
%make_install UDEVDIR=%{_udevrulesdir}
|
%make_install UDEVDIR=%{_udevrulesdir}
|
||||||
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%doc README.md
|
%doc README.md
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%{_bindir}/%{name}
|
%{_bindir}/%{name}
|
||||||
|
%if ! %{use_logind}
|
||||||
%{_udevrulesdir}/90-brightnessctl.rules
|
%{_udevrulesdir}/90-brightnessctl.rules
|
||||||
|
%endif
|
||||||
%{_mandir}/man1/brightnessctl.1%{?ext_man}
|
%{_mandir}/man1/brightnessctl.1%{?ext_man}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
Reference in New Issue
Block a user