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

[Bug]: Impossible to use Jekyll on FreeBSD #9462

Open
duckinator opened this issue Oct 10, 2023 · 2 comments
Open

[Bug]: Impossible to use Jekyll on FreeBSD #9462

duckinator opened this issue Oct 10, 2023 · 2 comments

Comments

@duckinator
Copy link

duckinator commented Oct 10, 2023

Operating System

FreeBSD 13.2

Ruby Version

ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-freebsd13.1]

Jekyll Version

jekyll 4.3.2

GitHub Pages Version

No response

Expected Behavior

I expected gem install jekyll to succeed.

Current Behavior

It fails to install.

The problem is basically:

  1. jekyll relies on jekyll-sass-converter.
  2. jekyll-sass-converter relies on sass-embedded.
  3. sass-embedded uses https://github.com/sass/dart-sass.
  4. dart-sass is implemented in Dart.
  5. Dart does not support FreeBSD which means a stack based on dart-sass can never work on FreeBSD.

If there were somehow a way to install Jekyll without the SASS parts, I'd be okay with that — I just use plain CSS tossed in css/ anyway. But I couldn't find a way to do that.

I am unsure if or how this can be addressed, and am primarily opening this so the problem is at least written down somewhere. (So if Jekyll devs can't/don't want to address it for whatever reason, feel free to just say so and close the issue. ❤️)

Relevant log output

puppy@orthrus:~/jekyll-test$ gem install jekyll
Fetching terminal-table-3.0.2.gem
[...]
Building native extensions. This could take a while...
ERROR:  Error installing jekyll:
        ERROR: Failed to build gem native extension.

    current directory: /home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass
/usr/home/puppy/.rubies/ruby-3.2.1/bin/ruby -rrubygems /usr/home/puppy/.rubies/ruby-3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.0.6/exe/rake RUBYARCHDIR\=/home/puppy/.gem/ruby/3.2.1/extensions/x86_64-freebsd-13/3.2.0-static/sass-embedded-1.69.1 RUBYLIBDIR\=/home/puppy/.gem/ruby/3.2.1/extensions/x86_64-freebsd-13/3.2.0-static/sass-embedded-1.69.1
gem install --force --install-dir /usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/ruby --no-document --ignore-dependencies --platform x86_64-freebsd-13 --version 1.69.1 sass-embedded
rake aborted!
NotImplementedError: dart-sass for x86_64-freebsd13.1 not available at https://github.com/sass/dart-sass/releases/tag/1.69.1
/usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/Rakefile:310:in `default_dart_sass'
/usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/Rakefile:27:in `block (2 levels) in <top (required)>'
/usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/Rakefile:27:in `fetch'
/usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/Rakefile:27:in `rescue in block in <top (required)>'
/usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/Rakefile:21:in `block in <top (required)>'

Caused by:

/usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/Rakefile:207:in `gem_install'
/usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/Rakefile:23:in `block in <top (required)>'
Tasks: TOP => default => install => cli.rb => dart-sass
(See full trace by running task with --trace)
rm -rf /usr/home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1/ext/sass/ruby

rake failed, exit code 1

Gem files will remain installed in /home/puppy/.gem/ruby/3.2.1/gems/sass-embedded-1.69.1 for inspection.
Results logged to /home/puppy/.gem/ruby/3.2.1/extensions/x86_64-freebsd-13/3.2.0-static/sass-embedded-1.69.1/gem_make.out
puppy@orthrus:~/jekyll-test$

Steps to reproduce issue

  1. Install FreeBSD
  2. Install Ruby (either via pkg or by using chruby/ruby-install).
  3. gem install jekyll
@fauno
Copy link
Member

fauno commented Oct 10, 2023

As a workaround, maybe you can install Jekyll 4.2 which doesn't depend on dart-sass? This is what we had to do until dart-sass was built for musl libc.

@duckinator
Copy link
Author

@fauno based on your suggestion, I came up with another workaround: pin jekyll-sass-converter to 2.2.0 (the last non-Dart-based version).

Turns out Jekyll 4.3.2 depends on jekyll-sass-converter >= 2.0, <4.0 so that works fine.

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

No branches or pull requests

2 participants