Installation fails on CentOS 6 since introduction of Gitaly
Summary
Gitaly
pulls in google-protobuf
as a dependency which is compiled against Glibc 2.14. CentOS 6 ships Glibc 2.12, thus the installation of GitLab fails. This problem exists since 3b3f0fab.
Steps to reproduce
- Install GitLab from source on CentOS 6 using the current master branch
- Compiling assets with
bundle exec rake gitlab:assets:compile RAILS_ENV=production
fails due to newer Glibc needed bygoogle-protobuf
What is the current bug behavior?
Installation of GitLab fails.
What is the expected correct behavior?
The installation can be done successfully, as was the case before 3b3f0fab.
Relevant logs and/or screenshots
Output from bundle exec rake gitlab:assets:compile RAILS_ENV=production
:
D, [2017-03-06T21:14:09.263542 #25233] DEBUG -- sentry: ** [Raven] /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/protobuf_c.so) - /home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/protobuf_c.so excluded from capture due to environment or should_capture callback
rake aborted!
LoadError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/protobuf_c.so) - /home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/protobuf_c.so
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/gitaly-0.2.1/ruby/lib/gitaly/gitaly_pb.rb:4:in `<top (required)>'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/gitaly-0.2.1/ruby/lib/gitaly/gitaly_services_pb.rb:5:in `<top (required)>'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/gitaly-0.2.1/ruby/lib/gitaly.rb:4:in `<top (required)>'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:91:in `require'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:91:in `block (2 levels) in require'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:86:in `each'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:86:in `block in require'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:75:in `each'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:75:in `require'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler.rb:107:in `require'
/home/thomasw/gitlab/config/application.rb:5:in `<top (required)>'
/home/thomasw/gitlab/Rakefile:5:in `require'
/home/thomasw/gitlab/Rakefile:5:in `<top (required)>'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli/exec.rb:74:in `load'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli/exec.rb:74:in `kernel_load'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli/exec.rb:27:in `run'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli.rb:335:in `exec'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli.rb:20:in `dispatch'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli.rb:11:in `start'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/exe/bundle:32:in `block in <top (required)>'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/exe/bundle:24:in `<top (required)>'
/home/thomasw/.gem/ruby/2.3.0/bin/bundle:22:in `load'
/home/thomasw/.gem/ruby/2.3.0/bin/bundle:22:in `<main>'
LoadError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/2.3/protobuf_c.so) - /home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/2.3/protobuf_c.so
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/google-protobuf-3.2.0-x86_64-linux/lib/google/protobuf.rb:48:in `<top (required)>'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/gitaly-0.2.1/ruby/lib/gitaly/gitaly_pb.rb:4:in `<top (required)>'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/gitaly-0.2.1/ruby/lib/gitaly/gitaly_services_pb.rb:5:in `<top (required)>'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/thomasw/gitlab/vendor/bundle/ruby/2.3.0/gems/gitaly-0.2.1/ruby/lib/gitaly.rb:4:in `<top (required)>'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:91:in `require'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:91:in `block (2 levels) in require'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:86:in `each'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:86:in `block in require'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:75:in `each'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/runtime.rb:75:in `require'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler.rb:107:in `require'
/home/thomasw/gitlab/config/application.rb:5:in `<top (required)>'
/home/thomasw/gitlab/Rakefile:5:in `require'
/home/thomasw/gitlab/Rakefile:5:in `<top (required)>'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli/exec.rb:74:in `load'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli/exec.rb:74:in `kernel_load'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli/exec.rb:27:in `run'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli.rb:335:in `exec'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli.rb:20:in `dispatch'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/cli.rb:11:in `start'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/exe/bundle:32:in `block in <top (required)>'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/home/thomasw/.gem/ruby/2.3.0/gems/bundler-1.14.5/exe/bundle:24:in `<top (required)>'
/home/thomasw/.gem/ruby/2.3.0/bin/bundle:22:in `load'
/home/thomasw/.gem/ruby/2.3.0/bin/bundle:22:in `<main>'
Possible fixes
Building google-protobuf
against an older Glibc should be possible as indicated here https://github.com/google/protobuf/issues/781 for the Maven Repository.