www-apps/gitlab-ce:
Purge all versions depending on <libgit2:0/26 Package-Manager: Portage-2.3.19, Repoman-2.3.6
This commit is contained in:
		
							parent
							
								
									51843ac93d
								
							
						
					
					
						commit
						2ec309249f
					
				
					 16 changed files with 13 additions and 3868 deletions
				
			
		|  | @ -1,3 +1,14 @@ | |||
|   08 Mar 2018; Manuel Friedli <manuel@fritteli.ch> | ||||
|   -files/03-gitlab-ce-8.17.0-database.yml.patch, | ||||
|   -files/03-gitlab-ce-9.2.2-database.yml.patch, | ||||
|   -files/04-gitlab-ce-8.12.7-fix-check-task.patch, | ||||
|   -files/gitlab-8.13.3-sidekiq.init, -files/gitlab-8.13.3-unicorn.init, | ||||
|   -gitlab-ce-10.0.0_rc3.ebuild, -gitlab-ce-10.0.4.ebuild, | ||||
|   -gitlab-ce-9.0.13.ebuild, -gitlab-ce-9.1.10.ebuild, -gitlab-ce-9.2.10.ebuild, | ||||
|   -gitlab-ce-9.3.11.ebuild, -gitlab-ce-9.4.7.ebuild, -gitlab-ce-9999.ebuild, | ||||
|   metadata.xml: | ||||
|   www-apps/gitlab-ce:  Purge all versions depending on <libgit2:0/26 | ||||
| 
 | ||||
| *gitlab-ce-10.3.7 (17 Feb 2018) | ||||
| 
 | ||||
