www-apps/gitlab-ce:

Add ebuild for version 10.2.8.

Package-Manager: Portage-2.3.19, Repoman-2.3.6
This commit is contained in:
Manuel Friedli 2018-02-16 14:37:48 +01:00
parent 11c53e69e3
commit fe6fb2863a
4 changed files with 563 additions and 1 deletions

View file

@ -1,3 +1,9 @@
*gitlab-ce-10.2.8 (16 Feb 2018)
16 Feb 2018; Manuel Friedli <manuel@fritteli.ch>
+files/03-gitlab-ce-10.2.8-database.yml.patch, +gitlab-ce-10.2.8.ebuild:
www-apps/gitlab-ce: Add ebuild for version 10.2.8.
08 Feb 2018; Manuel Friedli <manuel@fritteli.ch>
+files/07-gitlab-ce-10.0.7-yarn.patch, gitlab-ce-10.0.7.ebuild:
www-apps/gitlab-ce: Add patch for package.json and yarn.lock in order to fix

View file

@ -1,5 +1,6 @@
AUX 01-gitlab-ce-8.7.5-fix-sendmail-config.patch 705 SHA256 cfc4ffd896e03cc763601aca5cdd5ac43f85152705cbf5a4e9144a6156d6f77e SHA512 a92659db8cab022185d87f321b037b1731612bf5f89b9df4552dd49b843bb49b6019f8ddda96a6fd6cb6544664a1c3d52ca5fee2c11be8b33698cc713219510f WHIRLPOOL 81a6504a8583bc46ea4005d9f8a2113802439161c40f11d3da46332b8980fc6b9520d81d9e32a6555bcdc893245448ba9151a271c511ae87f6468f588d4804b0
AUX 02-gitlab-ce-9.0.0-fix-redis-config-path.patch 423 SHA256 9de3711c1f06a0561001166f2a44b4c1dc5fa3fa57a5230eb1dcc2b5d394449c SHA512 ae89fa3c6fde777e844e777862415450787ebf83653435cea329d66810c5805d2126d41cb1ce40b15c42371543bc182a59305b8b1b6a7433121340a625300370 WHIRLPOOL d97962907bb1fc610ebc52665a6ce51f40ee932e7ac715279f3c0554f2880a7b220ecbac2c4c97bd4d3dac22b9a025aa729805221ed5e6d15f04f6cd8e210d22
AUX 03-gitlab-ce-10.2.8-database.yml.patch 2681 SHA256 08e7a87decc6ded6a7b5d12ce2bce39c4ca2023b042d19b3c3e5323996665840 SHA512 93555c817eca4b7b04aac0d3f3ffbcb2f56e03ded54529f222c1b9b2a17e6eea6133bbd1d832bf19f98b60722a1f6ba63e21649abf0b4de5ac22560494155ca1 WHIRLPOOL 6bd550bd61b3e61cfcd14be4820396fda705e75e03a1ed0dff5971005d45008a62f6f2402557f9d6bf3a627571b0acc46641185b3faa6a8966165013fdc2ce32
AUX 03-gitlab-ce-8.17.0-database.yml.patch 2238 SHA256 c5ec9e8a11fb60a7749b9f8cf553949e78aacf9a8233b39c4986980851196c8e SHA512 1668e2c1d00ef485d2bc5af8d343c9be19f291a627d0041d42b268ec1ad8aedecba99336998e6b1b3ac2f4cd617556d17ab5f1f11f95d696205e3d10d6b74e1c WHIRLPOOL c91a6604f050113c9f584d7bf34ebe660263beb88879382873952d6b1b136ad5b576b813bf9f2f66ee49d6656fb1d24437dca395c2574bd7dab07cd1a3a36a99
AUX 03-gitlab-ce-9.2.2-database.yml.patch 2342 SHA256 870cddca799897d249773d0b0e58d30b1290475e3c313faa6bbc307c73f80d4b SHA512 257ff2cf3bd090dd08a8f03baa6c06d130313bf46b21ac61a606aaa0f0cf1eaacd3ad231761989448e4dc28aeda01b03192290314582db002c32c65eed4134aa WHIRLPOOL 94d95a9e6d15d48c6e786521b04eb43b12a003feae0a464122f51cdf2a5215b2c025134373842a6633d0adf73ceea1db9fb32e36236391bdf9e750565f908591
AUX 03-gitlab-ce-9.4.0-database.yml.patch 2402 SHA256 1c7bed7db0a0a7f46111a3cb0fbc37d46c64c184201ba6d7777e3f9ad6c647fd SHA512 42c66dcbf6f311ddcf391330b97acc36493f5ddc8e66c8812bf9826f7750c6bd268da6d5a159973902077528cdd11ae61594e3e377b1f9a6a5b551522d615a35 WHIRLPOOL e66453787d14c653b5fe9a68b666afc532d13870edebe222f235a94368cc5e44c8def781a1e73918844f25726d4d845693212419380822470a5849f2fb4d1958
@ -21,6 +22,7 @@ DIST gitlab-ce-10.0.0_rc3.tar.gz 39936453 SHA256 347840d9beb01f765c4962616e24192
DIST gitlab-ce-10.0.4.tar.gz 40040781 SHA256 eef116f75b64b835402a87e3737a3721143823c7094ded06edf8f9ac974a7ca8 SHA512 346719e7ea8dba4cb55396cfaafc8d70c7145d4de63913dc736c7f21f3f1ac133a1c837c19a3b1131879678a7b5e8b9bb6abb0bf29031802dda6e3b96e0715c0 WHIRLPOOL a62361a9f48911a9bf0244411aa638017f8cd928e6b7fce501da5645b3f1813323abaebb2e7937d3c78bbf2724962575813940222d729b5356e77ff524231d02
DIST gitlab-ce-10.0.7.tar.gz 40049508 SHA256 890eed75ee502cd6c612756815ac8c854eeee3d00ab3d7bf00ee580db8141264 SHA512 770b747a35988b663f1ffe3b05b317839cc66e9c76e64e51673d066787a42acbb688b739fe9fe3a6dc787f2e44d6fbd99388ea0a20f103bedc631ed0054401f4 WHIRLPOOL 0de51582532936620b4140013f87652e7581956fd6e662d83e53ed024699ff70c2c52fbb863f8052c5df36bd5b63cff0cc6fd9372c97ea2265aa1242a2d6afdc
DIST gitlab-ce-10.1.7.tar.gz 41749804 SHA256 d04dca23289adad80ba239d993aa67dcd14f50a1b935d91136247124e8b5f1f9 SHA512 3ebf8ab1e57ef82caeef940264a6f755e091717879d7ac36ce786155440ebd1264fa3320012cea4d1e6c319926a818cfcb19740fb765f069d5d18841ac1c0a21 WHIRLPOOL c91234ffd82c5e7380afbb49e3a6cd848d7744dc299dfe039fa02485e4d831fc24247e7613d5dd20d4e9752015f59c0638ea95f4eaa96afe50e8748eca0a7ad5
DIST gitlab-ce-10.2.8.tar.gz 42393303 SHA256 4314e87513684dc08f67c3d4be5f5f26502ae9963793a9abd8ba8cb4cc0b0a48 SHA512 cdd30f8500d1c902c42fd60b155143dc76ebc9990cc9c515ab2229f678feedebf6e1c7bd9c2c59b374cea2259eb7ad1384f50184787f45381afdaf3eb8e82803 WHIRLPOOL d5bb64d4f4254acd6a675dda653490ed34560f331d47ff9ad294dd042a515d8d3b14345a7950754f2d7c7ad676fb4328a76bf1885c91bec540c26b4edaaa5b14
DIST gitlab-ce-9.0.13.tar.gz 26366204 SHA256 056c98acb558776a2919b1aa501cb5303e66eb3cfe1d54b26988492be1c3816b SHA512 42fae9a01adc1eaac8e59b4ddb5f1d7c11d409dab32b84bf9849eedfed88bf87f7d36d0f9687f253424e2eacdbf83b3560bf9e64baa1533e4b1b6ff6e3be65e7 WHIRLPOOL d5c312d3f63057786ad28b2fba328d7a0593a5140aad617067b0aa0319d741f36ff32e573a436bf663f0f56d820b02fea5e22a430355856268306582fb62396a
DIST gitlab-ce-9.1.10.tar.gz 30516975 SHA256 37cfd9dafcfbcd432d7d7a3abc6889bcd35321fc00b717f4810bf432791b0243 SHA512 81a7b9836aafcb348b6c38d8c19917053fc7a6adc6328d4b05215aa3d5c698adb708068d36bdc82df61e5b2d6b269c0ba8682b4994fa4a36b98fabe5b17e5f07 WHIRLPOOL b0affc921e0b41faabe354805fbcbd56a5839f7eeb880c00c2f10b68b0f2865b8e39ed58cfd99f6b6d0f2517bd465ff3f227fc6f17e1c1e17128299f21a911f2
DIST gitlab-ce-9.2.10.tar.gz 30988788 SHA256 a30e9d08d08433713df958d447a76cf2ed16344c7de56614f2849e8caad3e3b5 SHA512 fd4602c86edaf3060e1f5b8c8d6c5e4d40ec64f7f3d2519008b8c096720016c9a0dc6357bc464e72e4b52b25bd12ab26a4166898fba608383b4e4647ad49782c WHIRLPOOL f6b79e71f906c461ed89bd23bd537ae640b55c6727d7275e16ecb3b7349957f1461138d8fef5163137cabae59dccfdd8c4b22bd425800bf2eee3b732fd9a2908
@ -31,6 +33,7 @@ EBUILD gitlab-ce-10.0.0_rc3.ebuild 13508 SHA256 bb22763056e0686ff308db2bc14e55ed
EBUILD gitlab-ce-10.0.4.ebuild 13526 SHA256 0fa438ddcca42b2ec6090bdb587635c8e82c9d4fb515427f24b264ab4b70db64 SHA512 dd84a68b17bd5ee193f55519bf83d52385e372dbde672915b4a799d30ecf08e2dd004946fbf73acaefcafce9af20355538a5c0d453ee52f7009deb8403001fe4 WHIRLPOOL db04a3db49544333341a4fbd1b1d3ce49e58106b91da12de0b5b2cfeece52876ce6845e6e8b0fd8048fe40ad3b02e78efc191e716fda52a576c959569a9527d5
EBUILD gitlab-ce-10.0.7.ebuild 13568 SHA256 c164db3f0af93824bb97992b20b0bc5415bbc701c80469593038c773c453b976 SHA512 ba702162d9fad73d46953649c9faf913069f2059fbd253d8019224c1645c56cb6c0ec69893be6238e42ee3d54bbcd9a22343eece1975e084d7ff73d4efbb79dd WHIRLPOOL 37f6ebb5c9e4a60df200272235dca55819b81936cb8f74a43fff7a79a3330666587d082e18cdca20ecd610eea0b18c86eadf183353f83e72606d1ccffb756949
EBUILD gitlab-ce-10.1.7.ebuild 13679 SHA256 9c1bec7e86d46422f87baecaece80197c506b758eab28fd85fc214512ff67e3c SHA512 6958f3f67b7d8729519175337b5e411b9d32fa3e7348105870d5f35c938e905cc60e7af23802b1b5835610c72e9a76ca50c229f5d862403ffd5065e82ee39d25 WHIRLPOOL 6caf644203291c7903f7c67a93e3f11a3f8d632e01384390742bc8b1fc4068e494f750c44817f0143a0f6eeaadbb4a7243c4194397fded59956363b49bd32ae4
EBUILD gitlab-ce-10.2.8.ebuild 13681 SHA256 0e02e1a51f335872facce2751aa23d8ff5b9cd8aa7359fed1cd0f5a3ed5bd1e7 SHA512 805d6a717b0dcdc6551f549722abb8322a51d6cee1eb807dabac1fe4b98ffd32fcf3667d1de7f845a08e9dfb72afa257c51c6382cbc48f5f23fe15b027724dde WHIRLPOOL 1c48b8ea54d65d1d2ea001c6af45c0a76f0587d815353675ce36245c721f4b2d9c5b48c608fe632743863f5db859c5ee0c96b95fe6b429fcdd7053d4e8fb86e8
EBUILD gitlab-ce-9.0.13.ebuild 13139 SHA256 ecdcd1d6ca3999eb4b299628bac4c97a231cfcf682569cc1a0c11241cfcb6099 SHA512 8a6b8f3f05f54a752d57651b34ba4f6310e6695ea6eea1bbebe4a1dd38aa9ea0e9030bd59448a886918e20ea81f1b167236712e21fb6c43b7fb50b79565e2d87 WHIRLPOOL 0873a646dcb208e8c006e0e587fc03003594fd00e790e22d89839c9ffb8b7403a2df7b306ddfb817ea10a32e58d095d97989591de18ca78782bd468ae1fb8bc7
EBUILD gitlab-ce-9.1.10.ebuild 13295 SHA256 a69c179d072e76597091d825956bc308a25757a95406444a95a4ccbe9fe8ee9e SHA512 cc01ae887bce9e838eb020c7b414de4f80c5cc94762bd7c65fc5f6ab732b3ac7447f3f136b054557a5a93d09ed946b821d027fe29d7fdeea6eaaa6fc336cf394 WHIRLPOOL 1778e46da386704fbecc9e62769b9ab6ccdb40ee1028ef33607b4668e3fafbd0996ff4397128d8320098e3bf5c8f1d47a227e3c61a73a26a63663223790c8107
EBUILD gitlab-ce-9.2.10.ebuild 13040 SHA256 ace7b7561f499e43c19284153358b718275ac55792650391f39fa4ab89941c20 SHA512 22c8723251fefd50739ac082f04c377543f659720346cd29680d4956a2d6a37bb27b2c6beb723c09f49d7e478375e6679940f63f43c644564155a0eaffe300ed WHIRLPOOL 9601c5fcdc9b8d753a58ea4b4606957f3d09e63834335703896f55b16c41df7b81ef00b64e57f4409322789dcaa3745d60b31a973950c99037895d71a38ddaf2
@ -38,5 +41,5 @@ EBUILD gitlab-ce-9.3.11.ebuild 13699 SHA256 e56490b1f59cf32e84d65ba3c91231c07a41
EBUILD gitlab-ce-9.4.7.ebuild 13526 SHA256 5078d51dcca18d9c5380bff25d494437506482beb4e586727b577f1c475363ec SHA512 244e178828910739018fa794c9f03c8f3b0411e45298800eaf828099f9d468b01d73102c9183ce6552d4ba208c086e5b4de85b4e0427e5502b9a54d56cb6a636 WHIRLPOOL 0306b7fc67f570d2ece6cc321461604c2be4fe886122750a481c6573800bbb4164c4cecee54a29a408b1eee17aa479a54271b395575d2d606dbd2ec3ddc4a1ae
EBUILD gitlab-ce-9.5.10.ebuild 13526 SHA256 6e7c361f31989dd608eff4c8dd01b7301b142b4d38acdf38e61e2eecb2d4b285 SHA512 e33e56c8e49bd2ef03dd9af508b186f7908b8502960cbdb95ca9166631b84d5357c4965c0919e432ee5de9b9eeb33f68773ac405c24430568f9abb0d8e7354a6 WHIRLPOOL 3e866d785e8018096a92a223a2f6cedf4398cc07726a183d805005b3cd718fed2296edd63f5bc9d2b8849fe2298e9a61bf998a2241de2cd5ab4527f8ddaed325
EBUILD gitlab-ce-9999.ebuild 13468 SHA256 ab13060918b09a67f3f0c653a3836c1077933c606e5ea4e3416fde204aa530af SHA512 f14bc61622929dc57460fd7e4b3d965437fdc44706c52608a6b278021960bb70b62f81a6dd38beeb134c0f40ef29a81e07ea5a49c9a7a8e7ab63f55529231cb8 WHIRLPOOL 204d2f97890f2868b9f890fcc9b03d3c47c6916e52af341cf946e197acd8c2287409a5a1e525183a62fec9588eaa21b9d3ad30bba3b12267aa4c9e1163ca7fb0
MISC ChangeLog 25685 SHA256 6b1b52180c68766cc39f91e740fb3308537a899e055f41c4cb0091f22194a2d4 SHA512 133578ba1dc5aa4ed555ffaa1c67c0a9f75daa72ece5cc9151ec78ff90701c0afbe3552ff425e69ecdb351b8390dbf73e78ec0fa2d7d1f70a1712fd20c63f40a WHIRLPOOL 0edf627bfe33cd9620197c8c61c3732b8e346a6cead257cdfbf0f952606e1bd74b1911d7fea23f55710cc3bc7aa66d61be9b246314d8bbcc7ac6e3022501566d
MISC ChangeLog 25899 SHA256 f59dc17469898c39b749dd8ca802123585790c2467c1f3a66fbc8129fd035035 SHA512 fc43a3374e811f74b88102db461cb1b31a3ff830c7c770604f346e372867595ad8713ee3afb3c60c3df77a7e1be7504dc1925e48111176e3573155f197dc6e93 WHIRLPOOL f1394d10f61611b5c539086890910ef03651bdab21dead81b60e90b0a30257128ca9f8443e5c8a3929805dfe47ee53984d46c852431d444258aca776b4fd6830
MISC metadata.xml 801 SHA256 3dc7486a12903f47f65968d524c93500ba30a4a09fa57e5a9dacf356509b44bb SHA512 e132754b72e64246531fa883400a0cf1a473ac5a6a49623db58ccf118a038b7cf37df03d9550f37b4a25f9ddbb1dcc5652ec9a4f2259d8e3ce202692c4025f41 WHIRLPOOL e9d961681fd790008eaf80fa07ce2c55a00a58f2e920d759793783ca8c8f508602a777e94c0cb65fe87c7dbef0cabdf26e4f4082584421097d939cbab20c4ac6

