diff --git a/dev-vcs/gitlab-shell/Manifest b/dev-vcs/gitlab-shell/Manifest index b0bc245..fd1fab8 100644 --- a/dev-vcs/gitlab-shell/Manifest +++ b/dev-vcs/gitlab-shell/Manifest @@ -1,4 +1,4 @@ AUX gitlab-shell-2.0.0-config-paths.patch 1356 SHA256 442a8e18b4d8e6092db0d39659cba5e41404e90f21070ed50b5460177f28f1b2 SHA512 0445cd42086b2d77825c487d604ddcb11f8fdf4eb8dcdfa1fe1b8e8c24d7b8f273834dbec0bfbb763a35a74605d558cc8d3feaa056eb02a113d18124a764551e WHIRLPOOL 0e3367b229ea4f13818fe2e485dc8da83ad695aec496881cb5eb918b183029b0013518ca64acba1568d93dc418dfaf083c2a86b9f2e3adf9fe15cad038011b30 DIST gitlab-shell-2.6.10.tar.gz 35574 SHA256 c83f1cc9371f90fd0c9907c5cc7e64ba77dff228bb3d427afda999f583ba59a5 SHA512 f03b0d4b1e4b6f3e934acd29ca4e7fb478e7891e31d7fa8e6dfb7cb0d4b1dadd14a88254262d2e71691e01742610a86de1039fd738bde0ba05d6d19fe17fbf10 WHIRLPOOL 6c787b5bdfc6fa0e3ce66a4915d3737fa8fc1f47c1be44c0cecdda802e1bee1cf11f0154d6bb63e799458368bc71553f316024895b2465016d699f597cdfb851 -EBUILD gitlab-shell-2.6.10.ebuild 3496 SHA256 942e2c5af4d03353b4d5b48a46bcf05c837cf1d0375434ff083ceee7e389ff61 SHA512 34600582b7e2defd8470a2a4f70213f598ac540f57ce9748cdaf16192f1e79a59eb950d1b15231d27b8c07649116364208fd12294e89453159a39f2e56048474 WHIRLPOOL a17a4881720eb0a7e68db927a93cb40d852250acb5b2f6daa4625e5338c6dce6707b90683885ead72769bc9a36d0e173178d3df8616ceab4eb32114955aa2300 +EBUILD gitlab-shell-2.6.10.ebuild 3516 SHA256 fbb3c7c08b5ebf3d4543701e9df739c22cc75c41932fa1dfbe3e691bcb97cd47 SHA512 8d40e7b6c83ee242dd21a176eb729e6d72fbc74c79ecad9c2e3f4df81022d9989044ee789364dece11eb4b2d07d3e60e5be8d8378dc0ad3751ed9cf78efa39f8 WHIRLPOOL d191fb8efe6ad3272e612032febed5104bc1fc12d075191ad4b7b6a36190e16ad4b09dcbb08a00cc0933890cd62d9d96facb2b9b5f2024d45f54587dc8e3ce0c MISC metadata.xml 234 SHA256 f35b97f99a26d73cc441e1d93bfe25aaa4e9f7f6d90c8d05a74f7b7bc5b68472 SHA512 59d8156b3ca3e99c40d5a2a32de7edf2eb53279b2424998862589d6bad77617d23fc852afec0a92f8ac5bb54a88ebc504cc0641029c1936412e90ab03dfdd447 WHIRLPOOL 935a1401910a42f888c991e443a49275ea8b87976c5aa977f670053d97d18754231749749bc92d37d4b5f45ecf65914480942a11b5827b6c08fb24313a428431 diff --git a/dev-vcs/gitlab-shell/gitlab-shell-2.6.10.ebuild b/dev-vcs/gitlab-shell/gitlab-shell-2.6.10.ebuild index 46f4828..f4997e8 100644 --- a/dev-vcs/gitlab-shell/gitlab-shell-2.6.10.ebuild +++ b/dev-vcs/gitlab-shell/gitlab-shell-2.6.10.ebuild @@ -14,12 +14,12 @@ SRC_URI="https://github.com/gitlabhq/gitlab-shell/archive/v${PV}.tar.gz -> ${P}. LICENSE="MIT" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="~amd64 ~x86 ~arm ~arm64" IUSE="" DEPEND="" RDEPEND=" - dev-vcs/git + >=dev-vcs/git-2.7.3 dev-db/redis virtual/ssh" ruby_add_bdepend " diff --git a/dev-vcs/gitlab-workhorse/Manifest b/dev-vcs/gitlab-workhorse/Manifest index b4d7823..5438799 100644 --- a/dev-vcs/gitlab-workhorse/Manifest +++ b/dev-vcs/gitlab-workhorse/Manifest @@ -4,6 +4,6 @@ AUX gitlab-workhorse.conf 248 SHA256 6d11d63aa869cfd8c6f77c3a875984c226db633be89 AUX gitlab-workhorse.init 653 SHA256 f38c37ed818cb8c25fb800bfcb5448f659e876b78ea33ea7a1ba3c80e73ea95e SHA512 2667997def39e6dc17e6a1d9be06d6e855d5d3e956e64d93bb3e74bbad0a1d427dc034f9c139f3b05e2666abab014404b2c8013c5347f4ec25fbf5ef86e7e88e WHIRLPOOL 63cd7ff80d88676b44c2d6ccdadf74907d5f8e4268f03ee11775c423bf95955f9d3aaeedd79fa6e0486b2d225336eb2ffa165dd7b9ac87ed0c2d403dc7e5afb4 DIST gitlab-workhorse-0.6.2.tar.bz2 25745 SHA256 ecaea12915758a226aa0877ca57bff2c1c32009bc5aa95735fac1dfac1e2d217 SHA512 05ed31336588a7158e4c27dbea22cddeadcb84296ef8809d5824ded2f9cf5a13631997f13843a2da3bed1b9184e92c23f71d4e0382dcc45a8d209d43783b6905 WHIRLPOOL dc9ba82ca9515f569919674b8214f553d66cc08ce45674676646b9d527c7d37f9d72eb01e76c195b1981b3d2b6af378ed77fde8853e953457a2e31c0e0bf4f8e DIST gitlab-workhorse-0.6.5.tar.bz2 26694 SHA256 89deb66ea0a0e4ce80d933ef18778eb28a37bc7f427188313db8f50cf5c78172 SHA512 ac7475f7557dce4807bdc74f0d5c873d0bc602ded7df8a88a3a453ef4814ba493b539faddec13e771dabade8919079597c7147f13c3d6b9a3606b52a7b3536ae WHIRLPOOL d059a346f594bb623ec5bd7aa90660326ac2c36d07536ef43939a38d2d19afb0126e10bced5486a44ac652ace4de95880e84963ab45f0603d8049c106664395e -EBUILD gitlab-workhorse-0.6.2.ebuild 866 SHA256 92cde2ed28248dbb4f9ebfeed5bc79999fbbb06a64b979c77d7c27896a4f9c85 SHA512 f4e140aeb09c423fae606e50f596991bdf61b1e1ef6c2e966d0dba00a0331c72c075899e1fcb44f28037f4523d54fbf56775cc4c7d59e55de9e0a7e6a5332768 WHIRLPOOL 9c5ba94be5144a6ea5d78536e3d62faa92772c61ea21c3ec6d25db499982651813c9926be7b8fc1ae52d4428e5ced901f69ced3801f902188aeea4d12ea9b4c6 -EBUILD gitlab-workhorse-0.6.5.ebuild 866 SHA256 eab67140a2cada7e4807126bd2fe081750434fae6c1351842d747f5b11c108dc SHA512 953be4d044d3bbfa0f170e420b5efcb47e247b415fc47f46c4b898a2fbb109564b3e92a7ec166726660a1ac1c325bbf77ca66135a568b91ef664841bb9e6449b WHIRLPOOL 71e0aed5e55f26e3d0fa58390b8ff7639d659c3e78bb20735a408bc89a4a6e9b91ce3213cc19bb5075f10c8d8b83c273a445c53049f9b5c70a7f82fd5e991350 +EBUILD gitlab-workhorse-0.6.2.ebuild 878 SHA256 2679a2d1668870881431e9e9ce4b121cb6887fd927fa6cf357d0453c841db7bf SHA512 f63f75c50dda6cae8a2dd81f848bce18e64115ed6ce16f6800de99079606672c5820aa3133f042c96632b451c58968c52968075ccf385a54931b7f98bb64d50b WHIRLPOOL 22a03c06c084227c5167f5f466c071813597ec72c9e1246ddc2e991c9e18cf12546925ef9068525cefcdfec2a807e69031ee0f405f6d57ad847b3e4e61d778b6 +EBUILD gitlab-workhorse-0.6.5.ebuild 878 SHA256 2fc488ef3b608ffca8c1f78dec86ecfdb4da47dfec806d8b8be6d093759d8e98 SHA512 8274571754abae349a7f8f9761559d00981e9445f074e296b7989ee593def4347ffe9b2e0c866703033cd794a1c24bfeb02f6ec80c262d0f25dbca21dd3786ff WHIRLPOOL b25e5430f51a8b1467188736e054e47429ea63ac7851819b65de94a47f66312979958cb2e540c990d640ef767a8a1bb7e5f5f4478ae3638eb7bb4e1c67fc5f13 MISC metadata.xml 234 SHA256 f35b97f99a26d73cc441e1d93bfe25aaa4e9f7f6d90c8d05a74f7b7bc5b68472 SHA512 59d8156b3ca3e99c40d5a2a32de7edf2eb53279b2424998862589d6bad77617d23fc852afec0a92f8ac5bb54a88ebc504cc0641029c1936412e90ab03dfdd447 WHIRLPOOL 935a1401910a42f888c991e443a49275ea8b87976c5aa977f670053d97d18754231749749bc92d37d4b5f45ecf65914480942a11b5827b6c08fb24313a428431 diff --git a/dev-vcs/gitlab-workhorse/gitlab-workhorse-0.6.2.ebuild b/dev-vcs/gitlab-workhorse/gitlab-workhorse-0.6.2.ebuild index a8ef063..6724953 100644 --- a/dev-vcs/gitlab-workhorse/gitlab-workhorse-0.6.2.ebuild +++ b/dev-vcs/gitlab-workhorse/gitlab-workhorse-0.6.2.ebuild @@ -14,7 +14,7 @@ RESTRICT="mirror" LICENSE="MIT" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="~amd64 ~x86 ~arm ~arm64" DEPEND=">=dev-lang/go-1.5.1 !dev-vcs/gitlab-git-http-server" diff --git a/dev-vcs/gitlab-workhorse/gitlab-workhorse-0.6.5.ebuild b/dev-vcs/gitlab-workhorse/gitlab-workhorse-0.6.5.ebuild index 6ab511c..4177288 100644 --- a/dev-vcs/gitlab-workhorse/gitlab-workhorse-0.6.5.ebuild +++ b/dev-vcs/gitlab-workhorse/gitlab-workhorse-0.6.5.ebuild @@ -14,7 +14,7 @@ RESTRICT="mirror" LICENSE="MIT" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="~amd64 ~x86 ~arm ~arm64" DEPEND=">=dev-lang/go-1.5.1 !dev-vcs/gitlab-git-http-server" diff --git a/www-apps/gitlab-ce/Manifest b/www-apps/gitlab-ce/Manifest index ffc2e10..08942b6 100644 --- a/www-apps/gitlab-ce/Manifest +++ b/www-apps/gitlab-ce/Manifest @@ -9,8 +9,10 @@ AUX gitlab.conf 27 SHA256 cd9be088bbb67a5400407fc6f63c061eb224f16748b7d0812ff2c1 DIST gitlab-ce-8.4.3.tar.gz 12187867 SHA256 bc11494885c6ad41f2b6a057d7fbec2fd4df10908f591c84c210f4881aa3c23d SHA512 84018eca604ba1639e19cc45b6ef21ad298cf60a66724bc247bf7a7c94ff1131010317d851855f5676687e8c8148602ad199e35f1029ebab24ccbbafd7b866e1 WHIRLPOOL 418afc8ddb262aa7af22bd79cb9febf1a15625f753208fe4f47cbbc3d79df0566e506febe2917bd2176508312d4a5da7245e36233ec2e50c024b811c1d306b00 DIST gitlab-ce-8.4.4.tar.gz 12186833 SHA256 f8c403d4cecd82aa2021ed5a6d5d7b4ac8526c7ee7a9bb1c7391f8653bf5a01c SHA512 fe8bd002ea164b384e25303e06ab6a6a97c89180a1898bc8a6d6bb07fcfda6be03a057ad7f92e4c192e0c10aa686b897fe18e864b36c314dcd7fee62dd6758bb WHIRLPOOL 8c79ba70f9b56408f70a4b48554114bcad5a4ac2806dfd8fe63ad060b9887bb6cf3d4f5c2d6e7db20aa65a83e2c33879fd32b9cce7277cd6fdd65acbdb399f40 DIST gitlab-ce-8.5.5.tar.gz 15179973 SHA256 859ec6142095d459b1587616df6c83063e87a8c7417ab8606100588525d03e2d SHA512 48f69092a68e2b6a748c35f5cea151f08856a7d19ab58a7f0a90d5b37c5276edf640ba42501aa6aec38008463fce21763b6ee650ad2e6e2b89e815d7f3f07b0a WHIRLPOOL 8db633ed71cb514df6fdb4515a74a4732efe5013d36ea140a3195aac82ec069863eb09e6d241f9416d6fe93fdec8c68e894cbeec3e0b6eba24c24c6d3b23849d -EBUILD gitlab-ce-8.4.3.ebuild 11150 SHA256 3bfedaf3d1c08f78b5b05c2a8730ec0f06b9192dd50056e938dd92fda49e7712 SHA512 24e8fec20389714207bba4170b7eeb403f5cee90ec1b063c2b36eb116f37c2878d9cc48c24467d88db872dc5709b4d6b29e28aa2f60f10779a756b452161acf2 WHIRLPOOL f86654172a28cd40436ee30ac0192445bec405f39c65295f53e9c8d73aeac8e03190321da7b1cdc2966d4ab757ca7ff6f472372bd7ed8ea6b6836ce26efe5ef9 -EBUILD gitlab-ce-8.4.4.ebuild 11150 SHA256 3bfedaf3d1c08f78b5b05c2a8730ec0f06b9192dd50056e938dd92fda49e7712 SHA512 24e8fec20389714207bba4170b7eeb403f5cee90ec1b063c2b36eb116f37c2878d9cc48c24467d88db872dc5709b4d6b29e28aa2f60f10779a756b452161acf2 WHIRLPOOL f86654172a28cd40436ee30ac0192445bec405f39c65295f53e9c8d73aeac8e03190321da7b1cdc2966d4ab757ca7ff6f472372bd7ed8ea6b6836ce26efe5ef9 -EBUILD gitlab-ce-8.5.5.ebuild 11718 SHA256 cb2a956f2a8fe5fbd47c13958a54ffcc97a3cecb98ee897cb056c8cda1e766a7 SHA512 93933f55e96d34a30fb9de2861e614fbcdef02a858ce440af03d5ecaf1a7d52cf393f71dd107f5d76e1096bdefbd72006451988cfb2090043bc1738824e47814 WHIRLPOOL 697767aa4d02fd130f0ddf65e4fc8082dfa6d89ae6eb652b37051bb7ff3310eb0eace7f4d9b687393f5cc3e628335b2f02deb57e1d280e71f036024c096a38e4 -EBUILD gitlab-ce-9999.ebuild 11734 SHA256 353e3f8f93d49d08af49538ba1bad91c7920b8cab3ff87d9ab3b027909a9af77 SHA512 95adc839b45d2aa4bf27e961cd851fc25e59502a0b77973dabb84446fe463e706d6a9bc1f4053ef5a571d9efbecaeca87b8eac2b9dc9ba6979035a924b29e0a4 WHIRLPOOL e0d13e1dbeb61066e01a9e95b4760f3a2b429a723323aec3d4275a738fbd3718f1cf922942d0411534829888c28f0d9ac1f01be285c7474584497f2d15f0973c +DIST gitlab-ce-8.5.8.tar.gz 15180480 SHA256 dd531c7b62a6b3b2377ec79f0735f83cdb379868f4ae24befd10f13797a80c7e SHA512 8a44c8c1dd13a8ba8452cdaef68978a2557f7c47cbeab37fb67c3616ec041b50bf2b02ece8e4c66222b4f705b59ad80c9ee46284f03d6adffc193d3eb9e74d38 WHIRLPOOL 710d11dd0c309a29e241989be310c82786b89b66f73e0e8d9431c6b3bbe161f725fad209c8cfd3f5cbcff91920c94ec857fb54b2ce4fc46c3ffe337935232e14 +EBUILD gitlab-ce-8.4.3.ebuild 11174 SHA256 72f058ff6a661e3c1583fdc3a06a2a49a7e709c4de11ef61b823581dae87e201 SHA512 fb59d59b12a7cb441ccefc70cad6def16d572d770c19ba0e56ffb4571b60d4f2b4bea55cbeac09db2a831182ec3115e0f4caccea9f944967346ce88133c3c41b WHIRLPOOL 98af75a9a08d78dce5874d9cf1e44c2b62aeb62665f87f340b9b8c1e99969152c726126e9d8439a7f9b16597bebfc7f1fbbbe48fdfc274626cae05fb2e89c1ef +EBUILD gitlab-ce-8.4.4.ebuild 11174 SHA256 72f058ff6a661e3c1583fdc3a06a2a49a7e709c4de11ef61b823581dae87e201 SHA512 fb59d59b12a7cb441ccefc70cad6def16d572d770c19ba0e56ffb4571b60d4f2b4bea55cbeac09db2a831182ec3115e0f4caccea9f944967346ce88133c3c41b WHIRLPOOL 98af75a9a08d78dce5874d9cf1e44c2b62aeb62665f87f340b9b8c1e99969152c726126e9d8439a7f9b16597bebfc7f1fbbbe48fdfc274626cae05fb2e89c1ef +EBUILD gitlab-ce-8.5.5.ebuild 11742 SHA256 63f200a537aea055d57e13e060ede527ec235a1d4f2657726c4b5185e34cd647 SHA512 521dc87af583fe4b63b927bbd0370ab7eec5a5417a42d7ff3cdb11cab4df1ba0709c1a8e35ef552a4fe2deb2a84ff51678e0125cca18a26523479b65accc6343 WHIRLPOOL 3951757ca73a3f7486ab46083d3795ccdee1456a16eb1a1c7f48f79b738b176798aa788b72711f6130de15df3d412e48e224d770cb5700fc32de025ea872b84b +EBUILD gitlab-ce-8.5.8.ebuild 11742 SHA256 63f200a537aea055d57e13e060ede527ec235a1d4f2657726c4b5185e34cd647 SHA512 521dc87af583fe4b63b927bbd0370ab7eec5a5417a42d7ff3cdb11cab4df1ba0709c1a8e35ef552a4fe2deb2a84ff51678e0125cca18a26523479b65accc6343 WHIRLPOOL 3951757ca73a3f7486ab46083d3795ccdee1456a16eb1a1c7f48f79b738b176798aa788b72711f6130de15df3d412e48e224d770cb5700fc32de025ea872b84b +EBUILD gitlab-ce-9999.ebuild 11746 SHA256 4f70e71b803413e52508b6e4fdd009168eaec78491beae71390e97d43a918996 SHA512 a304b883c8a3500096b65b185bf5450059a535dbc5d991d415fae775bba4c3619503022b5d84c765895b010b64d0187dc6181a23c00755b5011c385c44771be0 WHIRLPOOL 575da8c67cd982ce50b5340c9435a4e4ccbca038e70890ad84d1834145bfb94a979f03c2ce9c83968bc74e7fbf9d0431c534dd717a54a6775d8d9a41c4aba5b1 MISC metadata.xml 545 SHA256 1b7fc44d811e1ab7638fe4a40253f49d5f1071872d3020c22c4f67662750cb2f SHA512 86f47d297892bccfefa087d93936296f5647993a9ec8e3f47907a6859cbf385e5bc6f00502d7836c9e8d9efef2b6725bf145b0150924c2082b2bd164469ef6ea WHIRLPOOL 6bfb8a55684d68c8bfa6e025a0be965f7b815394ee0896dd2a13cfb524e3cf3f3149acc9072897e30a1842060389576aac07ea8beb4a8b0bfc3e8eab3723f2a1 diff --git a/www-apps/gitlab-ce/gitlab-ce-8.5.8.ebuild b/www-apps/gitlab-ce/gitlab-ce-8.5.8.ebuild new file mode 100644 index 0000000..9779c31 --- /dev/null +++ b/www-apps/gitlab-ce/gitlab-ce-8.5.8.ebuild @@ -0,0 +1,382 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +# 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="ruby21" + +inherit eutils ruby-ng user systemd + +MY_PKGNAME="gitlabhq" + +DESCRIPTION="GitLab is a free project and repository management application" +HOMEPAGE="https://about.gitlab.com/" +SRC_URI="https://github.com/${MY_PKGNAME}/${MY_PKGNAME}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +RUBY_S="${MY_PKGNAME}-${PV}" + +RESTRICT="mirror" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~arm ~arm64" +IUSE="kerberos mysql +postgres +unicorn systemd 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-util/ragel + net-libs/nodejs + postgres? ( >=dev-db/postgresql-9.1:* ) + mysql? ( virtual/mysql ) + kerberos? ( virtual/krb5 )" +CDEPEND=" + dev-util/cmake + virtual/pkgconfig" +DEPEND="${GEMS_DEPEND} + ${CDEPEND} + >=dev-vcs/gitlab-shell-2.6.10 + dev-vcs/git + >=dev-vcs/gitlab-workhorse-0.6.5 + kerberos? ( !app-crypt/heimdal ) + rugged_use_system_libraries? ( net-libs/http-parser dev-libs/libgit2:0/24 )" +RDEPEND="${DEPEND} + >=dev-db/redis-2.8 + virtual/mta + systemd? ( sys-apps/systemd:0= )" +ruby_add_bdepend " + virtual/rubygems + >=dev-ruby/bundler-1.0" + +# +# fix-sendmail-config: +# Fix default settings to work with ssmtp that doesn't know '-t' argument. +# +RUBY_PATCHES=( + "${PN}-fix-sendmail-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}" + +# When updating ebuild to newer version, check list of the queues in +# https://gitlab.com/gitlab-org/gitlab-ce/blob/v${PV}/bin/background_jobs +SIDEKIQ_QUEUES="post_receive,mailers,archive_repo,system_hook,project_web_hook,gitlab_shell,incoming_email,runner,common,default" + +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 + 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/|" \ + config/gitlab.yml.example || die "failed to filter gitlab.yml.example" + + local run_path=/run/${MY_NAME} + sed -i -E \ + -e "s|/home/git/gitlab/tmp/(pids\|sockets)|${run_path}|" \ + -e "s|/home/git/gitlab/log|${LOGS_DIR}|" \ + -e "s|/home/git/gitlab|${DEST_DIR}|" \ + config/unicorn.rb.example || die "failed to filter unicorn.rb.example" + + sed -i \ + -e "s|/home/git/gitlab/tmp/sockets|${run_path}|" \ + 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}"/ + + # 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" + + # clean gems cache + rm -Rf vendor/bundle/ruby/*/cache + rm -Rf vendor/bundle/ruby/*/bundler/gems/charlock_holmes-dde194609b35/.git + + # fix permissions + fowners -R ${MY_USER}:${MY_USER} ${dest} ${temp} ${logs} + + ## RC script ## + + if use systemd ; then + ewarn "Beware: systemd support has not been tested, use at your own risk!" + systemd_dounit "${FILESDIR}/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-sidekiq.init + use unicorn && rcscript=gitlab-unicorn.init + + cp "${FILESDIR}/${rcscript}" "${T}" || die + sed -i \ + -e "s|@USER@|${MY_USER}|" \ + -e "s|@GITLAB_BASE@|${dest}|" \ + -e "s|@LOGS_DIR@|${logs}|" \ + -e "s|@QUEUES@|${SIDEKIQ_QUEUES}|" \ + "${T}/${rcscript}" \ + || die "failed to filter ${rcscript}" + + newinitd "${T}/${rcscript}" "${MY_NAME}" + fi +} + +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." +} + +pkg_config() { + local shell_conf='/etc/gitlab-shell.yml' + + 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 + + # check gitlab-shell configuration + if [ -r ${shell_conf} ]; then + local shell_repos_path="$(ryaml ${shell_conf} repos_path)" + local gitlab_repos_path="$(ryaml ${CONF_DIR}/gitlab.yml \ + production gitlab_shell repos_path)" + + if [ ! "${shell_repos_path}" -ef "${gitlab_repos_path}" ]; then + eerror "repos_path in ${CONF_DIR}/gitlab.yml and ${shell_conf}" + eerror "must points to the same location! Fix the repos_path location and" + eerror "run this again."; die + fi + else + ewarn "GitLab Shell checks skipped, could not find config file at" + ewarn "${shell_conf}. Make sure that you have gitlab-shell properly" + ewarn "installed and that repos_path is the same as in GitLab." + 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 + + if [ ! -d "${DEST_DIR}/.git" ]; then + # 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 + fi + + ## Initialize app ## + + local RAILS_ENV="production" + local RUBY=${RUBY:-/usr/bin/ruby} + local BUNDLE="${RUBY} /usr/bin/bundle" + + local dbname="$(ryaml ${CONF_DIR}/database.yml production database)" + + if [ -f "${DEST_DIR}/.secret" ]; then + local update=true + + einfo "Migrating database ..." + exec_rake db:migrate + + # https://github.com/gitlabhq/gitlabhq/issues/5311#issuecomment-31656496 + einfo "Migrating iids ..." + exec_rake migrate_iids + + einfo "Cleaning old precompiled assets ..." + exec_rake assets:clean + + einfo "Cleaning cache ..." + exec_rake cache:clear + else + local update=false + + einfo "Initializing database ..." + exec_rake gitlab:setup + fi + + einfo "Precompiling assests ..." + exec_rake assets:precompile + + 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 +} + +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}" + + echo " ${command}" + su -l ${MY_USER} -c " + export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8 + cd ${DEST_DIR} + ${command}" \ + || die "failed to run rake $@" +}