|   17 Feb 2018; Manuel Friedli <manuel@fritteli.ch> +gitlab-ce-10.3.7.ebuild: | ||||
|  |  | |||
|  | @ -1,47 +1,27 @@ | |||
| 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 | ||||
| AUX 04-gitlab-ce-8.12.7-fix-check-task.patch 917 SHA256 e1adffbd59a418d5e14cbd51ae14d5c1f0364af759c77b6cb485079e0233e90f SHA512 226c3892768dc526dbc9f109aaecdee1eb27c0acb5060ba6db8222410c500336ebcf7184437228480da04ce5de149a14bbb5c1471aed853a280d7f371f271d88 WHIRLPOOL 3ec22dc4d12b5025bddfccdea27a816aca1f818d5138b3dc9a6362e56ec4cd14e5c38c76b64b468f3797e0d2718d38aad4f910abf3f3328a7983832babb7f231 | ||||
| AUX 04-gitlab-ce-9.3.0-fix-check-task.patch 1090 SHA256 51ade91e5e7ef67e6d3c0e6e1f708156755ad44d42dbc3ccdd4356b259e46846 SHA512 2eacb47df7f9782172ae4f71d8e5fb07f2a830da7733e2ec84b95259a9ee5d454f9c68f93b40251050cedd502761800ec56fe7f502309364e61e9e4431e2b112 WHIRLPOOL 0f7b6a7281eb8dd736b6f329e8511b9145a48450361264465f37aa852bf9d0e4ed265c0292272e75000216ddbd4c285b496aef86a4cfd2944f6819b7a3cc3982 | ||||
| AUX 05-gitlab-ce-9.0.0-replace-sys-filesystem.patch 2436 SHA256 53fcd9fc123a0fcb671a8cbcb3b2dc61765e32be6836206ae0edea8cf0ae8203 SHA512 21636f298df7e762f59595f39fb50266f8737311f37aa2b9ba96bc29190b8a67eea01b09e3b589d0885da6b27beaa136fa66c7d98408a8e3ecb3ac6baf20d891 WHIRLPOOL e0c709dfc5f72e33207fd7d62a7db5a85c0ed4b6064d5d6a13bcce7d660d9ba144fe09d0985c16c313f06a4e02911729be132086735eac47ddff981874f31acc | ||||
| AUX 06-gitlab-ce-8.17.0-fix-webpack-config.patch 614 SHA256 0c1cdc25032322eff6c279435ba5f3fc349b30de0d55d86fad2616bd2bb7fef4 SHA512 f5ccb4d1849ab395ba4ec3c80735a1fedd9fa7f790c8b114d8dc8d1fc2c431d7b9e5645247485f0b8c1061a00ed61c21a5e50f49af0d76e232182c68868a163f WHIRLPOOL 6968ddefed74607c36cc66dc133dbf4942979d2ae867f819cf2e7e5c9701fe8dd86b266d923e6343971e6904f0ad1f35200971660df139edabcc9e0790fc107c | ||||
| AUX 07-gitlab-ce-10.0.7-yarn.patch 36442 SHA256 b45cfd739ca94058987c55458c89dba4cdbb1b9b9fc2e486d02e67e275044855 SHA512 931edab62e1218f84f08db72cc2f4ff95e53c6f88d755224de5e9dd19c230bb4b4c808accebd14c7bb06e6c57e4f101f7b4fb1843abb9a908d7f9f2b901d4e5f WHIRLPOOL 0f0ba8a1dfb38355bedebb17a8d174fa33a695be9da364bfebf3ffc5629eff5f462a9b66af65ad0fcc3b35f93c67c4b15a93e1962ae32225dbed45c87b30c5b1 | ||||
| AUX gitlab-8.13.0-sidekiq.service 990 SHA256 183ccbdb19a3dcc74cf1f1f865bf396466e06f7408ff7d3e92359b2a0e83f24c SHA512 c356baf65337739b08a0a4bfe24d3b68f557e9d6d95f479b39ec954ee6c2077e380f99d1e9e9390f5b038e093c0a46562f651512a6578dfa86977580159470a2 WHIRLPOOL 81d9ea9febf47d5fdb9c49a54bbc499bd796fc56bc1c16404fe4c74d00c4bb9fa9631e4cd4cf88d3c30a44c04b74b35a61cd4da9f2139a4abf61e758b4e5949a | ||||
| AUX gitlab-8.13.3-sidekiq.init 1459 SHA256 fdf808f9c0a92d7a77ae8be27c8fc11cec571ec6b5b94e31639028eec19546f1 SHA512 ec2130483b603f2be423c288fd0d55615c831ce995a8a5509f0240f149b3464d8f0a75cade1c736d085fb5f898d109368af62d8fdfb280aa00c4df8c06abb1e9 WHIRLPOOL d3493ac268257386e22c677337c8f9b1050212fce4aa855119b2ccd5f56850a5288d0cdd74e3c2f34552f59f9431c9ab5080e372766b88de003cad5dab015100 | ||||
| AUX gitlab-8.13.3-unicorn.init 3562 SHA256 f4ae5b785d61fb2c463b2405533d5e9a2209bbff7a085106b463f59505123287 SHA512 4af87415da7e482725a6f97f5e2ffafe0d16784cdcf3f877c99b5f646832c14dd1b3e875ec00e57560060bf3c049dd7fd0aeb7452db1100740e6b17dc29fdfb6 WHIRLPOOL a63d236a76bcbbd6e39268c76a7fbb75f4b9e5488d0cbc0bb2973ae09753f11d1863e477fe88f6c652370c19c3a0f037f99cc681b91679eb4da992db5e2eff20 | ||||
| AUX gitlab-9.3.5-sidekiq.init 1464 SHA256 dc1d9a58845a699d5b797f476597e7d7a7171eb842b05639cd2e235c70a26edf SHA512 fe00243c815b0e4f826aada4f02c70659872673a36fe92ea1b72a94a21bacfb097260ac1623cc1fc9c74566fe5c6068a456c9dc6e1e1c02f42e86fd162573713 WHIRLPOOL 6d8618e1e0a14030c73840f58d6dd5f7ef221f448799c92978c42d6bd71bfd072f15508df931f408ede91158079cef7039e9e725cb217629a8b7e19f6c706978 | ||||
| AUX gitlab-9.3.5-unicorn.init 3748 SHA256 2fb8d62e52b2e59bed92de55834421b3858ca385c20ed7532f78a3c4cd6ba2c9 SHA512 6f7a6cded598f3f8174a4d39f06f1994aa77b22cb90fa7f1bb6f82919c9856c3eae1623f57636f2ee564b2bf6c660c82dd104e3c59455946db42e6cf44079ccb WHIRLPOOL f39d37b2f83046234616d056d046c844e24ccf434c96bc298acd0f53fcf0be57fc64352bfd66e45083f87e6be0ed817c89630309deee5f142c9343a46014a166 | ||||
| AUX gitlab-mailroom.service 773 SHA256 39cea460db7fc505b136a2106902d0515890180e74913bf364aa499368fc5f2e SHA512 f82c63a180add1103e2bd115e67826ad7362a844991ef16f1de7fc6c78bf1955155ecf278fc0d759e674ab85736f3ba2a6650d00e9b3ce683316875efd9efa3c WHIRLPOOL 683c67b12f9666d1c1df5ec61e0072acaecd3aff43d0ff475037e178bc58fd9036ae6d8cd45e922098c842abd057231afd4767ce229d4581356f153b48a06208 | ||||
| AUX gitlab-unicorn.service 773 SHA256 010c9e223a30400d9155b39499eb0d7efad23b66baab9fcd9e365c689086b9bd SHA512 0bf9630aa91ed8f590a7bfa42d09b7ba33f6342b43b3d191c792c11157f8926c2a2ac2390eebd8179637e29b5bf68233d4699d62463497a0fd45b9bdbdd9167b WHIRLPOOL fbc709a5550dcc548a35c22c812dafe52ee507f5678b57c22c709ee89a399ae9109e2f56b7a13135d4140f1e024ebc4effe4aa4de13e0f36691da2a0737d9792 | ||||
| AUX gitlab-workhorse.service 930 SHA256 09348a52fec333b4b19828752e0484400c1efa9dfb644723fcf8e80537e294b6 SHA512 6332024fe0049287899cf482b6e4439e9dd90da14e489d08aa8e5e79cb7872efcc517d99b69fa23b011b382acb1e5926496a78f08af5d2d64daa515b869a0c6a WHIRLPOOL 3749c6719b2a35c7de29763cd616e1e9cc30a85aa1630ffc46440334459b5922503d52629556c125a6dd6574bdc5f23f1b2a7f2a85e2270a415b22246e0b6bae | ||||
| AUX gitlab.conf 27 SHA256 cd9be088bbb67a5400407fc6f63c061eb224f16748b7d0812ff2c101f43ca263 SHA512 909c49fee6d050c1e94b2559ff2a9d54c5c346492be0e2920b50d56d69eaddbed67e3ac12e012d2a9601b5596640ebf33c8dc68fc588a03ca370d963294be37f WHIRLPOOL fa436e8d7d2643d450259d26b6e7b24dae69df47ed22e5ef2a567f37aa785fbf3b0eb1129ae7c8bf8986c29559fc3b744a34064375e5245dce2b10053cd715d9 | ||||
| DIST gitlab-ce-10.0.0_rc3.tar.gz 39936453 SHA256 347840d9beb01f765c4962616e241924b48ec0e3c09b35ff96563d1b509d4375 SHA512 855324e0c351ff1db3bc8823f85768d6968628da1452edc68f63249467eede89ba371e3d2de94a5fca3f31462c3d13dc2a8b3cd467f0647896183ead27492c81 WHIRLPOOL b7e98abb055cb6e884505dd2d49e93031f6722c0fb7cc34470903248de6f8871456deee2e41cf4da27b42dd7b4996111ecac02d568aa44286670edfd07d5cd7a | ||||
| 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-10.3.7.tar.gz 42852145 SHA256 383485d773ef506c7d8b0d2a6b4f59ba53bd638639c6ebec0282808b0f4e3701 SHA512 f4488e5a02067ebfbc9dcc0d1e0b06eeb047ea793c5e5c286e54c2fcee56d88f0a4b4dcbae66319a63960e7737ff134ab615764524fb7bb5bf017b0d035a55e0 WHIRLPOOL 051981082d07726abc0c98b2070e26aa2770bb2ce38e37d4711c69745cf704f7c3ecec577bee840f331bae456c5d6c0e43a4e7527bb845541c43ec4b40874d28 | ||||
| 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 | ||||
| DIST gitlab-ce-9.3.11.tar.gz 31768655 SHA256 0eaeb3a9daf3f1ea56ad7435b2d7fe3e15e92508fb497fa22031e028633bd84b SHA512 716bf467338eebb495397e8b244201ba1547d96bce91f6dd3d0ecf8f1cd94934e7b96d6bd469a387504fb319d00e2fdc8317ad298f2e0a7de30d10c165524ba8 WHIRLPOOL c1ca1b1845f35a54759fbd70d1a13edeb4b77322063cb19862bb3870c57b4fbc1ced29c5873b3521c5b50b7425e4a0ee5a917fe3d3f06c0de3557c801b1cfd29 | ||||
| DIST gitlab-ce-9.4.7.tar.gz 32854784 SHA256 c6b0db5ced47a92c211ccb9889a21cf5c698c3222f356191b583dd1667b1cba0 SHA512 51c5c12e8a12db9241d6e108eaff724a630b496a284bad44cfd5209d54d80c0f3f64b8e896f3fcf7d9c3d4bb75cb2b5138607726ed5f4703fa6f5669d3f5a1c5 WHIRLPOOL f050712a3e3e9c4318b34e4efe2f9c16cf4952c119cdabeb558d4811723165b4b918e52da4f5752acb564246d66165f46f61f1494bd99d182adf5abb3b01a65e | ||||
| DIST gitlab-ce-9.5.10.tar.gz 36463237 SHA256 f3adc7d7b31e3d41f6ca9fd47e1285064f148bdd53811970eb8563cdb17af893 SHA512 c1d2de2fbe7ebde26f2b56de2b7d48a4179c4ecb7e1676bffbcbab46cd59a96a46f7d6bb2ccd9af35ffd8d7934a63e72a4a725a5fea36884007ec60e82f47e0e WHIRLPOOL 332ae6f49bf24bc58a5aa55e393aef6d6b892f1d8961ba0ff85f4031cd13b61275679ca259ba14f1efd676dc3320f10e433775df99dc1b40514252b2689095ef | ||||
| EBUILD gitlab-ce-10.0.0_rc3.ebuild 13508 SHA256 bb22763056e0686ff308db2bc14e55ed74c4af247eab55f4ba4502ac0fa3f210 SHA512 99f298076aff75183d68b9969e99bba1898501554aa08448539c154b021040d3af7b6f2bac3704511b3b83af7c39d7e42530142a6c5061078ea82fb93aafcbae WHIRLPOOL 129b9b2a0e4d512947c2be0b3143ece02d870f790f9425d5408191aef53e0631bb001390b2438a2f0d4a38b38a679af0909a9df1f9c9a4e3d7448f32110cb997 | ||||
| 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-10.3.7.ebuild 14085 SHA256 cbff8442516b815e386974191d48464202b3b4f93e5d4688a71de08fadaeb89c SHA512 311e256f675c6cbb8e374448858e0adcfecd6a5432c4384a5d9c302a3c82dcab0aab0eb9a79d90f8f770dba0d1d984f0b7e3d53ce1e3b2c4c915aaa2facdbdd7 WHIRLPOOL 29674dc1a54311518047df70ecd21971b642bc7b8511d8c6ba3f754b7beae3de10c289704dcd214c7c5cf76f60772117c2649daac4d691b13387d758d2fb3f36 | ||||
| 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 | ||||
| EBUILD gitlab-ce-9.3.11.ebuild 13699 SHA256 e56490b1f59cf32e84d65ba3c91231c07a415734fe474dc49c875bc7553f9721 SHA512 f3574a0725b541698b18857e6ec30af55e49063748da74325822394a48276ddf254379a4bb0e06b2241b3eb049e9738d6a352fb56cf4b44f412c438b00295066 WHIRLPOOL e51f57b14a01d2d815784e2b07a6f8161f9e6f1d77a9cb96d23d0afa20b464ff69f6241e63243797f544d329c0d384dda036573af73f1aee2e1f2e8ae26c0685 | ||||
| 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 26064 SHA256 8820edb5b622f84bedd3dc859312642a9efc672eda16f3d6517424a0af71e118 SHA512 269983d651bf8c7e1e67d9a32d29da88b7f01754b58380e18dabded57374a49b4be4651659026373d14b51d8d3d3ea2441aeab5e274dc236eb0a02d584e0e72f WHIRLPOOL 22267d14138614165b9c5cb4407cb46ed7be44ffaa2f5346b6dbffe9b684fe7b733191d344771d89c2fd059ec58ecfe9724d616bdad366a6b616fde929ae0580 | ||||
| MISC metadata.xml 801 SHA256 3dc7486a12903f47f65968d524c93500ba30a4a09fa57e5a9dacf356509b44bb SHA512 e132754b72e64246531fa883400a0cf1a473ac5a6a49623db58ccf118a038b7cf37df03d9550f37b4a25f9ddbb1dcc5652ec9a4f2259d8e3ce202692c4025f41 WHIRLPOOL e9d961681fd790008eaf80fa07ce2c55a00a58f2e920d759793783ca8c8f508602a777e94c0cb65fe87c7dbef0cabdf26e4f4082584421097d939cbab20c4ac6 | ||||
| MISC ChangeLog 26636 SHA256 0e0699c1ad1342daacebb2daaafd5212c4ecfcf41f0017d9bff671af2ea68c6b SHA512 92d7b2c681984436bc9c8112ac64fd128f0fab5bbab7057094fbc017aa4d3bc99ca941b2101dfad8273e274f24a3ad985825bfe63b0677329b7efda51b75739a WHIRLPOOL 74b74bce5ed725ee8d0150c7f3249d82e9ded5d09b560d251c17c4daed041aad9fc2233b748177fa2523e0ebec935e2397b53be57caa8328460f8a1edc2c1981 | ||||
| MISC metadata.xml 665 SHA256 2a0cd67ad42f0cc6d8b88391cf6e3153a9883dab31aae8227c57c95f3f68890d SHA512 64b8fbae373d0a057f705f64c1d097dbfab893bd585e1db65ccdb06cda9569211c9b63fa168ac8de9f6d512a17759ecd20b54d818d2790a6f4c99d0ca73fddc3 WHIRLPOOL a81b21bb46aad9757a502628033eba546c686b83bbf1d651ecabba273c454cfb64574affc180db8358ced87eb638e8ad13d7c79c4cfb9a31e72c577d21ab433e | ||||
|  |  | |||
|  | @ -1,97 +0,0 @@ | |||
| diff --git a/config/database.yml.mysql b/config/database.yml.mysql
 | ||||
| index a33e40e..a3b5ecc 100644
 | ||||
| --- a/config/database.yml.mysql
 | ||||
| +++ b/config/database.yml.mysql
 | ||||
| @@ -3,40 +3,12 @@
 | ||||
|  # | ||||
|  production: | ||||
|    adapter: mysql2 | ||||
| -  encoding: utf8
 | ||||
| -  collation: utf8_general_ci
 | ||||
| +  encoding: utf8mb4
 | ||||
| +  collation: utf8mb4_general_ci
 | ||||
|    reconnect: false | ||||
| -  database: gitlabhq_production
 | ||||
| +  database: gitlab
 | ||||
|    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"
 | ||||
| -  # 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:
 | ||||
| -  # socket: /tmp/mysql.sock
 | ||||
| +  # socket: /run/mysqld/mysqld.sock
 | ||||
| diff --git a/config/database.yml.postgresql b/config/database.yml.postgresql
 | ||||
| index 7067e0f..74af7df 100644
 | ||||
| --- a/config/database.yml.postgresql
 | ||||
| +++ b/config/database.yml.postgresql
 | ||||
| @@ -4,42 +4,9 @@
 | ||||
|  production: | ||||
|    adapter: postgresql | ||||
|    encoding: unicode | ||||
| -  database: gitlabhq_production
 | ||||
