-
Notifications
You must be signed in to change notification settings - Fork 202
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
The gem fails to compile from source on Fedora 35 #354
Comments
The problem seems to be that
It also fails by cloning this repo and My system has |
Ah, and while IOW the |
But maybe it's a bug of pkg-config to consider Extract from my system's man page, where the wording is at least much less confusing than old pkg-config man pages:
|
Seems we're not the firsts to fall into this trap of pkg-config: https://gitlab.kitware.com/cmake/cmake/-/issues/22148#note_980802 |
Using So the best solution seems to not set LIBRARY_PATH in mini_portile2, or ensure it's also set in the Makefile (e.g. via |
Thanks for the report and investigation. I'll take a look. |
@flavorjones Could you take a look? This prevents installing |
@eregon Looking now. I do want to note that this works fine on some Linuxes (CI runs with and without system libs, and here's my local dev system), which are all debian-based systems ... so I'm going to start with trying to repro on Fedora. |
@eregon I need your help reproducing this. Here's how I set up the Fedora systemI'm starting with the docker image `fedora:35`. Here's my provisioning script:#! /usr/bin/env bash
set -ex
# https://developer.fedoraproject.org/tech/languages/ruby/ruby-installation.html
dnf install git-core zlib zlib-devel gcc-c++ patch readline readline-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison curl sqlite-devel
cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
rbenv install 3.0.3
rbenv global 3.0.3
ruby -v
echo "gem: --no-document" > ~/.gemrc
gem install bundler which installs ruby:
And here's the output from
|
Ah, ok, if |
I believe this has to do with behavior differences in https://fedoraproject.org/wiki/Changes/pkgconf_as_system_pkg-config_implementation On Debian, the output of
but on Fedora it is:
which logically leads to that share object not being found. |
OK, all caught up and I agree with your diagnosis. I'll take a look at whether mini_portile can work around this without introducing a breaking change for someboday, but I'm not confident. |
Interesting that this doesn't happen on Debian. IIRC in one of the links there was a mention of 2 pkg-config impls and both seem to have this behavior of considering LIBRARY_PATH as part of the "system path "without I think the fundamental issue here is the different environment in the extconf.rb and the Makefile (#354 (comment)). |
I'm going to work around this in |
I've created flavorjones/mini_portile#118 upstream to track a permanent fix. |
v1.5.3 has been released which fixes this. |
Thanks! |
This is on CRuby 3.0.3. I'm trying from source since I saw a very similar error on TruffleRuby.
So it seems an issue in this gem since it also does not work on CRuby.
It could also be due to my environment but it's a pretty much vanilla Fedora 35.
So the
-L
seems gone and then of course it cannot find libsqlite3.The text was updated successfully, but these errors were encountered: