Porting X11Libre to FreeBSD.

Just a question/info in case it helps:

I order to make XLibre work on FreeBSD 15.0-RELEASE I had to add the following link:
Code:
cd /usr/lib; ln -s libmd.so libmd.so.6

Any ideas why?
 
Just a question/info in case it helps:

I order to make XLibre work on FreeBSD 15.0-RELEASE I had to add the following link:
Code:
cd /usr/lib; ln -s libmd.so libmd.so.6

Any ideas why?
That's peculiar.

How/where did you build the ports?
 
I installed all packages required via make install-missing-packages and then Xlibre via make clean install
Are your pkg repositories in sync with the tree? (Are they both on the latest quarterly branch?)
Can you post the Meson log file from this build?

This is the line that finds the libmd library. you can perhaps add error() statements around those variables and see what is getting selected. (This should be done after make patch and before make build )


On my FreeBSD 14.3 libmd is located at /lib/libmd.so.6 and an identical copy exist in /usr/lib/libmd.so. The /usr/local/libexec/Xorg binary is linked to /lib/libmd.so.6.

A ldd output on /usr/local/libexec/Xorg is also apreciated.
 
I have been using poudriere to build xlibre.
# poudriere bulk -j xlibre-mm-15 -O xlibre -f xlibre.ports
Since 73145c I have been seeing this error

Code:
[00:00:03] Error: compute_deps_pkg failed to lookup pkgname for x11-drivers/xf86-video-scfb@xlibre processing package xlibre-drivers-0.1 from x11-drivers/xlibre-drivers -- Does x11-drivers/xf86-video-scfb provide the 'xlibre' FLAVOR?
[00:00:03] Error: Fatal errors encountered calculating dependencies

I ran poudriere with verbose logging and filtered out the lines for x11-drivers/xf86-video-scfb to get the following:

Code:
[00:00:02] x11-drivers/xlibre-drivers depends on x11-drivers/xf86-video-scfb@xlibre
[00:00:02] Debug: Want to enqueue default x11-drivers/xf86-video-scfb rdep=metadata xlibre x11-drivers/xlibre-drivers into mqueue
[00:00:02] Debug: gather_port_vars_process_depqueue_enqueue (x11-drivers/xlibre-drivers): Adding x11-drivers/xf86-video-scfb into the mqueue (rdep=metadata xlibre x11-drivers/xlibre-drivers)
[00:00:02] Debug: Want to enqueue x11-drivers/xf86-video-scfb@xlibre rdep=x11-drivers/xlibre-drivers into fqueue
[00:00:02] Debug: gather_port_vars_process_depqueue_enqueue (x11-drivers/xlibre-drivers): Adding x11-drivers/xf86-video-scfb@xlibre into the fqueue (rdep=x11-drivers/xlibre-drivers)
[00:00:03] Warning: (x11-drivers/xf86-video-scfb): Debug: gather_port_vars_port (x11-drivers/xf86-video-scfb): LOOKUP
[00:00:03] Warning: (x11-drivers/xf86-video-scfb): Debug: deps_fetch_vars: discovered x11-drivers/xf86-video-scfb is xlibre-xf86-video-scfb-0.0.7_2
[00:00:03] Warning: (x11-drivers/xf86-video-scfb): Debug: SKIPPING x11-drivers/xf86-video-scfb - metadata lookup queued=xlibre default=xorg
[00:00:03] Warning: (x11-drivers/xf86-video-scfb@xlibre): Debug: gather_port_vars_port (x11-drivers/xf86-video-scfb@xlibre): LOOKUP
[00:00:03] Warning: (x11-drivers/xf86-video-scfb@xlibre): Debug: deps_fetch_vars: originspec x11-drivers/xf86-video-scfb@xlibre is superfluous for PKGNAME xlibre-xf86-video-scfb-0.0.7_2
[00:00:03] Error: compute_deps_pkg failed to lookup pkgname for x11-drivers/xf86-video-scfb@xlibre processing package xlibre-drivers-0.1 from x11-drivers/xlibre-drivers -- Does x11-drivers/xf86-video-scfb provide the 'xlibre' FLAVOR?

Has anyone else seen this or know what this means?
 
I have now compiled XLibre server on 15.0, and it is getting correctly linked to:

libmd.so.7 => /lib/libmd.so.7 (0x183722b30000)

So I believe it could do with your setup elgrande .
 
I have been using poudriere to build xlibre.
# poudriere bulk -j xlibre-mm-15 -O xlibre -f xlibre.ports
Since 73145c I have been seeing this error

I am not really well versed in poudriere, but my guess would be that the xf86-video-scfb port in the main ports tree, which does not have an 'xlibre' flavor is getting selected over the one in my overlay, which has an 'xlibre' flavor.

You could do a small experiment: delete the x11/xf86-video-scfb folder in the main ports tree and rerun your build.
 
I am not really well versed in poudriere, but my guess would be that the xf86-video-scfb port in the main ports tree, which does not have an 'xlibre' flavor is getting selected over the one in my overlay, which has an 'xlibre' flavor.

You could do a small experiment: delete the x11/xf86-video-scfb folder in the main ports tree and rerun your build.
I deleted /usr/ports/x11-drivers/xf86-video-scfb and no change. I also tried copying the xf86-video-scfb from my xlibre-ports directory, which didn't help.

I have poudriere building the meta port x11/xlibre if that matters.
 
