megacoffee.net Gentoo overlay - legacy mirror
We have moved to Git. This repository is only provided for compatibility with old installations. Learn how to migrate your installation here.
changeset 249:0685ed0fb913
[sync] imported 2c6bf87..18f98a6 from upstream
commit 18f98a6f47cd77c1007b60dbfc7a838ffa99df0c
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 21:11:43 2023 +0200
app-crypt/acmetool: version bump to 0.2.2
commit ee2df4ec1deab61cd7bb7de2cd13ffdd066cc41a
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 19:30:58 2023 +0200
app-crypt/acmetool: split 0.2.1 from 9999, changed dependencies
commit f3c9cf1c7a24619446390b0b71bf5bc090dfce77
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 19:29:33 2023 +0200
removed dependency to go-overlay
commit b2057a9b0ba65917f3840a6b121c1e78397c4723
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 19:27:28 2023 +0200
golang eclasses: prefixed exported functions x-mgcf-
commit e8d02d1edc997fec9e0b1e5d053a5b82ca4accf2
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 19:08:52 2023 +0200
renamed golang eclasses, updated maintainer, added disclaimer
commit 748ea4be8ee777bc788cb2a8801b118b41e6f8aa
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 18:43:56 2023 +0200
copied eclasses for Go from go-overlay
Reason: These eclasses are used to build app-crypt/acmetool.
We previously imported go-overlay as a master repository to use the
eclasses defined there but the overlay has been removed from official
Gentoo overlay index due to inactivity. The removal broke new initial
checkouts for this repository as go-overlay can no longer be found.
Gentoo bug for MegaCoffee: https://bugs.gentoo.org/903167
Gentoo bug that caused removal: https://bugs.gentoo.org/864653
Original repository: https://github.com/Dr-Terrible/go-overlay
author | Migration Sync <gentoo-overlay@megacoffee.net> |
---|---|
date | Mon, 27 Mar 2023 19:15:01 +0000 |
parents | 566e55bdfa9a |
children | 37508d4f31c8 |
files | app-crypt/acmetool/Manifest app-crypt/acmetool/acmetool-0.0.58.ebuild app-crypt/acmetool/acmetool-0.2.1.ebuild app-crypt/acmetool/acmetool-0.2.2.ebuild app-crypt/acmetool/acmetool-9999.ebuild eclass/x-mgcf-golang-common.eclass eclass/x-mgcf-golang-live.eclass eclass/x-mgcf-golang-single.eclass metadata/layout.conf |
diffstat | 9 files changed, 1597 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/app-crypt/acmetool/Manifest Thu Mar 23 19:45:02 2023 +0000 +++ b/app-crypt/acmetool/Manifest Mon Mar 27 19:15:01 2023 +0000 @@ -1,26 +1,36 @@ AUX 0.0.58-github-rename.patch 13294 BLAKE2B 3e83c467f6d04239ca99f7867ed3a7112fe589a4b174e1d3497197e0f418f90da49f50707691d82b047bb5ecc2df8e9548a3719b20bfc36af88b23c0322e5222 SHA512 514ed6ada2f104215dc4f038bdb3584bbae72c2351436c2c6914ac23cdf279692d62ce44a911289c0c2d62cac75108ec7225b218463156e1c20ab15e1e848b96 DIST acmetool-0.0.58.tar.gz 126652 BLAKE2B 92eb46dc66fc26b28f2951026a94176cabd8ea87599dfb610210253b537db28c6db92e9e6447020ca17f53c082666aa59a0d8a6ab99a7d3bda01a1ece6e1c087 SHA512 8d016c5d87e21440feddb7dd3a457955b745ca777ef780cd1115343801bb3d0e7282e19828caada92a10f72f41a53a4c0df0445895354166c9807364fdb34464 DIST acmetool-0.2.1.tar.gz 121399 BLAKE2B c2c38344e896236175eeb3e4e19caf5605fdca6dfda4a4a54ea9fb7bc154ce9019f3208231e973335cec6ed5586642d30c300e8503962a4b1915059d86e6ebe8 SHA512 7a975b39cb463aab70664940b70628b8235df04043017d202ac7f8fe5b8e2ad23860284a0d12ad85f7ea6e94b32ae0513bb426ec3e6fde96e3a1dbd9d195f3a8 +DIST acmetool-0.2.2.tar.gz 121583 BLAKE2B 9bfaf4caa827c498282bf0befbc0cfdfdf88a5fab897d4e1691b7117aeba3b0ebb9340947afd1ce3fbb3850e6b00b70b634f3b39d967814e0f67748eaa067381 SHA512 c24bebbf52664cfda0442db86f8437244322a709413fdd03a79294feac99045f0e06b4342a6186ae4aa400fb627e740f00eadf7522919d3faff4270badb38451 DIST github.com-alecthomas-kingpin-8852570.tar.gz 34551 BLAKE2B 7b98bdbeb46a687a6162a4a8915516cac5879e9bf77ed83d155a60a25ac7129eb24841a0eef8ae2f01a1cdd22099bd3c72223e9c6acbe310647c44132cfd6951 SHA512 d850efbaa5ae8b9f3de8dc3bdd63a9ea87752b5d54a4ff69694ff4f0a5b9cb2987a9d8b77192196b077700fcc215241028a058599241a9f62aa36867da04db62 DIST github.com-alecthomas-kingpin-947dcec5ba9c011838740e680966fd7087a71d0d.tar.gz 44386 BLAKE2B 6bdff266da6f9b96cd8c3c04e0a09333ba3435228f3bcd1cb65372dc8ff9955524179ef5f122998925fb3d91b536598b5312eda41418082771c4a9c16bbbb2c0 SHA512 e143600cb6591aeb6f4bea461f866fdfb5563778d1c472d27c2d37db50bed74de6e3874c204795aea0a8132b4d6511795bce25e689f74400b0254288d11fdaef DIST github.com-alecthomas-template-a0175ee3bccc567396460bf5acd36800cb10c49c.tar.gz 55291 BLAKE2B fbd48545b6a5809d210629ca3aeb03c366051601d5b2f7718f79a96ec18fa09f18922c1a3ffcbac3abcd9b8955871b5bb4c71c23a1839cf7f17d8372bc3478fe SHA512 5ca546170725c3bdd4d9b27ca3976d6dc6376be8db685e6e26cfaef4a51560f78702b7babbe5ed0b2d934d0c32867bc69b11ae757071dc143a4453e6e7ffabdf DIST github.com-alecthomas-template-fb15b899a75114aa79cc930e33c46b577cc664b1.tar.gz 55359 BLAKE2B 3452261d9866bf22d2f649ac37b894b257d63d64082ebb7d6139521a0b15d8af69ade521e633dd98a133d6433f505a25cf4a769d6bb4569fca2e826b5a2f0bfa SHA512 a2355c5ce4509ac4a5548d8b1d7b4b63b1c15781efb6dcf2b67c6b475ba9895b7f71f5f6f53923112acf205398023ac5a5d44b8f9edb339dc83d4d72a81d7c08 DIST github.com-alecthomas-units-2efee857e7cfd4f3d0138cc3cbb1b4966962b93a.tar.gz 3442 BLAKE2B bb3a4acac34764b249cbec5f21fd260ab6dea6810183d12e13943657037903b874a209686b6913e8529a578cec4fb364adad475577c28456bf92add7f5ac9498 SHA512 855f15eeb83bdc16981694f522aa1e200a3857ed11ae87fca9b0cc70734eac76f5082bc3ed92f843b818da14b58dc921dbb1aed4ea35de056c087a64b7e25fe4 DIST github.com-alecthomas-units-f65c72e2690dc4b403c8bd637baf4611cd4c069b.tar.gz 4926 BLAKE2B 2038fc444b1d1f82323e008dc1e3af4ba291bf14923ee494ab5040c822b9e8da07e6e03a98d1eea24c64cbd825a467e6fdfd0646d5842dc0b1ec29f714bbe49e SHA512 419f26e29e03991e296fbbfddbb83e4a15534519d8e91d83784c69e69b7635b8b353c0f48fbf81060c14d1afe2e767ad6a0d491a326cd9ce542ebc3dc5a2bd23 +DIST github.com-cheggaaa-pb-5784bcc95a1741c2ca2b46b19f1f3d398557300c.tar.gz 30839 BLAKE2B 4f55bce7590502b69204a78c345a433d296a62cf9e5b86a5e180e7935c064708c2bbd7c627e07a50a1453d75b4def0eb8902796bbb1c1b36cf2c66d3b7a0db60 SHA512 5151c16640f1253efe276d31fa8f304dab32a986010a485505c2904dfe4272229d025b336dd364da1a33951c8cfdc63cde638fe818d8c98b546dc91fed2b377a DIST github.com-cheggaaa-pb-ad4efe000aa550bb54918c06ebbadc0ff17687b9.tar.gz 10407 BLAKE2B 7aa63f9df0f022d45306bdf9a8dbb1b3a57f391485656c883bae95f6b33691ca2deb313607f2b528ba6698a36687c5c721f5384ce83203d19d43e34715fc82ee SHA512 bb8f8de00f089c17c22eb47c6ad25aa272cfac9d73a13c009448a345f9a9d65cbbc2d26893557ab24b9e848cc0a5c3e2ce69539ac0cba1804510d2fd28c38d63 DIST github.com-cheggaaa-pb-f907f6f5dd81f77c2bbc1cde92e4c5a04720cb11.tar.gz 11788 BLAKE2B c7726ecd41c5d8909e157a38db429327d09873b4a4661cb7607893067c362487339b33eb24f122df7ea98e81bd4556884b831014a6948a108b74c71f521f1296 SHA512 47f0985138603631d59915b01fc99b4d4fc44ea964e1ad50b472cabec0fdf57f6235dc05ad32629bc086bc3f1fe25c2a3a31be064f91d398fdf37799fe4aa8db DIST github.com-coreos-go-systemd-2d78030078ef61b3cae27f42ad6d0e46db51b339.tar.gz 67904 BLAKE2B 1a8a9fe1851b9e49a67ee009bc70099a7a17784ada90113c3d392c6b9ef1b4313fdd42d67ae252210ffa8d07e462e8be43c602e10cc42f927c4cdaafd91c49db SHA512 56dff86e79f635c847410a239c471e042ea4d625a6fa72dda9df14afd45a95585a8d8864f97d7b9bb5ef672c3c41724e046ac112f2571419d734f327ad86aede +DIST github.com-coreos-go-systemd-a9a7ef127534245b9e83cfd9d5d0b09164af7ae9.tar.gz 72503 BLAKE2B eafb16623bbdce41797dff3373e3e86768fcf82fca16f3df096cda12ed096fd502f9f27ab184395e0cccc1ca8b1e6863a37ee9cb6775266872bb1b0abc2420fc SHA512 5ea9bd755efa64caf4f098baaba078c61d1c86703668595ac1b1bc220efea2892826670daf4e61d632a55c102dd6ea2f4767dd501ba6f8ef3fab292b7b23d42a DIST github.com-coreos-go-systemd-b4a58d9.tar.gz 35542 BLAKE2B 1ab715343fe32c54d05c7ccfcdc849e50d79ae16ef0cac242584f7a41fe4b1c4b30f3635f04ef73ae13c93e5f033f07ee001c04c22952eb9be73889ca01b9525 SHA512 d8e049ee7a68acca29551db0b41d6b59a323d6a21c185fcee8fd0cedd28bc9f26d62c1f44cd60c011e8a162e1a84ec96afb8e7e5db251a700f8e296fe1a40de8 DIST github.com-go-yaml-yaml-0b1645d91e851e735d3e23330303ce81f70adbe3.tar.gz 72949 BLAKE2B da00ddbd38a01a5f7b146e670cea55fb84c86165dffdbe162ce66927aa83a90937737d517da60c7894098ff556da7b595da777a5378b699782b631d5b813d58d SHA512 46f1052ccfedbc280777214e3c07d302584c35d5d7a7ffa085a57f549ef77a23a5fa9c888ad5ff2d66145ec4c00eed5b498e98994032bfde1e4516beefc48d63 +DIST github.com-go-yaml-yaml-7649d4548cb53a614db133b2a8ac1f31859dda8c.tar.gz 73353 BLAKE2B 9209b11394969b5221228358dce0dde675b9c059e02fe8ffc04d233a0f5e25e230dbbe57a47bcc9dee97d48c30b6530003023b68bc115145fea0cdcaea19e9b2 SHA512 2b7b0bd23eda5cd0a61a99b80bdc117bc0ee6630a3432ea7b35c5caad76a7c06f695d20f5c4572b5ad4d29c08684aa9d1957aa252c9f47a7068af97681dbad39 DIST github.com-go-yaml-yaml-a5b47d31c556af34a302ce5d659e6fea44d90de0.tar.gz 60581 BLAKE2B d4afadca44adf51ef6c72b1f15bb30f13147c8fc4800601007e3099d1d3a435b89e19a02496f75d77d47d326d4d2838107b8c48364fa39be5c1a2da1326b9a0b SHA512 488623b842daea96680d4bca9e93d62785bbb472f1a11d12ff265b61dea900e9e6d09bdb50af835016c1a97eed6a0916a4f765bdac6e23c70db53af5546a389e DIST github.com-godbus-dbus-37bf87eef99d69c4f1d3528bd66e3a87dc201472.tar.gz 63633 BLAKE2B 0f76fd13ee269cc28d51227dc312e64b7545a4317cb71126e29481e01106d1dbc9665e36c00a8789f0de57e13fd951a27366f3edfc35f7dbe3c57a3042ccc813 SHA512 b708e954bea86df60a4df01c0e29e6eec7e86aa838ad362d04b5fb1bb5dcf18f134f754ec480f2ee5102b9577a167201f7785f0c2dc39882e91e3a7c3cf09a03 DIST github.com-godbus-dbus-9998ce8520caaa4a287fa5122ecb5d1ca1aeaede.tar.gz 46589 BLAKE2B 58b3b10a532bf8c558b603fc2b6327935cbc14fd694390ce082af261b0b0e9fbcd939189badac9a35fe3bd83b629821a62229e2e13c3a265fa0c3236e7620c8f SHA512 7ca30b661e6836493f0596b4ed3464c002e24f11b9c89176b9141a9e74e6b2c81a243a6200a801818ccb1cac495246e99f361154c0638bf7f9200a9bfd566961 +DIST github.com-gofrs-uuid-9363593625d72b57a14e20172547979b02b4aab2.tar.gz 22210 BLAKE2B 6e9b72e4e8e8d13302302614cb3ba2b6a3537e5fe5bdaaa5916091b0c63be07ed1d1e1867cc1e82a9796097ee0dcebc92f7d7ced622f698dd13cbdf287f63108 SHA512 3b7973dd61a892773c4a6a78f240ef7e4f688f43372c92c0e365a1eb9f97575fdd7a8d6f6739bbff6818ead0f6e2eaa2e7991602c57f64975dcec761f61d9e68 DIST github.com-golang-crypto-06a226fb4e3765ef3f48aa2852b401bc7b98e981.tar.gz 1730515 BLAKE2B 118e629c79141d46c93710b8d92a3cddaf114dedcb92e2d80cdc07923dc4dc075e3c8085ea020df3e5bc8ef05b2720340b8f6cf2a8b05f02fdd4a79877eee5a6 SHA512 9c9766b3cb172848d87ae8de1aa7d0a1e10807ed67fec380d714095ae909c6c41b4c1a12af170f62080063443f7b6671c869dc35b18fadbd81f74039c51644ab DIST github.com-golang-crypto-568507f56e5b05b3c219ffd7fba12655c07bcc86.tar.gz 1053946 BLAKE2B bf8bb19664bb5bc96fc54c90e522151ddbce51ec642819c87434aa0f6ed7853bbc72f163972384a188655ba9dd5d3041735a76267849b345994529df02759f7f SHA512 8c7f00bd86f99be7cb8cc136fac705543f422a3cb1de590dfeab62253249c4a68d43fffc3ae7a260ff22e02ac306686132d740c3a5f7350088757851adcb5d8a +DIST github.com-golang-crypto-642fcc37f5043eadb2509c84b2769e729e7d27ef.tar.gz 1633296 BLAKE2B 3b61e2a88e3ed9a52a0746cb16cf232339456fbc27bdc21f74aa5a5c366a5e4bca6a94a487cecb063ca13d7b5a4c2285fec5019513a4b285b544149af12a873d SHA512 8ac5c3d7510dcd0fcbc776fb0dbdf49d3b7f24a48290e9dbb8d1c8c9f79f20eeb7a49d4cf0ede65dff3314cb38d735cc02c28a75d8ec13a031bc5cfaab848498 DIST github.com-golang-net-3c3fba18258b2a1398a025a6aeb7374d2a470009.tar.gz 1177747 BLAKE2B bc85a9d92ee5c60adb4d3e98a82a1b4b3b7db59493dcb68429768e40e50cd2ba1bb0d4f4d9d38f54acee0d97a8eb4263c03bb97fde42dee8665f704d4bbdcc53 SHA512 f262f6fc8903c890fa1b1ffc049a94af53b2430bcf8dcd4acbd95a5e2887fc583c318d11ac5e7c196362472d4ca5ff820414492b6392d66e0557e27b596ecab6 +DIST github.com-golang-net-8e2b117aee74f6b86c207a808b0255de45c0a18a.tar.gz 1241902 BLAKE2B a3169994ca8e523acb915a294de19740da6d21f065053935be7dee60919d406554b5900c58696d006eb76fab17b97d1baa6a7cbd0c913939a429d51ae232f981 SHA512 365df7d9ed63459f129dd2afdc5dadf549fedc35f84d5c8e9d39fd213f6a2c0abc17ebce29d9a062c05b8d8dd6968c469be48049a618c30d83279615b6c36e04 DIST github.com-golang-net-cd95c68ba21fc7ee16ee38cc420473e3d8c4afd8.tar.gz 738194 BLAKE2B 1d60332be40a6e60574034461c2306a1818cacb32bcb2cd7552ddde727e647afbfe8e0a3c5a566d8b255e628f991960aabad88b6e9cc4794586a49e20f3c124e SHA512 a80373be5eeec658a53851e3e1ad0d0843069baf0d716f1db7604d3c04149577d647ef47d2a94b370e8c907570d01c5a912067e06f5340d097dd505054fc3f79 DIST github.com-golang-sys-05986578812163b26672dabd9b425240ae2bb0ad.tar.gz 1054241 BLAKE2B 2095f86d1dabd96637069daeab99305298b061ee4d25d73686843bd54528d025fec6700539a1a2c94e4b6909fd93b2f229f71d484287170b8d48b86099743f55 SHA512 808671b4b8db297066aeee68cccdb9172e75177e1c733887db2fba455a1b136d91e1a3603ecfa6bd105103203a94ed682165b24df83a6a58ffc27c1d111b496f +DIST github.com-golang-sys-95e765b1cc43ac521bd4fd501e00774e34401449.tar.gz 1411974 BLAKE2B 3ec68e79bb461ee235e949ae740796215fcb872023b2dc9a944cc86f0549e2f1b896af2b7429e577c792d5a3cb1b4251cf7979b407aa0118e51e581b27fd5546 SHA512 5f0872f8f98bc654918fa857a30993b7ab3b9e4f22e3aa3b5325908812646800f5226eeaeaa6fb3add6cf6fdd30cdb7fd2edc1184d4628ffb585b552cdd0de82 +DIST github.com-golang-text-71a9c9afc4cd710b9412f7f99f0d8e35b10e488a.tar.gz 8358285 BLAKE2B 3d05c0f8c60ee980d004d134d8f2da40b74060c21e3b386a23407c8d133a9cdc2565aa37dc86fb6008b313182c9b54c24a3bca03406f90d00f521ac515654394 SHA512 9ac26a92bd7d1da9fdd047479069de55c2d187c872fd86d850adb2ce2e5981e4be91982029e819db149fdefa7a358191a0718819b4185599f5b9af62cf6fa8b6 DIST github.com-golang-text-81608d7e9c6863c922f599e4ff1329a685218c0d.tar.gz 7744146 BLAKE2B 0b7107e59b63637620102de19de75a9c58503789898809e7846e08aff484dab26ffd2aab725a8c3721079d5934406f1cfa816d906b028248a5d1cf6906322ab8 SHA512 007f1b196b8cc52174c1e1413915f8558eb8214d62de60397f1de4d30b612e7bd07ce793fad05ab5c86dde697ba251a53dcffae8a6ffa0dddc9422def8f810b1 +DIST github.com-hlandau-acmeapi-2f4c7d86d6266dcd2702933b44c8a5822f163134.tar.gz 41035 BLAKE2B 686d8de32929a74b374bf9505281505cfdbac89363c2f30492e252a4eaa61ccb75234323cb46348d96392bb3d15e5c2e91497a44b601aa9a52e94f887a73e46a SHA512 2fba1c1ffda34b54140b70c45b6717a4dd06f0972e3c0ae9f62cf4b9fa4ea8929c4bd23d7e967c8a13dba24b18ef442871423d447c594fa0c6117a003b96f1a4 DIST github.com-hlandau-acmeapi-4c466ab079c59d00344630cb861d075f3a75bc56.tar.gz 40974 BLAKE2B 0a8dcd6466e408c0ff05e0d6082309c93b8b990c66e4cef71d980a8c4181d81ed1ff853a15bac8669bd1f3fd166d67078b2995c0df5ed1d42261d66d308a38a3 SHA512 32ad9bc262fbcf78b0aba7e291a968efac5a422854c8424906f580039496917c4bccc93e1365384f8a6a7171d61d0ed5aab960f172f215a16a042f73e7d3d205 DIST github.com-hlandau-buildinfo-337a29b5499734e584d4630ce535af64c5fe7813.tar.gz 2611 BLAKE2B 7b3b89f0ccbca1f0f4541400cc33f02b1208b70e69f392d9eeb3cd1412ecf30b00f05787276bf297137d1cf72232b8967cf43342eacf4d4272f8125cc8cbe618 SHA512 62509910631141b22252313c68b9e4f37e56a6672f42ae1462f25cb35459d29271b2fdfab1a44e2e1b3a59658c2819e12310caf6c9ded46ad754019ac732488c DIST github.com-hlandau-buildinfo-b25d4b0e518fdb8bcbefaa3d52d77473bebe08fd.tar.gz 1969 BLAKE2B 3a6dbbff8db4331198814b8f1a5dccba0eefbd6cf638028aa5072a5696103250dfe7df2164249208dcb368f8de44e9accf95e3353b3bec19b9b73440f339f8fe SHA512 8370adcfb23c0f30a9ec70075a738d7ec16217b5f2ebd3693193282600017de0a056a455df8a7b19f8e15f8500938eac415332929bccfbc0e14e9b35cbd7944d @@ -28,32 +38,47 @@ DIST github.com-hlandau-configurable-41496864a1fe3e0fef2973f22372b755d2897402.tar.gz 2694 BLAKE2B 71b0ac69e1d9f40108cef9bf0872d5203862554268c0a2c02d49efcaabc40d1a194810311ff2507c6ab9811608fa8af556a568f1befeeaee1b301b32e1769c32 SHA512 f60a1ac8cdb71d8c901cdc652229112dae11f5afe1e5a003f9994b7fd6ce7158becc41a795034aa19295a3c2ba4546ac9fb2d3df3758040eede544f17c48ad59 DIST github.com-hlandau-dexlogconfig-055e2e35f21ef605ada9e9af4e36597678678bf1.tar.gz 1890 BLAKE2B 96068f2c63590fdc0cf47976cb0877ccb56023def49f52e4e26731d94f728ac39277a35ca601615bbfd6928c51c657600b234d00ce2d283443cab80db88a16bb SHA512 41d64a8da1243562b1e0a789ccbaadefd222f96b34fe8d9606cbe347523aa89f9744fdd9da2f3998a72fab67cf167405f763920970e15323a6152076ce71a81a DIST github.com-hlandau-dexlogconfig-244f29bd260884993b176cd14ef2f7631f6f3c18.tar.gz 1894 BLAKE2B 1281b619def96cdae1b9dd1f421410ac8a566e2f5eaf46debb9e7b32336ae502d3151f396158639ae2e645d2503424ef57b0ee469c03db879ed3c235b851066f SHA512 c9c4b9df6c31ba5852c78b05250b13d47ad1d9424857903aa75d068c5d12a53e0d04257b4cdbda08dd2dd3711b97e87401ad7c288bd6eb31fbfd1ab33bcb8c7a +DIST github.com-hlandau-dexlogconfig-86a3fc314fe7a8d9d58005220de8e2a85dd5744f.tar.gz 2220 BLAKE2B 405d97bf306a89a2f30d1b73b695c7332a4479e3ba590cbe635b0b447a27d8589f3d621d83d3286a4826f8af620201a4496b7d84de06c9975d6cf62df1610d9d SHA512 f6bf3b9c9a222342aef83941e92aa33d8b31fb3eba0a274a5f6ffc72286ccecd92b97dbfd99e50881a26b39e78a4144a5867e76258b7bb6ed037cb66504b2c8e +DIST github.com-hlandau-easyconfig-30db2856f1fc2e9494aae5f96b57ad1a22029a03.tar.gz 10065 BLAKE2B 951b10cea31e85609d6c7eb18f4f5c53ca39938ce4be91039b902693c55c23de4310ac54462889e1b62aaf265dc857f71fa98a58b3cc1a467ff979856ae97af2 SHA512 c6bd6da317416815cae973f7d8a5d5886fcf6e883205c8c4376c25c12c31e8a54ca394dd65dc8c49c7449c2ed086b675df9e49907b64004cc9a97288c4272d4a DIST github.com-hlandau-easyconfig-bc5afaa18a1a72fe424da647d6bb57ca4d7f83c4.tar.gz 9103 BLAKE2B 370152ce7c8a2566dfa5143857f928cfe6008031c2bd05c44af854cdba608016d2c68e06881c445d94d37783d7cbb383ee42e6f591da677158c18612e4419102 SHA512 d8a2957e4b0352a88407cbbbed9e165c12f28ba7d021392d6daeeba9acb424cc4cd2c8c9c28aec8b9d768251cc8967b669865bf7c7e69faaeffc2847e06f2407 DIST github.com-hlandau-easyconfig-c31249162931b4963bbe6e501cccb60d23271a3f.tar.gz 9945 BLAKE2B adb724d2bf3f2b75bd41b3b22cd0b7f9ebe44ee2620b2f27d39d3d093cbdd0568fd99b8449a6a8ede466991627a34f5e9b80f9577725bdcc2b101efdae46c44d SHA512 58b47512d3d92d5e71ab9847b385b3dd182f4109e5493df4ec14a011dcbfa4ce5c8b37d82adcb5ec0720534ac2a69b760dcee3b9a7f3d81eb7044c511302a996 DIST github.com-hlandau-goutils-0cdb66aea5b843822af6fdffc21286b8fe8379c4.tar.gz 6412 BLAKE2B b05fd47ce10296039116ed674a44acaf9bac1c54d68d934a3e3f493791b0ec54b65edeafbb1f69df116f85d7490c01f8cae57e914cf98907f2d7bb07c05e0fb5 SHA512 bc1267ead1b2edae076b84fcd114bf2a889104f3abe0c4a6aebd309535679d5253e71434dd3d52df8d153120b76863b6fd58481b7d973110e71df76a6f90da1c +DIST github.com-hlandau-service-0e0d7e650dbdeaa82b606a6afc0b5f38a9e77b37.tar.gz 14013 BLAKE2B cba6c42325e58d2720a9e42b91eab9fd5ba66fa8dfe5f8847ece7ed73fd75885536ca8fad993084d9868ca11648a0b2d7acc1ac025ebf2dae542180880dcb380 SHA512 89b4bdad59858480e285ede56293576b30ee621dc82fc20da1733775eda70ba8f9f31882a3690df761af15f219a0ddbeb0be0ba8f8633a1726e7d899c737471c DIST github.com-hlandau-service-601cce2a79c1e61856e27f43c28ed4d7d2c7a619.tar.gz 13722 BLAKE2B d0ec88bddf550c69f3bfc186e4862eb33add7ad1bc74bc52cd2b5c76ff827723b3ef1b77ebbba644ba9df83a8d01d6b8cb8437ac3246614b44e158db4fbd6f8a SHA512 309906262b7e29d29ff1f455fee71936ce6655ad6d15c1ed43cd2123a2bd2ef9538968c9cb8364bf40865bad7c917f2907c0b0a85f279e1a2a1217c4a9fe2ea4 DIST github.com-hlandau-service-b64b3467ebd16f64faec1640c25e318efc0c0d7b.tar.gz 13999 BLAKE2B 72ab06e2ad52b2070b9206e9a9f44e9cca8d8b40451cda58d51bc25326b0c5e4259be12a79f490319805bba4bac7fa58dddedec7034b196e7fb72cec78d19539 SHA512 3d1da69d416f1009c10e4ef90916ce64572a43faae49513f037d470150a9cb2eda7bda35a3668e30a9f5175e718c057ee113440837dd1fd94133bc9b7def6a87 +DIST github.com-hlandau-svcutils-6e7e875ab1a2f881e8bc757c1b2c1a779bcd57ee.tar.gz 10237 BLAKE2B 8ac5e8d630c6397f0c0d63c7702ecd7191ad7427c847f523222bd0fa9f7b62710a9423142bf9c24fbaafa98d949d9bca3473f1dc5562b4dd550db9e9added545 SHA512 79dfeb17f1951bc4b937fc17d8a9635b2a1cc1170334dd1ad19a9b24cefdf888cadaa4388a7dd4ae3bef29c35686ecef7baed3af8dc0651d0855861a16665781 DIST github.com-hlandau-svcutils-c25dac49e50cbbcbef8c81b089f56156f4067.tar.gz 10103 BLAKE2B 7081a03feeefb721e1711771002525a2e2badaff0845d77c947b720ac0a6be1506191b8d26a21cf6e105e383ae399b2bc9dde766947172010a506b556ff415aa SHA512 ca4a6dee0e83f205fe2543177cc11619ce490dc1a4adf3a0032fcf0acf2dc52c126c7f4f161b9a9fbc2471a588df4a13286db76fe89744987145a21588b98a9b DIST github.com-hlandau-svcutils-c25dac49e50cbbcbef8c81b089f56156f4067729.tar.gz 10103 BLAKE2B 7081a03feeefb721e1711771002525a2e2badaff0845d77c947b720ac0a6be1506191b8d26a21cf6e105e383ae399b2bc9dde766947172010a506b556ff415aa SHA512 ca4a6dee0e83f205fe2543177cc11619ce490dc1a4adf3a0032fcf0acf2dc52c126c7f4f161b9a9fbc2471a588df4a13286db76fe89744987145a21588b98a9b DIST github.com-hlandau-xlog-197ef798aed28e08ed3e176e678fda81be993a31.tar.gz 6398 BLAKE2B c0bcd44803ed1eda5969a886188b23e7b8d268b23ce28f0c82994010c803ac4b999906ee05ec885f0ca6cf80afc92f7217280fe9d0e89ce8b1e4e79ab9dbadfc SHA512 7c0cba9ffc8061e1290511289d1c7fc8a5d2322a3c28bf82f180f791612ee82316c8d5ba23e25ac1ca08bb1a5684f6bbfe356d26a5e79d3c9c5d39e30aa3c99f +DIST github.com-hlandau-xlog-5c67351975541184f98d42d2163f76bbd7330374.tar.gz 6441 BLAKE2B 19e5148b7cbb01fac6d86a385575e8ad474cc101a2d163c1cdd6f11713a93afb2fb63a517543fd319495b4fb2d484469b42d3150f52b57fe5706c2d5a43cc844 SHA512 9c00a1423734411b06ac3df7f4548bc9e3d77a9a3a9446cab6daad033ec2a0dabdf7f97150cd930bb21e78978a44a1a533a30fe4fb5d7c34b822dd3e99ee7545 +DIST github.com-hlandauf-dbus-b24e1c7d19a5fc589597f8abbf32a2b3688a4eb8.tar.gz 69803 BLAKE2B 3eea8d21a1278f56fa197b6c99ef8858efc2537845af6b1b3eb481b22bba7b7685b38617fea1e512392af10e53231a3e25cab98f8cc763c1d1a71ce7e7cafbdc SHA512 9657d64ec154817bfa6ca860967ad804c4811e4fb2eea4dd7f898125a87f952345f6fe177987fdd9b55cdc50450f424b30e08b10a20156721e79d51cbd6eb411 +DIST github.com-hlandauf-go-systemd-d4cbd5bfbd436076dfb05aa42689bcff67950a47.tar.gz 72339 BLAKE2B 564a41e59882334280117f38ae627dcd03c5795fb02bc0ae7f46866b262002635b55a900acd3aac67d4b781038cdc036b7749e8d85e8ce7857f7e9996409253c SHA512 b081e4ac1ec7636760db9f14eed32d0a89561e58bb51ae6cb3f7a4ef368e26e2d492c563b6e6a814c643aab02cbb0c0f53a34513b94ddfd5848f16b24caf2c32 DIST github.com-hlandauf-gspt-25f3bd3f5948489aa5f31c949310ae9f2b0e956c.tar.gz 4922 BLAKE2B e74cc9cf43c00083dfbe0c953c20cbc4bb9ea083158a0acfa84de422d4926b5c60e86eed0c170ccce585b6bea8cf788e97950c97a0e8a2703adb52485642ccfc SHA512 f3bb456ae5e279c8ed5c12f0f53ea3b8b0498be1fdb3a509872fb0f4851afc73fc4fe9d02237dae98bde1085c9c600972b2a9d1c5370d21095b6bbf99712d29b DIST github.com-jmhodges-clock-880ee4c335489bc78d01e4d0a254ae880734bc15.tar.gz 5765 BLAKE2B 1471ca40b99f342bcadb4b66bfd33185b19888a7ecbd01356846b8ec2312c73fa59cd0ed961c1166bd3f82bd651ab72b832781cadb1587ea042e7ec4526fcc0a SHA512 ac7535d2205dafdfd748e8c9b5514ce544112fbe205506d4a961263f73d7932180381988bb8abc66ca7253f4748e3b92aa10ada44e13c4ca9b0e740f61fc1c97 +DIST github.com-jmhodges-clock-8a401d017099427a3a22abf2b14a49d9a069f433.tar.gz 6078 BLAKE2B d9dab7952cc4c982a84d4f9915efe4bba165f7d58c2f4bb900b9dc3a9726d5349e56985430dccd8b872ce0cc4162d9780db6451f020a25e95a8b5593ba0bc380 SHA512 15464596e65e8b186dea54d96cc522fd467b1177a2e42d9232addab8c894fdef9c4d1c103e14d7f8ee78c668924bf4c43816ff29c1088d8eb01e94224a56cac7 +DIST github.com-mattn-go-isatty-3751eb45e68b73541370d508d59323eaa44c0de2.tar.gz 4470 BLAKE2B effb70ed461a4af65f2a8852c864684ce94f21f5fba80118d07b9426c75e3468ee095b1d87412f070fd8393b3f82fe7fe95f55852dd2eb4c96ec15d421d8efb8 SHA512 ea446456c3a9189eaa8dfd88ef653d4b6abf353db6523a4f401c430711c291681c483b0812bdf5c026594142dfd44c0ed4a186c2edcc890f0502826188f667e9 DIST github.com-mattn-go-isatty-66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8.tar.gz 1959 BLAKE2B e767e44d5470cfa0feac4f48f3698911005667ef5b3ec46c17e12978a3106fca9de4120ce8ebaf49b283b620d02a57f3a9275eefdc4c0f5ceab42cf44dc4b573 SHA512 a43484c6d87d54bbea7bd8b76d5eb35217023097b07ac2956a809e123c13811280bd2ee5b8f604ff2ce54ecaa6a19358422fd2a7f981e63260ffdad97cfe1ae1 DIST github.com-mattn-go-isatty-7b513a986450394f7bbf1476909911b3aa3a55ce.tar.gz 4544 BLAKE2B 6b8a11ce52397597ab65d8bc5382169c7d64dd716e0d97cbd46620c64f5a24de4b5874c1f71aa79a4046e8bfe2b5899d4685d3b5c7b8a8dbf2baa03bb1a2cdc8 SHA512 74b775ee71bac2d3d4bcdb60664b02e785a58e8d8bd8516b5c90c1e21c36832fdd673a8342b2a9857ab7aac61e66dca8fac373938c6de848e51641d5bfa96bff DIST github.com-mattn-go-runewidth-14e809f6d78fcf9f48ff9b70981472b64c05f754.tar.gz 16715 BLAKE2B 207c55e7b0a18322339031924066d93f68c9d191869e9b1a5f6deae63b282c3fa56a5949f06507d100238c02c9d8bb666b2da5c883e256e6a391df3c021cac4f SHA512 56599e5851d16138952051bd6ff72785737088ecaf742d36ff9e513d2f64b17ba674b3ab63163d8d7fce1a2cc88f7ee658a424db96bbb7b59b3822c543589005 +DIST github.com-mattn-go-runewidth-f1f639b53e80fe40abd644a702ed196880b0b345.tar.gz 16777 BLAKE2B 7449ba5777acd6e074e60fd895ddc4ed1d28243eb0917383e8166c0169a7f4fd4e18099cfe3f375fa38c880cca6f13f977b53ea2fbf8c3d2f15ac53812571ea5 SHA512 2582b74fbd4bb08dd1764171f0c4d86cefe447961731b049265a85560a9fa7af48c6a73a0d1a584b79c3959b01c576fb8f83c7c7b96ec66a77f85b60534e6e5e DIST github.com-mitchellh-go-wordwrap-9e67c67572bc5dd02aef930e2b0ae3c02a4b5a5c.tar.gz 2785 BLAKE2B c049e833101c330e1c153b212e7a98f02be90333719d1ed5557f1ff52f9db9e82bcac942fdb2b6206c8e3ef5f5dda6b90e7f2b370b16b45c69413b0f93597850 SHA512 377d539b68744a2b03e9fa6990822fda18103854ddc93eeffa4d635864f44e00844b4bbb48b1d4149e6d456483337f357343fd806f9b150aa319a98a773407bd DIST github.com-mitchellh-go-wordwrap-ad45545899c7b13c020ea92b2072220eefad42b8.tar.gz 2740 BLAKE2B 10127381356aff4d25d3b5da3d2db5f4565c8e5c4e16ffae18e481fcedc0616039cf3907fdb3c204d5f743bb5163bf437d549dea9fd46cc9141d8ef88cb36e21 SHA512 39cd6786782e3a29ad448db3ec815a6da029bc22fbe543fb04e0e869d8b4a698f20434bb24c09bd18b5d2cdb992fc28e21b7ae16b3e585412cede7b4eed2b26c +DIST github.com-mitchellh-go-wordwrap-ecf0936a077a4bd73a1cc2ac5c370f2b55618d62.tar.gz 2919 BLAKE2B ea6c581f5243b30aa93d8604cd8496f8438c5f122c14c66db30400e9d11aeba7823f08d5694b22e3a17450e8ef642abcef643339824952b02409c4f71356f41c SHA512 cbaef4acce15e6b8da24d61b59767eb0b4bf4bf01ea45af48e331bbfec67ad8b91eb4f792bc5ed1b995f0a86638bc2b0c24caa8214ce5189ad0e6b539db4c4a5 DIST github.com-ogier-pflag-45c278ab3607870051a2ea9040bb85fcb8557481.tar.gz 15814 BLAKE2B ffc19ffc95e7fdb7864742831507892474a78975174259fb6c2a9d41dce4c3293f9df604d5266d41cac2edb546429359d627e5b1b3ca94b493b1f98b9f319f05 SHA512 d6776d30f3041244c3e1bc458d5f9a512b5887dc0a110b3633ffaa411734b67418c7534744b07271501d4d1be4fd710d26cb4cc62fdc739859398ad003e3e5d6 +DIST github.com-ogier-pflag-73e519546fc0bce0c395610afcf6aa4e5aec88eb.tar.gz 15829 BLAKE2B fda86953edae8374d4bd37b2114bce6afde8f2a5ce00ebf6e08cfa653ae851a81d101dd11051f528edba5768204e9a4ce1846ff6338b429e798839d22d5e5d76 SHA512 8b9a61d30f653084ecbb3fef41554e459405d6f1ec77ebb9646aed2ec1cdf530170b990ccd22f8e6c8e0707a582956e7b3f338f9f46fe9877524c2aaa26e3dd9 DIST github.com-peterhellberg-link-7d8125c3085c14bd320d898c73b78ef2c5320f31.tar.gz 4203 BLAKE2B a63ce2642f59cb0db54f6d517711bb2fb8653d03c3aec483a9a18dcfba743120b3e3d743fabc3b2e2ad990e594e64e4ddebda7a1569d753e224ef4ac7113382a SHA512 90c42467dd4c669815eb1d57b5618bf1ddbd49cbf23d2ace5079a179c62d52235910f7dbc3cfba4391b63c889d537fd41588ddf8c616316dd5e1826b8012894e DIST github.com-peterhellberg-link-d1cebc7ea14a5fc0de7cb4a45acae773161642c6.tar.gz 4020 BLAKE2B 0fee70d120f556afa874a49d4135ab9bd3f29b2cc1a0c524e7d79b442796d0af8146f81bac6fa11a774079e6c0ceadee1cd60663bd789a6da773cc7c30ab2feb SHA512 41502b0f8ea5db1bee628fb3b1a65117558d2779020cd492c5cf6cc48d7488e63f968cac172a9cb573f7d7de940881a627c9bbd673008c41fd8eae7890fe1e47 +DIST github.com-rivo-uniseg-f8f8f751c732fdcd5e158c13c28f8863ad80e9a5.tar.gz 43999 BLAKE2B cb8dc8c5744f8d5ac34a4af7be5ae15728d25769bb68e2bb0b3d5c4e6504a4a2eb250f589d7311975735348cd4044dd268d99e8140e448a6340730907655391f SHA512 47cc738c198c7f0ae4bd5e816b1694b8e810951eed2e1ca030d84001ab871477e819758041677428ddeb31d894031eeaf7f8265ae58f3b8e619f3475bb7691f2 DIST github.com-satori-go.uuid-b061729afc07e77a8aa4fad0a2fd840958f1942a.tar.gz 7610 BLAKE2B e7956f9b78d98ad197b78937497e7a40ceb23b1f091d72244127acc17cd7f2f339d11fa795bbde145288d74834a97510ec25bf0c411efd00eb920703f3bc805f SHA512 70df41d87d95118f3ef845cb05dffbc1a687456c22da54ab6f27fa178274cb89432b49697416bee42090557b250e76538a806f2f99e600fd2aefcd082b02589e DIST github.com-satori-go.uuid-b2ce2384e17bbe0c6d34077efa39dbab3e09123b.tar.gz 8828 BLAKE2B 34572825976135606cbce74ab5471c2f914023eaa2d9b2e2318b49f6f0efccd46d6b4d424138548839ab9e0e700d827890c2b0fce6f89d9fb27bf2b41d391ad7 SHA512 1779cf3b53fe13d5b859f6ebe66837c6897e4af6e78f3d7f56901cf655f9cc7cd3b642ad0467d8796b572778a5d179987e80e0ee7bebcd1f96042f4d9381c4c1 DIST github.com-shiena-ansicolor-a422bbe96644373c5753384a59d678f7d261ff10.tar.gz 7319 BLAKE2B 62409a6d533036c023776b27c2cef51eadbd77df8bfd5df2f84ca9f679e52a21f758547df8678d5a34bc52b0cc7c1ddfa2b886203cfc7cae246d2d29cafcaba5 SHA512 adaab239eb195bc9b8394fc228b4ea6554c0c7e52a9d0fd8b80a7408302ac4cdcc072b1219e69d9db1c6791680077f6730e8ffe41208006a426247b2d135efea +DIST github.com-shiena-ansicolor-c7312218db184c554578219828d6c9498d02dcb1.tar.gz 7349 BLAKE2B ae24559b1156d9bbf8ecfc94fcaefba9aef60a6f892765bb5863dd439875c5dcc28cc77390452b080071222a1bf15e34d234b547fd97b511ec3593d19402db08 SHA512 0ca612bf2f51c69fa0552cf6eab47a615cdf160ab55478425566196d548a3006f8bede9a963970fdc2a0f3b1bdf8a151f6d467d6fd9e8171f059668b9f9599b6 DIST github.com-square-go-jose-3a5ee095dcb5030a9de84fb92c222ac652fff176.tar.gz 310003 BLAKE2B ca91ce96e506e40eaf81ee7bf513695e4f1c7173175e8de37e159dc14550f7d8dbc305ce0aa4b21741f06988cd6c4ebae310fc017c39dcedc2e21d394b635415 SHA512 d3e2ddd760a6a07f9411e3ada0ac712a1c9f64ffed5979abf3f8a16a00f2f911e57f71a0ace87975c53fe02712b9e56c10bdf01a490d5a6162929b7ea1462d49 DIST github.com-square-go-jose-56062818b5e15ee405eb8363f9498c7113e98337.tar.gz 258899 BLAKE2B 244fa5a0f7301804ee5deacda5759c7c35ab3675d29900c6ab8a54b2eb550a5bbc657a1edbe8c4133254373afcb1c276aeedd8aacac7ec4aeb37ae8fa195a342 SHA512 7675eb5d578f8215ca8c9421a75b42f63a34ffa73faa69958669669fd1355ea1df549811bbf4d87d0a393509695452128d260fd0b5d0ab7d398d5f21f6146a39 DIST github.com-square-go-jose-e18a7432cde1d90f722109d29224965a1eec5c79.tar.gz 260616 BLAKE2B 5f8b30dcf3ebc35fddd096c7edc88b0c369a6ca9e917df188e3d85297ba36ac0d6a85f3a4a12c2ac9717c718873244355e384995add4b8bbf8f139e8e0040fba SHA512 a8a89866b7afaad203326edbaab7de986509edb388cfbfa0743a07cdb54ba23743dd2d6e2752c5173930ff1aa6ec6fce165a7daf93012a8b051a1a299e7d5a4e DIST github.com-tylerb-graceful-48afeb2.tar.gz 7383 BLAKE2B acd9ac34ce4fd67b50c13546d7706b941b75d970193c0530be9d8b76962f1695520a15ae5765ba1f866cb90e45d1a395b4e8360ee6ada3165a0aa8adbbcc03b4 SHA512 c0f396ae8d112d5bfbd58f1481c66391f3856fc142e8ada630922284c4d12376a0a901edd84c49cd908de6a18ec526124fd1e0fe099d43b9a604fc7316e54623 DIST github.com-tylerstillwater-graceful-4654dfbb6ad53cb5e27f37d99b02e16c1872fbbb.tar.gz 15025 BLAKE2B 051ea49c47f7342d59d33c16c325ecee9a6721486f3de00803a1e0ce522fc3a1cce96f0f0d6c7234a9d448ff03d86ff1daaaa85301babe2907871ed2ba5c58ba SHA512 7eff4be6c47d59bb24ad59e15f7a71fc55b90cf56e66b1ccbc1959b604a5952765d90cbb506be35dd5bc780e012f597fe37c5340c47797cd89237a9b135b25f8 -EBUILD acmetool-0.0.58.ebuild 3032 BLAKE2B a425b08b555fdf3094b8f6120c3cbce230db9cf5376ea84ea45ccaaaaec79ab4738a4d99fcde0bded72efa9358d198d17428814d1942c4f026ee05ad0a2b16bc SHA512 12f158649e5fe36852361ec72a96b7b6c87111f3158ef945b8d99694ed900865861c740825a54f89742f46447422d62279674a3d22e1cd1221f479f35e656106 -EBUILD acmetool-0.2.1.ebuild 3816 BLAKE2B 3dcd02ab148ec88b573cd0f27821e79d4f38860a33ebf8cce8aedc8885b761112c76dded5952f433db48a0b16a15ca98bc4ba6a55d971044bc9afb06b4d45522 SHA512 219071c7183d677668db61ee64d34580c99949043e4cdffbf82a78d408b1d6a0f9c89ea99dac87b1c0992fac43ab7fd8fd11300979e99dee844de5b4eb06c13b -EBUILD acmetool-9999.ebuild 3816 BLAKE2B 3dcd02ab148ec88b573cd0f27821e79d4f38860a33ebf8cce8aedc8885b761112c76dded5952f433db48a0b16a15ca98bc4ba6a55d971044bc9afb06b4d45522 SHA512 219071c7183d677668db61ee64d34580c99949043e4cdffbf82a78d408b1d6a0f9c89ea99dac87b1c0992fac43ab7fd8fd11300979e99dee844de5b4eb06c13b +EBUILD acmetool-0.0.58.ebuild 3046 BLAKE2B 0e02dd49800b7f7451aac75212f01d6eadab92f739dd90e09b47b9dd51be9e284316a0682753f48d290dbeaa11fe84c0384129ee7fe01c640489fc3edfd747ca SHA512 8de5196434ae5f443b7d9c51320c98f21e0708b5e41d5cd60bb079f756e35ffea46aa3b94a9bce77b1ac8d661dbe41680963019408d0a3c2819fb6c38f82b3a8 +EBUILD acmetool-0.2.1.ebuild 3830 BLAKE2B 9fd67fd1abe105a0807f25fa53edad5cde0c32fa26f1817aaf298a908553e8aee9be627e2b0a8f833e7f80794fbdc02b10c612643d73185e2135b17ad4df2189 SHA512 c12154c0b22d0e3e7c31b3b1494d176f16a56f55e88524ba5cadba3a63a5d2f44390edcbb9249747cc75d8145e6eb454ea0c6ee71501aae632432e20f1f48ece +EBUILD acmetool-0.2.2.ebuild 5350 BLAKE2B ae9f2c5ef69b2189b87b0a09f25f1d586dd35440bc1fc743a89d0e60747cf87d6fe18f3c44d7824933dafe08e048497b398422af58fc6a89be068d7c35b016e6 SHA512 841713f3a940dace9913f3a8e3167b512c1b56a9358c2782723f0fab436040b4678c891d3492c7723782d65ab87b85a450d0e093282c265cb5662a15a19bafe1 +EBUILD acmetool-9999.ebuild 5350 BLAKE2B ae9f2c5ef69b2189b87b0a09f25f1d586dd35440bc1fc743a89d0e60747cf87d6fe18f3c44d7824933dafe08e048497b398422af58fc6a89be068d7c35b016e6 SHA512 841713f3a940dace9913f3a8e3167b512c1b56a9358c2782723f0fab436040b4678c891d3492c7723782d65ab87b85a450d0e093282c265cb5662a15a19bafe1
--- a/app-crypt/acmetool/acmetool-0.0.58.ebuild Thu Mar 23 19:45:02 2023 +0000 +++ b/app-crypt/acmetool/acmetool-0.0.58.ebuild Mon Mar 27 19:15:01 2023 +0000 @@ -15,7 +15,7 @@ DESCRIPTION="command line tool for automatically acquiring certificates from ACME servers" HOMEPAGE="https://github.com/hlandau/acmetool" if [[ "${PV}" = 9999 ]]; then - inherit golang-live + inherit x-mgcf-golang-live KEYWORDS="" else GOLANG_PKG_DEPENDENCIES=( @@ -47,7 +47,7 @@ "github.com/ogier/pflag:45c278ab3607870051a2ea9040bb85fcb8557481" "github.com/hlandau/configurable:34642c4c8cbf56801d0e34f0e82187305983ac26 -> gopkg.in/hlandau/configurable.v1" ) - inherit golang-single + inherit x-mgcf-golang-single KEYWORDS="~amd64 ~x86" fi
--- a/app-crypt/acmetool/acmetool-0.2.1.ebuild Thu Mar 23 19:45:02 2023 +0000 +++ b/app-crypt/acmetool/acmetool-0.2.1.ebuild Mon Mar 27 19:15:01 2023 +0000 @@ -1,1 +1,65 @@ -acmetool-9999.ebuild \ No newline at end of file +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ +EAPI=7 + +GOLANG_PKG_IMPORTPATH="github.com/hlandau" +GOLANG_PKG_BUILDPATH="/cmd/acmetool" +GOLANG_PKG_ARCHIVEPREFIX="v" +GOLANG_PKG_NAME="acmetool" +#GOLANG_PKG_IS_MULTIPLE="1" +# Without this, dropping privs is non-functional, which (generally) breaks +# redirector +#GOLANG_PKG_USE_CGO=1 + +DESCRIPTION="command line tool for automatically acquiring certificates from ACME servers" +HOMEPAGE="https://github.com/hlandau/acmetool" +if [[ "${PV}" = 9999 ]]; then + inherit x-mgcf-golang-live + KEYWORDS="" +else + GOLANG_PKG_DEPENDENCIES=( + "github.com/alecthomas/kingpin:947dcec5ba9c011838740e680966fd7087a71d0d -> gopkg.in/alecthomas/kingpin.v2" # v2.2.6 + "github.com/alecthomas/template:fb15b899a75114aa79cc930e33c46b577cc664b1" + "github.com/alecthomas/units:f65c72e2690dc4b403c8bd637baf4611cd4c069b" + "github.com/cheggaaa/pb:f907f6f5dd81f77c2bbc1cde92e4c5a04720cb11 -> gopkg.in/cheggaaa/pb.v1" # v1.0.28 + "github.com/coreos/go-systemd:2d78030078ef61b3cae27f42ad6d0e46db51b339" # v22.0.0 + "github.com/godbus/dbus:37bf87eef99d69c4f1d3528bd66e3a87dc201472" # v5.0.3 + "github.com/golang/crypto:06a226fb4e3765ef3f48aa2852b401bc7b98e981 -> golang.org/x" + "github.com/golang/net:3c3fba18258b2a1398a025a6aeb7374d2a470009 -> golang.org/x" + "github.com/golang/sys:05986578812163b26672dabd9b425240ae2bb0ad -> golang.org/x" + "github.com/golang/text:81608d7e9c6863c922f599e4ff1329a685218c0d -> golang.org/x" + "github.com/go-yaml/yaml:0b1645d91e851e735d3e23330303ce81f70adbe3 -> gopkg.in/yaml.v2" # v2.3.0 + "github.com/hlandau/acmeapi:4c466ab079c59d00344630cb861d075f3a75bc56 -> gopkg.in/hlandau/acmeapi.v2" # v2.0.1 + "github.com/hlandau/buildinfo:337a29b5499734e584d4630ce535af64c5fe7813" + "github.com/hlandau/configurable:41496864a1fe3e0fef2973f22372b755d2897402 -> gopkg.in/hlandau/configurable.v1" # v1.0.1 + "github.com/hlandau/dexlogconfig:244f29bd260884993b176cd14ef2f7631f6f3c18" + "github.com/hlandau/easyconfig:c31249162931b4963bbe6e501cccb60d23271a3f -> gopkg.in/hlandau/easyconfig.v1" # v1.0.17 + "github.com/hlandau/goutils:0cdb66aea5b843822af6fdffc21286b8fe8379c4" + "github.com/hlandau/service:b64b3467ebd16f64faec1640c25e318efc0c0d7b -> gopkg.in/hlandau/service.v2" # v2.0.16 + "github.com/hlandau/svcutils:c25dac49e50cbbcbef8c81b089f56156f4067729 -> gopkg.in/hlandau/svcutils.v1" # v1.0.10 + "github.com/hlandau/xlog:197ef798aed28e08ed3e176e678fda81be993a31" + "github.com/jmhodges/clock:880ee4c335489bc78d01e4d0a254ae880734bc15" # v1.1 + "github.com/mattn/go-isatty:7b513a986450394f7bbf1476909911b3aa3a55ce" # v0.0.12 + "github.com/mattn/go-runewidth:14e809f6d78fcf9f48ff9b70981472b64c05f754" # v0.0.9 + "github.com/mitchellh/go-wordwrap:9e67c67572bc5dd02aef930e2b0ae3c02a4b5a5c" # v1.0.0 + "github.com/ogier/pflag:45c278ab3607870051a2ea9040bb85fcb8557481" + "github.com/peterhellberg/link:7d8125c3085c14bd320d898c73b78ef2c5320f31" # v1.1.0 + "github.com/satori/go.uuid:b2ce2384e17bbe0c6d34077efa39dbab3e09123b" +# "github.com/satori/go.uuid:f58768cc1a7a7e77a3bd49e98cdd21419399b6a3" # v1.2.0 (incompatible API) +# "github.com/satori/go.uuid:879c5887cd475cd7864858769793b2ceb0d44feb" # v1.1.0 (incompatible API) + "github.com/shiena/ansicolor:a422bbe96644373c5753384a59d678f7d261ff10" + "github.com/square/go-jose:3a5ee095dcb5030a9de84fb92c222ac652fff176 -> gopkg.in/square/go-jose.v2" # v2.5.1 + "github.com/square/go-jose:56062818b5e15ee405eb8363f9498c7113e98337 -> gopkg.in/square/go-jose.v1" # v1.1.2 (yes, we need both v1 and v2) + "github.com/tylerstillwater/graceful:4654dfbb6ad53cb5e27f37d99b02e16c1872fbbb -> gopkg.in/tylerb/graceful.v1" # v1.2.15 + ) + inherit x-mgcf-golang-single + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="doc" + +DEPEND="dev-lang/go sys-libs/libcap" +RDEPEND="${DEPEND}"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app-crypt/acmetool/acmetool-0.2.2.ebuild Mon Mar 27 19:15:01 2023 +0000 @@ -0,0 +1,1 @@ +acmetool-9999.ebuild \ No newline at end of file
--- a/app-crypt/acmetool/acmetool-9999.ebuild Thu Mar 23 19:45:02 2023 +0000 +++ b/app-crypt/acmetool/acmetool-9999.ebuild Mon Mar 27 19:15:01 2023 +0000 @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2023 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=7 @@ -12,48 +12,57 @@ # redirector #GOLANG_PKG_USE_CGO=1 +# How to update dependency list: +# 1. Checkout the wanted tag. +# 2. Find all dependencies via: +# for file in $(find . -iname \*.go); do grep -Poz '(?s)import\s*\((.*?)\)' "$file" | tr '\0' '\n' | grep -Pv '^\s*(import\s*\(|\))\s*$'; done | sed -e 's/^\s*//' | sort | uniq +# 3. For all external dependencies visit the repos and check what version was current at time of acmetool tagging. +# ... yes, this will take a while +# 4. Try to compile and go through all missing dependencies in the same way but base dependencies on the date of each parent dependency this time +# ... yes, this may take even longer + DESCRIPTION="command line tool for automatically acquiring certificates from ACME servers" HOMEPAGE="https://github.com/hlandau/acmetool" if [[ "${PV}" = 9999 ]]; then - inherit golang-live + inherit x-mgcf-golang-live KEYWORDS="" else GOLANG_PKG_DEPENDENCIES=( - "github.com/alecthomas/kingpin:947dcec5ba9c011838740e680966fd7087a71d0d -> gopkg.in/alecthomas/kingpin.v2" # v2.2.6 - "github.com/alecthomas/template:fb15b899a75114aa79cc930e33c46b577cc664b1" - "github.com/alecthomas/units:f65c72e2690dc4b403c8bd637baf4611cd4c069b" - "github.com/cheggaaa/pb:f907f6f5dd81f77c2bbc1cde92e4c5a04720cb11 -> gopkg.in/cheggaaa/pb.v1" # v1.0.28 - "github.com/coreos/go-systemd:2d78030078ef61b3cae27f42ad6d0e46db51b339" # v22.0.0 - "github.com/godbus/dbus:37bf87eef99d69c4f1d3528bd66e3a87dc201472" # v5.0.3 - "github.com/golang/crypto:06a226fb4e3765ef3f48aa2852b401bc7b98e981 -> golang.org/x" - "github.com/golang/net:3c3fba18258b2a1398a025a6aeb7374d2a470009 -> golang.org/x" - "github.com/golang/sys:05986578812163b26672dabd9b425240ae2bb0ad -> golang.org/x" - "github.com/golang/text:81608d7e9c6863c922f599e4ff1329a685218c0d -> golang.org/x" - "github.com/go-yaml/yaml:0b1645d91e851e735d3e23330303ce81f70adbe3 -> gopkg.in/yaml.v2" # v2.3.0 - "github.com/hlandau/acmeapi:4c466ab079c59d00344630cb861d075f3a75bc56 -> gopkg.in/hlandau/acmeapi.v2" # v2.0.1 - "github.com/hlandau/buildinfo:337a29b5499734e584d4630ce535af64c5fe7813" - "github.com/hlandau/configurable:41496864a1fe3e0fef2973f22372b755d2897402 -> gopkg.in/hlandau/configurable.v1" # v1.0.1 - "github.com/hlandau/dexlogconfig:244f29bd260884993b176cd14ef2f7631f6f3c18" - "github.com/hlandau/easyconfig:c31249162931b4963bbe6e501cccb60d23271a3f -> gopkg.in/hlandau/easyconfig.v1" # v1.0.17 - "github.com/hlandau/goutils:0cdb66aea5b843822af6fdffc21286b8fe8379c4" - "github.com/hlandau/service:b64b3467ebd16f64faec1640c25e318efc0c0d7b -> gopkg.in/hlandau/service.v2" # v2.0.16 - "github.com/hlandau/svcutils:c25dac49e50cbbcbef8c81b089f56156f4067729 -> gopkg.in/hlandau/svcutils.v1" # v1.0.10 - "github.com/hlandau/xlog:197ef798aed28e08ed3e176e678fda81be993a31" - "github.com/jmhodges/clock:880ee4c335489bc78d01e4d0a254ae880734bc15" # v1.1 - "github.com/mattn/go-isatty:7b513a986450394f7bbf1476909911b3aa3a55ce" # v0.0.12 - "github.com/mattn/go-runewidth:14e809f6d78fcf9f48ff9b70981472b64c05f754" # v0.0.9 - "github.com/mitchellh/go-wordwrap:9e67c67572bc5dd02aef930e2b0ae3c02a4b5a5c" # v1.0.0 - "github.com/ogier/pflag:45c278ab3607870051a2ea9040bb85fcb8557481" - "github.com/peterhellberg/link:7d8125c3085c14bd320d898c73b78ef2c5320f31" # v1.1.0 - "github.com/satori/go.uuid:b2ce2384e17bbe0c6d34077efa39dbab3e09123b" -# "github.com/satori/go.uuid:f58768cc1a7a7e77a3bd49e98cdd21419399b6a3" # v1.2.0 (incompatible API) -# "github.com/satori/go.uuid:879c5887cd475cd7864858769793b2ceb0d44feb" # v1.1.0 (incompatible API) - "github.com/shiena/ansicolor:a422bbe96644373c5753384a59d678f7d261ff10" - "github.com/square/go-jose:3a5ee095dcb5030a9de84fb92c222ac652fff176 -> gopkg.in/square/go-jose.v2" # v2.5.1 - "github.com/square/go-jose:56062818b5e15ee405eb8363f9498c7113e98337 -> gopkg.in/square/go-jose.v1" # v1.1.2 (yes, we need both v1 and v2) + "github.com/alecthomas/kingpin:947dcec5ba9c011838740e680966fd7087a71d0d -> gopkg.in/alecthomas/kingpin.v2" # v2.2.6 (2017-12-17) + "github.com/alecthomas/template:a0175ee3bccc567396460bf5acd36800cb10c49c" # 2016-04-05, wanted by alecthomas/kingpin.v2 + "github.com/alecthomas/units:2efee857e7cfd4f3d0138cc3cbb1b4966962b93a" # 2015-10-22, wanted by alecthomas/kingpin.v2 + "github.com/cheggaaa/pb:5784bcc95a1741c2ca2b46b19f1f3d398557300c -> gopkg.in/cheggaaa/pb.v1" # v1.0.29 (2020-08-06) + "github.com/coreos/go-systemd:a9a7ef127534245b9e83cfd9d5d0b09164af7ae9" # 2022-02-03, wanted by hlandau/dexlogconfig + "github.com/gofrs/uuid:9363593625d72b57a14e20172547979b02b4aab2" # 2023-01-07 + "github.com/golang/crypto:642fcc37f5043eadb2509c84b2769e729e7d27ef -> golang.org/x" # v0.1.0 (2022-10-19); did not exist back when wanted by hlandau/acmeapi and square/go-jose.v2 ?! + "github.com/golang/net:8e2b117aee74f6b86c207a808b0255de45c0a18a -> golang.org/x" # v0.7.0 (2023-02-14); at time of acmetool-0.2.2 v0.5.0 was active but it has known DoS issues + "github.com/golang/sys:95e765b1cc43ac521bd4fd501e00774e34401449 -> golang.org/x" # v0.1.0 (2022-10-13); did not exist back when wanted by mattn/go-isatty ?! + "github.com/golang/text:71a9c9afc4cd710b9412f7f99f0d8e35b10e488a -> golang.org/x" # v0.7.0 (2023-01-31), missing deps wanted by golang/net + "github.com/go-yaml/yaml:7649d4548cb53a614db133b2a8ac1f31859dda8c -> gopkg.in/yaml.v2" # v2.4.0 + "github.com/hlandau/acmeapi:2f4c7d86d6266dcd2702933b44c8a5822f163134 -> gopkg.in/hlandau/acmeapi.v2" # v2.0.2 (2021-03-23) + "github.com/hlandau/buildinfo:337a29b5499734e584d4630ce535af64c5fe7813" # 2016-11-12, wanted by hlandau/dexlogconfig + "github.com/hlandau/configurable:41496864a1fe3e0fef2973f22372b755d2897402 -> gopkg.in/hlandau/configurable.v1" # v1.0.1 (2015-10-29), wanted by hlandau/easyconfig + "github.com/hlandau/dexlogconfig:86a3fc314fe7a8d9d58005220de8e2a85dd5744f" # 2022-03-19 + "github.com/hlandau/easyconfig:30db2856f1fc2e9494aae5f96b57ad1a22029a03 -> gopkg.in/hlandau/easyconfig.v1" # v1.0.18 (2021-12-12) + "github.com/hlandau/goutils:0cdb66aea5b843822af6fdffc21286b8fe8379c4" # 2016-07-22 + "github.com/hlandau/service:0e0d7e650dbdeaa82b606a6afc0b5f38a9e77b37 -> gopkg.in/hlandau/service.v2" # v2.0.17 + "github.com/hlandau/svcutils:6e7e875ab1a2f881e8bc757c1b2c1a779bcd57ee -> gopkg.in/hlandau/svcutils.v1" # v1.0.11 + "github.com/hlandau/xlog:5c67351975541184f98d42d2163f76bbd7330374" # 2021-03-23 + "github.com/hlandauf/dbus:b24e1c7d19a5fc589597f8abbf32a2b3688a4eb8 -> gopkg.in/hlandauf/dbus.v5" # v5.990.1 (2021-03-17), wanted by hlandauf/go-systemd + "github.com/hlandauf/go-systemd:d4cbd5bfbd436076dfb05aa42689bcff67950a47" # 2021-03-17 + "github.com/jmhodges/clock:8a401d017099427a3a22abf2b14a49d9a069f433" # 2022-06-05 + "github.com/mattn/go-isatty:3751eb45e68b73541370d508d59323eaa44c0de2" # 2021-01-18, wanted by hlandau/xlog + "github.com/mattn/go-runewidth:f1f639b53e80fe40abd644a702ed196880b0b345" # 2020-07-12, wanted by cheggaaa/pb + "github.com/mitchellh/go-wordwrap:ecf0936a077a4bd73a1cc2ac5c370f2b55618d62" # 2020-09-25 + "github.com/ogier/pflag:73e519546fc0bce0c395610afcf6aa4e5aec88eb" # 2020-10-25, wanted by hlandau/easyconfig + "github.com/peterhellberg/link:7d8125c3085c14bd320d898c73b78ef2c5320f31" # 2019-11-13, wanted by hlandau/acmeapi + "github.com/rivo/uniseg:f8f8f751c732fdcd5e158c13c28f8863ad80e9a5" # 2019-07-06, wanted by mattn/go-runewidth + "github.com/square/go-jose:56062818b5e15ee405eb8363f9498c7113e98337 -> gopkg.in/square/go-jose.v1" # v1.1.2 + "github.com/square/go-jose:3a5ee095dcb5030a9de84fb92c222ac652fff176 -> gopkg.in/square/go-jose.v2" # v2.5.1 (2020-05-01), wanted by hlandau/acmeapi.v2 + "github.com/shiena/ansicolor:c7312218db184c554578219828d6c9498d02dcb1" # 2020-09-04, wanted by hlandau/xlog "github.com/tylerstillwater/graceful:4654dfbb6ad53cb5e27f37d99b02e16c1872fbbb -> gopkg.in/tylerb/graceful.v1" # v1.2.15 ) - inherit golang-single + inherit x-mgcf-golang-single KEYWORDS="~amd64 ~x86" fi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclass/x-mgcf-golang-common.eclass Mon Mar 27 19:15:01 2023 +0000 @@ -0,0 +1,1061 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# @ECLASS: x-mgcf-golang-common.eclass +# @MAINTAINER: +# MegaCoffee Overlay <gentoo-overlay@megacoffee.net> +# @AUTHOR: +# Mauro Toffanin <toffanin.mauro@gmail.com> +# @BLURB: Base eclass for GoLang packages +# @SUPPORTED_EAPIS: 7 +# @DESCRIPTION: +# This eclass provides functionalities which are used by golang-single.eclass, +# golang-live.eclass, and as well as from ebuilds. +# +# This eclass should not be inherited directly from an ebuild. +# Instead, you should inherit golang-single or golang-live for GoLang packages. + +inherit eutils multiprocessing + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!! !!! +# !!! L E G A C Y E C L A S S !!! +# !!! !!! +# !!! DO NOT USE OUTSIDE OF MEGACOFFEE OVERLAY !!! +# !!! !!! +# !!! DO NOT USE FOR NEW EBUILDS !!! +# !!! !!! +# !!! This eclass has only been copied to megacoffee overlay from !!! +# !!! go-overlay: https://github.com/Dr-Terrible/go-overlay !!! +# !!! !!! +# !!! The only purpose is to keep currently depending ebuilds !!! +# !!! until they could be migrated to standard eclasses for Go, !!! +# !!! if suitable. !!! +# !!! !!! +# !!! go-overlay was previously imported by megacoffee until it !!! +# !!! got removed from Gentoo overlay index in March 2023, !!! +# !!! rendering megacoffee overlay unreachable as a result. !!! +# !!! !!! +# !!! Related bugs: https://bugs.gentoo.org/864653 !!! +# !!! https://bugs.gentoo.org/903167 !!! +# !!! !!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +if [[ -z ${_GOLANG_BASE_ECLASS} ]]; then +_GOLANG_BASE_ECLASS=1 + +# Silences repoman warnings. +case "${EAPI:-0}" in + 7) + case "${GOLANG_PKG_DEPEND_ON_GO_SUBSLOT:-yes}" in + yes) + GO_DEPEND="dev-lang/go:0=" + ;; + *) + GO_DEPEND="dev-lang/go:*" + ;; + esac + ;; + *) + die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; +esac + +DEPEND+=" ${GO_DEPEND}" + +RESTRICT+=" mirror strip" + +QA_FLAGS_IGNORED="usr/bin/.* + usr/sbin/.*" + +# @ECLASS-VARIABLE: GOLANG_PKG_NAME +# @DESCRIPTION: +# Sets the GoLang name for the generated package. +# GOLANG_PKG_NAME="${PN}" +GOLANG_PKG_NAME="${GOLANG_PKG_NAME:-${PN}}" + +# @ECLASS-VARIABLE: GOLANG_PKG_VERSION +# @DESCRIPTION: +# Sets the GoLang version for the generated package. +# GOLANG_PKG_VERSION="${PV}" +GOLANG_PKG_VERSION="${GOLANG_PKG_VERSION:-${PV/_pre/.pre}}" + +# @ECLASS-VARIABLE: GOLANG_PKG_IMPORTPATH +# @DESCRIPTION: +# Sets the remote import path for the generated package. +# GOLANG_PKG_IMPORTPATH="github.com/captObvious/" +GOLANG_PKG_IMPORTPATH="${GOLANG_PKG_IMPORTPATH:-}" + +# @ECLASS-VARIABLE: GOLANG_PKG_IMPORTPATH_ALIAS +# @DESCRIPTION: +# Sets an alias of the remote import path for the generated package. +# GOLANG_PKG_IMPORTPATH_ALIAS="privaterepo.com/captObvious/" +GOLANG_PKG_IMPORTPATH_ALIAS="${GOLANG_PKG_IMPORTPATH_ALIAS:=${GOLANG_PKG_IMPORTPATH}}" + +# @ECLASS-VARIABLE: GOLANG_PKG_ARCHIVEPREFIX +# @DESCRIPTION: +# Sets the archive prefix for the file URI of the package. +# Most projects hosted on GitHub's mirrors provide archives with prefix as +# 'v' or 'source-', other hosted services offer different archive formats. +# This eclass defaults to an empty prefix. +GOLANG_PKG_ARCHIVEPREFIX="${GOLANG_PKG_ARCHIVEPREFIX:-}" + +# @ECLASS-VARIABLE: GOLANG_PKG_ARCHIVESUFFIX +# @DESCRIPTION: +# Sets the archive suffix for the file URI of the package. +# Most projects hosted on GitHub's mirrors provide archives with suffix as +# '.tar.gz' or '.zip', other hosted services offer different archive formats. +# This eclass defaults to '.tar.gz'. +GOLANG_PKG_ARCHIVESUFFIX="${GOLANG_PKG_ARCHIVESUFFIX:=".tar.gz"}" + +# @ECLASS-VARIABLE: GOLANG_PKG_OUTPUT_NAME +# @DESCRIPTION: +# Specifies the output file name of the package. +# If not set, it derives from the name of the package, such as $GOLANG_PKG_NAME. +# This eclass defaults to $PN. +GOLANG_PKG_OUTPUT_NAME="${GOLANG_PKG_OUTPUT_NAME:=${PN}}" + +# @ECLASS-VARIABLE: GOLANG_PKG_BUILDPATH +# @DESCRIPTION: +# Specifies a go source file to be compiled as a single main package. +# This eclass defaults to an empty value. +# This eclass defaults to "/..." when the user declares GOLANG_PKG_IS_MULTIPLE=1 +GOLANG_PKG_BUILDPATH="${GOLANG_PKG_BUILDPATH:-}" + +# @ECLASS-VARIABLE: GOLANG_PKG_INSTALLPATH +# @DESCRIPTION: +# Sets the root path into which a binary, or a list of binaries, will be +# installed (e.x.: ${GOLANG_PKG_INSTALLPATH}/bin). +# This eclass defaults to "/usr" +GOLANG_PKG_INSTALLPATH="${GOLANG_PKG_INSTALLPATH:="/usr"}" + +# @ECLASS-VARIABLE: GOLANG_PKG_INSTALLSUFFIX +# @DESCRIPTION: +# Sets a suffix to use in the name of the package installation directory. +# This eclass defaults to an empty install suffix. +GOLANG_PKG_INSTALLSUFFIX="${GOLANG_PKG_INSTALLSUFFIX:-}" + +# @ECLASS-VARIABLE: GOLANG_PKG_IS_MULTIPLE +# @DESCRIPTION: +# Set to enable the building of multiple packages from a single import path. + +# @ECLASS-VARIABLE: GOLANG_PKG_HAVE_TEST +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set to enable the execution of automated testing. + +# @ECLASS-VARIABLE: GOLANG_PKG_HAVE_TEST_RACE +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set to enable the execution of automated testing with support for +# data race detection. + +# @ECLASS-VARIABLE: GOLANG_PKG_USE_CGO +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set to enable the compilation of the package with CGO. + +# @ECLASS-VARIABLE: GOLANG_PKG_USE_GENERATE +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set to run commands described by directives within existing golang files. + +# @ECLASS-VARIABLE: GOLANG_PKG_DEPEND_ON_GO_SUBSLOT +# @DESCRIPTION: +# Set to ensure the package does depend on the dev-lang/go subslot value. +# Possible values: {yes,no} +# This eclass defaults to "no" +GOLANG_PKG_DEPEND_ON_GO_SUBSLOT=${GOLANG_PKG_DEPEND_ON_GO_SUBSLOT:="no"} + +# @ECLASS-VARIABLE: GOLANG_PKG_LDFLAGS +# @DESCRIPTION: +# Sets the linker arguments to pass to 5l, 6l, or 8l. +# This eclass defaults to an empty list. +GOLANG_PKG_LDFLAGS="${GOLANG_PKG_LDFLAGS:-}" + +# @ECLASS-VARIABLE: GOLANG_PKG_TAGS +# @DESCRIPTION: +# Sets the list of build tags during the build. +# This eclass defaults to an empty list. +GOLANG_PKG_TAGS="${GOLANG_PKG_TAGS:-}" + +# @ECLASS-VARIABLE: GOLANG_PKG_VENDOR +# @DESCRIPTION: +# Sets additional standard Go workspaces to be appended to the environment +# variable GOPATH, as described in http://golang.org/doc/code.html. +# This eclass defaults to an empty list. +GOLANG_PKG_VENDOR=() + +# @ECLASS-VARIABLE: GOLANG_PKG_STATIK +# @DESCRIPTION: +# Sets the arguments to pass to dev-go/statik. +# This eclass defaults to an empty list. +GOLANG_PKG_STATIK="${GOLANG_PKG_STATIK:-}" + +# @ECLASS-VARIABLE: GOLANG_PKG_USE_MODULES +# @DESCRIPTION: +# Set to enable the compilation of the package with Go modules support. + + +# @ECLASS-VARIABLE: GO +# @DEFAULT_UNSET +# @DESCRIPTION: +# The absolute path to the current GoLang interpreter. +# +# This variable is set automatically after calling golang_setup(). +# +# Default value: +# @CODE +# /usr/bin/go +# @CODE + +# @ECLASS-VARIABLE: EGO +# @DEFAULT_UNSET +# @DESCRIPTION: +# The executable name of the current GoLang interpreter. +# +# This variable is set automatically after calling golang_setup(). +# +# Default value: +# @CODE +# go +# @CODE + +# @ECLASS-VARIABLE: PATCHES +# @DEFAULT_UNSET +# @DESCRIPTION: +# Array variable containing all the patches to be applied. This variable +# is expected to be defined in the global scope of ebuilds. Make sure to +# specify the full path. This variable is used in src_prepare phase. +# +# Example: +# @CODE +# PATCHES=( +# "${FILESDIR}/mypatch.patch" +# "${FILESDIR}/mypatch2.patch" +# ) +# @CODE + + + +# Adds gccgo as a compile-time dependency when GOLANG_PKG_USE_CGO is set. +#[[ -n ${GOLANG_PKG_USE_CGO} ]] && DEPEND+=" >=sys-devel/gcc-4.8.4[go]" + +# Adds dev-go/statik as a compile-time dependency when GOLANG_PKG_STATIK is set. +[[ -n ${GOLANG_PKG_STATIK} ]] && DEPEND+=" dev-go/statik" + +# Validates GOLANG_PKG_IMPORTPATH. +if [[ -z ${GOLANG_PKG_IMPORTPATH} ]]; then + eerror "The remote import path for this package has not been declared" + die "Mandatory variable GOLANG_PKG_IMPORTPATH is unset" +fi + +# Forces a multiple package build when user specifies GOLANG_PKG_IS_MULTIPLE=1. +if [[ -n ${GOLANG_PKG_IS_MULTIPLE} && -z ${GOLANG_PKG_BUILDPATH} ]]; then + GOLANG_PKG_BUILDPATH="/..." +fi + +# Validates use of GOLANG_PKG_BUILDPATH combined with GOLANG_PKG_IS_MULTIPLE +# FIX: makes sure user isn't overriding GOLANG_PKG_BUILDPATH with inane values. +if [[ -n ${GOLANG_PKG_IS_MULTIPLE} && ${GOLANG_PKG_BUILDPATH##*/} != "..." ]]; then + ewarn "Ebuild ${CATEGORY}/${PF} specifies GOLANG_PKG_IS_MULTIPLE=1," + ewarn "but then GOLANG_PKG_BUILDPATH is overridden with \"${GOLANG_PKG_BUILDPATH}\"." + ewarn "Please, fix it by appending \"/...\" to your GOLANG_PKG_BUILDPATH." + ewarn "If in doubt, remove GOLANG_PKG_BUILDPATH entirely." +fi + +# Even though xz-utils are in @system, they must still be added to DEPEND; see +# http://archives.gentoo.org/gentoo-dev/msg_a0d4833eb314d1be5d5802a3b710e0a4.xml +if [[ ${GOLANG_PKG_ARCHIVESUFFIX/.*} == "xz" ]]; then + DEPEND+=" app-arch/xz-utils" +fi + +# Defines common USE flags +IUSE="${IUSE} debug pie" +# Enables USE 'test' when required by GOLANG_PKG_HAVE_TEST. +if [[ -n ${GOLANG_PKG_HAVE_TEST} ]]; then + IUSE+=" test" +fi + +# Defines HOMEPAGE. +[ -z "$HOMEPAGE" ] && HOMEPAGE="https://${GOLANG_PKG_IMPORTPATH}/${PN}" + +# Defines SOURCE directory. +S="${WORKDIR}/gopath/src/${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}" + + +# @FUNCTION: _factorize_dependency_entities +# @INTERNAL +# @DESCRIPTION: +# Factorizes the dependency declaration in specific tokens such as the import +# path, the import path alias, the host name, the author name, the project name, +# and the revision tag. +_factorize_dependency_entities() { + debug-print-function ${FUNCNAME} "${@}" + + local -A dependency=() + local key_list=(importpathalias importpath host project_name author_name revision) + + # Strips all the white spaces from the supplied argument. + local raw_dependency="${1//\ /}" + + # Determines the alias of the import path (if present). + dependency[importpathalias]="${raw_dependency##*->}" + + # Strips the import path alias from the supplied argument. + raw_dependency="${raw_dependency%%->*}" + + # Determines the import path. + dependency[importpath]="${raw_dependency%:*}" + + # When the importpath alias is not specified, then this eclass sets the + # alias as equal to the import path minus the project name. + if [[ "${raw_dependency}" == "${dependency[importpathalias]}" ]]; then + dependency[importpathalias]="${dependency[importpath]%/*}" + fi + + # Determines the host. + dependency[host]="${dependency[importpath]%%/*}" + + # Determines the project name. + dependency[project_name]="${dependency[importpath]##*/}" + + # Determines the author name. + dependency[author_name]="${dependency[importpath]#*/}" + dependency[author_name]="${dependency[author_name]%/*}" + + # Determines the revision. + dependency[revision]="${raw_dependency#*:}" + + # Exports all the dependency tokens as an associated list. + for key in ${key_list[@]}; do + echo "${key} ${dependency[${key}]}" + done +} + + +# @FUNCTION: x-mgcf-golang_setup +# @DESCRIPTION: +# Determines where is the GoLang implementation and then set-up the +# GoLang build environment. +x-mgcf-golang_setup() { + debug-print-function ${FUNCNAME} "${@}" + + # NOTE: Keep /usr/bin/go as index [0] and never overwrite it, + # always append other binary paths after the index [0] + local GOLANG_BINS=( + /usr/bin/go + /usr/bin/gofmt + ) + + [[ -n ${GOLANG_PKG_STATIK} ]] && GOLANG_BINS+=(/usr/bin/statik) + + # Reset GoLang environment variables + unset EGO + unset EGOFMT + unset ESTATIK + unset GO + unset GOPATH + unset GOBIN + + # Determine is the GoLang interpreter is working + local IS_EXECUTABLE=1 + for binary in "${GOLANG_BINS[@]}"; do + debug-print "${FUNCNAME}: Checking ... ${binary}" + + [[ -x "${EPREFIX}/${binary}" ]] && continue + IS_EXECUTABLE=0 + ewarn "It seems that the binary '${binary}' is not executable." + done + + # dev-lang/go isn't installed or one of its binaries aren't executable. + # Either way, the Gentoo box is screwed; no need to set up the GoLang environment + [[ ${IS_EXECUTABLE} == 0 ]] && exit + + # dev-lang/go is available and working. + # Exports GO/EGO/EGOFMT global variables. + export GO="${GOLANG_BINS[0]}" + export EGO="${GOLANG_BINS[0]##*/}" + export EGOFMT="${GOLANG_BINS[1]}" + + # dev-go/statik is available and working. + # Exports ESTATIK global variable. + [[ -n ${GOLANG_PKG_STATIK} ]] && export ESTATIK="${GOLANG_BINS[2]##*/}" + + debug-print "${FUNCNAME}: GO = ${GO}" + debug-print "${FUNCNAME}: EGO = ${EGO}" + debug-print "${FUNCNAME}: EGOFMT = ${EGOFMT}" + debug-print "${FUNCNAME}: ESTATIK = ${ESTATIK}" + + # Determines go interpreter version. + GOLANG_VERSION="$( ${GO} version )" + GOLANG_VERSION="${GOLANG_VERSION/go\ version\ go}" + export GOLANG_VERSION="${GOLANG_VERSION%\ *}" + einfo "Found GoLang version: ${GOLANG_VERSION}" + + # Determines statik interpreter version. + # TODO: add version detection when statik will provide a -version option. + if [[ -n ${GOLANG_PKG_STATIK} ]]; then + local STATIK_VERSION="" + einfo "Found statik version: ${STATIK_VERSION}" + fi + + # Enable/Disable frame pointers + local GOEXPERIMENT="noframepointer" + use debug && GOEXPERIMENT="framepointer" + + # Sets the build environment inside Portage's WORKDIR. + ebegin "Setting up GoLang build environment" + + # Prepares CGO_ENABLED. + CGO_ENABLED=0 + [[ -z ${GOLANG_PKG_USE_CGO} ]] || CGO_ENABLED=1 + use pie && CGO_ENABLED=1 # PIE requires CGO + + # Prepares gopath / gobin directories inside WORKDIR. + local _GOPATH="${WORKDIR}/gopath" + local _GOBIN="${WORKDIR}/gobin" + mkdir -p "${_GOBIN}" || die + mkdir -p "${_GOPATH}"/src || die + + # Exports special env variable EGO_SRC. + export EGO_SRC="${_GOPATH}/src" + + # Exports GoLang env variables. + export GOPATH="$_GOPATH" + export GOBIN="$_GOBIN" + export CGO_ENABLED + #export GOEXPERIMENT + #export GO15VENDOREXPERIMENT=0 + + GO111MODULE="off" + [[ -z ${GOLANG_PKG_USE_MODULES} ]] || GO111MODULE="on" + export GO111MODULE + + debug-print "${FUNCNAME}: GOPATH = ${GOPATH}" + debug-print "${FUNCNAME}: GOBIN = ${GOBIN}" + debug-print "${FUNCNAME}: EGO_SRC = ${EGO_SRC}" + debug-print "${FUNCNAME}: CGO_ENABLED = ${CGO_ENABLED}" + eend +} + + +# @FUNCTION: x-mgcf-golang-common_src_prepare +# @DESCRIPTION: +# Prepare source code. +x-mgcf-golang-common_src_prepare() { + debug-print-function ${FUNCNAME} "${@}" + + pushd "${WORKDIR}" > /dev/null || die + einfo "Preparing GoLang build environment in ${GOPATH}/src" + + # If the ebuild declares an importpath alias, then its path was + # already created during the src_unpack phase. That means the eclass + # needs to create the missing original import path (GOLANG_PKG_IMPORTPATH) + # as a simbolic link pointing to the alias. + if [[ "${GOLANG_PKG_IMPORTPATH}" != "${GOLANG_PKG_IMPORTPATH_ALIAS}" ]]; then + + # If the ebuild declares a GOLANG_PKG_NAME different from PN, then + # the latter will be used as the simbolic link target. + local TARGET="${GOLANG_PKG_NAME}" + [[ "${PN}" != "${GOLANG_PKG_NAME}" ]] && TARGET="${PN}" + + x-mgcf-golang_fix_importpath_alias \ + "${GOLANG_PKG_IMPORTPATH_ALIAS}/${TARGET}" \ + "${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}" + fi + + # If the ebuild declares some GoLang dependencies, then they need to be + # correctly installed into the sand-boxed GoLang build environment which + # was set up automatically during src_unpack) phase. + if [[ ${#GOLANG_PKG_DEPENDENCIES[@]} -gt 0 ]]; then + + for i in ${!GOLANG_PKG_DEPENDENCIES[@]} ; do + + # Collects all the tokens of the dependency. + local -A DEPENDENCY=() + while read -r -d $'\n' key value; do + [[ -z ${key} ]] && continue + DEPENDENCY[$key]="${value}" + done <<-EOF + $( _factorize_dependency_entities "${GOLANG_PKG_DEPENDENCIES[$i]}" ) + EOF + + # Debug + debug-print "${FUNCNAME}: DEPENDENCY = ${GOLANG_PKG_DEPENDENCIES[$i]}" + debug-print "${FUNCNAME}: importpath = ${DEPENDENCY[importpath]}" + debug-print "${FUNCNAME}: importpathalias = ${DEPENDENCY[importpathalias]}" + debug-print "${FUNCNAME}: host = ${DEPENDENCY[host]}" + debug-print "${FUNCNAME}: author = ${DEPENDENCY[author_name]}" + debug-print "${FUNCNAME}: project = ${DEPENDENCY[project_name]}" + debug-print "${FUNCNAME}: revision = ${DEPENDENCY[revision]}" + + local message="Importing ${DEPENDENCY[importpath]}" + local destdir + + # Prepares GOPATH structure. + case ${DEPENDENCY[importpathalias]} in + gopkg.in*) + message+=" as ${DEPENDENCY[importpathalias]}" + destdir="${DEPENDENCY[importpathalias]}" + + # Creates the import path in GOPATH. + mkdir -p "${GOPATH}/src/${DEPENDENCY[importpathalias]%/*}" || die + #einfo "\n${GOPATH}/src/${DEPENDENCY[importpathalias]%/*}" + ;; + *) + [[ "${DEPENDENCY[importpath]}" != "${DEPENDENCY[importpathalias]}/${DEPENDENCY[project_name]}" ]] && message+=" as ${DEPENDENCY[importpathalias]}/${DEPENDENCY[project_name]}" + destdir="${DEPENDENCY[importpathalias]}/${DEPENDENCY[project_name]}" + + # Creates the import path in GOPATH. + mkdir -p "${GOPATH}/src/${DEPENDENCY[importpathalias]}" || die + #einfo "\n${GOPATH}/src/${DEPENDENCY[importpathalias]}" + ;; + esac + + # Moves sources from WORKDIR into GOPATH. + case ${DEPENDENCY[host]} in + github*) + ebegin "${message}" + mv ${DEPENDENCY[project_name]}-${DEPENDENCY[revision]}* "${GOPATH}"/src/${destdir} || die + eend + + # FIX: sometimes the source code inside an importpath alias + # (such as gopkg.in/mylib.v1) invokes imports from + # the original import path instead of using the alias, + # thus we need a symbolic link between the alias and + # the original import path to avoid compilation issues. + # Example: gopkg.in/Shopify/sarama.v1 erroneously + # invokes imports from github.com/shopify/sarama + if [[ ${destdir} != ${DEPENDENCY[importpath]} ]]; then + x-mgcf-golang_fix_importpath_alias ${destdir} ${DEPENDENCY[importpath]} + fi + ;; + bitbucket*) + #einfo "path: ${DEPENDENCY[author_name]}-${DEPENDENCY[project_name]}-${DEPENDENCY[revision]}" + ebegin "${message}" + mv ${DEPENDENCY[author_name]}-${DEPENDENCY[project_name]}-${DEPENDENCY[revision]}* "${GOPATH}"/src/${destdir} || die + eend + ;; + code.google*) + ebegin "${message}" + mv ${DEPENDENCY[project_name]}-${DEPENDENCY[revision]}* "${GOPATH}"/src/${destdir} || die + eend + ;; + *) die "Function 'x-mgcf-golang-common_src_prepare' doesn't support '${DEPENDENCY[importpath]}'" ;; + esac + done + + fi + + popd > /dev/null || die + + + # Auto-detects the presence of Go's vendored + # dependencies inside $S/vendor. + local VENDOR="${S}/vendor" + if [[ -d "${VENDOR}" ]]; then + x-mgcf-golang_add_vendor "${VENDOR}" + export GO15VENDOREXPERIMENT=1 + fi + + # Auto-detects the presence of Go's vendored + # dependencies inside $S/*/vendor + if [[ -n ${GOLANG_PKG_BUILDPATH} && ${GOLANG_PKG_BUILDPATH##*/} != "..." ]]; then + while read -r -d $' ' path; do + # Trims leading slash (if any). + path="${path/\//}" + + # Extracts the root path. + path="${path%%/*}" + + # Ignores $path when it's empty or a string of white spaces. + [[ -n $path ]] || continue + + local vendor="${S}/${path}/vendor" + if [[ -d "${vendor}" ]]; then + x-mgcf-golang_add_vendor "${vendor}" + fi + done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) " + fi + + + # Auto-detects the presence of Godep's workspace + # (see github.com/tools/godep for more infos). + VENDOR="${S}/Godeps/_workspace" + if [[ -d "${VENDOR}" ]]; then + x-mgcf-golang_add_vendor "${VENDOR}" + fi + + # Evaluates PATCHES array. + default_src_prepare +} + + +# @FUNCTION: x-mgcf-golang-common_src_configure +# @DESCRIPTION: +# Configure the package. +x-mgcf-golang-common_src_configure() { + debug-print-function ${FUNCNAME} "${@}" + + [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)." + + # Defines the level of verbosity. + local EGO_VERBOSE="-v" + [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x" + + # GoLang doesn't have a configure phase, + # so instead this eclass prints the output of 'go env'. + local -a GOLANG_ENV=() + while read -r line; do + GOLANG_ENV+=("${line}") + done <<-EOF + $( ${GO} env ) + EOF + + # Prints an error when 'go env' output is missing. + if [[ ${#GOLANG_ENV[@]} -eq 1 ]]; then + eerror "Your GoLang environment should be more verbose" + fi + + # Prints GoLang environment summary. + einfo " ${EGO} env" + for env in "${GOLANG_ENV[@]}"; do + einfo " - ${env}" + done + + + # Removes GoLang object files from package source directories (pkg/) + # and temporary directories (_obj/ _test*/). + local EGO_SUBPACKAGES="${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}" + case $( ver_cut 1-2 ${GOLANG_VERSION} ) in + 1.4*) ;; + *) + EGO_SUBPACKAGES+="/..." + ;; + esac +# einfo "${EGO} clean -i ${EGO_VERBOSE} ${EGO_SUBPACKAGES}" +# ${EGO} clean -i \ +# ${EGO_VERBOSE} \ +# "${EGO_SUBPACKAGES}" \ +# || die + + # Removes GoLang objects files from all the dependencies too. +# if [[ ${#GOLANG_PKG_DEPENDENCIES[@]} -gt 0 ]]; then +# +# for i in ${!GOLANG_PKG_DEPENDENCIES[@]} ; do +# +# # Collects all the tokens of the dependency. +# local -A DEPENDENCY=() +# while read -r -d $'\n' key value; do +# [[ -z ${key} ]] && continue +# DEPENDENCY[$key]="${value}" +# done <<-EOF +# $( _factorize_dependency_entities "${GOLANG_PKG_DEPENDENCIES[$i]}" ) +# EOF +# +# [[ ! -d ${DEPENDENCY[importpath]} ]] && continue +# +# # Debug +# debug-print "${FUNCNAME}: DEPENDENCY = ${GOLANG_PKG_DEPENDENCIES[$i]}" +# debug-print "${FUNCNAME}: importpath = ${DEPENDENCY[importpath]}" +# +# # Cleans object files of the dependency. +# einfo "${EGO} clean -i ${EGO_VERBOSE} ${DEPENDENCY[importpath]}" +# ${EGO} clean \ +# -i ${EGO_VERBOSE} \ +# "${DEPENDENCY[importpath]}" \ +# || die +# done +# fi + + # Before to compile Godep's dependencies it's wise to wipe out + # all pre-built object files from Godep's package source directories. + if [[ -d "${S}"/Godeps/_workspace/pkg ]]; then + ebegin "Cleaning up pre-built object files in Godep workspace" + rm -r "${S}"/Godeps/_workspace/pkg || die + eend + fi + if [[ -d "${S}"/Godeps/_workspace/bin ]]; then + ebegin "Cleaning up executables in Godep workspace" + rm -r "${S}"/Godeps/_workspace/bin || die + eend + fi + + + # Executes 'go generate'. + # NOTE: generate should never run automatically. It must be run explicitly. + if [[ -n ${GOLANG_PKG_USE_GENERATE} ]]; then + pushd "${GOPATH}/src/${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}" > /dev/null || die + einfo "${EGO} generate ${EGO_VERBOSE} ${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}/..." + ${EGO} generate \ + ${EGO_VERBOSE} \ + ./... \ + || die + popd > /dev/null || die + fi + + + # Executes 'statik' when explicitly asked. + if [[ -n ${GOLANG_PKG_STATIK} ]]; then + ebegin "${ESTATIK} $GOLANG_PKG_STATIK" + ${ESTATIK} $GOLANG_PKG_STATIK || die + eend + fi +} + + +# @FUNCTION: x-mgcf-golang-common_src_compile +# @DESCRIPTION: +# Compiles the package. +x-mgcf-golang-common_src_compile() { + debug-print-function ${FUNCNAME} "${@}" + + [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)." + + # Populates env variable GOPATH with vendored workspaces (if present). + if [[ -n ${GOLANG_PKG_VENDOR} ]]; then + einfo "Using vendored dependencies from:" + + for path in "${GOLANG_PKG_VENDOR[@]}"; do + [ -d ${path} ] || continue + + if [[ ${path//${S}\//} == "vendor" ]]; then + einfo "- vendor/ (native vendoring support)" + continue + fi + + debug-print "$FUNCNAME: GOPATH: Adding vendor path ${path}" + ebegin "- ${path//${S}\//}" + GOPATH="${GOPATH}:$( echo ${path} )" + eend + done + + export GOPATH + fi + + # Enables position-independent executables (PIE) + local EGO_PIE + use pie && EGO_PIE="-buildmode=pie" + + # Defines the install suffix. + local EGO_INSTALLSUFFIX + [[ -z ${GOLANG_PKG_INSTALLSUFFIX} ]] || EGO_INSTALLSUFFIX="-installsuffix=${GOLANG_PKG_INSTALLSUFFIX}" + + # Defines the level of verbosity. + local EGO_VERBOSE="-v" + [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x" + + # Defines the number of builds that can be run in parallel. + local EGO_PARALLEL="-p $(makeopts_jobs)" + + # Defines extra options. + local EGO_EXTRA_OPTIONS="-a" + + # Prepares build flags for the go toolchain. + local EGO_BUILD_FLAGS="$( echo ${EGO_VERBOSE} ) $( echo ${EGO_PARALLEL} ) $( echo ${EGO_EXTRA_OPTIONS} ) $( echo ${EGO_PIE} )" + [[ -n ${EGO_INSTALLSUFFIX} ]] && EGO_BUILD_FLAGS+=" $( echo ${EGO_INSTALLSUFFIX} )" + + # Detects the total number of packages. + local pkgs=0 ifs_save=${IFS} IFS=$' ' + for path in ${GOLANG_PKG_BUILDPATH[@]} ; do + pkgs=$(( $pkgs + 1 )) + done + [[ ${pkgs} -eq 0 ]] && pkgs=1 # there is always at least 1 package + IFS=${ifs_save} + + # Builds the package + einfo "Compiling ${pkgs} package(s):" + if [[ -n ${GOLANG_PKG_BUILDPATH} && ${GOLANG_PKG_BUILDPATH##*/} != "..." && ${pkgs} -gt 1 ]]; then + + # NOTE: This eclass trims all leading and trailing white spaces from the + # input of the following 'while read' loop, then appends an extra + # trailing space; this is necessary to avoid undefined behaviours + # within the loop when GOLANG_PKG_BUILDPATH is populated with only + # a single element. + while read -r -d $' ' cmd; do + # Ignores $cmd when it's empty or a string of white spaces + #einfo "cmd: |$cmd| cmd: |${cmd##*/}|" + [[ -n $cmd ]] || continue + + x-mgcf-golang_do_build \ + ${EGO_BUILD_FLAGS} \ + -o "${GOBIN}/${cmd##*/}" \ + "${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${cmd}" + done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) " + else + # If the package is a multiple package (/...) + # then this eclass doesn't specify the output name. + [[ ${GOLANG_PKG_BUILDPATH##*/} != "..." ]] && EGO_BUILD_FLAGS+=" -o ${GOBIN}/${GOLANG_PKG_OUTPUT_NAME}" + + x-mgcf-golang_do_build \ + ${EGO_BUILD_FLAGS} \ + "${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${GOLANG_PKG_BUILDPATH}" + fi +} + + +# @FUNCTION: x-mgcf-golang-common_src_install +# @DESCRIPTION: +# Installs binaries and documents from DOCS or HTML_DOCS arrays. +x-mgcf-golang-common_src_install() { + debug-print-function ${FUNCNAME} "${@}" + + [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)." + + # Enables position-independent executables (PIE) + local EGO_PIE + use pie && EGO_PIE="-buildmode=pie" + + # Defines the install suffix. + local EGO_INSTALLSUFFIX + [[ -z ${GOLANG_PKG_INSTALLSUFFIX} ]] || EGO_INSTALLSUFFIX="-installsuffix=${GOLANG_PKG_INSTALLSUFFIX}" + + # Defines the level of verbosity. + local EGO_VERBOSE="-v" + [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x" + + # Defines the number of builds that can be run in parallel. + local EGO_PARALLEL="-p $(makeopts_jobs)" + + # Defines extra options. + local EGO_EXTRA_OPTIONS + + # Prepares build flags for the go toolchain. + local EGO_BUILD_FLAGS="$( echo ${EGO_VERBOSE} ) $( echo ${EGO_PARALLEL} ) $( echo ${EGO_EXTRA_OPTIONS} ) $( echo ${EGO_PIE} )" + [[ -n ${EGO_INSTALLSUFFIX} ]] && EGO_BUILD_FLAGS+=" $( echo ${EGO_INSTALLSUFFIX} )" + + # Defines sub-packages. + local EGO_SUBPACKAGES="${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${GOLANG_PKG_BUILDPATH}" + + # Executes the pre-install phase (go install). + if [[ -n ${GOLANG_PKG_IS_MULTIPLE} ]]; then + einfo "${EGO} install -ldflags '$GOLANG_PKG_LDFLAGS' -tags '$GOLANG_PKG_TAGS' ${EGO_BUILD_FLAGS} ${EGO_SUBPACKAGES}" + ${EGO} install \ + -ldflags "${GOLANG_PKG_LDFLAGS}" \ + -tags "${GOLANG_PKG_TAGS}" \ + ${EGO_BUILD_FLAGS} \ + "${EGO_SUBPACKAGES}" \ + || die + fi + + # Installs binaries. + into ${GOLANG_PKG_INSTALLPATH} + for bin in "${GOBIN}"/* ; do + dobin ${bin} + done + + # Installs documentation. + einstalldocs +} + +# @FUNCTION: x-mgcf-golang-common_src_test +# @DESCRIPTION: +# Runs the unit tests for the main package. +x-mgcf-golang-common_src_test() { + debug-print-function ${FUNCNAME} "${@}" + + [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)." + + # Appends S and GOBIN to exported main paths. + # FIX: this is necessary for unit tests that need to invoke bins from + # $GOBIN or from within $S/bin. + export PATH="${S}/bin:${GOBIN}:${PATH}" + + # Defines the level of verbosity. + local EGO_VERBOSE="-v" + [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x" + + # Defines the number of builds that can be run in parallel. + local EGO_PARALLEL="-p $(makeopts_jobs)" + + # Defines extra options. + #local EGO_EXTRA_OPTIONS="-a" + + # Enables data race detection. + local EGO_RACE + [[ -n ${GOLANG_PKG_HAVE_TEST_RACE} ]] && EGO_RACE=" -race" + + # Prepares build flags for the go toolchain. + local EGO_BUILD_FLAGS="$( echo ${EGO_VERBOSE} ) $( echo ${EGO_PARALLEL} ) $( echo ${EGO_EXTRA_OPTIONS} )" + [[ -n ${EGO_RACE} ]] && EGO_BUILD_FLAGS+=" $( echo ${EGO_RACE} )" + + # Sanitizes vars from entra white spaces. + GOLANG_PKG_LDFLAGS="$( echo ${GOLANG_PKG_LDFLAGS} )" + GOLANG_PKG_TAGS="$( echo ${GOLANG_PKG_TAGS} )" + + # Defines sub-packages. + local EGO_SUBPACKAGES="${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${GOLANG_PKG_BUILDPATH}" + [[ -z ${GOLANG_PKG_IS_MULTIPLE} ]] || EGO_SUBPACKAGES="./..." + + # Detects the total number of packages. + local pkgs=0 ifs_save=${IFS} IFS=$' ' + for path in ${GOLANG_PKG_BUILDPATH[@]} ; do + pkgs=$(( $pkgs + 1 )) + done + [[ ${pkgs} -eq 0 ]] && pkgs=1 # there is always at least 1 package + IFS=${ifs_save} + + # Runs the Unit Tests + einfo "Testing ${pkgs} package(s):" + if [[ -n ${GOLANG_PKG_BUILDPATH} && ${GOLANG_PKG_BUILDPATH##*/} != "..." && ${pkgs} -gt 1 ]]; then + + # NOTE: This eclass trims all leading and trailing white spaces from the + # input of the following 'while read' loop, then appends an extra + # trailing space; this is necessary to avoid undefined behaviours + # within the loop when GOLANG_PKG_BUILDPATH is populated with only + # a single element. + while read -r -d $' ' cmd; do + # Ignores $cmd when it's empty or a string of white spaces + #einfo "cmd: |$cmd| cmd: |${cmd##*/}|" + [[ -n $cmd ]] || continue + + einfo "${EGO} test -ldflags '$GOLANG_PKG_LDFLAGS' -tags '$GOLANG_PKG_TAGS' ${EGO_BUILD_FLAGS} ${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${cmd}/..." + ${EGO} test \ + -ldflags "${GOLANG_PKG_LDFLAGS}" \ + -tags "${GOLANG_PKG_TAGS}" \ + ${EGO_BUILD_FLAGS} \ + "${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${cmd}/..." \ + || die + done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) " + else + # It's a single package + einfo "${EGO} test -ldflags '$GOLANG_PKG_LDFLAGS' -tags '$GOLANG_PKG_TAGS' ${EGO_BUILD_FLAGS} ${EGO_SUBPACKAGES}" + ${EGO} test \ + -ldflags "${GOLANG_PKG_LDFLAGS}" \ + -tags "${GOLANG_PKG_TAGS}" \ + ${EGO_BUILD_FLAGS} \ + "${EGO_SUBPACKAGES}" \ + || die + fi +} + + +# @FUNCTION: x-mgcf-golang_do_build +# @INTERNAL +# @USAGE: <flags> <buildpath> +# @DESCRIPTION: +# +# @CODE +# Example: +# GOLANG_PKG_LDFLAGS="-extldflags=-static" +# GOLANG_PKG_TAGS="netgo" +# +# x-mgcf-golang_do_build ${EGO_BUILD_FLAGS} ${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}${GOLANG_PKG_BUILDPATH} +# @CODE +x-mgcf-golang_do_build() { + debug-print-function ${FUNCNAME} $* + + [[ ${GOLANG_VERSION} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)." + + # Filters "=" chars from ldflags declaration. + # NOTE: from go1.5+ linker syntax is no more compatible with <go1.4; + # this hack ensures that the old behaviour is honoured. + if [[ $( ver_cut 1-2 ${GOLANG_VERSION} ) == "1.4" ]]; then + GOLANG_PKG_LDFLAGS="${GOLANG_PKG_LDFLAGS//=/ }" + fi + + # Disables debug symbols (DWARF) when not required. + if ! use debug; then + case "${GOLANG_PKG_LDFLAGS}" in + *-s*|*-w*) + # Do nothing + ;; + *) + GOLANG_PKG_LDFLAGS+=" -s -w" + esac + fi + + # Sanitizes vars from entra white spaces. + GOLANG_PKG_LDFLAGS="$( echo ${GOLANG_PKG_LDFLAGS} )" + GOLANG_PKG_TAGS="$( echo ${GOLANG_PKG_TAGS} )" + + einfo "${EGO} build -ldflags '$GOLANG_PKG_LDFLAGS' -tags '$GOLANG_PKG_TAGS' $*" + ${EGO} build \ + -ldflags "${GOLANG_PKG_LDFLAGS}" \ + -tags "${GOLANG_PKG_TAGS}" \ + $( echo $* ) \ + || die +} + + +# @FUNCTION: x-mgcf-golang_add_vendor +# @INTERNAL +# @USAGE: <path> +# @DESCRIPTION: +# +# @CODE +# Example +# +# x-mgcf-golang_add_vendor "${S}"/vendor +# x-mgcf-golang_add_vendor "${S}"/${PN}/vendor +# @CODE +x-mgcf-golang_add_vendor() { + debug-print-function ${FUNCNAME} $* + + [[ ${1} ]] || die "${FUNCNAME}: no paths given" + + [[ ${GOLANG_VERSION} ]] || die "No Golang implementation set (x-mgcf-golang_setup not called?)." + + [[ ! -d "${1}" ]] && return + + # NOTE: this hack is required by Go v1.4 and older versions. + #if [[ ! -d "${1}"/src ]]; then + # ebegin "Fixing $1" + # ln -s "${1}" "${1}"/src || die + # eend + #fi + + GOLANG_PKG_VENDOR+=(${1}) +} + + +# @FUNCTION: x-mgcf-golang_fix_importpath_alias +# @USAGE: <target> <alias> +# @DESCRIPTION: +# Helper functions for generating a symbolic link for import path <target> as +# <alias>. +# +# WARNING: Use this function only if GOLANG_PKG_DEPENDENCIES declaration of +# import path aliases doesn't work (e.g.: the package name differs from both the +# import path and the alias, or if the package name is case sensitive but the +# import path is not). +# +# @CODE +# Example: +# +# src_prepare() { +# x-mgcf-golang-single_src_prepare +# +# x-mgcf-golang_fix_importpath_alias \ +# "github.com/GoogleCloudPlatform/gcloud-golang" \ +# "google.golang.org/cloud" +# } +# @CODE +x-mgcf-golang_fix_importpath_alias() { + debug-print-function ${FUNCNAME} "${@}" + + [[ ${1} ]] || die "${FUNCNAME}: no target specified" + [[ ${2} ]] || die "${FUNCNAME}: no alias specified" + + [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)." + + + local TARGET="${1}" + local ALIAS="${2}" + + if [[ ${ALIAS%/*} != ${ALIAS} ]]; then + mkdir -p "${GOPATH}/src/${ALIAS%/*}" || die + fi + ebegin "Linking ${TARGET} as ${ALIAS}" + ln -s "${GOPATH}/src/${TARGET}" \ + "${GOPATH}/src/${ALIAS}" \ + || die + eend +} + + +fi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclass/x-mgcf-golang-live.eclass Mon Mar 27 19:15:01 2023 +0000 @@ -0,0 +1,184 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# @ECLASS: x-mgcf-golang-live.eclass +# @MAINTAINER: +# MegaCoffee Overlay <gentoo-overlay@megacoffee.net> +# @AUTHOR: +# Mauro Toffanin <toffanin.mauro@gmail.com> +# @BLURB: Eclass for fetching and unpacking HEAD shapshot of go repositories +# @DESCRIPTION: +# This eclass is written to ease the maintenance of live ebuilds +# of software written in the Go programming language. + +inherit x-mgcf-golang-common + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!! !!! +# !!! L E G A C Y E C L A S S !!! +# !!! !!! +# !!! DO NOT USE OUTSIDE OF MEGACOFFEE OVERLAY !!! +# !!! !!! +# !!! DO NOT USE FOR NEW EBUILDS !!! +# !!! !!! +# !!! This eclass has only been copied to megacoffee overlay from !!! +# !!! go-overlay: https://github.com/Dr-Terrible/go-overlay !!! +# !!! !!! +# !!! The only purpose is to keep currently depending ebuilds !!! +# !!! until they could be migrated to standard eclasses for Go, !!! +# !!! if suitable. !!! +# !!! !!! +# !!! go-overlay was previously imported by megacoffee until it !!! +# !!! got removed from Gentoo overlay index in March 2023, !!! +# !!! rendering megacoffee overlay unreachable as a result. !!! +# !!! !!! +# !!! Related bugs: https://bugs.gentoo.org/864653 !!! +# !!! https://bugs.gentoo.org/903167 !!! +# !!! !!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +EXPORT_FUNCTIONS src_prepare src_unpack src_configure src_compile src_install src_test + +if [[ -z ${_GOLANG_LIVE_ECLASS} ]]; then +_GOLANG_LIVE_ECLASS=1 + + +# @ECLASS-VARIABLE: EGO_LIVESTORE_DIR +# @INTERNAL +# @DESCRIPTION: +# Storage directory for Go sources. +# Ebuilds must not set it. + +# @ECLASS-VARIABLE: EVCS_UMASK +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable to a custom umask. This is intended to be set by +# users. By setting this to something like 002, it can make life easier +# for people who do development as non-root (but are in the portage +# group), and then switch over to building with FEATURES=userpriv. +# Or vice-versa. Shouldn't be a security issue here as anyone who has +# portage group write access already can screw the system over in more +# creative ways. + + +# Validates use of GOLANG_PKG_DEPENDENCIES. +# NOTE: a live ebuild should not have go dependencies. +# TODO: check also if GOLANG_PKG_DEPENDENCIES is an array +if [[ -n ${GOLANG_PKG_DEPENDENCIES} ]]; then + eerror "Ebuild ${CATEGORY}/${PF} specifies GOLANG_PKG_DEPENDENCIES." + eerror "Please, fix it by removing GOLANG_PKG_DEPENDENCIES entirely." + die "Banned variable GOLANG_PKG_DEPENDENCIES is set" +fi + + +# @FUNCTION: x-mgcf-golang-live_src_fetch +# @DESCRIPTION: +# Fetch a go package along with its dependencies. +x-mgcf-golang-live_src_fetch() { + debug-print-function ${FUNCTION} "$@" + + [[ -z ${EGO_LIVESTORE_DIR} ]] && die "No EGO_LIVESTORE_DIR set (x-mgcf-golang-live_src_unpack not called?)." + + # Fetch the go package + [[ -n ${EVCS_UMASK} ]] && eumask_push ${EVCS_UMASK} + + set -- env \ + GOPATH="${EGO_LIVESTORE_DIR}" \ + go get -d -u -v -t -tags="${GOLANG_PKG_TAGS}" ${@} + echo "$@" + "$@" || die + + [[ -n ${EVCS_UMASK} ]] && eumask_pop +} + +# @FUNCTION: x-mgcf-golang-live_src_unpack +# @DESCRIPTION: +# Unpack the source archive. +x-mgcf-golang-live_src_unpack() { + debug-print-function ${FUNCNAME} "$@" + + # Creates EGO_LIVESTORE_DIR if necessary. + local distdir=${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}} + : EGO_LIVESTORE_DIR=${EGO_LIVESTORE_DIR:=${distdir}/go-${PN}-livesrc} + + [[ -n ${EVCS_UMASK} ]] && eumask_push ${EVCS_UMASK} + + if [[ ! -d ${EGO_LIVESTORE_DIR} ]]; then + ( + addwrite / + mkdir -p "${EGO_LIVESTORE_DIR}" + ) || die "${ECLASS}: unable to create ${EGO_LIVESTORE_DIR}" + fi + + addwrite "${EGO_LIVESTORE_DIR}" + + [[ -n ${EVCS_UMASK} ]] && eumask_pop + + # Retrieves the GOLANG_PKG_IMPORTPATH go package. + x-mgcf-golang-live_src_fetch "${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}"/... + + # Creates SOURCE directory. + mkdir -p "${S}" || die +} + + +# @FUNCTION: x-mgcf-golang-live_src_prepare +# @DESCRIPTION: +# Prepare source code. +x-mgcf-golang-live_src_prepare() { + debug-print-function ${FUNCNAME} "${@}" + + # Sets up GoLang build environment. + x-mgcf-golang_setup + + # Imports all go dependencies + ebegin "Importing all the sources in ${GOPATH}" + cp -r "${EGO_LIVESTORE_DIR}/src" "${GOPATH}" || die "Unable to copy sources to ${GOPATH}" + eend + + x-mgcf-golang-common_src_prepare +} + + +# @FUNCTION: x-mgcf-golang-live_src_configure +# @DESCRIPTION: +# Configure the package. +x-mgcf-golang-live_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + x-mgcf-golang-common_src_configure +} + +# @FUNCTION: x-mgcf-golang-live_src_compile +# @DESCRIPTION: +# Compiles the package. +x-mgcf-golang-live_src_compile() { + debug-print-function ${FUNCNAME} "$@" + + x-mgcf-golang-common_src_compile +} + +# @FUNCTION: x-mgcf-golang-live_src_install +# @DESCRIPTION: +# Installs binaries and documents from DOCS or HTML_DOCS arrays. +x-mgcf-golang-live_src_install() { + debug-print-function ${FUNCNAME} "$@" + + x-mgcf-golang-common_src_install +} + +# @FUNCTION: x-mgcf-golang-live_src_test +# @DESCRIPTION: +# Runs the unit tests for the main package. +x-mgcf-golang-live_src_test() { + debug-print-function ${FUNCNAME} "$@" + + x-mgcf-golang-common_src_test +} + + +fi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eclass/x-mgcf-golang-single.eclass Mon Mar 27 19:15:01 2023 +0000 @@ -0,0 +1,211 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# @ECLASS: x-mgcf-golang-single.eclass +# @MAINTAINER: +# MegaCoffee Overlay <gentoo-overlay@megacoffee.net> +# @AUTHOR: +# Mauro Toffanin <toffanin.mauro@gmail.com> +# @BLURB: An eclass for GoLang packages not installed inside GOPATH/GOBIN. +# @DESCRIPTION: +# This eclass allows to install arbitrary packages written in GoLang which +# don't support being installed inside the Go environment. +# This mostly includes traditional packages (C/C++/GUI) embedding tools written +# in GoLang, and GoLang packages that need to be compiled with GCC instead of +# the standard Go interpreter. +# +# @EXAMPLE: +# Typical ebuild using golang-single.eclass: +# +# @CODE +# EAPI=5 +# +# GOLANG_PKG_IMPORTPATH="github.com/captObvious" +# GOLANG_PKG_ARCHIVESUFFIX=".zip" +# GOLANG_PKG_HAVE_TEST +# inherit golang-single qt4-r2 +# +# DESCRIPTION="Foo bar application" +# HOMEPAGE="http://example.org/foo/" +# +# LICENSE="MIT" +# KEYWORDS="~amd64 ~x86" +# SLOT="0" +# IUSE="doc qt4" +# +# CDEPEND=" +# qt4? ( +# dev-qt/qtcore:4 +# dev-qt/qtgui:4 +# )" +# RDEPEND="${CDEPEND} +# !media-gfx/bar" +# DEPEND="${CDEPEND} +# doc? ( app-doc/doxygen )" +# +# DOCS=(AUTHORS ChangeLog README "Read me.txt" TODO) +# +# PATCHES=( +# "${FILESDIR}/${P}-qt4.patch" # bug 123458 +# "${FILESDIR}/${P}-as-needed.patch" +# ) +# +# src_install() { +# use doc && HTML_DOCS=("${BUILD_DIR}/apidocs/html/") +# autotools-utils_src_install +# if use examples; then +# dobin "${BUILD_DIR}"/foo_example{1,2,3} \\ +# || die 'dobin examples failed' +# fi +# } +# +# @CODE + +inherit x-mgcf-golang-common + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!! !!! +# !!! L E G A C Y E C L A S S !!! +# !!! !!! +# !!! DO NOT USE OUTSIDE OF MEGACOFFEE OVERLAY !!! +# !!! !!! +# !!! DO NOT USE FOR NEW EBUILDS !!! +# !!! !!! +# !!! This eclass has only been copied to megacoffee overlay from !!! +# !!! go-overlay: https://github.com/Dr-Terrible/go-overlay !!! +# !!! !!! +# !!! The only purpose is to keep currently depending ebuilds !!! +# !!! until they could be migrated to standard eclasses for Go, !!! +# !!! if suitable. !!! +# !!! !!! +# !!! go-overlay was previously imported by megacoffee until it !!! +# !!! got removed from Gentoo overlay index in March 2023, !!! +# !!! rendering megacoffee overlay unreachable as a result. !!! +# !!! !!! +# !!! Related bugs: https://bugs.gentoo.org/864653 !!! +# !!! https://bugs.gentoo.org/903167 !!! +# !!! !!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +EXPORT_FUNCTIONS src_prepare src_unpack src_configure src_compile src_install src_test + +if [[ -z ${_GOLANG_SINGLE_ECLASS} ]]; then +_GOLANG_SINGLE_ECLASS=1 + + +# This eclass uses GOLANG_PKG_IMPORTPATH to populate SRC_URI. +SRC_URI="${SRC_URI:="https://${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}/archive/${GOLANG_PKG_ARCHIVEPREFIX}${GOLANG_PKG_VERSION}${GOLANG_PKG_ARCHIVESUFFIX} -> ${P}${GOLANG_PKG_ARCHIVESUFFIX}"}" + +# This eclass uses GOLANG_PKG_DEPENDENCIES associative array to populate SRC_URI +# with the required snapshots of the supplied GoLang dependencies. +if [[ ${#GOLANG_PKG_DEPENDENCIES[@]} -gt 0 ]]; then + + for i in ${!GOLANG_PKG_DEPENDENCIES[@]} ; do + + # Collects all the tokens of the dependency. + local -A DEPENDENCY=() + while read -d $'\n' key value; do + [[ -z ${key} ]] && continue + DEPENDENCY[$key]="${value}" + done <<-EOF + $( _factorize_dependency_entities "${GOLANG_PKG_DEPENDENCIES[$i]}" ) + EOF + + # Debug + debug-print "${FUNCNAME}: DEPENDENCY = ${GOLANG_PKG_DEPENDENCIES[$i]}" + debug-print "${FUNCNAME}: importpath = ${DEPENDENCY[importpath]}" + debug-print "${FUNCNAME}: revision = ${DEPENDENCY[revision]}" + + # Downloads the archive. + case ${DEPENDENCY[importpath]} in + github*) + SRC_URI+=" https://${DEPENDENCY[importpath]}/archive/${DEPENDENCY[revision]}${GOLANG_PKG_ARCHIVESUFFIX} -> ${DEPENDENCY[importpath]//\//-}-${DEPENDENCY[revision]}${GOLANG_PKG_ARCHIVESUFFIX}" + ;; + bitbucket*) + SRC_URI+=" https://${DEPENDENCY[importpath]}/get/${DEPENDENCY[revision]}.zip -> ${DEPENDENCY[importpath]//\//-}-${DEPENDENCY[revision]}.zip" + ;; + code.google*) + SRC_URI+=" https://${DEPENDENCY[project_name]}.googlecode.com/archive/${DEPENDENCY[revision]}.tar.gz -> ${DEPENDENCY[importpath]//\//-}-${DEPENDENCY[revision]}.tar.gz" + ;; + *) die "This eclass doesn't support '${DEPENDENCY[importpath]}'" ;; + esac + + done +fi + + +# @FUNCTION: x-mgcf-golang-single_src_unpack +# @DESCRIPTION: +# Unpack the source archive. +x-mgcf-golang-single_src_unpack() { + debug-print-function ${FUNCNAME} "${@}" + + default + + # Creates S. + mkdir -p "${S%/*}" || die + + # Moves main GoLang package from WORKDIR into GOPATH. + if [[ "${GOLANG_PKG_IMPORTPATH}" != "${GOLANG_PKG_IMPORTPATH_ALIAS}" ]]; then + local alias_abspath="${WORKDIR}/gopath/src/${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}" + mkdir -p "${alias_abspath%/*}" || die + mv "${GOLANG_PKG_NAME}-${GOLANG_PKG_VERSION}" "${alias_abspath}"/ || die + else + mv "${GOLANG_PKG_NAME}-${GOLANG_PKG_VERSION}" "${S}"/ || die + fi +} + + +# @FUNCTION: x-mgcf-golang-single_src_prepare +# @DESCRIPTION: +# Prepare source code. +x-mgcf-golang-single_src_prepare() { + debug-print-function ${FUNCNAME} "$@" + + # Sets up GoLang build environment. + x-mgcf-golang_setup + + x-mgcf-golang-common_src_prepare +} + +# @FUNCTION: x-mgcf-golang-single_src_configure +# @DESCRIPTION: +# Configure the package. +x-mgcf-golang-single_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + x-mgcf-golang-common_src_configure +} + +# @FUNCTION: x-mgcf-golang-single_src_compile +# @DESCRIPTION: +# Compiles the package. +x-mgcf-golang-single_src_compile() { + debug-print-function ${FUNCNAME} "$@" + + x-mgcf-golang-common_src_compile +} + +# @FUNCTION: x-mgcf-golang-single_src_install +# @DESCRIPTION: +# Installs binaries and documents from DOCS or HTML_DOCS arrays. +x-mgcf-golang-single_src_install() { + debug-print-function ${FUNCNAME} "$@" + + x-mgcf-golang-common_src_install +} + +# @FUNCTION: x-mgcf-golang-single_src_test +# @DESCRIPTION: +# Runs the unit tests for the main package. +x-mgcf-golang-single_src_test() { + debug-print-function ${FUNCNAME} "$@" + + x-mgcf-golang-common_src_test +} + +fi