summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD191
1 files changed, 191 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..4ddfa5c1b62d
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,191 @@
+# Maintainer: Pavol (Lopo) Hluchy <lopo AT losys DOT eu>
+# Contributor: Jonas Heinrich <onny@project-insanity.org>
+# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Contributor: Tobias Hunger <tobias DOT hunger AT gmail DOT com>
+# Contributor: Stefan Tatschner <stefan@sevenbyte.org>
+
+pkgname=gitlab
+pkgver=7.11.4
+pkgrel=1
+pkgdesc="Project management and code hosting application"
+arch=('i686' 'x86_64')
+url="http://gitlab.org/gitlab-ce"
+license=('MIT')
+depends=('ruby>=2.0' 'git>=1.7.10' 'ruby-bundler>=1.5.2' 'gitlab-shell=2.6.3' 'openssh' 'redis>=2.0' 'libxslt' 'icu' 'nodejs')
+makedepends=('cmake')
+optdepends=(
+ 'mariadb: database backend'
+ 'postgresql>=9.1: database backend'
+ 'python2-docutils: reStructuredText markup language support'
+ 'postfix: mail server in order to receive mail notifications'
+ )
+backup=(
+ "etc/webapps/${pkgname}/application.rb"
+ "etc/webapps/${pkgname}/gitlab.yml"
+ "etc/webapps/${pkgname}/database.yml"
+ "etc/webapps/${pkgname}/resque.yml"
+ "etc/webapps/${pkgname}/unicorn.rb"
+ "etc/logrotate.d/${pkgname}"
+ )
+#source=("$pkgname-$pkgver.tar.gz::https://gitlab.com/gitlab-org/gitlab-ce/repository/archive.tar.gz?ref=v${pkgver}"
+source=("$pkgname-$pkgver.tar.gz::https://github.com/gitlabhq/gitlabhq/archive/v${pkgver}.tar.gz"
+ gitlab-unicorn.service
+ gitlab-sidekiq.service
+ gitlab-backup.service
+ gitlab-backup.timer
+ gitlab.target
+ gitlab.tmpfiles.d
+ gitlab.logrotate
+ apache2.4.conf.example
+ apache2.4-ssl.conf.example
+ apache.conf.example
+ apache-ssl.conf.example
+ nginx.conf.example
+ nginx-ssl.conf.example
+ lighttpd.conf.example)
+install='gitlab.install'
+sha512sums=('5a98a9bd0e102403a5d528d87b8e7aede114e37f32141a1bfe259e1efb4a7c63d57f18b32d290cc3631170619c06602e0e4252ba04045f25cc35e23ec66772ef'
+ 'a16e762b0ff807e6e32ebf45562cf78b6b9b64babbfe4e42856a13f6e190c09553b74eb4d353d6213121c415cc08cc6cc82ffce56916208ebfd67b08cf012680'
+ '427ee52ed6cf388aff1f61c370a39ecbc581042ff58650a0a83adf6e363c076a8d00cc8b9332b1d42cda2f1250b6e034114a09a18726286575baed7e755a4af4'
+ 'a38c9c55ad77d857b521769442db95706d9aaf238682f9aa17150f1b5f682ac68eaabfb116e49841e7fce628dd3589685b654d770ac067dac718b5f9e0ee6124'
+ 'c11d2c59da8325551a465227096e8d39b0e4bcd5b1db21565cf3439e431838c04bc00aa6f07f4d493f3f47fd6b4e25aeb0fe0fc1a05756064706bf5708c960ec'
+ 'c519a51d31300074ea12594fbcc8e9610d991ef04b1dac94d93a2b201df3465999cc7c6ac7f3896e02b117c2366d61dea1ef2f6b9cd7b18998385a7f26e5700f'
+ 'e5b8a659b9f0452c38f49a24579f1eac426b62a8ca66fe26b46134dcb0a6976e9597adb723c23728108da33e8e7f2cf80c9397d1fc15b6f71d60bc7aa9a7bc45'
+ 'a1f52d6ca36b32580062dede23ccdde5633238310b28c6c47deb2ce4496f4e5ffea0de2a49bcb1e0e38fc82b66b0cc91a5e86854716c7e848127769b43eb5067'
+ 'cd6b9cae3206dbaa3cd893ea0ead43ffbc70eb6a2ad4bacd3abab1150c751aa4ea64c9931409ac97ee36a2ae83fc019c8eb82b2fe11d5f5b4803a81fa5e79152'
+ 'cd563238011696ba4a7fa1eff2c6604bda8d75c3e6bf9ecb6f0f22e68c9d782e49be3ce2eaad0c1b142116e2c7c59c9242936ba5797f02d5d0880f7e3004aa99'
+ '2388bfd485bb2abaf08e28ed09848ba5dec7eac058836506d2f9f0954cfc75c71da062cc9b503f8f571cdda97c8a696f8aca20cca129ab5146c21b14e1e3ac61'
+ 'db768f60192f6adb466021776c3cdacc263954bc63dc0fb30d13ef20d4db2816d4d1875637984672373eb71c47e65bcdeac52ab5964796b6285519e9aa19c91b'
+ '5445f2d386ab18277772f42e175a4bf465dfcb448c0fa3d867302a5e018277438e295d238a62077c842b2c2225555b5b2f17a9194ab87e5d5c7e21e4e9c92366'
+ '78c90dc1a7ef969f6c94a004fa1038b6fb76b50c6f3de077b39d40e2a07550e274338d81e83e2280fbd8c2d66ece1706e44c78c785bbc029f9a8a79d3f1eb063'
+ 'c78b6f46abcf603d8db6e38cf50868e14145928422ddfe17c88e2f006b5b910dddf456ec5d6d724b250994530643963809688a98f7e12ebd5b5dabf7f96f0e06')
+
+_homedir="/var/lib/${pkgname}"
+_datadir="/usr/share/webapps/${pkgname}"
+_logdir="/var/log/${pkgname}"
+_srcdir="gitlabhq-${pkgver}"
+_etcdir="/etc/webapps/${pkgname}"
+_wo=()
+
+if [[ `pacman -T libmariadbclient` != '' ]]; then
+ _wo+=('mysql')
+else
+ warning "detected libmariadbclient"
+fi
+if [[ `pacman -T postgresql-libs` != '' ]]; then
+ _wo+=('postgres')
+else
+ warning "detected postgresql-libs"
+fi
+
+prepare() {
+ if [[ ${#_wo[@]} == 2 ]]; then
+ error "Usable DB libs not found"
+ msg2 "Install at least libmariadbclient or postgresql-libs"
+ return 1
+ fi
+
+ cd "${srcdir}/${_srcdir}"
+
+ # Patching config files:
+ msg2 "Patching paths and username in gitlab.yml..."
+ sed -e "s|# user: git|user: gitlab|" \
+ -e "s|/home/git/repositories|${_homedir}/repositories|" \
+ -e "s|/home/git/gitlab-satellites|${_homedir}/satellites|" \
+ -e "s|/home/git/gitlab-shell|/usr/share/webapps/gitlab-shell|" \
+ -e "s|tmp/backups|${_homedir}/backups|" \
+ config/gitlab.yml.example > config/gitlab.yml
+ msg2 "Patching paths in unicorn.rb..."
+ sed -e "s|/home/git/gitlab/tmp/.*/|/run/gitlab/|g" \
+ -e "s|/var/run/|/run/|g" \
+ -e "s|/home/git/gitlab|${_datadir}|g" \
+ -e "s|timeout 30|timeout 300|" \
+ -e "s|${_datadir}/log/|${_logdir}/|g" \
+ config/unicorn.rb.example > config/unicorn.rb
+ msg2 "Patching username in database.yml..."
+ sed -e "s|username: git|username: gitlab|" \
+ config/database.yml.mysql > config/database.yml
+ sed -e "s|production: unix:/var/run/redis/redis.sock|production: redis://localhost:6379|" \
+ config/resque.yml.example > config/resque.yml
+ msg2 "setting up systemd service files ..."
+ for __srv in gitlab-sidekiq.service gitlab-unicorn.service gitlab.logrotate gitlab.tmpfiles.d gitlab-backup.service; do
+ sed -i "s|<HOMEDIR>|${_homedir}|g" "${srcdir}/${__srv}"
+ sed -i "s|<DATADIR>|${_datadir}|g" "${srcdir}/${__srv}"
+ sed -i "s|<LOGDIR>|${_logdir}|g" "${srcdir}/${__srv}"
+ done
+}
+
+build() {
+ cd "${srcdir}/${_srcdir}"
+
+ msg "Fetching bundled gems..."
+ # Gems will be installed into vendor/bundle
+
+ bundle config build.nokogiri --use-system-libraries
+ cpus=$(nproc)
+ if [[ $cpus -ge 3 ]]; then
+ bundle install -j$(( $cpus - 1 )) --no-cache --deployment --without development test aws ${_wo[@]}
+ else
+ bundle install --no-cache --deployment --without development test aws ${_wo[@]}
+ fi
+}
+
+package() {
+ cd "${srcdir}/${_srcdir}"
+ install -d "${pkgdir}/usr/share/webapps"
+ cp -r "${srcdir}/${_srcdir}" "${pkgdir}${_datadir}"
+
+ # Creating directories
+ install -d \
+ "${pkgdir}${_etcdir}" \
+ "${pkgdir}/usr/share/doc/${pkgname}" \
+ "${pkgdir}${_homedir}/www" \
+ "${pkgdir}${_homedir}/satellites" \
+ "${pkgdir}${_datadir}/www" \
+ "${pkgdir}${_datadir}/public/uploads"
+ ln -fs /run/gitlab "${pkgdir}${_homedir}/pids"
+ ln -fs /run/gitlab "${pkgdir}${_homedir}/sockets"
+ ln -fs ${_datadir}/log "${pkgdir}${_homedir}/log"
+
+ ln -fs "${_etcdir}/secret" "${pkgdir}${_datadir}/.secret"
+
+ rm -rf "${pkgdir}${_datadir}/public/uploads" && ln -fs "${_homedir}/uploads" "${pkgdir}${_datadir}/public/uploads"
+ rm -rf "${pkgdir}${_datadir}/public/assets" && ln -fs "${_homedir}/assets" "${pkgdir}${_datadir}/public/assets"
+ # We are using PrivateTmp=true to start unicorn, so this is safe:
+ rm -rf "${pkgdir}${_datadir}/tmp" && ln -fs /var/tmp "${pkgdir}${_datadir}/tmp"
+ rm -rf "${pkgdir}${_datadir}/log" && ln -fs "${_logdir}" "${pkgdir}${_datadir}/log"
+
+ ln -fs /etc/webapps/gitlab-shell/secret "${pkgdir}${_datadir}/.gitlab_shell_secret"
+
+ # Install config files
+ for _file in application.rb gitlab.yml unicorn.rb database.yml resque.yml; do
+ mv "config/${_file}" "${pkgdir}${_etcdir}/"
+ [[ -f "${pkgdir}${_datadir}/config/${_file}" ]] && rm "${pkgdir}${_datadir}/config/${_file}"
+ ln -fs "${_etcdir}/${_file}" "${pkgdir}${_datadir}/config/"
+ done
+
+ # Install license and help files
+ mv README.md MAINTENANCE.md CONTRIBUTING.md CHANGELOG config/*.{example,mysql,postgresql} "${pkgdir}/usr/share/doc/${pkgname}"
+ install -D "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ rm "${pkgdir}${_datadir}/LICENSE"
+
+ # https://gitlab.com/gitlab-org/gitlab-ce/issues/765
+ cp -r "${pkgdir}${_datadir}/doc" "${pkgdir}${_datadir}/public/help"
+ find "${pkgdir}${_datadir}/public/help" -name "*.md" -exec rm {} \;
+ find "${pkgdir}${_datadir}/public/help/" -depth -type d -empty -exec rmdir {} \;
+
+ # Install systemd service files
+ for _file in gitlab-unicorn.service gitlab-sidekiq.service gitlab-backup.service gitlab-backup.timer gitlab.target; do
+ install -Dm0644 "${srcdir}/${_file}" "${pkgdir}/usr/lib/systemd/system/${_file}"
+ done
+
+ install -Dm644 "${srcdir}/gitlab.tmpfiles.d" "${pkgdir}/usr/lib/tmpfiles.d/gitlab.conf"
+ install -Dm644 "${srcdir}/gitlab.logrotate" "${pkgdir}/etc/logrotate.d/gitlab"
+
+ # Install webserver config templates
+ for __cfg in apache2.4 apache2.4-ssl apache apache-ssl nginx nginx-ssl lighttpd; do
+ install -m644 "${srcdir}/${__cfg}.conf.example" "${pkgdir}${_etcdir}"
+ done
+}
+
+# vim:set ts=4 sw=4 et: