I think it will be useful to provide Gitlab CE omnibus package for arm64. There are a lot of raspberrypi-like boards with powerful arm64 SoC: ODROID-C2, Pine A64, ...
More than 95% of Debian repositories are ported to arm64 and are fully working. I checked and each Gitlab dependency is available on arm64: ruby 2.3, redis 3, golang 1.6, postgresql...
Proposal
Distribute Omnibus packages for this arch.
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related or that one is blocking others.
Learn more.
Activity
Sort or filter
Newest first
Oldest first
Show all activity
Show comments only
Show history only
username-removed-361887Changed title: Gitlab CE omnibus package for arm64 → [Feature proposal] Gitlab CE omnibus package for arm64
Changed title: Gitlab CE omnibus package for arm64 → [Feature proposal] Gitlab CE omnibus package for arm64
Are you willing to test building the package on all the platforms you've listed and submit a MR here to improve the package? If that is done we can look into building the infrastructure to officially make those packages.
I have some troubles with ncurses - see build log:
[NetFetcher: ncurses] I | Extracting `/var/cache/omnibus/cache/ncurses-5.9.tar.gz' to `/var/cache/omnibus/src/ncurses'[Builder: ncurses] I | Starting build[Builder: ncurses] I | Environment:[Builder: ncurses] I | CFLAGS="-I/opt/gitlab/embedded/include -O2"[Builder: ncurses] I | CXXFLAGS="-I/opt/gitlab/embedded/include -O2"[Builder: ncurses] I | LDFLAGS="-Wl,-rpath,/opt/gitlab/embedded/lib -L/opt/gitlab/embedded/lib"[Builder: ncurses] I | LD_RUN_PATH="/opt/gitlab/embedded/lib"[Builder: ncurses] I | PATH="/opt/gitlab/bin:/opt/gitlab/embedded/bin:/root/omnibus-gitlab/.bundle/ruby/2.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"[Builder: ncurses] I | PKG_CONFIG_PATH="/opt/gitlab/embedded/lib/pkgconfig"[Builder: ncurses] I | $ patch -p1-i /root/omnibus-gitlab/config/patches/ncurses/ncurses-5.9-gcc-5.patch[Builder: ncurses] I | Apply patch `ncurses-5.9-gcc-5.patch': 0.0327s [Builder: ncurses] I | Environment: [Builder: ncurses] I | CFLAGS="-I/opt/gitlab/embedded/include -O2" [Builder: ncurses] I | CXXFLAGS="-I/opt/gitlab/embedded/include -O2" [Builder: ncurses] I | LDFLAGS="-Wl,-rpath,/opt/gitlab/embedded/lib -L/opt/gitlab/embedded/lib" [Builder: ncurses] I | LD_RUN_PATH="/opt/gitlab/embedded/lib" [Builder: ncurses] I | PATH="/opt/gitlab/bin:/opt/gitlab/embedded/bin:/root/omnibus-gitlab/.bundle/ruby/2.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" [Builder: ncurses] I | PKG_CONFIG_PATH="/opt/gitlab/embedded/lib/pkgconfig" [Builder: ncurses] I | $ ./configure --prefix=/opt/gitlab/embedded --enable-overwrite --with-shared --with-termlib --without-ada --without-cxx-binding --without-debug --without-manpages [Builder: ncurses] W | [1/2] Failed to execute command. Retrying in 10 seconds... [Builder: ncurses] I | Environment: [Builder: ncurses] I | CFLAGS="-I/opt/gitlab/embedded/include -O2" [Builder: ncurses] I | CXXFLAGS="-I/opt/gitlab/embedded/include -O2" [Builder: ncurses] I | LDFLAGS="-Wl,-rpath,/opt/gitlab/embedded/lib -L/opt/gitlab/embedded/lib" [Builder: ncurses] I | LD_RUN_PATH="/opt/gitlab/embedded/lib" [Builder: ncurses] I | PATH="/opt/gitlab/bin:/opt/gitlab/embedded/bin:/root/omnibus-gitlab/.bundle/ruby/2.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" [Builder: ncurses] I | PKG_CONFIG_PATH="/opt/gitlab/embedded/lib/pkgconfig" [Builder: ncurses] I | $ ./configure --prefix=/opt/gitlab/embedded --enable-overwrite --with-shared --with-termlib --without-ada --without-cxx-binding --without-debug --without-manpages [Builder: ncurses] W | [2/2] Failed to execute command. Retrying in 20 seconds... [Builder: ncurses] I | Environment: [Builder: ncurses] I | CFLAGS="-I/opt/gitlab/embedded/include -O2" [Builder: ncurses] I | CXXFLAGS="-I/opt/gitlab/embedded/include -O2" [Builder: ncurses] I | LDFLAGS="-Wl,-rpath,/opt/gitlab/embedded/lib -L/opt/gitlab/embedded/lib" [Builder: ncurses] I | LD_RUN_PATH="/opt/gitlab/embedded/lib" [Builder: ncurses] I | PATH="/opt/gitlab/bin:/opt/gitlab/embedded/bin:/root/omnibus-gitlab/.bundle/ruby/2.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" [Builder: ncurses] I | PKG_CONFIG_PATH="/opt/gitlab/embedded/lib/pkgconfig" [Builder: ncurses] I | $ ./configure --prefix=/opt/gitlab/embedded --enable-overwrite --with-shared --with-termlib --without-ada --without-cxx-binding --without-debug --without-manpages [Builder: ncurses] I | Execute: `./configure --prefix=/opt/gitlab/embedded --enable-overwrite --with-shared --with-termlib --without-ada --without-cxx-binding --without-debug --without-manpages': 31.4892s[Builder: ncurses] I | Build ncurses: 31.5263sThe following shell command exited with status 1:$ CFLAGS=-I/opt/gitlab/embedded/include -O2CXXFLAGS=-I/opt/gitlab/embedded/include -O2LDFLAGS=-Wl,-rpath,/opt/gitlab/embedded/lib -L/opt/gitlab/embedded/lib LD_RUN_PATH=/opt/gitlab/embedded/lib PATH=/opt/gitlab/bin:/opt/gitlab/embedded/bin:/root/omnibus-gitlab/.bundle/ruby/2.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PKG_CONFIG_PATH=/opt/gitlab/embedded/lib/pkgconfig ./configure --prefix=/opt/gitlab/embedded --enable-overwrite--with-shared--with-termlib--without-ada--without-cxx-binding--without-debug--without-manpagesOutput: checking for egrep... grep-EConfiguring NCURSES 5.9 ABI 5 (Thu Oct 6 09:50:28 UTC 2016)checking build system type...Error: ./config.guess: unable to guess system typeThis script, last modified 2010-09-24, has failed to recognizethe operating system you are using. It is advised that youdownload the most up to date version of the config scripts from http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEADand http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEADIf the version you run (./config.guess) is already up to date, pleasesend the following data and any information you think might bepertinent to <config-patches@gnu.org> in order to provide the neededinformation to handle your system.config.guess timestamp = 2010-09-24uname-m= aarch64uname-r= 3.14.79-5-ARCHuname-s= Linuxuname-v=#1 SMP PREEMPT Tue Oct 4 18:50:16 MDT 2016/usr/bin/uname -p=/bin/uname -X=hostinfo =/bin/universe =/usr/bin/arch -k=/bin/arch =/usr/bin/oslevel =/usr/convex/getsysinfo =UNAME_MACHINE = aarch64UNAME_RELEASE = 3.14.79-5-ARCHUNAME_SYSTEM = LinuxUNAME_VERSION =#1 SMP PREEMPT Tue Oct 4 18:50:16 MDT 2016configure: error: cannot guess build type; you must specify one
(Trying to build omnibus on Pine A64 (Linux 3.10.101-0-pine64-longsleep #39 SMP PREEMPT Sat May 7 12:39:25 CEST 2016 aarch64 aarch64 aarch64 GNU/Linux))
I have applied @stefan-it's patchs and got this error releated with ncurses:
[Software: ncurses] I | Could not restore from cache [Builder: ncurses] I | Starting build [Builder: ncurses] I | Environment: [Builder: ncurses] I | CFLAGS="-I/opt/gitlab/embedded/include -O2" [Builder: ncurses] I | CXXFLAGS="-I/opt/gitlab/embedded/include -O2" [Builder: ncurses] I | LDFLAGS="-Wl,-rpath,/opt/gitlab/embedded/lib -L/opt/gitlab/embedded/lib" [Builder: ncurses] I | LD_RUN_PATH="/opt/gitlab/embedded/lib" [Builder: ncurses] I | PATH="/opt/gitlab/bin:/opt/gitlab/embedded/bin:/home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" [Builder: ncurses] I | PKG_CONFIG_PATH="/opt/gitlab/embedded/lib/pkgconfig" [Builder: ncurses] I | $ ./configure --prefix=/opt/gitlab/embedded --enable-overwrite --with-shared --with-termlib --without-ada --without-cxx-binding --without-debug --without-manpages [Builder: ncurses] I | Execute: `./configure --prefix=/opt/gitlab/embedded --enable-overwrite --with-shared --with-termlib --without-ada --without-cxx-binding --without-debug --without-manpages': 0.0313s [Builder: ncurses] I | Build ncurses: 0.0329s/home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout/unix.rb:338:in `exec': No such file or directory - ./configure (Errno::ENOENT) from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout/unix.rb:338:in `block in fork_subprocess' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout/unix.rb:316:in `fork' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout/unix.rb:316:in `fork_subprocess' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout/unix.rb:93:in `run_command' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout.rb:259:in `run_command' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/util.rb:81:in `shellout' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/util.rb:97:in `shellout!' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:825:in `shellout!' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:84:in `block in command' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:1012:in `instance_eval' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:1012:in `run' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:843:in `block (3 levels) in execute' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:865:in `with_retries' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:842:in `block (2 levels) in execute' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/instrumentation.rb:23:in `measure' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:841:in `block in execute' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:915:in `with_clean_env' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:840:in `execute' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:704:in `block (2 levels) in build' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:703:in `each' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:703:in `block in build' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/instrumentation.rb:23:in `measure' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/builder.rb:702:in `build' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/software.rb:1142:in `execute_build' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/software.rb:1010:in `build_me' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/project.rb:1085:in `block in build' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/project.rb:1084:in `each' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/project.rb:1084:in `build' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/cli.rb:84:in `build' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/thor-0.18.1/lib/thor/command.rb:27:in `run' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/thor-0.18.1/lib/thor/invocation.rb:120:in `invoke_command' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/thor-0.18.1/lib/thor.rb:363:in `dispatch' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/cli/base.rb:33:in `dispatch' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/gems/thor-0.18.1/lib/thor/base.rb:439:in `start' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/lib/omnibus/cli.rb:42:in `execute!' from /home/ubuntu/omnibus-gitlab/.bundle/ruby/2.3.0/bundler/gems/omnibus-8ac71b82727f/bin/omnibus:16:in `<top (required)>' from bin/omnibus:17:in `load' from bin/omnibus:17:in `<main>'
@masipcat What Ubuntu version do you use as host system? For my setup I use Debian Jessie, but I could also setup an Ubuntu host system, so that we can work together :)
I use container virtualization (with systemd-nspawn) on the ODROID-C2 directly, so I can easily setup a new ubuntu container :) I'll document the steps to build the omnibus package on Debian Jessie + I'll try it on Ubuntu 16.04 later :)
Ah, I could reproduce the error on Ubuntu. It's a bug, the solution is to set the CPPFLAGS environment variable:
[Builder: ncurses] I | CFLAGS="-I/opt/gitlab/embedded/include -O2"[Builder: ncurses] I | CPPFLAGS="-P"[Builder: ncurses] I | CXXFLAGS="-I/opt/gitlab/embedded/include -O2"[Builder: ncurses] I | LDFLAGS="-Wl,-rpath,/opt/gitlab/embedded/lib -L/opt/gitlab/embedded/lib"
The following patch sets the CPPFLAGS variable:
diff --git a/config/software/ncurses.rb b/config/software/ncurses.rbindex fbb952b..6cdf0bd 100644--- a/config/software/ncurses.rb+++ b/config/software/ncurses.rb@@ -15,7 +15,7 @@ # name "ncurses"-default_version "5.9"+default_version "6.0" license "MIT" license_file "http://invisible-island.net/ncurses/ncurses-license.html"@@ -27,7 +27,7 @@ dependency "patch" if solaris2? version("5.9") { source md5: "8cb9c412e5f2d96bc6f459aa8c6282a1", url: "http://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz" } version("5.9-20150530") { source md5: "bb2cbe1d788d3ab0138fc2734e446b43", url: "ftp://invisible-island.net/ncurses/current/ncurses-5.9-20150530.tgz" } version("6.0-20150613") { source md5: "0c6a0389d004c78f4a995bc61884a563", url: "ftp://invisible-island.net/ncurses/current/ncurses-6.0-20150613.tgz" }-version("6.0-20150810") { source md5: "78bfcb4634a87b4cda390956586f8f1f", url: "ftp://invisible-island.net/ncurses/current/ncurses-6.0-20150810.tgz" }+version("6.0") { source md5: "ee13d052e1ead260d7c28071f46eefb1", url: "http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz" } relative_path "ncurses-#{version}"@@ -129,6 +129,8 @@ build do env['INSTALL'] = "/opt/freeware/bin/install" end+ env['CPPFLAGS'] = "-P"+ # only Solaris 10 sh has a problem with # parens enclosed case statement conditions the configure script configure_command.unshift "bash" if solaris2?
Notice: This will consume a bit more than 2GB of RAM - so I heavily recommend to create/turn on a swap partition to avoid these kind of error messages:
Error: g++: internal compiler error: Killed (program cc1plus)Please submit a full bug report,with preprocessed source if appropriate.See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.make[1]: ***[/var/cache/omnibus/src/nodejs/node-v6.7.0/out/Release/obj.target/v8_base/deps/v8/src/crankshaft/hydrogen.o] Error 4make[1]: *** Waiting for unfinished jobs....make: ***[node] Error 2
Upgrading nodejs like this won't work. This would break a build on CentOS6. If you need to upgrade node then the build will need to pass on all platforms we currently support.
I tried to build two days ago without success. First of all I edited configure and forced to configure arch = arm64. OpenSSL failed, so I tried to build node without OpenSSL. Then V8 failed because does not support arm64 (only arm from v5 up to v7)... That's all.
@marin You're right, node 4.6 won't work on CentOS 6 by default. The problem is, that gcc in version 4.4.7 is shipped. But that can be solved with installing e.g. devtools-3-gcc and devtools-3-gcc-c++. I'm currently try to compile it in a virtual machine.
The nodejs upgrade is heavily needed, as version 0.10.x will reach its EOL on 2016-10-31 - see here!
I guess the nodejs upgrade has a higher priority than the ARM64 build, so if you want I can create a MR for that!
(Btw. Debian 7 is also "interesting", as GCC in version 4.7 is shipped...)
@stefan-it I would welcome MR's that upgrade node version. You can leverage our docker build images to test the build. Debian 7 should work without (many) issues, so I suspect CentOS 6 is the major pain.
@masipcat do you have the build omnibus package for Pine A64 uploaded somewhere?
It seems that I also have to rebuild nodejs, as I'm missing npm while compiling the assets (Debian 8).
Hey @masipcat ... Can you give any more info as to how to compile this on/for the pine64? I'm on Ubuntu Xenail, and I've got the build to the point where I'm running bin/omnibus build gitlab and it's claiming a connection timeout which is a load of rot. If you could link the the compiled deb you have that would be even more appreciated... but I do want to work out why this isn't working... even tried checking out the older 8.13 branch, but hit another wall.
Hi @pfeerick. Currently I'm not using Gitlab on a aarch64 device... In fact, I stopped using any arm device, I give up.
If you are planning to run your self-hosted Gitlab, I recommend buying some motherboard like ASRock QC5000M-Itx. You will have a full x64 PC for less than 100€.
I'd very much like to see this happen for Packet's Type 2A servers and the Works On ARM project. Those servers are 96-core Cavium systems with plenty of memory and as a consequence there should be no lack of resources to attempt a build.
Hello. Im working in a Dockerfile to build Gitlab CE omnibus for arm64. For now, im trying to build gitlab omnibus (cross fingers). If i get the .deb and someone want to try it, are welcome :)
Ok, fixed ncurses, now i get "error" here (gitlab omnibus build freeze)
[Software: registry] W | 2017-06-26T16:24:36+00:00 | Version dd544a82d93e8d39cec3d3d45117c3f486365589 for software registry was not parseable. Comparison methods such as #satisfies? will not be available for this version. [Software: registry] W | 2017-06-26T16:24:36+00:00 | Version dd544a82d93e8d39cec3d3d45117c3f486365589 for software registry was not parseable. Comparison methods such as #satisfies? will not be available for this version. [Software: registry] I | 2017-06-26T16:24:41+00:00 | Could not restore from cache [GitFetcher: registry] I | 2017-06-26T16:24:41+00:00 | Cleaning existing clone [Builder: registry] I | 2017-06-26T16:24:41+00:00 | Starting build [Builder: registry] I | 2017-06-26T16:24:41+00:00 | Environment: [Builder: registry] I | 2017-06-26T16:24:41+00:00 | DOCKER_BUILDTAGS="include_gcs" [Builder: registry] I | 2017-06-26T16:24:41+00:00 | GO15VENDOREXPERIMENT="1" [Builder: registry] I | 2017-06-26T16:24:41+00:00 | GOPATH="/var/cache/omnibus/src/registry" [Builder: registry] I | 2017-06-26T16:24:41+00:00 | PREFIX="/opt/gitlab/embedded" [Builder: registry] I | 2017-06-26T16:24:41+00:00 | $ make build D | 2017-06-26T16:24:43+00:00 | + build D | 2017-06-26T16:24:44+00:00 | github.com/docker/distribution/vendor/github.com/Sirupsen/logrus D | 2017-06-26T16:24:44+00:00 | github.com/docker/distribution/uuid D | 2017-06-26T16:24:44+00:00 | github.com/docker/distribution/vendor/github.com/gorilla/context D | 2017-06-26T16:24:44+00:00 | github.com/docker/distribution/vendor/golang.org/x/net/context D | 2017-06-26T16:24:44+00:00 | github.com/docker/distribution/digest D | 2017-06-26T16:24:44+00:00 | github.com/docker/distribution/version D | 2017-06-26T16:24:44+00:00 | github.com/docker/distribution/vendor/github.com/bugsnag/bugsnag-go/errors D | 2017-06-26T16:24:44+00:00 | github.com/docker/distribution/vendor/github.com/bugsnag/osext
Cleared /var/cache/omnibus/src/registry but nothing, same error. omnibus-gitlab branch 9.3 stable
No, didn't get anything useful in the end... kept hitting brick walls and really didn't know what I was doing anyway :-O I gave up my hopes of gitlab on arm64, and stumbled across Gogs, which seems to work flawlessly.
Hi Alberto @elraro ! Testing this on Packet on a clean install, I get this error from the chef script:
================================================================================ Error executing action `run` on resource 'bash[migrate gitlab-rails database]' ================================================================================ Mixlib::ShellOut::ShellCommandFailed ------------------------------------ Expected process to exit with [0], but received '1' ---- Begin output of "bash" "/tmp/chef-script20170627-11222-f5zz4x" ---- STDOUT: rake aborted! TZInfo::DataSourceNotFound: No source of timezone data could be found. Please refer to http://tzinfo.github.io/datasourcenotfound for help resolving this error. /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `<main>' /opt/gitlab/embedded/bin/bundle:22:in `load' /opt/gitlab/embedded/bin/bundle:22:in `<main>' TZInfo::ZoneinfoDirectoryNotFound: None of the paths included in TZInfo::ZoneinfoDataSource.search_path are valid zoneinfo directories. /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `<main>' /opt/gitlab/embedded/bin/bundle:22:in `load' /opt/gitlab/embedded/bin/bundle:22:in `<main>' Tasks: TOP => gitlab:db:configure => environment (See full trace by running task with --trace)
@elraro if you get a build script together that you're happy with I can test deb builds on Packet & see performance on a couple of different ARMv8 architectures.
@vielmetti sure, i need to finish it, there is a draft in the github. Im uploading a new version with the tzdata, try it in a clean ubuntu install, i think the problem is solved.
@elraro Hi, I tried your deb on C2 and it installed fine and basic stuff seems to be working. I have Odroid C2 and Raspberry Pi 3 to test with.
I am, however, unable to build it myself. If I follow GitLab doc on preparing the omnibus builder docker image, apply ncurses patch and use go1.9 beta arm64 package, I am able to go past ncurses compilation, but something else fails afterwards. (I need to dig up the details on this)
When I try to use your build script with go1.8 you prepared, even with ncurses patch, build fails at compiling ncurses. EDIT: I just went through the logs and it seems that the patch is not applied completely.
Bundle complete! 16 Gemfile dependencies, 86 gems now installed.Bundled gems are installed into ./.bundle.--2017-06-30 06:15:11-- https://raw.githubusercontent.com/elraro/gitlab-ce-omnibus-armv8/master/patches/ncurses.patchResolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.60.133Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.60.133|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 793 [text/plain]Saving to: 'ncurses.patch'ncurses.patch 100%[=============================================================================================>] 793 --.-KB/s in 0s2017-06-30 06:15:12 (3.01 MB/s) - 'ncurses.patch' saved [793/793]patching file ncurses.rbHunk #3 FAILED at 155.1 out of 3 hunks FAILED -- saving rejects to file ncurses.rb.rej [CLI] I | 2017-06-30T06:15:14+00:00 | Using config from 'omnibus.rb'Building gitlab-ce 9.3.2+git.4.028ff962...
Could you share some details about you Docker image setup? Maybe link to your Dockerfile?
After compiling for Ubuntu/Odroid C2, I would like to try to build the omnibus package on arm64 OpenSuse for Raspberry Pi3. https://en.opensuse.org/HCL:Raspberry_Pi3
Thanks and let me know if you need help testing further builds.
Today i dont use docker, because i cannot run go under a armv8 image with qemu. So i compiled gitlab in a scaleway vps. The script is broken, i need to fix it
Hi @twk3, I am testing building the ncurses-update branch for Odroid C2 running Ubuntu Xenial. I built a Docker image of omnibus builder and inside it, I cloned the ncurses-update branch.
It builds, but the version is gitlab-ce_8.1.0+git.3257.2a9fa92-rc1.
What do I need to change to build a more recent version, say 9.4.x?
Thanks
@bojanraic it ends up getting a version like that if you don't build on an omnibus tag. The important thing is that is will build the version of gitlab-rails that is in the VERSION file.
@twk3 Yeah, I just found several VERSION files. I am rebuilding with version values from 9.4.1 tag, let's see. I will try to test basic functionality on a C2 board if it builds fine and I can share my slightly modified Dockerfile for the arm64 based builder image, if anyone's interested.
@bojanraic that looks like it should have all the 9.4.1 code, just an odd package version.
It should be fine for testing. If you wanted the package version to reflect something newer, you would need to rebase ncurses-update branch onto the 9-4-stable branch.
The last tag in omnibus that got merged to master (instead of just staying in a stable branch) was 8.1.0, that is why it uses that tag for the package version naming. It doesn't impact the contents of the package though. https://gitlab.com/gitlab-org/omnibus-gitlab/issues/864
Thanks, @twk3. I went about it a bit differently, this time I checked out 9.4.1 tag directly and applied only two files (add-license-file.patch and ncurses.rb) from ncurses-update branch. I now have a deb that's more in line with current version.
I will install and do some basic testing on my C2.
9.4.2 tag built successfully on C2 using only ncurses.rb and add-license-file.patch from ncurses-update branch.
I made two major changes in Dockerfile for the builder image (base is arm64v8/ubuntu:xenial):
Used Go v1.9rc1 as arm64 package is available, instead of v1.8.1
Installed nodejs 6.x from Nodesource apt repo, instead of manual compilation of 6.9.5
I will add back the manual installation of Node 6.9.5 and try to compile Go 1.8.1 within the builder image itself. This way, everything should be on par with the official Docker image for omnibus builder. Once I make these changes I will publish my final Dockerfile for arm64.
As far as testing goes, please let me know if anyone is interested in testing this further. I do not use all features (pages/mattermost/email replies, various CI/CD combinations) so my testing scope is a bit limited.