redox-os issueshttps://gitlab.redox-os.org/groups/redox-os/-/issues2024-02-10T18:32:54Zhttps://gitlab.redox-os.org/redox-os/orbutils/-/issues/51(Feature Request) Split panels for File Manager.2024-02-10T18:32:54ZRibbon(Feature Request) Split panels for File Manager.![image](/uploads/f67f88cc24d3563bdb699ee7ab4cf8c4/image.png)![image](/uploads/f67f88cc24d3563bdb699ee7ab4cf8c4/image.png)https://gitlab.redox-os.org/redox-os/orbutils/-/issues/53(Feature Request) Image preview on File Manager2024-02-10T18:32:23ZRibbon(Feature Request) Image preview on File ManagerShow a preview on the right side when selecting an image file.Show a preview on the right side when selecting an image file.https://gitlab.redox-os.org/redox-os/orbutils/-/issues/54(Feature Request) Dual-mode location bar for File Manager.2024-02-10T18:32:09ZRibbon(Feature Request) Dual-mode location bar for File Manager.Offer the options "folder buttons" or "explicit path"
- Folder Buttons - every folder on the path can be clicked/accessed.
- Explicit Path - the path bar show the Unix model for directories (/home/user).Offer the options "folder buttons" or "explicit path"
- Folder Buttons - every folder on the path can be clicked/accessed.
- Explicit Path - the path bar show the Unix model for directories (/home/user).https://gitlab.redox-os.org/redox-os/orbutils/-/issues/55(Feature Request) Line numbers for Text Editor.2024-02-10T18:31:51ZRibbon(Feature Request) Line numbers for Text Editor.https://gitlab.redox-os.org/redox-os/orbital/-/issues/71GUI porting2024-02-10T15:43:46ZRibbonGUI portingThis issue will cover the porting of the most common rendering toolkits and libraries to Orbital.
- [ ] GLEW
- [ ] GTK3
- [ ] GTK4
- [ ] Qt5
- [ ] Qt6
- [ ] wxWidgetsThis issue will cover the porting of the most common rendering toolkits and libraries to Orbital.
- [ ] GLEW
- [ ] GTK3
- [ ] GTK4
- [ ] Qt5
- [ ] Qt6
- [ ] wxWidgetshttps://gitlab.redox-os.org/redox-os/nonprofit/-/issues/3GSoC Setup ToDo List2024-01-29T02:01:35ZRon WilliamsGSoC Setup ToDo ListThe following things need to be done to complete the GSoC application:
- [ ] A "reasonable size" logo - I'm not sure what is reasonable. 256 pixels is too small, the t-shirt logo is too big
- [ ] Contributor Guidance page
- [ ] Project L...The following things need to be done to complete the GSoC application:
- [ ] A "reasonable size" logo - I'm not sure what is reasonable. 256 pixels is too small, the t-shirt logo is too big
- [ ] Contributor Guidance page
- [ ] Project List pagehttps://gitlab.redox-os.org/redox-os/cookbook/-/issues/192Implement the recipe category selection on "make distclean" and "make clean"2024-01-13T08:14:52ZRibbonImplement the recipe category selection on "make distclean" and "make clean"Add a way to select one recipe category to cleanup instead of all sources and binaries of the build system, for example:
- `make distclean wip` - Only clean the `wip` folder at `cookbook/recipes`
This feature is important to allow a gr...Add a way to select one recipe category to cleanup instead of all sources and binaries of the build system, for example:
- `make distclean wip` - Only clean the `wip` folder at `cookbook/recipes`
This feature is important to allow a granular storage space saving mechanism.https://gitlab.redox-os.org/redox-os/redox/-/issues/1408Port cosmic-comp2024-01-13T07:57:18ZRibbonPort cosmic-comp[cosmic-comp](https://github.com/pop-os/cosmic-comp) is the most complete Rust-written Wayland compositor of the world, being Rust it become the most easy Wayland solution for us, because we already have upstream Redox support on many cr...[cosmic-comp](https://github.com/pop-os/cosmic-comp) is the most complete Rust-written Wayland compositor of the world, being Rust it become the most easy Wayland solution for us, because we already have upstream Redox support on many crates.https://gitlab.redox-os.org/redox-os/redox/-/issues/1417Implement the "make prefix compiler" command2024-01-13T07:07:30ZRibbonImplement the "make prefix compiler" commandThe [proposal](https://gitlab.redox-os.org/redox-os/redox/-/issues/1389) to move the rustc source fetch to the `make prefix` command is redundant because it's called with `make all`, you would clone the rustc sources later.
My solution ...The [proposal](https://gitlab.redox-os.org/redox-os/redox/-/issues/1389) to move the rustc source fetch to the `make prefix` command is redundant because it's called with `make all`, you would clone the rustc sources later.
My solution is to add a specific command to fetch and build from sources (the CI server need this), see the current behavior:
- `bootstrap.sh` - rustc is a submodule, thus it clone the sources on each build system copy.
- `make prefix` - It download the toolchain binaries from the CI server and build relibc.
My proposed behavior:
- `make prefix compiler` - Active the `PREFIX_BINARY=0`, download the rustc/GCC sources and build the toolchain (`bootstrap.sh` don't fetch the rustc sources anymore).https://gitlab.redox-os.org/redox-os/redox/-/issues/1416Add an option to ignore recipe errors2024-01-13T07:04:44ZRibbonAdd an option to ignore recipe errorsThis option will ignore a recipe error and build the next recipe of the Cookbook configuration (`make all` and `make rebuild` commands).
Currently the CI server only update the packages if all recipes compiled successfully, it's time co...This option will ignore a recipe error and build the next recipe of the Cookbook configuration (`make all` and `make rebuild` commands).
Currently the CI server only update the packages if all recipes compiled successfully, it's time consuming and could delay important updates on recipes.
This is equivalent to "delta updates" but for CI, only the successfully compiled programs will be updated on the package repository.
It could be implemented on the `.config` file and the Cookbook configuration.https://gitlab.redox-os.org/redox-os/drivers/-/issues/39Implement the vmware vmmouse interface2024-01-10T19:46:34Zbjorn3Implement the vmware vmmouse interfacehttps://wiki.osdev.org/VMware_tools#Absolute_Mouse_Coordinates
This should allow using absolute mouse coordinates in qemu, which makes it a lot easier to switch between the VM and the host as qemu automatically releases the mouse grab w...https://wiki.osdev.org/VMware_tools#Absolute_Mouse_Coordinates
This should allow using absolute mouse coordinates in qemu, which makes it a lot easier to switch between the VM and the host as qemu automatically releases the mouse grab when exiting the bounds of the VM display.https://gitlab.redox-os.org/redox-os/redox/-/issues/1389Remove the rustc submodule from bootstrap.sh2024-01-10T15:03:39ZRibbonRemove the rustc submodule from bootstrap.shThe first download of Redox sources take so long because the `rustc` submodule fetch the LLVM sources, which are heavy and the deltas processing can take some time in a low-end computer.
As the `rustc` submodule will just be used by ski...The first download of Redox sources take so long because the `rustc` submodule fetch the LLVM sources, which are heavy and the deltas processing can take some time in a low-end computer.
As the `rustc` submodule will just be used by skilled developers, it can be removed.
Similar request - https://gitlab.redox-os.org/redox-os/redox/-/issues/1339
**Update: Jeremy said that the rustc submodule should be moved to the `prefix` folder.**https://gitlab.redox-os.org/redox-os/redox/-/issues/1423Controlling Terminal Proposal using relibc2024-01-09T01:30:07ZRon WilliamsControlling Terminal Proposal using relibcFor controlling terminal, we need the following functions ~~in a `cterm:` scheme (possibly best in the kernel)~~ (possibly in `ptyd`):
- Set~~/get~~ the controlling terminal for a session
- ~~Set/get the foreground process group for a t...For controlling terminal, we need the following functions ~~in a `cterm:` scheme (possibly best in the kernel)~~ (possibly in `ptyd`):
- Set~~/get~~ the controlling terminal for a session
- ~~Set/get the foreground process group for a terminal~~
- This implies lookup by terminal path or session
- If this functionality is not in the kernel, details of processes, process groups and sessions (including uid) will need to be queried from the kernel to determine whether to allow the action
When a process is created, it will have a possibly empty `controlling_terminal` property in libc that it cannot change directly.
- To open a tty, rather than opening `pty:5`, a process will open `libc:term/pty/5`
- If the process has a controlling terminal or if O_NOCTTY is set, this will just forward to `pty:5`
- `libc:tty` will also reference the controlling terminal property rather than `$TTY` as it does now
- If there is no controlling terminal and O_NOCTTY is not set, then it will trigger setting the controlling terminal as follows:
- `libc:` will get the `pty:5` path and try to open it
- if it succeeds, `libc:` will write the process's session id and the `pty:5` path to the `cterm:` scheme
- the `cterm:` scheme will verify that the pty is not used by another process, it is owned by this user (`fstat`?) and the session id is valid and belongs to this user
- (according to Linux man pages, only the session leader can cause this behavior, other *nix imply it is triggered by any process in the group)
Since we are checking uid of sessions and processes as well as the caller, I think this will be safe.https://gitlab.redox-os.org/redox-os/termion/-/issues/197`IntoRawMode` only works with stdout2024-01-06T10:33:09ZDenis Varlakov`IntoRawMode` only works with stdoutAlthough the `IntoRawMode` trait looks like it supports any `writer: impl Writer`, in fact it only works with stdout. The issue comes down to using `sys::unix::{get_terminal_attr, ..}` that have `libc::STDOUT_FILENO` hardcoded into them....Although the `IntoRawMode` trait looks like it supports any `writer: impl Writer`, in fact it only works with stdout. The issue comes down to using `sys::unix::{get_terminal_attr, ..}` that have `libc::STDOUT_FILENO` hardcoded into them.
A solution would be update `RawTerminal` and `IntoRawMode` so it would be implemented for all `impl Writer + AsRawFd`. The raw fd needs to be retrieved from the writer and given to subsequent functions. I.e. something like that:
```rust
pub trait IntoRawMode: Write + AsRawFd + Sized {
/// Switch to raw mode.
///
/// Raw mode means that stdin won't be printed (it will instead have to be written manually by
/// the program). Furthermore, the input isn't canonicalised or buffered (that is, you can
/// read from stdin one byte of a time). The output is neither modified in any way.
fn into_raw_mode(self) -> io::Result<RawTerminal<Self>>;
}
impl<W: Write + AsRawFd> IntoRawMode for W {
fn into_raw_mode(self) -> io::Result<RawTerminal<W>> {
let fd = self.as_raw_fd();
let mut ios = get_terminal_attr(fd)?;
let prev_ios = ios;
raw_terminal_attr(&mut ios);
set_terminal_attr(fd, &ios)?;
Ok(RawTerminal {
prev_ios: prev_ios,
output: self,
})
}
}
```
Unfortunately, that would require a major bump in library version as it changes API. As a workaround until `v3` it's possible to provide a second module `raw2` that would properly handle writers that are not stdout, for example.
Let me know if you're interested in contribution!https://gitlab.redox-os.org/redox-os/cookbook/-/issues/193Implement the "recipe library" file2024-01-06T00:40:58ZRon WilliamsImplement the "recipe library" fileAs an addition to the current build system, it is proposed to add "recipe library" files. The idea is to support recipe scripts inside of other `toml` files, like a library of recipes.
To reduce the size of the recipe library file, each...As an addition to the current build system, it is proposed to add "recipe library" files. The idea is to support recipe scripts inside of other `toml` files, like a library of recipes.
To reduce the size of the recipe library file, each recipe category or build system type could have its own recipe library file.
This would allow us to support many programs without having a multitude of recipe folders for developers that are not using them. It would also improve recipe maintenance and reorganization.
### Reasons to use recipe libraries
- Less prone to terminal typos
- Avoid conflicts after recipe renames (as the `recipe.toml` file is not inside the recipe folder, it can be easily removed or moved to its new name)
- More quick to access in the text editor
### Syntax
The fields of each recipe will follow the syntax of the `recipe.toml` file, so the existing serialization definitions can be used. Each major section will include a `[category-name]`, followed by `recipe-name = recipe`.
e.g. a file `wip.toml` would look something like:
```
[wip] # The category folder will be created with the specified name
exa = {
source = { git = "https://github.com/ogham/exa" },
build = { template = "cargo" }
}
opus = {
source = {
tar = "https://downloads.xiph.org/releases/opus/opus-1.4.tar.gz"
},
build = { template = "configure" }
}
...
```
If a recipe is named in the filesystem config, `cook` would first check for a recipe folder (to build recipes using the old format). If none existed, `cook` would scan a set of recipe library files to find the recipe.
### New Category Organization
This is how categories would look like with a recipe library implementation:
- `category-build-system.toml`
Example:
- `dev-cargo.toml` - Cargo-based recipes of the `dev` category.
- `dev-configure.toml` - GNU Autotools-based recipes of the `dev` category.
- `dev-custom.toml` - Recipes of the `dev` category with a custom script.https://gitlab.redox-os.org/redox-os/relibc/-/issues/175Stop depending on core_io2024-01-03T19:19:59ZJacob Lorentzon4ldo2@protonmail.comStop depending on core_ioIt appears to be unmaintained, and we should probably try re-implementing most of the functionality ourselves in relibc.It appears to be unmaintained, and we should probably try re-implementing most of the functionality ourselves in relibc.https://gitlab.redox-os.org/redox-os/installer/-/issues/17Keep the downloaded binary packages2024-01-03T01:29:49ZRibbonKeep the downloaded binary packagesCurrently the installer download the binary packages again if you trigger a new QEMU image rebuild, it's recommended to keep the last downloaded binary packages to improve the image rebuild speed.
If some package updates on CI, check if...Currently the installer download the binary packages again if you trigger a new QEMU image rebuild, it's recommended to keep the last downloaded binary packages to improve the image rebuild speed.
If some package updates on CI, check if the file timestamp changed (open to discussion).https://gitlab.redox-os.org/redox-os/redox/-/issues/1420make prefix with PREFIX_BINARY=0 fails due to missing libmpfr-dev2023-12-31T03:01:50ZRon Williamsmake prefix with PREFIX_BINARY=0 fails due to missing libmpfr-dev`libmpfr-dev` was missing after `bootstrap.sh`.
With PREFIX_BINARY=0, `make prefix` fails with the following error:
```
configure: error: Building GDB requires GMP 4.2+, and MPFR 3.1.0+.
Try the --with-gmp and/or --with-mpfr options to ...`libmpfr-dev` was missing after `bootstrap.sh`.
With PREFIX_BINARY=0, `make prefix` fails with the following error:
```
configure: error: Building GDB requires GMP 4.2+, and MPFR 3.1.0+.
Try the --with-gmp and/or --with-mpfr options to specify
their locations. If you obtained GMP and/or MPFR from a vendor
distribution package, make sure that you have installed both the libraries
and the header files. They may be located in separate packages.
```https://gitlab.redox-os.org/redox-os/kernel/-/issues/135Replace physalloc/physfree with a "physically contiguous" mmap or madvise flag2023-12-16T18:01:11ZJacob Lorentzon4ldo2@protonmail.comReplace physalloc/physfree with a "physically contiguous" mmap or madvise flagPhysalloc and physfree offer no checking of ownership, and while there could be "physical grants" to track raw physical allocations from drivers, it would be much cleaner to integrate it with the existing mmap code.Physalloc and physfree offer no checking of ownership, and while there could be "physical grants" to track raw physical allocations from drivers, it would be much cleaner to integrate it with the existing mmap code.https://gitlab.redox-os.org/redox-os/kernel/-/issues/141Pipe events don't work when changing namespaces2023-12-13T18:39:56ZRon WilliamsPipe events don't work when changing namespacesIf you create a pipe, then call mkns and setrens, then register for events on the pipe, when the writer writes to the pipe, the scheme id used to look up the event queue will not match the scheme id in the file description.If you create a pipe, then call mkns and setrens, then register for events on the pipe, when the writer writes to the pipe, the scheme id used to look up the event queue will not match the scheme id in the file description.