View file

@ -0,0 +1,118 @@
diff --git a/config/database.yml.mysql b/config/database.yml.mysql
index 98c2abe..2896c50 100644
--- a/config/database.yml.mysql
+++ b/config/database.yml.mysql
@@ -3,58 +3,12 @@
#
production:
adapter: mysql2
- encoding: utf8
- collation: utf8_general_ci
- reconnect: false
- database: gitlabhq_production
- pool: 10
- username: git
- password: "secure password"
- host: localhost
- # socket: /tmp/mysql.sock
-
-#
-# Development specific
-#
-development:
- adapter: mysql2
- encoding: utf8
- collation: utf8_general_ci
- reconnect: false
- database: gitlabhq_development
- pool: 5
- username: root
- password: "secure password"
- host: localhost
- # socket: /tmp/mysql.sock
-
-#
-# Staging specific
-#
-staging:
- adapter: mysql2
- encoding: utf8
- collation: utf8_general_ci
+ encoding: utf8mb4
+ collation: utf8mb4_general_ci
reconnect: false
- database: gitlabhq_staging
+ database: gitlab
pool: 10
username: git
password: "secure password"
host: localhost
- # socket: /tmp/mysql.sock
-
-# Warning: The database defined as "test" will be erased and
-# re-generated from your development database when you run "rake".
-# Do not set this db to the same as development or production.
-test: &test
- adapter: mysql2
- encoding: utf8mb4
- collation: utf8mb4_general_ci
- reconnect: false
- database: gitlabhq_test
- pool: 5
- username: root
- password:
- host: localhost
- # socket: /tmp/mysql.sock
- prepared_statements: false
+ # socket: /run/mysqld/mysqld.sock
diff --git a/config/database.yml.postgresql b/config/database.yml.postgresql
index baded68..5669617 100644
--- a/config/database.yml.postgresql
+++ b/config/database.yml.postgresql
@@ -4,45 +4,8 @@
production:
adapter: postgresql
encoding: unicode
- database: gitlabhq_production
+ database: gitlab
pool: 10
username: git
password: "secure password"
host: localhost
-
-#
-# Development specific
-#
-development:
- adapter: postgresql
- encoding: unicode
- database: gitlabhq_development
- pool: 5
- username: postgres
- password: "secure password"
- host: localhost
-
-#
-# Staging specific
-#
-staging:
- adapter: postgresql
- encoding: unicode
- database: gitlabhq_staging
- pool: 10
- username: git
- password: "secure password"
- host: localhost
-
-# Warning: The database defined as "test" will be erased and
-# re-generated from your development database when you run "rake".
-# Do not set this db to the same as development or production.
-test: &test
- adapter: postgresql
- encoding: unicode
- database: gitlabhq_test
- pool: 5
- username: postgres
- password:
- host: localhost
- prepared_statements: false