| +  database: gitlab
 | ||||
|    pool: 10 | ||||
|    # username: git | ||||
|    # password: | ||||
|    # host: localhost | ||||
|    # port: 5432  | ||||
| -
 | ||||
| -#
 | ||||
| -# Development specific
 | ||||
| -#
 | ||||
| -development:
 | ||||
| -  adapter: postgresql
 | ||||
| -  encoding: unicode
 | ||||
| -  database: gitlabhq_development
 | ||||
| -  pool: 5
 | ||||
| -  username: postgres
 | ||||
| -  password:
 | ||||
| -
 | ||||
| -#
 | ||||
| -# Staging specific
 | ||||
| -#
 | ||||
| -staging:
 | ||||
| -  adapter: postgresql
 | ||||
| -  encoding: unicode
 | ||||
| -  database: gitlabhq_staging
 | ||||
| -  pool: 5
 | ||||
| -  username: postgres
 | ||||
| -  password:
 | ||||
| -
 | ||||
| -# 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:
 | ||||
|  | @ -1,102 +0,0 @@ | |||
| diff --git a/config/database.yml.mysql b/config/database.yml.mysql
 | ||||
| index db1b712..a3b5ecc 100644
 | ||||
| --- a/config/database.yml.mysql
 | ||||
| +++ b/config/database.yml.mysql
 | ||||
| @@ -3,42 +3,12 @@
 | ||||
|  # | ||||
|  production: | ||||
|    adapter: mysql2 | ||||
| -  encoding: utf8
 | ||||
| -  collation: utf8_general_ci
 | ||||
| +  encoding: utf8mb4
 | ||||
| +  collation: utf8mb4_general_ci
 | ||||
|    reconnect: false | ||||
| -  database: gitlabhq_production
 | ||||
| +  database: gitlab
 | ||||
|    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
 | ||||
| -
 | ||||
| -# 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
 | ||||
| +  # socket: /run/mysqld/mysqld.sock
 | ||||
| diff --git a/config/database.yml.postgresql b/config/database.yml.postgresql
 | ||||
| index c517a4c..28f7993 100644
 | ||||
| --- a/config/database.yml.postgresql
 | ||||
| +++ b/config/database.yml.postgresql
 | ||||
| @@ -4,45 +4,9 @@
 | ||||
|  production: | ||||
|    adapter: postgresql | ||||
|    encoding: unicode | ||||
| -  database: gitlabhq_production
 | ||||
| +  database: gitlab
 | ||||
|    pool: 10 | ||||
|    # username: git | ||||
|    # password: | ||||
|    # host: localhost | ||||
|    # port: 5432 | ||||
| -
 | ||||
| -#
 | ||||
| -# Development specific
 | ||||
| -#
 | ||||
| -development:
 | ||||
| -  adapter: postgresql
 | ||||
| -  encoding: unicode
 | ||||
| -  database: gitlabhq_development
 | ||||
| -  pool: 5
 | ||||
| -  username: postgres
 | ||||
| -  password:
 | ||||
| -  # host: localhost
 | ||||
| -
 | ||||
| -#
 | ||||
| -# Staging specific
 | ||||
| -#
 | ||||
| -staging:
 | ||||
| -  adapter: postgresql
 | ||||
| -  encoding: unicode
 | ||||
| -  database: gitlabhq_staging
 | ||||
| -  pool: 5
 | ||||
| -  username: postgres
 | ||||
| -  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
 | ||||
|  | @ -1,27 +0,0 @@ | |||
| diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake
 | ||||
| index 5f4a6bb..8f75d2b 100644
 | ||||
| --- a/lib/tasks/gitlab/check.rake
 | ||||
| +++ b/lib/tasks/gitlab/check.rake
 | ||||
| @@ -24,7 +24,7 @@ namespace :gitlab do
 | ||||
|        check_tmp_writable | ||||
|        check_uploads | ||||
|        check_init_script_exists | ||||
| -      check_init_script_up_to_date
 | ||||
| +      #check_init_script_up_to_date Gentoo uses a different init script
 | ||||
|        check_projects_have_namespace | ||||
|        check_redis_version | ||||
|        check_ruby_version | ||||
| @@ -590,13 +590,6 @@ namespace :gitlab do
 | ||||
|          puts "yes".color(:green) | ||||
|        else | ||||
|          puts "no".color(:red) | ||||
| -        try_fixing_it(
 | ||||
| -          sudo_gitlab("RAILS_ENV=production bin/background_jobs start")
 | ||||
| -        )
 | ||||
| -        for_more_information(
 | ||||
| -          see_installation_guide_section("Install Init Script"),
 | ||||
| -          "see log/sidekiq.log for possible errors"
 | ||||
| -        )
 | ||||
|          fix_and_rerun | ||||
|        end | ||||
|      end | ||||
|  | @ -1,64 +0,0 @@ | |||
| #!/sbin/openrc-run | ||||
| 
 | ||||
| extra_started_commands="check" | ||||
| 
 | ||||
| name="GitLab Sidekiq" | ||||
| description="Sidekiq for GitLab" | ||||
| description_check="Runs sanity checks" | ||||
| 
 | ||||
| : ${gitlab_user:=@USER@} | ||||
| : ${gitlab_base:="@GITLAB_BASE@"} | ||||
| : ${rails_env:=production} | ||||
| 
 | ||||
| : ${sidekiq_pidfile:="/run/gitlab/sidekiq.pid"} | ||||
| : ${sidekiq_logfile:="@LOGS_DIR@/sidekiq.log"} | ||||
| : ${sidekiq_config:="/etc/gitlab/sidekiq_queues.yml"} | ||||
| 
 | ||||
| sidekiq_command="/usr/bin/bundle" | ||||
| sidekiq_command_args="exec sidekiq -C ${sidekiq_config} -P ${sidekiq_pidfile} -L ${sidekiq_logfile}" | ||||
| 
 | ||||
| check_command="sudo -u ${gitlab_user} -H /usr/bin/bundle" | ||||
| check_command_args1="exec rake gitlab:env:info RAILS_ENV=${rails_env}" | ||||
| check_command_args2="exec rake gitlab:check RAILS_ENV=${rails_env}" | ||||
| 
 | ||||
