redox-os issueshttps://gitlab.redox-os.org/groups/redox-os/-/issues2023-04-27T05:18:44Zhttps://gitlab.redox-os.org/redox-os/drivers/-/issues/34Tracking issue for acpid features2023-04-27T05:18:44ZRon WilliamsTracking issue for acpid features`acpid` needs the following features (among other things). Each item is relatively separate. A star at the end means you will need to understand the domain well. + or ++ indicates more effort.
- [ ] fix bug in `acpid` when using Rusty Ob...`acpid` needs the following features (among other things). Each item is relatively separate. A star at the end means you will need to understand the domain well. + or ++ indicates more effort.
- [ ] fix bug in `acpid` when using Rusty Object Notation for serialization - See #33 (ACPI knowledge not needed)
- [ ] change the `acpi` crate from `github.com/rust-osdev/acpi` so the table types are not parameterized `<H>`, but the `new` function is, and add a `from_table` new function that takes a virtual memory byte stream and creates a new table *++ https://github.com/rust-osdev/acpi/issues/172
- [ ] publish various acpi tables as serialized data, and provide a serialized interface definition *++
- [ ] implement some acpi related functionality such as battery management, as a way of clarifying requirements for acpi *+
- [ ] implement new acpi table types such as DMAR (we have a partial implementation of DMAR) *++https://gitlab.redox-os.org/redox-os/rusttype/-/issues/161Fallible outline builder2023-04-26T09:18:28ZGijs BurghoornFallible outline builderSince `OutlineBuilder` usually builds into some `String` or some struct that implements `io::Write`, it would be nice to be able to have a `FallibleOutlineBuilder` that results in a `Result<()>` with a `Error` as an associated type for t...Since `OutlineBuilder` usually builds into some `String` or some struct that implements `io::Write`, it would be nice to be able to have a `FallibleOutlineBuilder` that results in a `Result<()>` with a `Error` as an associated type for the `line_to`, `move_to`, etc.
I am not 100% sure how this should be incorporated. Possibly, we could make `OutlineBuilder` a supertrait of `FallibleOutlineBuilder` with the `Error=!`. If it is wanted, I can attempt to make an MR for this.https://gitlab.redox-os.org/redox-os/drivers/-/issues/33acpid: Change serialization of symbols to use Rusty Object Notation2023-06-11T09:22:45ZRon Williamsacpid: Change serialization of symbols to use Rusty Object NotationIn `acpid`, near https://gitlab.redox-os.org/redox-os/drivers/-/blob/master/acpid/src/acpi.rs#L342
```
if let Ok(ser_string) = serde_json::to_string_pretty(&ser_value) {
```
We would like to use Rusty Object Notation, but it crashes duri...In `acpid`, near https://gitlab.redox-os.org/redox-os/drivers/-/blob/master/acpid/src/acpi.rs#L342
```
if let Ok(ser_string) = serde_json::to_string_pretty(&ser_value) {
```
We would like to use Rusty Object Notation, but it crashes during initialization when it tries to fill with random data. It crashes accessing `/dev/rand`. This needs to be fixed and serialization converted to RON.https://gitlab.redox-os.org/redox-os/orbutils/-/issues/65Make apps and icons of launcher configurable2023-04-25T12:27:20ZAndrew MackenzieMake apps and icons of launcher configurableAdd a config file read at startup (or restart/signal?) that lists the dock contents:
- icon to show, binary name to invoke, hotkey to be used
So that people can edit it and replace or add to the listAdd a config file read at startup (or restart/signal?) that lists the dock contents:
- icon to show, binary name to invoke, hotkey to be used
So that people can edit it and replace or add to the listhttps://gitlab.redox-os.org/redox-os/orbutils/-/issues/64Add calculator to CI2023-05-08T09:47:45ZAndrew MackenzieAdd calculator to CIOnce MR is merged that adds CI on linux for most of the apps, then fix the CI build problem with calculator (related to slint) and add it to the build and test CI on all platforms that are supported.
This is the error currently:
```
I h...Once MR is merged that adds CI on linux for most of the apps, then fix the CI build problem with calculator (related to slint) and add it to the build and test CI on all platforms that are supported.
This is the error currently:
```
I haven't been able to get calculator to run on linux yet and hence it is not tested in CI either.
It fails with the following error:
error: The platform you're compiling for is not supported by winit
--> /home/andrew/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.28.3/src/platform_impl/mod.rs:67:1
|
67 | compile_error!("The platform you're compiling for is not supported by winit");
If anyone can help me fix that, we can then add it to CI on linux also.
```https://gitlab.redox-os.org/redox-os/orbutils/-/issues/63Get redoxer CI working2023-04-25T15:29:26ZAndrew MackenzieGet redoxer CI workingOnce https://gitlab.redox-os.org/redox-os/orbutils/-/merge_requests/60 is merged and linux has CI, then fix the CI for redox-os build and testOnce https://gitlab.redox-os.org/redox-os/orbutils/-/merge_requests/60 is merged and linux has CI, then fix the CI for redox-os build and testhttps://gitlab.redox-os.org/redox-os/orbclient/-/issues/50Move "bench tests" in examples to be real rust bench tests2023-04-20T13:47:14ZAndrew MackenzieMove "bench tests" in examples to be real rust bench testshttps://gitlab.redox-os.org/redox-os/book/-/issues/143Add warning/instructions for macos dependency : bison2023-04-17T08:18:05ZAndrew MackenzieAdd warning/instructions for macos dependency : bisonmacos has a version of bison already installed, but it is too old and the build fails.
installing a newer version of bison using brew is needed.
However, the brew install of bison is "keg only" and not added to the path.
If you add it...macos has a version of bison already installed, but it is too old and the build fails.
installing a newer version of bison using brew is needed.
However, the brew install of bison is "keg only" and not added to the path.
If you add it to the path AFTER the apple version, you will continue to be using the older version and build will fail.
So, you need to follow the instructions printed out from brew when running "brew install bison" and add it to the start of your $PATH
Here is the output of me re-installing it
```
❯ brew reinstall bison
==> Fetching bison
==> Downloading https://ghcr.io/v2/homebrew/core/bison/manifests/3.8.2
Already downloaded: /Users/andrew/Library/Caches/Homebrew/downloads/0a84b14c20dfba4609542ea4b14a4eb93d369f7f83f373b568017fc7d76b6505--bison-3.8.2.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/bison/blobs/sha256:fc0224d45c74ee561128eb9df366ccb08698b1d659cfb92ea746e57da0108806
Already downloaded: /Users/andrew/Library/Caches/Homebrew/downloads/0865a0dc7ef4c841a5650a22e6ce05918c025ca1dbadf91d0e18551aca1f4ac3--bison--3.8.2.ventura.bottle.tar.gz
==> Reinstalling bison
==> Pouring bison--3.8.2.ventura.bottle.tar.gz
==> Caveats
bison is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have bison first in your PATH, run:
echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.zshrc
For compilers to find bison you may need to set:
export LDFLAGS="-L/usr/local/opt/bison/lib"
==> Summary
🍺 /usr/local/Cellar/bison/3.8.2: 99 files, 3.7MB
==> Running `brew cleanup bison`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Warning: Calling plist_options is deprecated! Use service.require_root instead.
Please report this issue to the ethersphere/tap tap (not Homebrew/brew or Homebrew/homebrew-core), or even better, submit a PR to fix it:
/usr/local/Homebrew/Library/Taps/ethersphere/homebrew-tap/swarm-clef.rb:53
Warning: Calling plist_options is deprecated! Use service.require_root instead.
Please report this issue to the ethersphere/tap tap (not Homebrew/brew or Homebrew/homebrew-core), or even better, submit a PR to fix it:
/usr/local/Homebrew/Library/Taps/ethersphere/homebrew-tap/swarm-bee.rb:56
```https://gitlab.redox-os.org/redox-os/orbutils/-/issues/62Current master is in a broken state2023-04-07T09:43:44ZKivimangoCurrent master is in a broken stateHello !
I would like to commit my orblogin slint port, but I'm blocked by the current state of the master branch:
running `cargo run --bin calculator --release` on a Manjaro Linux fails to compile due to winit error:
```
error: The plat...Hello !
I would like to commit my orblogin slint port, but I'm blocked by the current state of the master branch:
running `cargo run --bin calculator --release` on a Manjaro Linux fails to compile due to winit error:
```
error: The platform you're compiling for is not supported by winit
--> /home/sapka/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.28.1/src/platform_impl/mod.rs:67:1
|
67 | compile_error!("The platform you're compiling for is not supported by winit");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
When i enable the default features in `calculator/Cargo.toml` for slint, it compiles fine.
```
slint = { git = "https://github.com/slint-ui/slint", features = ["compat-0-3-0", "renderer-winit-software"] }
```https://gitlab.redox-os.org/redox-os/orbital/-/issues/67Focus not set to top window when SUPER-TAB switching between windows2023-04-05T18:28:30ZAndrew MackenzieFocus not set to top window when SUPER-TAB switching between windowsWhen super-tab switching, we attempt to set the focus to the new window, but it doesn't appear to be working, and all the windows are left without focus and it seems to move to the launcher.
This causes problems such as key input to the...When super-tab switching, we attempt to set the focus to the new window, but it doesn't appear to be working, and all the windows are left without focus and it seems to move to the launcher.
This causes problems such as key input to the new window being lost and some keyboard shortcuts inadvertently modifying the Launcher window.https://gitlab.redox-os.org/redox-os/orbital/-/issues/66Improve SUPER overlay2023-04-04T17:19:54ZAndrew MackenzieImprove SUPER overlayIdeas for improving it:
- small delay before showing it, so in normal use when user types the other key "immediately" it is not shown.
- Better texts, shorter, easier to read
- Use of Unicode characters for some of the keys
- Better stylingIdeas for improving it:
- small delay before showing it, so in normal use when user types the other key "immediately" it is not shown.
- Better texts, shorter, easier to read
- Use of Unicode characters for some of the keys
- Better stylinghttps://gitlab.redox-os.org/redox-os/orbital/-/issues/65Maximize/restore window with double-clock on titlebar2023-04-04T16:21:27ZAndrew MackenzieMaximize/restore window with double-clock on titlebarWill need to investigate where to add double-clock detection, in Orbital or in the mouse event generation?
I think better the second, but will require modification of the mouse event (Orbclient?) so other apps can also receive it...Will need to investigate where to add double-clock detection, in Orbital or in the mouse event generation?
I think better the second, but will require modification of the mouse event (Orbclient?) so other apps can also receive it...https://gitlab.redox-os.org/redox-os/orbital/-/issues/63Sometimes super events being sent to Launcher is not working2023-04-04T08:37:28ZAndrew MackenzieSometimes super events being sent to Launcher is not workingAfter logout and backing?
Super-T for terminal and the like stop workingAfter logout and backing?
Super-T for terminal and the like stop workinghttps://gitlab.redox-os.org/redox-os/orbital/-/issues/62Orbital processing super-key events at login window2023-04-04T08:36:45ZAndrew MackenzieOrbital processing super-key events at login windowAll the logic for super-key events for shortcuts etc are still being processed when the login window is displayed.
I think it will need some sort of special mode for login window?
Or maybe the super key events are not being sent correc...All the logic for super-key events for shortcuts etc are still being processed when the login window is displayed.
I think it will need some sort of special mode for login window?
Or maybe the super key events are not being sent correctly to login window (in place of launcher window) when it is being displayed?
Related to the "Hack" to send to the lowest numbered window?
All windows should be killed and ONLY window alive is login window, hence it gets the Super key events?
-> still need to disable Orbital from reacting to super keys itself?https://gitlab.redox-os.org/redox-os/redox/-/issues/1371Open of "rand:" fails when acpid tries to use toml::to_string()2023-10-27T11:09:37ZRon WilliamsOpen of "rand:" fails when acpid tries to use toml::to_string()After user login, in `acpid`, I attempted to serialize `derive`d data using `toml::to_string()`. This caused the rand.rs method `fill_bytes` to be called. `fill_bytes` attempted to open `rand:`, failing with error code 19, "No such devic...After user login, in `acpid`, I attempted to serialize `derive`d data using `toml::to_string()`. This caused the rand.rs method `fill_bytes` to be called. `fill_bytes` attempted to open `rand:`, failing with error code 19, "No such device". However, other uses of `rand:` seem to work fine.https://gitlab.redox-os.org/redox-os/relibc/-/issues/174Use corresponding syscalls for {p,}{read,write}{v,}2024-03-26T16:19:51ZJacob Lorentzon4ldo2@protonmail.comUse corresponding syscalls for {p,}{read,write}{v,}Currently, only read and write, out of read/pread/readv/preadv/preadv2 and write/pwrite/writev/pwritev/pwritev2, are part of the platform abstraction trait. On Linux, adding missing syscall wrappers for this would be relatively easy, and...Currently, only read and write, out of read/pread/readv/preadv/preadv2 and write/pwrite/writev/pwritev/pwritev2, are part of the platform abstraction trait. On Linux, adding missing syscall wrappers for this would be relatively easy, and Redox will likely get support for them soon (only preadv2 and pwritev2 as they are the superset of all the other ones).https://gitlab.redox-os.org/redox-os/redoxer/-/issues/8redoxer exec: Input/output error (os error 5) on Fedora Linux 37 (Cinnamon) x...2024-02-03T23:27:01ZFlorian Naumannredoxer exec: Input/output error (os error 5) on Fedora Linux 37 (Cinnamon) x86_64 for redoxer exec/testWhen I run "redoxer test" in rust project I get the following error message.
```text
redoxer: building base
redoxer exec: Input/output error (os error 5)
error: test failed, to rerun pass `--lib`
Caused by:
process didn't exit succes...When I run "redoxer test" in rust project I get the following error message.
```text
redoxer: building base
redoxer exec: Input/output error (os error 5)
error: test failed, to rerun pass `--lib`
Caused by:
process didn't exit successfully: `redoxer exec --folder . /home/nice_graphic/Code/rust/redox/ion/target/x86_64-unknown-redox/debug/deps/ion_shell-6a40946de3354587` (exit status: 3)
redoxer cargo: exit status: 3
```
When I run the command
```sh
redoxer exec true
```
Then I get this error message
```text
redoxer: building base
redoxer exec: Input/output error (os error 5)
```
System specs:
```text
OS: Fedora Linux 37 (Cinnamon) x86_64
Kernel: 6.2.7-200.fc37.x86_64
```https://gitlab.redox-os.org/redox-os/orbital/-/issues/58Allow user to define the app to be used for background2023-03-28T15:00:36ZAndrew MackenzieAllow user to define the app to be used for backgroundCurrently the app "background" is hardwired into Orbital and login window.
Make the command's name configurable (via same config file as other config issues), allowing the user to override the background command.
This could allow any ap...Currently the app "background" is hardwired into Orbital and login window.
Make the command's name configurable (via same config file as other config issues), allowing the user to override the background command.
This could allow any app to be the background, and allow intelligent backgrounds that update with web or local content etc.
Combined with an action to show the background (an existing issue) will be more useful.https://gitlab.redox-os.org/redox-os/orbital/-/issues/57Make keyboard short cuts and apps used configurable2023-03-28T14:58:13ZAndrew MackenzieMake keyboard short cuts and apps used configurableAllow the user (via a config file, possibly managed by a settings app) to define
- what keyboard short cut (e.g. Super-B) corresponds to what action (e.g. Open default Browser)
- what command (e.g. "netsurf") corresponds to an actionAllow the user (via a config file, possibly managed by a settings app) to define
- what keyboard short cut (e.g. Super-B) corresponds to what action (e.g. Open default Browser)
- what command (e.g. "netsurf") corresponds to an actionhttps://gitlab.redox-os.org/redox-os/ion/-/issues/1030Proposal: Convert MakeFiles and bash scripts into rust via "cargo xtask" conv...2023-03-28T09:02:39ZFlorian NaumannProposal: Convert MakeFiles and bash scripts into rust via "cargo xtask" convention.# Problem with make and bash
Ion shell grows more and more in complexity and so does the local automation system.
Make and bash becomes harder and harder to extend on for automation.
While make and bash might have been sufficient for a ...# Problem with make and bash
Ion shell grows more and more in complexity and so does the local automation system.
Make and bash becomes harder and harder to extend on for automation.
While make and bash might have been sufficient for a starting point to automate, this project has reached the point where those tools are not justifiable anymore in my opinion .
I propose that we change gears and use rust for local automation too by applying the xtask convention.
## What is xtask
There is a simple convention, called xtask, to follow.
This convention is possible via the workspace feature of Rust. The rust code for automation is then just another workspace member. Following this convention, we get a full fledged CLI API for automation which depends only on Rust and Cargo. In this system we could utilize the power of rust and its ecosystem for automation.
[Link](https://github.com/matklad/cargo-xtask) to this convention.
## Arguments for cargo xtask convention over make and bash scripts.
- The Redox-Os ecosystem is also about leveraging the capabilities of Rust, so why not also in the automation system.
- Make is primarily a build system and not a command runner. Cargo already provides an build system for Rust.
- Bash as script language does not scale well with growing complexity in automation. Rust on the other hand is way better in this department.
- Can have one language in the project for the application and for the automation system.
- Not all people come from the Linux realm. Automation via Make and Bash increases the learning curve for those people who want fix/improve automation.
- More flexibility in designing the CLI API compared to Make match rules or Bash "getopts" thing.
- It is advantageous to get rid of make and bash for a latter windows port.
- Reduces build tech stack, taking out make and bash.
## Willingness for the proof of concept
For demo purposes I would be willing provide a PR which implements the unit/integration test system of Ion via rust in xtask convention. If the PR/Proposal convinces the community, then I would be happy to replace all Make and Bash scripts via Rust in the Ion repository.