af03420bcc
libpng
contrib/libtests/pngvalid.c calls feenableexcept(), a glibc extension
relibc does not provide, and GCC 14+ makes the implicit declaration an
error. It is a test program, so build it the way AGENTS.md
§ CONVENTIONS already prescribes for cross builds -- '--disable-tests'.
The library is unaffected; only check_PROGRAMS is skipped, and those
binaries cannot run on the build host regardless.
zsh
zsh 5.9 probes for the termcap symbol arrays with
char **test = boolcodes; puts(*test);
and ncurses declares boolcodes as 'const char * const *'. GCC 14
promoted -Wincompatible-pointer-types to an error, so the probe stopped
compiling, configure concluded boolcodes=no, HAVE_BOOLCODES was left
undefined, and Src/Modules/termcap.c fell back to defining its own
array -- colliding with the header:
termcap.c:45: error: conflicting types for 'boolcodes'
The probe uses a bare shell variable, not an ac_cv_ cache entry, so
there is nothing to override; restoring the pre-GCC-14 severity is what
lets it reach the right answer. Scoped to this recipe so the rest of the
tree keeps the stricter default.
Both cook clean.
Zsh on Redox
Production recipe for Zsh 5.9 on Red Bear OS / Redox.
Status
- Builds: yes
- Runtime: basic shell works;
timesbuiltin 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 dependencyzsh_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,rmwith color and safety flags - Convenience:
AUTO_CD,CORRECT,NO_BEEP - Optional plugins:
zsh-syntax-highlighting,zsh-autosuggestions(loaded if available)
Future Work
- Re-enable
timesbuiltin when relibc gainstimes()support - Re-enable resource-limit info getrusage is now available (returns zeroed data)
- Evaluate enabling
gdbm,pcre, orcapif those libraries are ported - Package
zsh-syntax-highlightingandzsh-autosuggestionsplugins