| depend() { | ||||
| 	need redis gitlab-workhorse | ||||
| 	use net | ||||
| } | ||||
| 
 | ||||
| start() { | ||||
| 	checkpath -d -o ${gitlab_user} -m755 "$(dirname "${sidekiq_pidfile}")" | ||||
| 
 | ||||
| 	ebegin "Starting ${name} - Sidekiq" | ||||
| 
 | ||||
| 	start-stop-daemon --start \ | ||||
| 		--background --quiet \ | ||||
| 		--chdir "${gitlab_base}" \ | ||||
| 		--user=${gitlab_user} \ | ||||
| 		--pidfile="${sidekiq_pidfile}" \ | ||||
| 		--env RAILS_ENV=${rails_env} \ | ||||
| 		--exec ${sidekiq_command} -- ${sidekiq_command_args} | ||||
| 	eend $? | ||||
| } | ||||
| 
 | ||||
| stop() { | ||||
| 	ebegin "Stopping ${name} - Sidekiq" | ||||
| 	start-stop-daemon --stop \ | ||||
| 		--pidfile=${sidekiq_pidfile} \ | ||||
| 		--exec ${sidekiq_command} | ||||
| 	eend $? | ||||
| } | ||||
| 
 | ||||
| check() { | ||||
| 	ebegin "Running sanity checks for ${name}" | ||||
| 
 | ||||
| 	cd /opt/gitlab | ||||
| 
 | ||||
| 	${check_command} ${check_command_args1} | ||||
| 
 | ||||
| 	eend $? | ||||
| 
 | ||||
| 	${check_command} ${check_command_args2} | ||||
| 
 | ||||
| 	eend $? | ||||
| } | ||||
|  | @ -1,141 +0,0 @@ | |||
| #!/sbin/openrc-run | ||||
| 
 | ||||
| extra_started_commands="restartsidekiq check" | ||||
| 
 | ||||
| name="GitLab" | ||||
| description="GitLab on Unicorns" | ||||
| description_restartsidekiq="Restarts Sidekiq only" | ||||
| description_check="Runs sanity checks" | ||||
| 
 | ||||
| : ${gitlab_user:=@USER@} | ||||
| : ${gitlab_base:="@GITLAB_BASE@"} | ||||
| : ${rails_env:=production} | ||||
| 
 | ||||
| : ${server_pidfile:="/run/gitlab/unicorn.pid"} | ||||
| 
 | ||||
| : ${sidekiq_pidfile:="/run/gitlab/sidekiq.pid"} | ||||
| : ${sidekiq_logfile:="@LOGS_DIR@/sidekiq.log"} | ||||
| : ${sidekiq_config:="/etc/gitlab/sidekiq_queues.yml"} | ||||
| 
 | ||||
| : ${mail_room_pidfile:="/run/gitlab/mail_room.pid"} | ||||
| : ${mail_room_logfile:="/var/log/gitlab/mail_room.log"} | ||||
| : ${mail_room_config:="/etc/gitlab/mail_room.yml"} | ||||
| 
 | ||||
| server_command="/usr/bin/bundle" | ||||
| server_command_args="exec unicorn_rails -c ${gitlab_base}/config/unicorn.rb -E ${rails_env} -D" | ||||
| 
 | ||||
| sidekiq_command="/usr/bin/bundle" | ||||
| sidekiq_command_args="exec sidekiq -C ${sidekiq_config} -P ${sidekiq_pidfile} -L ${sidekiq_logfile}" | ||||
| 
 | ||||
| mail_room_command="/usr/bin/bundle" | ||||
| mail_room_command_args="exec mail_room -q -c ${mail_room_config} >> ${mail_room_logfile} 2>&1" | ||||
| 
 | ||||
| check_command="sudo -u ${gitlab_user} -H /usr/bin/bundle" | ||||
| check_command_args1="exec rake gitlab:env:info RAILS_ENV=${rails_env}" | ||||
| check_command_args2="exec rake gitlab:check RAILS_ENV=${rails_env}" | ||||
| 
 | ||||
| depend() { | ||||
| 	provide gitlab | ||||
| 	need redis gitlab-workhorse | ||||
| 	use net | ||||
| } | ||||
| 
 | ||||
