[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#651606: RFP: gitlab -- git project/repository hosting management app



Hi,

in the light of gitorious closing and github being non-free, I was looking for
options for self-hosting something similar to github myself and came across
gitlab and looked into how hard it would be to package it...

TLDR; herculean efforts required

To install version v7.8.3 locally in a Debian unstable environment I followed
these instructions (minus manual compilation of git and ruby) which worked very
well:

https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md

On Wed, 17 Dec 2014 15:43:31 +0100 Andreas <nudgegoonies@hotmail.com> wrote:
> the official omnibus packaging is as far as i know not suitable for the
> debian distribution.

correct. That "packaging" bundles a full chroot environment and puts it in
/opt/gitlab/

> There are other efforts like Daniel Bäurers packaging which i took as the
> base for my package, which i updated until 7.2. Maybe you take a look at
> https://github.com/1and1/gitlab-dpkg/tree/wheezy-7-2-stable which is my
> updated version of Daniels package (he stopped ad 6.5). Any update to my
> package would require backporting ruby 2 to wheezy because we only use
> wheezy/stable in production. Maybe this can help you a bit. The biggest
> problem seems to be packaging of all the required gems. The database
> initialization, and the possibility to use either MySQL or Postgres, and the
> same (apache/nginx) is another problem. Database password and base init of
> the users ist still hacky in Daniels and my package and not convinient yet.

I think you indeed correctly identified the remaining issues. The d/rules of
that packaging just runs `bundle install` to get all the required gems. This
will download sources from the internet which must not happen during a Debian
package build.

Apparently gitlab depends on 206 ruby gems... this is just insane...

Another problem I see is the version restriction. While upstream will happily
just use bundler to install the exact version, the Debian package of gitlab
will have to live with the version packaged in unstable which is often newer
than the version used by gitlab. This might require intensive patching but I
didn't look that deep yet.

Ignoring the version restrictions out of its 206 dependencies I see the
following 85 not being packaged for Debian yet:

ace-rails-ap activeresource asana asciidoctor attr_required browser bundler
cal-heatmap-rails carrierwave charlock_holmes connection_pool d3_rails
default_value_for descendants_tracker devise-async doorkeeper dropzonejs-rails
emoji enumerize escape_utils expression_parser faraday_middleware foreman
gemnasium-gitlab-service gitlab_emoji gitlab-flowdock-git-hook gitlab_git
gitlab-grack gitlab-grit gitlab-linguist gitlab_meta gitlab_omniauth-ldap
gollum-grit_adapter gollum-lib grape grape-entity hipchat html-pipeline
html-pipeline-gitlab http_parser.rb ice_nine jquery-atwho-rails
jquery-scrollto-rails jquery-turbolinks libv8 mini_portile mousetrap-rails
multi_json multi_xml newrelic_rpm nprogress-rails omniauth-gitlab
omniauth-kerberos omniauth-multipassword omniauth-shibboleth org-ruby
orm_adapter pyu-ruby-sasl rack-attack rack-mount rack-oauth2 rails_autolink
rake raphael-rails rdoc redis-actionpack redis-rails request_store rubyntlm
rugged rugments seed-fu select2-rails semantic-ui-sass simple_oauth
slack-notifier state_machine therubyracer thread_safe timfel-krb5-auth
underscore-rails unf_ext unicorn unicorn-worker-killer version_sorter

And of the remaining 121 dependencies which are packaged in Debian, only 52
seem to have the same version as required by gitlab. So the other 69 differ and
might require patching of gitlab to work well together with them.

So if you want to have gitlab in Debian, you should probably join
debian-ruby@lists.debian.org, roll up your sleeves and seriously get on with
packaging and patching gitlab itself.

Given this humongous amount of work, I'll happily leave it at this analysis and
rely on using bundler in a chroot for now.

cheers, josch

Attachment: signature.asc
Description: signature


Reply to: