crystal-lang / omnibus-crystal Goto Github PK
View Code? Open in Web Editor NEWOmnibus builder for Crystal
Home Page: http://crystal-lang.org/
Omnibus builder for Crystal
Home Page: http://crystal-lang.org/
I think it's because Ruby 2.4 unifies Fixnum and Bignum into Integer
[foi@foi-pc omnibus-crystal]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
[foi@foi-pc omnibus-crystal]$ bundle
The latest bundler is 1.16.0.pre.2, but you are currently running 1.15.4.
To update, run gem install bundler --pre
The git source git://github.com/opscode/omnibus-software.git uses the git protocol, which transmits data without encryption. Disable this warning with bundle config git.allow_insecure true, or switch to the https protocol to keep your data secure.
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Using bundler 1.15.4
Using chef-sugar 2.3.0
Using cleanroom 1.0.0
Using ffi 1.9.5
Using libyajl2 1.0.1
Using ipaddress 0.8.0
Using mime-types 1.25.1
Using mixlib-cli 1.5.0
Using mixlib-config 2.1.0
Using mixlib-log 1.6.0
Using mixlib-shellout 1.4.0
Using systemu 2.6.4
Using wmi-lite 1.0.0
Using thor 0.19.1
Using omnibus-software 4.0.0 from git://github.com/opscode/omnibus-software.git (at master@ff7d627)
Fetching ffi-yajl 1.1.0
Installing ffi-yajl 1.1.0 with native extensions
Using uber-s3 0.2.4
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /usr/local/rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ffi-yajl-1.1.0/ext/ffi_yajl/ext/encoder
/usr/local/rbenv/versions/2.4.1/bin/ruby -r ./siteconf20171004-14521-xdy9k0.rb extconf.rb
-I/usr/local/rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/libyajl2-1.2.0/lib/libyajl2/vendored-libyajl2/include $(cflags)
-L/usr/local/rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/libyajl2-1.2.0/lib/libyajl2/vendored-libyajl2/lib -L. -L/usr/local/rbenv/versions/2.4.1/lib -fstack-protector -rdynamic -Wl,-export-dynamic
checking for yajl/yajl_tree.h... yes
creating Makefile
current directory: /usr/local/rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ffi-yajl-1.1.0/ext/ffi_yajl/ext/encoder
make "DESTDIR=" clean
current directory: /usr/local/rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ffi-yajl-1.1.0/ext/ffi_yajl/ext/encoder
make "DESTDIR="
compiling encoder.c
encoder.c: In function ‘Init_encoder’:
encoder.c:304:20: error: ‘rb_cFixnum’ undeclared (first use in this function); did you mean ‘rb_isalnum’?
rb_define_method(rb_cFixnum, "ffi_yajl", rb_cFixnum_ffi_yajl, 2);
^~~~~~~~~~
rb_isalnum
encoder.c:304:20: note: each undeclared identifier is reported only once for each function it appears in
encoder.c:305:20: error: ‘rb_cBignum’ undeclared (first use in this function); did you mean ‘rb_cFixnum’?
rb_define_method(rb_cBignum, "ffi_yajl", rb_cBignum_ffi_yajl, 2);
^~~~~~~~~~
rb_cFixnum
encoder.c: At top level:
cc1: warning: unrecognized command line option ‘-Wno-self-assign’
cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
make: *** [Makefile:242: encoder.o] Error 1
make failed, exit code 2
Gem files will remain installed in /usr/local/rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ffi-yajl-1.1.0 for inspection.
Results logged to /usr/local/rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/ffi-yajl-1.1.0/gem_make.out
An error occurred while installing ffi-yajl (1.1.0), and Bundler cannot continue.
Make sure that gem install ffi-yajl -v '1.1.0' succeeds before bundling.
In Gemfile:
omnibus was resolved to 4.0.0.rc.1, which depends on
ohai was resolved to 7.4.0, which depends on
ffi-yajl
Is there any reason we ship a 4 years old PCRE version? 8.39 was released last month.
(On Debian Testing)
Currently, Crystal's debian package is at commit 3c6c75e which predates the OpenSSL 1.1.0+ fix (crystal#4230), and is therefore impossible to link without replacing the openssl package in the library with a more recent version.
Right now it doesn't because the etc
directory is not in the generated tar.gz
Since 0.8.0, crystal deps
depends on shards
being present.
It will be great that last stable release of shards be distributed with official binaries, but allow the user to install a replacement binary if desired.
Shards external dependencies is limited to libyaml
, which I believe are provided by this repository as static library.
Wanted to check here first before working on a pull request.
Thank you.
Due to OSX El Capitan's rootless, /usr/bin/crystal
cannot be created anymore. Hence, bin symlinks need to created in /usr/local/bin instead.
/tmp ➤ curl -sL https://github.com/manastech/crystal/releases/download/0.7.6/crystal-0.7.6-1-linux-x86_64.tar.gz | tar xz
/tmp ➤ file crystal-0.7.6-1/embedded/lib/* | grep link
crystal-0.7.6-1/embedded/lib/libunwind-generic.a: broken symbolic link to crystal-0.7.6-1ibunwind-x86_64.a
Darwin binaries (like this) are being linked to system's older PCRE instead of the PCRE dependency stated in Omnibus.
This poses a security risk, so we should definitely fix this soon.
Currently, generated packages (.deb
, .rpm
) don't list their dependencies.
This can break in old/minimal installations - see crystal-lang/crystal-book#73, for example - so the package should list those.
It would be really nice if we could automatically generate binaries (tar-gzipped) for these platforms and make them available in the release page after each release. In fact, given that we already have compiled binaries for 0.15.0 and 0.16.0 in these platforms, we could add these binaries right after implementing this issue.
I usually modify tins bits of this project before each release, I never added a new platform before. I know @waj could do this, but someone else should be able to do it too, I guess it's just about changing the Vagrant file.
/cc @ysbaddaden
Attempting to use Crystal through tools like asdf
might result in compilation errors triggered by embedded libraries not being compiled with -fPIC
:
/usr/bin/ld: /home/luis/.asdf/installs/crystal/0.20.5/embedded/lib/../lib/libyaml.a(api.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/luis/.asdf/installs/crystal/0.20.5/embedded/lib/../lib/libyaml.a(parser.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/luis/.asdf/installs/crystal/0.20.5/embedded/lib/../lib/libyaml.a(scanner.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/luis/.asdf/installs/crystal/0.20.5/embedded/lib/../lib/libyaml.a(reader.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
I wasn't able to check the build options used for the embedded libraries, but wanted to create the issue before looks like asdf
gain more traction and we get more reports like this.
Thank you. ❤️ ❤️ ❤️
Crystal has a brand new manpage that is not being included in the tarballs (and probably the debs?).
We should totally fix that, and update the Homebrew formula to take advantage of it, too.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.