| start() { | ||||
| 	ebegin "Starting ${name} - Unicorn servers" | ||||
| 
 | ||||
| 	checkpath -d -o ${gitlab_user} -m755 "$(dirname "${server_pidfile}")" | ||||
| 	checkpath -d -o ${gitlab_user} -m755 "$(dirname "${sidekiq_pidfile}")" | ||||
| 
 | ||||
| 	start-stop-daemon --start \ | ||||
| 		--chdir "${gitlab_base}" \ | ||||
| 		--user=${gitlab_user} \ | ||||
| 		--pidfile="${server_pidfile}" \ | ||||
| 		--env RAILS_ENV=${rails_env} \ | ||||
| 		--exec ${server_command} -- ${server_command_args} | ||||
| 	eend $? | ||||
| 
 | ||||
| 	ebegin "Starting ${name} - Sidekiq" | ||||
| 
 | ||||
| 	start-stop-daemon --start \ | ||||
| 		--background --quiet \ | ||||
| 		--chdir "${gitlab_base}" \ | ||||
| 		--user=${gitlab_user} \ | ||||
| 		--pidfile="${sidekiq_pidfile}" \ | ||||
| 		--env RAILS_ENV=${rails_env} \ | ||||
| 		--exec ${sidekiq_command} -- ${sidekiq_command_args} | ||||
| 	eend $? | ||||
| 
 | ||||
| 	if [ -e /etc/default/gitlab ]; then | ||||
| 		. /etc/default/gitlab | ||||
| 		if [ "${mail_room_enabled}" == "true" ]; then | ||||
| 			ebegin "Starting ${name} - mail_room" | ||||
| 
 | ||||
| 			start-stop-daemon --start \ | ||||
| 				--background --quiet \ | ||||
| 				--chdir "${gitlab_base}" \ | ||||
| 				--user=${gitlab_user} \ | ||||
| 				--pidfile="${mail_room_pidfile}" -m \ | ||||
| 				--env RAILS_ENV=${rails_env} \ | ||||
| 				--exec ${mail_room_command} -- ${mail_room_command_args} | ||||
| 			eend $? | ||||
| 		fi | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| stop() { | ||||
| 	ebegin "Stopping ${name} - mail_room" | ||||
| 	start-stop-daemon --stop \ | ||||
| 		--signal QUIT \ | ||||
| 		--pidfile=${mail_room_pidfile} \ | ||||
| 		--exec ${mail_room_command} | ||||
| 	eend $? | ||||
| 
 | ||||
| 	ebegin "Stopping ${name} - Sidekiq" | ||||
| 	start-stop-daemon --stop \ | ||||
| 		--pidfile=${sidekiq_pidfile} \ | ||||
| 		--exec ${sidekiq_command} | ||||
| 	eend $? | ||||
| 
 | ||||
| 	ebegin "Stopping ${name} - Unicorn servers" | ||||
| 	start-stop-daemon --stop \ | ||||
| 		--signal QUIT \ | ||||
| 		--pidfile=${server_pidfile} \ | ||||
| 		--exec ${server_command} | ||||
| 	eend $? | ||||
| } | ||||
| 
 | ||||
| restartsidekiq() { | ||||
| 	ebegin "Restarting ${name} - Sidekiq: Stopping" | ||||
| 	start-stop-daemon --stop \ | ||||
| 		--pidfile=${sidekiq_pidfile} \ | ||||
| 		--exec ${sidekiq_command} \ | ||||
| 		--progress \ | ||||
| 		--retry 180 | ||||
| 
 | ||||
| 	eend $? | ||||
| 
 | ||||
| 	ebegin "Starting ${name} - Sidekiq" | ||||
| 
 | ||||
| 	start-stop-daemon --start \ | ||||
| 		--background --quiet \ | ||||
| 		--chdir "${gitlab_base}" \ | ||||
| 		--user=${gitlab_user} \ | ||||
| 		--pidfile="${sidekiq_pidfile}" \ | ||||
| 		--env RAILS_ENV=${rails_env} \ | ||||
| 		--exec ${sidekiq_command} -- ${sidekiq_command_args} | ||||
| 	eend $? | ||||
| } | ||||
| 
 | ||||
| check() { | ||||
| 	ebegin "Running sanity checks for ${name}" | ||||
| 
 | ||||
| 	cd /opt/gitlab | ||||
| 
 | ||||
| 	${check_command} ${check_command_args1} | ||||
| 
 | ||||
| 	eend $? | ||||
| 
 | ||||
| 	${check_command} ${check_command_args2} | ||||
| 
 | ||||
| 	eend $? | ||||
| } | ||||
|  | @ -1,429 +0,0 @@ | |||
| # Copyright 1999-2017 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="e1836b8fb3ee021cbbef96f3a8b00323b1f0d6e2" | ||||
| 
 | ||||
| GITALY_VERSION="0.38.0" | ||||
| GITLAB_PAGES_VERSION="0.5.1" | ||||
| GITLAB_SHELL_VERSION="5.9.0" | ||||
| GITLAB_WORKHORSE_VERSION="3.0.0" | ||||
| 
 | ||||
| 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="" | ||||
| 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.1:* ) | ||||
| 	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/25 ) | ||||
| 	pages? ( ~www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} ) | ||||
| 	~www-servers/gitlab-gitaly-${GITALY_VERSION}" | ||||
| DEPEND=" | ||||
| 	${CDEPEND} | ||||
| 	${COMMON_DEPEND}" | ||||
| RDEPEND=" | ||||
| 	${COMMON_DEPEND} | ||||
| 	>=dev-db/redis-2.8 | ||||
| 	virtual/mta | ||||
| 	systemd? ( sys-apps/systemd:0= )" | ||||
| # required bundler >= 1.15.3 | ||||
| ruby_add_bdepend " | ||||
| 	virtual/rubygems | ||||
| 	>=dev-ruby/bundler-1.14.6" | ||||
| 
 | ||||
| # | ||||
| # 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}-9.4.0-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 | ||||
| 
 | ||||
| 		# 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 "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 $@" | ||||
| } | ||||
|  | @ -1,429 +0,0 @@ | |||
| # Copyright 1999-2017 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="8ebd2dd93d0b01a60bcbd5cefce0fb049cee2ee6" | ||||
| 
 | ||||
| GITALY_VERSION="0.38.0" | ||||
| GITLAB_PAGES_VERSION="0.5.1" | ||||
| GITLAB_SHELL_VERSION="5.9.0" | ||||
| GITLAB_WORKHORSE_VERSION="3.0.0" | ||||
| 
 | ||||
| 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-${GITALY_VERSION}" | ||||
| DEPEND=" | ||||
| 	${CDEPEND} | ||||
| 	${COMMON_DEPEND}" | ||||
| RDEPEND=" | ||||
| 	${COMMON_DEPEND} | ||||
| 	>=dev-db/redis-2.8 | ||||
| 	virtual/mta | ||||
| 	systemd? ( sys-apps/systemd:0= )" | ||||
| # required bundler >= 1.15.3 | ||||
| ruby_add_bdepend " | ||||
| 	virtual/rubygems | ||||
| 	>=dev-ruby/bundler-1.14.6" | ||||
| 
 | ||||
| # | ||||
| # 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}-9.4.0-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 | ||||
| 
 | ||||
| 		# 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 "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 $@" | ||||
| } | ||||
|  | @ -1,422 +0,0 @@ | |||
| # Copyright 1999-2017 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="2377923e89968997a13db6e009b8a48c5bf6f00a" | ||||
| 
 | ||||
| GITALY_VERSION="0.3.0" | ||||
| GITLAB_PAGES_VERSION="0.4.0" | ||||
| GITLAB_SHELL_VERSION="5.0.0" | ||||
| GITLAB_WORKHORSE_VERSION="1.4.2" | ||||
| 
 | ||||
