redox-os issueshttps://gitlab.redox-os.org/groups/redox-os/-/issues2023-08-08T09:42:24Zhttps://gitlab.redox-os.org/redox-os/kernel/-/issues/123Better Grant ownership metadata2023-08-08T09:42:24ZJacob Lorentzon4ldo2@protonmail.comBetter Grant ownership metadataCurrently, grants track whether they are owned, allocator owned (a hack to avoid wasting initfs memory, and will be removed once the frame allocator supports expanding itself with new ranges), and an optional file descriptor they are ass...Currently, grants track whether they are owned, allocator owned (a hack to avoid wasting initfs memory, and will be removed once the frame allocator supports expanding itself with new ranges), and an optional file descriptor they are associated with (for fmap). This is however insufficient, as a scheme with fmapped memory still in its address space, may funmap that memory while it is still available by the fmapper, and thus cause use-after-free.
Because schemes currently require root, this is not inherently worse than e.g. https://gitlab.redox-os.org/redox-os/kernel/-/issues/82, but needs to be fixed soon. Fixing this would along with the addition of other kernel features (most notably scheme file forwarding), allow simplifying the proc scheme *a lot*, by making the kernel only provide access to memory by borrowing memory using fmap. It is also more or less necessary for on-demand paging.Jacob Lorentzon4ldo2@protonmail.comJacob Lorentzon4ldo2@protonmail.comhttps://gitlab.redox-os.org/redox-os/kernel/-/issues/122epoll_pwait returns immediately when waiting on raw tty input2023-06-25T11:23:28ZRon Williamsepoll_pwait returns immediately when waiting on raw tty inputI'm debugging `crossterm` with their `stderr` example. `crossterm` on Unix sets `STDIN` to raw mode (if `isatty`, otherwise it opens `/dev/tty`). Following what is done in `termion`, I modified this so it opens `env("TTY")` in raw mode, ...I'm debugging `crossterm` with their `stderr` example. `crossterm` on Unix sets `STDIN` to raw mode (if `isatty`, otherwise it opens `/dev/tty`). Following what is done in `termion`, I modified this so it opens `env("TTY")` in raw mode, and saved the fd in a static so multiple gets of the fd return the same result. Then `crossterm` uses `mio`, which in turn sets up an `epoll` fd. When it's time to read from the tty, `mio` calls `epoll_wait` in a loop with `timeout = -1`. `epoll_wait` returns immediately with zero events.
I have not looked into `crossterm`'s use of `termios`, but I would assume it's ok.https://gitlab.redox-os.org/redox-os/cookbook/-/issues/187Add folders to organize recipes/packages2023-12-01T08:51:28ZRon WilliamsAdd folders to organize recipes/packagesProposed:
1. Add organizing directories for packages. e.g `recipes/core/recipe_name`. Packages will still appear in the config file as only their basename, so `cook` and `installer` will need to search for the recipes.
2. Organizing dire...Proposed:
1. Add organizing directories for packages. e.g `recipes/core/recipe_name`. Packages will still appear in the config file as only their basename, so `cook` and `installer` will need to search for the recipes.
2. Organizing directories are optional. e.g. A package can appear as `recipes/recipe_name` or `recipes/core/recipe_name`. If a directory at the base level contains a `recipe.toml` or `recipe.sh`, it cannot also contain package dirs. This allows for migration.
3. If two packages have the same name but are in different organizing directories, e.g. "lib/libx" and "core/libx", (or if one is directly under `recipes`) a build error will occur when that package name is included in the filesystem config file.
4. [Optional - TBD] A special directory named `wip` or something similar is allowed to contain packages that duplicate names of packages in other directories. The package in `wip` takes priority. The "[source]" section of recipes in this directory is ignored, so the source is not updated if the git repo changes. This allows a developer to work with their own fork/branch without concern that it may get updated from `master`.
This requires changes to `installer` as well as `cookbook`.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/redox/-/issues/1373Draft: Analysis of repos, recipes and forks2023-06-13T18:26:11ZAndrew MackenzieDraft: Analysis of repos, recipes and forksRecipes that refer to repos that are part of Redox-os
* book
* bootloader
* bootstrap
* ca-certificates
* calculator (orbcalculator, not sure if still needed with orbutils/calculator)
* classicube - points to a repo of Jeremy´s
* cleye
*...Recipes that refer to repos that are part of Redox-os
* book
* bootloader
* bootstrap
* ca-certificates
* calculator (orbcalculator, not sure if still needed with orbutils/calculator)
* classicube - points to a repo of Jeremy´s
* cleye
* contain
* cpal
* ion
* orbclient
* orbdata
* orbital
* orbterm
* orbutils
* orbutils-background
* orbutils-launcher
* orbutils-orblogin
* redox-fatfs
* redox-ssh - a fork of SSH?
* redoxerd
* redoxfs
* relibc
* relibc-tests
* sodium
* zerod
Recipes that use external repos "as-is" (no specific SHA, or branch for redox support)
* autoconf
* automake
* cosmic-text - https://github.com/pop-os/cosmic-text.git
* cmake
* cmatrix - https://github.com/abishekvashok/cmatrix
* crates-io-index - https://github.com/rust-lang/crates.io-index.git
* wesnoth - https://github.com/wesnoth/wesnoth.git
* zlib
Redox-os repos that are forks of upstream (TO BE Checked)
* binutils - ?
* cargo
* coreutils?
* curl
* dash?
Recipes that refer to forks or have patches to get them to work on redox-os
* atk - Gnome atk
* bash - patched
* cairo - patched
* cairodemo - patched
* diffutils - patched
* dosbox - patched
* netsurf - Netsurf
* winit - https://gitlab.redox-os.org/redox-os/winit.git - redox branch
* webrender - https://gitlab.redox-os.org/redox-os/webrender.git- redox branch
* xz - https://codeload.github.com/xz-mirror/xz/tar.gz/v5.2.5
TODO
drivers
drivers-041
drivers-initfs
duktape
dynamic-example
eduke32
escalated
exampled
expat
extrautils
fal
fd
ffmpeg
findutils
flycast
fontconfig
freeciv
freedoom
freeglut
freepats
freetype
friar
fribidi
game-2048
games
gawk
gcc
gdbserver
gdk-pixbuf
gears
generaluser-gs
gettext
gigalomania
git
glib
glium
glutin
gnu-binutils
gnu-grep
gnu-make
gstreamer
harfbuzz
hematite
iced
init
initfs
installer
installer-gui
ipcd
jansson
jeremy
kernel
keyboard-sfx
lci
libc-bench
libcosmic
libffi
libflac
libgmp
libiconv
libjpeg
libogg
liborbital
libpng
libretro-super
libsodium
libssh2
libvorbis
libxml2
llvm
logd
lua
mdp
mednafen
mesa
mesa_glu
mgba
miniserve
nasm
ncdu
ncurses
ncursesw
netdb
netstack
netutils
neverball
newlib
newlibtest
nghttp2
noto-color-emoji
nulld
openjazz
openssl
openttd
openttd-opengfx
openttd-openmsx
openttd-opensfx
osdemo
pango
pastel
patch
pathfinder
pciids
pcre
perg
periodictable
perl
pixelcannon
pixman
pkg-config
pkgar
pkgutils
pop-icon-theme
powerline
prboom
procedural-wallpapers-rs
ptyd
python
qemu
ramfs
randd
readline
resist
retroarch
ripgrep
rodioplay
rs-nes
rust
rust-cairo
rust-cairo-demo
rust64
rustpython
rustual-boy
schismtracker
scummvm
sdl
sdl-player
sdl2
sdl2_gears
sdl2_image
sdl2_mixer
sdl2_ttf
sdl_gfx
sdl_image
sdl_mixer
sdl_ttf
sed
servo
shared-mime-info
shellharden
shellstorm
sm64ex
smith
sopwith
spacecadetpinball
ssh
strace
syobonaction
terminfo
termplay
timidity
tokei
ttf-hack
userutils
uutils
vice
vim
vttest
vvvvvvhttps://gitlab.redox-os.org/redox-os/kernel/-/issues/117SIGKILL can block file descriptors from closing2024-03-17T16:54:46ZAndrew MackenzieSIGKILL can block file descriptors from closingInvestigating https://gitlab.redox-os.org/redox-os/orbital/-/issues/21 and discussing on chat, it seems that there is in fact a kernel bug causing this, and it seems to work with some apps, not with others.
Reproduction
- login with ent...Investigating https://gitlab.redox-os.org/redox-os/orbital/-/issues/21 and discussing on chat, it seems that there is in fact a kernel bug causing this, and it seems to work with some apps, not with others.
Reproduction
- login with enter
- open orbterm
- type "file_manager&" at the terminal prompt
- file manager window will open
- back at terminal type "ps" and note the PID of the file_manager
- at terminal type "kill 9 {PID}
- will see "pipeline execution error: process ({PID}) ended by SIGKILL
- type "ps" again, you will see that process no longer exists
- the window for file manager is still shown on the screen, you can try to close it etc but it is unresponsive
if you repeat the above with "calculator", all works as expected. Same with "orbterm".
Adding logging to the call to handle_window_close() in scheme.rs in Orbital, we see that:
- File Manager -> handle_window_close() is not called
- Calculator -> handle_window_close() is called
```
kernel::scheme::user:WARN -- Unaligned map size for context Some("/ui/bin/orbterm")
main path: file:/home/user
2023-03-28T14-24-47..004++00:00 [launcher@launcher:424 INFO] launcher: /ui/bin/file_manager (72) exited with signal: 9 (SIGKILL)
2023-03-28T14-25-09..926++00:00 [orbital@orbital::scheme:380 DEBUG] handle_window_close 7
2023-03-28T14-25-10..001++00:00 [launcher@launcher:424 INFO] launcher: /ui/bin/calculator (77) exited with signal: 9 (SIGKILL)
```https://gitlab.redox-os.org/redox-os/redox/-/issues/1372Changes required to make macos build more reliable2023-04-17T14:27:45ZAndrew MackenzieChanges required to make macos build more reliableWe have found a few things that cause the build to fail on macos, depending on user's config:
- env values for CC and CXX affect it. We recommend unsetting both here https://gitlab.redox-os.org/redox-os/redox/-/blob/master/mk/prefix.mk ...We have found a few things that cause the build to fail on macos, depending on user's config:
- env values for CC and CXX affect it. We recommend unsetting both here https://gitlab.redox-os.org/redox-os/redox/-/blob/master/mk/prefix.mk
- it requires "makeinfo", which is part of brew texinfo package. We recommend the build fails when it is not found, not continue, and it could be documented as a pre-requisite in the book developing section.https://gitlab.redox-os.org/redox-os/orbital/-/issues/68Add restore option to window tiling shortcuts2023-04-17T14:27:22ZAndrew MackenzieAdd restore option to window tiling shortcutsRestore window size back to original size after tiling left/right/top/bottom when the same shortcut is done again.
This allows the user to get the window back to its original size and location.
Use same restore struct as when maximizin...Restore window size back to original size after tiling left/right/top/bottom when the same shortcut is done again.
This allows the user to get the window back to its original size and location.
Use same restore struct as when maximizing. Code for max/restore and tiling can probably be combined more also.https://gitlab.redox-os.org/redox-os/orbital/-/issues/64Add tile left/right/top/bottom shortcuts2023-04-05T21:19:21ZAndrew MackenzieAdd tile left/right/top/bottom shortcutsAdd four or ital keyboard shortcuts to move the top window to occupy the left/top/right/bottom half of the display.
Add to shortcuts overlay.
Add to a doc in repo.Add four or ital keyboard shortcuts to move the top window to occupy the left/top/right/bottom half of the display.
Add to shortcuts overlay.
Add to a doc in repo.https://gitlab.redox-os.org/redox-os/orbclient/-/issues/49v0.3.35 breaks the MacOS build2023-04-05T21:15:28ZWill Angenentv0.3.35 breaks the MacOS buildIn commit [1baac6393](https://gitlab.redox-os.org/redox-os/drivers/-/commit/1baac63934bdff98e5a50752b1925e7126025fb8) in the drivers recipe, `Cargo.lock` got updated. This now pulls in `orbclient >= 0.3.35`. The [0.3.35 commit](https://g...In commit [1baac6393](https://gitlab.redox-os.org/redox-os/drivers/-/commit/1baac63934bdff98e5a50752b1925e7126025fb8) in the drivers recipe, `Cargo.lock` got updated. This now pulls in `orbclient >= 0.3.35`. The [0.3.35 commit](https://gitlab.redox-os.org/redox-os/orbclient/-/commit/2fa84f0442edfebb4d4bb298bfca59e32f31f39a) breaks the drivers build in MacOS with this error:
```
error: library kind `framework` is only supported on Apple targets
```
Ironically, the commit in orbclient is supposed to fix the MacOS build. This is related to the line in build.rs:
```
fn main() {
if cfg!(target_os = "macos") {
println!("cargo:rustc-link-lib=framework=CoreHaptics");
}
}
```
If I remove `build.rs`, I am able to build the drivers. I am also able to unpin the sdl2 dependency.
What is 2fa84f044 supposed to fix?
I tried compiling orbclient, but it fails on a linker error in libsodium, so I cannot verify what effect this has on orbclient directly when building on MacOS.
Please advise what the proper course of actions is. Removing build.rs is tempting. But what side effects will that have? I cannot compile the desktop version yet on MacOS so I'm a bit hampered on those parts of the OS.https://gitlab.redox-os.org/redox-os/orbital/-/issues/61Refactor key_event() in scheme.rs from a massive if else to use match and guards2023-04-04T15:24:29ZAndrew MackenzieRefactor key_event() in scheme.rs from a massive if else to use match and guardsUse new key constants from orbclient in the process.Use new key constants from orbclient in the process.https://gitlab.redox-os.org/redox-os/orbital/-/issues/60Add keyboard shortcut to maximize/restore window size2023-04-04T15:24:30ZAndrew MackenzieAdd keyboard shortcut to maximize/restore window sizeIdeas for what shortcut to use?
Super + Space?
Super + Enter?
Super + F (for Fullscreen, make sense when going fullscreen, less when restoring)
BTW: No real harm (until we run out of shortcuts) to allow more than one shortcut per action.Ideas for what shortcut to use?
Super + Space?
Super + Enter?
Super + F (for Fullscreen, make sense when going fullscreen, less when restoring)
BTW: No real harm (until we run out of shortcuts) to allow more than one shortcut per action.https://gitlab.redox-os.org/redox-os/orbital/-/issues/59Volume control popup has same redraw issue as window switcher2023-04-03T17:13:58ZAndrew MackenzieVolume control popup has same redraw issue as window switcherI have since found the keyboard short cuts that allow display of volume control.
Apart from the redraw issue, it doesn't seem to work for me - unable to make the bar increase or decrease.I have since found the keyboard short cuts that allow display of volume control.
Apart from the redraw issue, it doesn't seem to work for me - unable to make the bar increase or decrease.https://gitlab.redox-os.org/redox-os/ion/-/issues/1031CI: no space left error if redoxer test is reinstroduced in CI of Ion shell u...2024-02-24T07:57:02ZFlorian NaumannCI: no space left error if redoxer test is reinstroduced in CI of Ion shell under the job "redox".On the CI of Ion shell the "redoxer test" was deactivated because it would hang in the job "redox". Since it does not hang anymore I tried to replace the command "redoxer build" with "redoxer test" in the job "redox" . When I do that I h...On the CI of Ion shell the "redoxer test" was deactivated because it would hang in the job "redox". Since it does not hang anymore I tried to replace the command "redoxer build" with "redoxer test" in the job "redox" . When I do that I however now get an error about "there is no space left" for certain folders to create. See the following job [output](https://gitlab.redox-os.org/bool_purist/ion/-/jobs/38338) for more details.https://gitlab.redox-os.org/redox-os/redox/-/issues/1370libc: wait() causing abort2023-06-26T18:20:53ZRon Williamslibc: wait() causing abortOccasionally, Ion will abort, sometimes with the message "wait() should either return Ok or panic", which is coming from `rust/library/std/src/sys/unix/process/process_unix.rs`
This is random behavior, and causes the Terminal window to e...Occasionally, Ion will abort, sometimes with the message "wait() should either return Ok or panic", which is coming from `rust/library/std/src/sys/unix/process/process_unix.rs`
This is random behavior, and causes the Terminal window to exit. The error is only visible on the console.https://gitlab.redox-os.org/redox-os/orbital/-/issues/56Logic issues cycling through windows2023-03-25T13:55:16ZAndrew MackenzieLogic issues cycling through windowsThe logic that draw the list of windows to cycle through removes windows with "" titles, but the window de-focus/focus logic in `win_tab()` does not and the two don't match, causing issues.The logic that draw the list of windows to cycle through removes windows with "" titles, but the window de-focus/focus logic in `win_tab()` does not and the two don't match, causing issues.https://gitlab.redox-os.org/redox-os/orbital/-/issues/55Update to Edition 20212023-03-24T00:23:02ZAndrew MackenzieUpdate to Edition 2021When doing so, look at main() returning Io::Result and maybe simplifying status code definitions, to ensure unique non-zero status codes.When doing so, look at main() returning Io::Result and maybe simplifying status code definitions, to ensure unique non-zero status codes.https://gitlab.redox-os.org/redox-os/kernel/-/issues/116HPET instability when running with qemu2023-10-30T14:50:46ZWill AngenentHPET instability when running with qemuWhen running the desktop build, compiled under ubuntu linux, with qemu 7.2.0 installed with brew, under MacOS 12.2, intel CPU, I get random crashes like these:
- [1.log](/uploads/4ccde03be543891b7ee62e3479738760/1.log)
- [2.log](/upload...When running the desktop build, compiled under ubuntu linux, with qemu 7.2.0 installed with brew, under MacOS 12.2, intel CPU, I get random crashes like these:
- [1.log](/uploads/4ccde03be543891b7ee62e3479738760/1.log)
- [2.log](/uploads/da0e0a18c88ab05177c7c67f67bef43b/2.log)
- [3.log](/uploads/cd2545ab71fc02b740ba6498a7a62524/3.log)
- [4.log](/uploads/d63827ee4a174c4db5dd79d5816b135e/4.log)
- [5.log](/uploads/fb8eabb94c3c490e4d7d062013e55b87/5.log)
It appears that `period_fs` [here](https://gitlab.redox-os.org/redox-os/kernel/-/blob/master/src/arch/x86_64/time.rs#L19) is becoming zero.
When adding this debug print:
```
// Calculate divisor
if period_fs == 0 {
let capability2 = unsafe { hpet.base_address.read_u64(hpet::CAPABILITY_OFFSET) };
println!(
"hpet={:?} capability={:?} capability2={:?}",
hpet, capability, capability2
);
}
```
I managed to get this output:
```
capability=10164 capability2=42949675116306945
```
By the way:
42949675116306945 translates to 0x9896808086A201.
0x9896808086A201 >> 32 is 0x989680. In decimal, this is 10000000, the clock period.
The contents of hpet struct is the same in good & bad boots.https://gitlab.redox-os.org/redox-os/orbterm/-/issues/14Function keys are missing2023-03-20T01:16:04ZKivimangoFunction keys are missingHello ! I'm developing a text mode application for Redox OS on Manjaro Linux. The app works fine on the host OS, but when i cross-compile it for Redox, the functions keys does not do anything.
I have checked orbterm code, in console.rs ...Hello ! I'm developing a text mode application for Redox OS on Manjaro Linux. The app works fine on the host OS, but when i cross-compile it for Redox, the functions keys does not do anything.
I have checked orbterm code, in console.rs the input() method does not inserts the related bytes into the buffer. https://gitlab.redox-os.org/redox-os/orbterm/-/blob/master/src/console.rs#L122
I'm creating a MR.https://gitlab.redox-os.org/redox-os/orbital/-/issues/54(Feature Request) Add an option to change window title bar color.2023-03-22T19:06:11ZRibbon(Feature Request) Add an option to change window title bar color.You could implement with a color picker.You could implement with a color picker.