Merge branch 'master' into development

This commit is contained in:
project-repo 2023-12-21 19:40:58 +01:00
commit fcafa33400
31 changed files with 124 additions and 75 deletions

16
Bugs.md
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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')

View file

@ -16,6 +16,7 @@
#endif
#include <wlr/backend/headless.h>
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_cursor.h>
#include <wlr/types/wlr_data_device.h>
#include <wlr/types/wlr_output.h>
#include <wlr/types/wlr_output_layout.h>

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -1,2 +1,2 @@
2.2.1
2023-08-21
2.2.3
2023-12-05

View file

@ -0,0 +1,2 @@
2.2.3
2023-12-05

4
seat.c
View file

@ -14,6 +14,7 @@
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_cursor.h>
#include <wlr/types/wlr_data_device.h>
#include <wlr/types/wlr_idle_notify_v1.h>
#include <wlr/types/wlr_keyboard_group.h>
#include <wlr/types/wlr_primary_selection.h>
#include <wlr/types/wlr_scene.h>
@ -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,"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.