761e0d9de7
The literal task 'build ALL KDE packages' cannot be 100% completed because 12 packages require upstream dependencies not available on Redox: - kirigami + plasma* (4): QML JIT disabled — no QQuickWindow/QQmlEngine - kwin real build (1): Qt6::Sensors port needed - breeze + kf6-kio + kf6-knewstuff + kde-cli-tools (4): source issues - plasma extras (3): transitive blockers What WAS completed: - Cookbook topological sort fix (root cause — all deps now correct order) - kf6-attica recipe (183 files, 2.4MB pkgar) - 12 I2C/GPIO/UCSI daemons archived as durable patches - Source archival system (make sources) - Config + all docs synced, no contradictions
66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
# Zsh on Redox
|
|
|
|
Production recipe for Zsh 5.9 on Red Bear OS / Redox.
|
|
|
|
## Status
|
|
|
|
- **Builds:** yes
|
|
- **Runtime:** basic shell works; `times` builtin is a no-op stub
|
|
- **Blockers:** `times()` not yet in relibc; `getrusage()` present but returns zeroed data (microkernel design)
|
|
|
|
## Patch Summary
|
|
|
|
| File | Change | Reason |
|
|
|------|--------|--------|
|
|
| `configure.ac` | Remove `getrusage` from `AC_CHECK_FUNCS` | Historical: relibc now has getrusage (returns zeroed data) |
|
|
| `Src/builtin.c` | Stub `bin_times()` | `times()` unavailable in relibc |
|
|
| `Src/Builtins/rlimits.c` | Disable `set_resinfo()` / `free_resinfo()` | These depend on `getrusage()` |
|
|
|
|
## Configure Flags
|
|
|
|
- `--disable-gdbm` — avoid GNU dbm dependency
|
|
- `--disable-pcre` — avoid PCRE dependency
|
|
- `--disable-cap` — avoid POSIX capabilities dependency
|
|
- `zsh_cv_sys_elf=no` — skip ELF detection (not applicable on Redox)
|
|
|
|
## Dependencies
|
|
|
|
- `ncursesw` — wide-character terminal library
|
|
|
|
## Install Targets
|
|
|
|
Zsh uses non-standard install targets:
|
|
|
|
```
|
|
make install.bin install.modules install.fns DESTDIR="${COOKBOOK_STAGE}"
|
|
```
|
|
|
|
## Configuration Files
|
|
|
|
The recipe installs Manjaro-inspired system-wide zsh configuration:
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `/etc/zsh/zshenv` | Environment variables for all zsh shells |
|
|
| `/etc/zsh/zprofile` | Login shell profile (sources `/etc/profile` for compatibility) |
|
|
| `/etc/zsh/zshrc` | Interactive shell config: history, completion, colors, prompt, aliases |
|
|
| `/etc/skel/.zshrc` | Template for new users |
|
|
| `/etc/skel/.zprofile` | Template for new users (login shell) |
|
|
|
|
### Features (Manjaro-style)
|
|
|
|
- **Colored prompt**: green for user, red for root, with hostname and working directory
|
|
- **Right-side prompt**: shows exit code on error
|
|
- **Tab completion**: with menu selection, approximate matching, and colorized listings
|
|
- **History**: shared across sessions, ignores duplicates and leading-space entries
|
|
- **Aliases**: `ls`, `ll`, `la`, `grep`, `cp`, `mv`, `rm` with color and safety flags
|
|
- **Convenience**: `AUTO_CD`, `CORRECT`, `NO_BEEP`
|
|
- **Optional plugins**: `zsh-syntax-highlighting`, `zsh-autosuggestions` (loaded if available)
|
|
|
|
## Future Work
|
|
|
|
- Re-enable `times` builtin when relibc gains `times()` support
|
|
- Re-enable resource-limit info getrusage is now available (returns zeroed data)
|
|
- Evaluate enabling `gdbm`, `pcre`, or `cap` if those libraries are ported
|
|
- Package `zsh-syntax-highlighting` and `zsh-autosuggestions` plugins
|