View file

@ -0,0 +1,435 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
# 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.
#
USE_RUBY="ruby23"
inherit eutils ruby-ng user systemd
MY_PV="v${PV/_/-}"
MY_GIT_COMMIT="94bb13bf583ee6b7ae859afdea9ed7f021161c23"
GITLAB_GITALY_VERSION="0.52.1"
GITLAB_PAGES_VERSION="0.6.0"
GITLAB_SHELL_VERSION="5.10.0"
GITLAB_WORKHORSE_VERSION="3.3.1"
DESCRIPTION="GitLab is a free project and repository management application"
HOMEPAGE="https://about.gitlab.com/"
SRC_URI="https://gitlab.com/gitlab-org/${PN}/repository/archive.tar.gz?ref=${MY_PV} -> ${P}.tar.gz"
RUBY_S="${PN}-${MY_PV}-${MY_GIT_COMMIT}"
RESTRICT="mirror"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~arm64"
IUSE="kerberos mysql +postgres +unicorn systemd pages rugged_use_system_libraries"
## Gems dependencies:
# charlock_holmes dev-libs/icu
# grape, capybara dev-libs/libxml2, dev-libs/libxslt
# rugged dev-util/cmake, virtual/pkgconfig
# json dev-util/ragel
# pygments.rb python 2.7+
# execjs net-libs/nodejs, or any other JS runtime
# pg dev-db/postgresql
# mysql virtual/mysql
#
GEMS_DEPEND="
dev-libs/icu
dev-libs/libxml2
dev-libs/libxslt
dev-libs/re2
dev-util/ragel
>=net-libs/nodejs-4.3.0
>=sys-apps/yarn-0.17.0
postgres? ( >=dev-db/postgresql-9.6:* )
mysql? ( virtual/mysql )
kerberos? ( virtual/krb5 )"
CDEPEND="
dev-util/cmake
virtual/pkgconfig"
COMMON_DEPEND="
${GEMS_DEPEND}
~dev-vcs/gitlab-shell-${GITLAB_SHELL_VERSION}
>=dev-vcs/git-2.8.4
~www-servers/gitlab-workhorse-${GITLAB_WORKHORSE_VERSION}
kerberos? ( !app-crypt/heimdal )
rugged_use_system_libraries? ( net-libs/http-parser dev-libs/libgit2:0/26 )
pages? ( ~www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} )
~www-servers/gitlab-gitaly-${GITLAB_GITALY_VERSION}"
DEPEND="
${CDEPEND}
${COMMON_DEPEND}"
RDEPEND="
${COMMON_DEPEND}
>=dev-db/redis-2.8
virtual/mta
systemd? ( sys-apps/systemd:0= )"
ruby_add_bdepend "
virtual/rubygems
>=dev-ruby/bundler-1.15.4"
#
# fix-sendmail-config:
# Fix default settings to work with ssmtp that doesn't know '-t' argument.
# fix-redis-config-path:
# Point to the absolute location of redis_config.rb
#
PATCHES=(
"${FILESDIR}/01-${PN}-8.7.5-fix-sendmail-config.patch"
"${FILESDIR}/02-${PN}-9.0.0-fix-redis-config-path.patch"
"${FILESDIR}/03-${PN}-10.2.8-database.yml.patch"
"${FILESDIR}/04-${PN}-9.3.0-fix-check-task.patch"
"${FILESDIR}/05-${PN}-9.0.0-replace-sys-filesystem.patch"
"${FILESDIR}/06-${PN}-8.17.0-fix-webpack-config.patch"
)
MY_NAME="gitlab"
MY_USER="git" # should be same as in gitlab-shell
DEST_DIR="/opt/${MY_NAME}"
CONF_DIR="/etc/${MY_NAME}"
LOGS_DIR="/var/log/${MY_NAME}"
TEMP_DIR="/var/tmp/${MY_NAME}"
all_ruby_prepare() {
# fix paths
local satellites_path="${TEMP_DIR}/repo_satellites"
local repos_path=/var/lib/git/repositories
local shell_path=/usr/share/gitlab-shell
local run_path=/run/${MY_NAME}
sed -i -E \
-e "/satellites:$/,/\w:$/ s|(\s*path:\s).*|\1${satellites_path}/|" \
-e "/gitlab_shell:$/,/\w:$/ s|(\s*path:\s).*|\1${shell_path}/|" \
-e "/gitlab_shell:$/,/\w:$/ s|(\s*repos_path:\s).*|\1${repos_path}/|" \
-e "/gitlab_shell:$/,/\w:$/ s|(\s*hooks_path:\s).*|\1${shell_path}/hooks/|" \
-e "/path: \\/home\\/git\\/repositories\\/$/ s|/home/git/repositories/|/var/lib/git/repositories/|" \
-e "/gitaly_address:/ s|/home/git/gitlab/tmp/sockets/private/|${run_path}/sockets/|" \
config/gitlab.yml.example || die "failed to filter gitlab.yml.example"
sed -i -E \
-e "s|/home/git/gitlab/tmp|${run_path}|g" \
-e "s|/home/git/gitlab/log|${LOGS_DIR}|g" \
-e "s|/home/git/gitlab|${DEST_DIR}|g" \
config/unicorn.rb.example || die "failed to filter unicorn.rb.example"
sed -i \
-e "s|/home/git/gitlab/tmp|${run_path}|g" \
lib/support/nginx/gitlab || die "failed to filter nginx/gitlab"
# modify default database settings for PostgreSQL
sed -i -E \
-e 's|(username:).*|\1 gitlab|' \
-e 's|(password:).*|\1 gitlab|' \
-e 's|(socket:).*|\1 /run/postgresql/.s.PGSQL.5432|' \
config/database.yml.postgresql \
|| die "failed to filter database.yml.postgresql"
# rename config files
mv config/gitlab.yml.example config/gitlab.yml
mv config/unicorn.rb.example config/unicorn.rb
local dbconf=config/database.yml
if use postgres && ! use mysql; then
mv ${dbconf}.postgresql ${dbconf}
rm ${dbconf}.mysql
elif use mysql && ! use postgres; then
mv ${dbconf}.mysql ${dbconf}
rm ${dbconf}.postgresql
fi
# remove useless files
rm -r lib/support/{deploy,init.d}
use unicorn || rm config/unicorn.rb
}
all_ruby_install() {
local dest=${DEST_DIR}
local conf=${CONF_DIR}
local logs=${LOGS_DIR}
local temp=${TEMP_DIR}
# prepare directories
diropts -m750
dodir ${logs} ${temp}
diropts -m755
dodir ${conf} ${dest}/public/uploads
dosym ${temp} ${dest}/tmp
dosym ${logs} ${dest}/log
# install configs
insinto ${conf}
doins -r config/*
dosym ${conf} ${dest}/config
echo 'export RAILS_ENV=production' > "${D}/${dest}/.profile"
# remove needless dirs
rm -Rf config tmp log
# install the rest files
# using cp 'cause doins is slow
cp -Rl * "${D}/${dest}"/
cp -Rl .??* "${D}/${dest}"/
# install logrotate config
dodir /etc/logrotate.d
cat > "${D}/etc/logrotate.d/${MY_NAME}" <<-EOF
${logs}/*.log {
missingok
delaycompress
compress
copytruncate
}
EOF
## Install gems via bundler ##
cd "${D}/${dest}"
local without="development test aws"
local flag; for flag in mysql postgres unicorn kerberos; do
without+="$(use $flag || echo ' '$flag)"
done
local bundle_args="--deployment ${without:+--without ${without}}"
use "rugged_use_system_libraries" && export RUGGED_USE_SYSTEM_LIBRARIES="YES"
einfo "Running bundle install ${bundle_args} ..."
${RUBY} /usr/bin/bundle install ${bundle_args} || die "bundler failed"
einfo "Cleaning old gems ..."
${RUBY} /usr/bin/bundle clean
# clean gems cache
rm -Rf vendor/bundle/ruby/*/cache
rm -Rf vendor/bundle/ruby/*/bundler/gems/charlock_holmes-dde194609b35/.git
## RC script ##
if use systemd ; then
ewarn "Beware: systemd support has not been tested, use at your own risk!"
systemd_newunit "${FILESDIR}/gitlab-8.13.0-sidekiq.service" "gitlab-sidekiq.service"
systemd_dounit "${FILESDIR}/gitlab-unicorn.service"
systemd_dounit "${FILESDIR}/gitlab-workhorse.service"
systemd_dounit "${FILESDIR}/gitlab-mailroom.service"
systemd_dotmpfilesd "${FILESDIR}/gitlab.conf"
else
local rcscript=gitlab-9.3.5-sidekiq.init
use unicorn && rcscript=gitlab-9.3.5-unicorn.init
cp "${FILESDIR}/${rcscript}" "${T}" || die
sed -i \
-e "s|@USER@|${MY_USER}|g" \
-e "s|@GITLAB_BASE@|${dest}|g" \
-e "s|@LOGS_DIR@|${logs}|g" \
"${T}/${rcscript}" \
|| die "failed to filter ${rcscript}"
newinitd "${T}/${rcscript}" "${MY_NAME}"
fi
# fix permissions
fowners -R ${MY_USER}:${MY_USER} ${dest} ${temp} ${logs}
}
pkg_postinst() {
elog "If this is an update from a previous version, stop your GitLab"
elog "instance and issue the following command to perform all required"
elog "migrations:"
elog " emerge --config \"=${CATEGORY}/${PF}\""
elog "PLEASE NOTE: It's HIGHLY recommended to backup your database"
elog "before running the config phase. Run these commands (as root):"
elog
elog " cd /opt/gitlab"
elog " sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production"
elog
elog "If this was a fresh install, follow these steps:"
elog
elog "1. Configure your GitLab's settings in ${CONF_DIR}/gitlab.yml."
elog
elog "2. Configure your database settings in ${CONF_DIR}/database.yml"
elog " for \"production\" environment."
elog
elog "3. Then you should create a database for your GitLab instance, if you"
elog " haven't done so already."
elog
if use postgres; then
elog "If you have local PostgreSQL running, just copy&run:"
elog " su postgres"
elog " psql -c \"CREATE ROLE gitlab PASSWORD 'gitlab' \\"
elog " NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;\""
elog " createdb -E UTF-8 -O gitlab gitlabhq_production"
elog " Note: You should change your password to something more random..."
elog
fi
elog "4. Finally execute the following command to initialize the environment:"
elog " emerge --config \"=${CATEGORY}/${PF}\""
elog " Note: Do not forget to start Redis server first!"
elog
elog "If you're running GitLab behind an SSL proxy such as nginx or Apache and"
elog "you can't login after the upgrade, be sure to read the section about the"
elog "verification of the CSRF token in GitLab's trouble-shooting guide at"
elog "http://goo.gl/5XGRGv."
if use postgres; then
elog "Please note: As of GitLab 8.6, users of PostgreSQL need to enable the"
elog "`pg_trgm` extension by running the following command as a PostgreSQL"
elog "super user for *every* GitLab database:"
elog " CREATE EXTENSION IF NOT EXISTS pg_trgm;"
elog "For details, see the documentation at the GitLab website."
fi
if use mysql ; then
ewarn "You must grant the GitLab user permissions the following on the database:"
ewarn " mysql -u root -p -e \\"
ewarn " \"GRANT TRIGGER ON \`gitlab\`.* TO 'gitlab'@'localhost';\""
ewarn "PLEASE also read this document about needed migrations on MySQL:"
ewarn
ewarn "https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md"
ewarn
ewarn "Failing to follow those instructions may make the config phase fail!"
fi
}
pkg_config() {
einfo "Checking configuration files"
if [ ! -r "${CONF_DIR}/database.yml" ]; then
eerror "Copy ${CONF_DIR}/database.yml.* to"
eerror "${CONF_DIR}/database.yml and edit this file in order to configure your"
eerror "database settings for \"production\" environment."
die
fi
local email_from="$(ryaml ${CONF_DIR}/gitlab.yml production gitlab email_from)"
local git_home="$(egethome ${MY_USER})"
# configure Git global settings
if [ ! -e "${git_home}/.gitconfig" ]; then
einfo "Setting git user"
su -l ${MY_USER} -c "
git config --global user.email '${email_from}';
git config --global user.name 'GitLab'" \
|| die "failed to setup git name and email"
fi
su -l ${MY_USER} -c "git config --global repack.writeBitmaps true"
# determine whether this is an update or a fresh install. we do this by
# checking whether the ${DEST_DIR}/.git directory exists or not
#
if [ -d "${DEST_DIR}/.git" ]; then
local update=true
else
local update=false
fi
if use mysql ; then
ewarn "Please only proceed if you've read and understood the following page:"
ewarn "https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md"
if [ "${update}" = 'true' ]; then
ewarn "Failing to follow those instructions may cause the upgrade to fail"
fi
ewarn
ewarn "Press any key to continue, or abort with Ctrl+C"
read
fi
## Initialize app ##
local RAILS_ENV="production"
local RUBY=${RUBY:-/usr/bin/ruby}
local BUNDLE="${RUBY} /usr/bin/bundle"
if [ "${update}" = 'true' ]; then
einfo "Migrating database ..."
exec_rake db:migrate
einfo "Compiling GetText PO files ..."
exec_rake gettext:compile
# https://github.com/gitlabhq/gitlabhq/issues/5311#issuecomment-31656496
einfo "Migrating iids ..."
exec_rake migrate_iids
einfo "Installing npm modules ..."
exec_rake yarn:install
einfo "Cleaning old precompiled assets ..."
exec_rake gitlab:assets:clean
einfo "Cleaning cache ..."
exec_rake cache:clear
else
# create dummy git repo as workaround for
# https://github.com/bundler/bundler/issues/2039
einfo "Initializing dummy git repository to avoid false errors from bundler"
su -l ${MY_USER} -c "
cd ${DEST_DIR}
git init
git add README.md
git commit -m 'Dummy repository'" >/dev/null
einfo "Initializing database ..."
exec_rake gitlab:setup
einfo "Compiling GetText PO files ..."
exec_rake gettext:pack
exec_rake gettext:po_to_json
einfo "Installing npm modules ..."
exec_rake yarn:install
fi
einfo "Precompiling assests ..."
exec_rake gitlab:assets:compile
if [ "${update}" = 'true' ]; then
ewarn
ewarn "This configuration script runs only common migration tasks."
ewarn "Please read guides on"
ewarn " https://github.com/gitlabhq/gitlabhq/blob/master/doc/update/"
ewarn "for any additional migration tasks specific to your previous GitLab"
ewarn "version."
fi
elog
elog "If you want to make sure that the install/upgrade was successful, start"
elog "Gitlab now and then run these commands (as root):"
elog
elog " cd /opt/gitlab"
elog " sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production"
elog " sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production"
elog
if ! use systemd ; then
elog "You may also run"
elog " /etc/init.d/gitlab check"
elog " for convenience."
fi
}
ryaml() {
ruby -ryaml -e 'puts ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@"
}
exec_rake() {
local command="${BUNDLE} exec rake $@ RAILS_ENV=${RAILS_ENV} NODE_ENV=${RAILS_ENV}"
echo " ${command}"
su -l ${MY_USER} -c "
export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8; export NODE_PATH=${DEST_DIR}/node_modules
cd ${DEST_DIR}
${command}" \
|| die "failed to run rake $@"
}