FreeBSD/X11 TODO list
Overview
Here are quite a few things that are / will be or should be worked on soon.
- Remove references to USE_XLIB / USE_X_PREFIX.
- Check if ports depend on devel/imake when they should.
- Add a target to bsd.xorg.mk that prints the optimal USE_XORG list, with only direct dependencies (painful, low priority).
- Check if ports using USE_GL=yes really need libGLU, if they don't set USE_GL=gl, if they do, set USE_GL="glu gl" or USE_GL=glu (low priority).
Personal (flz) TODO list:
- Cleanup Mesa ports: not CFLAGS-safe, doesn't allow cross-building, add libOSMesa port.
- Make xorg-server and xorg-server-snap respectively master and slave ports.
- Improve x11/nvidia-driver integration.
Here is a list of ports that may need fixing.
If you're in there, please fix. If you're not, pick any port maintained by ports@FreeBSD.org , fix it and send-pr the patch with a self-explanatory synopsis (like "misc/foo: Remove dependency on X_CLIENTS_PORT".
Remove meta-ports dependencies
Remove dependency on USE_XLIB / USE_X_PREFIX
Why is it bad? If you use one of USE_XLIB / USE_X_PREFIX, your port will depend on xorg-libraries, which in turn depends on all the x.org libraries. The more dependencies you have, the longer it takes to process them.
Everytime you use USE_XLIB / USE_X_PREFIX, God kills a kitten.
To fix a port, look for configure.{ac,in}, Makefile's, ... and establish a list of all the needed X libraries. Find the associated ports, then set USE_XORG to the list of those libraries. Remove USE_XLIB / USE_X_PREFIX occurrences.
If you have time on your hands, just grep -r USE_XLIB /usr/ports and find out which one are unmaintained. Fix, then send-pr with a synopsis like "misc/foo: Remove USE_XLIB in favor of USE_XORG".
Remove dependency on X_CLIENTS_PORT
To fix a port that depends on X_CLIENTS_PORT, it should be pretty easy. Make a list of all the X apps your port requires (that's the tricky part), find the associated ports (likely to be x11/<app>), add those in BUILD_DEPENDS and/or RUN_DEPENDS, remove references to X_CLIENTS_PORT, bump PORTREVISION. Bang, you're done.
Beware! Quite often, the apps will be runtime dependencies, so a successful build doesn't prove you have the correct set of RUN_DEPENDS.
Check USE_XPM references
USE_XPM=yes can be replaced by adding "xpm" to USE_XORG.
Check USE_IMAKE / X_IMAKE_PORT references
Some ports depend on devel/imake because they need gccmakedep or makedepend. Plus, USE_IMAKE implies USE_XLIB, so we really want to get rid of this.
If the port really depends on imake, then add:
- BUILD_DEPENDS= imake:${PORTSDIR}/devel/imake
otherwise
- BUILD_DEPENDS= gccmakedep:${PORTSDIR}/devel/gccmakedep
or
- BUILD_DEPENDS= makedepend:${PORTSDIR}/devel/makedepend
(or both) may be enough.
USE_IMAKE ist used in bsd.port.mk at configure and install stage. If the following patch is applied to bsd.port.mk:
-.if defined(USE_IMAKE) && !defined(USE_X_PREFIX) +.if defined(USE_IMAKE) && !defined(USE_X_PREFIX) && !defined(USE_XORG)
A port with USE_IMAKE=yes can be migrated just by adding USE_XORG to its Makefile.