| 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 -gitaly 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.1:* ) | ||||
| 	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/24 ) | ||||
| 	pages? ( ~www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} ) | ||||
| 	gitaly? ( ~www-servers/gitlab-gitaly-${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.14.6" | ||||
| 
 | ||||
| # | ||||
| # 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}-8.17.0-database.yml.patch" | ||||
| 	"${FILESDIR}/04-${PN}-8.12.7-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 | ||||
| 	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" | ||||
| 
 | ||||
| 	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-8.13.3-sidekiq.init | ||||
| 		use unicorn && rcscript=gitlab-8.13.3-unicorn.init | ||||
| 
 | ||||
| 		cp "${FILESDIR}/${rcscript}" "${T}" || die | ||||
| 		sed -i \ | ||||
| 			-e "s|@USER@|${MY_USER}|" \ | ||||
| 			-e "s|@GITLAB_BASE@|${dest}|" \ | ||||
| 			-e "s|@LOGS_DIR@|${logs}|" \ | ||||
| 			"${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 "PLEASE also read this document about needed migrations on MySQL:" | ||||
| 		ewarn "https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md" | ||||
| 		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 | ||||
| 
 | ||||
| 	## Initialize app ## | ||||
| 
 | ||||
| 	local RAILS_ENV="production" | ||||
| 	local RUBY=${RUBY:-/usr/bin/ruby} | ||||
| 	local BUNDLE="${RUBY} /usr/bin/bundle" | ||||
| 
 | ||||
| 	# FIXME: this line existed in older ebuilds, but the variable is | ||||
| 	# never used. what was it for!? | ||||
| 	# local dbname="$(ryaml ${CONF_DIR}/database.yml production database)" | ||||
| 
 | ||||
| 	if [ "${update}" = 'true' ]; then | ||||
| 		einfo "Migrating database ..." | ||||
| 		exec_rake db:migrate | ||||
| 
 | ||||
| 		# https://github.com/gitlabhq/gitlabhq/issues/5311#issuecomment-31656496 | ||||
| 		einfo "Migrating iids ..." | ||||
| 		exec_rake migrate_iids | ||||
| 
 | ||||
| 		einfo "Installing npm modules ..." | ||||
| 		exec_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 "Installing npm modules ..." | ||||
| 		exec_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 $@" | ||||
| } | ||||
| 
 | ||||
| exec_yarn() { | ||||
| 	local command="yarn $@ --${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 yarn $@" | ||||
| } | ||||
|  | @ -1,425 +0,0 @@ | |||
| # Copyright 1999-2017 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="d09fe1e789d014cebc46cb54fb5a0fc1d8d24dbb" | ||||
| 
 | ||||
| # Gitaly is optional in Gitlab 9.1, and it is not yet supported by this | ||||
| # ebuild. But the version declaration is already here. | ||||
| GITALY_VERSION="0.6.0" | ||||
| GITLAB_PAGES_VERSION="0.4.1" | ||||
| GITLAB_SHELL_VERSION="5.0.2" | ||||
| GITLAB_WORKHORSE_VERSION="1.4.3" | ||||
| 
 | ||||
| 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 -gitaly 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.1:* ) | ||||
| 	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/24 ) | ||||
| 	pages? ( ~www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} ) | ||||
| 	gitaly? ( ~www-servers/gitlab-gitaly-${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.14.6" | ||||
| 
 | ||||
| # | ||||
| # 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}-8.17.0-database.yml.patch" | ||||
| 	"${FILESDIR}/04-${PN}-8.12.7-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 | ||||
| 	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}"/ | ||||
| 	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-8.13.3-sidekiq.init | ||||
| 		use unicorn && rcscript=gitlab-8.13.3-unicorn.init | ||||
| 
 | ||||
| 		cp "${FILESDIR}/${rcscript}" "${T}" || die | ||||
| 		sed -i \ | ||||
| 			-e "s|@USER@|${MY_USER}|" \ | ||||
| 			-e "s|@GITLAB_BASE@|${dest}|" \ | ||||
| 			-e "s|@LOGS_DIR@|${logs}|" \ | ||||
| 			"${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 "PLEASE also read this document about needed migrations on MySQL:" | ||||
| 		ewarn "https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md" | ||||
| 		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 | ||||
| 
 | ||||
| 	## Initialize app ## | ||||
| 
 | ||||
| 	local RAILS_ENV="production" | ||||
| 	local RUBY=${RUBY:-/usr/bin/ruby} | ||||
| 	local BUNDLE="${RUBY} /usr/bin/bundle" | ||||
| 
 | ||||
| 	# FIXME: this line existed in older ebuilds, but the variable is | ||||
| 	# never used. what was it for!? | ||||
| 	# local dbname="$(ryaml ${CONF_DIR}/database.yml production database)" | ||||
| 
 | ||||
| 	if [ "${update}" = 'true' ]; then | ||||
| 		einfo "Migrating database ..." | ||||
| 		exec_rake db:migrate | ||||
| 
 | ||||
| 		# https://github.com/gitlabhq/gitlabhq/issues/5311#issuecomment-31656496 | ||||
| 		einfo "Migrating iids ..." | ||||
| 		exec_rake migrate_iids | ||||
| 
 | ||||
| 		einfo "Installing npm modules ..." | ||||
| 		exec_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 "Installing npm modules ..." | ||||
| 		exec_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 $@" | ||||
| } | ||||
| 
 | ||||
| exec_yarn() { | ||||
| 	local command="yarn $@ --${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 yarn $@" | ||||
| } | ||||
|  | @ -1,414 +0,0 @@ | |||
| # Copyright 1999-2017 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="7586e82714a6479bc3581532e11d03bead1cc982" | ||||
| 
 | ||||
| # Gitaly is optional in Gitlab 9.2, and it is not yet supported by this | ||||
| # ebuild. But the version declaration is already here. | ||||
| GITALY_VERSION="0.10.0" | ||||
| GITLAB_PAGES_VERSION="0.4.2" | ||||
| GITLAB_SHELL_VERSION="5.0.4" | ||||
| GITLAB_WORKHORSE_VERSION="2.0.0" | ||||
| 
 | ||||
| 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 -gitaly 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.1:* ) | ||||
| 	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/25 ) | ||||
| 	pages? ( ~www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} ) | ||||
| 	gitaly? ( ~www-servers/gitlab-gitaly-${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.14.6" | ||||
| 
 | ||||
| # | ||||
| # 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}-9.2.2-database.yml.patch" | ||||
| 	"${FILESDIR}/04-${PN}-8.12.7-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 | ||||
| 	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}"/ | ||||
| 	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-8.13.3-sidekiq.init | ||||
| 		use unicorn && rcscript=gitlab-8.13.3-unicorn.init | ||||
| 
 | ||||
| 		cp "${FILESDIR}/${rcscript}" "${T}" || die | ||||
| 		sed -i \ | ||||
| 			-e "s|@USER@|${MY_USER}|" \ | ||||
| 			-e "s|@GITLAB_BASE@|${dest}|" \ | ||||
| 			-e "s|@LOGS_DIR@|${logs}|" \ | ||||
| 			"${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 "PLEASE also read this document about needed migrations on MySQL:" | ||||
| 		ewarn "https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md" | ||||
| 		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 | ||||
| 
 | ||||
| 	## Initialize app ## | ||||
| 
 | ||||
| 	local RAILS_ENV="production" | ||||
| 	local RUBY=${RUBY:-/usr/bin/ruby} | ||||
| 	local BUNDLE="${RUBY} /usr/bin/bundle" | ||||
| 
 | ||||
| 	# FIXME: this line existed in older ebuilds, but the variable is | ||||
| 	# never used. what was it for!? | ||||
| 	# local dbname="$(ryaml ${CONF_DIR}/database.yml production database)" | ||||
| 
 | ||||
| 	if [ "${update}" = 'true' ]; then | ||||
| 		einfo "Migrating database ..." | ||||
| 		exec_rake db:migrate | ||||
| 
 | ||||
| 		# 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 "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 $@" | ||||
| } | ||||
|  | @ -1,433 +0,0 @@ | |||
| # Copyright 1999-2017 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="8e65e4bd5951244f7871cdfd80b4eeaa6f1cf14a" | ||||
| 
 | ||||
