Upgrade to Bullseye (Recommended)

Make sure all the updates to buster is applied and you are on gitlab 13.12.x latest available version.

Change buster to bullseye for official archive and replace fasttrack related repos with

deb https://fasttrack.debian.net/debian/ bullseye-fasttrack main contrib
# For dependency packages not in testing only temporarily due to freeze, transitions or delayed by backports-new or NEW.
deb https://fasttrack.debian.net/debian/ bullseye-backports-staging main contrib

Note 1: backports suite is now bullseye-backports-staging to avoid confusion with official bullseye-backports.

# apt update
# apt install gitlab-apt-pin-preferences

buster-fasttrack versions for some packages are higher than bullseye versions due to initial +fto suffix instead of current ~fto, some ruby native packages needs to be downgraded.

# apt install ruby-bootsnap/bullseye ruby-rbtrace/bullseye ruby-ffi/bullseye \
 ruby-json/bullseye ruby-pg/bullseye ruby-gpgme/bullseye ruby-redcloth/bullseye \
 ruby-re2/bullseye ruby-prof/bullseye ruby-yajl/bullseye ruby-unf-ext/bullseye \
 ruby-rinku/bullseye ruby-character-set/bullseye gitlab

Note for ruby-team: List of packages that could be potentially removed from the archive (check if there are other reverse dependencies): ruby-font-awesome-rails ruby-gitlab-pg-query ruby-hipchat ruby-jquery-atwho-rails ruby-mimemagic ruby-molinillo ruby-nakayoshi-fork ruby-net-http-persistent ruby-rufus-scheduler

Manually upgrade postgresql

Now do a dist-upgrade to bullseye

# apt dist-upgrade

Buster Fast Track (Upgrade to Bullseye)

Gitlab 13.12.9 is available in unofficial fasttrack repo targeting buster as base distribution. (no open security issues). It is recommended to upgrade to bullseye.

A video demo of the whole installation process with commentary on packaging challenges and troubleshooting steps is available on Debian Social Peertube instance.

Some packages were needed from personal repo of gitlab maintainer because golang packages could not be uploaded in fasttrack.debian.net because of a bug in dak setup. You no longer need this repo and you can safely remove people.debian.org/~praveen/gitaly from your apt sources.

Make sure contrib section is enabled for buster and buster/updates

Modify /etc/apt/sources.list to add official buster-backports and contrib section if missing:

deb http://deb.debian.org/debian buster main contrib
deb http://security.debian.org/ buster/updates main contrib
deb http://deb.debian.org/debian buster-backports main contrib 

Import fasttrack archive keyring:

# apt -t buster-backports install fasttrack-archive-keyring

And add the following lines for fasttrack repo:

deb https://fasttrack.debian.net/debian/ buster-fasttrack main contrib
# For dependency packages not in testing only temporarily due to freeze, transitions or delayed by backports-new or NEW.
deb https://fasttrack.debian.net/debian/ buster-backports main contrib

Optional: To avoid some hours of delay between upload and availability in archive

deb http://incoming.debian.org/debian-buildd buildd-buster-backports main contrib

Refresh list of available packages:

# apt update

sassc regression

Currently gitlab installation is broken due to libsass in buster-backports . See 953415 for more details.

A work around is to downgrade libsass and libsass-dev to versions in buster and hold it at the older version.

# apt install libsass1/buster libsass-dev/buster && apt-mark hold libsass1 libsass-dev

gitlab crash work around (install grpc from rubygems.org)

To avoid installation crashing with an error message like,

/usr/share/rubygems-integration/all/gems/gitaly-13.4.6/ruby/proto/gitaly/lint_pb.rb:17: [BUG] Segmentation fault at 0x0000000000000000
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux-gnu]

We have to use versions of grpc from rubygems.org (don't forget to remove this version when ruby-grpc is fixed in debian)

# apt -t buster-fasttrack install ruby2.7

# gem install -v 1.30.2 grpc

and follow gitlab/troubleshooting#manually_installing_ruby_dependencies if you are seeing this crash again

gitlab-sidekiq service failure work around (install google-protobuf from rubygems.org)

# gem install -v 3.17.1 google-protobuf

and follow gitlab/troubleshooting#manually_installing_ruby_dependencies if you are seeing any problems related to services not starting or error 500 in gitlab.

Note: After gitlab is installed remove ruby-google-protobuf package to avoid conflicts.

Use apt pinning for resolving dependencies

Since buster-backports and buster-fasttrack have lower apt priorities compared to buster, we have to manually give higher priority to packages we want installed from these suites.

# apt install gitlab-apt-pin-preferences
# apt install gitlab

Note: https://gitlab.debian.net is running on this version.