redox-os issueshttps://gitlab.redox-os.org/groups/redox-os/-/issues2023-08-04T06:13:34Zhttps://gitlab.redox-os.org/redox-os/kernel/-/issues/133Orbital exits with "invalid argument"2023-08-04T06:13:34ZRon WilliamsOrbital exits with "invalid argument"On an HP laptop where Orbital previously worked, during boot, Orbital reports `orbital::core::display:48 failed to map display: invalid argument`, and Orbital exits. This appears to be an error code from `syscall::fmap`.
Display size wa...On an HP laptop where Orbital previously worked, during boot, Orbital reports `orbital::core::display:48 failed to map display: invalid argument`, and Orbital exits. This appears to be an error code from `syscall::fmap`.
Display size was `1366x768`. `1024x768` appears to work.
Edit: This is reproducible on QEMU, choose resolution 1600x900 and Orbital will exit with the same error.https://gitlab.redox-os.org/redox-os/orbital/-/issues/69Orbital exits with "invalid argument"2023-07-18T17:25:56ZRon WilliamsOrbital exits with "invalid argument"On an HP laptop where Orbital previously worked, during boot, Orbital reports `orbital::core::display:48 failed to map display: invalid argument`, and Orbital exits. This appears to be an error code from `syscall::fmap`.
Display size wa...On an HP laptop where Orbital previously worked, during boot, Orbital reports `orbital::core::display:48 failed to map display: invalid argument`, and Orbital exits. This appears to be an error code from `syscall::fmap`.
Display size was `1366x768`. `1024x768` appears to work.
Edit: This is reproducible on QEMU, choose resolution 1600x900 and Orbital will exit with the same error.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/1386(Feature request) Add an option for make to delete the recipe source2023-09-11T21:11:25ZRibbon(Feature request) Add an option for make to delete the recipe sourceAdd the `make d.recipe-name` command (`d.recipe` option) to delete the `source` folder of any recipe, it will speed up the development and add more flexibility to the build system.Add the `make d.recipe-name` command (`d.recipe` option) to delete the `source` folder of any recipe, it will speed up the development and add more flexibility to the build system.https://gitlab.redox-os.org/redox-os/redox/-/issues/1385(Feature request) Delete sources script2023-09-10T20:40:08ZRibbon(Feature request) Delete sources scriptThis script will clean all `source` folders of the recipes, currently the `make clean` command just clean the `target` folders (binaries), a delete script will bring more development flexibility to the build system.
### Proposed syntax
...This script will clean all `source` folders of the recipes, currently the `make clean` command just clean the `target` folders (binaries), a delete script will bring more development flexibility to the build system.
### Proposed syntax
- `scripts/delete-source.sh` - delete the `source` folder of all recipes.https://gitlab.redox-os.org/redox-os/relibc/-/issues/177Bug in sys_uio2023-07-06T13:42:45ZRibbonBug in sys_uio### What happens?
It show an error log when you type wrong commands.
### How to reproduce?
- Write a wrong command
### Log
```
thread 'main' panicked at 'source slice length (32768) does not match destination slice length (1024)', s...### What happens?
It show an error log when you type wrong commands.
### How to reproduce?
- Write a wrong command
### Log
```
thread 'main' panicked at 'source slice length (32768) does not match destination slice length (1024)', src/header/sys_uio/mod.rs:37:15
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
fatal runtime error: failed to initiate panic, error 5Invalid opcode fault
RFLAG: 0000000000010206
CS: 0000000000000033
RIP: 00000000006ad1de
RSP: 00007fffffffdef0
Abort
SS: 000000000000002b
FSBASE 0000000000005000
GSBASE 0000000000000000
KGSBASE fffffd8000010050
RAX: 0000000000000000
RCX: 00000000006c8cd3
RDX: 0000000000000006
RDI: 0000000000000002
RSI: 000000000076f4b0
R8: 00007fffffffde00
R9: 0000000000000001
R10: 00007fffffffdda8
R11: 0000000000000206
RBX: 0000000000a3c710
RBP: 0000000000008688
R12: 0000000000000001
R13: 0000000000000001
R14: 0000000000a24458
R15: 00007fffffffe0b0
TRACE: FFFFFE800067F2C0
FFFFFE800067F2C0: FFFFFF000005DFC8
FFFFFF000005DE70+0158
kernel::arch::x86_64::interrupt::exception::invalid_opcode::inner
FFFFFE800067F350: FFFFFF000005DE3E
FFFFFF000005DE10+002E
kernel::arch::x86_64::interrupt::exception::invalid_opcode
0000000000008688: EMPTY RETURN
kernel:INFO -- SIGNAL 4, CPU 1, PID ContextId(71)
kernel:INFO -- NAME file:/bin/symphonia-play
ion: pipeline execution error: process (71) ended by signal SIGILL
```https://gitlab.redox-os.org/redox-os/redox/-/issues/1381Nulld and zerod do not implement fstat2023-09-20T17:17:50ZJacob Lorentzon4ldo2@protonmail.comNulld and zerod do not implement fstatThis means `cat null:` or `cat zero:` will fail with EBADF.This means `cat null:` or `cat zero:` will fail with EBADF.https://gitlab.redox-os.org/redox-os/kernel/-/issues/126Cannot use spin >= 0.9.22023-06-25T21:32:00ZJacob Lorentzon4ldo2@protonmail.comCannot use spin >= 0.9.2Spin 0.9.2 relaxed memory orderings for Once from SeqCst (I wrote that code) to Acquire/Release, and for some reason this causes unpredictable errors in the kernel. This is most likely the result of UB somewhere in the kernel.Spin 0.9.2 relaxed memory orderings for Once from SeqCst (I wrote that code) to Acquire/Release, and for some reason this causes unpredictable errors in the kernel. This is most likely the result of UB somewhere in the kernel.https://gitlab.redox-os.org/redox-os/kernel/-/issues/125Improve userspace grant retrieval interface2023-08-08T09:46:15ZJacob Lorentzon4ldo2@protonmail.comImprove userspace grant retrieval interface(This is not necessarily kernel-specific, but because there are proc: APIs for this, I submitted it here.)
POSIX specifies that MAP_SHARED mappings shall remain in the forked child process, by reference, whereas MAP_PRIVATE mappings sha...(This is not necessarily kernel-specific, but because there are proc: APIs for this, I submitted it here.)
POSIX specifies that MAP_SHARED mappings shall remain in the forked child process, by reference, whereas MAP_PRIVATE mappings shall only remain by (at the time of copying) value (CoW). Since MAP_PRIVATE mappings may be managed individually by the scheme, relibc currently re-obtains grants using fmap, but the interfaces need to be improved.Jacob Lorentzon4ldo2@protonmail.comJacob Lorentzon4ldo2@protonmail.comhttps://gitlab.redox-os.org/redox-os/redox/-/issues/1376ion boot on qemu fails with redoxfs panic2023-07-10T11:07:07ZIvan Tanion boot on qemu fails with redoxfs panic![image](/uploads/ab8ceefbcf047f649a84e60961089199/image.png)![image](/uploads/ab8ceefbcf047f649a84e60961089199/image.png)https://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.