Closed fpemud closed 8 years ago
Hmm ... there are many dependencies, so you'd have to create quite a lot of ebuilds for each of them. I personally wouldn't want to maintain them. Also, I'm not experienced enough with ruby and the ruby ecosystem to perform such a task. But if you like, you can obviously give it a try. I'm gladly accepting pull requests if it improves the stability and maintainability of the ebuild.
Before you start, please have a look at this page in the Gentoo wiki: https://wiki.gentoo.org/wiki/GitLab There you'll find a link to the "more official" Gitlab overlay which might work better for you:
If you're using layman, you can add it by simply issuing a layman -a gitlab
in your terminal.
Out of curiosity: Was this a fresh install, or did you try to upgrade an existing Gitlab installation? If so, was it the first time you experienced problems downloading the gems? Could it have been only a temporary problem that has magically resolved itself in the meantime?
Thanks for the hint. I will try to implement it and submit to the official gitlab overlay.
gitlab-ce depends on 141 ruby gems. 84 of which are already in gentoo repository.
ruby gem | gentoo package |
---|---|
rake | dev-ruby/rake |
RedCloth | dev-ruby/redcloth |
i18n | dev-ruby/i18n |
json | dev-ruby/json |
minitest | dev-ruby/minitest |
thread_safe | dev-ruby/thread_safe |
builder | dev-ruby/builder |
erubis | dev-ruby/erubis |
rack | dev-ruby/rack |
mime-types | dev-ruby/mime-types |
arel | dev-ruby/arel |
activerecord-deprecated_finders | dev-ruby/activerecord-deprecated_finders |
thor | dev-ruby/thor |
addressable | dev-ruby/addressable |
akismet | dev-ruby/akismet |
multipart-post | dev-ruby/multipart-post |
multi_json | dev-ruby/multi_json |
jwt | dev-ruby/jwt |
multi_xml | dev-ruby/multi_xml |
asciidoctor | dev-ruby/asciidoctor |
execjs | dev-ruby/execjs |
bcrypt | dev-ruby/bcrypt-ruby |
sass | dev-ruby/sass |
charlock_holmes | dev-ruby/charlock_holmes |
chunky_png | dev-ruby/chunky_png |
coffee-script-source | dev-ruby/coffee-script-source |
colorize | dev-ruby/colorize |
concurrent-ruby | dev-ruby/concurrent-ruby |
connection_pool | dev-ruby/connection_pool |
safe_yaml | dev-ruby/safe_yaml |
creole | dev-ruby/creole |
diff-lcs | dev-ruby/diff-lcs |
equalizer | dev-ruby/equalizer |
escape_utils | dev-ruby/escape_utils |
eventmachine | dev-ruby/eventmachine |
expression_parser | dev-ruby/expression_parser |
xml-simple | dev-ruby/xml-simple |
posix-spawn | dev-ruby/posix-spawn |
net-ldap | dev-ruby/ruby-net-ldap |
hashie | dev-ruby/hashie |
rubyntlm | dev-ruby/rubyntlm |
rouge | dev-ruby/rouge |
stringex | dev-ruby/stringex |
request_store | dev-ruby/request_store |
tilt | dev-ruby/tilt |
sexp_processor | dev-ruby/sexp_processor |
mimemagic | dev-ruby/mimemagic |
htmlentities | dev-ruby/htmlentities |
http_parser.rb | dev-ruby/http_parser_rb |
httpclient | dev-ruby/httpclient |
systemu | dev-ruby/systemu |
method_source | dev-ruby/method_source |
mysql2 | dev-ruby/mysql2 |
net-ssh | dev-ruby/net-ssh |
oauth | dev-ruby/oauth |
rubypants | dev-ruby/rubypants |
redcarpet | dev-ruby/redcarpet |
redis | dev-ruby/redis |
rinku | dev-ruby/rinku |
settingslogic | dev-ruby/settingslogic |
simple_oauth | dev-ruby/simple_oauth |
six | dev-ruby/six |
unf_ext | dev-ruby/unf_ext |
rdoc | dev-ruby/rdoc |
tzinfo | dev-ruby/tzinfo |
descendants_tracker | dev-ruby/descendants_tracker |
nokogiri | dev-ruby/nokogiri |
rack-test | dev-ruby/rack-test |
warden | dev-ruby/warden |
rack-mount | dev-ruby/rack-mount |
rack-attack | dev-ruby/rack-attack |
rack-protection | dev-ruby/rack-protection |
dev-ruby/mail | |
css_parser | dev-ruby/css_parser |
faraday | dev-ruby/faraday |
httparty | dev-ruby/httparty |
uglifier | dev-ruby/uglifier |
rqrcode | dev-ruby/rqrcode |
coffee-script | dev-ruby/coffee-script |
sprockets | dev-ruby/sprockets |
crack | dev-ruby/crack |
omniauth | dev-ruby/omniauth |
haml | dev-ruby/haml |
ruby_parser | dev-ruby/ruby_parser |
ruby gems that are not in gentoo repository: CFPropertyList ace-rails-ap mini_portile2 allocations encryptor attr_required ice_nine babosa browser cal-heatmap-rails cause orm_adapter rotp diffy Using email_reply_parser excon formatador ipaddress inflecto rugged get_process_mem github-markup gitlab_meta pyu-ruby-sasl jquery-atwho-rails kgio mail_room mousetrap-rails nested_form newrelic_rpm rack-cors raindrops raphael-rails rufus-scheduler slack-notifier state_machines underscore-rails version_sorter fission gemojione recaptcha rack-accept select2-rails attr_encrypted autoprefixer-rails influxdb fog-core gemnasium-gitlab-service github-linguist gollum-rugged_adapter licensee gitlab-grit
Downloading process never failed me. I emerged many versions of gitlab-ce from this overlay and I found all-in-one solution painless and effective for my embedded platforms. This is just my opinion - I personally think that gems shouldn't be system wide, they should be service wide to avoid version collision, misconfigurations and etc. This even reminds me docker approach that is very successful those days.
It's really weird that I can't download the ruby gems.
But it is said in the ebuild file that:
# Maintainer notes:
# - This ebuild uses Bundler to download and install all gems in deployment mode
# (i.e. into isolated directory inside application). That's not Gentoo way how
# it should be done, but GitLab has too many dependencies that it will be too
# difficult to maintain them via ebuilds.
#
I think what I'm going to do is on the correct path.
There is no word about disadvantages and adventages of Gentoo way (and for example is firefox-bin a Gentoo way?). I really don't have any idea how to satisfy many services with global instance of gems. I think that ruby services never meant to be this way. Ruby is very rapid beast and gems depends on each other (including version awareness there). Problem raise when more ruby services will share same gems in different version, then ebuilds for them should be sloted, and how to manage sloted gems !? - maybe there is something I'm missing and the problem is trivial.
I don't know how bad is this solution for the upstream, for me this solution is very clean from gems managment point of view.
@fpemud Are you connecting through a proxy server that might prevent you from downloading the gems? Are you experiencing the same problems with other packages? I never had any problems either, just like @dev-0x7C6 ...
It's difficult for me to download all the ruby gems that www-apps/gitlab-ce needs. Do you think it's doable to write ebuilds for all related ruby gems and make www-apps/gitlab-ce depends on them? I'd like to work on it if it is appropriate.