diff --git a/Bugs.md b/Bugs.md index 28d0317..31c5e05 100644 --- a/Bugs.md +++ b/Bugs.md @@ -1238,6 +1238,22 @@ Thanks to Oliver Friedmann for providing a pull request. ## Issue 66 + * github issue number: #65 + * Fixed 2.2.3 + +In Cagebreak 2.2.2 the compatible wlroots versions were wrongly specified. +To stop this from reoccurring, we have added a check to our release checks. + +## Issue 67 + + * github issue number: #66 + * Fixed 2.2.3 + +In Cagebreak 2.2.2 dual monitors were mirrored instead of extended, changing +established behaviour. + +## Issue 68 + * github issue numner: #38 * Fixed: 2.3.0 diff --git a/Hashes.md b/Hashes.md index 240925f..867692b 100644 --- a/Hashes.md +++ b/Hashes.md @@ -1,5 +1,45 @@ # Hashes +2.2.3 cagebreak + + * sha 256: 265a9d09622272ca6ea79ddcdbdc6003704106814eb05a2b7547a77a982263de + * sha 512: 757f837a7e6ddd71fed88c4e1aab5cab9d4d07e8b76f280eed9afa35a2eaee23c0553299fe49a0139c754179d0df68c1303725f1f909921d078516e14ba3f21f + +2.2.3 cagebreak.1 + + * sha 256: 275698641476efa40fc1b33a8025e6dbba3ec931fbaf0a627c0748dad987ed4d + * sha 512: 617891ded06657e31daefee84a03191ad6e03892118f1790a5ebaa6e847c4d18d4b6849edc00841bd68abc9e0e0a111153efe102db02ce3d408c903b0d045927 + +2.2.3 cagebreak-config.5 + + * sha 256: 5967e9131d1ee16ffa046a732911c902e41f2e18f3170d11a47b9be596b4978a + * sha 512: 6d3c5fbb2b95a75d7c5a8ed8b5922cfcc4135857b389652572c5d9c211c6da9cf8ef0b5dc0e8eaa540c6b1c2dd215f512df2ef49ce80c34e8e5ad170bfb7134e + +2.2.3 cagebreak-socket.7 + + * sha 256: cb1bde8a6fb2a1fa2b7b8db7fdef9b933cd471ca604e15d1dd9133859fa6eea3 + * sha 512: 1d99672cb7ac7323790d47986d206bf8c392698db0cd52978963deb6e85118c6822e2d45c7fa66e8636e95214f8893d963a3157ca24239d2fd2d78b1e26f11e7 + +2.2.2 cagebreak + + * sha 256: 98e0dfe870a7242fdf7c6fb1a5c520cfe7d1154b3f139560da6cb86b2430b2a0 + * sha 512: c335f8f6e226203e797e232caead74db9b1e7f24d5edf80dd99a0c00c5f4e81351a5ddcad4f601a12618ebed5c62be547462c4f06ae4ccb6a622a869ee8741ec + +2.2.2 cagebreak.1 + + * sha 256: c655fff018377b5ee541854ee428559ba4c5080d44f87247fe608f18651b0764 + * sha 512: 7cbef17cbe3c59cde21466d6c76e1a34ffce748d2d9011a77bd7703f605b737e344cabaad1e3a599316321481524cb860b2533ab6bef2e7714c00b2641fe962c + +2.2.2 cagebreak-config.5 + + * sha 256: b799e0252d7224befc92bdd143d00dc3f42a38e39f510f3ace575b03f293a788 + * sha 512: 3778db9ff07429efb74b4b07476193844698e07ea91a742aac078391ba38fb07987dc61ba312c30b6eb04ad2d847ee552826e7a09be8dc572be5626c27059df3 + +2.2.2 cagebreak-socket.7 + + * sha 256: dd10359fd1840909bb817858668e67bdd433f367b0ed199328e4b29c99529322 + * sha 512: 67f8c39864472c9b2396946a943ce249297b1b9fc5e452a4051f0512fd61b4a22906e1a16aee1c2bf6cacb3b9cd7a11da19c5d760c192020402008eab379eee1 + 2.2.1 cagebreak * sha 256: 96469a78eeaddf9476c82e0ab8a0e35a95b3119bf83633a54feb8f3f5780df2f diff --git a/README.md b/README.md index b2abac4..def7f28 100644 --- a/README.md +++ b/README.md @@ -9,25 +9,21 @@ based on [Cage](https://github.com/Hjdskes/cage) and inspired by [ratpoison](htt ### Purpose -The goal of this project is to provide a successor to ratpoison for Wayland. +This project provides a successor to ratpoison for Wayland. However, this is no reimplementation of ratpoison. #### New Features, Bugs and Contact Information -Should you want to know if a feature will be implemented, file a bug or -get in touch, [open an issue](https://github.com/project-repo/cagebreak/issues/new) +You can [open an issue](https://github.com/project-repo/cagebreak/issues/new) or write an e-mail (See [SECURITY.md](SECURITY.md) for details.). -The Roadmap section outlines what is planned for the future. +The Roadmap section outlines our plans. #### Compatibility & Development Distribution Cagebreak supports [Arch Linux](https://archlinux.org/) and uses the libraries -(and software versions) as they are obtained through [pacman](https://wiki.archlinux.org/title/Pacman) -at the time of release. Any other use is out of scope. - -Most other setups probably work with a bit of luck. We -make no guarantees. +and versions from extra and core at the time of release. +Most other setups work with a bit of luck. ### Quick Installation @@ -42,17 +38,12 @@ details on getting started and the documentation for everything else. ### Documentation - * the rest of this file - * the man pages: - * [cagebreak](man/cagebreak.1.md) - * [configuration](man/cagebreak-config.5.md) - * [socket](man/cagebreak-socket.7.md) - * the [FAQ](FAQ.md) - * [SECURITY.md](SECURITY.md) + * the man pages: [cagebreak](man/cagebreak.1.md), [configuration](man/cagebreak-config.5.md) & [socket](man/cagebreak-socket.7.md) + * the [README](README.md), [FAQ](FAQ.md) & [SECURITY.md](SECURITY.md) #### What's new? -See the [Changelog](Changelog.md). +Check the [Changelog](Changelog.md). ### Uninstallation @@ -60,9 +51,9 @@ See the [Changelog](Changelog.md). ### Contributing - * Just [open an issue](https://github.com/project-repo/cagebreak/issues/new) and state your idea. - We will consider the proposal and get back to you. - * Don't open a pull request. We might not accept your code and + * [Open an issue](https://github.com/project-repo/cagebreak/issues/new) and state your idea. + We will get back to you. + * Ask before you open a pull request. We might not accept your code and it would be sad to waste the effort. * Respect the [Code of Conduct](CODE_OF_CONDUCT.md) (To date, we never had to intervene - Keep it that way!) @@ -208,16 +199,16 @@ as a source of inspiration and explanations for certain particularities. ## Contributing * Read this document. - * Just [open an issue](https://github.com/project-repo/cagebreak/issues/new) and state your feature request. - We will consider the proposal and get back to you. - * Don't open a pull request without asking first. We might not accept your + * [Open an issue](https://github.com/project-repo/cagebreak/issues/new) and state your feature request. + We will get back to you. + * Ask before opening a pull request. We might not accept your code and it would be sad to waste the effort. * Respect the [Code of Conduct](CODE_OF_CONDUCT.md) (To date, we never had to intervene - Please keep it that way!) ### Good First Contributions - * Reviewing the project is always welcome. + * Reviews are always welcome. * Read the code. * Read the documentation. * Test whether the documentation matches the code. @@ -225,12 +216,12 @@ as a source of inspiration and explanations for certain particularities. * Compile the code. * Ideas on improving the testing and quality assurance are particularly welcome. - * If you want, you can share your cagebreak scripts and we might include them - in the repository provided you agree to release them under MIT and we agree - with the use case and coding style. - * Iff you are happy with Cagebreak and use Arch Linux, you may vote for + * You can share your cagebreak scripts and we might include them with Cagebreak + provided you agree to release them under MIT and we agree with the + use case and coding style. + * If you are happy with Cagebreak under Arch Linux, you may vote for [Cagebreak in the AUR](https://aur.archlinux.org/packages/cagebreak). - * The points above still apply. + * The points from the Contributing section above still apply. ### Philosophy diff --git a/SECURITY.md b/SECURITY.md index 2f33197..a55a2b4 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -51,11 +51,10 @@ public key or provide the fingerprint and directions to obtain the key. ## Threat Model -Cagebreak is a wayland compositor run by the user of the system -and thus has access to whichever resources this user has access to. -Cagebreak can restrict other programs in no way, because this would hamper -usability (consider a web browser unable to write a downloaded file to disk -for instance). +Cagebreak is a wayland compositor run by a user and has access to +the resources the user has access to. +Cagebreak cannot restrict other programs (consider a web browser +unable to write a downloaded file for instance). There is no transmission of information by cagebreak other than to the screens, ipc and potentially other documented local channels. @@ -63,38 +62,36 @@ screens, ipc and potentially other documented local channels. ### STRIDE Threat List This is not a thorough analysis, just an overview of the ways in which cagebreak -has (no) attack surface. Please reference the man pages for details but especially -the -e and --bs options. +has (no) attack surface. Please reference the man pages (especially options -e and --bs ). #### Spoofing -Not applicable - Using Cagebreak already requires a login as a user. +Not applicable - Cagebreak is executed after user login. #### Tampering -Not applicable - Cagebreak must allow system manipulation for user software. +Not applicable - Cagebreak allows system manipulation for user software. #### Repudiation Not applicable - There are no prohibited operations (See Tampering above.). -While cagebreak does send events over documented channels there is no logging -activated by default, though, of course, this can be changed by the user -by logging socket output (if enabled) for example. +Cagebreak sends events over documented channels. There is no logging +activated by default - this can be changed by logging the socket (if enabled) for example. #### Information Disclosure -Not applicable - Information disclosure over documented channels is a feature -and any software run by the user may exfiltrate any data the user has access to. +Not applicable - Information disclosure over documented channels is a feature. +Any user software may exfiltrate any data the user has access to. #### Denial of Service -Not applicable - Cagebreak offers functionality to terminate itself, which is -available to all user software over the socket if the socket is enabled. +Not applicable - Cagebreak offers functionality to terminate itself. This is +available to user software over the socket (if enabled). #### Elevation of Privilege -Software may gain arbitrary code execution rights if it has access to the -Cagebreak socket. Privilege escalation to root is unlikely since privileges +Software may gain arbitrary code execution if it has access to the +socket (if enabled). Privilege escalation to root is unlikely since privileges are dropped before any user input is accepted. ## GPG Keys of the Cagebreak Repository diff --git a/fuzz/fuzz-lib.c b/fuzz/fuzz-lib.c index 661eac6..181336c 100644 --- a/fuzz/fuzz-lib.c +++ b/fuzz/fuzz-lib.c @@ -272,7 +272,7 @@ LLVMFuzzerInitialize(int *argc, char ***argv) { } server.scene_output_layout=wlr_scene_attach_output_layout(server.scene, server.output_layout); - compositor = wlr_compositor_create(server.wl_display, 5,server.renderer); + compositor = wlr_compositor_create(server.wl_display, 6,server.renderer); if(!compositor) { wlr_log(WLR_ERROR, "Unable to create the wlroots compositor"); ret = 1; diff --git a/meson.build b/meson.build index ac5c891..08dd8d1 100644 --- a/meson.build +++ b/meson.build @@ -204,15 +204,15 @@ reproducible_build_versions = { 'wayland_server': '1.19.0', 'wayland_client': '1.22.0', 'wayland_cursor': '1.22.0', - 'wlroots': '0.16.2', - 'xkbcommon': '1.5.0', + 'wlroots': '0.17.0', + 'xkbcommon': '1.6.0', 'fontconfig': '2.14.2', 'libinput': '1.24.0', 'libevdev': '1.13.1', 'libudev': '254', - 'pango': '1.50.14', - 'cairo': '1.17.8', - 'pangocairo': '1.50.14', + 'pango': '1.51.0', + 'cairo': '1.18.0', + 'pangocairo': '1.51.0', 'math': '-1' } @@ -260,7 +260,7 @@ install_data('LICENSE', install_dir : '/usr/share/licenses/' + meson.project_nam if get_option('man-pages') scdoc = find_program('scdoc') - secssinceepoch = 1692353837 + secssinceepoch = 1701768836 shcommand = 'export SOURCE_DATE_EPOCH=' + secssinceepoch.to_string() + ' ; @0@ < @INPUT@'.format(scdoc.path()) sh = find_program('sh') mandir1 = join_paths(get_option('mandir'), 'man1') diff --git a/output.c b/output.c index d0aedc7..07a675f 100644 --- a/output.c +++ b/output.c @@ -16,6 +16,7 @@ #endif #include #include +#include #include #include #include diff --git a/release-non-auto-checks/Bugs.md b/release-non-auto-checks/Bugs.md index d340262..16e03cd 100644 --- a/release-non-auto-checks/Bugs.md +++ b/release-non-auto-checks/Bugs.md @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/FAQ.md b/release-non-auto-checks/FAQ.md index d340262..16e03cd 100644 --- a/release-non-auto-checks/FAQ.md +++ b/release-non-auto-checks/FAQ.md @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/SECURITY.md b/release-non-auto-checks/SECURITY.md index d340262..16e03cd 100644 --- a/release-non-auto-checks/SECURITY.md +++ b/release-non-auto-checks/SECURITY.md @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/WLR_XDG_VERSION b/release-non-auto-checks/WLR_XDG_VERSION index d340262..16e03cd 100644 --- a/release-non-auto-checks/WLR_XDG_VERSION +++ b/release-non-auto-checks/WLR_XDG_VERSION @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/acknowledge-contributors b/release-non-auto-checks/acknowledge-contributors index d340262..16e03cd 100644 --- a/release-non-auto-checks/acknowledge-contributors +++ b/release-non-auto-checks/acknowledge-contributors @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/changelog-major-minor b/release-non-auto-checks/changelog-major-minor index d340262..16e03cd 100644 --- a/release-non-auto-checks/changelog-major-minor +++ b/release-non-auto-checks/changelog-major-minor @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/internal-wiki b/release-non-auto-checks/internal-wiki index d340262..16e03cd 100644 --- a/release-non-auto-checks/internal-wiki +++ b/release-non-auto-checks/internal-wiki @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/release-note b/release-non-auto-checks/release-note index d340262..16e03cd 100644 --- a/release-non-auto-checks/release-note +++ b/release-non-auto-checks/release-note @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/reproducibility-checked b/release-non-auto-checks/reproducibility-checked index d340262..16e03cd 100644 --- a/release-non-auto-checks/reproducibility-checked +++ b/release-non-auto-checks/reproducibility-checked @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/security-to-man-page-info-transfer b/release-non-auto-checks/security-to-man-page-info-transfer index d340262..16e03cd 100644 --- a/release-non-auto-checks/security-to-man-page-info-transfer +++ b/release-non-auto-checks/security-to-man-page-info-transfer @@ -1,2 +1,2 @@ -2.2.1 -2023-08-21 +2.2.3 +2023-12-05 diff --git a/release-non-auto-checks/version-restrictions b/release-non-auto-checks/version-restrictions new file mode 100644 index 0000000..16e03cd --- /dev/null +++ b/release-non-auto-checks/version-restrictions @@ -0,0 +1,2 @@ +2.2.3 +2023-12-05 diff --git a/seat.c b/seat.c index a1fffa1..79aa668 100644 --- a/seat.c +++ b/seat.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -746,7 +747,8 @@ process_cursor_motion(struct cg_seat *seat, uint32_t time) { break; } } - if(seat->cursor_tile != NULL && seat->cursor_tile != c_tile) { + if(seat->cursor_tile != NULL && seat->cursor_tile != c_tile && + seat->server->running) { ipc_send_event(seat->server, "{\"event_name\":\"cursor_switch_tile\",\"old_output\":" "\"%s\",\"old_output_id\":%d," diff --git a/signatures/2.2.1-cagebreak-config.5.sig b/signatures/2.2.1-cagebreak-config.5.sig new file mode 100644 index 0000000..4a959e1 Binary files /dev/null and b/signatures/2.2.1-cagebreak-config.5.sig differ diff --git a/signatures/2.2.1-cagebreak-socket.7.sig b/signatures/2.2.1-cagebreak-socket.7.sig new file mode 100644 index 0000000..c2006c1 Binary files /dev/null and b/signatures/2.2.1-cagebreak-socket.7.sig differ diff --git a/signatures/2.2.1-cagebreak.1.sig b/signatures/2.2.1-cagebreak.1.sig new file mode 100644 index 0000000..cdbd781 Binary files /dev/null and b/signatures/2.2.1-cagebreak.1.sig differ diff --git a/signatures/2.2.1-cagebreak.sig b/signatures/2.2.1-cagebreak.sig new file mode 100644 index 0000000..f24848b Binary files /dev/null and b/signatures/2.2.1-cagebreak.sig differ diff --git a/signatures/2.2.2-cagebreak-config.5.sig b/signatures/2.2.2-cagebreak-config.5.sig new file mode 100644 index 0000000..811fe37 Binary files /dev/null and b/signatures/2.2.2-cagebreak-config.5.sig differ diff --git a/signatures/2.2.2-cagebreak-socket.7.sig b/signatures/2.2.2-cagebreak-socket.7.sig new file mode 100644 index 0000000..e46522f Binary files /dev/null and b/signatures/2.2.2-cagebreak-socket.7.sig differ diff --git a/signatures/2.2.2-cagebreak.1.sig b/signatures/2.2.2-cagebreak.1.sig new file mode 100644 index 0000000..36b2c99 Binary files /dev/null and b/signatures/2.2.2-cagebreak.1.sig differ diff --git a/signatures/2.2.2-cagebreak.sig b/signatures/2.2.2-cagebreak.sig new file mode 100644 index 0000000..ca4ae14 Binary files /dev/null and b/signatures/2.2.2-cagebreak.sig differ diff --git a/signatures/cagebreak-config.5.sig b/signatures/cagebreak-config.5.sig index 4a959e1..6d7f6c1 100644 Binary files a/signatures/cagebreak-config.5.sig and b/signatures/cagebreak-config.5.sig differ diff --git a/signatures/cagebreak-socket.7.sig b/signatures/cagebreak-socket.7.sig index c2006c1..5e37733 100644 Binary files a/signatures/cagebreak-socket.7.sig and b/signatures/cagebreak-socket.7.sig differ diff --git a/signatures/cagebreak.1.sig b/signatures/cagebreak.1.sig index cdbd781..14ac7ab 100644 Binary files a/signatures/cagebreak.1.sig and b/signatures/cagebreak.1.sig differ diff --git a/signatures/cagebreak.sig b/signatures/cagebreak.sig index f24848b..b061305 100644 Binary files a/signatures/cagebreak.sig and b/signatures/cagebreak.sig differ