Categories: Development
TODO list for CRUX 3.8
Ports
core
- toolchain updates: gcc 14, binutils, glibc, python3 (done)
- decide whether to move libbsd and libmd to core (shadow enables it by default)
- add a new group 'plugdev' and user 'sgx' to satisfy udev (done)
- reconsider the default Mail Transport Agent: something more lightweight than exim will satisfy the majority of use cases.
- What can we use instead? Proposals?
- Or don't include any MTA in core, since our default cron daemon has the -M switch to obviate the need for /usr/sbin/sendmail (but this feature needs to be documented if we ship crontabs with our core ports).
- If I had to say something, I'd go with none as well probably. (tb)
- rewrite rc scripts to target dash instead of bash? (Side effect: users with UPGRADE ^etc/rc.conf$ NO in their pkgadd.conf will have to be notified of breaking changes, as dash lacks support for bash-style arrays)
- in '/etc/rc' use a better algorithm to seed /dev/urandom (FS#1921)
- in '/etc/rc' consider protecting all mount commands behind a /bin/mountpoint test, for users who configure a multi-stage boot process (done)
- in '/etc/rc.conf' consider introducing a variable for the screen blanking time (FS#1922) (done)
- glibc now keeps libcrypt disabled by default (see 2.38 release notes)
- libxcrypt seems to be the way forward
- resolution: imported libxcrypt to core (commit)
opt
- drop python2 (done)
- replace cdrkit with cdrtools? Every toolchain update seems to introduce new patches for cdrkit, and there's no upstream maintainer taking responsibility for merging distro patches. (Side effect: system/iso/Makefile will need to use
mkisofs
instead of genisoimage
)
- decide whether to close FS#1313 as a "wontfix", or to update the git driver to act more like rsync and httpup
- formulate a better definition of what belongs in opt, and what should be moved to contrib (mostly done)
- glib and gobject-introspection circular dependency
- resolution: imported glib-introspection and introduced as a dependency (commit history)
xorg
- move xorg-libpixman to the opt collection, for easier setup of a headless machine with the xorg collection deactivated (FS#1924)
- build mesa with dynamically-configured value for
vulkan-drivers
(currently hard-coded as amd,intel
), similar to how PKGMK_MESA_GALLIUM and PKGMK_MESA_PLATFORMS are defined
- make x11 optional, maybe opt for a wayland default if hardware support is available?
all repos
- consider adhering more closely to the guidelines for placing config files into '/etc' versus '/usr/etc'. New repo maintainers are confused by the apparent contradiction between the Handbook and actual practice (system daemons sometimes storing their configs under '/usr/etc', userland apps sometimes storing their configs under '/etc'). We should either give them a better example to follow, or rewrite the guidelines to reflect a new consensus.
- How do you all feel about reconsidering our guideline? Having just one etc folder might simplify, especially with a system wide XDG_CONFIG_DIRS setting
Pkgutils
- recognize zstd as a valid compression mode for built packages
- verify the signature of Pkgfile before sourcing it (FS#1851)
- disallow Pkgfile or pkgmk.conf overriding command-line options like
--ignore-signature
(current counterintuitive behaviour rediscovered by r0ni)
- consider supporting simple overlays
- consider the possibility to handle git sources natively
- fix the symlink handling in pkgadd (FS#15)
- update man-pages to encourage future-proof Pkgfiles and to warn against perverse configurations
- respect UPGRADE NO rules even if the footprint of the new package no longer has the matching file (FS#1074)
prt-get
- allow transactions to use the Optional line in the Pkgfile header (current behaviour is to consider only hard dependencies)
- improve the argument parsing when a mix of installed and not-installed ports is given (FS#1910)
- allow users to configure auto-removal of build logs when uninstalling a package (patch by farkuhar)
- consider enabling dependency resolution by default, and letting the user disable it with the --nodeps switch (in June 2008 jw provided some historical notes about managing dependencies to justify such a change)
- update the man-page: show practical uses of pipelines (which would justify closing FS#849 and FS#1605 as "wontfix"), and delete from the examples any references to dropped ports
- ensure that whitespace separates the port name from the version, when 'diff' detects version differences in ports of more than 20 characters (FS#1930)
- respect --install-root when pre- or post-install scripts are enabled (bug report by emmett1)
prt-utils
- update the language in the dialog presented by prtrej to be less misleading. Right now, "older" and "newer" are applied without bothering to check timestamps. (patch by ukky)
- allow prtrej to recognize SYSROOT, for users who cross-compile (patch by ukky)
- switch to Perl implementations of prtwash and prtsweep (rewrites by farkuhar)(Done)
Iso
- bump Linux to 6.6 and ship a corresponding modular kernel config (done, SiFuh)
- edit the init script so that crux media is detected when booting from ventoy (patch by ukky) - Seems like this is no longer needed, tested ventoy 1.0.99 with both 3.7 updated and 3.8 rc ISOs (No longer needed)
- include zfs?
- use setup-helper to rename ports that refer to an outdated soversion (done)
Documentation
- move the discussion of rejmerge to a more prominent place in the handbook
- mention in the handbook the cron jobs that are enabled by default
- warn users about the behaviour of the git driver if FS#1313 is closed as a "wontfix"
- decide what to do about upstream ports that do not bundle pre-generated man-pages