Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build system dependencies #3

Open
treeswift opened this issue Jan 9, 2023 · 16 comments
Open

Build system dependencies #3

treeswift opened this issue Jan 9, 2023 · 16 comments

Comments

@treeswift
Copy link
Contributor

treeswift commented Jan 9, 2023

After accidentally nuking my guest drive (sounds funny, but silent wipe of the Linux installation when physical paths change is a WSL feature), I used it as an opportunity to verify the build bootstrapping process. Here is what I found.

My distro is Ubuntu 20.04. My system already had git, gcc and python3-pip.

My initial make output was:

Missing requirement: 7za
Missing requirement: autoconf
Missing requirement: automake
Missing requirement: autopoint
Missing requirement: bison
Missing requirement: flex
Missing requirement: gdk-pixbuf-csource
Missing requirement: gperf
Missing requirement: intltoolize
Missing requirement: libtool
Missing requirement: libtoolize
Missing requirement: lzip
Missing requirement: ruby

I got most of the dependencies installed w/ sudo apt install by using the names from the list as literal package names. However, there were a few exceptions:

  • gdk-pixbuf-csource is provided by libgtk2.0-dev
  • libtool is provided by libtool-bin and libtoolize is provided by libtool
  • intltoolize seems to be silently provided by intltool
  • 7za is provided by p7zip-full (simply p7zip isn't enough)

Also python was not listed as a requirement. I had to install python3 and python-is-python3.

We may want to update docs/index.html (I can do that). I propose to make those note distro-specific and covering at least major Ubuntu LTS distros; others can add theirs.

@treeswift
Copy link
Contributor Author

treeswift commented Jan 9, 2023

Also: meson.

pip3 install meson --upgrade

Should be from PIP, not from the distro repo, as the distro repo is outdated and causes the allow-shlib-undefined issue.

@pahaze
Copy link
Member

pahaze commented Jan 9, 2023

This is fixed in the latest MXE version but since I was having trouble, I didn't attempt to even migrate it in yet. However, there's also a dependency issue with the official MXE too... You need PCRE's dev packages which for some reason is NOT included in the index pages.

@treeswift
Copy link
Contributor Author

Aaah IC. Linking to issue #2.

@pahaze
Copy link
Member

pahaze commented Jan 9, 2023

Also python was not listed as a requirement. I had to install python3 and python-is-python3.

Sadly this actually does not work correctly in our current repository version when using Ubuntu 22.04. This version of MXE expects python to be python2 (python-is-python2 package on Ubuntu 20.04)

@pahaze
Copy link
Member

pahaze commented Jan 9, 2023

However, it does seem they moved to Python 3 in the new version, thankfully.

@treeswift
Copy link
Contributor Author

This version of MXE expects python to be python2

Ouch, nice of them. How much does Python3 break?

@pahaze
Copy link
Member

pahaze commented Jan 9, 2023

If I'm correct, maybe... 2 or 3 packages? I don't remember. Probably easily fixable, but if I remember correctly they were all meson packages instead of CMake packages.

@treeswift
Copy link
Contributor Author

Then I'll go with python3 for now until all meson packages are ironed out. We can update this part of the docs once latest mxe is merged downstream.

@pahaze
Copy link
Member

pahaze commented Jan 9, 2023

Good with me. I've got latest MXE going on my system now but likely won't do too much today.

@treeswift
Copy link
Contributor Author

treeswift commented Jan 10, 2023

Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR)
CMake Error at Utilities/cmcurl/CMakeLists.txt:454 (message):
  Could not find OpenSSL.  Install an OpenSSL development package or
  configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.

OpenSSL for host CMake build. Goodness. Do we need it, given that mxe builds are networkless by policy?

@pahaze
Copy link
Member

pahaze commented Jan 10, 2023

What!? 🤦
So messy...

@treeswift
Copy link
Contributor Author

The reason for CMake to include OpenSSL is that it can retrieve dependencies over network.
We may want that for its target build, so that it were fully functional, but host CMake is only built for use within mxe.
I am hence removing the OpenSSL requirement for the host and keeping it for the target.

@treeswift
Copy link
Contributor Author

treeswift commented Jan 17, 2023

sudo pip install mako-render

@treeswift
Copy link
Contributor Author

treeswift commented Jan 18, 2023

blas/lapack need cross-compiling gfortran

@treeswift
Copy link
Contributor Author

treeswift commented Feb 11, 2023

iconv (until we build one for the host)

I stand corrected — it's present in mingw (but doesn't like utf{8|16} without the dash, utf-8 and utf-16 to the rescue).

@pahaze
Copy link
Member

pahaze commented Mar 9, 2023

SUSE's current dependency status (even after installing needed libraries on MXE's page):

Missing dependencies -
- python
- zip (recent? zip wasn't missing until recently)

Broken dependencies (no providers) -
- libgcc46-32bit
- libgomp46-32bit
- libstdc++46-devel-32bit

Will update this comment as I find more (if I do, anyway).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

2 participants