I deleted /usr/ports/x11-drivers/xf86-video-scfb and no change. I also tried copying the xf86-video-scfb from my xlibre-ports directory, which didn't help.

I have poudriere building the meta port x11/xlibre if that matters.

Did you notice any differences in the logs?


From my research it seams like there are reports of a similar scenario happening with the python ports, which use flavors extensively.
But I do not understand the root of this issue, the xf86-video-scfb port in the overlay has an xlibre flavor that functions correctly during builds with vanilla make.
Additionally it seams like it this flavor has been identified because the package name has the xlibre- prefix in the logs.
 
Did you notice any differences in the logs?
No difference I will double check to make sure.

I am no expert in poudriere either and it is probably something going on with my setup. I have another jail in poudriere that builds vanilla xorg so that may be part of the problem. It seems like poudriere sees the other package and decides they are the same despite the difference in flavors.
 
No difference I will double check to make sure.

I am no expert in poudriere either and it is probably something going on with my setup. I have another jail in poudriere that builds vanilla xorg so that may be part of the problem. It seems like poudriere sees the other package and decides they are the same despite the difference in flavors.
If you want you can build the ports and generate packages for them without using poudriere.

Just run this in the overlay's root after enabling it:

sh:
PACKAGES=/tmp/xlibre-pkgs make package

Make sure the path given to PACKAGES exists. After compilation, the pkg files for the ports will end-up in it.
 
If you want you can build the ports and generate packages for them without using poudriere.

Just run this in the overlay's root after enabling it:

sh:
PACKAGES=/tmp/xlibre-pkgs make package

Make sure the path given to PACKAGES exists. After compilation, the pkg files for the ports will end-up in it.
This worked for me. Xlibre is running on my box. I am playing with poudriere more to see if I can make it work. When I do, I'll report back.
Thanks again baaz!
 
Updates:
  1. FreeBSD 15 packages have been added to the repository.
  2. The README is now updated with better instructions + screenshots.
    (I have also added an BTC donation link;);))
  3. I had to temporarily disable the builds for the KDE ports (xlibre-kde, xlibre-plasma6-plasma & xlibre-plasma6-plasma-desktop) in the CI; they were eating up a ton of CPU time, and their dependency chains were too large and complex. This lead to some weird bugs in trying to meet their dependencies form the pkg binaries. You can still compile them from the overlay.
 
TL;DR I did get pkg-mgmt/poudriere to build xlibre for me, but only after I excluded the xf86-vidco-scfb driver from x11-driver/xlibre-drivers options.

It seems like there is a problem with the changes to x11-driver/xf86-video-scfb. I made a full copy of the ports tree and then copied over the ports from the xlibre-ports repo. I used the merged ports tree in poudriere to build xlibre. This also failed with the errors I gave above.

Poudriere cannot configure options of ports in the overlay (no -O overlays in poudriere-options(8)) so I used the merged ports tree to remove the option to include x11-driver/xf86-video-scfb in x11-driver/xlibre-drivers. Using this options file I was able to build xlibre.

I would suspect that building both x11-drivers/xf86-video-scfb and x11-drivers/xf86-input-egalax would fail the same way because their Makefile are so similar.
 
I have now compiled XLibre server on 15.0, and it is getting correctly linked to:

libmd.so.7 => /lib/libmd.so.7 (0x183722b30000)

So I believe it could do with your setup elgrande .

I have recompiled Xlibre server on 15.0 and the problem is gone.
I suspect it linked to a wrong library, since I rebuilt it between 2nd and 3rd freebsd-update as required - but at that point the old libmd.so.6 might have still existed.
Anyhow now it works without any hacks. Thanks for your work!
 
An I the only one that is seeing an Xorg.0.log file constantly growing at a rate of 4 lines per second? Something about libinput.
 
I switched back to regular Xorg and for some reasons unknown to me zrepl did not keep any snapshots of /var/log with a Xorg.0.log written by XLibre, so I don't an answer now. I'll maybe try XLibre again later today and report back.

Anyways, thanks for your interest.
 
An I the only one that is seeing an Xorg.0.log file constantly growing at a rate of 4 lines per second? Something about libinput.
Oh, that's because until 4578589 my CI builds were built with full debug flags set, that was to make it easier to find bugs in then much younger ports. I have disabled them now since they have reached a stage of relative maturity.

Refetching and reinstalling the packages should fix this. Or you can compile them from the overlay.
 
Some of you may have noticed that xlibre has been added to ports.
However, there appears to have been no discussion about adding it.
etc.
Yes. The same objection I've expressed here arose by other people far more important than me (plus, myself).

As I've proposed (and rejected) here before, the same concept (use DEFAULT_VERSIONS instead of FLAVOR) is proposed.
 
Hello!

Yes the news is correct and the core of XLibre ports has been committed into the FreeBSD's ports tree!
Big thanks to AlonsoBSD for committing them!

Although the core parts of the XLibre ports have been committed, the changes made to 3rd party ports (KDE, scfb, ...) have not been merged yet and are still awaiting aprovoal from their maintainers.

So for now I still recommend using the overlay or the CI repository until the merger is fully complete.

I'm supper happey about this and awaiting to see these ports in Q1!
 
As per T-Aoki's suggestions to move the FLAVORs discussions to the forums, I will be posting this here.

I have tried few times to describe this situation solely with text but I figured out a little visual aid would help make things much clearer and easier to communicate.

So here are few slides and diagrams that I made on regarding this topic:


(The forum file size limit was not sufficient so I had to resort to GitHub pages)
 
Back
Top