The official instruction now says to go into the individual directories to build what you need. This can work but I think it is a bit tedious. It should be possible to configure everything one time and choose everything at the outset. I still chose to 'make reinstall' from the xlibre-ports directory, which runs into a number of conflicting installs. I believe I could craft a Makefile with all the requisite options and design them so that only one of a group would be chosen. This may mean multiple new Makefile PRs, if it cannot work from the top or becomes too complicated when it is done that way.
Once upon a time, a meta port had all of the options available to tick, now a meta port is just a collection of ports which seems to only install everything or nothing. I don't know why this changed, maybe some people became lazy, maybe this lazy crept into the ports structure policy, maybe I am fondly remembering how FreeBSD 2.2.6 had been. All I know is that things are not as I would prefer them to be.
My "brute force" solution is to hide the xorgxrdp-devel directory in one named hid, and the same for the nvidia drivers, all into a hid directory in the x11 subdirectory. This cures my problems with conflicting installs, the build completes and I can exit to re-startx.
The particularly unusual part about going to xlibre-ports to make install, is that it does go to the individual directories, and where those have their own Makefile with options, the config appears and you tick how you desire, but then after you exit via the OK button, the process continues and ignores that you only selected a small number, it builds every one.
This might just be an omission of the top level Makefile, since the x11-drivers/xlibre-drivers Makefile seems reasonable and should trigger only specific things to be built. The top level Makefile should have x11-drivers/xlibre-drivers as a dependency I believe, which would then send the build to that option config instead of to the entire x11-drivers directory, to build all of them. The x11/xlibre Makefile also seems reasonable and has xlibre-drivers as a dependency, so it is looking more and more like the top level is what needs fixing. When I look in the x11-servers directory, there is an xlibre-servers directory but its Makefile offers no options to confiure, shouldn't it have options to choose one or more of the available servers?
At the moment, it looks like I need to craft or revise as many as two Makefiles in order to have the desired result of typing make install or make config at the top level (xlibre-ports) directory to have it only build what is desired, while also not denying the potential to build and install everything (although maybe the xorgxrdp and xorgxrdp-devel, and multiple x11/nvidia-drivers conflicts need resolving).
If I compare the former xorg, there is an xorg Makefile in /usr/ports/x11, and within xlibre-ports there is x11/xlibre. When the Makefiles are compared, there are definite similarities as the newer is surely based from the older, but I think our xlibre Makefile can be improved.
PORTNAME= xorg | PORTNAME= xlibre
PORTVERSION= 7.7 | PORTVERSION= 0.1
PORTREVISION= 3 <
CATEGORIES= x11 CATEGORIES= x11
MAINTAINER= x11@FreeBSD.org | MAINTAINER= b-aazbsd@proton.me
COMMENT= X.Org complete distribution metaport | COMMENT= XLibre + X.Org complete distribution metaport
WWW= https://www.x.org/ | WWW= https://github.com/X11Libre/ \
> https://www.x.org/
USES= metaport USES= metaport
RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri
# data # data
RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/xbitmaps.pc:x11/xbitmaps \ RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/xbitmaps.pc:x11/xbitmaps \
${LOCALBASE}/share/icons/handhelds/cursors/X_cursor:x11-themes/xcurso ${LOCALBASE}/share/icons/handhelds/cursors/X_cursor:x11-themes/xcurso
OPTIONS_DEFINE= DOCS OPTIONS_DEFINE= DOCS
DOCS_RUN_DEPENDS+= ${LOCALBASE}/share/doc/xorg-docs/README.xml:x11/xorg-docs DOCS_RUN_DEPENDS+= ${LOCALBASE}/share/doc/xorg-docs/README.xml:x11/xorg-docs
# app, lib, font, driver # app, lib, font, driver
RUN_DEPENDS+= xorg-apps>0:x11/xorg-apps \ RUN_DEPENDS+= xorg-apps>0:x11/xorg-apps \
xorg-libraries>0:x11/xorg-libraries \ xorg-libraries>0:x11/xorg-libraries \
xorg-fonts>0:x11-fonts/xorg-fonts \ xorg-fonts>0:x11-fonts/xorg-fonts \
xorg-drivers>0:x11-drivers/xorg-drivers | xlibre-drivers>0:x11-drivers/xlibre-drivers
<
.if defined(XORG_COMPLETE) <
RUN_DEPENDS+= Xnest:x11-servers/xorg-server@xnest \ <
Xvfb:x11-servers/xorg-server@xvfb <
.endif <
.include .include
I need to do more tests but went to the xlibre-ports/x11/xlibre directory to make rmconfig-recursive and then make config-recursive. After that was all clarified, I tried make reinstall-recursive hoping that everything including dependencies gets reinstalled. Without first making a list of everything I have installed, so I can restore everything after, and then removing everything, I won't be sure that a reinstall-recursive will guarantee a functional xlibre. This was not how I've installed things for all of my previous xlibre installs. If this in fact works (except for my amdgpu driver and a few graphics items related to that) then I won't need to create a PR for the Makefile.
I removed everything and set it to building from xlibre-ports/x11/xlibre, as usual a rather long process. Everything built and as before, I shortcut some dependencies by installing them via pkg. After it finished, I had everything else necessary reinstalled, but I made a small mistake that caused all of the firmware kmods to install (including intel and others that I won't need) though just a small annoyance and not fatal. It looks like I won't be making any PR to improve the makefiles. What I will need to remember is to simply install or reinstall from the xlibre-ports/x11/xlibre directory and everything will be fine. Also, compared to the last time I updated xlibre, although this time was after everything was wiped out first, I did update the xlibre-ports repo before the removal and before the rebuild which otherwise would have been a reinstall.
My assumption was wrong, everything for xlibre-ports does work correctly, if one goes to the correct subdirectory to start the build, install, or reinstall. I didn't end up with every driver under the sun, the build process honored my config selections, all that was built was xlibre-drivers, xlibre-xf86-input-keyboard, xlibre-xf86-input-libinput, xlibre-xf86-input-mouse, and x11-drivers/xlibre-xf86-video-amdgpu. This is great, it means that we are all that much closer (I believe) to this becoming an official ports tree addition. I'll continue to keep an eye on xlibre and xlibre-ports, and periodically update my system. I don't foresee any problems with xlibre itself, or the future xlibre port when that happens.
No comments:
Post a Comment