vlang / vinix

Vinix is an effort to write a modern, fast, and useful operating system in the V programming language
https://vlang.io
GNU General Public License v2.0
1.89k stars 120 forks source link

make distro can't build dependency libxcb #84

Closed FrostyTheSouthernSnowman closed 2 years ago

FrostyTheSouthernSnowman commented 2 years ago

I am trying to build vinix using make distro and it keeps failing. I have been able to successfully build vinix using make. Here is a screenshot of the error that I get when I run make distro

vinix build error

FrostyTheSouthernSnowman commented 2 years ago

Here is the README that it is referring to.

About xcb-proto

xcb-proto provides the XML-XCB protocol descriptions that libxcb uses to generate the majority of its code and API. We provide them separately from libxcb to allow reuse by other projects, such as additional language bindings, protocol dissectors, or documentation generators.

This separation between the XCB transport layer and the automatically-generated protocol layer also makes it far easier to write new extensions. With the Xlib infrastructure, client-side support for new extensions requires significant duplication of effort. With XCB and the XML-XCB protocol descriptions, client-side support for a new extension requires only an XML description of the extension, and not a single line of code.

Python libraries: xcb-proto also contains language-independent Python libraries that are used to parse an XML description and create objects used by Python code generators in individual language bindings. These libraries are installed into $(prefix)/lib/pythonX.X/site-packages. If this location is not on your system's Python path, scripts that import them will fail with import errors. In this case you must add the install location to your Python path by creating a file with a `.pth' extension in a directory that is on the Python path, and put the path to the install location in that file. For example, on my system there is a file named 'local.pth' in /usr/lib/python2.5/site-packages, which contains '/usr/local/lib/python2.5/site-packages'. Note that this is only necessary on machines where XCB is being built.

Please report any issues you find to the freedesktop.org bug tracker at:

https://gitlab.freedesktop.org/xorg/proto/xcbproto/issues

Discussion about XCB occurs on the XCB mailing list:

https://lists.freedesktop.org/mailman/listinfo/xcb

You can obtain the latest development versions of xcb-proto using GIT from the xcbproto code repository at:

https://gitlab.freedesktop.org/xorg/proto/xcbproto

For anonymous checkouts, use:

git clone https://gitlab.freedesktop.org/xorg/proto/xcbproto.git

For developers, use:

git clone git@gitlab.freedesktop.org:xorg/proto/xcbproto.git
FrostyTheSouthernSnowman commented 2 years ago

The issue seems to be caused by not having some directory added to the $PATH

mintsuki commented 2 years ago

You need python3-xcbgen, this is clearly stated in the prerequisites list

mintsuki commented 2 years ago

Actually on Ubuntu (and maybe Debian), in addition to having that package installed, you may need to run update-alternatives --install /usr/bin/python python /usr/bin/python3 10 so that a global python command correctly points to python3.

FrostyTheSouthernSnowman commented 2 years ago

OK. I will try that. Thank you.

FrostyTheSouthernSnowman commented 2 years ago

I updated my python to point to python3, and I noticed that I keep cycling through a few errors. The first error complains that my vinix directory is owned by another user, and the other error tells me to update meson. (I already have meson set to the latest version). Here is a link to the full logs for both errors.

medvednikov commented 2 years ago

That's why I'm looking forward to not having a python dependency :)

Dennisbonke commented 2 years ago

That's why I'm looking forward to not having a python dependency :)

Don’t keep your hopes up, the X.Org stack simply has that dependency, and I highly doubt that we’re going to rewrite parts of the X.Org stack from python into something else.

medvednikov commented 2 years ago

wow, didn't know that :(

JalonSolov commented 2 years ago

Then make X.Org external to main vinix build. If they insist on hobbling everything with Python, keep it isolated, so it's only painful in one place instead of radiating to everything else.

Dennisbonke commented 2 years ago

It is external to the main vinix build. A plain and simple kernel and init don’t depend on X.Org. You’ll run into problems when you get into graphics land, most of the common configurations will want X.Org. Eventually if we fully move to Wayland it might be better, but that won’t happen for a long time. If you really want to avoid python at all costs, including during build time, you’ll have to accept that some doors will remain closed, and you might not like that (for example, say bye bye to everything using meson).

JalonSolov commented 2 years ago

\<shrug> - never liked meson, either. :-)

JalonSolov commented 2 years ago

To forestall further comments along these lines... it doesn't matter that I would rather do plain old Makefiles than have anything to do with anything Python related, since I'm not one of the vinix developers (not yet, at least).

Whatever works best for those doing the work is the "right" thing to use. At least until someone comes up with something better... and proves that it is, instead of just complaining.

FrostyTheSouthernSnowman commented 2 years ago

Anyone have any tips on how to solve the python/git error cycle?