Compare commits

...

4 Commits

Author SHA1 Message Date
3a36512cca wayland-related stuff 2024-04-25 17:27:37 +06:00
4caaca5fdb wlroots: initial build 2024-04-25 17:27:02 +06:00
4e22b56ac3 sway: initial build 2024-04-25 17:26:42 +06:00
035bc54cd2 nginx-cp: update to 1.26.0 2024-04-25 17:09:07 +06:00
34 changed files with 4387 additions and 1579 deletions

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,86 @@
# See https://gitlab.freedesktop.org/emersion/libdisplay-info/-/merge_requests/149
# for library versioning explanation.
%global sover 1
# Tests currently require exact revision of edid-decode
# https://gitlab.freedesktop.org/emersion/libdisplay-info/-/issues/35
%bcond_with check
Name: libdisplay-info
Version: 0.1.1
Release: 1%{?dist}
Summary: EDID and DisplayID library
# Main license: MIT
# test/data: CC-BY-4.0, MIT (see test/data/README.md).
License: MIT
URL: https://gitlab.freedesktop.org/emersion/libdisplay-info
Source0: %{url}/-/releases/%{version}/downloads/%{name}-%{version}.tar.xz
Source1: %{url}/-/releases/%{version}/downloads/%{name}-%{version}.tar.xz.sig
# 0FDE7BE0E88F5E48: emersion <contact@emersion.fr>
Source2: https://emersion.fr/.well-known/openpgpkey/hu/dj3498u4hyyarh35rkjfnghbjxug6b19#/gpgkey-0FDE7BE0E88F5E48.gpg
BuildRequires: gcc
BuildRequires: gnupg2
BuildRequires: meson >= 0.57
BuildRequires: hwdata
%if %{with check}
BuildRequires: edid-decode
%endif
%description
%{summary}.
%package tools
Summary: Command-line tools for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description tools
%{summary}.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup
%build
%meson
%meson_build
%install
%meson_install
%if %{with check}
%check
%meson_test
%endif
%files
%license LICENSE
%doc README.md
%{_libdir}/%{name}.so.%{sover}
%{_libdir}/%{name}.so.%{version}
%files tools
%{_bindir}/di-edid-decode
%files devel
%{_includedir}/%{name}
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Thu Feb 16 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.1.1-1
- Initial import (#2170328)

View File

@ -0,0 +1,105 @@
## START: Set by rpmautospec
## (rpmautospec version 0.3.5)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 1;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
Name: libliftoff
Version: 0.4.1
Release: %autorelease
Summary: Lightweight KMS plane library
License: MIT
URL: https://gitlab.freedesktop.org/emersion/libliftoff
Source0: %{url}/-/archive/v%{version}/%{name}-v%{version}.tar.gz
BuildRequires: meson >= 0.52.0
BuildRequires: ninja-build
BuildRequires: gcc-toolset-13-gcc
BuildRequires: pkgconfig(libdrm)
%description
libliftoff eases the use of KMS planes from userspace without
standing in your way. Users create "virtual planes" called
layers, set KMS properties on them, and libliftoff will
allocate planes for these layers if possible.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%autosetup -p1 -n %{name}-v%{version}
%build
. /opt/rh/gcc-toolset-13/enable
%meson
%meson_build
%install
%meson_install
%files
%license LICENSE
%doc README.md
%{_libdir}/*.so.0*
%files devel
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%changelog
* Tue Jul 25 2023 František Zatloukal <fzatlouk@redhat.com> - 0.4.1-1
- Rebase to version 0.4.1 (Fixes RHBZ#2171929)
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Aug 19 2022 Frantisek Zatloukal <fzatlouk@redhat.com> - 0.3.0-1
- Rebase to version 0.3.0
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Feb 10 2022 Neal Gompa <ngompa@fedoraproject.org> - 0.2.0-1
- Rebase to version 0.2.0
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sun Jul 04 2021 Neal Gompa <ngompa13@gmail.com> - 0.1.0-1
- Rebase to version 0.1.0
* Wed Apr 07 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.0.0~git20201110.24abeb9-1
- Update to git snapshot required for gamescope 3.7.1
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.0~git20201031.0095702-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Nov 3 13:38:26 EST 2020 Neal Gompa <ngompa13@gmail.com> - 0.0.0~git20201031.0095702-1
- Update to new git snapshot
* Sun Oct 4 15:05:36 EDT 2020 Neal Gompa <ngompa13@gmail.com> - 0.0.0~git20200526.b004282-1
- Initial packaging

View File

@ -0,0 +1,359 @@
From 762da0ec8832a2b8dd0fd11ccb34603391c2893c Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed, 30 Mar 2022 09:25:22 +1000
Subject: [PATCH] evdev: strip the device name of format directives
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This fixes a format string vulnerabilty.
evdev_log_message() composes a format string consisting of a fixed
prefix (including the rendered device name) and the passed-in format
buffer. This format string is then passed with the arguments to the
actual log handler, which usually and eventually ends up being printf.
If the device name contains a printf-style format directive, these ended
up in the format string and thus get interpreted correctly, e.g. for a
device "Foo%sBar" the log message vs printf invocation ends up being:
evdev_log_message(device, "some message %s", "some argument");
printf("event9 - Foo%sBar: some message %s", "some argument");
This can enable an attacker to execute malicious code with the
privileges of the process using libinput.
To exploit this, an attacker needs to be able to create a kernel device
with a malicious name, e.g. through /dev/uinput or a Bluetooth device.
To fix this, convert any potential format directives in the device name
by duplicating percentages.
Pre-rendering the device to avoid the issue altogether would be nicer
but the current log level hooks do not easily allow for this. The device
name is the only user-controlled part of the format string.
A second potential issue is the sysname of the device which is also
sanitized.
This issue was found by Albin Eldstål-Ahrens and Benjamin Svensson from
Assured AB, and independently by Lukas Lamster.
Fixes #752
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit a423d7d3269dc32a87384f79e29bb5ac021c83d1)
(cherry picked from commit 04f22107e1a2ead05401d9169fa4306e8c7eefad)
---
meson.build | 1 +
src/evdev.c | 31 +++++++++++------
src/evdev.h | 6 ++--
src/util-strings.h | 30 ++++++++++++++++
test/litest-device-format-string.c | 56 ++++++++++++++++++++++++++++++
test/litest.h | 1 +
test/test-utils.c | 26 ++++++++++++++
7 files changed, 139 insertions(+), 12 deletions(-)
create mode 100644 test/litest-device-format-string.c
diff --git a/meson.build b/meson.build
index d6b06cca..a909ff19 100644
--- a/meson.build
+++ b/meson.build
@@ -732,6 +732,7 @@ if get_option('tests')
'test/litest-device-dell-canvas-totem-touch.c',
'test/litest-device-elantech-touchpad.c',
'test/litest-device-elan-tablet.c',
+ 'test/litest-device-format-string.c',
'test/litest-device-generic-pressurepad.c',
'test/litest-device-generic-singletouch.c',
'test/litest-device-gpio-keys.c',
diff --git a/src/evdev.c b/src/evdev.c
index d8dfdadd..0b4b3590 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -2291,19 +2291,19 @@ evdev_device_create(struct libinput_seat *seat,
struct libinput *libinput = seat->libinput;
struct evdev_device *device = NULL;
int rc;
- int fd;
+ int fd = -1;
int unhandled_device = 0;
const char *devnode = udev_device_get_devnode(udev_device);
- const char *sysname = udev_device_get_sysname(udev_device);
+ char *sysname = str_sanitize(udev_device_get_sysname(udev_device));
if (!devnode) {
log_info(libinput, "%s: no device node associated\n", sysname);
- return NULL;
+ goto err;
}
if (udev_device_should_be_ignored(udev_device)) {
log_debug(libinput, "%s: device is ignored\n", sysname);
- return NULL;
+ goto err;
}
/* Use non-blocking mode so that we can loop on read on
@@ -2317,13 +2317,15 @@ evdev_device_create(struct libinput_seat *seat,
sysname,
devnode,
strerror(-fd));
- return NULL;
+ goto err;
}
if (!evdev_device_have_same_syspath(udev_device, fd))
goto err;
device = zalloc(sizeof *device);
+ device->sysname = sysname;
+ sysname = NULL;
libinput_device_init(&device->base, seat);
libinput_seat_ref(seat);
@@ -2346,6 +2348,9 @@ evdev_device_create(struct libinput_seat *seat,
device->dispatch = NULL;
device->fd = fd;
device->devname = libevdev_get_name(device->evdev);
+ /* the log_prefix_name is used as part of a printf format string and
+ * must not contain % directives, see evdev_log_msg */
+ device->log_prefix_name = str_sanitize(device->devname);
device->scroll.threshold = 5.0; /* Default may be overridden */
device->scroll.direction_lock_threshold = 5.0; /* Default may be overridden */
device->scroll.direction = 0;
@@ -2386,12 +2391,16 @@ evdev_device_create(struct libinput_seat *seat,
return device;
err:
- close_restricted(libinput, fd);
- if (device) {
- unhandled_device = device->seat_caps == 0;
- evdev_device_destroy(device);
+ if (fd >= 0) {
+ close_restricted(libinput, fd);
+ if (device) {
+ unhandled_device = device->seat_caps == 0;
+ evdev_device_destroy(device);
+ }
}
+ free(sysname);
+
return unhandled_device ? EVDEV_UNHANDLED_DEVICE : NULL;
}
@@ -2404,7 +2413,7 @@ evdev_device_get_output(struct evdev_device *device)
const char *
evdev_device_get_sysname(struct evdev_device *device)
{
- return udev_device_get_sysname(device->udev_device);
+ return device->sysname;
}
const char *
@@ -3001,6 +3010,8 @@ evdev_device_destroy(struct evdev_device *device)
if (device->base.group)
libinput_device_group_unref(device->base.group);
+ free(device->log_prefix_name);
+ free(device->sysname);
free(device->output_name);
filter_destroy(device->pointer.filter);
libinput_timer_destroy(&device->scroll.timer);
diff --git a/src/evdev.h b/src/evdev.h
index c7d130f8..980c5943 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -169,6 +169,8 @@ struct evdev_device {
struct udev_device *udev_device;
char *output_name;
const char *devname;
+ char *log_prefix_name;
+ char *sysname;
bool was_removed;
int fd;
enum evdev_device_seat_capability seat_caps;
@@ -786,7 +788,7 @@ evdev_log_msg(struct evdev_device *device,
sizeof(buf),
"%-7s - %s%s%s",
evdev_device_get_sysname(device),
- (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? device->devname : "",
+ (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? device->log_prefix_name : "",
(priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? ": " : "",
format);
@@ -824,7 +826,7 @@ evdev_log_msg_ratelimit(struct evdev_device *device,
sizeof(buf),
"%-7s - %s%s%s",
evdev_device_get_sysname(device),
- (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? device->devname : "",
+ (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? device->log_prefix_name : "",
(priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? ": " : "",
format);
diff --git a/src/util-strings.h b/src/util-strings.h
index 2a15fab3..d5a84146 100644
--- a/src/util-strings.h
+++ b/src/util-strings.h
@@ -43,6 +43,8 @@
#include <xlocale.h>
#endif
+#include "util-macros.h"
+
static inline bool
streq(const char *str1, const char *str2)
{
@@ -398,3 +400,31 @@ safe_basename(const char *filename);
char *
trunkname(const char *filename);
+
+/**
+ * Return a copy of str with all % converted to %% to make the string
+ * acceptable as printf format.
+ */
+static inline char *
+str_sanitize(const char *str)
+{
+ if (!str)
+ return NULL;
+
+ if (!strchr(str, '%'))
+ return strdup(str);
+
+ size_t slen = min(strlen(str), 512);
+ char *sanitized = zalloc(2 * slen + 1);
+ const char *src = str;
+ char *dst = sanitized;
+
+ for (size_t i = 0; i < slen; i++) {
+ if (*src == '%')
+ *dst++ = '%';
+ *dst++ = *src++;
+ }
+ *dst = '\0';
+
+ return sanitized;
+}
diff --git a/test/litest-device-format-string.c b/test/litest-device-format-string.c
new file mode 100644
index 00000000..aed15db4
--- /dev/null
+++ b/test/litest-device-format-string.c
@@ -0,0 +1,56 @@
+
+/*
+ * Copyright © 2013 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include "config.h"
+
+#include "litest.h"
+#include "litest-int.h"
+
+static struct input_id input_id = {
+ .bustype = 0x3,
+ .vendor = 0x0123,
+ .product = 0x0456,
+};
+
+static int events[] = {
+ EV_KEY, BTN_LEFT,
+ EV_KEY, BTN_RIGHT,
+ EV_KEY, BTN_MIDDLE,
+ EV_REL, REL_X,
+ EV_REL, REL_Y,
+ EV_REL, REL_WHEEL,
+ EV_REL, REL_WHEEL_HI_RES,
+ -1 , -1,
+};
+
+TEST_DEVICE("mouse-format-string",
+ .type = LITEST_MOUSE_FORMAT_STRING,
+ .features = LITEST_RELATIVE | LITEST_BUTTON | LITEST_WHEEL,
+ .interface = NULL,
+
+ .name = "Evil %s %d %x Mouse %p %",
+ .id = &input_id,
+ .absinfo = NULL,
+ .events = events,
+)
diff --git a/test/litest.h b/test/litest.h
index b6ffbf4e..c16670e7 100644
--- a/test/litest.h
+++ b/test/litest.h
@@ -320,6 +320,7 @@ enum litest_device_type {
LITEST_KEYBOARD_QUIRKED,
LITEST_SYNAPTICS_PRESSUREPAD,
LITEST_GENERIC_PRESSUREPAD,
+ LITEST_MOUSE_FORMAT_STRING,
};
#define LITEST_DEVICELESS -2
diff --git a/test/test-utils.c b/test/test-utils.c
index 989adecd..e80754be 100644
--- a/test/test-utils.c
+++ b/test/test-utils.c
@@ -1267,6 +1267,31 @@ START_TEST(strstartswith_test)
}
END_TEST
+START_TEST(strsanitize_test)
+{
+ struct strsanitize_test {
+ const char *string;
+ const char *expected;
+ } tests[] = {
+ { "foobar", "foobar" },
+ { "", "" },
+ { "%", "%%" },
+ { "%%%%", "%%%%%%%%" },
+ { "x %s", "x %%s" },
+ { "x %", "x %%" },
+ { "%sx", "%%sx" },
+ { "%s%s", "%%s%%s" },
+ { NULL, NULL },
+ };
+
+ for (struct strsanitize_test *t = tests; t->string; t++) {
+ char *sanitized = str_sanitize(t->string);
+ ck_assert_str_eq(sanitized, t->expected);
+ free(sanitized);
+ }
+}
+END_TEST
+
START_TEST(list_test_insert)
{
struct list_test {
@@ -1489,6 +1514,7 @@ litest_utils_suite(void)
tcase_add_test(tc, strstrip_test);
tcase_add_test(tc, strendswith_test);
tcase_add_test(tc, strstartswith_test);
+ tcase_add_test(tc, strsanitize_test);
tcase_add_test(tc, time_conversion);
tcase_add_test(tc, human_time);
--
2.36.0

View File

@ -0,0 +1,935 @@
%global udevdir %(pkg-config --variable=udevdir udev)
#global gitdate 20141211
%global gitversion 58abea394
%global realname libinput
%global _prefix /opt/rx
%global _libdir %{_prefix}/%{_lib}
%global _includedir %{_prefix}/include
%global _libexecdir %{_prefix}/libexec
%global _datadir %{_prefix}/share
%global _mandir %{_datadir}/man
Name: rx-libinput
Version: 1.23.0
Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
Summary: Input device library
License: MIT
URL: http://www.freedesktop.org/wiki/Software/libinput/
%if 0%{?gitdate}
Source0: %{name}-%{gitdate}.tar.xz
Source1: make-git-snapshot.sh
Source2: commitid
%else
Source0: http://www.freedesktop.org/software/libinput/libinput-%{version}.tar.bz2
%endif
BuildRequires: git-core
BuildRequires: gcc
BuildRequires: meson
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(mtdev) >= 1.1.0
BuildRequires: pkgconfig(libevdev) >= 0.4
BuildRequires: pkgconfig(libwacom) >= 0.20
BuildRequires: python3-devel
BuildRequires: check-devel
%description
libinput is a library that handles input devices for display servers and other
applications that need to directly deal with input devices.
It provides device detection, device handling, input device event processing
and abstraction so minimize the amount of custom input code the user of
libinput need to provide the common set of functionality that users expect.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%package utils
Summary: Utilities and tools for debugging %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python3-pyudev python3-libevdev
%description utils
The %{name}-utils package contains tools to debug hardware and analyze
%{name}.
%package test
Summary: libinput integration test suite
Requires: %{name}%{?_isa} = %{version}-%{release}
%description test
The %{name}-test package contains the libinput test suite. It is not
intended to be run by users.
%prep
%autosetup -S git -n %{realname}-%{version}
# Replace whatever the source uses with the approved call
pathfix.py -i %{__python3} -p -n $(git grep -l '#!/usr/bin/.*python3')
%build
export PKG_CONFIG_PATH=%{_libdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
export LDFLAGS="-L%{_libdir} -Wl,-rpath=%{_libdir} ${LDFLAGS:-%__global_ldflags}"
%meson -Ddebug-gui=false \
-Ddocumentation=false \
-Dtests=true \
-Dinstall-tests=true \
-Dudev-dir=%{udevdir}
%meson_build
%install
%meson_install
%post
%{?ldconfig}
%ldconfig_postun
%files
%doc COPYING
%{_libdir}/libinput.so.*
%exclude %{udevdir}/libinput-device-group
%exclude %{udevdir}/libinput-fuzz-to-zero
%exclude %{udevdir}/libinput-fuzz-extract
%exclude %{udevdir}/rules.d/80-libinput-device-groups.rules
%exclude %{udevdir}/rules.d/90-libinput-fuzz-override.rules
%{_bindir}/libinput
%dir %{_libexecdir}/libinput/
%{_libexecdir}/libinput/libinput-debug-events
%{_libexecdir}/libinput/libinput-list-devices
%{_mandir}/man1/libinput.1*
%{_datadir}/libinput/*.quirks
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/*
%{_mandir}/man1/libinput-list-devices.1*
%{_mandir}/man1/libinput-debug-events.1*
%files devel
%{_includedir}/libinput.h
%{_libdir}/libinput.so
%{_libdir}/pkgconfig/libinput.pc
%files utils
%{_libexecdir}/libinput/libinput-analyze
%{_libexecdir}/libinput/libinput-analyze-per-slot-delta
%{_libexecdir}/libinput/libinput-analyze-recording
%{_libexecdir}/libinput/libinput-analyze-touch-down-state
%{_libexecdir}/libinput/libinput-debug-tablet
%{_libexecdir}/libinput/libinput-list-kernel-devices
%{_libexecdir}/libinput/libinput-measure
%{_libexecdir}/libinput/libinput-measure-fuzz
%{_libexecdir}/libinput/libinput-measure-touchpad-tap
%{_libexecdir}/libinput/libinput-measure-touchpad-pressure
%{_libexecdir}/libinput/libinput-measure-touchpad-size
%{_libexecdir}/libinput/libinput-measure-touch-size
%{_libexecdir}/libinput/libinput-quirks
%{_libexecdir}/libinput/libinput-record
%{_libexecdir}/libinput/libinput-replay
%{_mandir}/man1/libinput-analyze.1*
%{_mandir}/man1/libinput-analyze-per-slot-delta.1*
%{_mandir}/man1/libinput-analyze-recording.1*
%{_mandir}/man1/libinput-analyze-touch-down-state.1*
%{_mandir}/man1/libinput-debug-tablet.1*
%{_mandir}/man1/libinput-list-kernel-devices.1*
%{_mandir}/man1/libinput-measure.1*
%{_mandir}/man1/libinput-measure-fuzz.1*
%{_mandir}/man1/libinput-measure-touchpad-tap.1*
%{_mandir}/man1/libinput-measure-touch-size.1*
%{_mandir}/man1/libinput-measure-touchpad-pressure.1*
%{_mandir}/man1/libinput-measure-touchpad-size.1*
%{_mandir}/man1/libinput-quirks.1*
%{_mandir}/man1/libinput-quirks-list.1*
%{_mandir}/man1/libinput-quirks-validate.1*
%{_mandir}/man1/libinput-record.1*
%{_mandir}/man1/libinput-replay.1*
%files test
%{_libexecdir}/libinput/libinput-test
%{_libexecdir}/libinput/libinput-test-suite
%{_libexecdir}/libinput/libinput-test-utils
%{_mandir}/man1/libinput-test.1*
%{_mandir}/man1/libinput-test-suite.1*
%changelog
* Mon Mar 27 2023 Peter Hutterer <peter.hutterer@redhat.com> - 1.23.0-1
- libinput 1.23.0
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.22.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Jan 16 2023 Peter Hutterer <peter.hutterer@redhat.com> - 1.22.1-1
- libinput 1.22.1
* Sat Nov 26 2022 Davide Cavalca <dcavalca@fedoraproject.org> 1.22.0-2
- Backport upstream patch to add Apple MTP touchpad quirk for Apple M2 laptops
* Mon Nov 21 2022 Peter Hutterer <peter.hutterer@redhat.com> - 1.22.0-1git58abea394}
- libinput 1.22.0
* Wed Aug 31 2022 Peter Hutterer <peter.hutterer@redhat.com> - 1.21.0-3
- Add udev to BuildRequires for udevdir to resolve againt
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.21.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Peter Hutterer <peter.hutterer@redhat.com> - 1.21.0-1
- libinput 1.21.0
* Wed May 04 2022 Peter Hutterer <peter.hutterer@redhat.com> - 1.19.3-2
- CVE-2022-1215: fix a format string vulnerability (#2076816)
* Thu Jan 27 2022 Peter Hutterer <peter.hutterer@redhat.com> - 1.19.3-1
- libinput 1.19.3 (#2044716)
* Thu Oct 21 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.19.2-1
- libinput 1.19.2 (#2004309)
* Mon Oct 18 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.19.1-1
- libinput 1.19.1 (#2004309)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.18.0-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Jun 10 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.18.0-1
- libinput 1.18.0 (#1970188)
* Tue May 04 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.17.2-1
- libinput 1.17.2 (#1955413)
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.17.1-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Mar 24 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.17.1-1
- libinput 1.17.1
* Tue Feb 23 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.17.0-1
- libinput 1.17.0
* Tue Feb 16 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.16.902-1
- libinput 1.16.902
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Nov 27 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.16.4-1
- libinput 1.16.4
* Tue Nov 03 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.16.3-1
- libinput 1.16.3
* Tue Sep 22 2020 Peter Hutterer <peter.hutterer@redhat.com>
- Drop gcc-c++ from the BuildRequires, it's no longer needed
* Thu Aug 13 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.16.1-1
- libinput 1.16.1
* Mon Aug 03 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.16.0-1
- libinput 1.16.0
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.902-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.902-1
- libinput 1.16rc2
* Wed Jul 15 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.901-1
- libinput 1.16rc1
* Fri Jun 19 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.6-1
- libinput 1.15.6
* Sat Apr 11 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.5-1
- libinput 1.15.5
* Wed Mar 18 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.4-1
- libinput 1.15.4
* Mon Mar 09 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.3-2
- fix libinput record's dmi modalias recording
* Fri Mar 06 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.3-1
- libinput 1.15.3
* Thu Feb 20 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.2-1
- libinput 1.15.2
* Mon Feb 03 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.1-1
- libinput 1.15.1
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jan 03 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.15.0-1
- libinput 1.15
* Thu Dec 05 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.14.901-1
- libinput 1.15rc1
* Tue Nov 19 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.14.3-2
- Point users to the libinput-utils package for missing tools.
* Mon Oct 28 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.14.3-1
- libinput 1.14.3
* Thu Oct 17 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.14.2-1
- libinput 1.14.2
* Mon Aug 26 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.14.1-1
- libinput 1.14.1
* Tue Aug 20 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.14.0-2
- Fix click+drag on clickpads
* Thu Aug 08 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.14.0-1
- libinput 1.14
* Wed Jul 31 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.13.902-1
- libinput 1.14rc2
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Jun 28 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.13.4-1
- libinput 1.13.4
* Mon Jun 24 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.13.3-1
- libinput 1.13.3
* Thu May 09 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.13.2-1
- libinput 1.13.2
* Tue Apr 16 2019 Adam Williamson <awilliam@redhat.com> - 1.13.1-2
- Rebuild with Meson fix for #1699099
* Tue Apr 09 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.13.1-1
- libinput 1.13.1
* Fri Mar 29 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.13.0-1
- libinput 1.13.0
* Thu Mar 21 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.12.902-1
- libinput 1.12.902
* Thu Mar 21 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.12.901-3
- Package the tests suite as subpackage
* Fri Mar 15 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.12.901-2
- Require python3-libevdev for the utils subpackage
* Thu Mar 14 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.12.901-1
- libinput 1.12.901
* Thu Feb 14 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.12.6-3
- Don't update the hwdb on install, we don't have any hwdb files anymore
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jan 21 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.12.6-1
- libinput 1.12.6
* Mon Jan 07 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.12.5-1
- libinput 1.12.5
* Tue Dec 18 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.12.4-1
- libinput 1.12.4
* Wed Nov 07 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.12.3-1
- libinput 1.12.3
* Wed Oct 24 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.12.2-1
- libinput 1.12.2
* Wed Oct 03 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.12.1-1
- libinput 1.12.1
* Tue Sep 11 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.12.0-1
- libinput 1.12
* Tue Sep 04 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.903-1
- libinput 1.12rc3
* Tue Aug 14 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.902-1
- libinput 1.12rc2
* Tue Jul 31 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.901-1
- libinput 1.12rc1
* Wed Jul 25 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.3-1
- libinput 1.11.3
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.11.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Jul 06 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.2-2
- Replace all python3 calls with the rpm macro
* Tue Jul 03 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.2-1
- libinput 1.11.2
* Wed Jun 20 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.1-2
- Fix segfault in libinput list-devices
* Tue Jun 19 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.1-1
- libinput 1.11.1
* Tue Jun 05 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.11.0-1
- libinput 1.11.0
* Fri Jun 01 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.902-2
- Revert direct sensitivity attribute reading (#1583324)
* Wed May 30 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.902-1
- libinput 1.11 rc2
* Tue May 22 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.901-1
- libinput 1.11 rc1
* Thu May 17 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.7-2
- libinput 1.10.7
* Mon May 14 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.6-2
- Fix palm threshold on MacBookPro5,5 (#1575260)
* Tue May 01 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.6-1
- libinput 1.10.6
* Fri Apr 27 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.5-3
- Fix the T460s halting cursor problem harder (#1572394)
* Fri Apr 27 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.5-2
- Fix the T460s halting cursor problem (#1572394)
* Thu Apr 19 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.5-1
- libinput 1.10.5
* Thu Apr 19 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.4-2
- Disable ABS_MT_TOOL_PALM on the Lenovo Carbon X1 6th (#1565692)
* Mon Apr 09 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.4-1
- libinput 1.10.4
* Wed Mar 14 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.3-1
- libinput 1.10.3
* Mon Mar 12 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.2-4
- Fix occasional crashes on gestures when libinput loses track of hovering
fake fingers
* Thu Mar 08 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.2-3
- Add BuildRequires gcc-c++, needed for a test build
* Wed Mar 07 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.2-2
- libinput 1.10.2
* Fri Mar 02 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.1-2
- Fix touchpad jitter by changing from "disable if no jitter" to "enable if
jitter" (#1548550)
* Wed Feb 28 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.1-1
- libinput 1.10.1
* Tue Feb 13 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.0-2
- Fix crasher due to missing devnode after resume (#1536633)
* Tue Feb 13 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.10.0-1
- libinput 1.10
* Tue Feb 06 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.9.902-1
- libinput 1.10rc2
* Mon Feb 05 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.9.901-3
- Fix crasher on first event from tablets not supported by libwacom
(#1535755)
* Fri Feb 02 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.9.901-2
- Use autosetup instead of the manual git magic
* Mon Jan 22 2018 Peter Hutterer <peter.hutterer@redhat.com> 1.9.901-1
- libinput 1.10rc1
* Thu Dec 14 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.4-1
- libinput 1.9.4
* Fri Dec 08 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.3-2
- Immediately post key events, don't wait for EV_SYN
* Tue Nov 28 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.3-1
- libinput 1.9.3
* Wed Nov 15 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.2-1
- libinput 1.9.2
* Wed Nov 15 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.1-4
- Mark the Lenovo Compact Keyboard as external (#1510814)
* Tue Nov 14 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.1-3
- Handle printing of tablet mode switches (#1510814)
* Thu Nov 09 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.1-2
- Split some of the tools into a libinput-utils package so we can require
the various bits easier (#1509298)
* Mon Oct 30 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.1-1
- libinput 1.9.1
* Thu Oct 26 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.0-2
- Drop explicit .gz from the man pages
* Thu Oct 19 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.9.0-1
- libinput 1.9.0
* Tue Oct 10 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.8.902-1
- libinput 1.9rc2
* Thu Sep 28 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.8.901-1
- libinput 1.9rc1
* Thu Sep 07 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.8.2-1
- libinput 1.8.2
* Tue Sep 05 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.8.1-4
- Don't try pinching when the finger number exceeds available slots
- Don't resume a disabled touchpad after a lid switch open (#1448962)
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jul 19 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.8.1-1
- libinput 1.8.1
* Thu Jul 13 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.8.0-2
- Add missing BuildRequires: gcc
- Fixup other BuildRequires
- Rebuild for pkg-config fix from meson
* Mon Jul 03 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.8.0-1
- libinput 1.8
* Tue Jun 27 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.902-2
- Switch to meson as build system
* Mon Jun 26 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.902-1
- libinput 1.8rc2
* Mon Jun 19 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.901-2
- libinput 1.8rc1 with source files this time
* Mon Jun 19 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.901-1
- libinput 1.8rc1
* Mon Jun 12 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.3-1
- libinput 1.7.3
* Tue May 09 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.2-2
- Ignore taps in the palm detection area even in software buttons (#1415796)
* Tue May 09 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.2-1
- libinput 1.7.2
* Thu May 04 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.1-4
- Fix a crash when shutting down a touchpad lid listener (#1440927)
* Thu May 04 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.1-3
- Fix crash when we have multiple keyboard event listeners for the lid
switch (#1440927)
* Tue May 02 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.1-2
- Add patches to fix elantech pressure detection
* Tue Apr 25 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.1-1
- libinput 1.7.1
* Thu Mar 23 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.7.0-1
- libinput 1.7
* Fri Mar 10 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.6.902-1
- libinput 1.7rc2
* Thu Feb 23 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.6.901-1
- libinput 1.7rc1
* Wed Feb 22 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.6.2-2
- Fix middle button emulation for Logitech Marble Mouse (#1421439)
* Tue Feb 21 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.6.2-1
- libinput 1.6.2
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Feb 02 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.6.1-1
- libinput 1.6.1
* Wed Feb 01 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.6.0-2
- revert the tap timeout reduction (#1414935)
* Fri Jan 20 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.6.0-1
- libinput 1.6
* Mon Jan 16 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.5.902-1
- libinput 1.6rc2
* Tue Jan 10 2017 Peter Hutterer <peter.hutterer@redhat.com> 1.5.901-1
- libinput 1.6rc1
* Wed Dec 07 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.5.3-1
- libinput 1.5.3
* Fri Nov 25 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.5.2-2
- Swap to the correct tarball so we match the checksums from upstream (had a
local mixup of tarballs)
* Fri Nov 25 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.5.2-1
- libinput 1.5.2
* Tue Nov 22 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.5.1-2
- Improve responsiveness of touchpads by reducing the motion history.
* Fri Nov 11 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.5.1-1
- libinput 1.5.1
* Wed Sep 14 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.5.0-2
- Drop the synaptics 3-slot workaround
* Wed Sep 14 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.5.0-1
- libinput 1.5.0
* Thu Sep 08 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.4.901-2
- Avoid spurious trackpoint events halting the touchpad (related #1364850)
* Wed Sep 07 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.4.901-1
- libinput 1.5rc1
* Wed Aug 31 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.4.2-2
- Add quirk for the HP 8510w touchpad (#1351285)
* Tue Aug 30 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.4.2-1
- libinput 1.4.2
* Fri Aug 05 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.4.1-1
- libinput 1.4.1
* Mon Jul 18 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.4.0-1
- libinput 1.4
* Tue Jul 12 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.3.901-1
- libinput 1.4rc1
* Fri Jun 24 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.3.3-2
- Drop the now unnecessary patch
* Fri Jun 24 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.3.3-1
- libinput 1.3.3
* Thu Jun 16 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.3.2-1
- libinput 1.3.2
* Mon May 30 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.3.1-1
- libinput 1.3.1
* Fri May 20 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.3.0-3
- Stop pointer jitter on the Dell E5420, E530 and Lenovo Yoga 2
* Thu May 19 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.3.0-2
- Disable negative pressure transition on non-synaptics pads to avoid
jerky movement (#1335249)
* Tue May 10 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.3.0-1
- libinput 1.3.0
* Wed May 04 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.903-1
- libinput 1.3rc3
* Thu Apr 21 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.902-1
- libinput 1.3rc2
* Tue Apr 19 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.4-1
- libinput 1.2.4
* Tue Apr 12 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.3-1
- libinput 1.2.3
* Tue Mar 15 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.2-1
- libinput 1.2.2
* Fri Mar 11 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.1-4
- Fix jerky pointer motion on the Lenovo T450/T460/X1 3rd hardware
* Mon Mar 07 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.1-3
- Fix segfault on mislabeled tablets (#1314955)
* Wed Mar 02 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.1-2
- Bump to maintain upgrade path with F23
* Mon Feb 29 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.1-1
- libinput 1.2.1
* Tue Feb 23 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.2.0-1
- libinput 1.2.0
* Mon Feb 15 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.902-2
- Add libwacom-devel to BuildRequires
* Mon Feb 15 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.902-1
- libinput 1.2rc2
* Wed Feb 10 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.7-1
- libinput 1.1.7
* Fri Feb 05 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.6-1
- libinput 1.1.6
* Thu Feb 04 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.5-4
- Fix patches from -3, they got corrupted somehow
* Thu Feb 04 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.5-3
- Disable the mode button on the Cyborg RAT 5
- Drop touchpad motion hysteresis by default
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Jan 25 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.5-1
- libinput 1.1.5
* Tue Jan 19 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.4-3
- disable MT for semi-mt devices to solve the various two- and three-finger
issues (at the cost of pinch gestures) (#1295073)
* Mon Jan 11 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.1.4-2
- fix disable-while-typing on macbooks
* Tue Dec 22 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.1.4-1
- libinput 1.1.4
* Wed Dec 16 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.1.3-1
- libinput 1.1.3
* Wed Dec 09 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.1.2-1
- libinput 1.1.2
* Mon Dec 07 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.1.1-2
- Reduce 2fg scroll threshold to 1mm (#1247958)
* Mon Nov 16 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.1.1-1
- libinput 1.1.1
* Mon Nov 02 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.1.0-3
- Fix invalid device group pointer, causing invalid memory access
* Wed Oct 28 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.1.0-2
- Fix crash triggered by Asus RoG Gladius mouse (#1275407)
* Mon Oct 26 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.1.0-1
- libinput 1.1.0
* Wed Oct 21 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.0.2-1
- libinput 1.0.2
* Sat Sep 19 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.0.1-3
- Fix the number of clicks sent in multitap (fdo #92016)
* Mon Sep 07 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.0.1-2
- Don't interpret short scrolls as right click (#1256045)
* Thu Sep 03 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.0.1-1
- libinput 1.0.1
* Wed Aug 26 2015 Peter Hutterer <peter.hutterer@redhat.com> 1.0.0-1
- libinput 1.0
* Fri Aug 21 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.99.1-1
- libinput 1.0RC1
* Wed Aug 05 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.21.0-3
- Fix 2fg scroll threshold handling (#1249365)
* Tue Aug 04 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.21.0-2
- Fix pointer speed configuration, broke with 0.21.0
* Tue Aug 04 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.21.0-1
- libinput 0.21.0
- fix 3fg touch detection on Synaptics semi-mt touchpads
* Thu Jul 30 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.20.0-6
- Fix broken 2fg scrolling on single-touch touchpads (#1246651)
- Drop distance threshold for 2fg gesture detection (#1246868)
* Wed Jul 29 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.20.0-5
- Add a size hint for Apple one-button touchpads (#1246651)
* Wed Jul 29 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.20.0-4
- Disable 2fg scrolling on Synaptics semi-mt (#1235175)
* Fri Jul 24 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.20.0-3
- Disable thumb detection, too many false positives (#1246093)
* Tue Jul 21 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.20.0-2
- Restore parsing for trackpoing const accel
* Thu Jul 16 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.20.0-1
- libinput 0.20
* Tue Jul 14 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.19.0-3
- Only edge scroll when the finger is on the actual edge
* Thu Jul 09 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.19.0-2
- enable edge scrolling on clickpads (#1225579)
* Mon Jul 06 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.19.0-1
- libinput 0.19.0
* Wed Jul 01 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.18.0-5
- Improve trackpoint->touchpad transition responsiveness (#1233844)
* Mon Jun 29 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.18.0-4
- Steepen deceleration curve to get better 1:1 movement on slow speeds
(#1231304)
- Provide custom accel method for <1000dpi mice (#1227039)
* Thu Jun 25 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.18.0-3
- Fix stuck finger after a clickpad click on resolutionless touchpads
* Wed Jun 24 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.18.0-2
- Fix initial jump during edge scrolling
* Mon Jun 22 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.18.0-1
- libinput 0.18.0
* Tue Jun 16 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.17.0-5
- Use physical values for the hystersis where possible (#1230462)
- Disable right-edge palm detection when edge scrolling is active
(fdo#90980)
* Tue Jun 16 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.17.0-4
- Avoid erroneous finger movement after a physical click (#1230441)
* Fri Jun 12 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.17.0-3
- Require udev.pc for the build
* Tue Jun 09 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.17.0-2
- Cap the minimum acceleration slowdown at 0.3 (#1227796)
* Thu Jun 04 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.17.0-1
- libinput 0.17
* Tue Jun 02 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.16.0-4
- Always set the middle button as default button for button-scrolling
(#1227182)
* Tue Jun 02 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.16.0-3
- Reduce tap-n-drag timeout (#1225998)
* Tue Jun 02 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.16.0-2
- Handle slow motions better (#1227039)
* Tue Jun 02 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.16.0-1
- libinput 0.16.0
* Fri May 29 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.15.0-4
- Add tap-to-end-drag patch (#1225998)
* Wed May 27 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.15.0-3
- Refine disable-while-typing (#1209753)
* Mon May 18 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.15.0-2
- Add disable-while-typing feature (#1209753)
* Tue May 05 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.15.0-1
- libinput 0.15.0
* Fri Apr 24 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.14.1-2
- Fix crash with the MS Surface Type Cover (#1206869)
* Wed Apr 22 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.14.1-1
- libinput 0.14.1
* Thu Apr 16 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.13.0-6
- git add the patch...
* Thu Apr 16 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.13.0-5
- Reduce palm detection threshold to 70mm (#1209753)
- Don't allow taps in the top part of the palm zone (#1209753)
* Thu Apr 09 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.13.0-4
- Fix finger miscounts on single-touch touchpads (#1209151)
* Wed Apr 08 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.13.0-3
- Fix mouse slowdown (#1208992)
* Wed Apr 08 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.13.0-2
- Fix crasher triggered by fake MT devices without ABS_X/Y (#1207574)
* Tue Mar 24 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.13.0-1
- libinput 0.13.0
* Fri Mar 20 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.12.0-2
- Install the udev rules in the udevdir, not libdir (#1203645)
* Tue Mar 10 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.12.0-1
- libinput 0.12.0
* Mon Feb 23 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.11.0-1
- libinput 0.11.0
* Fri Feb 06 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.10.0-1
- libinput 0.10.0
* Fri Jan 30 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.9.0-1
- libinput 0.9.0
* Mon Jan 19 2015 Peter Hutterer <peter.hutterer@redhat.com> 0.8.0-1
- libinput 0.8.0
* Thu Dec 11 2014 Peter Hutterer <peter.hutterer@redhat.com> 0.7.0-2.20141211git58abea394
- git snapshot, fixes a crasher and fd confusion after suspending a device
* Fri Dec 05 2014 Peter Hutterer <peter.hutterer@redhat.com> 0.7.0-1
- libinput 0.7.0
* Mon Nov 24 2014 Peter Hutterer <peter.hutterer@redhat.com> 0.6.0-3.20141124git92d178f16
- Add the hooks to build from a git snapshot
- Disable silent rules
- Update to today's git master
* Fri Sep 12 2014 Peter Hutterer <peter.hutterer@redhat.com> 0.6.0-2
- libinput 0.6.0
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Jul 23 2014 Peter Hutterer <peter.hutterer@redhat.com> 0.5.0-1
- libinput 0.5.0
* Wed Jul 02 2014 Peter Hutterer <peter.hutterer@redhat.com> 0.4.0-2
- Add the new touchpad pointer acceleration code
* Wed Jun 25 2014 Kalev Lember <kalevlember@gmail.com> - 0.4.0-1
- Update to 0.4.0
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Fri May 23 2014 Peter Hutterer <peter.hutterer@redhat.com> 0.2.0-1
- libinput 0.2.0
* Fri Feb 28 2014 Kalev Lember <kalevlember@gmail.com> - 0.1.0-1
- Initial Fedora packaging

View File

@ -0,0 +1,321 @@
%global realname libxkbcommon
%global _syslibdir %{_libdir}
%global _prefix /opt/rx
Name: rx-libxkbcommon
Version: 1.5.0
Release: 1%{?gitdate:.%{gitdate}}%{?dist}
Summary: X.Org X11 XKB parsing library
License: MIT
URL: http://www.x.org
Source0: https://xkbcommon.org/download/%{realname}-%{version}.tar.xz
BuildRequires: git meson
BuildRequires: xorg-x11-util-macros byacc flex bison
BuildRequires: xorg-x11-proto-devel libX11-devel
BuildRequires: xkeyboard-config-devel
BuildRequires: pkgconfig(xcb-xkb) >= 1.10
BuildRequires: libxml2-devel
Requires: xkeyboard-config
%description
%{name} is the X.Org library for compiling XKB maps into formats usable by
the X Server or other display servers.
%package devel
Summary: X.Org X11 XKB parsing development package
Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: pkgconfig(xkbcommon) = %{version}-%{release}
Provides: pkgconfig(xkbregistry) = %{version}-%{release}
Provides: %{realname}-devel = %{version}-%{release}
Conflicts: %{realname}-devel
%description devel
X.Org X11 XKB parsing development package
%package x11
Summary: X.Org X11 XKB keymap creation library
Requires: %{name}%{?_isa} = %{version}-%{release}
%description x11
%{name}-x11 is the X.Org library for creating keymaps by querying the X
server.
%package x11-devel
Summary: X.Org X11 XKB keymap creation library
Requires: %{name}-x11%{?_isa} = %{version}-%{release}
Provides: pkgconfig(xkbcommon-x11) = %{version}-%{release}
Provides: %{realname}-x11-devel = %{version}-%{release}
Conflicts: %{realname}-x11-devel
%description x11-devel
X.Org X11 XKB keymap creation library development package
%package utils
Summary: X.Org X11 XKB parsing utilities
Requires: %{name}%{?_isa} = %{version}-%{release}
%description utils
%{name}-utils is a set of utilities to analyze and test XKB parsing.
%prep
%autosetup -S git -n %{realname}-%{version}
%build
%meson -Denable-docs=false \
-Denable-x11=true \
-Denable-wayland=false
%meson_build
%install
%meson_install
mkdir -p %{buildroot}%{_syslibdir}
mv %{buildroot}%{_libdir}/pkgconfig %{buildroot}%{_syslibdir}/
%ldconfig_scriptlets
%files
%license LICENSE
%{_libdir}/libxkbcommon.so.0.0.0
%{_libdir}/libxkbcommon.so.0
%{_libdir}/libxkbregistry.so.0.0.0
%{_libdir}/libxkbregistry.so.0
%files devel
%{_libdir}/libxkbcommon.so
%{_libdir}/libxkbregistry.so
%dir %{_includedir}/xkbcommon/
%{_includedir}/xkbcommon/xkbcommon.h
%{_includedir}/xkbcommon/xkbcommon-compat.h
%{_includedir}/xkbcommon/xkbcommon-compose.h
%{_includedir}/xkbcommon/xkbcommon-keysyms.h
%{_includedir}/xkbcommon/xkbcommon-names.h
%{_includedir}/xkbcommon/xkbregistry.h
%{_syslibdir}/pkgconfig/xkbcommon.pc
%{_syslibdir}/pkgconfig/xkbregistry.pc
%ldconfig_scriptlets x11
%files x11
%{_libdir}/libxkbcommon-x11.so.0.0.0
%{_libdir}/libxkbcommon-x11.so.0
%files x11-devel
%{_libdir}/libxkbcommon-x11.so
%{_includedir}/xkbcommon/xkbcommon-x11.h
%{_syslibdir}/pkgconfig/xkbcommon-x11.pc
%files utils
%{_bindir}/xkbcli
%{_libexecdir}/xkbcommon/xkbcli-compile-keymap
%{_libexecdir}/xkbcommon/xkbcli-how-to-type
%{_libexecdir}/xkbcommon/xkbcli-interactive-evdev
%{_libexecdir}/xkbcommon/xkbcli-interactive-x11
%{_libexecdir}/xkbcommon/xkbcli-list
%{_mandir}/man1/xkbcli-compile-keymap.1*
%{_mandir}/man1/xkbcli-how-to-type.1*
%{_mandir}/man1/xkbcli-interactive-evdev.1*
%{_mandir}/man1/xkbcli-interactive-x11.1*
%{_mandir}/man1/xkbcli-list.1*
%{_mandir}/man1/xkbcli.1*
%changelog
* Wed Feb 01 2023 Stewart Smith <trawets@amazon.com> - 1.3.0-1.amzn2023.0.2
- Mass rebuild for AL2023
* Sat Oct 01 2022 Stewart Smith <trawets@amazon.com> - 1.3.0-1.amzn2022.0.1
- AL2022 pre-GA mass rebuild
* Tue May 04 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.3.0-1
- libxkbcommon 1.3.0
* Thu Apr 08 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.2.1-1
- libxkbcommon 1.2.1
* Tue Apr 06 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.2.0-1
- libxkbcommon 1.2.0
- Fix Source link
* Wed Mar 10 2021 Peter Hutterer <peter.hutterer@redhat.com> 1.1.0-1
- libxkbcommon 1.1.0
- remove the git snapshot handling, we haven't used it in 9 years
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Nov 24 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.0.3-1
- libxkbcommon 1.0.3
* Mon Nov 23 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.0.2-1
- libxkbcommon 1.0.2
* Fri Sep 11 2020 Pete Walter <pwalter@fedoraproject.org> - 1.0.1-1
- libxkbcommon 1.0.1
* Mon Sep 07 2020 Peter Hutterer <peter.hutterer@redhat.com> 1.0.0-1
- libxkbcommon 1.0.0
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.10.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.10.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Jan 20 2020 Peter Hutterer <peter.hutterer@redhat.com> 0.10.0-1
- libxkbcommon 0.10.0
* Fri Dec 13 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.9.1-3
- convert ssharp to the correct uppercase letter
* Fri Nov 01 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.9.1-2
- drop the wayland-devel BR, we disable the wayland test programs
* Fri Oct 25 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.9.1-1
- libxkbcommon 0.9.1
* Mon Oct 21 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.8.4-3
- switch to meson as build system
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Mar 19 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.8.4-1
- libxkbcommon 0.8.4
* Wed Feb 13 2019 Peter Hutterer <peter.hutterer@redhat.com> 0.8.3-1
- libxkbcommon 0.8.3
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Aug 06 2018 Peter Hutterer <peter.hutterer@redhat.com> 0.8.2-1
- libxkbcommon 0.8.2
* Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 0.8.0-6
- Rebuild with fixed binutils
* Mon Jul 30 2018 Peter Hutterer <peter.hutterer@redhat.com> 0.8.0-5
- Fix invalid pointer passed to FreeStmt()
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.8.0-2
- Switch to %%ldconfig_scriptlets
* Tue Dec 19 2017 Peter Hutterer <peter.hutterer@redhat.com> 0.8.0-1
- libxkbcommon 0.8.0
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri May 12 2017 Hans de Goede <hdegoede@redhat.com> - 0.7.1-3
- Add patch from upstream adding XF86Keyboard and XF86RFKill keysyms
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Jan 19 2017 Peter Hutterer <peter.hutterer@redhat.com> 0.7.1-1
- xkbcommon 0.7.1
* Mon Nov 14 2016 Peter Hutterer <peter.hutterer@redhat.com> 0.7.0-1
- xkbcommon 0.7.0
* Fri Jun 03 2016 Peter Hutterer <peter.hutterer@redhat.com> 0.6.1-1
- xkbcommon 0.6.1
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jan 08 2016 Dan Horák <dan[at]danny.cz> - 0.5.0-3
- always build the x11 subpackage
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Wed Oct 22 2014 Hans de Goede <hdegoede@redhat.com> - 0.5.0-1
- Update to 0.5.0 (#1154574)
* Mon Sep 22 2014 Kalev Lember <kalevlember@gmail.com> - 0.4.3-2
- Require xkeyboard-config (#1145260)
* Wed Aug 20 2014 Kalev Lember <kalevlember@gmail.com> - 0.4.3-1
- Update to 0.4.3
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue May 27 2014 Rex Dieter <rdieter@fedoraproject.org> - 0.4.2-3
- make -x11 support conditional (f21+, #1000497)
- --disable-silent-rules
* Fri May 23 2014 Hans de Goede <hdegoede@redhat.com> - 0.4.2-2
- Bump release to 2 to avoid confusion with non official non scratch 0.4.2-1
* Thu May 22 2014 Rex Dieter <rdieter@fedoraproject.org> - 0.4.2-1
- xkbcommon 0.4.2 (#1000497)
- own %%{_includedir}/xkbcommon/
- -x11: +ldconfig scriptlets
- -devel: don't include xkbcommon-x11.h
- run reautoconf in %%prep (instead of %%build)
- tighten subpkg deps via %%_isa
- .spec cleanup, remove deprecated stuff
- BR: pkgconfig(xcb-xkb) >= 1.10
* Wed Feb 05 2014 Peter Hutterer <peter.hutterer@redhat.com> 0.4.0-1
- xkbcommon 0.4.0
- Add new xkbcommon-x11 and xkbcommon-x11-devel subpackages
* Tue Aug 27 2013 Peter Hutterer <peter.hutterer@redhat.com> 0.3.1-1
- xkbcommon 0.3.1
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Apr 18 2013 Peter Hutterer <peter.hutterer@redhat.com> 0.3.0-1
- xkbcommon 0.3.0
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Tue Oct 23 2012 Adam Jackson <ajax@redhat.com> 0.2.0-1
- xkbcommon 0.2.0
* Mon Sep 17 2012 Thorsten Leemhuis <fedora@leemhuis.info> 0.1.0-8.20120917
- Today's git snapshot
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.0-7.20120306
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Mar 06 2012 Peter Hutterer <peter.hutterer@redhat.com> 0.1.0-6.20120306
- BuildRequire xkeyboard-config-devel to get the right XKB target path (#799717)
* Tue Mar 06 2012 Peter Hutterer <peter.hutterer@redhat.com> 0.1.0-5.20120306
- Today's git snapshot
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.0-4.20111109
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Nov 09 2011 Adam Jackson <ajax@redhat.com> 0.1.0-3
- Today's git snap
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.0-2.20101110
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Sat Nov 06 2010 Dave Airlie <airlied@redhat.com> 0.1.0-1.20101110
- inital import

View File

@ -0,0 +1,16 @@
#!/bin/sh
DIRNAME=pixman-$( date +%Y%m%d )
rm -rf $DIRNAME
git clone git://git.freedesktop.org/git/pixman $DIRNAME
cd $DIRNAME
if [ -z "$1" ]; then
git log | head -1
else
git checkout $1
fi
rm -rf .git
cd ..
tar jcf $DIRNAME.tar.bz2 $DIRNAME
rm -rf $DIRNAME

194
base/rx-pixman/pixman.spec Normal file
View File

@ -0,0 +1,194 @@
%define gitdate 20070827
%define gitrev 8ff7213f39edc1b2b8b60d6b0cc5d5f14ca1928d
%global realname pixman
%global _prefix /opt/rx
Name: rx-pixman
Version: 0.42.2
Release: 1%{?dist}
Summary: Pixel manipulation library
License: MIT
URL: https://gitlab.freedesktop.org/pixman/pixman
#VCS: git:git://git.freedesktop.org/git/pixman
# To make git snapshots:
# ./make-pixman-snapshot.sh %{\?gitrev}
# if no revision specified, makes a new one from HEAD.
Source0: https://xorg.freedesktop.org/archive/individual/lib/%{realname}-%{version}.tar.xz
Source1: make-pixman-snapshot.sh
BuildRequires: gcc
BuildRequires: meson
%description
Pixman is a pixel manipulation library for X and Cairo.
%package devel
Summary: Pixel manipulation library development package
Requires: %{name}%{?isa} = %{version}-%{release}
Requires: pkgconfig
%description devel
Pixel manipulation library for X and Cairo development package.
%prep
%autosetup -p1 -n %{realname}-%{version}
# bump up the test suite timeout because arm
sed -i 's/120/600/' test/meson.build
%build
%meson --auto-features=auto \
%ifarch %{arm}
-Diwmmxt=disabled -Diwmmxt2=false \
%endif
%nil
%meson_build
%install
%meson_install
%check
%meson_test
%ldconfig_post
%ldconfig_postun
%files
%doc COPYING
%{_libdir}/libpixman-1*.so.*
%files devel
%dir %{_includedir}/pixman-1
%{_includedir}/pixman-1/pixman.h
%{_includedir}/pixman-1/pixman-version.h
%{_libdir}/libpixman-1*.so
%{_libdir}/pkgconfig/pixman-1.pc
%changelog
* Tue Feb 21 2023 Petter Abrahamsson <pabraham@redhat.com> - 0.42.2-1
- Update to 0.42.2
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Apr 20 2020 Kalev Lember <klember@redhat.com> - 0.40.0-1
- Update to 0.40.0
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.38.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Sep 09 2019 Kalev Lember <klember@redhat.com> - 0.38.4-1
- Update to 0.38.4
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.38.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Feb 12 2019 Kalev Lember <klember@redhat.com> - 0.38.0-1
- Update to 0.38.0
- Switch to the meson build system
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.36.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Nov 29 2018 Adam Jackson <ajax@redhat.com> - 0.36.0-1
- pixman 0.36.0
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.34.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Jun 29 2018 Adam Jackson <ajax@redhat.com> - 0.34.0-9
- Use ldconfig scriptlet macros
* Fri May 04 2018 Dan Horák <dan[at]danny.cz> - 0.34.0-8
- fix vector loads in VMX (ppc64le) (#1572540)
* Thu Apr 26 2018 Adam Jackson <ajax@redhat.com> - 0.34.0-7
- Enable %%check
- --disable-vmx to fix %%check failures with gcc8
- Remove stray --disable-ssse3
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.34.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.34.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.34.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.34.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.34.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Feb 01 2016 <oded.gabbay@gmail.com> - 0.34.0-1
- Update to 0.34.0 (#1249357)
* Tue Dec 22 2015 Oded Gabbay <oded.gabbay@gmail.com> 0.33.6-1
- pixman 0.33.6
* Fri Oct 23 2015 Oded Gabbay <oded.gabbay@gmail.com> 0.33.4-1
- pixman 0.33.4
* Sun Aug 09 2015 Oded Gabbay <oded.gabbay@gmail.com> 0.33.2-1
- pixman 0.33.2
- Enable VMX fast paths on ppc64le now that they are fixed
* Tue Jun 16 2015 Peter Robinson <pbrobinson@fedoraproject.org> 0.32.6-6
- revert cflag option added in -5 the broke building
* Mon May 11 2015 Adam Jackson <ajax@redhat.com> 0.32.6-5
- Fix devel's requirement on the base package to include %%{?isa}
* Mon Nov 10 2014 Adam Jackson <ajax@redhat.com> 0.32.6-4
- Disable (broken) VMX fast paths on ppc64le for now.
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.32.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Fri Jul 11 2014 Peter Robinson <pbrobinson@fedoraproject.org> 0.32.6-2
- Enable make check but don't (currently) fail the build on failure
- Include COPYING as per packaging guidelines
- Minor spec cleanups
* Sun Jul 06 2014 Soren Sandmann <soren.sandmann@gmail.com> 0.32.6-1
- pixman 0.32.6
- drop SSSE3 patch
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.32.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu Nov 14 2013 Soren Sandmann <ssp@redhat.com> 0.32.0-2
- Add patch to fix SSSE3 detection
* Sun Nov 10 2013 Soren Sandmann <ssp@redhat.com> 0.32.0-1
- pixman 0.32.0
* Sat Nov 2 2013 Soren Sandmann <ssp@redhat.com> 0.31.2-1
- pixman 0.31.2
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.30.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Jul 04 2013 Karsten Hopp <karsten@redhat.com> 0.30.0-2
- bump release and rebuild to fix dependencies on PPC
* Wed May 8 2013 Soren Sandmann <ssp@redhat.com> 0.30.0-1
- pixman 0.30.0

Binary file not shown.

View File

@ -0,0 +1,438 @@
%global realname wayland
%global _sys_libdir %_libdir
%global _prefix /opt/rx
Name: rx-wayland
Version: 1.22.0
Release: 1%{?dist}
Summary: Wayland Compositor Infrastructure
License: MIT
URL: http://wayland.freedesktop.org/
Source0: https://gitlab.freedesktop.org/%{realname}/%{realname}/-/releases/%{version}/downloads/%{realname}-%{version}.tar.xz
Source1: https://gitlab.freedesktop.org/%{realname}/%{realname}/-/releases/%{version}/downloads/%{realname}-%{version}.tar.xz.sig
Source2: emersion-gpg-key.asc
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: docbook-style-xsl
BuildRequires: doxygen
BuildRequires: expat-devel
BuildRequires: graphviz
BuildRequires: libxml2-devel
BuildRequires: libxslt
BuildRequires: meson
BuildRequires: pkgconfig(libffi)
BuildRequires: xmlto
# For origin certification
BuildRequires: gnupg2
%description
Wayland is a protocol for a compositor to talk to its clients as well as a C
library implementation of that protocol. The compositor can be a standalone
display server running on Linux kernel modesetting and evdev input devices,
an X application, or a wayland client itself. The clients can be traditional
applications, X servers (rootless or fullscreen) or other display servers.
%package devel
Summary: Development files for %{name}
Requires: rx-libwayland-client%{?_isa} = %{version}-%{release}
Requires: rx-libwayland-cursor%{?_isa} = %{version}-%{release}
Requires: rx-libwayland-egl%{?_isa} = %{version}-%{release}
Requires: rx-libwayland-server%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%package doc
Summary: Wayland development documentation
BuildArch: noarch
%description doc
Wayland development documentation
%package -n rx-libwayland-client
Summary: Wayland client library
%description -n rx-libwayland-client
Wayland client library
%package -n rx-libwayland-cursor
Summary: Wayland cursor library
Requires: rx-libwayland-client = %{version}-%{release}
%description -n rx-libwayland-cursor
Wayland cursor library
%package -n rx-libwayland-egl
Summary: Wayland egl library
%description -n rx-libwayland-egl
Wayland egl library
%package -n rx-libwayland-server
Summary: Wayland server library
%description -n rx-libwayland-server
Wayland server library
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -p1 -n %{realname}-%{version}
%build
%meson
%meson_build
%install
%meson_install
%check
%meson_test
%files devel
%{_bindir}/wayland-scanner
%{_includedir}/wayland-*.h
%{_libdir}/pkgconfig/wayland-*.pc
%{_libdir}/libwayland-*.so
%{_datadir}/aclocal/wayland-scanner.m4
%dir %{_datadir}/wayland
%{_datadir}/wayland/wayland-scanner.mk
%{_datadir}/wayland/wayland.xml
%{_datadir}/wayland/wayland.dtd
%{_mandir}/man3/*.3*
%files doc
%doc README.md
%{_datadir}/doc/wayland/
%files -n rx-libwayland-client
%license COPYING
%{_libdir}/libwayland-client.so.0*
%files -n rx-libwayland-cursor
%license COPYING
%{_libdir}/libwayland-cursor.so.0*
%files -n rx-libwayland-egl
%license COPYING
%{_libdir}/libwayland-egl.so.1*
%files -n rx-libwayland-server
%license COPYING
%{_libdir}/libwayland-server.so.0*
%changelog
* Tue Apr 04 2023 Kalev Lember <klember@redhat.com> - 1.22.0-1
- Update to 1.22.0
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.21.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Jul 26 2022 Mike Rochefort <mroche@redhat.com> - 1.21.0-1
- Update to 1.21.0
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.20.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Mar 21 2022 Olivier Fourdan <ofourdan@redhat.com> - 1.20.0-4
- Close file descriptors not needed
rhbz#2062030
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.20.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Jan 08 2022 Miro Hrončok <mhroncok@redhat.com> - 1.20.0-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34
* Thu Dec 16 2021 Kalev Lember <klember@redhat.com> - 1.20.0-1
- Update to 1.20.0
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.19.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jan 28 2021 Kalev Lember <klember@redhat.com> - 1.19.0-1
- Update to 1.19.0
- Switch to meson build system
- Drop old provides
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Feb 12 2020 Kalev Lember <klember@redhat.com> - 1.18.0-1
- Update to 1.18.0
- Drop no longer needed obsoletes/provides
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Mar 21 2019 Kalev Lember <klember@redhat.com> - 1.17.0-1
- Update to 1.17.0
* Thu Mar 07 2019 Kalev Lember <klember@redhat.com> - 1.16.92-1
- Update to 1.16.92
* Thu Feb 28 2019 Kalev Lember <klember@redhat.com> - 1.16.91-1
- Update to 1.16.91
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Sep 11 2018 Kalev Lember <klember@redhat.com> - 1.16.0-1
- Update to 1.16.0
* Mon Aug 13 2018 Kalev Lember <klember@redhat.com> - 1.15.93-1
- Update to 1.15.93
* Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 1.15.92-2
- Rebuild with fixed binutils
* Sun Jul 29 2018 Kalev Lember <klember@redhat.com> - 1.15.92-1
- Update to 1.15.92
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Apr 09 2018 Kalev Lember <klember@redhat.com> - 1.15.0-1
- Update to 1.15.0
* Wed Apr 04 2018 Kalev Lember <klember@redhat.com> - 1.14.93-2
- Make mesa-libwayland-egl obsoleting actually work
* Tue Apr 03 2018 Kalev Lember <klember@redhat.com> - 1.14.93-1
- Update to 1.14.93
* Tue Mar 20 2018 Kalev Lember <klember@redhat.com> - 1.14.92-1
- Update to 1.14.92
- Remove F22 upgrade path obsoletes
* Sat Mar 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.14.91-2
- Improve Obsoletes
* Tue Feb 27 2018 Kalev Lember <klember@redhat.com> - 1.14.91-1
- Update to 1.14.91
- Add new libwayland-egl subpackage and obsolete mesa-libwayland-egl
- Remove ldconfig scriptlets
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Dec 12 2017 Kalev Lember <klember@redhat.com> - 1.14.0-2
- cursor: Fix heap overflows when parsing malicious files (#1522638)
* Wed Aug 09 2017 Kalev Lember <klember@redhat.com> - 1.14.0-1
- Update to 1.14.0
* Wed Aug 02 2017 Kalev Lember <klember@redhat.com> - 1.13.93-1
- Update to 1.13.93
* Sun Jul 30 2017 Florian Weimer <fweimer@redhat.com> - 1.13.92-2
- Rebuild with binutils fix for ppc64le (#1475636)
* Wed Jul 26 2017 Kalev Lember <klember@redhat.com> - 1.13.92-1
- Update to 1.13.92
* Wed Jul 19 2017 Kalev Lember <klember@redhat.com> - 1.13.91-1
- Update to 1.13.91
* Thu Jun 1 2017 Owen Taylor otaylor@redhat.com> - 1.13.0-2
- Add a patch fixing a build error with newer versions of graphviz
* Wed Feb 22 2017 Kalev Lember <klember@redhat.com> - 1.13.0-1
- Update to 1.13.0
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.91-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Jan 25 2017 Kalev Lember <klember@redhat.com> - 1.12.91-1
- Update to 1.12.91
* Wed Sep 21 2016 Kalev Lember <klember@redhat.com> - 1.12.0-1
- Update to 1.12.0
* Wed Sep 14 2016 Kalev Lember <klember@redhat.com> - 1.11.94-1
- Update to 1.11.94
* Thu Sep 08 2016 Kalev Lember <klember@redhat.com> - 1.11.93-1
- Update to 1.11.93
* Wed Aug 31 2016 Kalev Lember <klember@redhat.com> - 1.11.92-1
- Update to 1.11.92
* Wed Aug 17 2016 Kalev Lember <klember@redhat.com> - 1.11.91-1
- Update to 1.11.91
- Simplify -devel subpackage packaging
- Include license files in packaging
* Wed Jun 01 2016 Kalev Lember <klember@redhat.com> - 1.11.0-1
- Update to 1.11.0
* Wed May 25 2016 Kalev Lember <klember@redhat.com> - 1.10.93-1
- Update to 1.10.93
* Wed May 18 2016 Kalev Lember <klember@redhat.com> - 1.10.92-1
- Update to 1.10.92
* Sun May 08 2016 Kalev Lember <klember@redhat.com> - 1.10.91-1
- Update to 1.10.91
* Thu Feb 18 2016 Kalev Lember <klember@redhat.com> - 1.10.0-1
- Update to 1.10.0
* Thu Feb 04 2016 Kalev Lember <klember@redhat.com> - 1.9.92-1
- Update to 1.9.92
* Wed Jan 20 2016 Kalev Lember <klember@redhat.com> - 1.9.91-1
- Update to 1.9.91
* Tue Sep 22 2015 Kalev Lember <klember@redhat.com> - 1.9.0-1
- Update to 1.9.0
- Use make_install macro
* Wed Sep 16 2015 Kalev Lember <klember@redhat.com> - 1.8.93-1
- Update to 1.8.93
* Wed Sep 02 2015 Kalev Lember <klember@redhat.com> - 1.8.92-1
- Update to 1.8.92
* Fri Aug 21 2015 Kalev Lember <klember@redhat.com> - 1.8.91-2
- Split out wayland-doc subpackage for documentation
* Fri Aug 21 2015 Kalev Lember <klember@redhat.com> - 1.8.91-1
- Update to 1.8.91
* Mon Jul 20 2015 Adam Jackson <ajax@redhat.com> 1.8.0-1
- wayland 1.8.0
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.92-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Tue May 26 2015 Adam Jackson <ajax@redhat.com> 1.7.92-1
- wayland 1.7.92
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 1.7.0-2
- Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
* Tue Feb 17 2015 Richard Hughes <rhughes@redhat.com> - 1.7.0-1
- Wayland 1.7.0
* Fri Sep 19 2014 Kalev Lember <kalevlember@gmail.com> - 1.6.0-1
- Update to 1.6.0
- Remove lib64 rpaths
* Fri Aug 22 2014 Kevin Fenzi <kevin@scrye.com> 1.5.91-1
- Update to 1.5.90
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Jul 02 2014 Adam Jackson <ajax@redhat.com> 1.5.0-4
- Update protocol: new surface error enums
* Mon Jun 30 2014 Adam Jackson <ajax@redhat.com> 1.5.0-3
- Remove blocking flush patch as it actually introduces deadlocks now
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Wed May 21 2014 Richard Hughes <rhughes@redhat.com> - 1.5.0-1
- Wayland 1.5.0
* Tue May 13 2014 Richard Hughes <rhughes@redhat.com> - 1.4.93-1
- Wayland 1.4.93
* Fri Jan 24 2014 Richard Hughes <rhughes@redhat.com> - 1.4.0-1
- Wayland 1.4.0
* Mon Jan 20 2014 Richard Hughes <rhughes@redhat.com> - 1.3.93-1
- Wayland 1.3.93
* Sat Dec 21 2013 Ville Skyttä <ville.skytta@iki.fi> - 1.3.91-2
- Call ldconfig in libwayland-cursor %%post* scripts.
- Run test suite during build.
- Compress snapshot tarballs with xz.
* Tue Dec 17 2013 Richard Hughes <rhughes@redhat.com> - 1.3.91-1
- Wayland 1.3.91
* Mon Nov 25 2013 Lubomir Rintel <lkundrak@v3.sk> - 1.3.0-1
- Wayland 1.3.0
* Mon Oct 07 2013 Adam Jackson <ajax@redhat.com> 1.2.0-3
- Don't use MSG_DONTWAIT in wl_connection_flush.
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Jul 15 2013 Richard Hughes <rhughes@redhat.com> - 1.2.0-1
- wayland 1.2.0
* Wed May 15 2013 Richard Hughes <rhughes@redhat.com> - 1.1.90-0.1.20130515
- Update to a git snapshot based on what will become 1.1.90
* Tue Apr 16 2013 Richard Hughes <rhughes@redhat.com> - 1.1.0-1
- wayland 1.1.0
* Wed Mar 27 2013 Richard Hughes <rhughes@redhat.com> - 1.0.6-1
- wayland 1.0.6
* Thu Feb 21 2013 Adam Jackson <ajax@redhat.com> 1.0.5-1
- wayland 1.0.5
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Jan 02 2013 Adam Jackson <ajax@redhat.com> 1.0.3-1
- wayland 1.0.3
* Tue Oct 23 2012 Adam Jackson <ajax@redhat.com> 1.0.0-1
- wayland 1.0
* Thu Oct 18 2012 Adam Jackson <ajax@redhat.com> 0.99.0-1
- wayland 0.99.0
* Tue Sep 04 2012 Adam Jackson <ajax@redhat.com> 0.95.0-1
- wayland 0.95.0 (#843738)
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.89.0-2.20120424
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Apr 24 2012 Richard Hughes <rhughes@redhat.com> - 0.89.0-1
- Update to a git snapshot based on 0.89.0
* Sat Feb 18 2012 Thorsten Leemhuis <fedora@leemhuis.info> - 0.85.0-1
- update to 0.85.0
- adjust license, as upstream changed it to MIT
- update make-git-snapshot.sh to current locations and scheme
- drop common package, not needed anymore
- compositor is now in a separate package, hence reduce BuildRequires to what
is actually needed (a lot less) and adjust summary
- make usage of a git checkout in spec file optional
- a %%{?_isa} to requires where it makes sense
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-0.6.20101221
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Dec 06 2011 Adam Jackson <ajax@redhat.com> - 0.1-0.5.20101221
- Rebuild for new libpng
* Wed Jun 15 2011 Lubomir Rintel <lkundrak@v3.sk> - 0.1-0.4.20101221
- Install real compositor binary instead of a libtool wrapper
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-0.3.20101221
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Tue Dec 21 2010 Adam Jackson <ajax@redhat.com> 0.1-0.2.20101221
- Today's git snap
* Tue Nov 23 2010 Adam Jackson <ajax@redhat.com> 0.1-0.2.20101123
- Today's git snap
- Fix udev rule install (#653353)
* Mon Nov 15 2010 Adam Jackson <ajax@redhat.com> 0.1-0.1.20101111
- Initial packaging

161
base/seatd/seatd.spec Normal file
View File

@ -0,0 +1,161 @@
%global libseat_sover 1
%global _hardened_build 1
%bcond_without server
Name: seatd
Version: 0.7.0
Release: 4%{?dist}
Summary: Minimal seat management daemon
License: MIT
URL: https://sr.ht/~kennylevinsen/seatd/
Source0: https://git.sr.ht/~kennylevinsen/seatd/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: seatd.sysusers
BuildRequires: gcc
BuildRequires: meson >= 0.60.0
BuildRequires: pkgconfig(libsystemd)
%if %{with server}
BuildRequires: pkgconfig(scdoc) >= 1.9.7
BuildRequires: systemd-rpm-macros
%endif
%description
A seat management daemon, that does everything it needs to do.
Nothing more, nothing less. Depends only on libc.
%package -n libseat
Summary: Universal seat management library
%description -n libseat
A seat management library allowing applications to use whatever seat
management is available.
Supports:
* seatd
* (e)logind
* embedded seatd for standalone operation
Each backend can be compile-time included and is runtime auto-detected or
manually selected with the LIBSEAT_BACKEND environment variable.
Which backend is in use is transparent to the application, providing a
simple common interface.
%package -n libseat-devel
Summary: Development files for libseat
Requires: libseat%{?_isa} = %{version}-%{release}
%description -n libseat-devel
The libseat-devel package contains libraries and header files for
developing applications that use libseat.
%prep
%autosetup
%build
%meson \
-Dlibseat-logind=systemd \
%if %{with server}
-Dserver="enabled" \
%else
-Dserver="disabled" \
%endif
%meson_build
%install
%meson_install
%if %{with server}
install -D -m 0644 -pv contrib/systemd/%{name}.service \
%{buildroot}%{_unitdir}/%{name}.service
install -D -m 0644 -pv %{SOURCE1} \
%{buildroot}%{_sysusersdir}/%{name}.conf
%endif
%check
%meson_test
%if %{with server}
%pre
%sysusers_create_compat %{SOURCE1}
%post
%systemd_post %{name}.service
%preun
%systemd_preun %{name}.service
%postun
%systemd_postun %{name}.service
%files
%license LICENSE
%doc README.md
%{_bindir}/%{name}
# TODO: seatd-launch should run with elevated privileges, i.e. SUID or CAP_SETUID
%{_bindir}/%{name}-launch
%{_mandir}/man1/%{name}.1*
%{_mandir}/man1/%{name}-launch.1*
%{_sysusersdir}/%{name}.conf
%{_unitdir}/%{name}.service
%endif
%files -n libseat
%license LICENSE
%doc README.md
%{_libdir}/libseat.so.%{libseat_sover}
%files -n libseat-devel
%{_includedir}/libseat.h
%{_libdir}/libseat.so
%{_libdir}/pkgconfig/libseat.pc
%changelog
* Tue May 30 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.7.0-4
- Build seatd server
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon May 23 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.7.0-1
- Update to 0.7.0 (#2089517)
* Mon Feb 21 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.6.4-1
- Update to 0.6.4 (#2056723)
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Oct 19 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.6.3-1
- Update to 0.6.3 (#2015692)
* Fri Sep 17 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.6.2-1
- Update to 0.6.2
- Server: create `seat` group for controlling seatd access
* Sat Sep 11 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.6.0-1
- Update to 0.6.0
- Enable libseat-seatd backend in the default build
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Apr 14 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.5.0-1
- Initial import (#1949358)

View File

@ -0,0 +1,2 @@
#Type Name ID GECOS Home directory Shell
g seat -

61
base/sway/README.md Normal file
View File

@ -0,0 +1,61 @@
Fedora package documentation
===
Configuration profiles
---
The Sway package in Fedora defers most of the dependencies and the config
file ownership to the `sway-config-*` subpackages. This allows us to ship
different configuration profiles with different sets of runtime dependencies.
This also allows anyone to create a package with their preferred system-wide
configuration defaults and use it instead of the default Fedora profiles.
The profiles currently defined in the `sway` source package are the following:
- **sway-config-upstream** - the upstream configuration. The only permitted
modifications to the config file are adjustments for dependencies currently
unavailable in Fedora.
- **sway-config-minimal** - minimal configuration with any optional
dependencies omitted. Suitable for headless servers, containers and
buildroot usage.
The config packages are mutually exclusive, and one of these must always be
installed. The one selected by default is **sway-config-upstream**.
At any moment, you can switch the installed configuration with one of the
following commands:
```
dnf swap sway-config sway-config-upstream
dnf swap sway-config sway-config-minimal
# for a third-party configuration profile:
dnf swap sway-config sway-config-custom
```
The command will replace the default `/etc/sway/config` file and apply the new
set of dependencies. Packages unused by the new profile will be autoremoved.
Custom profile example
---
An example spec header for a custom configuration profile:
```
Name: sway-config-custom
Version: 1.0
Release: 1%{?dist}
Summary: Custom configuration for Sway
BuildArch: noarch
Requires: sway >= 1.7
Provides: sway-config = %{version}-%{release}
Conflicts: sway-config
# common dependencies
# ...
# profile dependencies
Requires: waybar
%files
%config(noreplace) %{_sysconfdir}/sway/config
# Session file also belongs to the configuration subpackage;
# Otherwise we won't be able to add a wrapper script or set additional properties
%{_datadir}/wayland-sessions/sway.desktop
```

194
base/sway/config.minimal Normal file
View File

@ -0,0 +1,194 @@
# Minimal config for sway
#
# Some executables are still referenced in the config, but those are not
# critical or important enough to abort the startup.
#
# Ex. usage:
# ```
# dnf install sway sway-config-minimal
# # alternatively, if any config package is already installed
# dnf swap sway-config sway-config-minimal
#
# WLR_BACKENDS=headless WLR_RENDERER=pixman /usr/bin/sway
# ```
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
### Disable some optional dependencies
#
# Do not require xwayland to start
xwayland disable
# Do not require swaybg either
swaybg_command -
# Swaynag is already installed with sway package
# swaynag_command -
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term foot
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
set $menu dmenu_path | wmenu | xargs swaymsg exec --
### Input configuration
#
# Example configuration:
#
# input "2:14:SynPS/2_Synaptics_TouchPad" {
# dwt enabled
# tap enabled
# natural_scroll enabled
# middle_emulation enabled
# }
#
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term
# Kill focused window
bindsym $mod+Shift+q kill
# Start your launcher
bindsym $mod+d exec $menu
# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# Reload the configuration file
bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# Ditto, with arrow keys
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
#
# Workspaces:
#
# Switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.
# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
#
# Resizing containers:
#
mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,7 @@
[preferred]
# Use xdg-desktop-portal-gtk for every portal interface...
default=gtk
# ... except for the ScreenCast, Screenshot and Secret
org.freedesktop.impl.portal.ScreenCast=wlr
org.freedesktop.impl.portal.Screenshot=wlr
org.freedesktop.impl.portal.Secret=gnome-keyring

508
base/sway/sway.spec Normal file
View File

@ -0,0 +1,508 @@
%global tag 1.9
%if 0%{?rhel} <= 9
%global _rxlibdir /opt/rx/%{_lib}
%endif
Name: sway
Version: 1.9
Release: 1%{?dist}
Summary: i3-compatible window manager for Wayland
License: MIT
URL: https://github.com/swaywm/sway
Source0: %{url}/releases/download/%{tag}/%{name}-%{tag}.tar.gz
Source1: %{url}/releases/download/%{tag}/%{name}-%{tag}.tar.gz.sig
# 0FDE7BE0E88F5E48: emersion <contact@emersion.fr>
Source2: https://emersion.fr/.well-known/openpgpkey/hu/dj3498u4hyyarh35rkjfnghbjxug6b19#/gpgkey-0FDE7BE0E88F5E48.gpg
# Minimal configuration file for headless or buildroot use
Source100: config.minimal
Source101: sway-portals.conf
Source102: README.md
# Upstream patches
# Fedora patches
# Conditional patches
BuildRequires: gcc-c++
BuildRequires: gnupg2
BuildRequires: meson >= 0.60.0
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(json-c) >= 0.13
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libevdev)
BuildRequires: pkgconfig(libinput) >= 1.21.0
BuildRequires: pkgconfig(libpcre2-8)
BuildRequires: pkgconfig(libsystemd) >= 239
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(pangocairo)
BuildRequires: pkgconfig(pixman-1) >= 0.42.0
BuildRequires: pkgconfig(scdoc)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-server) >= 1.22.0
BuildRequires: pkgconfig(wayland-protocols) >= 1.24
BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xkbcommon) >= 1.5.0
# Require any of the available configuration packages;
# Prefer the -upstream one if none are directly specified in the package manager transaction
Requires: %{name}-config
Suggests: %{name}-config-upstream
# Raven
%if 0%{?rhel} <= 9
Requires: rx-libxkbcommon >= 1.5.0
Requires: rx-libinput >= 1.21.0
Requires: rx-pixman >= 0.42.0
Requires: rx-libwayland-client >= 1.22
%endif
%description
Sway is a tiling window manager supporting Wayland compositor protocol and
i3-compatible configuration.
# Configuration presets:
#
%package config-upstream
Summary: Upstream configuration for Sway
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Provides: %{name}-config = %{version}-%{release}
Conflicts: %{name}-config
# Require the wallpaper referenced in the config.
# Weak dependency here causes a swaynag warning during the configuration load
Requires: sway-wallpapers
# Lack of graphical drivers may hurt the common use case
Requires: mesa-dri-drivers
# Logind needs polkit to create a graphical session
Requires: polkit
# swaybg is used in the default config
Requires: swaybg
# dmenu (as well as rxvt any many others) requires XWayland on Sway
Requires: xorg-x11-server-Xwayland
# Sway binds the terminal shortcut to one specific terminal. In our case foot
Recommends: foot
# grim is the recommended way to take screenshots on sway 1.0+
Recommends: grim
# wmenu is the default launcher in sway, but it still requires dmenu_path to work
Recommends: dmenu
Recommends: wmenu
# In addition, xargs is recommended for use in such a launcher arrangement
Recommends: findutils
# Install configs and scripts for better integration with systemd user session
Recommends: sway-systemd
# Both utilities are suggested in the default configuration
Recommends: swayidle
Recommends: swaylock
# Minimal installation doesn't include Qt Wayland backend
Recommends: (qt5-qtwayland if qt5-qtbase-gui)
Recommends: (qt6-qtwayland if qt6-qtbase-gui)
%description config-upstream
Upstream configuration for Sway.
Includes all important dependencies for a typical desktop system
with minimal or no divergence from the upstream.
%package config-minimal
RemovePathPostfixes: .minimal
Summary: Minimal configuration for Sway
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Provides: %{name}-config = %{version}-%{release}
Conflicts: %{name}-config
# List of dependencies for headless or buildroot use
%description config-minimal
Minimal configuration for Sway without any extra dependencies.
Suitable for headless or buildroot use.
# The artwork is heavy and we don't use it with our default config
%package wallpapers
Summary: Wallpapers for Sway
BuildArch: noarch
License: CC0-1.0
%description wallpapers
Wallpaper collection provided with Sway
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -N -n %{name}-%{tag}
# apply unconditional patches
%autopatch -p1 -M99
# apply conditional patches
%build
%if 0%{?rhel} <= 9
export LDFLAGS="-L%{_rxlibdir} -Wl,-rpath=%{_rxlibdir} -lharfbuzz ${LDFLAGS}"
export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
%endif
%meson \
-Dsd-bus-provider=libsystemd \
-Dwerror=false
%meson_build
%install
%meson_install
# Install minimal configuration file
install -D -m644 -pv %{SOURCE100} %{buildroot}%{_sysconfdir}/sway/config.minimal
# Install portals.conf for xdg-desktop-portal
install -D -m644 -pv %{SOURCE101} %{buildroot}%{_datadir}/xdg-desktop-portal/sway-portals.conf
# install the documentation
install -D -m644 -pv README.md %{buildroot}%{_pkgdocdir}/README.md
install -D -m644 -pv %{SOURCE102} %{buildroot}%{_pkgdocdir}/README.Fedora
# Create directory for extra config snippets
install -d -m755 -pv %{buildroot}%{_sysconfdir}/sway/config.d
%files
%license LICENSE
%doc %{_pkgdocdir}
%dir %{_sysconfdir}/sway
%dir %{_sysconfdir}/sway/config.d
%{_mandir}/man1/sway*
%{_mandir}/man5/*
%{_mandir}/man7/*
%caps(cap_sys_nice=ep) %{_bindir}/sway
%{_bindir}/swaybar
%{_bindir}/swaymsg
%{_bindir}/swaynag
%dir %{_datadir}/xdg-desktop-portal
%{_datadir}/xdg-desktop-portal/sway-portals.conf
%{bash_completions_dir}/sway*
%{fish_completions_dir}/sway*.fish
%{zsh_completions_dir}/_sway*
%files config-upstream
%config(noreplace) %{_sysconfdir}/sway/config
%{_datadir}/wayland-sessions/sway.desktop
%files config-minimal
%config(noreplace) %{_sysconfdir}/sway/config.minimal
%files wallpapers
%license assets/LICENSE
%{_datadir}/backgrounds/sway
%changelog
* Sat Feb 24 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.9-1
- Update to 1.9
* Sun Feb 04 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.9~rc2-1
- Update to 1.9-rc2 (rhbz#2260566)
* Sun Jan 14 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.8.1-4
- Use gnome-keyring for Secret portal implementation
* Thu Sep 14 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.8.1-3
- Add sway-portals.conf for xdg-desktop-portal >= 1.17
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Feb 12 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.8.1-1
- Update to 1.8.1
- Set CAP_SYS_NICE on f38+
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sun Dec 25 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.8-1
- Update to 1.8
* Fri Dec 02 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.8~rc1-1
- Update to 1.8-rc1
- Create two sway-config- packages with different sets of dependencies.
- Move sway.desktop to sway-config-upstream
* Mon Nov 14 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.7-4
- Add upstream patch to fix crash in xdg-activation
- Convert license to SPDX
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jun 01 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.7-2
- Drop patches for wayland 1.19/meson 0.59 compatibility
- Split package with the default wallpapers
- Add upstream patch to fix crash in layer-shell code
* Sat Jan 22 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.7-1
- Update to 1.7
- Add scripts from contrib to the package
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.7~rc3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sun Jan 16 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.7~rc3-1
- Update to 1.7-rc3
- Change default terminal dependency to foot
- Disable `werror` to work around a couple of new warnings in GCC 12
* Mon Jan 10 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.6.1-4
- Add upstream patch to increase RLIMIT_NOFILE
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sat Jul 10 2021 Björn Esser <besser82@fedoraproject.org> - 1.6.1-2
- Rebuild for versioned symbols in json-c
* Thu Jun 24 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.6.1-1
- Update to 1.6.1
- Add Recommends: swayidle, swaylock
- Add upstream patch to fix pixman renderer init.
* Wed Apr 07 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.6-1
- Update to 1.6 (#1939820)
* Sat Feb 20 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.5.1-3
- Recommend wayland backend for Qt
- Add subpackage for contrib/grimshot screenshot tool
- Add 'Recommend: sway-systemd'
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Nov 10 2020 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.5.1-1
- Update to 1.5.1
* Thu Oct 22 2020 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.5-3
- Remove default terminal patching; alacritty is avaliable in Fedora (#1830595)
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 15 2020 Aleksei Bavshin <alebastr89@gmail.com> - 1.5-1
- Update to 1.5
- Fix urxvt256c-ml dependency for f32+
- Add source verification
- Cleanup build dependencies
* Sat May 30 2020 Jan Pokorný <jpokorny@fedoraproject.org> 1.4-7
- Enhance greenfield readiness with optional pull of default driver set & xargs
* Thu Apr 30 2020 Aleksei Bavshin <alebastr89@gmail.com> - 1.4-6
- Add patch for layer-shell popups layer (#1829130)
* Tue Apr 21 2020 Björn Esser <besser82@fedoraproject.org> - 1.4-5
- Rebuild (json-c)
* Wed Feb 26 2020 Aleksei Bavshin <alebastr89@gmail.com> - 1.4-4
- Fix default terminal and background
* Sun Feb 09 2020 Till Hofmann <thofmann@fedoraproject.org> - 1.4-3
- Add patch to fix strcmp on nullptr (upstream PR #4991)
* Fri Feb 07 2020 Jan Staněk <jstanek@redhat.com> - 1.4-2
- Apply upstream patch to allow compiling with -fno-common flag
* Thu Feb 06 2020 Joe Walker <grumpey0@gmail.com> 1.4-1
- Update to 1.4
- Added Build requires to pull in mesa-libEGL-devel manually
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jan 25 2020 Benjamin Lowry <ben@ben.gmbh> 1.2-3
- Uncomment 'Recommends: grim'
* Wed Sep 11 2019 Ivan Mironov <mironov.ivan@gmail.com> - 1.2-2
- Add patch to fix easily reproducible crash
* Thu Aug 29 2019 Jeff Peeler <jpeeler@redhat.com> - 1.2-1
- Update to 1.2
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jun 23 2019 Till Hofmann <thofmann@fedoraproject.org> - 1.1.1-1
- Update to 1.1.1
- Add 'Requires: swaybg' (swaybg has been split from sway)
- Remove upstreamed patch
* Sun Mar 24 2019 Till Hofmann <thofmann@fedoraproject.org> - 1.0-3
- Replace 'Requires: dmenu' by 'Recommends: dmenu'
- Re-enable manpages
- Remove cap_sys_ptrace, cap_sys_tty_config from sway binary
- Replace 'Requires: libinput' by 'BuildRequires: pkgconfig(libinput)'
- Replace 'BuildRequires: wlroots-devel' by 'BuildRequires: pkgconfig(wlroots)'
* Thu Mar 21 2019 Till Hofmann <thofmann@fedoraproject.org> - 1.0-2
- Remove obsolete (and failing) call to %%make_install
- Fix directories without owner
* Mon Mar 18 2019 Jeff Peeler <jpeeler@redhat.com> - 1.0-1
- Update to 1.0 (without man pages)
* Thu Feb 07 2019 Björn Esser <besser82@fedoraproject.org> - 0.15.2-3
- Add patch to disable -Werror, fixes FTBFS
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.15.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jul 26 2018 Till Hofmann <thofmann@fedoraproject.org> - 0.15.2-1
- Update to stable release 0.15.2
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.15.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Mar 06 2018 Björn Esser <besser82@fedoraproject.org> - 0.15.1-3
- Rebuilt for libjson-c.so.4 (json-c v0.13.1)
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.15.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Dec 30 2017 Till Hofmann <thofmann@fedoraproject.org> - 0.15.1-1
- Update to 0.15.1
- Remove upstreamed patch (upstream PR #1517)
* Thu Dec 14 2017 Björn Esser <besser82@fedoraproject.org> - 0.15.0-4
- Add upstream patch fixing issues with json-c
* Sun Dec 10 2017 Björn Esser <besser82@fedoraproject.org> - 0.15.0-3
- Rebuilt for libjson-c.so.3
* Sat Nov 11 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 0.15.0-2
- Bump for wlc rebuild
* Fri Nov 10 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 0.15.0-1
- update to stable 0.15.0
* Tue Oct 10 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 0.15.0-0.3.rc1
- Rebuild for fix for #1388
- fix versioning according to guidelines
* Mon Oct 09 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 0.15.rc1-1
- Update to 0.15.0-rc1
- remove patch
- fix sources link
* Thu Oct 05 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 0.14.0-3
- Fix freezing
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.14.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Aug 02 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 0.14.0-1
- Update to 0.14.0
- add libinput as dependency
- add dbus as build dependency for tray icon support
- remove -Wno-error flag
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.13.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sun Jun 18 2017 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.13.0-1
- Update to 0.13.0
* Mon Apr 03 2017 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.12.2-1
- Update to 0.12.2
* Wed Mar 15 2017 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.12.1-1
- Update to 0.12.1
* Wed Mar 08 2017 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.12-1
- Update to 0.12
* Tue Feb 28 2017 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.12-0.rc2
- Update to 0.12-rc2
* Sat Feb 25 2017 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.12-0.rc1
- Update to 0.12-rc1
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-7.gitb3c0aa3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Jan 24 2017 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.11-6.gitb3c0aa3
- Update to HEAD
* Thu Jan 12 2017 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.11-5
- Fix bug #1008 with backported patch
* Thu Dec 29 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.11-4
- Set ptrace capability for sway
* Wed Dec 28 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.11-3
- Fix LD_LIBRARY_PATH
* Wed Dec 28 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.11-2
- Fix bug #971 with backported patch
* Tue Dec 27 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.11-1
- Update to 0.11
* Sun Dec 18 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.11-0.rc3
- Update to 0.11-rc3
* Sat Dec 17 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.11-0.rc2
- Update to 0.11-rc2
* Sat Nov 26 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.10-2
- Require Xwayland instead of just suggesting it, since at the moment is needed by dmenu (and other)
* Wed Oct 26 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.10-1
- Update to 0.10
* Thu Oct 13 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.10-0.1.rc3
- Update to 0.10-rc3
* Tue Oct 04 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.10-0.1.rc2
- Update to 0.10-rc2
* Wed Sep 28 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.10-0.1.rc1
- Update to 0.10-rc1
* Tue Sep 06 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.9-4
- Do not Require the urxvt shell
- Rebuild due to a wlc rebuild
- Add Recommends ImageMagick
* Wed Aug 10 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.9-3
- Remove some compilation flags that were not needed
* Sun Aug 07 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.9-2
- Add dmenu dependency
- Add rxvt-unicode-256color-ml dependency
- Use urxvt256c-ml instead of urxvt by default
- Improve default wallpaper
- Add suggests xorg-x11-server-Xwayland
* Wed Aug 03 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.9-1
- Upgrade to 0.9
* Thu Jul 07 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.8-2
- Move ffmpeg and ImageMagick from Required to Suggested
* Thu Jul 07 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.8-1
- Update to version 0.8
- Re-enable ZSH bindings
- Remove sway wallpapers
* Sun May 29 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.7-1
- Update to version 0.7
- Drop ZSH bindings that are no longer shipped with Sway
* Thu May 05 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.6-1
- Update to current upstream version
* Wed Apr 06 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0.3-1
- Update to current upstream version
* Sun Feb 14 2016 Fabio Alessandro Locati <fale@fedoraproject.org> - 0-1.20160214git016a774
- Initial packaging

View File

@ -0,0 +1,44 @@
From 05cd68c9eee28c2223cc192b9744cff493f940cc Mon Sep 17 00:00:00 2001
From: Aleksei Bavshin <alebastr89@gmail.com>
Date: Sat, 25 Jun 2022 21:22:08 -0700
Subject: [PATCH] Revert "layer-shell: error on 0 dimension without anchors"
This reverts commit 8dec751a6d84335fb04288b8efab6dd5c90288d3.
---
types/wlr_layer_shell_v1.c | 20 --------------------
1 file changed, 20 deletions(-)
diff --git a/types/wlr_layer_shell_v1.c b/types/wlr_layer_shell_v1.c
index 37256db6..77dbad94 100644
--- a/types/wlr_layer_shell_v1.c
+++ b/types/wlr_layer_shell_v1.c
@@ -335,26 +335,6 @@ static void layer_surface_role_commit(struct wlr_surface *wlr_surface) {
return;
}
- const uint32_t horiz = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
- ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT;
- if (surface->pending.desired_width == 0 &&
- (surface->pending.anchor & horiz) != horiz) {
- wl_resource_post_error(surface->resource,
- ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE,
- "width 0 requested without setting left and right anchors");
- return;
- }
-
- const uint32_t vert = ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP |
- ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
- if (surface->pending.desired_height == 0 &&
- (surface->pending.anchor & vert) != vert) {
- wl_resource_post_error(surface->resource,
- ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE,
- "height 0 requested without setting top and bottom anchors");
- return;
- }
-
if (surface->surface->unmap_commit) {
layer_surface_reset(surface);
--
2.41.0

View File

@ -0,0 +1,136 @@
# Client examples are now available from a separate repository,
# https://gitlab.freedesktop.org/wlroots/wlr-clients
project(
'wlroots-examples',
'c',
meson_version: '>=0.58.0',
default_options: [
'c_std=c11',
'warning_level=2',
'werror=false',
],
)
cc = meson.get_compiler('c')
add_global_arguments('-DWLR_USE_UNSTABLE', language : 'c')
cairo = dependency('cairo')
drm = dependency('libdrm')
egl = dependency('egl')
glesv2 = dependency('glesv2')
# Only needed for drm_fourcc.h
libdrm = dependency('libdrm').partial_dependency(compile_args: true, includes: true)
wayland_client = dependency('wayland-client')
wayland_egl = dependency('wayland-egl')
wayland_protos = dependency('wayland-protocols', version: '>=1.27')
wayland_scanner_dep = dependency('wayland-scanner', native: true)
wayland_scanner = find_program(
wayland_scanner_dep.get_variable('wayland_scanner'),
native: true,
)
wayland_server = dependency('wayland-server')
wlroots = dependency('wlroots', version: ['>=0.17.0', '<0.18.0'])
xkbcommon = dependency('xkbcommon')
wl_protocol_dir = wayland_protos.get_variable('pkgdatadir')
protocols = {
# Stable upstream protocols
'xdg-shell': wl_protocol_dir / 'stable/xdg-shell/xdg-shell.xml',
# Unstable upstream protocols
'fullscreen-shell-unstable-v1': wl_protocol_dir / 'unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml',
}
protocols_code = {}
protocols_server_header = {}
protocols_client_header = {}
foreach name, path : protocols
code = custom_target(
name.underscorify() + '_c',
input: path,
output: '@BASENAME@-protocol.c',
command: [wayland_scanner, 'private-code', '@INPUT@', '@OUTPUT@'],
)
server_header = custom_target(
name.underscorify() + '_server_h',
input: path,
output: '@BASENAME@-protocol.h',
command: [wayland_scanner, 'server-header', '@INPUT@', '@OUTPUT@'],
)
client_header = custom_target(
name.underscorify() + '_client_h',
input: path,
output: '@BASENAME@-client-protocol.h',
command: [wayland_scanner, 'client-header', '@INPUT@', '@OUTPUT@'],
build_by_default: false,
)
protocols_code += { name: code }
protocols_server_header += { name: server_header }
protocols_client_header += { name: client_header }
endforeach
compositors = {
'simple': {
'src': 'simple.c',
},
'pointer': {
'src': 'pointer.c',
},
'touch': {
'src': ['touch.c', 'cat.c'],
},
'tablet': {
'src': 'tablet.c',
},
'rotation': {
'src': ['rotation.c', 'cat.c'],
},
'output-layout': {
'src': ['output-layout.c', 'cat.c'],
},
'fullscreen-shell': {
'src': 'fullscreen-shell.c',
'proto': ['fullscreen-shell-unstable-v1'],
},
'scene-graph': {
'src': 'scene-graph.c',
'proto': ['xdg-shell'],
},
'output-layers': {
'src': 'output-layers.c',
'proto': [
'xdg-shell',
],
},
'cairo-buffer': {
'src': 'cairo-buffer.c',
'dep': cairo,
},
'embedded': {
'src': [
'embedded.c',
protocols_code['xdg-shell'],
protocols_client_header['xdg-shell'],
],
'dep': [wayland_client, wayland_egl, egl, glesv2],
},
}
foreach name, info : compositors
extra_src = []
foreach p : info.get('proto', [])
extra_src += protocols_server_header[p]
endforeach
executable(
name,
[info.get('src'), extra_src],
dependencies: [libdrm, wlroots, wayland_server, xkbcommon, info.get('dep', [])],
)
endforeach

Binary file not shown.

View File

@ -0,0 +1,52 @@
From f3e1f7b2a70a500b740bfc406e893eba0852699a Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Thu, 21 Dec 2023 21:06:20 +0000
Subject: [PATCH] backend: fix build against upcoming `gcc-14`
(`-Werror=calloc-transposed-args`)
`gcc-14` added a new `-Wcalloc-transposed-args` warning recently. It
detected minor infelicity in `calloc()` API usage in `wlroots`:
../backend/libinput/tablet_pad.c: In function 'add_pad_group_from_libinput':
../backend/libinput/tablet_pad.c:36:38: error: 'calloc' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
36 | group->rings = calloc(sizeof(unsigned int), group->ring_count);
| ^~~~~~~~
../backend/libinput/tablet_pad.c:36:38: note: earlier argument should specify number of elements, later size of each element
---
backend/libinput/tablet_pad.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/backend/libinput/tablet_pad.c b/backend/libinput/tablet_pad.c
index 2e74022a5..e53275281 100644
--- a/backend/libinput/tablet_pad.c
+++ b/backend/libinput/tablet_pad.c
@@ -33,7 +33,7 @@ static void add_pad_group_from_libinput(struct wlr_tablet_pad *pad,
++group->ring_count;
}
}
- group->rings = calloc(sizeof(unsigned int), group->ring_count);
+ group->rings = calloc(group->ring_count, sizeof(unsigned int));
if (group->rings == NULL) {
goto group_fail;
}
@@ -50,7 +50,7 @@ static void add_pad_group_from_libinput(struct wlr_tablet_pad *pad,
++group->strip_count;
}
}
- group->strips = calloc(sizeof(unsigned int), group->strip_count);
+ group->strips = calloc(group->strip_count, sizeof(unsigned int));
if (group->strips == NULL) {
goto group_fail;
}
@@ -66,7 +66,7 @@ static void add_pad_group_from_libinput(struct wlr_tablet_pad *pad,
++group->button_count;
}
}
- group->buttons = calloc(sizeof(unsigned int), group->button_count);
+ group->buttons = calloc(group->button_count, sizeof(unsigned int));
if (group->buttons == NULL) {
goto group_fail;
}
--
GitLab

Binary file not shown.

331
base/wlroots/wlroots.spec Normal file
View File

@ -0,0 +1,331 @@
# Version of the .so library
%global abi_ver 12
%global _rxlibdir /opt/rx/%{_lib}
%global _rxincludedir /opt/rx/include
Name: wlroots
Version: 0.17.1
Release: 2%{?dist}
Summary: A modular Wayland compositor library
# Source files/overall project licensed as MIT, but
# - HPND-sell-variant
# * protocol/drm.xml
# * protocol/wlr-data-control-unstable-v1.xml
# * protocol/wlr-foreign-toplevel-management-unstable-v1.xml
# * protocol/wlr-gamma-control-unstable-v1.xml
# * protocol/wlr-input-inhibitor-unstable-v1.xml
# * protocol/wlr-layer-shell-unstable-v1.xml
# * protocol/wlr-output-management-unstable-v1.xml
# - LGPL-2.1-or-later
# * protocol/server-decoration.xml
# Those files are processed to C-compilable files by the
# `wayland-scanner` binary during build and don't alter
# the main license of the binaries linking with them by
# the underlying licenses.
License: MIT
URL: https://gitlab.freedesktop.org/wlroots/wlroots
Source0: %{url}/-/releases/%{version}/downloads/%{name}-%{version}.tar.gz
Source1: %{url}/-/releases/%{version}/downloads/%{name}-%{version}.tar.gz.sig
# 0FDE7BE0E88F5E48: emersion <contact@emersion.fr>
Source2: https://emersion.fr/.well-known/openpgpkey/hu/dj3498u4hyyarh35rkjfnghbjxug6b19#/gpgkey-0FDE7BE0E88F5E48.gpg
# this file is a modification of examples/meson.build so as to:
# - make it self-contained
# - only has targets for examples known to compile well (cf. "examples) global)
Source3: examples.meson.build
# Upstream patches
Patch1: %{url}/-/commit/f3e1f7b.patch#/wlroots-0.17-backend-fix-build-against-upcoming-gcc-14.patch
# Fedora patches
# Following patch is required for phoc.
Patch2: Revert-layer-shell-error-on-0-dimension-without-anch.patch
BuildRequires: gcc
BuildRequires: glslang
BuildRequires: gnupg2
BuildRequires: meson >= 0.59.0
BuildRequires: (pkgconfig(libdisplay-info) >= 0.1.1 with pkgconfig(libdisplay-info) < 0.2)
BuildRequires: (pkgconfig(libliftoff) >= 0.4.0 with pkgconfig(libliftoff) < 0.5.0)
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(gbm) >= 17.1.0
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(hwdata)
BuildRequires: pkgconfig(libdrm) >= 2.4.114
BuildRequires: pkgconfig(libinput) >= 1.21.0
BuildRequires: pkgconfig(libseat)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(pixman-1) >= 0.42.0
BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-protocols) >= 1.32
BuildRequires: pkgconfig(wayland-scanner)
BuildRequires: pkgconfig(wayland-server) >= 1.22
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-errors)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xcb-renderutil)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xwayland)
Requires: rx-libinput
Requires: rx-pixman
Requires: rx-libwayland-client
Requires: rx-libwayland-egl
Requires: rx-libwayland-server
%description
%{summary}.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} == %{version}-%{release}
# not required per se, so not picked up automatically by RPM
Recommends: pkgconfig(xcb-icccm)
# for examples
Suggests: gcc
Suggests: meson >= 0.58.0
Suggests: pkgconfig(wayland-egl) >= 1.22
%description devel
Development files for %{name}.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -N
# apply unconditional patches (0..99)
%autopatch -p1 -M99
# apply conditional patches (100..)
%build
export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
export LDFLAGS="-L%{_rxlibdir} -Wl,-rpath=%{_rxlibdir} ${LDFLAGS:-%__global_ldflags}"
MESON_OPTIONS=(
# Disable options requiring extra/unpackaged dependencies
-Dexamples=false
)
%{meson} "${MESON_OPTIONS[@]}"
%{meson_build}
%install
%{meson_install}
install -pm0644 -D '%{SOURCE3}' '%{buildroot}/%{_pkgdocdir}/examples/meson.build'
%check
%{meson_test}
%files
%license LICENSE
%doc README.md
%{_libdir}/lib%{name}.so.%{abi_ver}{,.*}
%files devel
%doc %{_pkgdocdir}/examples
%{_includedir}/wlr
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.17.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Dec 21 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.17.1-1
- Update to 0.17.1 (#2255547)
* Tue Nov 21 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.17.0-1
- Update to 0.17.0 (#2250885)
- Use xcb-errors util library
- Apply patches from 0.17.x bugfix branch
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Apr 16 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.16.2-2
- Apply upstream patch to remove hardcoded Vulkan validation layers
* Fri Feb 10 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.16.2-1
- Update to 0.16.2 (#2168992)
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sun Dec 25 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.16.1-1
- Update to 0.16.1
* Fri Dec 02 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.16.0-1
- Update to 0.16.0 (#2142159)
- Add patch for compatibility with older libdrm
- Sync examples.meson.build with upstream, include all available examples
* Mon Nov 14 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.15.1-5
- Backport upstream crash fix (#2142447)
- Convert license to SPDX
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.15.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sun Jun 26 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.15.1-3
- Add patches required for phoc 0.20
* Wed Jun 01 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.15.1-2
- Drop patches for wayland 1.19 compatibility
* Sat Feb 05 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.15.1-1
- Update to 0.15.1 (#2050408)
* Tue Jan 25 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.15.0-3
- Backport fix for permission popups in Firefox
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.15.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sun Jan 16 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.15.0-1
- Update to 0.15.0 (#2033651)
- Update upstream URL to gitlab.freedesktop.org
- Backport some patches from 0.15.1 milestone
* Mon Dec 13 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.14.1-3
- Add patch for disappearing cursor issue (#2027431)
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.14.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jul 08 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.14.1-1
- Update to wlroots 0.14.1
* Wed Jul 07 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.14.0-2
- Add patch for a few more issues with cursors, multi-GPUs and nouveau
* Wed Jun 23 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.14.0-1
- Update to 0.14.0
- Add upstream patch for cursor issues on scaled outputs
* Tue Jun 01 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.13.0-2
- Enable libseat session backend
* Wed Apr 07 2021 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.13.0-1
- Update to 0.13.0 (#1947218)
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.12.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sun Nov 08 2020 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.12.0-1
- Updated to version 0.12.0
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 15 2020 Aleksei Bavshin <alebastr89@gmail.com> - 0.11.0-1
- Updated to version 0.11.0
* Sat May 09 2020 Till Hofmann <thofmann@fedoraproject.org> - 0.10.1-2
- Add patch from upstream #2167 to fix #1829212
* Tue Mar 24 2020 Nikhil Jha <hi@nikhiljha.com> - 0.10.1-1
- Updated to version 0.10.1 (https://github.com/swaywm/wlroots/releases/tag/0.10.1)
* Mon Feb 10 2020 Jan Staněk <jstanek@redhat.com> - 0.10.0-6
- Propagate mesa-libEGL-devel workaround to -devel requirements
* Sat Feb 08 2020 Simone Caronni <negativo17@gmail.com> - 0.10.0-5
- RDP backend is no longer in wlroots 0.10.
* Fri Feb 07 2020 Simone Caronni <negativo17@gmail.com> - 0.10.0-4
- Rebuild for updated FreeRDP.
* Tue Feb 04 2020 Jan Staněk <jstanek@redhat.com> - 0.10.0-3
- Disable -Werror compilation flag on s390x
(https://github.com/swaywm/wlroots/issues/2018)
* Wed Jan 29 2020 Jan Staněk <jstanek@redhat.com> - 0.10.0-2
- Backport fix for compilation with GCC 10
* Tue Jan 28 2020 Joe Walker <grumpey0@gmail.com> - 0.10.0
- Updated to version 0.10.0 (https://github.com/swaywm/wlroots/releases/tag/0.10.0)
Mon Jan 20 2020 Jan Staněk <jstanek@redhat.com> - 0.9.1-1
- Upgrade to version 0.9.1 (https://github.com/swaywm/wlroots/releases/tag/0.9.1)
* Thu Sep 12 2019 Jan Staněk <jstanek@redhat.com> - 0.7.0-2
- Spec file cleanup
* Thu Aug 29 2019 Jeff Peeler <jpeeler@redhat.com> - 0.7.0-1
- Updated to version 0.7.0
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu May 09 2019 Jan Pokorný <jpokorny+rpm-wlroots@fedoraproject.org> - 0.6.0-1
- Updated to version 0.6.0
(see https://github.com/swaywm/wlroots/releases/tag/0.6.0)
- Overhaul dependencies and shipped examples in -devel
* Tue Apr 16 2019 Adam Williamson <awilliam@redhat.com> - 0.5.0-2
- Rebuild with Meson fix for #1699099
* Thu Mar 14 2019 Jan Pokorný <jpokorny+rpm-wlroots@fedoraproject.org> - 0.5.0-1
- Updated to version 0.5.0 (0.2, 0.3, 0.4, 0.4.1 releases effectively skipped)
- Avoid building some parts that are not shipped in binary form, anyway
- Minor spec cleanup (clarify the licensing comment, licensecheck's NTP ~ MIT,
ldconfig_scriptlets no longer relevant, arch-specific tweak no longer needed)
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Nov 27 2018 Jan Pokorný <jpokorny+rpm-wlroots@fedoraproject.org> - 0.1-4
- Fix Firefox crash around text selection/clipboard
(https://github.com/swaywm/wlroots/pull/1380)
* Tue Nov 27 2018 Jan Pokorný <jpokorny+rpm-wlroots@fedoraproject.org> - 0.1-3
- Make Firefox run smoother (https://github.com/swaywm/wlroots/pull/1384)
* Wed Nov 07 2018 Jan Pokorný <jpokorny+rpm-wlroots@fedoraproject.org> - 0.1-2
- Fix incorrect "pkgconfig" version
* Wed Oct 31 2018 Jan Pokorný <jpokorny+rpm-wlroots@fedoraproject.org> - 0.1-1
- Updated to historically first official release
- Turned off implicit enablement of all 'auto' build features under Meson,
since xcb-errors is not available at this time
- Added BR: libpng
- Expanding spec comment on source files not covered with MIT license
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.1-0.9.20180106git03faf17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.1-0.8.20180106git03faf17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Jan 13 2018 Björn Esser <besser82@fedoraproject.org> - 0.0.1-0.7.20180106git03faf17
- Updated snapshot
* Wed Jan 03 2018 Björn Esser <besser82@fedoraproject.org> - 0.0.1-0.6.20180102git767df15
- Initial import (#1529352)
* Wed Jan 03 2018 Björn Esser <besser82@fedoraproject.org> - 0.0.1-0.5.20180102git767df15
- Updated snapshot
* Sun Dec 31 2017 Björn Esser <besser82@fedoraproject.org> - 0.0.1-0.4.20171229git80ed4d4
- Add licensing clarification
- Add BR: gcc
* Sat Dec 30 2017 Björn Esser <besser82@fedoraproject.org> - 0.0.1-0.3.20171229git80ed4d4
- Updated snapshot
* Wed Dec 27 2017 Björn Esser <besser82@fedoraproject.org> - 0.0.1-0.2.20171227giteeb7cd8
- Optimize spec-file
* Wed Dec 27 2017 Björn Esser <besser82@fedoraproject.org> - 0.0.1-0.1.20171227giteeb7cd8
- Initial rpm release (#1529352)

View File

@ -0,0 +1,61 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGiBEab+moRBACDH5yKqS3wcc5bdxY7PBNuwKvF5TKMfagmSvuRDtZjjIIWaA/n
Z1KboV9Gq5g7kP7+Kfu+Qgd8u65eVsWwmPW10fXvj3aCU53glx2EdGdrHcgiyH2g
EQfPiyBw+trIppWFRV0IDXSLMA1FNC92t2nSG/VFHaPTVwcgkIRSfcXDvwCglGdE
a6f4uLqoNHP+m4yYnzapFuMD/R4+2AJDAvEWKDdYCGZzlawjAmmWyXrmT7/C/mx9
8qUR473l4buXjHgDkkXXlHqdzil1vK85PhrKzNJDCCmlHUJNz+QwiAMOLwpD+kwV
Pb57RG7y+a5JQ5+jtVw4RlUxZIk/wj2An9YBO3A5vR7PdjM32ZJCN2+aM4dYfNzQ
xQKTA/47icvBaBVTl9rztjg2pd2Aqpc1P/GsIYLGj7XjnnJvGAENBHSH1QjpZMJG
CTS9oJ+B0/wrIr+pA+MdFgYAb6ojMQJOO6UChjWWSGjMFcs/CeXhxlLBido3DtAE
TbNTwO6OEfAvdosvTdhJFnwvZlJ+zZGGy5CrF2Fd9PUe9tmASbQuQWxhbiBDb29w
ZXJzbWl0aCA8YWxhbi5jb29wZXJzbWl0aEBvcmFjbGUuY29tPoiCBBMRCgBCAhsD
BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAIZARYhBEoZPAbTXnxnD6TvC6L7nggf
LRMOBQJkQs2eBQknDNS0AAoJEKL7nggfLRMO1esAnR4FVD60BpDY/bJp5RC1VXhO
Vlo4AKCJgsQeVeGLxDlMuhAmbcCkOjafqbQoQWxhbiBDb29wZXJzbWl0aCA8YWxh
bmNAZnJlZWRlc2t0b3Aub3JnPoh/BBMRCgA/AhsDBgsJCAcDAgYVCAIJCgsEFgID
AQIeAQIXgBYhBEoZPAbTXnxnD6TvC6L7nggfLRMOBQJkQs2eBQknDNS0AAoJEKL7
nggfLRMOUgAAoIyNXuU5kOotpZrKvPrjQATbsPClAJ9wkh/n3IAobV6aDLb1qOt5
RT3Pp7QrQWxhbiBDb29wZXJzbWl0aCA8YWxhbi5jb29wZXJzbWl0aEBzdW4uY29t
Poh9BBMRCgA9AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AWIQRKGTwG0158Zw+k
7wui+54IHy0TDgUCZELNngUJJwzUtAAKCRCi+54IHy0TDunHAKCKZyiF/IwgoqYQ
r4SjpuMD64swlgCfdkI2v8kaaFwSrEp3AeYvcT2psPS5Ag0EUXnVIQEQAKHpjOmY
056n0tsZoW9q5egsMcl5tKC8uimrhO05nnq+5/60/YedC++V9c9b/3/X7O28LyBk
AtBgD0xJZSDQ0DhTzKAp6AzjQtBvI68uinGwxSjT+oQpPMxqhA1I0kzoEDCdEqV+
HsVOAEdbAi/tP9bbdTDzwVc8MWDriamBUqc53Rb00Mffy9435UgTS4gAhMwANhy6
XZmOMBhITOzxFJUEDTDJtLbE0b1jPRQS7NHQgak1inmuvPMc3wAuoEcSCSt1xupb
YsBoXOjK5wC/eE1LIdZoRyW2OkT140DqDZ8zfRID860hnirnYgb09TPNtj93pudU
AUt6T9+tcLN4/rxhxHOwse66KGHO4bQ1rZ6mfco6SYd9V60cL6hC2eMecyxZliMu
17lj7EX8lxUH+omIgHc7HGoyUR6V+WB60cxWj5v05zdeLeZ2aLBcPFhxlfDESm8f
4ezdJSDS1QZmC0P5h3RJfhhfmdBr8kHzr7111D1/O71Av1VV5FyJ9YxUSxp4IPuz
K7JbbgVHcA6PvXrDzWUslmZgPADpKH4hTmG/NdCqhEXcufvY6s5yNksB8X3ReNvu
SSyfGnRz3kvtyK0XzC7KRX2PquLI6A8KJprHwZGqEB1NDG8b2iaYnghOjyfIYEVQ
F3nGfaBwv4lrCPEoZSUaK8f/NQZjNU8NQyTnABEBAAGJAoUEGBEKACYCGwIWIQRK
GTwG0158Zw+k7wui+54IHy0TDgUCZELNigUJHC756QIpwV0gBBkBCgAGBQJRedUh
AAoJEM/fFIgoxkKn1uYP/3TnSR7dt3HTMs+VQA2hO7vi9BPnl/RrRxeCeuPXl7Lo
ufRLWx4dp13RoXeUqkPBQ4vRghCmkOEt9Z/2ASxAQpI+0dCDIpFtqO/PycQ6LwfP
mi+tOoYJmnzVcdWiLISIJa5fF5bt7I3gLxuPFumI3S9pn6yAx4yFcDmbDIoWzib0
k+kN7qR3Z5ow7TORwkJiOTRFw1mI+iGboSZ56w1sDbMmFeCj6FAcQHKiMgnmW1bL
Lllpxz11/FWr1avfL6Vcp3xsxmKSWw49fQv7rTIyhiOXXL21WrnAO1/6JLca8Uuk
gQ4biGgBPeGR5W8an8h3xEyPy2tmfwCwwLWHYSUdoEpEx8ikltUKmJbpUnwf/5Z5
2uOJpk7kTjWwzYG9BRkr7bATGfNIhw6j4FH0utJMQnxa7Ehn0xVPl+EAM6U7VCRH
K/ieB1Cw3jH8DoIIVX5isRV1n7nfMQ2gl7ssC07VYDAmaeD+zAMriZWsbBU7vnNV
ZcveIK5OFDLQCyzKgl0qLAOPdIC00nYNx0sMbdkPyyXcuNu2SDL4xlyK7p7PFPzp
i/XVYFrt2yR7C+vEpMfE7Ot6kzfUFzPzwfvFcDmguzyfoOreNA5XjpnbEvHDd9cn
+SgfK7C+Lp+LtcqzCX6Z0m5TzLucCYt5I6APg3eWRasfZ04uMAY31WBgj7JXqufS
CRCi+54IHy0TDiRsAJ97uVS+ZHPJ6P8o4rac77WTtYgYZgCfdka/GHv4Mk1MfL/M
FS41nSdZZvy5Ag0ERpv6bxAIAJp5aUlho5rUhpS6ik7spsAQFPRuycPKMNu0J4F0
v/OoPz085soV8ytLj4HqCGk2Zamh1jSgliZwuk9m7V7Wgxx+nBJawpWDX/eKLObE
rfDwQ4dfOFvjbXLQMmNnQNaUGIWLPP3l8GuBOHMq60Bu+TPgh627vUntL5REQEQq
TXIzWC6U10QsDblLwIvdOVSdGF5xl/N1myXzSKvrsZwWtoFc8G9v9hcCjhtN1sm9
b7Ojc51iZXvcetcvPy5RA6AUW3yEExaedUdLnvIF9sjFYIfJWFVYh2AgavnGre6f
F+NV2v3zfx3wRT7H9//m4YIDYJmgZgyQccXegTwfGBIq3osAAwYH/1FiMUMMES5I
lz2nDqId+DCWECAU6wgvIFRcXrZWxDxB+ZrnmTCXoAD0xedpfOkRHp8XTVc/9MU+
wQ+lZRx2OQ6MJW0XGuFvHm94KZF/8HzWA2Ah7U4n0+3sLpk6zWceZq2zZNF0yVTj
wD98+xNK1Q9sP8aOKdtg8yMH3hisKR6rdW+mfX5q0Q8Gol2hZsFH/qyIhnPzhXDk
nuOh8E5iMkzrejVXUEn++Yzj23XjP59SObLznVkyxI+kBI9qvVEPfFBDybjHWqLc
gRcCpXAzjizEi+/d31iDa2ErJHV4R42obecFqiPnoDtiX3IiP7z9fmxM4aWPZZRq
vq+1ht5wkn+ISQQYEQIACQUCRpv6bwIbDAAKCRCi+54IHy0TDoLoAKCHYRpw/Xfy
Eunw1YL/uMZzl78qIQCdFVcXNbqD83qVhW4Ly7hyDL8o0aI=
=awvS
-----END PGP PUBLIC KEY BLOCK-----

Binary file not shown.

View File

@ -0,0 +1,100 @@
## START: Set by rpmautospec
## (rpmautospec version 0.5.1)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 3;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
%global abi_ver 0
# Test suite currently fails with
# For xge event (131, 27): Expected (null), got GesturePinchBegin
# For xcb xge wire event 27: Expected (null), got GesturePinchBegin
# I don't expect that to be fixed.
%bcond_with check
Name: xcb-util-errors
Version: 1.0.1
Release: %autorelease
Summary: XCB utility library that gives readable names to error, event, & request codes
License: X11
URL: http://xcb.freedesktop.org
Source0: %{url}/dist/%{name}-%{version}.tar.xz
Source1: %{url}/dist/%{name}-%{version}.tar.xz.sig
# Alan Coopersmith <alan.coopersmith@oracle.com>
Source2: gpgkey-A2FB9E081F2D130E.gpg
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc
BuildRequires: gnupg2
BuildRequires: libtool
BuildRequires: make
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-proto)
BuildRequires: pkgconfig(xorg-macros) >= 1.16.0
%if %{with check}
BuildRequires: /usr/bin/xvfb-run
%endif
%description
xcb-util-errors is a utility library that gives human readable names to error
codes and event codes and also to major and minor numbers. The necessary
information is drawn from xcb-proto's protocol descriptions.
This library is especially useful when working with extensions and is mostly
useful for debugging.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup
%build
autoreconf -fiv
%configure --disable-static
%make_build
%install
%make_install
# Remove libtool archives on RHEL 9
find %{buildroot}%{_libdir} -name '*.la' -delete
%if %{with check}
%check
xvfb-run %make_build check
%endif
%files
%license COPYING
%{_libdir}/libxcb-errors.so.%{abi_ver}{,.*}
%files devel
%{_includedir}/xcb/xcb_errors.h
%{_libdir}/libxcb-errors.so
%{_libdir}/pkgconfig/xcb-errors.pc
%changelog
## START: Generated by rpmautospec
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 18 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.0.1-2
- Remove libtool archives on RHEL 9
* Sat Nov 25 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 1.0.1-1
- Initial import (#2251436)
## END: Generated by rpmautospec

View File

@ -1,54 +0,0 @@
From 284a0c73771e3a2c57af6e74d96d9a6878b2e7b4 Mon Sep 17 00:00:00 2001
From: Maxim Dounin <mdounin@mdounin.ru>
Date: Tue, 17 Oct 2023 02:39:38 +0300
Subject: [PATCH] Core: fixed memory leak on configuration reload with PCRE2.
In ngx_regex_cleanup() allocator wasn't configured when calling
pcre2_compile_context_free() and pcre2_match_data_free(), resulting
in no ngx_free() call and leaked memory. Fix is ensure that allocator
is configured for global allocations, so that ngx_free() is actually
called to free memory.
Additionally, ngx_regex_compile_context was cleared in
ngx_regex_module_init(). It should be either not cleared, so it will
be freed by ngx_regex_cleanup(), or properly freed. Fix is to
not clear it, so ngx_regex_cleanup() will be able to free it.
Reported by ZhenZhong Wu,
https://mailman.nginx.org/pipermail/nginx-devel/2023-September/3Z5FIKUDRN2WBSL3JWTZJ7SXDA6YIWPB.html
---
src/core/ngx_regex.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/core/ngx_regex.c b/src/core/ngx_regex.c
index 91381f4994..5b13c5db38 100644
--- a/src/core/ngx_regex.c
+++ b/src/core/ngx_regex.c
@@ -600,6 +600,8 @@ ngx_regex_cleanup(void *data)
* the new cycle, these will be re-allocated.
*/
+ ngx_regex_malloc_init(NULL);
+
if (ngx_regex_compile_context) {
pcre2_compile_context_free(ngx_regex_compile_context);
ngx_regex_compile_context = NULL;
@@ -611,6 +613,8 @@ ngx_regex_cleanup(void *data)
ngx_regex_match_data_size = 0;
}
+ ngx_regex_malloc_done();
+
#endif
}
@@ -706,9 +710,6 @@ ngx_regex_module_init(ngx_cycle_t *cycle)
ngx_regex_malloc_done();
ngx_regex_studies = NULL;
-#if (NGX_PCRE2)
- ngx_regex_compile_context = NULL;
-#endif
return NGX_OK;
}

View File

@ -1,70 +0,0 @@
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1696940019 -10800
# Node ID cdda286c0f1b4b10f30d4eb6a63fefb9b8708ecc
# Parent 3db945fda515014d220151046d02f3960bcfca0a
HTTP/2: per-iteration stream handling limit.
To ensure that attempts to flood servers with many streams are detected
early, a limit of no more than 2 * max_concurrent_streams new streams per one
event loop iteration was introduced. This limit is applied even if
max_concurrent_streams is not yet reached - for example, if corresponding
streams are handled synchronously or reset.
Further, refused streams are now limited to maximum of max_concurrent_streams
and 100, similarly to priority_limit initial value, providing some tolerance
to clients trying to open several streams at the connection start, yet
low tolerance to flooding attempts.
diff -r 3db945fda515 -r cdda286c0f1b src/http/v2/ngx_http_v2.c
--- a/src/http/v2/ngx_http_v2.c Fri Sep 22 19:23:57 2023 +0400
+++ b/src/http/v2/ngx_http_v2.c Tue Oct 10 15:13:39 2023 +0300
@@ -347,6 +347,7 @@
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http2 read handler");
h2c->blocked = 1;
+ h2c->new_streams = 0;
if (c->close) {
c->close = 0;
@@ -1284,6 +1285,14 @@
goto rst_stream;
}
+ if (h2c->new_streams++ >= 2 * h2scf->concurrent_streams) {
+ ngx_log_error(NGX_LOG_INFO, h2c->connection->log, 0,
+ "client sent too many streams at once");
+
+ status = NGX_HTTP_V2_REFUSED_STREAM;
+ goto rst_stream;
+ }
+
if (!h2c->settings_ack
&& !(h2c->state.flags & NGX_HTTP_V2_END_STREAM_FLAG)
&& h2scf->preread_size < NGX_HTTP_V2_DEFAULT_WINDOW)
@@ -1349,6 +1358,12 @@
rst_stream:
+ if (h2c->refused_streams++ > ngx_max(h2scf->concurrent_streams, 100)) {
+ ngx_log_error(NGX_LOG_INFO, h2c->connection->log, 0,
+ "client sent too many refused streams");
+ return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_NO_ERROR);
+ }
+
if (ngx_http_v2_send_rst_stream(h2c, h2c->state.sid, status) != NGX_OK) {
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_INTERNAL_ERROR);
}
diff -r 3db945fda515 -r cdda286c0f1b src/http/v2/ngx_http_v2.h
--- a/src/http/v2/ngx_http_v2.h Fri Sep 22 19:23:57 2023 +0400
+++ b/src/http/v2/ngx_http_v2.h Tue Oct 10 15:13:39 2023 +0300
@@ -172,6 +172,8 @@
ngx_uint_t processing;
ngx_uint_t frames;
ngx_uint_t idle;
+ ngx_uint_t new_streams;
+ ngx_uint_t refused_streams;
ngx_uint_t priority_limit;
ngx_uint_t pushing;

View File

@ -1,119 +0,0 @@
From c93cb45ae30760b7cd4ce2d9e053a36449d4e233 Mon Sep 17 00:00:00 2001
From: Maxim Dounin <mdounin@mdounin.ru>
Date: Wed, 18 Oct 2023 04:30:11 +0300
Subject: [PATCH] Core: changed ngx_queue_sort() to use merge sort.
This improves nginx startup times significantly when using very large number
of locations due to computational complexity of the sorting algorithm being
used: insertion sort is O(n*n) on average, while merge sort is O(n*log(n)).
In particular, in a test configuration with 20k locations total startup
time is reduced from 8 seconds to 0.9 seconds.
Prodded by Yusuke Nojima,
https://mailman.nginx.org/pipermail/nginx-devel/2023-September/NUL3Y2FPPFSHMPTFTL65KXSXNTX3NQMK.html
---
src/core/ngx_queue.c | 52 +++++++++++++++++++++++++++++++++-----------
src/core/ngx_queue.h | 3 +++
2 files changed, 42 insertions(+), 13 deletions(-)
diff --git a/src/core/ngx_queue.c b/src/core/ngx_queue.c
index 3cacaf3a88..3d1d589884 100644
--- a/src/core/ngx_queue.c
+++ b/src/core/ngx_queue.c
@@ -9,6 +9,10 @@
#include <ngx_core.h>
+static void ngx_queue_merge(ngx_queue_t *queue, ngx_queue_t *tail,
+ ngx_int_t (*cmp)(const ngx_queue_t *, const ngx_queue_t *));
+
+
/*
* find the middle queue element if the queue has odd number of elements
* or the first element of the queue's second part otherwise
@@ -45,13 +49,13 @@ ngx_queue_middle(ngx_queue_t *queue)
}
-/* the stable insertion sort */
+/* the stable merge sort */
void
ngx_queue_sort(ngx_queue_t *queue,
ngx_int_t (*cmp)(const ngx_queue_t *, const ngx_queue_t *))
{
- ngx_queue_t *q, *prev, *next;
+ ngx_queue_t *q, tail;
q = ngx_queue_head(queue);
@@ -59,22 +63,44 @@ ngx_queue_sort(ngx_queue_t *queue,
return;
}
- for (q = ngx_queue_next(q); q != ngx_queue_sentinel(queue); q = next) {
+ q = ngx_queue_middle(queue);
+
+ ngx_queue_split(queue, q, &tail);
+
+ ngx_queue_sort(queue, cmp);
+ ngx_queue_sort(&tail, cmp);
+
+ ngx_queue_merge(queue, &tail, cmp);
+}
+
- prev = ngx_queue_prev(q);
- next = ngx_queue_next(q);
+static void
+ngx_queue_merge(ngx_queue_t *queue, ngx_queue_t *tail,
+ ngx_int_t (*cmp)(const ngx_queue_t *, const ngx_queue_t *))
+{
+ ngx_queue_t *q1, *q2;
- ngx_queue_remove(q);
+ q1 = ngx_queue_head(queue);
+ q2 = ngx_queue_head(tail);
- do {
- if (cmp(prev, q) <= 0) {
- break;
- }
+ for ( ;; ) {
+ if (q1 == ngx_queue_sentinel(queue)) {
+ ngx_queue_add(queue, tail);
+ break;
+ }
- prev = ngx_queue_prev(prev);
+ if (q2 == ngx_queue_sentinel(tail)) {
+ break;
+ }
+
+ if (cmp(q1, q2) <= 0) {
+ q1 = ngx_queue_next(q1);
+ continue;
+ }
- } while (prev != ngx_queue_sentinel(queue));
+ ngx_queue_remove(q2);
+ ngx_queue_insert_before(q1, q2);
- ngx_queue_insert_after(prev, q);
+ q2 = ngx_queue_head(tail);
}
}
diff --git a/src/core/ngx_queue.h b/src/core/ngx_queue.h
index 038bf12113..0f82f173e4 100644
--- a/src/core/ngx_queue.h
+++ b/src/core/ngx_queue.h
@@ -47,6 +47,9 @@ struct ngx_queue_s {
(h)->prev = x
+#define ngx_queue_insert_before ngx_queue_insert_tail
+
+
#define ngx_queue_head(h) \
(h)->next

View File

@ -18,6 +18,7 @@
%bcond_without brotli
%bcond_without fancyindex
%bcond_without vts
%bcond_with http3
%if 0%{?rhel} >= 8
%bcond_with gperftools
@ -42,8 +43,8 @@
Name: nginx-cp
Epoch: 1
Version: 1.24.0
Release: 5%{?dist}
Version: 1.26.0
Release: 1%{?dist}
Summary: A high performance web server and reverse proxy server
Group: System Environment/Daemons
@ -97,8 +98,8 @@ Patch0: nginx-auto-cc-gcc.patch
Patch1: 0002-fix-PIDFile-handling.patch
%if %{with certmin_patches}
# 2 in 1 patch
Patch3: nginx__cloudflare_1.19+.patch
# Dynamic TLS records patch
Patch3: nginx_dynamic_tls_records.patch
%endif
%if %{with brotli}
@ -109,11 +110,6 @@ Patch4: ngx_brotli-config.patch
Patch5: nginx-1.24-lua-mod-lowering-luajit-alert-severity.patch
%endif
Patch6: CVE-2023-44487.patch
Patch7: c93cb45ae30760b7cd4ce2d9e053a36449d4e233.patch
Patch8: 284a0c73771e3a2c57af6e74d96d9a6878b2e7b4.patch
BuildRequires: make binutils
BuildRequires: gcc >= 4.8
@ -121,11 +117,12 @@ BuildRequires: gcc >= 4.8
%if %{with gperftools}
BuildRequires: gperftools-devel
%endif
%if 0%{?rhel} <= 8
BuildRequires: openssl3-devel >= %{openssl_ver}
Requires: openssl3-libs >= %{openssl_ver}
%if %{with http3}
BuildRequires: pkgconfig(openssl) >= 3.8
%else
BuildRequires: openssl-devel
BuildRequires: pkgconfig(openssl) >= %{openssl_ver}
BuildRequires: pkgconfig(openssl) < 3.5
%endif
BuildRequires: pcre2-devel
@ -238,7 +235,7 @@ modules and features:
- ngx_http_geoip2_module
- ngx_http_fancyindex_module
- ngx_http_lua_module
includes dynamic-ssl-record-size, http2_hpack patches from certminmod
includes dynamic-ssl-record-size patch from certminmod
TFO support enabled
@ -288,12 +285,6 @@ tar -xf %{SOURCE304}
%patch5 -p1 -b .luajit
%endif
%patch6 -p1 -b .CVE-2023-44487
%patch7 -p1 -b .ngx_queue_sort
%if %{without lua}
%patch8 -p1 -b .pcre2-memleak
%endif
tar -xf %{SOURCE305}
%if %{with fancyindex}
@ -327,12 +318,6 @@ sed -i '1 i\LUAJIT_LIB=%{_libdir}' lua-nginx-module-%{luamod_ver}/config
%endif
%build
# %if 0%{?rhel} <= 7
# # Build with gcc8
# %enable_devtoolset8
# %endif
# nginx does not utilize a standard configure script. It has its own
# and the standard configure options cause the nginx configure script
# to error out. This is is also the reason for the DESTDIR environment
@ -341,9 +326,13 @@ sed -i '1 i\LUAJIT_LIB=%{_libdir}' lua-nginx-module-%{luamod_ver}/config
ngx_ldflags="$RPM_LD_FLAGS -Wl,-E"
ngx_cflags="%{optflags} $(pcre2-config --cflags) -DTCP_FASTOPEN=23 -fPIC"
%if %{with http3}
ngx_cflags="-I%{ssl_prefix}/include/libressl $ngx_cflags"
%else
%if 0%{?rhel} <= 8
ngx_cflags="-I%{ssl_prefix}/include/openssl3 $ngx_cflags"
%endif
%endif
%if %{with lua}
ngx_cflags="-DNGX_LUA_ABORT_AT_PANIC $ngx_cflags"
@ -377,8 +366,8 @@ export DESTDIR=%{buildroot}
--with-threads \
--with-http_ssl_module \
--with-http_v2_module \
%if %{with certmin_patches}
--with-http_v2_hpack_enc \
%if %{with http3}
--with-http_v3_module \
%endif
--with-http_realip_module \
--with-http_addition_module \
@ -681,6 +670,11 @@ fi
%endif
%changelog
* Wed Apr 24 2024 Raven <raven@sysadmins.ws> - 1.26.0-1
- new stable version
- get rid of http2 HPACK
- add http3 build ability
* Mon Apr 8 2024 Raven <raven@sysadmins.ws> - 1.24.0-5
- upgrade lua-nginx-module to 0.10.26

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,254 @@
What we do now:
We use a static record size of 4K. This gives a good balance of latency and
throughput.
Optimize latency:
By initialy sending small (1 TCP segment) sized records, we are able to avoid
HoL blocking of the first byte. This means TTFB is sometime lower by a whole
RTT.
Optimizing throughput:
By sending increasingly larger records later in the connection, when HoL is not
a problem, we reduce the overhead of TLS record (29 bytes per record with
GCM/CHACHA-POLY).
Logic:
Start each connection with small records (1369 byte default, change with
ssl_dyn_rec_size_lo). After a given number of records (40, change with
ssl_dyn_rec_threshold) start sending larger records (4229, ssl_dyn_rec_size_hi).
Eventually after the same number of records, start sending the largest records
(ssl_buffer_size).
In case the connection idles for a given amount of time (1s,
ssl_dyn_rec_timeout), the process repeats itself (i.e. begin sending small
records again).
diff --color -uNr a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
--- a/src/event/ngx_event_openssl.c 2023-06-13 23:08:10.000000000 +0800
+++ b/src/event/ngx_event_openssl.c 2023-06-14 15:43:05.834243714 +0800
@@ -1674,6 +1674,7 @@
sc->buffer = ((flags & NGX_SSL_BUFFER) != 0);
sc->buffer_size = ssl->buffer_size;
+ sc->dyn_rec = ssl->dyn_rec;
sc->session_ctx = ssl->ctx;
@@ -2645,6 +2646,41 @@
for ( ;; ) {
+ /* Dynamic record resizing:
+ We want the initial records to fit into one TCP segment
+ so we don't get TCP HoL blocking due to TCP Slow Start.
+ A connection always starts with small records, but after
+ a given amount of records sent, we make the records larger
+ to reduce header overhead.
+ After a connection has idled for a given timeout, begin
+ the process from the start. The actual parameters are
+ configurable. If dyn_rec_timeout is 0, we assume dyn_rec is off. */
+
+ if (c->ssl->dyn_rec.timeout > 0 ) {
+
+ if (ngx_current_msec - c->ssl->dyn_rec_last_write >
+ c->ssl->dyn_rec.timeout)
+ {
+ buf->end = buf->start + c->ssl->dyn_rec.size_lo;
+ c->ssl->dyn_rec_records_sent = 0;
+
+ } else {
+ if (c->ssl->dyn_rec_records_sent >
+ c->ssl->dyn_rec.threshold * 2)
+ {
+ buf->end = buf->start + c->ssl->buffer_size;
+
+ } else if (c->ssl->dyn_rec_records_sent >
+ c->ssl->dyn_rec.threshold)
+ {
+ buf->end = buf->start + c->ssl->dyn_rec.size_hi;
+
+ } else {
+ buf->end = buf->start + c->ssl->dyn_rec.size_lo;
+ }
+ }
+ }
+
while (in && buf->last < buf->end && send < limit) {
if (in->buf->last_buf || in->buf->flush) {
flush = 1;
@@ -2784,6 +2820,9 @@
if (n > 0) {
+ c->ssl->dyn_rec_records_sent++;
+ c->ssl->dyn_rec_last_write = ngx_current_msec;
+
if (c->ssl->saved_read_handler) {
c->read->handler = c->ssl->saved_read_handler;
diff --color -uNr a/src/event/ngx_event_openssl.h b/src/event/ngx_event_openssl.h
--- a/src/event/ngx_event_openssl.h 2023-06-13 23:08:10.000000000 +0800
+++ b/src/event/ngx_event_openssl.h 2023-06-14 15:43:05.834243714 +0800
@@ -86,10 +86,19 @@
typedef struct ngx_ssl_ocsp_s ngx_ssl_ocsp_t;
+typedef struct {
+ ngx_msec_t timeout;
+ ngx_uint_t threshold;
+ size_t size_lo;
+ size_t size_hi;
+} ngx_ssl_dyn_rec_t;
+
+
struct ngx_ssl_s {
SSL_CTX *ctx;
ngx_log_t *log;
size_t buffer_size;
+ ngx_ssl_dyn_rec_t dyn_rec;
};
@@ -128,6 +137,10 @@
unsigned in_ocsp:1;
unsigned early_preread:1;
unsigned write_blocked:1;
+
+ ngx_ssl_dyn_rec_t dyn_rec;
+ ngx_msec_t dyn_rec_last_write;
+ ngx_uint_t dyn_rec_records_sent;
};
@@ -137,7 +150,7 @@
#define NGX_SSL_DFLT_BUILTIN_SCACHE -5
-#define NGX_SSL_MAX_SESSION_SIZE 4096
+#define NGX_SSL_MAX_SESSION_SIZE 16384
typedef struct ngx_ssl_sess_id_s ngx_ssl_sess_id_t;
diff --color -uNr a/src/http/modules/ngx_http_ssl_module.c b/src/http/modules/ngx_http_ssl_module.c
--- a/src/http/modules/ngx_http_ssl_module.c 2023-06-13 23:08:10.000000000 +0800
+++ b/src/http/modules/ngx_http_ssl_module.c 2023-06-14 15:43:05.834243714 +0800
@@ -290,6 +290,41 @@
offsetof(ngx_http_ssl_srv_conf_t, reject_handshake),
NULL },
+ { ngx_string("ssl_dyn_rec_enable"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_flag_slot,
+ NGX_HTTP_SRV_CONF_OFFSET,
+ offsetof(ngx_http_ssl_srv_conf_t, dyn_rec_enable),
+ NULL },
+
+ { ngx_string("ssl_dyn_rec_timeout"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_msec_slot,
+ NGX_HTTP_SRV_CONF_OFFSET,
+ offsetof(ngx_http_ssl_srv_conf_t, dyn_rec_timeout),
+ NULL },
+
+ { ngx_string("ssl_dyn_rec_size_lo"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_size_slot,
+ NGX_HTTP_SRV_CONF_OFFSET,
+ offsetof(ngx_http_ssl_srv_conf_t, dyn_rec_size_lo),
+ NULL },
+
+ { ngx_string("ssl_dyn_rec_size_hi"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_size_slot,
+ NGX_HTTP_SRV_CONF_OFFSET,
+ offsetof(ngx_http_ssl_srv_conf_t, dyn_rec_size_hi),
+ NULL },
+
+ { ngx_string("ssl_dyn_rec_threshold"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_num_slot,
+ NGX_HTTP_SRV_CONF_OFFSET,
+ offsetof(ngx_http_ssl_srv_conf_t, dyn_rec_threshold),
+ NULL },
+
ngx_null_command
};
@@ -629,6 +664,11 @@
sscf->ocsp_cache_zone = NGX_CONF_UNSET_PTR;
sscf->stapling = NGX_CONF_UNSET;
sscf->stapling_verify = NGX_CONF_UNSET;
+ sscf->dyn_rec_enable = NGX_CONF_UNSET;
+ sscf->dyn_rec_timeout = NGX_CONF_UNSET_MSEC;
+ sscf->dyn_rec_size_lo = NGX_CONF_UNSET_SIZE;
+ sscf->dyn_rec_size_hi = NGX_CONF_UNSET_SIZE;
+ sscf->dyn_rec_threshold = NGX_CONF_UNSET_UINT;
return sscf;
}
@@ -694,6 +734,20 @@
ngx_conf_merge_str_value(conf->stapling_responder,
prev->stapling_responder, "");
+ ngx_conf_merge_value(conf->dyn_rec_enable, prev->dyn_rec_enable, 0);
+ ngx_conf_merge_msec_value(conf->dyn_rec_timeout, prev->dyn_rec_timeout,
+ 1000);
+ /* Default sizes for the dynamic record sizes are defined to fit maximal
+ TLS + IPv6 overhead in a single TCP segment for lo and 3 segments for hi:
+ 1369 = 1500 - 40 (IP) - 20 (TCP) - 10 (Time) - 61 (Max TLS overhead) */
+ ngx_conf_merge_size_value(conf->dyn_rec_size_lo, prev->dyn_rec_size_lo,
+ 1369);
+ /* 4229 = (1500 - 40 - 20 - 10) * 3 - 61 */
+ ngx_conf_merge_size_value(conf->dyn_rec_size_hi, prev->dyn_rec_size_hi,
+ 4229);
+ ngx_conf_merge_uint_value(conf->dyn_rec_threshold, prev->dyn_rec_threshold,
+ 40);
+
conf->ssl.log = cf->log;
if (conf->certificates) {
@@ -890,6 +944,28 @@
return NGX_CONF_ERROR;
}
+ if (conf->dyn_rec_enable) {
+ conf->ssl.dyn_rec.timeout = conf->dyn_rec_timeout;
+ conf->ssl.dyn_rec.threshold = conf->dyn_rec_threshold;
+
+ if (conf->buffer_size > conf->dyn_rec_size_lo) {
+ conf->ssl.dyn_rec.size_lo = conf->dyn_rec_size_lo;
+
+ } else {
+ conf->ssl.dyn_rec.size_lo = conf->buffer_size;
+ }
+
+ if (conf->buffer_size > conf->dyn_rec_size_hi) {
+ conf->ssl.dyn_rec.size_hi = conf->dyn_rec_size_hi;
+
+ } else {
+ conf->ssl.dyn_rec.size_hi = conf->buffer_size;
+ }
+
+ } else {
+ conf->ssl.dyn_rec.timeout = 0;
+ }
+
return NGX_CONF_OK;
}
diff --color -uNr a/src/http/modules/ngx_http_ssl_module.h b/src/http/modules/ngx_http_ssl_module.h
--- a/src/http/modules/ngx_http_ssl_module.h 2023-06-13 23:08:10.000000000 +0800
+++ b/src/http/modules/ngx_http_ssl_module.h 2023-06-14 15:43:38.264102815 +0800
@@ -62,6 +62,12 @@
ngx_flag_t stapling_verify;
ngx_str_t stapling_file;
ngx_str_t stapling_responder;
+
+ ngx_flag_t dyn_rec_enable;
+ ngx_msec_t dyn_rec_timeout;
+ size_t dyn_rec_size_lo;
+ size_t dyn_rec_size_hi;
+ ngx_uint_t dyn_rec_threshold;
} ngx_http_ssl_srv_conf_t;