redox-os issueshttps://gitlab.redox-os.org/groups/redox-os/-/issues2023-10-27T13:25:42Zhttps://gitlab.redox-os.org/redox-os/redox/-/issues/1410cd :: && mkdir myscheme2023-10-27T13:25:42ZPramod V Ucd :: && mkdir myscheme--------------------
## Description
<!-- Briefly summarize/describe the issue that you are experiencing below. -->
I `cd ::`, which navigates to the apparent directory of schemes.
`ls` is very slow here.
The issue here occures rarely and...--------------------
## Description
<!-- Briefly summarize/describe the issue that you are experiencing below. -->
I `cd ::`, which navigates to the apparent directory of schemes.
`ls` is very slow here.
The issue here occures rarely and randomly, about once in four tries.
Also, the main issue occurs when using the CLI from the host, not orbterm, in which case an entirely different issue occurs:
```
ion: prompt expansion failed: pipeline execution error: command error: Operation not permitted (os error 1)
```
In the external CLI, I `mkdir :myscheme`,`myscheme:`,`myscheme`,`:myscheme:`.
If the issue occurs, the entire system freezes. If the issue doesn't occur:
```
mkdir: thread 'main' panicked at src/uucore/src/lib/mods/error.rs:534:22:
Unexpected io error: Bad file number (os error 9)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
(Even after `let RUST_BACKTRACE=1` within redox)
## Environment info
<!-- To understand where your issue originates, please include some relevant information about your environment. -->
<!-- If you are using a pre-built release of Redox, please specify the release version below. -->
<!-- Redox OS Release: 0.0.0 -->
<!-- If you have built Redox OS yourself, please provide the following information: -->
- Operating system:
Replace me
- `uname -a`:
```
Linux pvu-inspiron3511 6.5.8-4-MANJARO #1 SMP PREEMPT_DYNAMIC Wed Oct 25 05:14:18 UTC 2023 x86_64 GNU/Linux
```
- `rustc -V`:
```
rustc 1.74.0-nightly (e3abbd499 2023-09-06)
```
- `git rev-parse HEAD`:
```
234dc596395f873f69b65e2bdea714f0bf9b0bc1
```
<!-- Depending on your issue, additional information about your environment (network config, package versions, dependencies, etc.) can also help. You can list that below. -->
- `qemu -version`:
```
QEMU emulator version 8.1.2
Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers
```
## Steps to reproduce
<!-- If possible, please list the steps to reproduce ("trigger") your issue below. Being detailed definitely helps speed up bug fixes. -->
0. Minimize the qemu window, and use the CLI where you started the qemu instance.
1. `cd ::` to the apparent directory of schemes.
2. `mkdir` `:myscheme`,`myscheme:`,`myscheme`,`:myscheme:`, one of them will randomly work.
## Behavior
<!-- It may seem obvious to know what to expect, but isolating the behavior from everything else simplifies the development process. Remember to provide a single issue in this report. You can use the References section below to link your issues together. -->
In orbterm:
```
ion: prompt expansion failed: pipeline execution error: command error: Operation not permitted (os error 1)
```
In external CLI, if the issue doesn't work:
```
mkdir: thread 'main' panicked at src/uucore/src/lib/mods/error.rs:534:22:
Unexpected io error: Bad file number (os error 9)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
(I *have* `let RUST_BACKTRACE=1`, still...)
When the issue occurs, the entire redox system freezes
[Full output of `script`](/uploads/ab955f78e21f63e0d5f84f95dece1765/redox.script-out.txt)
[`grep`ed contents with mkdir](/uploads/6542ee67e382667681b706fd44f8136d/mkdirscheme.log)
<!-- Describe the behavior you expect your steps should yield (i.e., correct behavior). -->
<!-- **Expected behavior**: -->
<!-- Replace me -->
<!-- Describe the behavior you observed when running your steps (i.e., buggy behavior). -->
<!-- **Actual behavior**: -->
<!-- **Logs?** Posting a log can help developers find your particular issue more easily. Please wrap your code in code blocks using triple back-ticks ``` to increase readability. -->
Logs are attached.
<!-- **Solution?** Have a solution in mind? Propose your solution below. -->
<!-- **Proposed solution**: -->
<!-- **Screenshots?** Make it easier to get your point across with screenshots. You can drag & drop or paste your images below. -->
<!-- ## Optional references -->
<!-- If you have found issues or pull requests that are related to or blocking this issue, please link them below. See https://help.github.com/articles/autolinked-references-and-urls/ for more options. You can also link related code snippets by providing the permalink. See https://help.github.com/articles/creating-a-permanent-link-to-a-code-snippet/ for more information. -->
<!-- Related to: -->
<!-- Blocked by: -->
<!-- ## Optional extras -->
<!-- If you have other relevant information not found in other sections, you can include it below. -->
<!-- **Code?** Awesome! You can also create a pull request with a reference to this issue. -->
<!-- **Files?** Attach your relevant files by dragging & dropping or pasting them below. -->
<!-- You also can preview your report before submitting it. Thanks for contributing to Redox! -->https://gitlab.redox-os.org/redox-os/website/-/issues/194Replace the Hugo static site generator by a Rust-written alternative2023-12-17T11:45:42ZRibbonReplace the Hugo static site generator by a Rust-written alternativeCurrently our website and book use Hugo to work, Hugo is written in Go, AFAIK its garbage collector would reduce the website/book uptime and probably has more bugs.
## Current Rust candidates:
- [Cobalt](https://cobalt-org.github.io/)
...Currently our website and book use Hugo to work, Hugo is written in Go, AFAIK its garbage collector would reduce the website/book uptime and probably has more bugs.
## Current Rust candidates:
- [Cobalt](https://cobalt-org.github.io/)
- [Shokunin](https://shokunin.one/)
- [Zola](https://www.getzola.org/)
- [Mandy](https://github.com/angeldollface/mandy)https://gitlab.redox-os.org/redox-os/redox/-/issues/1409Replace the Hugo static site generator by a Rust-written alternative2023-11-05T21:30:06ZRibbonReplace the Hugo static site generator by a Rust-written alternativeCurrently our website and book use Hugo to work, Hugo is written in Go, AFAIK its garbage collector would reduce the website/book uptime and probably has more bugs.
## Current Rust candidates:
- [Cobalt](https://cobalt-org.github.io/)
...Currently our website and book use Hugo to work, Hugo is written in Go, AFAIK its garbage collector would reduce the website/book uptime and probably has more bugs.
## Current Rust candidates:
- [Cobalt](https://cobalt-org.github.io/)
- [Shokunin](https://shokunin.one/)
- [Zola](https://www.getzola.org/)
- [Mandy](https://github.com/angeldollface/mandy)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/1407(Feature request) Automatic operating system detection on boot loader2023-10-25T17:39:39ZRibbon(Feature request) Automatic operating system detection on boot loaderDuring the Redox installation on HD/SSD the Redox boot loader will replace the active boot loader of any other OS, to improve our dual-boot support, we could automatically detect Windows, Linux and BSD installations on the disk and creat...During the Redox installation on HD/SSD the Redox boot loader will replace the active boot loader of any other OS, to improve our dual-boot support, we could automatically detect Windows, Linux and BSD installations on the disk and create menu entries for them, like GRUB does.
## UEFI case
UEFI boot loaders stay in a FAT32 partition, thus our boot loader can load other boot loaders (the most easy method, GRUB does this).
## BIOS case
Generally BIOS boot loaders are installed on the MBR partition table of the disk, probably our boot loader will need to manually load the OS kernels.https://gitlab.redox-os.org/redox-os/relibc/-/issues/184Tracking issue for missing functions to compile CPython 3.122023-10-22T23:45:53ZDarley BarretoTracking issue for missing functions to compile CPython 3.12- [ ] bindtextdomain
- [ ] bind_textdomain_codeset
- [ ] clock_nanosleep
- [ ] close_range
- [ ] confstr
- [ ] copy_file_range
- [ ] ctermid
- [ ] __ctype_b_loc
- [ ] __ctype_tolower_loc
- [ ] __ctype_toupper_loc
- [ ] dcgettext
- [ ] du...- [ ] bindtextdomain
- [ ] bind_textdomain_codeset
- [ ] clock_nanosleep
- [ ] close_range
- [ ] confstr
- [ ] copy_file_range
- [ ] ctermid
- [ ] __ctype_b_loc
- [ ] __ctype_tolower_loc
- [ ] __ctype_toupper_loc
- [ ] dcgettext
- [ ] dup3
- [ ] eventfd
- [ ] eventfd_read
- [ ] eventfd_write
- [ ] faccessat
- [ ] fchmodat
- [ ] fchownat
- [ ] fcntl64
- [ ] fdopendir
- [ ] fexecve
- [ ] fgetxattr
- [ ] flistxattr
- [ ] fopen64
- [ ] forkpty
- [ ] fremovexattr
- [ ] fsetxattr
- [ ] fstat64
- [ ] fstatat64
- [ ] fstatvfs64
- [ ] ftruncate64
- [ ] getloadavg
- [ ] getresgid
- [ ] getresuid
- [ ] getrlimit64
- [ ] getrusage
- [ ] getxattr
- [ ] initgroups
- [ ] lgetxattr
- [ ] __libc_current_sigrtmax
- [ ] __libc_current_sigrtmin
- [ ] __libc_start_main
- [ ] linkat
- [ ] listxattr
- [ ] llistxattr
- [ ] lockf64
- [ ] login_tty
- [ ] lremovexattr
- [ ] lseek64
- [ ] lsetxattr
- [ ] lstat64
- [ ] memfd_create
- [ ] mkdirat
- [ ] mkfifoat
- [ ] mknod
- [ ] mknodat
- [ ] mmap64
- [ ] nice
- [ ] nl_langinfo
- [ ] open64
- [ ] openat64
- [ ] openpty
- [ ] pause
- [ ] posix_fadvise64
- [ ] posix_fallocate64
- [ ] posix_spawn
- [ ] posix_spawnattr_destroy
- [ ] posix_spawnattr_init
- [ ] posix_spawnattr_setflags
- [ ] posix_spawnattr_setpgroup
- [ ] posix_spawnattr_setschedparam
- [ ] posix_spawnattr_setschedpolicy
- [ ] posix_spawnattr_setsigdefault
- [ ] posix_spawnattr_setsigmask
- [ ] posix_spawn_file_actions_addclose
- [ ] posix_spawn_file_actions_adddup2
- [ ] posix_spawn_file_actions_addopen
- [ ] posix_spawn_file_actions_destroy
- [ ] posix_spawn_file_actions_init
- [ ] posix_spawnp
- [ ] pread64
- [ ] preadv64v2
- [ ] pwrite64
- [ ] pwritev64v2
- [ ] readdir64
- [ ] readlinkat
- [ ] removexattr
- [ ] renameat
- [ ] __sched_cpualloc
- [ ] __sched_cpucount
- [ ] __sched_cpufree
- [ ] sched_getaffinity
- [ ] sched_getparam
- [ ] sched_get_priority_max
- [ ] sched_get_priority_min
- [ ] sched_getscheduler
- [ ] sched_rr_get_interval
- [ ] sched_setaffinity
- [ ] sched_setparam
- [ ] sched_setscheduler
- [ ] sem_clockwait
- [ ] sendfile64
- [ ] setegid
- [ ] seteuid
- [ ] setns
- [ ] setresgid
- [ ] setresuid
- [ ] setrlimit64
- [ ] setxattr
- [ ] sigwaitinfo
- [ ] splice
- [ ] stat64
- [ ] statvfs64
- [ ] symlinkat
- [ ] syscall
- [ ] __sysconf
- [ ] textdomain
- [ ] times
- [ ] truncate64
- [ ] __uflow
- [ ] unlinkat
- [ ] unshare
- [ ] utimensat
- [ ] wait3
- [ ] wait4
- [ ] waitid
- [ ] wcsftime
- [ ] wcsxfrmhttps://gitlab.redox-os.org/redox-os/redox/-/issues/1406Failed to build on archlinux via podman2023-10-27T13:26:17ZLucas KentFailed to build on archlinux via podmanAs per: https://doc.redox-os.org/book/ch02-06-podman-build.html#new-working-directory
I did:
```shell
curl -sf https://gitlab.redox-os.org/redox-os/redox/raw/master/podman_bootstrap.sh -o podman_bootstrap.sh
time bash -e podman_bootstrap...As per: https://doc.redox-os.org/book/ch02-06-podman-build.html#new-working-directory
I did:
```shell
curl -sf https://gitlab.redox-os.org/redox-os/redox/raw/master/podman_bootstrap.sh -o podman_bootstrap.sh
time bash -e podman_bootstrap.sh
cd redox
make all
```
And then got the following:
```console
rukai@memes redox$ make all
rm -f build/container.tag
If podman_home dir cannot be removed, remove with "sudo rm".
rm -rf /home/rukai2/Projects/Crates/redox/foo/redox/build/podman || true
podman image rm --force redox-base || true
ERRO[0000] cannot find UID/GID for user rukai: no subuid ranges found for user "rukai" in /etc/subuid - check rootless mode in man pages.
WARN[0000] Using rootless single mapping into the namespace. This might break some images. Check /etc/subuid and /etc/subgid for adding sub*ids if not using a network user
mkdir -p /home/rukai2/Projects/Crates/redox/foo/redox/build/podman
Building Podman image. This may take some time.
sed s/_UID_/`id -u`/ podman/redox-base-containerfile | podman build --file - --volume /home/rukai2/Projects/Crates/redox/foo/redox:/mnt/redox:Z --volume /home/rukai2/Projects/Crates/redox/foo/redox/build/podman:/home:Z --tag redox-base
STEP 1/3: FROM ubuntu:latest
Resolved "ubuntu" as an alias (/etc/containers/registries.conf.d/00-shortnames.conf)
Trying to pull docker.io/library/ubuntu:latest...
Getting image source signatures
Copying blob aece8493d397 done |
Error: creating build container: copying system image from manifest list: writing blob: adding layer with blob "sha256:aece8493d3972efa43bfd4ee3cdba659c0f787f8f59c82fb3e48c87cbb22a12e": processing tar file(potentially insufficient UIDs or GIDs available in user namespace (requested 0:42 for /etc/gshadow): Check /etc/subuid and /etc/subgid if configured locally and run "podman system migrate": lchown /etc/gshadow: invalid argument): exit status 1
make: *** [mk/podman.mk:57: build/container.tag] Error 1
```
I also got this issue when following: https://doc.redox-os.org/book/ch02-06-podman-build.html#existing-working-directory
I tried that originally before trying the from new working directory build.https://gitlab.redox-os.org/redox-os/redoxfs/-/issues/44Disk encryption uses AES in ECB mode2023-10-18T00:07:21ZJavaDisk encryption uses AES in ECB modeThe encryption feature of the FS encrypts all AES-blocks with the same key, therefor the encryption is ineffective and barely does anything.
Good example of what the issue with ECB is:
![image](/uploads/04818ee0cef5de84c8fb1c3e9c4e7bff...The encryption feature of the FS encrypts all AES-blocks with the same key, therefor the encryption is ineffective and barely does anything.
Good example of what the issue with ECB is:
![image](/uploads/04818ee0cef5de84c8fb1c3e9c4e7bff/image.png)
More information about issues with ECB:
https://crypto.stackexchange.com/questions/20941/why-shouldnt-i-use-ecb-encryptionhttps://gitlab.redox-os.org/redox-os/redox/-/issues/1405(Open to discussion) Filesystem sandbox system2023-10-16T10:38:16ZRibbon(Open to discussion) Filesystem sandbox systemFilesystem sandbox is very important to avoid data attacks/leaks and user-space rootkits, each process has its own namespace with schemes (use `ls :` to verify the current namespace).
The best security model is to let the user decide wh...Filesystem sandbox is very important to avoid data attacks/leaks and user-space rootkits, each process has its own namespace with schemes (use `ls :` to verify the current namespace).
The best security model is to let the user decide which folders/files some program can access (like recent Android versions), it can be done in two ways:
- When the user open a new program, the windowing system will ask which folders/files the program can access (similar to the xdg-portal window for file selection on XDG-compatible programs).
- The user can specify which folders/files some program can access using a TOML configuration (GUI/terminal).
## Terminal
In most cases the folders/files on terminal programs are specified on the command, thus it's a form of permission.
But the attacker can install an user-space rootkit using commands or a script, to mitigate this a permission prompt could be implemented for file operations on the terminal.
## Implementation
This will be done with scheme filters, the process can use a directory scheme (`home:` for `/home`) or the `file:` scheme directly.
Example:
- `home:path/to/folder`
- `file:/path/to/folder`https://gitlab.redox-os.org/redox-os/redox/-/issues/1404(Open to discussion) Permission system2024-03-26T21:38:17ZRibbon(Open to discussion) Permission systemA good security system has program/filesystem sandbox, this issue will cover the program sandbox implementation.
The permission configuration will require user or admin password (like any OS) but without `sudo`, because it's prone to ab...A good security system has program/filesystem sandbox, this issue will cover the program sandbox implementation.
The permission configuration will require user or admin password (like any OS) but without `sudo`, because it's prone to abuses (unsafe).
### Schemes
Each kernel subsystem or user-space daemon implement schemes for communication, programs will use these schemes to work with different areas of the system.
### Security models
- Pre-configured permissions
The Redox developers will decide which permissions (schemes) a program package will have by default.
- Manual permissions
The user will give permissions to the program.
### Terminal
Most terminals use `sudo` for privileged tasks, it's prone to abuses and won't be used.
### GUI
If Orbital is available a permission window will pop up (like Windows and Android) for some program.
### Implementations
- Group-based
The program user will need to be a member of some resource group (`audio` and `video` for example), these groups use schemes.
- Configuration-based
A global TOML file will decide which schemes the programs can use (it needs to be read-only to avoid abuses).https://gitlab.redox-os.org/redox-os/kernel/-/issues/137Improve frame allocator performance2024-03-25T18:05:48ZJacob Lorentzon4ldo2@protonmail.comImprove frame allocator performance[Recent performance profiles](https://gitlab.redox-os.org/-/snippets/2225) of the kernel, suggest that the frame allocator is a major performance bottleneck. This can be improved by allocating frames in larger blocks, when single-frame a...[Recent performance profiles](https://gitlab.redox-os.org/-/snippets/2225) of the kernel, suggest that the frame allocator is a major performance bottleneck. This can be improved by allocating frames in larger blocks, when single-frame allocations are requested, or by optimizing the allocator itself.
Page fault readahead would also improve performance, but for regular allocations, the hardware page fault overhead and overhead from locking etc. is likely not yet significant enough for that.https://gitlab.redox-os.org/redox-os/redox/-/issues/1403Problem compiling either native or with podman2023-10-18T18:17:40ZCoderdreams IncProblem compiling either native or with podman* [x] I agree that I have searched opened and closed issues to prevent duplicates.
---
## Description
I'm getting this error:
**Compiling** redox-exec v0.1.0 (/mnt/redox/relibc/src/platform/redox/redox-exec) \
**error\[E0432\]: unr...* [x] I agree that I have searched opened and closed issues to prevent duplicates.
---
## Description
I'm getting this error:
**Compiling** redox-exec v0.1.0 (/mnt/redox/relibc/src/platform/redox/redox-exec) \
**error\[E0432\]: unresolved imports \`syscall::GrantDesc\`, \`syscall::GrantFlags\`** \
**\--\>** src/platform/redox/redox-exec/src/lib.rs:27:5 \
**|** \
**27** **|** GrantDesc, GrantFlags, PROT_READ, PROT_EXEC, MAP_SHARED, MAP_FIXED_NOREPLACE, \
**|** **^^^^^^^^^** **^^^^^^^^^^** \
**|** **|** **|** \
**|** **|** **no \`GrantFlags\` in the root** \
**|** **|** **help: a similar name exists in the module: \`EventFlags\`** \
**|** **no \`GrantDesc\` in the root** \
\
**For more information about this error, try \`rustc --explain E0432\`.** \
**error:** could not compile \`redox-exec\` (lib) due to previous error
## Environment info
- Redox OS Release: master branch
- Operating system: Manjaro 23.0.3
- `uname -a`: Linux tetsuo-ms7b84 6.4.16-5-MANJARO #1 SMP PREEMPT_DYNAMIC Thu Sep 28 10:59:52 UTC 2023 x86_64 GNU/Linux
- `rustc -V`: rustc 1.75.0-nightly (cae0791da 2023-10-05)
- `git rev-parse HEAD`: a55f8bfab0c049114d4aaa160be8407e949b948f
## Steps to reproduce
1. run: make all
2.
##https://gitlab.redox-os.org/redox-os/redox/-/issues/1402(Feature request) Recipe override list2023-11-06T17:47:08ZRibbon(Feature request) Recipe override listBy default the build system change the active Git branch of all recipe sources to `master` (`make rebuild` and `make r.recipe`, even after `make f.recipe`).
This auto-checkout can be time-consuming because you need to manually comment o...By default the build system change the active Git branch of all recipe sources to `master` (`make rebuild` and `make r.recipe`, even after `make f.recipe`).
This auto-checkout can be time-consuming because you need to manually comment out the `[source]` and `git =` fields of each `recipe.toml` to avoid this.
The solution is to create a file called `.overrides` and add the names of the recipes that you want to disable the Git checkout.https://gitlab.redox-os.org/redox-os/kernel/-/issues/136Proper TLB management2024-03-05T02:29:09ZJacob Lorentzon4ldo2@protonmail.comProper TLB managementThe TLB is currently flushed much more often than necessary, which makes errors very unlikely, but TLB flushing is not synchronized across threads e.g. when deallocating/downgrading mappings, and not optimized. This is also required for ...The TLB is currently flushed much more often than necessary, which makes errors very unlikely, but TLB flushing is not synchronized across threads e.g. when deallocating/downgrading mappings, and not optimized. This is also required for future optimizations such as PCID.https://gitlab.redox-os.org/redox-os/drivers/-/issues/38Invalid/ Missing register writes in ixgbe driver2023-09-25T18:26:58ZRamla-IInvalid/ Missing register writes in ixgbe driverThe following bugs are present in the ixgbe driver:
1. Write to reserved bits \[15:12\] of the DTXMXSZRQ register
2. Bits of RDRXCTL are not set by software. According to the datasheet:
1. RDRXCTL.RSCFRSTSIZE is by default 0x8 and s...The following bugs are present in the ixgbe driver:
1. Write to reserved bits \[15:12\] of the DTXMXSZRQ register
2. Bits of RDRXCTL are not set by software. According to the datasheet:
1. RDRXCTL.RSCFRSTSIZE is by default 0x8 and should be set to 0 by software.
2. RDRXCTL.RSCACKC is by default 0 and should be set to 1 by software.
3. RDRXCTL.FCOE_WRFIX is by default 0 and should be set to 1 by software.
3. The FCTRL register should only be modified/ updated when the RXCTRL.RXEN bit is set to 0, but the `set_promisc` function updates the filters after RXCTRL.RXEN is set.https://gitlab.redox-os.org/redox-os/termion/-/issues/196events() does not work with I/O Safety2023-09-23T17:29:26ZAlan Somersevents() does not work with I/O SafetyTermion does not work with Rust's I/O Safety features. The problem is that the TermRead::events method captures by move. That's fine if all of the terminals are represented by RawFds, which allow Copy. But OwnedFd does not, nor does i...Termion does not work with Rust's I/O Safety features. The problem is that the TermRead::events method captures by move. That's fine if all of the terminals are represented by RawFds, which allow Copy. But OwnedFd does not, nor does io::Stdin. That creates a problem when one tries to use TermRead::events in combination with other APIs that expect BorrowedFd or OwnedFd. It would be better if TermRead::events would accept either an OwnedFd by move (and implement AsFd too), or accept a BorrowedFd reference and capture its lifetime.
Here's an example of a program that ought to work, but doesn't.
```rust
extern crate nix;
extern crate termion;
use std::os::fd::AsFd;
use nix::poll::{PollFd, PollFlags, poll};
use termion::input::TermRead;
fn main() {
let stdin = std::io::stdin();
// Create a pollfd, so we can poll for keyboard events with a timeout
let pollfd = PollFd::new(stdin.as_fd(), PollFlags::POLLIN);
// Create a Termion Events object to actually read the events.
// But oh no! events() captures by move.
let mut events = stdin.events();
// Wait for events to arrive
// BUILD FAILS: pollfd borrows stdin, which was already moved.
poll(&mut [pollfd][..], 1000);
// Check what event arrived
dbg!(events.next());
}
```
Here are the compile errors:
```
Checking termion v2.0.1 (/usr/home/somers/src/rust/termion)
error[E0505]: cannot move out of `stdin` because it is borrowed
--> examples/borrowed_fd.rs:17:22
|
10 | let stdin = std::io::stdin();
| ----- binding `stdin` declared here
...
13 | let pollfd = PollFd::new(stdin.as_fd(), PollFlags::POLLIN);
| ----- borrow of `stdin` occurs here
...
17 | let mut events = stdin.events();
| ^^^^^ move out of `stdin` occurs here
...
21 | poll(&mut [pollfd][..], 1000);
| ------ borrow later used here
For more information about this error, try `rustc --explain E0505`.
error: could not compile `termion` (example "borrowed_fd") due to previous error
```https://gitlab.redox-os.org/redox-os/redox/-/issues/1401(Feature request) Enable the recipe binary syntax by default2023-11-06T17:45:06ZRibbon(Feature request) Enable the recipe binary syntax by defaultWhen you enable the `REPO_BINARY` environment variable the build system treat the default recipe syntax as binary (`recipe = {}`) that will download packages from the CI server, to treat a recipe as source-based you need to use `recipe =...When you enable the `REPO_BINARY` environment variable the build system treat the default recipe syntax as binary (`recipe = {}`) that will download packages from the CI server, to treat a recipe as source-based you need to use `recipe = "recipe"`.
A switch for the `recipe = {}` syntax is not flexible, it's an annoying behavior if you just want to use a few recipe binaries from the CI server (my case).
The solution is to enable the `recipe = "binary"` syntax by default.https://gitlab.redox-os.org/redox-os/redox/-/issues/1400make qemu vga=no is not working anymore2023-08-31T13:26:30ZRibbonmake qemu vga=no is not working anymore`make qemu vga=no` is not working after the VirtIO MRs, someone has the same error?
- OS - Pop OS 22.04
- CPU - Intel® Core™ i3-1005G1
[qemu-vga-no.log](/uploads/aaccb267a245d23996f2c004368a3e90/qemu-vga-no.log)`make qemu vga=no` is not working after the VirtIO MRs, someone has the same error?
- OS - Pop OS 22.04
- CPU - Intel® Core™ i3-1005G1
[qemu-vga-no.log](/uploads/aaccb267a245d23996f2c004368a3e90/qemu-vga-no.log)https://gitlab.redox-os.org/redox-os/cookbook/-/issues/189Recipe logs2023-12-31T11:40:26ZRibbonRecipe logsThis issue will hold all logs of [WIP recipes](https://gitlab.redox-os.org/redox-os/cookbook/-/tree/master/recipes/wip?ref_type=heads), doing this any developer can fix the porting errors more quick.
If you fix a recipe error, reply the...This issue will hold all logs of [WIP recipes](https://gitlab.redox-os.org/redox-os/cookbook/-/tree/master/recipes/wip?ref_type=heads), doing this any developer can fix the porting errors more quick.
If you fix a recipe error, reply the comment with "Fixed".https://gitlab.redox-os.org/redox-os/redox/-/issues/1399Include latest git commit hash in the release file2023-10-27T13:29:42ZKivimangoInclude latest git commit hash in the release fileIt would be good to include the hash and date of the latest commit of the kernel in the /etc/redox-release in the selectable configuration files "files" section.It would be good to include the hash and date of the latest commit of the kernel in the /etc/redox-release in the selectable configuration files "files" section.