| GITALY_VERSION="0.11.2" | ||||
| GITLAB_PAGES_VERSION="0.4.4" | ||||
| GITLAB_SHELL_VERSION="5.1.1" | ||||
| GITLAB_WORKHORSE_VERSION="2.1.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.1:* ) | ||||
| 	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/25 ) | ||||
| 	pages? ( ~www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} ) | ||||
| 	~www-servers/gitlab-gitaly-${GITALY_VERSION}" | ||||
| DEPEND=" | ||||
| 	${CDEPEND} | ||||
| 	${COMMON_DEPEND}" | ||||
| RDEPEND=" | ||||
| 	${COMMON_DEPEND} | ||||
| 	>=dev-db/redis-2.8 | ||||
| 	virtual/mta | ||||
| 	systemd? ( sys-apps/systemd:0= )" | ||||
| # required bundler >= 1.15.0 | ||||
| ruby_add_bdepend " | ||||
| 	virtual/rubygems | ||||
| 	>=dev-ruby/bundler-1.14.6" | ||||
| 
 | ||||
| # | ||||
| # 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}-9.2.2-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" | ||||
| 
 | ||||
| 	# FIXME: this line existed in older ebuilds, but the variable is | ||||
| 	# never used. what was it for!? | ||||
| 	# local dbname="$(ryaml ${CONF_DIR}/database.yml production database)" | ||||
| 
 | ||||
| 	if [ "${update}" = 'true' ]; then | ||||
| 		einfo "Migrating database ..." | ||||
| 		exec_rake db:migrate | ||||
| 
 | ||||
| 		# 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 "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 $@" | ||||
| } | ||||
|  | @ -1,429 +0,0 @@ | |||
| # Copyright 1999-2017 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="3bc2f22845a4144882fa343beac99edb43c321a8" | ||||
| 
 | ||||
| GITALY_VERSION="0.21.2" | ||||
| GITLAB_PAGES_VERSION="0.5.1" | ||||
| GITLAB_SHELL_VERSION="5.3.1" | ||||
| GITLAB_WORKHORSE_VERSION="2.3.0" | ||||
| 
 | ||||
| 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.1:* ) | ||||
| 	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/25 ) | ||||
| 	pages? ( ~www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} ) | ||||
| 	~www-servers/gitlab-gitaly-${GITALY_VERSION}" | ||||
| DEPEND=" | ||||
| 	${CDEPEND} | ||||
| 	${COMMON_DEPEND}" | ||||
| RDEPEND=" | ||||
| 	${COMMON_DEPEND} | ||||
| 	>=dev-db/redis-2.8 | ||||
| 	virtual/mta | ||||
| 	systemd? ( sys-apps/systemd:0= )" | ||||
| # required bundler >= 1.15.1 | ||||
| ruby_add_bdepend " | ||||
| 	virtual/rubygems | ||||
| 	>=dev-ruby/bundler-1.14.6" | ||||
| 
 | ||||
| # | ||||
| # 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}-9.4.0-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 | ||||
| 
 | ||||
| 		# 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 "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 $@" | ||||
| } | ||||
|  | @ -1,433 +0,0 @@ | |||
| # Copyright 1999-2017 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 git-r3 ruby-ng user systemd | ||||
| 
 | ||||
| EGIT_REPO_URI="https://gitlab.com/gitlab-org/${PN}.git" | ||||
| EGIT_BRANCH="master" | ||||
| EGIT_CHECKOUT_DIR="${WORKDIR}/all" | ||||
| 
 | ||||
| GITALY_VERSION="0.38.0" | ||||
| GITLAB_PAGES_VERSION="0.5.1" | ||||
| GITLAB_SHELL_VERSION="5.9.0" | ||||
| GITLAB_WORKHORSE_VERSION="3.0.0" | ||||
| 
 | ||||
| DESCRIPTION="GitLab is a free project and repository management application" | ||||
| HOMEPAGE="https://about.gitlab.com/" | ||||
| 
 | ||||
| RESTRICT="mirror" | ||||
| 
 | ||||
| LICENSE="MIT" | ||||
| SLOT="0" | ||||
| KEYWORDS="" | ||||
| 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.1:* ) | ||||
| 	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/25 ) | ||||
| 	pages? ( >=www-servers/gitlab-pages-${GITLAB_PAGES_VERSION} ) | ||||
| 	>=www-servers/gitlab-gitaly-${GITALY_VERSION}" | ||||
| DEPEND=" | ||||
| 	${CDEPEND} | ||||
| 	${COMMON_DEPEND}" | ||||
| RDEPEND=" | ||||
| 	${COMMON_DEPEND} | ||||
| 	>=dev-db/redis-2.8 | ||||
| 	virtual/mta | ||||
| 	systemd? ( sys-apps/systemd:0= )" | ||||
| # required bundler >= 1.15.3 | ||||
| ruby_add_bdepend " | ||||
| 	virtual/rubygems | ||||
| 	>=dev-ruby/bundler-1.14.6" | ||||
| 
 | ||||
| # | ||||
| # 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}-9.4.0-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_unpack() { | ||||
| 	git-r3_fetch | ||||
| 	git-r3_checkout | ||||
| } | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
| 		# 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 "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 $@" | ||||
| } | ||||
|  | @ -8,7 +8,6 @@ | |||
| 	<use> | ||||
| 		<flag name="unicorn">Use the Unicorn web server. Never tested the package without it, so disable at your own risk.</flag> | ||||
| 		<flag name="pages">Use the GitLab Pages feature. See https://gitlab.com/gitlab-org/gitlab-pages/</flag> | ||||
| 		<flag name="gitaly">Use Gitaly Server to speed up git operations. Not yet supported. See https://gitlab.com/gitlab-org/gitaly/</flag> | ||||
| 		<flag name="rugged_use_system_libraries">Use dev-libs/libgit2 from the system instead of the bundled libgit. The bundled library sometimes causes build breakages.</flag> | ||||
| 	</use> | ||||
| </pkgmetadata> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue