golang.scm 353 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
  3. ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
  4. ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
  5. ;;; Copyright © 2016, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
  6. ;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
  7. ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
  8. ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
  9. ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
  10. ;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
  11. ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
  12. ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
  13. ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
  14. ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
  15. ;;; Copyright © 2018, 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
  16. ;;; Copyright © 2019 Giovanni Biscuolo <g@xelera.eu>
  17. ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
  18. ;;; Copyright © 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
  19. ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
  20. ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
  21. ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.com>
  22. ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
  23. ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
  24. ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
  25. ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
  26. ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
  27. ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
  28. ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@mgail.com>
  29. ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
  30. ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
  31. ;;; Copyright © 2021 jgart <jgart@dismail.de>
  32. ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
  33. ;;;
  34. ;;; This file is part of GNU Guix.
  35. ;;;
  36. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  37. ;;; under the terms of the GNU General Public License as published by
  38. ;;; the Free Software Foundation; either version 3 of the License, or (at
  39. ;;; your option) any later version.
  40. ;;;
  41. ;;; GNU Guix is distributed in the hope that it will be useful, but
  42. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  43. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  44. ;;; GNU General Public License for more details.
  45. ;;;
  46. ;;; You should have received a copy of the GNU General Public License
  47. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  48. (define-module (gnu packages golang)
  49. #:use-module ((guix licenses) #:prefix license:)
  50. #:use-module (guix utils)
  51. #:use-module ((guix build utils) #:select (alist-replace))
  52. #:use-module (guix download)
  53. #:use-module (guix git-download)
  54. #:use-module (guix packages)
  55. #:use-module (guix build-system gnu)
  56. #:use-module (guix build-system trivial)
  57. #:use-module (guix build-system go)
  58. #:use-module (gnu packages)
  59. #:use-module (gnu packages admin)
  60. #:use-module (gnu packages base)
  61. #:use-module ((gnu packages bootstrap) #:select (glibc-dynamic-linker))
  62. #:use-module (gnu packages gcc)
  63. #:use-module (gnu packages glib)
  64. #:use-module (gnu packages lua)
  65. #:use-module (gnu packages mp3)
  66. #:use-module (gnu packages pcre)
  67. #:use-module (gnu packages perl)
  68. #:use-module (gnu packages pkg-config)
  69. #:use-module (gnu packages pulseaudio)
  70. #:use-module (gnu packages syncthing)
  71. #:use-module (gnu packages terminals)
  72. #:use-module (gnu packages textutils)
  73. #:use-module (gnu packages tls)
  74. #:use-module (gnu packages web)
  75. #:use-module (ice-9 match)
  76. #:use-module (srfi srfi-1))
  77. ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
  78. ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
  79. ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
  80. ;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
  81. ;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
  82. ;; gccgo-5. Mips is not officially supported, but it should work if it is
  83. ;; bootstrapped.
  84. (define-public go-1.4
  85. (package
  86. (name "go")
  87. ;; The C-language bootstrap of Go:
  88. ;; https://golang.org/doc/install/source#go14
  89. (version "1.4-bootstrap-20171003")
  90. (source (origin
  91. (method url-fetch)
  92. (uri (string-append "https://storage.googleapis.com/golang/"
  93. name version ".tar.gz"))
  94. (sha256
  95. (base32
  96. "0liybk5z00hizsb5ypkbhqcawnwwa6mkwgvjjg4y3jm3ndg5pzzl"))))
  97. (build-system gnu-build-system)
  98. (outputs '("out"
  99. "doc"
  100. "tests"))
  101. (arguments
  102. `(#:modules ((ice-9 match)
  103. (guix build gnu-build-system)
  104. (guix build utils)
  105. (srfi srfi-1))
  106. #:tests? #f ; Tests are run by the all.bash script.
  107. ,@(if (string-prefix? "aarch64-linux" (or (%current-system)
  108. (%current-target-system)))
  109. '(#:system "armhf-linux")
  110. '())
  111. #:phases
  112. (modify-phases %standard-phases
  113. (delete 'configure)
  114. (add-after 'patch-generated-file-shebangs 'chdir
  115. (lambda _
  116. (chdir "src")
  117. #t))
  118. (add-before 'build 'prebuild
  119. (lambda* (#:key inputs outputs #:allow-other-keys)
  120. (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
  121. (ld (string-append (assoc-ref inputs "libc") "/lib"))
  122. (loader (car (find-files ld "^ld-linux.+")))
  123. (net-base (assoc-ref inputs "net-base"))
  124. (tzdata-path
  125. (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
  126. (output (assoc-ref outputs "out")))
  127. ;; Removing net/ tests, which fail when attempting to access
  128. ;; network resources not present in the build container.
  129. (for-each delete-file
  130. '("net/multicast_test.go" "net/parse_test.go"
  131. "net/port_test.go"))
  132. ;; Add libgcc to the RUNPATH.
  133. (substitute* "cmd/go/build.go"
  134. (("cgoldflags := \\[\\]string\\{\\}")
  135. (string-append "cgoldflags := []string{"
  136. "\"-rpath=" gcclib "\"}"))
  137. (("ldflags := buildLdflags")
  138. (string-append
  139. "ldflags := buildLdflags\n"
  140. "ldflags = append(ldflags, \"-r\")\n"
  141. "ldflags = append(ldflags, \"" gcclib "\")\n")))
  142. (substitute* "os/os_test.go"
  143. (("/usr/bin") (getcwd))
  144. (("/bin/pwd") (which "pwd")))
  145. ;; Disable failing tests: these tests attempt to access
  146. ;; commands or network resources which are neither available or
  147. ;; necessary for the build to succeed.
  148. (for-each
  149. (match-lambda
  150. ((file regex)
  151. (substitute* file
  152. ((regex all before test_name)
  153. (string-append before "Disabled" test_name)))))
  154. '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
  155. ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
  156. ("os/os_test.go" "(.+)(TestHostname.+)")
  157. ("time/format_test.go" "(.+)(TestParseInSydney.+)")
  158. ;; XXX: This test fails with tzdata 2020b and newer. Later
  159. ;; Go releases work fine, so just disable this for the
  160. ;; bootstrap Go.
  161. ("time/example_test.go" "(.+)(ExampleParseInLocation.+)")
  162. ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
  163. ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
  164. ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
  165. ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
  166. ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
  167. ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
  168. ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
  169. ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
  170. ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
  171. (substitute* "net/lookup_unix.go"
  172. (("/etc/protocols") (string-append net-base "/etc/protocols")))
  173. (substitute* "time/zoneinfo_unix.go"
  174. (("/usr/share/zoneinfo/") tzdata-path))
  175. (substitute* (find-files "cmd" "asm.c")
  176. (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
  177. #t)))
  178. (replace 'build
  179. (lambda* (#:key inputs outputs #:allow-other-keys)
  180. ;; FIXME: Some of the .a files are not bit-reproducible.
  181. (let* ((output (assoc-ref outputs "out")))
  182. (setenv "CC" (which "gcc"))
  183. (setenv "GOOS" "linux")
  184. (setenv "GOROOT" (dirname (getcwd)))
  185. (setenv "GOROOT_FINAL" output)
  186. (setenv "GO14TESTS" "1")
  187. (invoke "sh" "all.bash"))))
  188. (replace 'install
  189. (lambda* (#:key outputs inputs #:allow-other-keys)
  190. (let* ((output (assoc-ref outputs "out"))
  191. (doc_out (assoc-ref outputs "doc"))
  192. (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
  193. (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
  194. (tests (string-append
  195. (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
  196. (mkdir-p tests)
  197. (copy-recursively "../test" (string-append tests "/test"))
  198. (delete-file-recursively "../test")
  199. (mkdir-p docs)
  200. (copy-recursively "../api" (string-append docs "/api"))
  201. (delete-file-recursively "../api")
  202. (copy-recursively "../doc" (string-append docs "/doc"))
  203. (delete-file-recursively "../doc")
  204. (for-each (lambda (file)
  205. (let ((file (string-append "../" file)))
  206. (install-file file docs)
  207. (delete-file file)))
  208. '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
  209. "LICENSE" "VERSION" "robots.txt"))
  210. (copy-recursively "../" output)
  211. #t))))))
  212. (inputs
  213. `(("tzdata" ,tzdata)
  214. ("pcre" ,pcre)
  215. ("gcc:lib" ,(canonical-package gcc) "lib")))
  216. (native-inputs
  217. `(("pkg-config" ,pkg-config)
  218. ("which" ,which)
  219. ("net-base" ,net-base)
  220. ("perl" ,perl)))
  221. (home-page "https://golang.org/")
  222. (synopsis "Compiler and libraries for Go, a statically-typed language")
  223. (description "Go, also commonly referred to as golang, is an imperative
  224. programming language designed primarily for systems programming. Go is a
  225. compiled, statically typed language in the tradition of C and C++, but adds
  226. garbage collection, various safety features, and concurrent programming features
  227. in the style of communicating sequential processes (@dfn{CSP}).")
  228. (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
  229. (license license:bsd-3)))
  230. (define-public go-1.14
  231. (package
  232. (inherit go-1.4)
  233. (name "go")
  234. (version "1.14.15")
  235. (source
  236. (origin
  237. (method git-fetch)
  238. (uri (git-reference
  239. (url "https://github.com/golang/go")
  240. (commit (string-append "go" version))))
  241. (file-name (git-file-name name version))
  242. (sha256
  243. (base32
  244. "1crh90qkvhlx23hwsi4wxy3l3h8973lr18135y6h1nnzzwr3n3ps"))))
  245. (arguments
  246. (substitute-keyword-arguments (package-arguments go-1.4)
  247. ((#:system system)
  248. (if (string-prefix? "aarch64-linux" (or (%current-system)
  249. (%current-target-system)))
  250. "aarch64-linux"
  251. system))
  252. ((#:phases phases)
  253. `(modify-phases ,phases
  254. (replace 'prebuild
  255. (lambda* (#:key inputs outputs #:allow-other-keys)
  256. (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
  257. (ld (string-append (assoc-ref inputs "libc") "/lib"))
  258. (loader (car (find-files ld "^ld-linux.+")))
  259. (net-base (assoc-ref inputs "net-base"))
  260. (tzdata-path
  261. (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
  262. (output (assoc-ref outputs "out")))
  263. ;; Having the patch in the 'patches' field of <origin> breaks
  264. ;; the 'TestServeContent' test due to the fact that
  265. ;; timestamps are reset. Thus, apply it from here.
  266. (invoke "patch" "-p2" "--force" "-i"
  267. (assoc-ref inputs "go-skip-gc-test.patch"))
  268. ;; A side effect of these test scripts is testing
  269. ;; cgo. Attempts at using cgo flags and directives with these
  270. ;; scripts as specified here (https://golang.org/cmd/cgo/)
  271. ;; have not worked. The tests continue to state that they can
  272. ;; not find object files/headers despite being present.
  273. (for-each
  274. delete-file
  275. '("cmd/go/testdata/script/mod_case_cgo.txt"
  276. "cmd/go/testdata/script/list_find.txt"
  277. "cmd/go/testdata/script/list_compiled_imports.txt"
  278. "cmd/go/testdata/script/cgo_syso_issue29253.txt"
  279. "cmd/go/testdata/script/cover_cgo.txt"
  280. "cmd/go/testdata/script/cover_cgo_xtest.txt"
  281. "cmd/go/testdata/script/cover_cgo_extra_test.txt"
  282. "cmd/go/testdata/script/cover_cgo_extra_file.txt"
  283. "cmd/go/testdata/script/cgo_path_space.txt"
  284. "cmd/go/testdata/script/ldflag.txt"
  285. "cmd/go/testdata/script/cgo_path.txt"))
  286. (for-each make-file-writable (find-files "."))
  287. (substitute* "os/os_test.go"
  288. (("/usr/bin") (getcwd))
  289. (("/bin/pwd") (which "pwd"))
  290. (("/bin/sh") (which "sh")))
  291. ;; Backport fix for go-1.14 with GCC 9+
  292. ;; https://github.com/golang/go/issues/39157
  293. (substitute* "cmd/go/note_test.go"
  294. (("cannot find 'ld'") "cannot find [‘']ld[’']"))
  295. ;; Add libgcc to runpath
  296. (substitute* "cmd/link/internal/ld/lib.go"
  297. (("!rpath.set") "true"))
  298. (substitute* "cmd/go/internal/work/gccgo.go"
  299. (("cgoldflags := \\[\\]string\\{\\}")
  300. (string-append "cgoldflags := []string{"
  301. "\"-rpath=" gcclib "\""
  302. "}"))
  303. (("\"-lgcc_s\", ")
  304. (string-append
  305. "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
  306. (substitute* "cmd/go/internal/work/gc.go"
  307. (("ldflags = setextld\\(ldflags, compiler\\)")
  308. (string-append
  309. "ldflags = setextld(ldflags, compiler)\n"
  310. "ldflags = append(ldflags, \"-r\")\n"
  311. "ldflags = append(ldflags, \"" gcclib "\")\n")))
  312. ;; Disable failing tests: these tests attempt to access
  313. ;; commands or network resources which are neither available
  314. ;; nor necessary for the build to succeed.
  315. (for-each
  316. (match-lambda
  317. ((file regex)
  318. (substitute* file
  319. ((regex all before test_name)
  320. (string-append before "Disabled" test_name)))))
  321. '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
  322. ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
  323. ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPort.+)")
  324. ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPortWithCancel.+)")
  325. ;; 127.0.0.1 doesn't exist
  326. ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTR.+)")
  327. ;; 127.0.0.1 doesn't exist
  328. ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTRWithCancel.+)")
  329. ;; /etc/services doesn't exist
  330. ("net/parse_test.go" "(.+)(TestReadLine.+)")
  331. ("os/os_test.go" "(.+)(TestHostname.+)")
  332. ;; The user's directory doesn't exist
  333. ("os/os_test.go" "(.+)(TestUserHomeDir.+)")
  334. ("time/format_test.go" "(.+)(TestParseInSydney.+)")
  335. ("time/format_test.go" "(.+)(TestParseInLocation.+)")
  336. ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
  337. ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
  338. ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
  339. ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
  340. ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
  341. ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
  342. ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
  343. ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
  344. ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
  345. ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
  346. ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
  347. ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
  348. ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
  349. ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
  350. ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
  351. ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
  352. ("syscall/exec_linux_test.go"
  353. "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
  354. ;; These tests fail on aarch64-linux
  355. (substitute* "cmd/dist/test.go"
  356. (("t.registerHostTest\\(\"testsanitizers/msan.*") ""))
  357. ;; fix shebang for testar script
  358. ;; note the target script is generated at build time.
  359. (substitute* "../misc/cgo/testcarchive/carchive_test.go"
  360. (("#!/usr/bin/env") (string-append "#!" (which "env"))))
  361. (substitute* "net/lookup_unix.go"
  362. (("/etc/protocols") (string-append net-base "/etc/protocols")))
  363. (substitute* "net/port_unix.go"
  364. (("/etc/services") (string-append net-base "/etc/services")))
  365. (substitute* "time/zoneinfo_unix.go"
  366. (("/usr/share/zoneinfo/") tzdata-path))
  367. (substitute* (find-files "cmd" "\\.go")
  368. (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
  369. #t)))
  370. (add-before 'build 'set-bootstrap-variables
  371. (lambda* (#:key outputs inputs #:allow-other-keys)
  372. ;; Tell the build system where to find the bootstrap Go.
  373. (let ((go (assoc-ref inputs "go")))
  374. (setenv "GOROOT_BOOTSTRAP" go)
  375. (setenv "GOGC" "400")
  376. #t)))
  377. (replace 'build
  378. (lambda* (#:key inputs outputs #:allow-other-keys)
  379. ;; FIXME: Some of the .a files are not bit-reproducible.
  380. (let* ((output (assoc-ref outputs "out")))
  381. (setenv "CC" (which "gcc"))
  382. (setenv "GOOS" "linux")
  383. (setenv "GOROOT" (dirname (getcwd)))
  384. (setenv "GOROOT_FINAL" output)
  385. (setenv "CGO_ENABLED" "1")
  386. (invoke "sh" "all.bash"))))
  387. (replace 'install
  388. ;; TODO: Most of this could be factorized with Go 1.4.
  389. (lambda* (#:key outputs #:allow-other-keys)
  390. (let* ((output (assoc-ref outputs "out"))
  391. (doc_out (assoc-ref outputs "doc"))
  392. (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
  393. (src (string-append
  394. (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
  395. ;; Prevent installation of the build cache, which contains
  396. ;; store references to most of the tools used to build Go and
  397. ;; would unnecessarily increase the size of Go's closure if it
  398. ;; was installed.
  399. (delete-file-recursively "../pkg/obj")
  400. (mkdir-p src)
  401. (copy-recursively "../test" (string-append src "/test"))
  402. (delete-file-recursively "../test")
  403. (mkdir-p docs)
  404. (copy-recursively "../api" (string-append docs "/api"))
  405. (delete-file-recursively "../api")
  406. (copy-recursively "../doc" (string-append docs "/doc"))
  407. (delete-file-recursively "../doc")
  408. (for-each
  409. (lambda (file)
  410. (let* ((filein (string-append "../" file))
  411. (fileout (string-append docs "/" file)))
  412. (copy-file filein fileout)
  413. (delete-file filein)))
  414. ;; Note the slightly different file names compared to 1.4.
  415. '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
  416. "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
  417. (copy-recursively "../" output)
  418. #t)))))))
  419. (native-inputs
  420. `(("go" ,go-1.4)
  421. ("go-skip-gc-test.patch" ,(search-patch "go-skip-gc-test.patch"))
  422. ,@(match (%current-system)
  423. ((or "armhf-linux" "aarch64-linux")
  424. `(("gold" ,binutils-gold)))
  425. (_ `()))
  426. ,@(package-native-inputs go-1.4)))
  427. (supported-systems %supported-systems)))
  428. (define-public go-1.16
  429. (package
  430. (inherit go-1.14)
  431. (name "go")
  432. (version "1.16.8")
  433. (source
  434. (origin
  435. (method git-fetch)
  436. (uri (git-reference
  437. (url "https://github.com/golang/go")
  438. (commit (string-append "go" version))))
  439. (file-name (git-file-name name version))
  440. (sha256
  441. (base32
  442. "00zv65v09kr2cljxxqypk980r4b4aqjijhbw4ikppn8km68h831n"))))
  443. (arguments
  444. (substitute-keyword-arguments (package-arguments go-1.14)
  445. ((#:tests? _) #t)
  446. ((#:phases phases)
  447. `(modify-phases ,phases
  448. (add-after 'unpack 'remove-unused-sourcecode-generators
  449. (lambda _
  450. ;; Prevent perl from inclusion in closure through unused files
  451. (for-each delete-file (find-files "src" "\\.pl$"))))
  452. (replace 'prebuild
  453. (lambda* (#:key inputs outputs #:allow-other-keys)
  454. (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
  455. (net-base (assoc-ref inputs "net-base"))
  456. (tzdata-path
  457. (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
  458. ;; Having the patch in the 'patches' field of <origin> breaks
  459. ;; the 'TestServeContent' test due to the fact that
  460. ;; timestamps are reset. Thus, apply it from here.
  461. (invoke "patch" "-p2" "--force" "-i"
  462. (assoc-ref inputs "go-skip-gc-test.patch"))
  463. (invoke "patch" "-p2" "--force" "-i"
  464. (assoc-ref inputs "go-fix-script-tests.patch"))
  465. (for-each make-file-writable (find-files "."))
  466. (substitute* "os/os_test.go"
  467. (("/usr/bin") (getcwd))
  468. (("/bin/sh") (which "sh")))
  469. (substitute* "cmd/go/testdata/script/cgo_path_space.txt"
  470. (("/bin/sh") (which "sh")))
  471. ;; Add libgcc to runpath
  472. (substitute* "cmd/link/internal/ld/lib.go"
  473. (("!rpath.set") "true"))
  474. (substitute* "cmd/go/internal/work/gccgo.go"
  475. (("cgoldflags := \\[\\]string\\{\\}")
  476. (string-append "cgoldflags := []string{"
  477. "\"-Wl,-rpath=" gcclib "\""
  478. "}"))
  479. (("\"-lgcc_s\", ")
  480. (string-append
  481. "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
  482. (substitute* "cmd/go/internal/work/gc.go"
  483. (("ldflags = setextld\\(ldflags, compiler\\)")
  484. (string-append
  485. "ldflags = setextld(ldflags, compiler)\n"
  486. "ldflags = append(ldflags, \"-r\")\n"
  487. "ldflags = append(ldflags, \"" gcclib "\")\n")))
  488. ;; Disable failing tests: these tests attempt to access
  489. ;; commands or network resources which are neither available
  490. ;; nor necessary for the build to succeed.
  491. (for-each
  492. (match-lambda
  493. ((file regex)
  494. (substitute* file
  495. ((regex all before test_name)
  496. (string-append before "Disabled" test_name)))))
  497. '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
  498. ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
  499. ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPort.+)")
  500. ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPortWithCancel.+)")
  501. ;; 127.0.0.1 doesn't exist
  502. ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTR.+)")
  503. ;; 127.0.0.1 doesn't exist
  504. ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTRWithCancel.+)")
  505. ;; /etc/services doesn't exist
  506. ("net/parse_test.go" "(.+)(TestReadLine.+)")
  507. ("os/os_test.go" "(.+)(TestHostname.+)")
  508. ;; The user's directory doesn't exist
  509. ("os/os_test.go" "(.+)(TestUserHomeDir.+)")
  510. ("time/format_test.go" "(.+)(TestParseInSydney.+)")
  511. ("time/format_test.go" "(.+)(TestParseInLocation.+)")
  512. ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
  513. ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
  514. ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
  515. ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
  516. ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
  517. ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
  518. ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
  519. ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
  520. ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
  521. ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
  522. ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
  523. ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
  524. ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
  525. ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
  526. ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
  527. ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
  528. ("syscall/exec_linux_test.go"
  529. "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
  530. ;; These tests fail on aarch64-linux
  531. (substitute* "cmd/dist/test.go"
  532. (("t.registerHostTest\\(\"testsanitizers/msan.*") ""))
  533. ;; fix shebang for testar script
  534. ;; note the target script is generated at build time.
  535. (substitute* "../misc/cgo/testcarchive/carchive_test.go"
  536. (("#!/usr/bin/env") (string-append "#!" (which "env"))))
  537. (substitute* "net/lookup_unix.go"
  538. (("/etc/protocols") (string-append net-base "/etc/protocols")))
  539. (substitute* "net/port_unix.go"
  540. (("/etc/services") (string-append net-base "/etc/services")))
  541. (substitute* "time/zoneinfo_unix.go"
  542. (("/usr/share/zoneinfo/") tzdata-path)))))
  543. (replace 'build
  544. (lambda* (#:key inputs outputs (parallel-build? #t)
  545. #:allow-other-keys)
  546. ;; FIXME: Some of the .a files are not bit-reproducible.
  547. ;; (Is this still true?)
  548. (let* ((njobs (if parallel-build? (parallel-job-count) 1))
  549. (output (assoc-ref outputs "out"))
  550. (loader (string-append (assoc-ref inputs "libc")
  551. ,(glibc-dynamic-linker))))
  552. (setenv "CC" (which "gcc"))
  553. (setenv "GO_LDSO" loader)
  554. (setenv "GOOS" "linux")
  555. (setenv "GOROOT" (dirname (getcwd)))
  556. (setenv "GOROOT_FINAL" output)
  557. (setenv "GOCACHE" "/tmp/go-cache")
  558. (setenv "GOMAXPROCS" (number->string njobs))
  559. (invoke "sh" "make.bash" "--no-banner"))))
  560. (replace 'check
  561. (lambda* (#:key target (tests? (not target)) (parallel-tests? #t)
  562. #:allow-other-keys)
  563. (let* ((njobs (if parallel-tests? (parallel-job-count) 1)))
  564. (when tests?
  565. (setenv "GOMAXPROCS" (number->string njobs))
  566. (invoke "sh" "run.bash" "--no-rebuild")))))
  567. (add-before 'install 'unpatch-perl-shebangs
  568. (lambda _
  569. ;; Rewrite references to perl input in test scripts
  570. (substitute* "net/http/cgi/testdata/test.cgi"
  571. (("^#!.*") "#!/usr/bin/env perl\n"))))))))
  572. (native-inputs
  573. `(("go-fix-script-tests.patch" ,(search-patch "go-fix-script-tests.patch"))
  574. ,@(if (not (member (%current-system) (package-supported-systems go-1.4)))
  575. (alist-replace "go" (list gccgo-10) (package-native-inputs go-1.14))
  576. (package-native-inputs go-1.14))))))
  577. (define-public go-1.17
  578. (package
  579. (inherit go-1.16)
  580. (name "go")
  581. (version "1.17.1")
  582. (source
  583. (origin
  584. (method git-fetch)
  585. (uri (git-reference
  586. (url "https://github.com/golang/go")
  587. (commit (string-append "go" version))))
  588. (file-name (git-file-name name version))
  589. (sha256
  590. (base32
  591. "0wk99lwpzp4qwrksl932lm9vb70nyf4vgb5lxwh7gzjcbhlqj992"))))
  592. (outputs '("out" "tests")) ; 'tests' contains distribution tests.
  593. (arguments
  594. `(#:modules ((ice-9 match)
  595. (guix build gnu-build-system)
  596. (guix build utils))
  597. #:phases
  598. (modify-phases %standard-phases
  599. (replace 'configure
  600. (lambda* (#:key inputs outputs #:allow-other-keys)
  601. (let ((output (assoc-ref outputs "out"))
  602. (loader (string-append (assoc-ref inputs "libc")
  603. ,(glibc-dynamic-linker))))
  604. (setenv "GOOS" "linux")
  605. (setenv "GO_LDSO" loader)
  606. (setenv "GOROOT" (getcwd))
  607. (setenv "GOROOT_FINAL" (string-append output "/lib/go"))
  608. (setenv "GOGC" "400")
  609. (setenv "GOCACHE" "/tmp/go-cache"))))
  610. (add-after 'unpack 'patch-source
  611. (lambda* (#:key inputs outputs #:allow-other-keys)
  612. (let* ((net-base (assoc-ref inputs "net-base"))
  613. (tzdata-path (string-append (assoc-ref inputs "tzdata")
  614. "/share/zoneinfo")))
  615. ;; XXX: Remove when #49729 is merged?
  616. (for-each make-file-writable (find-files "src"))
  617. ;; Having the patch in the 'patches' field of <origin> breaks
  618. ;; the 'TestServeContent' test due to the fact that
  619. ;; timestamps are reset. Thus, apply it from here.
  620. (invoke "patch" "-p1" "--force" "-i"
  621. (assoc-ref inputs "go-skip-gc-test.patch"))
  622. (invoke "patch" "-p1" "--force" "-i"
  623. (assoc-ref inputs "go-fix-script-tests.patch"))
  624. (substitute* "src/os/os_test.go"
  625. (("/usr/bin") (getcwd))
  626. (("/bin/sh") (which "sh")))
  627. (substitute* "src/cmd/go/testdata/script/cgo_path_space.txt"
  628. (("/bin/sh") (which "sh")))
  629. ;; fix shebang for testar script
  630. ;; note the target script is generated at build time.
  631. (substitute* "misc/cgo/testcarchive/carchive_test.go"
  632. (("/usr/bin/env bash") (which "bash")))
  633. (substitute* "src/net/lookup_unix.go"
  634. (("/etc/protocols")
  635. (string-append net-base "/etc/protocols")))
  636. (substitute* "src/net/port_unix.go"
  637. (("/etc/services")
  638. (string-append net-base "/etc/services")))
  639. (substitute* "src/time/zoneinfo_unix.go"
  640. (("/usr/share/zoneinfo/") tzdata-path)))))
  641. (add-after 'patch-source 'disable-failing-tests
  642. (lambda _
  643. ;; Disable failing tests: these tests attempt to access
  644. ;; commands or network resources which are neither available
  645. ;; nor necessary for the build to succeed.
  646. (for-each
  647. (match-lambda
  648. ((file test)
  649. (let ((regex (string-append "^(func\\s+)(" test "\\()")))
  650. (substitute* file
  651. ((regex all before test_name)
  652. (string-append before "Disabled" test_name))))))
  653. '(("src/net/cgo_unix_test.go" "TestCgoLookupPort")
  654. ("src/net/cgo_unix_test.go" "TestCgoLookupPortWithCancel")
  655. ;; 127.0.0.1 doesn't exist
  656. ("src/net/cgo_unix_test.go" "TestCgoLookupPTR")
  657. ("src/net/cgo_unix_test.go" "TestCgoLookupPTRWithCancel")
  658. ;; /etc/services doesn't exist
  659. ("src/net/parse_test.go" "TestReadLine")
  660. ;; The user's directory doesn't exist
  661. ("src/os/os_test.go" "TestUserHomeDir")))
  662. ;; These tests fail on aarch64-linux
  663. (substitute* "src/cmd/dist/test.go"
  664. (("t.registerHostTest\\(\"testsanitizers/msan.*") ""))))
  665. (add-after 'patch-source 'enable-external-linking
  666. (lambda _
  667. ;; Invoke GCC to link any archives created with GCC (that is, any
  668. ;; packages built using 'cgo'), because Go doesn't know how to
  669. ;; handle the runpaths but GCC does. Use substitute* rather than
  670. ;; a patch since these files are liable to change often.
  671. ;;
  672. ;; XXX: Replace with GO_EXTLINK_ENABLED=1 or similar when
  673. ;; <https://github.com/golang/go/issues/31544> and/or
  674. ;; <https://github.com/golang/go/issues/43525> are resolved.
  675. (substitute* "src/cmd/link/internal/ld/config.go"
  676. (("iscgo && externalobj") "iscgo"))
  677. (substitute* '("src/cmd/nm/nm_cgo_test.go"
  678. "src/cmd/dist/test.go")
  679. (("^func.*?nternalLink\\(\\).*" all)
  680. (string-append all "\n\treturn false\n")))))
  681. (replace 'build
  682. (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
  683. (let* ((njobs (if parallel-build? (parallel-job-count) 1)))
  684. (with-directory-excursion "src"
  685. (setenv "GOMAXPROCS" (number->string njobs))
  686. (invoke "sh" "make.bash" "--no-banner")))))
  687. (replace 'check
  688. (lambda* (#:key target (tests? (not target)) (parallel-tests? #t)
  689. #:allow-other-keys)
  690. (let* ((njobs (if parallel-tests? (parallel-job-count) 1)))
  691. (when tests?
  692. (with-directory-excursion "src"
  693. (setenv "GOMAXPROCS" (number->string njobs))
  694. (invoke "sh" "run.bash" "--no-rebuild"))))))
  695. (add-before 'install 'unpatch-perl-shebangs
  696. (lambda _
  697. ;; Avoid inclusion of perl in closure by rewriting references
  698. ;; to perl input in sourcecode generators and test scripts
  699. (substitute* (cons "src/net/http/cgi/testdata/test.cgi"
  700. (find-files "src" "\\.pl$"))
  701. (("^#!.*") "#!/usr/bin/env perl\n"))))
  702. (replace 'install
  703. (lambda* (#:key outputs #:allow-other-keys)
  704. ;; Notably, we do not install archives (180M), which Go will
  705. ;; happily recompile quickly (and cache) if needed, almost
  706. ;; surely faster than they could be substituted.
  707. ;;
  708. ;; The main motivation for pre-compiled archives is to use
  709. ;; libc-linked `net' or `os' packages without a C compiler,
  710. ;; but on Guix a C compiler is necessary to properly link the
  711. ;; final binaries anyway. Many build flags also invalidate
  712. ;; these pre-compiled archives, so in practice Go often
  713. ;; recompiles them anyway.
  714. ;;
  715. ;; Upstream is also planning to no longer install these
  716. ;; archives: <https://github.com/golang/go/issues/47257>
  717. ;;
  718. ;; When necessary, a custom pre-compiled library package can
  719. ;; be created with `#:import-path "std"' and used with
  720. ;; `-pkgdir'.
  721. (let* ((out (assoc-ref outputs "out"))
  722. (tests (assoc-ref outputs "tests")))
  723. (for-each
  724. (lambda (file)
  725. (copy-recursively file (string-append out "/lib/go/" file)))
  726. '("lib" "VERSION" "pkg/include" "pkg/tool"))
  727. (for-each
  728. (match-lambda
  729. ((file dest output)
  730. ;; Copy to output/dest and symlink from output/lib/go/file.
  731. (let ((file* (string-append output "/lib/go/" file))
  732. (dest* (string-append output "/" dest)))
  733. (copy-recursively file dest*)
  734. (mkdir-p (dirname file*))
  735. (symlink (string-append "../../" dest) file*))))
  736. `(("bin" "bin" ,out)
  737. ("src" "share/go/src" ,out)
  738. ("misc" "share/go/misc" ,out)
  739. ("doc" "share/doc/go/doc" ,out)
  740. ("api" "share/go/api" ,tests)
  741. ("test" "share/go/test" ,tests))))))
  742. (add-after 'install 'install-doc-files
  743. (lambda* (#:key outputs #:allow-other-keys)
  744. (let ((out (assoc-ref outputs "out")))
  745. (for-each
  746. (lambda (file)
  747. (install-file file (string-append out "/share/doc/go")))
  748. '("AUTHORS" "CONTRIBUTORS" "CONTRIBUTING.md" "PATENTS"
  749. "README.md" "SECURITY.md"))))))))
  750. (inputs (alist-delete "gcc:lib" (package-inputs go-1.16)))))
  751. (define-public go go-1.14)
  752. (define-public go-0xacab-org-leap-shapeshifter
  753. (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474")
  754. (revision "12"))
  755. (package
  756. (name "go-0xacab-org-leap-shapeshifter")
  757. (version (git-version "0.0.0" revision commit))
  758. (source
  759. (origin
  760. (method git-fetch)
  761. (uri
  762. (git-reference
  763. (url "https://0xacab.org/leap/shapeshifter")
  764. (commit commit)))
  765. (file-name (git-file-name name version))
  766. (sha256
  767. (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i"))))
  768. (build-system go-build-system)
  769. (arguments
  770. `(#:import-path "0xacab.org/leap/shapeshifter"))
  771. (propagated-inputs
  772. `(("go-github-com-operatorfoundation-obfs4"
  773. ,go-github-com-operatorfoundation-obfs4)
  774. ("go-github-com-operatorfoundation-shapeshifter-transports"
  775. ,go-github-com-operatorfoundation-shapeshifter-transports)
  776. ("go-golang-org-x-net" ,go-golang-org-x-net)))
  777. (home-page "https://0xacab.org/leap/shapeshifter")
  778. (synopsis "Shapeshifter Dispatcher Library")
  779. (description "Shapeshifter provides network protocol shapeshifting
  780. technology. The purpose of this technology is to change the characteristics of
  781. network traffic so that it is not identified and subsequently blocked by network
  782. filtering devices.")
  783. (license license:bsd-2))))
  784. (define-public go-github-com-operatorfoundation-shapeshifter-transports
  785. (package
  786. (name "go-github-com-operatorfoundation-shapeshifter-transports")
  787. (version "3.0.12")
  788. (source
  789. (origin
  790. (method git-fetch)
  791. (uri
  792. (git-reference
  793. (url "https://github.com/OperatorFoundation/shapeshifter-transports")
  794. (commit (string-append "v" version))))
  795. (file-name (git-file-name name version))
  796. (sha256
  797. (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb"))))
  798. (build-system go-build-system)
  799. (arguments
  800. `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports"
  801. #:phases
  802. (modify-phases %standard-phases
  803. (add-after 'unpack 'patch
  804. (lambda _
  805. (substitute* (find-files "." "\\.go$")
  806. ;; To drop '.git' suffix in import path of goptlib.
  807. (("goptlib\\.git") "goptlib"))))
  808. (replace 'build
  809. (lambda arguments
  810. (for-each
  811. (lambda (directory)
  812. (apply (assoc-ref %standard-phases 'build)
  813. `(,@arguments #:import-path ,directory)))
  814. (list
  815. "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2"
  816. "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3"
  817. "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2"
  818. "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3"
  819. "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2"
  820. "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3"
  821. "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2"
  822. "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3"
  823. "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2"
  824. "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3"
  825. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2"
  826. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3"
  827. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2"
  828. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3"
  829. "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2"
  830. "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3"))))
  831. (replace 'check
  832. (lambda arguments
  833. (for-each
  834. (lambda (directory)
  835. (apply (assoc-ref %standard-phases 'check)
  836. `(,@arguments #:import-path ,directory)))
  837. (list
  838. ;;; ERROR: invalid memory address or nil pointer dereference.
  839. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2"
  840. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3"
  841. ;;; ERROR: failed with status 1.
  842. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2"
  843. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3"
  844. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2"
  845. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3"
  846. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2"
  847. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3"
  848. ;;; ERROR: bind: permission denied.
  849. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2"
  850. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3"
  851. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2"
  852. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3"))))
  853. ;;; ERROR: failed with status 1.
  854. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2"
  855. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3"
  856. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2"
  857. ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3"))))
  858. (replace 'install
  859. (lambda arguments
  860. (for-each
  861. (lambda (directory)
  862. (apply (assoc-ref %standard-phases 'install)
  863. `(,@arguments #:import-path ,directory)))
  864. (list
  865. "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2"
  866. "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3"
  867. "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2"
  868. "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3"
  869. "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2"
  870. "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3"
  871. "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2"
  872. "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3"
  873. "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2"
  874. "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3"
  875. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2"
  876. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3"
  877. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2"
  878. "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3"
  879. "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2"
  880. "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))))))
  881. (native-inputs
  882. `(("go-github-com-stretchr-testify"
  883. ,go-github-com-stretchr-testify)))
  884. (propagated-inputs
  885. `(("go-github-com-aead-chacha20"
  886. ,go-github-com-aead-chacha20)
  887. ("go-github-com-blanu-dust"
  888. ,go-github-com-blanu-dust)
  889. ("go-github-com-deckarep-golang-set"
  890. ,go-github-com-deckarep-golang-set)
  891. ("go-github-com-kataras-golog"
  892. ,go-github-com-kataras-golog)
  893. ("go-github-com-mufti1-interconv"
  894. ,go-github-com-mufti1-interconv)
  895. ("go-github-com-opentracing-opentracing-go"
  896. ,go-github-com-opentracing-opentracing-go)
  897. ("go-github-com-operatorfoundation-monolith-go"
  898. ,go-github-com-operatorfoundation-monolith-go)
  899. ("go-github-com-operatorfoundation-obfs4"
  900. ,go-github-com-operatorfoundation-obfs4)
  901. ("go-github-com-operatorfoundation-shapeshifter-ipc"
  902. ,go-github-com-operatorfoundation-shapeshifter-ipc)
  903. ("go-github-com-shadowsocks-go-shadowsocks2"
  904. ,go-github-com-shadowsocks-go-shadowsocks2)
  905. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  906. ("go-golang-org-x-net" ,go-golang-org-x-net)
  907. ("go-torproject-org-pluggable-transports-goptlib"
  908. ,go-torproject-org-pluggable-transports-goptlib)))
  909. (home-page "https://github.com/OperatorFoundation/shapeshifter-transports")
  910. (synopsis "Go implementation of Pluggable Transports")
  911. (description "Shapeshifter-Transports is a set of Pluggable Transports
  912. implementing the Go API from the Pluggable Transports 2.0 specification.
  913. Each transport implements a different method of shapeshifting network traffic.
  914. The goal is for application traffic to be sent over the network in a shapeshifted
  915. form that bypasses network filtering, allowing the application to work on
  916. networks where it would otherwise be blocked or heavily throttled.")
  917. (license license:expat)))
  918. (define-public go-github-com-kataras-golog
  919. (package
  920. (name "go-github-com-kataras-golog")
  921. (version "0.1.7")
  922. (source
  923. (origin
  924. (method git-fetch)
  925. (uri
  926. (git-reference
  927. (url "https://github.com/kataras/golog")
  928. (commit (string-append "v" version))))
  929. (file-name (git-file-name name version))
  930. (sha256
  931. (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9"))))
  932. (build-system go-build-system)
  933. (arguments
  934. `(#:import-path "github.com/kataras/golog"))
  935. (propagated-inputs
  936. `(("go-github-com-kataras-pio"
  937. ,go-github-com-kataras-pio)))
  938. (home-page "https://github.com/kataras/golog")
  939. (synopsis "Logging foundation for Go applications")
  940. (description "GoLog is a level-based logger written in Go.")
  941. (license license:bsd-3)))
  942. (define-public go-github-com-kataras-pio
  943. (package
  944. (name "go-github-com-kataras-pio")
  945. (version "0.0.10")
  946. (source
  947. (origin
  948. (method git-fetch)
  949. (uri
  950. (git-reference
  951. (url "https://github.com/kataras/pio")
  952. (commit (string-append "v" version))))
  953. (file-name (git-file-name name version))
  954. (sha256
  955. (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp"))))
  956. (build-system go-build-system)
  957. (arguments
  958. `(#:import-path "github.com/kataras/pio"))
  959. (home-page "https://github.com/kataras/pio")
  960. (synopsis "Pill for Input/Output")
  961. (description "PIO is a low-level package that provides a way to centralize
  962. different output targets. Supports colors and text decoration to all popular
  963. terminals.")
  964. (license license:bsd-3)))
  965. (define-public go-github-com-shadowsocks-go-shadowsocks2
  966. (package
  967. (name "go-github-com-shadowsocks-go-shadowsocks2")
  968. ;; Version > 0.1.3 requires go-toolchain v1.16.
  969. (version "0.1.3")
  970. (source
  971. (origin
  972. (method git-fetch)
  973. (uri
  974. (git-reference
  975. (url "https://github.com/shadowsocks/go-shadowsocks2")
  976. (commit (string-append "v" version))))
  977. (file-name (git-file-name name version))
  978. (sha256
  979. (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi"))))
  980. (build-system go-build-system)
  981. (arguments
  982. `(#:import-path "github.com/shadowsocks/go-shadowsocks2"))
  983. (propagated-inputs
  984. `(("go-github-com-riobard-go-bloom"
  985. ,go-github-com-riobard-go-bloom)
  986. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  987. ("go-golang-org-x-net" ,go-golang-org-x-net)
  988. ("go-golang-org-x-sys" ,go-golang-org-x-sys)
  989. ("go-golang-org-x-text" ,go-golang-org-x-text)))
  990. (home-page "https://github.com/shadowsocks/go-shadowsocks2")
  991. (synopsis "Shadowsocks tunnel proxy")
  992. (description "Go-ShadowSocks is a Go implementation of the Shadowsocks tunnel
  993. proxy protocol.")
  994. (license license:asl2.0)))
  995. (define-public go-github-com-riobard-go-bloom
  996. (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9")
  997. (revision "0"))
  998. (package
  999. (name "go-github-com-riobard-go-bloom")
  1000. (version (git-version "0.0.0" revision commit))
  1001. (source
  1002. (origin
  1003. (method git-fetch)
  1004. (uri
  1005. (git-reference
  1006. (url "https://github.com/riobard/go-bloom")
  1007. (commit commit)))
  1008. (file-name (git-file-name name version))
  1009. (sha256
  1010. (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj"))))
  1011. (build-system go-build-system)
  1012. (arguments
  1013. `(#:import-path "github.com/riobard/go-bloom"))
  1014. (home-page "https://github.com/riobard/go-bloom")
  1015. (synopsis "Bloom filter in Go")
  1016. (description "Go-Bloom implements bloom filter using double hashing.")
  1017. (license license:asl2.0))))
  1018. (define-public go-github-com-aead-chacha20
  1019. (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547")
  1020. (revision "0"))
  1021. (package
  1022. (name "go-github-com-aead-chacha20")
  1023. (version (git-version "0.0.0" revision commit))
  1024. (source
  1025. (origin
  1026. (method git-fetch)
  1027. (uri
  1028. (git-reference
  1029. (url "https://github.com/aead/chacha20")
  1030. (commit commit)))
  1031. (file-name (git-file-name name version))
  1032. (sha256
  1033. (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r"))))
  1034. (build-system go-build-system)
  1035. (arguments
  1036. `(#:import-path "github.com/aead/chacha20"))
  1037. (propagated-inputs
  1038. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  1039. (home-page "https://github.com/aead/chacha20")
  1040. (synopsis "ChaCha20 and XChaCha20 stream ciphers")
  1041. (description "ChaCha is a stream cipher family created by Daniel Bernstein.
  1042. The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is
  1043. standardized in RFC 7539.")
  1044. (license license:expat))))
  1045. (define-public go-github-com-mufti1-interconv
  1046. (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c")
  1047. (revision "0"))
  1048. (package
  1049. (name "go-github-com-mufti1-interconv")
  1050. (version (git-version "0.0.0" revision commit))
  1051. (source
  1052. (origin
  1053. (method git-fetch)
  1054. (uri
  1055. (git-reference
  1056. (url "https://github.com/mufti1/interconv")
  1057. (commit commit)))
  1058. (file-name (git-file-name name version))
  1059. (sha256
  1060. (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy"))))
  1061. (build-system go-build-system)
  1062. (arguments
  1063. `(#:unpack-path "github.com/mufti1/interconv"
  1064. #:import-path "github.com/mufti1/interconv/package"))
  1065. (home-page "https://github.com/mufti1/interconv")
  1066. (synopsis "Data type converter")
  1067. (description "InterConv converts interfaces into any data type.")
  1068. (license license:expat))))
  1069. (define-public go-github-com-opentracing-opentracing-go
  1070. (package
  1071. (name "go-github-com-opentracing-opentracing-go")
  1072. (version "1.2.0")
  1073. (source
  1074. (origin
  1075. (method git-fetch)
  1076. (uri
  1077. (git-reference
  1078. (url "https://github.com/opentracing/opentracing-go")
  1079. (commit (string-append "v" version))))
  1080. (file-name (git-file-name name version))
  1081. (sha256
  1082. (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h"))))
  1083. (build-system go-build-system)
  1084. (arguments
  1085. `(#:import-path "github.com/opentracing/opentracing-go"))
  1086. (native-inputs
  1087. `(("go-github-com-stretchr-testify"
  1088. ,go-github-com-stretchr-testify)))
  1089. (home-page "https://github.com/opentracing/opentracing-go")
  1090. (synopsis "OpenTracing API for Go")
  1091. (description "OpenTracing-Go is a Go implementation of the OpenTracing API.")
  1092. (license license:asl2.0)))
  1093. (define-public go-github-com-operatorfoundation-monolith-go
  1094. (package
  1095. (name "go-github-com-operatorfoundation-monolith-go")
  1096. (version "1.0.4")
  1097. (source
  1098. (origin
  1099. (method git-fetch)
  1100. (uri
  1101. (git-reference
  1102. (url "https://github.com/OperatorFoundation/monolith-go")
  1103. (commit (string-append "v" version))))
  1104. (file-name (git-file-name name version))
  1105. (sha256
  1106. (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s"))))
  1107. (build-system go-build-system)
  1108. (arguments
  1109. `(#:tests? #f ; ERROR: Generated bytes do not match correct answer.
  1110. #:unpack-path "github.com/OperatorFoundation/monolith-go"
  1111. #:import-path "github.com/OperatorFoundation/monolith-go/monolith"))
  1112. (propagated-inputs
  1113. `(("go-github-com-deckarep-golang-set"
  1114. ,go-github-com-deckarep-golang-set)))
  1115. (home-page "https://github.com/OperatorFoundation/monolith-go")
  1116. (synopsis "Byte sequences library")
  1117. (description "Monolith-Go is a Go library for working with byte sequences.")
  1118. (license license:expat)))
  1119. (define-public go-github-com-deckarep-golang-set
  1120. (package
  1121. (name "go-github-com-deckarep-golang-set")
  1122. (version "1.7.1")
  1123. (source
  1124. (origin
  1125. (method git-fetch)
  1126. (uri
  1127. (git-reference
  1128. (url "https://github.com/deckarep/golang-set")
  1129. (commit (string-append "v" version))))
  1130. (file-name (git-file-name name version))
  1131. (sha256
  1132. (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf"))))
  1133. (build-system go-build-system)
  1134. (arguments
  1135. `(#:import-path "github.com/deckarep/golang-set"))
  1136. (home-page "https://github.com/deckarep/golang-set")
  1137. (synopsis "Set type for Go")
  1138. (description "Set is the set collection for the Go language.")
  1139. (license license:expat)))
  1140. (define-public go-github-com-blanu-dust
  1141. (package
  1142. (name "go-github-com-blanu-dust")
  1143. (version "1.0.1")
  1144. (source
  1145. (origin
  1146. (method git-fetch)
  1147. (uri
  1148. (git-reference
  1149. (url "https://github.com/blanu/Dust")
  1150. (commit (string-append "v" version))))
  1151. (file-name (git-file-name name version))
  1152. (sha256
  1153. (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs"))))
  1154. (build-system go-build-system)
  1155. (arguments
  1156. `(#:unpack-path "github.com/blanu/Dust"
  1157. #:phases
  1158. (modify-phases %standard-phases
  1159. (replace 'build
  1160. (lambda arguments
  1161. (for-each
  1162. (lambda (directory)
  1163. (apply (assoc-ref %standard-phases 'build)
  1164. `(,@arguments #:import-path ,directory)))
  1165. (list
  1166. "github.com/blanu/Dust/go/buf"
  1167. "github.com/blanu/Dust/go/dist"
  1168. "github.com/blanu/Dust/go/huffman"
  1169. "github.com/blanu/Dust/go/model1"
  1170. "github.com/blanu/Dust/go/prim1"
  1171. "github.com/blanu/Dust/go/proc"
  1172. "github.com/blanu/Dust/go/sillyHex"
  1173. "github.com/blanu/Dust/go/skein"
  1174. "github.com/blanu/Dust/go/v2/Dust2_proxy"
  1175. "github.com/blanu/Dust/go/v2/Dust2_tool"
  1176. "github.com/blanu/Dust/go/v2/crypting"
  1177. "github.com/blanu/Dust/go/v2/interface"
  1178. "github.com/blanu/Dust/go/v2/shaping"))))
  1179. (replace 'check
  1180. (lambda arguments
  1181. (for-each
  1182. (lambda (directory)
  1183. (apply (assoc-ref %standard-phases 'check)
  1184. `(,@arguments #:import-path ,directory)))
  1185. (list
  1186. "github.com/blanu/Dust/go/buf"
  1187. "github.com/blanu/Dust/go/dist"
  1188. ;; Repository is missing test files directory.
  1189. ;;"github.com/blanu/Dust/go/huffman"
  1190. "github.com/blanu/Dust/go/model1"
  1191. "github.com/blanu/Dust/go/prim1"
  1192. "github.com/blanu/Dust/go/proc"
  1193. "github.com/blanu/Dust/go/sillyHex"
  1194. "github.com/blanu/Dust/go/skein"
  1195. "github.com/blanu/Dust/go/v2/Dust2_proxy"
  1196. "github.com/blanu/Dust/go/v2/Dust2_tool"
  1197. "github.com/blanu/Dust/go/v2/crypting"
  1198. "github.com/blanu/Dust/go/v2/interface"
  1199. "github.com/blanu/Dust/go/v2/shaping"))))
  1200. (replace 'install
  1201. (lambda arguments
  1202. (for-each
  1203. (lambda (directory)
  1204. (apply (assoc-ref %standard-phases 'install)
  1205. `(,@arguments #:import-path ,directory)))
  1206. (list
  1207. "github.com/blanu/Dust/go/buf"
  1208. "github.com/blanu/Dust/go/dist"
  1209. "github.com/blanu/Dust/go/huffman"
  1210. "github.com/blanu/Dust/go/model1"
  1211. "github.com/blanu/Dust/go/prim1"
  1212. "github.com/blanu/Dust/go/proc"
  1213. "github.com/blanu/Dust/go/sillyHex"
  1214. "github.com/blanu/Dust/go/skein"
  1215. "github.com/blanu/Dust/go/v2/Dust2_proxy"
  1216. "github.com/blanu/Dust/go/v2/Dust2_tool"
  1217. "github.com/blanu/Dust/go/v2/crypting"
  1218. "github.com/blanu/Dust/go/v2/interface"
  1219. "github.com/blanu/Dust/go/v2/shaping")))))))
  1220. (propagated-inputs
  1221. `(("go-github-com-operatorfoundation-ed25519"
  1222. ,go-github-com-operatorfoundation-ed25519)
  1223. ("go-github-com-op-go-logging"
  1224. ,go-github-com-op-go-logging)
  1225. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  1226. (home-page "https://github.com/blanu/Dust")
  1227. (synopsis "Censorship-resistant internet transport protocol")
  1228. (description "Dust is an Internet protocol designed to resist a number of
  1229. attacks currently in active use to censor Internet communication. While
  1230. adherence to the theoretical maxims of cryptographic security is observed where
  1231. possible, the focus of Dust is on real solutions to real attacks.")
  1232. (license
  1233. (list
  1234. ;; Skein.
  1235. license:bsd-2
  1236. ;; Others.
  1237. license:expat))))
  1238. (define-public go-github-com-op-go-logging
  1239. (package
  1240. (name "go-github-com-op-go-logging")
  1241. (version "1")
  1242. (source
  1243. (origin
  1244. (method git-fetch)
  1245. (uri
  1246. (git-reference
  1247. (url "https://github.com/op/go-logging")
  1248. (commit (string-append "v" version))))
  1249. (file-name (git-file-name name version))
  1250. (sha256
  1251. (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn"))))
  1252. (build-system go-build-system)
  1253. (arguments
  1254. `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info.
  1255. #:import-path "github.com/op/go-logging"))
  1256. (home-page "https://github.com/op/go-logging")
  1257. (synopsis "Go logging library")
  1258. (description "Go-Logging implements a logging infrastructure for Go. Its
  1259. output format is customizable and supports different logging backends like
  1260. syslog, file and memory. Multiple backends can be utilized with different log
  1261. levels per backend and logger.")
  1262. (license license:bsd-3)))
  1263. (define-public go-github-com-operatorfoundation-shapeshifter-ipc
  1264. (package
  1265. (name "go-github-com-operatorfoundation-shapeshifter-ipc")
  1266. (version "2.0.0")
  1267. (source
  1268. (origin
  1269. (method git-fetch)
  1270. (uri
  1271. (git-reference
  1272. (url "https://github.com/OperatorFoundation/shapeshifter-ipc")
  1273. (commit (string-append "v" version))))
  1274. (file-name (git-file-name name version))
  1275. (sha256
  1276. (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg"))))
  1277. (build-system go-build-system)
  1278. (arguments
  1279. `(#:tests? #f ; ERROR: undefined: Args.
  1280. #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc"
  1281. #:phases
  1282. (modify-phases %standard-phases
  1283. (replace 'build
  1284. (lambda arguments
  1285. (for-each
  1286. (lambda (directory)
  1287. (apply (assoc-ref %standard-phases 'build)
  1288. `(,@arguments #:import-path ,directory)))
  1289. (list
  1290. "github.com/OperatorFoundation/shapeshifter-ipc/v2"
  1291. "github.com/OperatorFoundation/shapeshifter-ipc/v3"))))
  1292. (replace 'check
  1293. (lambda arguments
  1294. (for-each
  1295. (lambda (directory)
  1296. (apply (assoc-ref %standard-phases 'check)
  1297. `(,@arguments #:import-path ,directory)))
  1298. (list
  1299. "github.com/OperatorFoundation/shapeshifter-ipc/v2"
  1300. "github.com/OperatorFoundation/shapeshifter-ipc/v3"))))
  1301. (replace 'install
  1302. (lambda arguments
  1303. (for-each
  1304. (lambda (directory)
  1305. (apply (assoc-ref %standard-phases 'install)
  1306. `(,@arguments #:import-path ,directory)))
  1307. (list
  1308. "github.com/OperatorFoundation/shapeshifter-ipc/v2"
  1309. "github.com/OperatorFoundation/shapeshifter-ipc/v3")))))))
  1310. (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc")
  1311. (synopsis "Go implementation of the Pluggable Transports IPC protocol")
  1312. (description "Shapeshifter-IPC is a library for Go implementing the IPC
  1313. protocol from the Pluggable Transports 2.0 specification.")
  1314. (license license:expat)))
  1315. (define-public go-github-com-operatorfoundation-obfs4
  1316. (package
  1317. (name "go-github-com-operatorfoundation-obfs4")
  1318. (version "1.0.0")
  1319. (source
  1320. (origin
  1321. (method git-fetch)
  1322. (uri
  1323. (git-reference
  1324. (url "https://github.com/OperatorFoundation/obfs4")
  1325. (commit (string-append "v" version))))
  1326. (file-name (git-file-name name version))
  1327. (sha256
  1328. (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr"))))
  1329. (build-system go-build-system)
  1330. (arguments
  1331. `(#:unpack-path "github.com/OperatorFoundation/obfs4"
  1332. #:phases
  1333. (modify-phases %standard-phases
  1334. (add-after 'unpack 'patch
  1335. (lambda _
  1336. (substitute* (find-files "." "\\.go$")
  1337. ;; To drop '.git' suffix in import path of goptlib.
  1338. (("goptlib\\.git") "goptlib"))))
  1339. (replace 'build
  1340. (lambda arguments
  1341. (for-each
  1342. (lambda (directory)
  1343. (apply (assoc-ref %standard-phases 'build)
  1344. `(,@arguments #:import-path ,directory)))
  1345. (list
  1346. "github.com/OperatorFoundation/obfs4/common/csrand"
  1347. "github.com/OperatorFoundation/obfs4/common/drbg"
  1348. "github.com/OperatorFoundation/obfs4/common/log"
  1349. "github.com/OperatorFoundation/obfs4/common/ntor"
  1350. "github.com/OperatorFoundation/obfs4/common/probdist"
  1351. "github.com/OperatorFoundation/obfs4/common/pt_extras"
  1352. "github.com/OperatorFoundation/obfs4/common/replayfilter"
  1353. "github.com/OperatorFoundation/obfs4/common/socks5"
  1354. "github.com/OperatorFoundation/obfs4/common/termmon"
  1355. "github.com/OperatorFoundation/obfs4/common/uniformdh"
  1356. "github.com/OperatorFoundation/obfs4/modes/pt_socks5"
  1357. "github.com/OperatorFoundation/obfs4/modes/stun_udp"
  1358. "github.com/OperatorFoundation/obfs4/modes/transparent_tcp"
  1359. "github.com/OperatorFoundation/obfs4/modes/transparent_udp"
  1360. "github.com/OperatorFoundation/obfs4/obfs4proxy"
  1361. "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http"
  1362. "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4"
  1363. "github.com/OperatorFoundation/obfs4/transports"))))
  1364. (replace 'check
  1365. (lambda arguments
  1366. (for-each
  1367. (lambda (directory)
  1368. (apply (assoc-ref %standard-phases 'check)
  1369. `(,@arguments #:import-path ,directory)))
  1370. (list
  1371. "github.com/OperatorFoundation/obfs4/common/csrand"
  1372. "github.com/OperatorFoundation/obfs4/common/drbg"
  1373. "github.com/OperatorFoundation/obfs4/common/log"
  1374. "github.com/OperatorFoundation/obfs4/common/ntor"
  1375. "github.com/OperatorFoundation/obfs4/common/probdist"
  1376. "github.com/OperatorFoundation/obfs4/common/pt_extras"
  1377. "github.com/OperatorFoundation/obfs4/common/replayfilter"
  1378. "github.com/OperatorFoundation/obfs4/common/socks5"
  1379. "github.com/OperatorFoundation/obfs4/common/termmon"
  1380. "github.com/OperatorFoundation/obfs4/common/uniformdh"
  1381. ;; ERROR: Println arg dialFn is a func value, not called.
  1382. ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5"
  1383. ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn.
  1384. ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp"
  1385. "github.com/OperatorFoundation/obfs4/modes/transparent_tcp"
  1386. ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn
  1387. ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp"
  1388. ;; ERROR: Println call has possible formatting directive %s.
  1389. ;;"github.com/OperatorFoundation/obfs4/obfs4proxy"
  1390. "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http"
  1391. "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4"
  1392. "github.com/OperatorFoundation/obfs4/transports"))))
  1393. (replace 'install
  1394. (lambda arguments
  1395. (for-each
  1396. (lambda (directory)
  1397. (apply (assoc-ref %standard-phases 'install)
  1398. `(,@arguments #:import-path ,directory)))
  1399. (list
  1400. "github.com/OperatorFoundation/obfs4/common/csrand"
  1401. "github.com/OperatorFoundation/obfs4/common/drbg"
  1402. "github.com/OperatorFoundation/obfs4/common/log"
  1403. "github.com/OperatorFoundation/obfs4/common/ntor"
  1404. "github.com/OperatorFoundation/obfs4/common/probdist"
  1405. "github.com/OperatorFoundation/obfs4/common/pt_extras"
  1406. "github.com/OperatorFoundation/obfs4/common/replayfilter"
  1407. "github.com/OperatorFoundation/obfs4/common/socks5"
  1408. "github.com/OperatorFoundation/obfs4/common/termmon"
  1409. "github.com/OperatorFoundation/obfs4/common/uniformdh"
  1410. "github.com/OperatorFoundation/obfs4/modes/pt_socks5"
  1411. "github.com/OperatorFoundation/obfs4/modes/stun_udp"
  1412. "github.com/OperatorFoundation/obfs4/modes/transparent_tcp"
  1413. "github.com/OperatorFoundation/obfs4/modes/transparent_udp"
  1414. "github.com/OperatorFoundation/obfs4/obfs4proxy"
  1415. "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http"
  1416. "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4"
  1417. "github.com/OperatorFoundation/obfs4/transports")))))))
  1418. (propagated-inputs
  1419. `(("go-github-com-dchest-siphash"
  1420. ,go-github-com-dchest-siphash)
  1421. ("go-github-com-operatorfoundation-ed25519"
  1422. ,go-github-com-operatorfoundation-ed25519)
  1423. ("go-github-com-willscott-goturn"
  1424. ,go-github-com-willscott-goturn)
  1425. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  1426. ("go-golang-org-x-net" ,go-golang-org-x-net)
  1427. ("go-torproject-org-pluggable-transports-goptlib"
  1428. ,go-torproject-org-pluggable-transports-goptlib)))
  1429. (home-page "https://github.com/OperatorFoundation/obfs4")
  1430. (synopsis "Network obfourscator to scramble network traffic")
  1431. (description "Obfs4 is a look-like nothing obfuscation protocol that
  1432. incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol.
  1433. The notable differences between ScrambleSuit and obfs4 are:
  1434. @itemize
  1435. @item The handshake always does a full key exchange (no such thing as a Session
  1436. Ticket Handshake).
  1437. @item The handshake uses the Tor Project's ntor handshake with public keys
  1438. obfuscated via the Elligator 2 mapping.
  1439. @item The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20).
  1440. @end itemize")
  1441. (license license:bsd-2)))
  1442. (define-public go-github-com-willscott-goturn
  1443. (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b")
  1444. (revision "0"))
  1445. (package
  1446. (name "go-github-com-willscott-goturn")
  1447. (version (git-version "0.0.0" revision commit))
  1448. (source
  1449. (origin
  1450. (method git-fetch)
  1451. (uri
  1452. (git-reference
  1453. (url "https://github.com/willscott/goturn")
  1454. (commit commit)))
  1455. (file-name (git-file-name name version))
  1456. (sha256
  1457. (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7"))))
  1458. (build-system go-build-system)
  1459. (arguments
  1460. `(#:import-path "github.com/willscott/goturn"))
  1461. (home-page "https://github.com/willscott/goturn")
  1462. (synopsis "Go TURN dialer")
  1463. (description "GoTURN is a library providing a Go interface compatible with
  1464. the golang proxy package which connects through a TURN relay. It provides
  1465. parsing and encoding support for STUN and TURN protocols.")
  1466. (license license:bsd-3))))
  1467. (define-public go-torproject-org-pluggable-transports-goptlib
  1468. (package
  1469. (name "go-torproject-org-pluggable-transports-goptlib")
  1470. (version "1.1.0")
  1471. (source
  1472. (origin
  1473. (method git-fetch)
  1474. (uri
  1475. (git-reference
  1476. (url "https://git.torproject.org/pluggable-transports/goptlib")
  1477. (commit (string-append "v" version))))
  1478. (file-name (git-file-name name version))
  1479. (sha256
  1480. (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc"))))
  1481. (build-system go-build-system)
  1482. (arguments
  1483. `(#:import-path "git.torproject.org/pluggable-transports/goptlib"))
  1484. (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib.git/")
  1485. (synopsis "Go pluggable transports library")
  1486. (description "GoPtLib is a library for writing Tor pluggable transports in
  1487. Go.")
  1488. (license license:cc0)))
  1489. (define-public go-github-com-sevlyar-go-daemon
  1490. (package
  1491. (name "go-github-com-sevlyar-go-daemon")
  1492. (version "0.1.5")
  1493. (source
  1494. (origin
  1495. (method git-fetch)
  1496. (uri
  1497. (git-reference
  1498. (url "https://github.com/sevlyar/go-daemon")
  1499. (commit (string-append "v" version))))
  1500. (file-name (git-file-name name version))
  1501. (modules '((guix build utils)))
  1502. (snippet
  1503. ;; XXX: Remove when updating
  1504. '(begin
  1505. (substitute* "compilation_test.go"
  1506. ((".*\"darwin/386\".*") ""))))
  1507. (sha256
  1508. (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk"))))
  1509. (build-system go-build-system)
  1510. (arguments
  1511. `(#:import-path "github.com/sevlyar/go-daemon"))
  1512. (propagated-inputs
  1513. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  1514. (home-page "https://github.com/sevlyar/go-daemon")
  1515. (synopsis "Library for writing system daemons")
  1516. (description "Go-Daemon is a library for writing system daemons in Go.")
  1517. (license license:expat)))
  1518. (define-public go-github-com-keybase-go-ps
  1519. (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50")
  1520. (revision "0"))
  1521. (package
  1522. (name "go-github-com-keybase-go-ps")
  1523. (version (git-version "0.0.0" revision commit))
  1524. (source
  1525. (origin
  1526. (method git-fetch)
  1527. (uri
  1528. (git-reference
  1529. (url "https://github.com/keybase/go-ps")
  1530. (commit commit)))
  1531. (file-name (git-file-name name version))
  1532. (sha256
  1533. (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h"))))
  1534. (build-system go-build-system)
  1535. (arguments
  1536. `(#:import-path "github.com/keybase/go-ps"
  1537. #:phases
  1538. (modify-phases %standard-phases
  1539. (add-after 'unpack 'fix-tests
  1540. (lambda* (#:key native-inputs inputs #:allow-other-keys)
  1541. (substitute* (find-files "." "test\\.go")
  1542. (("/bin/sleep" command)
  1543. (string-append
  1544. (assoc-ref (or native-inputs inputs) "coreutils")
  1545. command)))
  1546. (substitute* "src/github.com/keybase/go-ps/process_openbsd.go"
  1547. (("^// \\+build ignore") "")))))))
  1548. (native-inputs
  1549. `(("coreutils" ,coreutils)
  1550. ("go-github-com-stretchr-testify"
  1551. ,go-github-com-stretchr-testify)))
  1552. (home-page "https://github.com/keybase/go-ps")
  1553. (synopsis "Process list library for Go")
  1554. (description "Go-Ps is a library for Go that implements OS-specific APIs
  1555. to list and manipulate processes in a safe way.")
  1556. (license license:expat))))
  1557. (define-public go-github-com-apparentlymart-go-openvpn-mgmt
  1558. (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210")
  1559. (revision "0"))
  1560. (package
  1561. (name "go-github-com-apparentlymart-go-openvpn-mgmt")
  1562. (version (git-version "0.0.0" revision commit))
  1563. (source
  1564. (origin
  1565. (method git-fetch)
  1566. (uri
  1567. (git-reference
  1568. (url "https://github.com/apparentlymart/go-openvpn-mgmt")
  1569. (commit commit)))
  1570. (file-name (git-file-name name version))
  1571. (sha256
  1572. (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k"))))
  1573. (build-system go-build-system)
  1574. (arguments
  1575. `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt"
  1576. #:phases
  1577. (modify-phases %standard-phases
  1578. (replace 'build
  1579. (lambda arguments
  1580. (for-each
  1581. (lambda (directory)
  1582. (apply (assoc-ref %standard-phases 'build)
  1583. `(,@arguments #:import-path ,directory)))
  1584. (list
  1585. "github.com/apparentlymart/go-openvpn-mgmt/demux"
  1586. "github.com/apparentlymart/go-openvpn-mgmt/openvpn"))))
  1587. (replace 'check
  1588. (lambda arguments
  1589. (for-each
  1590. (lambda (directory)
  1591. (apply (assoc-ref %standard-phases 'check)
  1592. `(,@arguments #:import-path ,directory)))
  1593. (list
  1594. "github.com/apparentlymart/go-openvpn-mgmt/demux"
  1595. "github.com/apparentlymart/go-openvpn-mgmt/openvpn"))))
  1596. (replace 'install
  1597. (lambda arguments
  1598. (for-each
  1599. (lambda (directory)
  1600. (apply (assoc-ref %standard-phases 'install)
  1601. `(,@arguments #:import-path ,directory)))
  1602. (list
  1603. "github.com/apparentlymart/go-openvpn-mgmt/demux"
  1604. "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))))))
  1605. (home-page "https://github.com/apparentlymart/go-openvpn-mgmt")
  1606. (synopsis "Go client library for OpenVPN's management protocol")
  1607. (description "Go-OpenVPN-Mgmt implements a client for the OpenVPN
  1608. management interface. It can be used to monitor and control an OpenVPN process
  1609. running with its management port enabled.")
  1610. (license license:expat))))
  1611. (define-public go-github-com-emersion-go-autostart
  1612. (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c")
  1613. (revision "0"))
  1614. (package
  1615. (name "go-github-com-emersion-go-autostart")
  1616. (version (git-version "0.0.0" revision commit))
  1617. (source
  1618. (origin
  1619. (method git-fetch)
  1620. (uri
  1621. (git-reference
  1622. (url "https://github.com/emersion/go-autostart")
  1623. (commit commit)))
  1624. (file-name (git-file-name name version))
  1625. (sha256
  1626. (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v"))))
  1627. (build-system go-build-system)
  1628. (arguments
  1629. `(#:import-path "github.com/emersion/go-autostart"))
  1630. (home-page "https://github.com/emersion/go-autostart")
  1631. (synopsis "Autostart library in Go")
  1632. (description "Go-Autostart is a Go library to run a command after login.")
  1633. (license license:expat))))
  1634. (define-public go-github-com-dchest-siphash
  1635. (package
  1636. (name "go-github-com-dchest-siphash")
  1637. (version "1.2.1")
  1638. (source
  1639. (origin
  1640. (method git-fetch)
  1641. (uri
  1642. (git-reference
  1643. (url "https://github.com/dchest/siphash")
  1644. (commit (string-append "v" version))))
  1645. (file-name (git-file-name name version))
  1646. (sha256
  1647. (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k"))))
  1648. (build-system go-build-system)
  1649. (arguments
  1650. `(#:import-path "github.com/dchest/siphash"))
  1651. (home-page "https://github.com/dchest/siphash")
  1652. (synopsis "Go library for pseudorandom functions")
  1653. (description "SipHash is a family of pseudorandom functions (PRFs) optimized
  1654. for speed on short messages.")
  1655. (license license:cc0)))
  1656. (define-public go-github-com-rakyll-statik
  1657. (package
  1658. (name "go-github-com-rakyll-statik")
  1659. (version "0.1.7")
  1660. (source
  1661. (origin
  1662. (method git-fetch)
  1663. (uri
  1664. (git-reference
  1665. (url "https://github.com/rakyll/statik")
  1666. (commit (string-append "v" version))))
  1667. (file-name (git-file-name name version))
  1668. (sha256
  1669. (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va"))))
  1670. (build-system go-build-system)
  1671. (arguments
  1672. `(#:import-path "github.com/rakyll/statik"))
  1673. (home-page "https://github.com/rakyll/statik/")
  1674. (synopsis "Embed files into a Go executable")
  1675. (description "Statik allows you to embed a directory of static files into
  1676. your Go binary to be later served from an http.FileSystem.")
  1677. (license license:asl2.0)))
  1678. (define-public go-github-com-alsm-ioprogress
  1679. (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
  1680. (revision "0"))
  1681. (package
  1682. (name "go-github-com-alsm-ioprogress")
  1683. (version (git-version "0.0.0" revision commit))
  1684. (source (origin
  1685. (method git-fetch)
  1686. (uri (git-reference
  1687. (url "https://github.com/alsm/ioprogress")
  1688. (commit commit)))
  1689. (file-name (git-file-name name version))
  1690. (sha256
  1691. (base32
  1692. "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
  1693. (build-system go-build-system)
  1694. (arguments
  1695. '(#:import-path "github.com/alsm/ioprogress"))
  1696. (synopsis "Textual progress bars in Go")
  1697. (description "@code{ioprogress} is a Go library with implementations of
  1698. @code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
  1699. case for these are for command-line applications but alternate progress bar
  1700. writers can be supplied for alternate environments.")
  1701. (home-page "https://github.com/alsm/ioprogress")
  1702. (license license:expat))))
  1703. (define-public go-github-com-aki237-nscjar
  1704. (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
  1705. (revision "0"))
  1706. (package
  1707. (name "go-github-com-aki237-nscjar")
  1708. (version (git-version "0.0.0" revision commit))
  1709. (source (origin
  1710. (method git-fetch)
  1711. (uri (git-reference
  1712. (url "https://github.com/aki237/nscjar")
  1713. (commit commit)))
  1714. (file-name (git-file-name name version))
  1715. (sha256
  1716. (base32
  1717. "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
  1718. (build-system go-build-system)
  1719. (arguments
  1720. '(#:import-path "github.com/aki237/nscjar"))
  1721. (synopsis "Handle Netscape / Mozilla cookies")
  1722. (description "@code{nscjar} is a Go library used to parse and output
  1723. Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
  1724. jar struct to manage the cookies added to the cookie jar.")
  1725. (home-page "https://github.com/aki237/nscjar")
  1726. (license license:expat))))
  1727. (define-public go-github-com-gizak-termui
  1728. (package
  1729. (name "go-github-com-gizak-termui")
  1730. (version "3.1.0")
  1731. (source
  1732. (origin
  1733. (method git-fetch)
  1734. (uri (git-reference
  1735. (url "https://github.com/gizak/termui")
  1736. (commit (string-append "v" version))))
  1737. (file-name (git-file-name name version))
  1738. (sha256
  1739. (base32 "1v3k8l5p95kb1v297ra5mw9sxdd59y82y6ibjzya5ma2pry6k5cn"))))
  1740. (build-system go-build-system)
  1741. (arguments
  1742. '(#:unpack-path "github.com/gizak/termui"
  1743. #:import-path "github.com/gizak/termui/v3"))
  1744. (propagated-inputs
  1745. `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
  1746. ("go-github-com-mitchellh-go-wordwrap"
  1747. ,go-github-com-mitchellh-go-wordwrap)
  1748. ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
  1749. (home-page "https://github.com/gizak/termui")
  1750. (synopsis "Terminal dashboard widget Go library")
  1751. (description
  1752. "The termui Go library draws customizable dashboard widgets in a text
  1753. terminal. It includes several common widgets: lists, trees, tables and tabs,
  1754. but also more complex items such as (stacked) bar and pie charts, scatter plots,
  1755. gauges, and even images and a canvas for drawing `high resolution' braille dots.
  1756. You can also easily create new custom widgets. Widgets can be coloured and
  1757. styled and positioned absolutely or relatively. They respond to keyboard,
  1758. mouse, and terminal resizing events.")
  1759. (license license:expat)))
  1760. (define-public go-github-com-golangplus-fmt
  1761. (package
  1762. (name "go-github-com-golangplus-fmt")
  1763. (version "1.0.0")
  1764. (home-page "https://github.com/golangplus/fmt")
  1765. (source (origin
  1766. (method git-fetch)
  1767. (uri (git-reference
  1768. (url home-page)
  1769. (commit (string-append "v" version))))
  1770. (file-name (git-file-name name version))
  1771. (sha256
  1772. (base32 "07d5kxz0f8ss3v46y0c8jg02sagi0wlaaijhjzzp0r462jyzqii7"))))
  1773. (build-system go-build-system)
  1774. (arguments
  1775. '(#:import-path "github.com/golangplus/fmt"))
  1776. (synopsis "Additions to Go's standard @code{fmt} package")
  1777. (description "This package provides additions to Go's stdlib @code{fmt}.")
  1778. (license license:bsd-3)))
  1779. (define-public go-github-com-mitchellh-go-wordwrap
  1780. (package
  1781. (name "go-github-com-mitchellh-go-wordwrap")
  1782. (version "1.0.1")
  1783. (source
  1784. (origin
  1785. (method git-fetch)
  1786. (uri (git-reference
  1787. (url "https://github.com/mitchellh/go-wordwrap")
  1788. (commit (string-append "v" version))))
  1789. (file-name (git-file-name name version))
  1790. (sha256
  1791. (base32 "12imq66hgj8q9ii2xqdy8apc0icphh6yimjb0div1pvl3s9gn83y"))))
  1792. (build-system go-build-system)
  1793. (arguments
  1794. '(#:import-path "github.com/mitchellh/go-wordwrap"))
  1795. (propagated-inputs
  1796. `(("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
  1797. (home-page "https://github.com/mitchellh/go-wordwrap")
  1798. (synopsis "Go library for word-wrapping strings")
  1799. (description
  1800. "This Go library automatically wraps words onto multiple lines. It's
  1801. primary goal is to format command-line output, but of course word wrapping is a
  1802. generally useful thing to do.")
  1803. (license license:expat)))
  1804. (define-public go-github-com-motemen-go-colorine
  1805. (let ((commit "45d19169413a019e4e2be69629dde5c7d92f8706")
  1806. (revision "0"))
  1807. (package
  1808. (name "go-github-com-motemen-go-colorine")
  1809. (version (git-version "0.0.0" revision commit))
  1810. (home-page "https://github.com/motemen/go-colorine")
  1811. (source (origin
  1812. (method git-fetch)
  1813. (uri (git-reference
  1814. (url home-page)
  1815. (commit commit)))
  1816. (file-name (git-file-name name version))
  1817. (sha256
  1818. (base32 "1mdy6q0926s1frj027nlzlvm2qssmkpjis7ic3l2smajkzh07118"))))
  1819. (build-system go-build-system)
  1820. (arguments
  1821. '(#:import-path "github.com/motemen/go-colorine"))
  1822. (propagated-inputs
  1823. `(("github.com/daviddengcn/go-colortext" ,go-github-com-daviddengcn-go-colortext)))
  1824. (synopsis "Simple colorized console logger for golang")
  1825. (description
  1826. "This package provides simple colorized console logger for golang.")
  1827. (license license:expat))))
  1828. (define-public go-github-com-daviddengcn-go-colortext
  1829. (package
  1830. (name "go-github-com-daviddengcn-go-colortext")
  1831. (version "1.0.0")
  1832. (home-page "https://github.com/daviddengcn/go-colortext")
  1833. (source (origin
  1834. (method git-fetch)
  1835. (uri (git-reference
  1836. (url home-page)
  1837. (commit (string-append "v" version))))
  1838. (file-name (git-file-name name version))
  1839. (sha256
  1840. (base32 "0j5ldwg3a768d3nniiglghr9axj4p87k7f7asqxa1a688xvcms48"))))
  1841. (build-system go-build-system)
  1842. (arguments
  1843. '(#:import-path "github.com/daviddengcn/go-colortext"))
  1844. (native-inputs
  1845. `(("go-github-com-golangplus-testing" ,go-github-com-golangplus-testing)))
  1846. (synopsis "Change the color of console text and background")
  1847. (description
  1848. "This is a package to change the color of the text and background in the
  1849. console, working both under Windows and other systems.
  1850. Under Windows, the console APIs are used. Otherwise, ANSI texts are output.")
  1851. ;; dual-licensed
  1852. (license (list license:bsd-3 license:expat))))
  1853. (define-public go-github-com-golangplus-testing
  1854. (package
  1855. (name "go-github-com-golangplus-testing")
  1856. (version "1.0.0")
  1857. (home-page "https://github.com/golangplus/testing")
  1858. (source (origin
  1859. (method git-fetch)
  1860. (uri (git-reference
  1861. (url home-page)
  1862. (commit (string-append "v" version))))
  1863. (file-name (git-file-name name version))
  1864. (sha256
  1865. (base32 "1a29m4zplf9m14k74lrb55dids2l17vx28sv0g3y3qcv1xygksiv"))))
  1866. (build-system go-build-system)
  1867. (arguments
  1868. '(#:import-path "github.com/golangplus/testing"))
  1869. (propagated-inputs
  1870. `(("go-github-com-golangplus-fmt" ,go-github-com-golangplus-fmt)))
  1871. (synopsis "Additions to Go's standard testing package")
  1872. (description "This package provides additions to Go's stdlib testing.")
  1873. (license license:bsd-3)))
  1874. (define-public go-github-com-leodido-go-urn
  1875. (package
  1876. (name "go-github-com-leodido-go-urn")
  1877. (version "1.2.0")
  1878. (home-page "https://github.com/leodido/go-urn")
  1879. (source
  1880. (origin
  1881. (method git-fetch)
  1882. (uri (git-reference
  1883. (url home-page)
  1884. (commit (string-append "v" version))))
  1885. (file-name (git-file-name name version))
  1886. (sha256
  1887. (base32 "1d4g1vkhc1180l1n7q48vl84b27c7cziywml78cyijbcdz2f8vim"))))
  1888. (build-system go-build-system)
  1889. (arguments
  1890. '(#:import-path "github.com/leodido/go-urn"))
  1891. (native-inputs
  1892. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  1893. (synopsis "Parser for uniform resource names as seen on RFC 2141")
  1894. (description
  1895. "This package implements a parser for uniform resource names (URN) as
  1896. specified by @uref{https://tools.ietf.org/html/rfc2141, IETF RFC 2141}.")
  1897. (license license:expat)))
  1898. (define-public go-github.com-jessevdk-go-flags
  1899. (package
  1900. (name "go-github.com-jessevdk-go-flags")
  1901. (version "1.3.0")
  1902. (source (origin
  1903. (method git-fetch)
  1904. (uri (git-reference
  1905. (url "https://github.com/jessevdk/go-flags")
  1906. (commit (string-append "v" version))))
  1907. (file-name (git-file-name name version))
  1908. (sha256
  1909. (base32
  1910. "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
  1911. (build-system go-build-system)
  1912. (arguments
  1913. '(#:import-path "github.com/jessevdk/go-flags"))
  1914. (synopsis "Go library for parsing command line arguments")
  1915. (description
  1916. "The @code{flags} package provides a command line option parser. The
  1917. functionality is similar to the go builtin @code{flag} package, but
  1918. @code{flags} provides more options and uses reflection to provide a succinct
  1919. way of specifying command line options.")
  1920. (home-page "https://github.com/jessevdk/go-flags")
  1921. (license license:bsd-3)))
  1922. (define-public go-gopkg-in-go-playground-assert-v1
  1923. (package
  1924. (name "go-gopkg-in-go-playground-assert-v1")
  1925. (version "1.2.1")
  1926. (home-page "https://github.com/go-playground/assert")
  1927. (source
  1928. (origin
  1929. (method git-fetch)
  1930. (uri (git-reference
  1931. (url home-page)
  1932. (commit (string-append "v" version))))
  1933. (file-name (git-file-name name version))
  1934. (sha256
  1935. (base32 "1h4amgykpa0djwi619llr3g55p75ia0mi184h9s5zdl8l4rhn9pm"))))
  1936. (build-system go-build-system)
  1937. (arguments
  1938. '(#:import-path "gopkg.in/go-playground/assert.v1"))
  1939. (synopsis "Basic assertion library used alongside native Go testing")
  1940. (description
  1941. "This package provides basic assertions along with building blocks for
  1942. custom assertions to be used alongside native Go testing.")
  1943. (license license:expat)))
  1944. (define-public go-github-com-go-playground-locales
  1945. (package
  1946. (name "go-github-com-go-playground-locales")
  1947. (version "0.13.0")
  1948. (home-page "https://github.com/go-playground/locales")
  1949. (source
  1950. (origin
  1951. (method git-fetch)
  1952. (uri (git-reference
  1953. (url home-page)
  1954. (commit (string-append "v" version))))
  1955. (file-name (git-file-name name version))
  1956. (sha256
  1957. (base32 "0qydcpkvss3mf8mk3xzg6a34n8i69aydrigcl2apifrkx72jw7pf"))))
  1958. (build-system go-build-system)
  1959. (arguments
  1960. '(#:import-path "github.com/go-playground/locales"))
  1961. (synopsis "Set of locales generated from the CLDR Unicode Project")
  1962. (description
  1963. "This package provides a set of locales generated from the
  1964. @uref{http://cldr.unicode.org/, Unicode CLDR Project} which can be used
  1965. independently or within an internalization (i18n) package. Its currently
  1966. implemented features include
  1967. @itemize
  1968. @item Rules generated from the CLDR data, v31.0.3
  1969. @item Contains Cardinal, Ordinal and Range Plural Rules
  1970. @item Contains Month, Weekday and Timezone translations built in
  1971. @item Contains Date & Time formatting functions
  1972. @item Contains Number, Currency, Accounting and Percent formatting functions
  1973. @item Supports the \"Gregorian\" calendar only
  1974. @end itemize")
  1975. (license license:expat)))
  1976. (define-public go-github-com-go-playground-universal-translator
  1977. (package
  1978. (name "go-github-com-go-playground-universal-translator")
  1979. (version "0.17.0")
  1980. (home-page "https://github.com/go-playground/universal-translator")
  1981. (source
  1982. (origin
  1983. (method git-fetch)
  1984. (uri (git-reference
  1985. (url home-page)
  1986. (commit (string-append "v" version))))
  1987. (file-name (git-file-name name version))
  1988. (sha256
  1989. (base32 "1zdiaisb32iv4x93cpbqrgx8ll7sxh4hcd2iibpswy4bwvjbjlz6"))))
  1990. (build-system go-build-system)
  1991. (arguments
  1992. '(#:import-path "github.com/go-playground/universal-translator"))
  1993. (propagated-inputs
  1994. `(("go-github-com-go-playground-locales" ,go-github-com-go-playground-locales)))
  1995. (synopsis "Translator using Unicode CLDR data and pluralization rules")
  1996. (description
  1997. "This package offers an Internalization Translator for Go using
  1998. @uref{http://cldr.unicode.org/, Unicode CLDR Project} data and pluralization
  1999. rules. Its currently implemented features include
  2000. @itemize
  2001. @item Rules generated from the CLDR data, v30.0.3
  2002. @item Contains Cardinal, Ordinal and Range Plural Rules
  2003. @item Contains Month, Weekday and Timezone translations built in
  2004. @item Contains Date & Time formatting functions
  2005. @item Contains Number, Currency, Accounting and Percent formatting functions
  2006. @item Supports the \"Gregorian\" calendar only
  2007. @item Support loading translations from files
  2008. @item Exporting translations to file(s), mainly for getting them
  2009. professionally translated
  2010. @end itemize")
  2011. (license license:expat)))
  2012. (define-public go-gopkg-in-go-playground-validator-v9
  2013. (package
  2014. (name "go-gopkg-in-go-playground-validator-v9")
  2015. (version "9.31.0")
  2016. (home-page "https://gopkg.in/go-playground/validator.v9")
  2017. (source
  2018. (origin
  2019. (method git-fetch)
  2020. (uri (git-reference
  2021. (url "https://github.com/go-playground/validator")
  2022. (commit (string-append "v" version))))
  2023. (file-name (git-file-name name version))
  2024. (sha256
  2025. (base32 "1f8c77s8kx9rip2jarv27x5s4xkcmanh4ndyhbcwvrhncs5rq061"))))
  2026. (build-system go-build-system)
  2027. (arguments
  2028. '(#:import-path "gopkg.in/go-playground/validator.v9"))
  2029. (native-inputs
  2030. `(("go-gopkg-in-go-playground-assert-v1"
  2031. ,go-gopkg-in-go-playground-assert-v1)))
  2032. (propagated-inputs
  2033. `(("go-github-com-go-playground-universal-translator"
  2034. ,go-github-com-go-playground-universal-translator)
  2035. ("go-github-com-leodido-go-urn" ,go-github-com-leodido-go-urn)))
  2036. (synopsis "Validator for structs and individual fields based on tags")
  2037. (description
  2038. "This package implements value validations for structs and individual
  2039. fields based on tags. It has the following unique features:
  2040. @itemize
  2041. @item Cross Field and Cross Struct validations by using validation tags or
  2042. custom validators
  2043. @item Slice, Array and Map diving, which allows any or all levels of a
  2044. multidimensional field to be validated
  2045. @item Ability to dive into both map keys and values for validation
  2046. @item Handles type interface by determining it's underlying type prior to validation
  2047. @item Handles custom field types such as sql driver
  2048. @uref{https://golang.org/src/database/sql/driver/types.go?s=1210:1293#L29,
  2049. Valuer}
  2050. @item Alias validation tags, which allows for mapping of several validations
  2051. to a single tag for easier defining of validations on structs
  2052. @item Extraction of custom defined Field Name e.g. can specify to extract the
  2053. JSON name while validating and have it available in the resulting FieldError
  2054. @item Customizable i18n aware error messages.
  2055. @item Default validator for the @uref{https://github.com/gin-gonic/gin, gin}
  2056. web framework
  2057. @end itemize")
  2058. (license license:expat)))
  2059. (define-public go-github-com-aws-sdk
  2060. (package
  2061. (name "go-github-com-aws-sdk")
  2062. (version "1.35.2")
  2063. (source
  2064. (origin
  2065. (method git-fetch)
  2066. (uri (git-reference
  2067. (url "https://github.com/aws/aws-sdk-go")
  2068. (commit (string-append "v" version))))
  2069. (file-name (git-file-name name version))
  2070. (sha256
  2071. (base32
  2072. "1ky5lw2s2zpslnnqcs6hgsrwvwbxwgflb5jwf16dd4aga3vrg10c"))))
  2073. (build-system go-build-system)
  2074. (arguments
  2075. '(#:import-path "github.com/aws/aws-sdk-go/aws"
  2076. #:unpack-path "github.com/aws/aws-sdk-go"))
  2077. (propagated-inputs
  2078. `(("go-github-com-go-sql-driver-mysql" ,go-github-com-go-sql-driver-mysql)
  2079. ("go-github-com-jmespath-go-jmespath" ,go-github-com-jmespath-go-jmespath)
  2080. ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
  2081. ("go-golang-org-x-net" ,go-golang-org-x-net)))
  2082. (home-page "https://github.com/aws/aws-sdk-go")
  2083. (synopsis "Library to access Amazon Web Services (AWS)")
  2084. (description
  2085. "This is the official AWS SDK for the Go programming language.")
  2086. (license license:asl2.0)))
  2087. (define-public go-gopkg.in-tomb.v2
  2088. (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
  2089. (revision "0"))
  2090. (package
  2091. (name "go-gopkg.in-tomb.v2")
  2092. (version (string-append "0.0.0-" revision "." (string-take commit 7)))
  2093. (source (origin
  2094. (method git-fetch)
  2095. (uri (git-reference
  2096. (url "https://github.com/go-tomb/tomb")
  2097. (commit commit)))
  2098. (file-name (string-append name "-" version ".tar.gz"))
  2099. (sha256
  2100. (base32
  2101. "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
  2102. (build-system go-build-system)
  2103. (arguments
  2104. '(#:import-path "gopkg.in/tomb.v2"
  2105. #:phases
  2106. (modify-phases %standard-phases
  2107. (add-after 'unpack 'patch-source
  2108. (lambda _
  2109. ;; Add a missing % to fix the compilation of this test
  2110. (substitute* "src/gopkg.in/tomb.v2/tomb_test.go"
  2111. (("t.Fatalf\\(`Killf\\(\"BO%s")
  2112. "t.Fatalf(`Killf(\"BO%%s"))
  2113. #t)))))
  2114. (synopsis "@code{tomb} handles clean goroutine tracking and termination")
  2115. (description
  2116. "The @code{tomb} package handles clean goroutine tracking and
  2117. termination.")
  2118. (home-page "https://gopkg.in/tomb.v2")
  2119. (license license:bsd-3))))
  2120. (define-public go-gopkg-in-natefinch-lumberjack.v2
  2121. (package
  2122. (name "go-gopkg-in-natefinch-lumberjack.v2")
  2123. (version "2.1")
  2124. (source
  2125. (origin
  2126. (method git-fetch)
  2127. (uri (git-reference
  2128. (url "https://github.com/natefinch/lumberjack")
  2129. (commit (string-append "v" version))))
  2130. (file-name (git-file-name name version))
  2131. (sha256
  2132. (base32
  2133. "1l3vlv72b7rfkpy1164kwd3qzrqmmjnb67akzxqp2mlvc66k6p3d"))))
  2134. (build-system go-build-system)
  2135. (arguments
  2136. '(#:import-path "gopkg.in/natefinch/lumberjack.v2"))
  2137. (propagated-inputs
  2138. `(("github.com/burntsush/toml" ,go-github-com-burntsushi-toml)
  2139. ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
  2140. (home-page "https://github.com/natefinch/lumberjack")
  2141. (synopsis "Rolling logger for Go")
  2142. (description
  2143. "Lumberjack is a Go package for writing logs to rolling files.")
  2144. (license license:expat)))
  2145. (define-public go-github.com-jtolds-gls
  2146. (package
  2147. (name "go-github.com-jtolds-gls")
  2148. (version "4.20")
  2149. (source (origin
  2150. (method git-fetch)
  2151. (uri (git-reference
  2152. (url "https://github.com/jtolds/gls")
  2153. (commit (string-append "v" version))))
  2154. (file-name (git-file-name name version))
  2155. (sha256
  2156. (base32
  2157. "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6"))))
  2158. (build-system go-build-system)
  2159. (arguments
  2160. '(#:import-path "github.com/jtolds/gls"))
  2161. (synopsis "@code{gls} provides Goroutine local storage")
  2162. (description
  2163. "The @code{gls} package provides a way to store a retrieve values
  2164. per-goroutine.")
  2165. (home-page "https://github.com/jtolds/gls")
  2166. (license license:expat)))
  2167. (define-public go-github-com-saracen-walker
  2168. (package
  2169. (name "go-github-com-saracen-walker")
  2170. (version "0.1.1")
  2171. (source
  2172. (origin
  2173. (method git-fetch)
  2174. (uri (git-reference
  2175. (url "https://github.com/saracen/walker")
  2176. (commit (string-append "v" version))))
  2177. (file-name (git-file-name name version))
  2178. (sha256
  2179. (base32 "1rq1lrp99lx7k1ysbfznn4c1iagnxdhb4lnnklsadnnzi3gvygqz"))))
  2180. (build-system go-build-system)
  2181. (arguments
  2182. `(#:import-path "github.com/saracen/walker"))
  2183. (inputs
  2184. `(("go-golang-org-x-sync" ,go-golang-org-x-sync)))
  2185. (home-page "https://github.com/saracen/walker")
  2186. (synopsis "Faster, parallel version of Go's filepath.Walk")
  2187. (license license:expat)
  2188. (description "The @code{walker} function is a faster, parallel version, of
  2189. @code{filepath.Walk}")))
  2190. (define-public go-github-com-tj-docopt
  2191. (package
  2192. (name "go-github-com-tj-docopt")
  2193. (version "1.0.0")
  2194. (source (origin
  2195. (method git-fetch)
  2196. (uri (git-reference
  2197. (url "https://github.com/tj/docopt")
  2198. (commit (string-append "v" version))))
  2199. (file-name (git-file-name name version))
  2200. (sha256
  2201. (base32
  2202. "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
  2203. (build-system go-build-system)
  2204. (arguments
  2205. '(#:import-path "github.com/tj/docopt"))
  2206. (synopsis "Go implementation of docopt")
  2207. (description
  2208. "This library allows the user to define a command-line interface from a
  2209. program's help message rather than specifying it programmatically with
  2210. command-line parsers.")
  2211. (home-page "https://github.com/tj/docopt")
  2212. (license license:expat)))
  2213. (define-public go-github-com-hashicorp-hcl
  2214. (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
  2215. (revision "0"))
  2216. (package
  2217. (name "go-github-com-hashicorp-hcl")
  2218. (version (git-version "0.0.0" revision commit))
  2219. (source (origin
  2220. (method git-fetch)
  2221. (uri (git-reference
  2222. (url "https://github.com/hashicorp/hcl")
  2223. (commit commit)))
  2224. (file-name (git-file-name name version))
  2225. (sha256
  2226. (base32
  2227. "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
  2228. (build-system go-build-system)
  2229. (arguments
  2230. '(#:tests? #f
  2231. #:import-path "github.com/hashicorp/hcl"))
  2232. (synopsis "Go implementation of HashiCorp Configuration Language")
  2233. (description
  2234. "This package contains the main implementation of the @acronym{HCL,
  2235. HashiCorp Configuration Language}. HCL is designed to be a language for
  2236. expressing configuration which is easy for both humans and machines to read.")
  2237. (home-page "https://github.com/hashicorp/hcl")
  2238. (license license:mpl2.0))))
  2239. (define-public go-golang-org-x-tools
  2240. (let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8")
  2241. (revision "0"))
  2242. (package
  2243. (name "go-golang-org-x-tools")
  2244. (version (git-version "0.1.3" revision commit))
  2245. (source (origin
  2246. (method git-fetch)
  2247. (uri (git-reference
  2248. (url "https://go.googlesource.com/tools")
  2249. (commit commit)))
  2250. (file-name (string-append "go.googlesource.com-tools-"
  2251. version "-checkout"))
  2252. (sha256
  2253. (base32
  2254. "0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck"))))
  2255. (build-system go-build-system)
  2256. (arguments
  2257. `(#:import-path "golang.org/x/tools"
  2258. ;; Source-only package
  2259. #:tests? #f
  2260. #:phases
  2261. (modify-phases %standard-phases
  2262. ;; Source-only package
  2263. (delete 'build))))
  2264. (synopsis "Tools that support the Go programming language")
  2265. (description "This package provides miscellaneous tools that support the
  2266. Go programming language.")
  2267. (home-page "https://go.googlesource.com/tools/")
  2268. (license license:bsd-3))))
  2269. (define-public go-golang-org-x-crypto
  2270. (let ((commit "2aa609cf4a9d7d1126360de73b55b6002f9e052a")
  2271. (revision "5"))
  2272. (package
  2273. (name "go-golang-org-x-crypto")
  2274. (version (git-version "0.0.0" revision commit))
  2275. (source (origin
  2276. (method git-fetch)
  2277. (uri (git-reference
  2278. (url "https://go.googlesource.com/crypto")
  2279. (commit commit)))
  2280. (file-name (string-append "go.googlesource.com-crypto-"
  2281. version "-checkout"))
  2282. (sha256
  2283. (base32
  2284. "1yvis6fqbsd7f356aqyi18f76vnwj3bry6mxqnkvshq4cwrf92il"))))
  2285. (build-system go-build-system)
  2286. (arguments
  2287. '(#:import-path "golang.org/x/crypto"
  2288. ;; Source-only package
  2289. #:tests? #f
  2290. #:phases
  2291. (modify-phases %standard-phases
  2292. ;; Source-only package
  2293. (delete 'build)
  2294. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  2295. (lambda* (#:key outputs #:allow-other-keys)
  2296. (map (lambda (file)
  2297. (make-file-writable file))
  2298. (find-files
  2299. (string-append (assoc-ref outputs "out")
  2300. "/src/golang.org/x/crypto/ed25519/testdata")
  2301. ".*\\.gz$"))
  2302. #t)))))
  2303. (propagated-inputs
  2304. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  2305. (synopsis "Supplementary cryptographic libraries in Go")
  2306. (description "This package provides supplementary cryptographic libraries
  2307. for the Go language.")
  2308. (home-page "https://go.googlesource.com/crypto/")
  2309. (license license:bsd-3))))
  2310. (define-public go-golang-org-x-net
  2311. (let ((commit "ba9fcec4b297b415637633c5a6e8fa592e4a16c3")
  2312. (revision "4"))
  2313. (package
  2314. (name "go-golang-org-x-net")
  2315. (version (git-version "0.0.0" revision commit))
  2316. (source (origin
  2317. (method git-fetch)
  2318. (uri (git-reference
  2319. (url "https://go.googlesource.com/net")
  2320. (commit commit)))
  2321. (file-name (git-file-name name version))
  2322. (sha256
  2323. (base32
  2324. "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx"))))
  2325. (build-system go-build-system)
  2326. (arguments
  2327. `(#:import-path "golang.org/x/net"
  2328. ; Source-only package
  2329. #:tests? #f
  2330. #:phases
  2331. (modify-phases %standard-phases
  2332. (delete 'build))))
  2333. (synopsis "Go supplemental networking libraries")
  2334. (description "This package provides supplemental Go networking libraries.")
  2335. (home-page "https://go.googlesource.com/net")
  2336. (license license:bsd-3))))
  2337. (define-public go-golang-org-x-net-html
  2338. (package
  2339. (inherit go-golang-org-x-net)
  2340. (name "go-golang.org-x-net-html")
  2341. (arguments
  2342. '(#:import-path "golang.org/x/net/html"
  2343. #:unpack-path "golang.org/x/net"))
  2344. (synopsis "HTML5-compliant tokenizer and parser")
  2345. (description
  2346. "This package provides an HTML5-compliant tokenizer and parser.")
  2347. (home-page "https://godoc.org/golang.org/x/net/html")))
  2348. (define-public go-golang-org-x-image
  2349. (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
  2350. (revision "1"))
  2351. (package
  2352. (name "go-golang-org-x-image")
  2353. (version (git-version "0.0.0" revision commit))
  2354. (source (origin
  2355. (method git-fetch)
  2356. (uri (git-reference
  2357. (url "https://go.googlesource.com/image")
  2358. (commit commit)))
  2359. (file-name (string-append "go.googlesource.com-image-"
  2360. version "-checkout"))
  2361. (sha256
  2362. (base32
  2363. "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
  2364. (build-system go-build-system)
  2365. (arguments
  2366. `(#:import-path "golang.org/x/image"
  2367. ; Source-only package
  2368. #:tests? #f
  2369. #:phases
  2370. (modify-phases %standard-phases
  2371. (delete 'build))))
  2372. (home-page "https://go.googlesource.com/image")
  2373. (synopsis "Supplemental Go image libraries")
  2374. (description "This package provides supplemental Go libraries for image
  2375. processing.")
  2376. (license license:bsd-3))))
  2377. (define-public go-golang-org-x-sync
  2378. (let ((commit "6e8e738ad208923de99951fe0b48239bfd864f28")
  2379. (revision "1"))
  2380. (package
  2381. (name "go-golang-org-x-sync")
  2382. (version (git-version "0.0.0" revision commit))
  2383. (source (origin
  2384. (method git-fetch)
  2385. (uri (git-reference
  2386. (url "https://go.googlesource.com/sync")
  2387. (commit commit)))
  2388. (file-name (git-file-name name version))
  2389. (sha256
  2390. (base32
  2391. "1avk27pszd5l5df6ff7j78wgla46ir1hhy2jwfl9a3c0ys602yx9"))))
  2392. (build-system go-build-system)
  2393. (arguments
  2394. `(#:import-path "golang.org/x/sync"
  2395. #:tests? #f
  2396. ;; Source-only package
  2397. #:phases
  2398. (modify-phases %standard-phases
  2399. (delete 'build))))
  2400. (synopsis "Additional Go concurrency primitives")
  2401. (description "This package provides Go concurrency primitives in addition
  2402. to the ones provided by the language and “sync” and “sync/atomic”
  2403. packages.")
  2404. (home-page "https://go.googlesource.com/sync/")
  2405. (license license:bsd-3))))
  2406. (define-public go-golang-org-x-sys
  2407. (let ((commit "05986578812163b26672dabd9b425240ae2bb0ad")
  2408. (revision "7"))
  2409. (package
  2410. (name "go-golang-org-x-sys")
  2411. (version (git-version "0.0.0" revision commit))
  2412. (source (origin
  2413. (method git-fetch)
  2414. (uri (git-reference
  2415. (url "https://go.googlesource.com/sys")
  2416. (commit commit)))
  2417. (file-name (git-file-name name version))
  2418. (sha256
  2419. (base32
  2420. "1q2rxb6z5l6pmlckjsz2l0b8lw7bqgk6frhzbmi1dv0y5irb2ka7"))))
  2421. (build-system go-build-system)
  2422. (arguments
  2423. `(#:import-path "golang.org/x/sys"
  2424. ;; Source-only package
  2425. #:tests? #f
  2426. #:phases
  2427. (modify-phases %standard-phases
  2428. (delete 'build))))
  2429. (synopsis "Go support for low-level system interaction")
  2430. (description "This package provides supplemental libraries offering Go
  2431. support for low-level interaction with the operating system.")
  2432. (home-page "https://go.googlesource.com/sys")
  2433. (license license:bsd-3))))
  2434. (define-public go-golang-org-x-text
  2435. (package
  2436. (name "go-golang-org-x-text")
  2437. (version "0.3.2")
  2438. (source (origin
  2439. (method git-fetch)
  2440. (uri (git-reference
  2441. (url "https://go.googlesource.com/text")
  2442. (commit (string-append "v" version))))
  2443. (file-name (string-append "go.googlesource.com-text-"
  2444. version "-checkout"))
  2445. (sha256
  2446. (base32
  2447. "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
  2448. (build-system go-build-system)
  2449. (arguments
  2450. `(#:import-path "golang.org/x/text"
  2451. ; Source-only package
  2452. #:tests? #f
  2453. #:phases
  2454. (modify-phases %standard-phases
  2455. (delete 'build))))
  2456. (synopsis "Supplemental Go text processing libraries")
  2457. (description "This package provides supplemental Go libraries for text
  2458. processing.")
  2459. (home-page "https://go.googlesource.com/text")
  2460. (license license:bsd-3)))
  2461. (define-public go-golang-org-x-time
  2462. (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
  2463. (revision "2"))
  2464. (package
  2465. (name "go-golang-org-x-time")
  2466. (version (git-version "0.0.0" revision commit))
  2467. (source (origin
  2468. (method git-fetch)
  2469. (uri (git-reference
  2470. (url "https://go.googlesource.com/time")
  2471. (commit commit)))
  2472. (file-name (git-file-name name version))
  2473. (sha256
  2474. (base32
  2475. "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
  2476. (build-system go-build-system)
  2477. (arguments
  2478. `(#:import-path "golang.org/x/time"
  2479. ; Source-only package
  2480. #:tests? #f
  2481. #:phases
  2482. (modify-phases %standard-phases
  2483. (delete 'build))))
  2484. ; (propagated-inputs
  2485. ; `(("go-golang-org-x-net" ,go-golang-org-x-net)))
  2486. (synopsis "Supplemental Go time libraries")
  2487. (description "This package provides supplemental Go libraries related to
  2488. time.")
  2489. (home-page "https://godoc.org/golang.org/x/time/rate")
  2490. (license license:bsd-3))))
  2491. (define-public go-golang-org-x-oauth2
  2492. (let ((commit "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33")
  2493. (revision "1"))
  2494. (package
  2495. (name "go-golang-org-x-oauth2")
  2496. (version (git-version "0.0.0" revision commit))
  2497. (source (origin
  2498. (method git-fetch)
  2499. (uri (git-reference
  2500. (url "https://go.googlesource.com/oauth2")
  2501. (commit commit)))
  2502. (file-name (string-append "go.googlesource.com-oauth2-"
  2503. version "-checkout"))
  2504. (sha256
  2505. (base32
  2506. "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"))))
  2507. (build-system go-build-system)
  2508. (arguments
  2509. `(#:import-path "golang.org/x/oauth2"))
  2510. (propagated-inputs
  2511. `(("go-golang-org-x-net" ,go-golang-org-x-net)))
  2512. (home-page "https://go.googlesource.com/oauth2")
  2513. (synopsis "Client implementation of the OAuth 2.0 spec")
  2514. (description "This package contains a client implementation for OAuth 2.0
  2515. spec in Go.")
  2516. (license license:bsd-3))))
  2517. (define-public go-golang-org-x-xerrors
  2518. (let ((commit "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca")
  2519. (revision "0"))
  2520. (package
  2521. (name "go-golang-org-x-xerrors")
  2522. (version (git-version "0.0.0" revision commit))
  2523. (source (origin
  2524. (method git-fetch)
  2525. (uri (git-reference
  2526. (url "https://go.googlesource.com/xerrors")
  2527. (commit commit)))
  2528. (file-name (git-file-name name version))
  2529. (sha256
  2530. (base32
  2531. "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb"))))
  2532. (build-system go-build-system)
  2533. (arguments
  2534. '(#:import-path "golang.org/x/xerrors"))
  2535. (synopsis "Go 1.13 error values")
  2536. (description
  2537. "This package holds the transition packages for the new Go 1.13 error values.")
  2538. (home-page "https://godoc.org/golang.org/x/xerrors")
  2539. (license license:bsd-3))))
  2540. (define-public go-github-com-burntsushi-toml
  2541. (package
  2542. (name "go-github-com-burntsushi-toml")
  2543. (version "0.3.1")
  2544. (source
  2545. (origin
  2546. (method git-fetch)
  2547. (uri (git-reference
  2548. (url "https://github.com/BurntSushi/toml")
  2549. (commit (string-append "v" version))))
  2550. (file-name (git-file-name name version))
  2551. (sha256
  2552. (base32
  2553. "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
  2554. (build-system go-build-system)
  2555. (arguments
  2556. '(#:import-path "github.com/BurntSushi/toml"))
  2557. (home-page "https://github.com/BurntSushi/toml")
  2558. (synopsis "Toml parser and encoder for Go")
  2559. (description "This package is toml parser and encoder for Go. The interface
  2560. is similar to Go's standard library @code{json} and @code{xml} package.")
  2561. (license license:expat)))
  2562. (define-public go-github-com-getsentry-raven-go
  2563. (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
  2564. (revision "0"))
  2565. (package
  2566. (name "go-github-com-getsentry-raven-go")
  2567. (version (git-version "0.2.0" revision commit))
  2568. (source
  2569. (origin
  2570. (method git-fetch)
  2571. (uri (git-reference
  2572. (url "https://github.com/getsentry/raven-go")
  2573. (commit commit)))
  2574. (file-name (git-file-name name version))
  2575. (sha256
  2576. (base32
  2577. "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
  2578. (build-system go-build-system)
  2579. (arguments
  2580. '(#:import-path "github.com/getsentry/raven-go"))
  2581. (propagated-inputs
  2582. `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
  2583. ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
  2584. (home-page "https://github.com/getsentry/raven-go")
  2585. (synopsis "Sentry client in Go")
  2586. (description "This package is a Go client API for the Sentry event/error
  2587. logging system.")
  2588. (license license:bsd-3))))
  2589. (define-public go-github-com-hashicorp-go-version
  2590. (let ((commit
  2591. "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
  2592. (revision "0"))
  2593. (package
  2594. (name "go-github-com-hashicorp-go-version")
  2595. (version (git-version "0.0.0" revision commit))
  2596. (source
  2597. (origin
  2598. (method git-fetch)
  2599. (uri (git-reference
  2600. (url "https://github.com/hashicorp/go-version")
  2601. (commit commit)))
  2602. (file-name (git-file-name name version))
  2603. (sha256
  2604. (base32
  2605. "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
  2606. (build-system go-build-system)
  2607. (arguments
  2608. '(#:import-path "github.com/hashicorp/go-version"))
  2609. (home-page
  2610. "https://github.com/hashicorp/go-version")
  2611. (synopsis "Go library for parsing and verifying versions and version
  2612. constraints")
  2613. (description "This package is a library for parsing versions and version
  2614. constraints, and verifying versions against a set of constraints. It can sort
  2615. a collection of versions properly, handles prerelease/beta versions, can
  2616. increment versions.")
  2617. (license license:mpl2.0))))
  2618. (define-public go-github-com-jpillora-backoff
  2619. (let ((commit
  2620. "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
  2621. (revision "0"))
  2622. (package
  2623. (name "go-github-com-jpillora-backoff")
  2624. (version (git-version "0.0.0" revision commit))
  2625. (source
  2626. (origin
  2627. (method git-fetch)
  2628. (uri (git-reference
  2629. (url "https://github.com/jpillora/backoff")
  2630. (commit commit)))
  2631. (file-name (git-file-name name version))
  2632. (sha256
  2633. (base32
  2634. "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
  2635. (build-system go-build-system)
  2636. (arguments
  2637. '(#:import-path "github.com/jpillora/backoff"))
  2638. (home-page "https://github.com/jpillora/backoff")
  2639. (synopsis "Simple exponential backoff counter in Go")
  2640. (description "This package is a simple exponential backoff counter in
  2641. Go.")
  2642. (license license:expat))))
  2643. (define-public go-github-com-stretchr-objx
  2644. (package
  2645. (name "go-github-com-stretchr-objx")
  2646. (version "0.2.0")
  2647. (source
  2648. (origin
  2649. (method git-fetch)
  2650. (uri (git-reference
  2651. (url "https://github.com/stretchr/objx")
  2652. (commit (string-append "v" version))))
  2653. (file-name (git-file-name name version))
  2654. (sha256
  2655. (base32
  2656. "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k"))))
  2657. (build-system go-build-system)
  2658. (arguments
  2659. '(#:import-path "github.com/stretchr/objx"))
  2660. (home-page "https://github.com/stretchr/objx")
  2661. (synopsis "Go package for dealing with maps, slices, JSON and other data")
  2662. (description "This package provides a Go library for dealing with maps,
  2663. slices, JSON and other data.")
  2664. (license license:expat)))
  2665. (define-public go-github-com-stretchr-testify
  2666. (package
  2667. (name "go-github-com-stretchr-testify")
  2668. (version "1.5.1")
  2669. (source
  2670. (origin
  2671. (method git-fetch)
  2672. (uri (git-reference
  2673. (url "https://github.com/stretchr/testify")
  2674. (commit (string-append "v" version))))
  2675. (file-name (git-file-name name version))
  2676. (sha256
  2677. (base32
  2678. "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl"))))
  2679. (build-system go-build-system)
  2680. (arguments
  2681. '(#:import-path "github.com/stretchr/testify"))
  2682. (propagated-inputs
  2683. `(("github.com/davecgh/go-spew" ,go-github-com-davecgh-go-spew)
  2684. ("github.com/pmezard/go-difflib" ,go-github-com-pmezard-go-difflib)
  2685. ("github.com/stretchr/objx" ,go-github-com-stretchr-objx)
  2686. ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
  2687. (home-page "https://github.com/stretchr/testify")
  2688. (synopsis "Go helper library for tests and invariant checking")
  2689. (description "This package provide many tools for testifying that your
  2690. code will behave as you intend.
  2691. Features include:
  2692. @itemize
  2693. @item Easy assertions
  2694. @item Mocking
  2695. @item HTTP response trapping
  2696. @item Testing suite interfaces and functions.
  2697. @end itemize")
  2698. (license license:expat)))
  2699. (define-public go-github-com-tevino-abool
  2700. (let ((commit
  2701. "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
  2702. (revision "0"))
  2703. (package
  2704. (name "go-github-com-tevino-abool")
  2705. (version (git-version "0.0.0" revision commit))
  2706. (source
  2707. (origin
  2708. (method git-fetch)
  2709. (uri (git-reference
  2710. (url "https://github.com/tevino/abool")
  2711. (commit commit)))
  2712. (file-name (git-file-name name version))
  2713. (sha256
  2714. (base32
  2715. "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
  2716. (build-system go-build-system)
  2717. (arguments
  2718. '(#:import-path "github.com/tevino/abool"))
  2719. (home-page "https://github.com/tevino/abool")
  2720. (synopsis "Atomic boolean library for Go code")
  2721. (description "This package is atomic boolean library for Go code,
  2722. optimized for performance yet simple to use.")
  2723. (license license:expat))))
  2724. (define-public go-github-com-tomnomnom-gron
  2725. (package
  2726. (name "gron")
  2727. (version "0.6.1")
  2728. (home-page "https://github.com/tomnomnom/gron")
  2729. (source
  2730. (origin
  2731. (method git-fetch)
  2732. (uri (git-reference
  2733. (url home-page)
  2734. (commit (string-append "v" version))))
  2735. (file-name (git-file-name name version))
  2736. (sha256
  2737. (base32 "0qmzawkhg0qn9kxxrssbdjni2khvamhrcklv3yxc0ljmh77mh61m"))))
  2738. (build-system go-build-system)
  2739. (arguments
  2740. (let ((import-path "github.com/tomnomnom/gron"))
  2741. `(#:import-path ,import-path
  2742. #:phases
  2743. (modify-phases %standard-phases
  2744. (add-after 'check 'remove-non-source
  2745. (lambda _
  2746. (for-each (lambda (dir)
  2747. (delete-file-recursively
  2748. (string-append "src/" ,import-path dir)))
  2749. '("/docs" "/script" "/testdata"))
  2750. #t))))))
  2751. (inputs
  2752. `(("github.com/fatih/color" ,go-github-com-fatih-color)
  2753. ("github.com/mattn/go-colorable" ,go-github-com-mattn-go-colorable)
  2754. ("github.com/mattn/go-isatty" ,go-github-com-mattn-go-isatty)
  2755. ("github.com/nwidger/jsoncolor" ,go-github-com-nwidger-jsoncolor)
  2756. ("github.com/pkg/errors" ,go-github-com-pkg-errors)))
  2757. (synopsis "Transform JSON to make it easier to grep")
  2758. (description
  2759. "This package transforms JSON into discrete assignments to make it easier
  2760. to use line-based tools such as grep to search for what you want and see the
  2761. absolute \"path\" to it.")
  2762. (license license:expat)))
  2763. (define-public go-github-com-tv42-httpunix
  2764. (let ((commit "2ba4b9c3382c77e7b9ea89d00746e6111d142a22")
  2765. (revision "0"))
  2766. (package
  2767. (name "go-github-com-tv42-httpunix")
  2768. (version (git-version "0.0.0" revision commit))
  2769. (source
  2770. (origin
  2771. (method git-fetch)
  2772. (uri (git-reference
  2773. (url "https://github.com/tv42/httpunix")
  2774. (commit commit)))
  2775. (file-name (git-file-name name version))
  2776. (sha256
  2777. (base32 "0xbwpip2hsfhd2kd878jn5ndl8y1i9658lggha4x3xb5m1rsds9w"))))
  2778. (build-system go-build-system)
  2779. (arguments
  2780. '(#:import-path "github.com/tv42/httpunix"))
  2781. (home-page "https://github.com/tv42/httpunix")
  2782. (synopsis "Go library to talk HTTP over Unix domain sockets")
  2783. (description "This package is a Go library to talk HTTP over Unix domain
  2784. sockets.")
  2785. (license license:expat))))
  2786. (define-public go-github-com-blang-semver
  2787. (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
  2788. (revision "0"))
  2789. (package
  2790. (name "go-github-com-blang-semver")
  2791. (version (git-version "0.0.0" revision commit))
  2792. (source
  2793. (origin
  2794. (method git-fetch)
  2795. (uri (git-reference
  2796. (url "https://github.com/blang/semver")
  2797. (commit commit)))
  2798. (file-name (git-file-name name version))
  2799. (sha256
  2800. (base32
  2801. "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
  2802. (build-system go-build-system)
  2803. (arguments
  2804. '(#:import-path "github.com/blang/semver"))
  2805. (home-page "https://github.com/blang/semver")
  2806. (synopsis "Semantic versioning library written in Go")
  2807. (description "Semver is a library for Semantic versioning written in Go.")
  2808. (license license:expat))))
  2809. (define-public go-github-com-emicklei-go-restful
  2810. (package
  2811. (name "go-github-com-emicklei-go-restful")
  2812. (version "3.4.0")
  2813. (source
  2814. (origin
  2815. (method git-fetch)
  2816. (uri (git-reference
  2817. (url "https://github.com/emicklei/go-restful")
  2818. (commit (string-append "v" version))))
  2819. (file-name (git-file-name name version))
  2820. (sha256
  2821. (base32
  2822. "0m1y5a6xr6hmdj77afrvyh2llkbhn1166lcrgis654shl8zs9qhz"))))
  2823. (build-system go-build-system)
  2824. (arguments
  2825. '(#:import-path "github.com/emicklei/go-restful"))
  2826. (home-page "https://github.com/emicklei/go-restful")
  2827. (synopsis "Build REST-style web services using Go")
  2828. (description "This package provides @code{go-restful}, which helps
  2829. developers to use @code{http} methods explicitly and in a way that's consistent
  2830. with the HTTP protocol definition.")
  2831. (license license:expat)))
  2832. (define-public go-cloud-google-com-go-compute-metadata
  2833. (package
  2834. (name "go-cloud-google-com-go-compute-metadata")
  2835. (version "0.81.0")
  2836. (source
  2837. (origin
  2838. (method git-fetch)
  2839. (uri (git-reference
  2840. (url "https://github.com/googleapis/google-cloud-go")
  2841. (commit (string-append "v" version))))
  2842. (file-name (git-file-name name version))
  2843. (sha256
  2844. (base32
  2845. "15jgynqb5pbxqbj3a7ii970yn4srsw1dbxzxnhpkfkmplalpgyh3"))))
  2846. (build-system go-build-system)
  2847. (arguments
  2848. '(#:unpack-path "cloud.google.com/go"
  2849. #:import-path "cloud.google.com/go/compute/metadata"))
  2850. (home-page
  2851. "https://pkg.go.dev/cloud.google.com/go/compute/metadata")
  2852. (synopsis
  2853. "Go wrapper for Google Compute Engine metadata service")
  2854. (description
  2855. "This package provides access to Google Compute Engine (GCE) metadata and
  2856. API service accounts for Go.")
  2857. (license license:asl2.0)))
  2858. (define-public go-github-com-google-gmail-oauth2-tools-go-sendgmail
  2859. (let ((commit "e3229155a4037267ce40f1a3a681f53221aa4d8d")
  2860. (revision "0"))
  2861. (package
  2862. (name "go-github-com-google-gmail-oauth2-tools-go-sendgmail")
  2863. (version (git-version "0.0.0" revision commit))
  2864. (source
  2865. (origin
  2866. (method git-fetch)
  2867. (uri (git-reference
  2868. (url "https://github.com/google/gmail-oauth2-tools")
  2869. (commit commit)))
  2870. (file-name (git-file-name name version))
  2871. (sha256
  2872. (base32
  2873. "1cxpkiaajhq1gjsg47r2b5xgck0r63pvkyrkm7af8c8dw7fyn64f"))))
  2874. (propagated-inputs
  2875. `(("go-golang-org-x-oauth2" ,go-golang-org-x-oauth2)
  2876. ("go-cloud-google-com-go-compute-metadata"
  2877. ,go-cloud-google-com-go-compute-metadata)))
  2878. (build-system go-build-system)
  2879. (arguments
  2880. '(#:unpack-path "github.com/google/gmail-oauth2-tools"
  2881. #:import-path "github.com/google/gmail-oauth2-tools/go/sendgmail"))
  2882. (home-page
  2883. "https://github.com/google/gmail-oauth2-tools/tree/master/go/sendgmail")
  2884. (synopsis
  2885. "Sendmail-compatible tool for using Gmail with @code{git send-email}")
  2886. (description
  2887. "The @command{sendgmail} command provides a minimal sendmail-compatible
  2888. front-end that connects to Gmail using OAuth2. It is specifically designed
  2889. for use with @code{git send-email}. The command needs a Gmail API key to
  2890. function.")
  2891. (license license:asl2.0))))
  2892. (define-public go-github-com-google-cadvisor
  2893. (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
  2894. (revision "0"))
  2895. (package
  2896. (name "go-github-com-google-cadvisor")
  2897. (version (git-version "0.0.0" revision commit))
  2898. (source
  2899. (origin
  2900. (method git-fetch)
  2901. (uri (git-reference
  2902. (url "https://github.com/google/cadvisor")
  2903. (commit commit)))
  2904. (file-name (git-file-name name version))
  2905. (sha256
  2906. (base32
  2907. "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
  2908. (build-system go-build-system)
  2909. (arguments
  2910. '(#:import-path "github.com/google/cadvisor"))
  2911. (home-page "https://github.com/google/cadvisor")
  2912. (synopsis "Analyze resource usage of running containers")
  2913. (description "The package provides @code{cadvisor}, which provides
  2914. information about the resource usage and performance characteristics of running
  2915. containers.")
  2916. (license license:asl2.0))))
  2917. (define-public go-github-com-google-gofuzz
  2918. (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
  2919. (revision "0"))
  2920. (package
  2921. (name "go-github-com-google-gofuzz")
  2922. (version (git-version "0.0.0" revision commit))
  2923. (source
  2924. (origin
  2925. (method git-fetch)
  2926. (uri (git-reference
  2927. (url "https://github.com/google/gofuzz")
  2928. (commit commit)))
  2929. (file-name (git-file-name name version))
  2930. (sha256
  2931. (base32
  2932. "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
  2933. (build-system go-build-system)
  2934. (arguments
  2935. '(#:import-path "github.com/google/gofuzz"))
  2936. (home-page "https://github.com/google/gofuzz")
  2937. (synopsis "Fuzz testing library for Go")
  2938. (description "Gofuzz is a library for populationg Go objects with random
  2939. values for the purpose of fuzz testing.")
  2940. (license license:asl2.0))))
  2941. (define-public go-github-com-gorilla-css
  2942. (package
  2943. (name "go-github-com-gorilla-css")
  2944. (version "1.0.0")
  2945. (source (origin
  2946. (method git-fetch)
  2947. (uri (git-reference
  2948. (url "https://github.com/gorilla/css")
  2949. (commit (string-append "v" version))))
  2950. (file-name (git-file-name name version))
  2951. (sha256
  2952. (base32
  2953. "116fhy3n7bsq3psyn4pa0i4x9zy916kh1zxslmbbp0p9l4i7ysrj"))))
  2954. (build-system go-build-system)
  2955. (arguments
  2956. `(#:import-path "github.com/gorilla/css/scanner"
  2957. #:unpack-path "github.com/gorilla/css"))
  2958. (home-page "https://github.com/gorilla/css/")
  2959. (synopsis "CSS3 tokenizer")
  2960. (description "This package provides a CSS3 tokenizer.")
  2961. (license license:bsd-3)))
  2962. (define-public go-github-com-gorilla-context
  2963. (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
  2964. (revision "0"))
  2965. (package
  2966. (name "go-github-com-gorilla-context")
  2967. (version (git-version "0.0.0" revision commit))
  2968. (source
  2969. (origin
  2970. (method git-fetch)
  2971. (uri (git-reference
  2972. (url "https://github.com/gorilla/context")
  2973. (commit commit)))
  2974. (file-name (git-file-name name version))
  2975. (sha256
  2976. (base32
  2977. "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
  2978. (build-system go-build-system)
  2979. (arguments
  2980. '(#:import-path "github.com/gorilla/context"))
  2981. (home-page "https://github.com/gorilla/context")
  2982. (synopsis "Go registry for request variables")
  2983. (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
  2984. (license license:bsd-3))))
  2985. (define-public go-github-com-gorilla-mux
  2986. (package
  2987. (name "go-github-com-gorilla-mux")
  2988. (version "1.8.0")
  2989. (source
  2990. (origin
  2991. (method git-fetch)
  2992. (uri (git-reference
  2993. (url "https://github.com/gorilla/mux")
  2994. (commit (string-append "v" version))))
  2995. (file-name (git-file-name name version))
  2996. (sha256
  2997. (base32
  2998. "18f0q9qxgq1yh4ji07mqhiydfcwvi56z9d775v7dc7yckj33kpdk"))))
  2999. (build-system go-build-system)
  3000. (arguments
  3001. '(#:import-path "github.com/gorilla/mux"))
  3002. (home-page "https://github.com/gorilla/mux")
  3003. (synopsis "URL router and dispatcher for Go")
  3004. (description
  3005. "Gorilla/Mux implements a request router and dispatcher for matching
  3006. incoming requests with their respective handler.")
  3007. (license license:bsd-3)))
  3008. (define-public go-github-com-gorilla-handlers
  3009. (package
  3010. (name "go-github-com-gorilla-handlers")
  3011. (version "1.5.1")
  3012. (source
  3013. (origin
  3014. (method git-fetch)
  3015. (uri (git-reference
  3016. (url "https://github.com/gorilla/handlers")
  3017. (commit (string-append "v" version))))
  3018. (file-name (git-file-name name version))
  3019. (sha256
  3020. (base32
  3021. "15gycdz9lkjnsvvichsbdf25vf6pi1sfn41khhz53iqf300l0w0s"))))
  3022. (build-system go-build-system)
  3023. (propagated-inputs
  3024. `(("github.com/felixge/httpsnoop" ,go-github-com-felixge-httpsnoop)))
  3025. (arguments
  3026. '(#:tests? #f ; Tries to download from the internet
  3027. #:import-path "github.com/gorilla/handlers"))
  3028. (home-page "https://github.com/gorilla/handlers")
  3029. (synopsis "Middleware for Go HTTP services and web applications")
  3030. (description "A collection of useful middleware for Go HTTP services
  3031. and web applications.")
  3032. (license license:bsd-3)))
  3033. (define-public go-github-com-gorilla-securecookie
  3034. (package
  3035. (name "go-github-com-gorilla-securecookie")
  3036. (version "1.1.1")
  3037. (source
  3038. (origin
  3039. (method git-fetch)
  3040. (uri (git-reference
  3041. (url "https://github.com/gorilla/securecookie")
  3042. (commit (string-append "v" version))))
  3043. (file-name (git-file-name name version))
  3044. (sha256
  3045. (base32
  3046. "16bqimpxs9vj5n59vm04y04v665l7jh0sddxn787pfafyxcmh410"))))
  3047. (build-system go-build-system)
  3048. (arguments
  3049. '(#:import-path "github.com/gorilla/securecookie"))
  3050. (home-page "https://github.com/gorilla/securecookie")
  3051. (synopsis "Encodes and decodes authenticated and optionally encrypted
  3052. cookie values")
  3053. (description
  3054. "Gorilla/securecookie encodes and decodes authenticated and optionally
  3055. encrypted cookie values for Go web applications.")
  3056. (license license:bsd-3)))
  3057. (define-public go-github-com-gorilla-csrf
  3058. (package
  3059. (name "go-github-com-gorilla-csrf")
  3060. (version "1.7.0")
  3061. (source
  3062. (origin
  3063. (method git-fetch)
  3064. (uri (git-reference
  3065. (url "https://github.com/gorilla/csrf")
  3066. (commit (string-append "v" version))))
  3067. (file-name (git-file-name name version))
  3068. (sha256
  3069. (base32
  3070. "0iryq0z48yi7crfbd8jxyn7lh1gsglpiglvjgnf23bz6xfisssav"))))
  3071. (build-system go-build-system)
  3072. (propagated-inputs
  3073. `(("github.com/gorilla/securecookie" ,go-github-com-gorilla-securecookie)
  3074. ("github.com/pkg/errors" ,go-github-com-pkg-errors)))
  3075. (arguments
  3076. '(#:import-path "github.com/gorilla/csrf"))
  3077. (home-page "https://github.com/gorilla/csrf")
  3078. (synopsis "Cross Site Request Forgery (CSRF) prevention middleware")
  3079. (description
  3080. "Gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention
  3081. middleware for Go web applications and services.")
  3082. (license license:bsd-3)))
  3083. (define-public go-github-com-jonboulle-clockwork
  3084. (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
  3085. (revision "0"))
  3086. (package
  3087. (name "go-github-com-jonboulle-clockwork")
  3088. (version (git-version "0.0.0" revision commit))
  3089. (source
  3090. (origin
  3091. (method git-fetch)
  3092. (uri (git-reference
  3093. (url "https://github.com/jonboulle/clockwork")
  3094. (commit commit)))
  3095. (file-name (git-file-name name version))
  3096. (sha256
  3097. (base32
  3098. "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
  3099. (build-system go-build-system)
  3100. (arguments
  3101. '(#:import-path "github.com/jonboulle/clockwork"))
  3102. (home-page "https://github.com/jonboulle/clockwork")
  3103. (synopsis "Fake clock library for Go")
  3104. (description
  3105. "Replace uses of the @code{time} package with the
  3106. @code{clockwork.Clock} interface instead.")
  3107. (license license:asl2.0))))
  3108. (define-public go-github-com-spf13-afero
  3109. (package
  3110. (name "go-github-com-spf13-afero")
  3111. (version "1.2.2")
  3112. (source
  3113. (origin
  3114. (method git-fetch)
  3115. (uri (git-reference
  3116. (url "https://github.com/spf13/afero")
  3117. (commit (string-append "v" version))))
  3118. (file-name (git-file-name name version))
  3119. (sha256
  3120. (base32
  3121. "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9"))))
  3122. (build-system go-build-system)
  3123. (arguments
  3124. `(#:import-path "github.com/spf13/afero"))
  3125. (propagated-inputs
  3126. `(("golang.org/x/text" ,go-golang-org-x-text)))
  3127. (home-page "https://github.com/spf13/afero")
  3128. (synopsis "File system abstraction for Go")
  3129. (description
  3130. "This package provides a file system abstraction for Go.")
  3131. (license license:asl2.0)))
  3132. (define-public go-github-com-spf13-cast
  3133. (package
  3134. (name "go-github-com-spf13-cast")
  3135. (version "1.3.1")
  3136. (source
  3137. (origin
  3138. (method git-fetch)
  3139. (uri (git-reference
  3140. (url "https://github.com/spf13/cast")
  3141. (commit (string-append "v" version))))
  3142. (file-name (git-file-name name version))
  3143. (sha256
  3144. (base32
  3145. "0lb84788glr0qzrq2ifi36rgvp96qrgywvxrr3ggq5hrbr38hgn1"))))
  3146. (build-system go-build-system)
  3147. (arguments
  3148. `(#:import-path "github.com/spf13/cast"))
  3149. (native-inputs
  3150. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  3151. (home-page "https://github.com/spf13/cast")
  3152. (synopsis "Safe and easy casting from one type to another in Go")
  3153. (description "Safe and easy casting from one type to another in Go")
  3154. (license license:expat)))
  3155. (define-public go-github-com-spf13-cobra
  3156. (package
  3157. (name "go-github-com-spf13-cobra")
  3158. (version "1.0.0")
  3159. (source
  3160. (origin
  3161. (method git-fetch)
  3162. (uri (git-reference
  3163. (url "https://github.com/spf13/cobra")
  3164. (commit (string-append "v" version))))
  3165. (file-name (git-file-name name version))
  3166. (sha256
  3167. (base32
  3168. "0vbppqqhby302a5ayn0296jqr71qkcd4c9am7wzsk6z71fwdsa7h"))))
  3169. (build-system go-build-system)
  3170. (arguments
  3171. `(#:import-path "github.com/spf13/cobra"))
  3172. (propagated-inputs
  3173. `(("github.com/spf13/pflag" ,go-github-com-spf13-pflag)))
  3174. (home-page "https://github.com/spf13/cobra")
  3175. (synopsis "Go library for creating CLI applications")
  3176. (description "Cobra is both a library for creating powerful modern CLI
  3177. applications as well as a program to generate applications and command files.")
  3178. (license license:asl2.0)))
  3179. (define-public go-github-com-spf13-jwalterweatherman
  3180. (package
  3181. (name "go-github-com-spf13-jwalterweatherman")
  3182. (version "1.1.0")
  3183. (source
  3184. (origin
  3185. (method git-fetch)
  3186. (uri (git-reference
  3187. (url "https://github.com/spf13/jwalterweatherman")
  3188. (commit (string-append "v" version))))
  3189. (file-name (git-file-name name version))
  3190. (sha256
  3191. (base32
  3192. "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b"))))
  3193. (build-system go-build-system)
  3194. (arguments
  3195. `(#:import-path "github.com/spf13/jwalterweatherman"))
  3196. (native-inputs
  3197. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  3198. (home-page "https://github.com/spf13/jwalterweatherman")
  3199. (synopsis "Go logging library")
  3200. (description "Go logging library")
  3201. (license license:expat)))
  3202. (define-public go-github-com-spf13-pflag
  3203. (package
  3204. (name "go-github-com-spf13-pflag")
  3205. (version "1.0.5")
  3206. (source
  3207. (origin
  3208. (method git-fetch)
  3209. (uri (git-reference
  3210. (url "https://github.com/spf13/pflag")
  3211. (commit (string-append "v" version))))
  3212. (file-name (git-file-name name version))
  3213. (sha256
  3214. (base32
  3215. "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31"))))
  3216. (build-system go-build-system)
  3217. (arguments
  3218. '(#:import-path "github.com/spf13/pflag"))
  3219. (home-page "https://github.com/spf13/pflag")
  3220. (synopsis "Replacement for Go's @code{flag} package")
  3221. (description
  3222. "Pflag is library to replace Go's @code{flag} package. It implements
  3223. POSIX/GNU-style command-line options with double hyphens. It is is compatible
  3224. with the
  3225. @uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
  3226. GNU extensions} to the POSIX recommendations for command-line options.")
  3227. (license license:bsd-3)))
  3228. (define-public go-github-com-spf13-viper
  3229. (package
  3230. (name "go-github-com-spf13-viper")
  3231. (version "1.7.0")
  3232. (source
  3233. (origin
  3234. (method git-fetch)
  3235. (uri (git-reference
  3236. (url "https://github.com/spf13/viper")
  3237. (commit (string-append "v" version))))
  3238. (file-name (git-file-name name version))
  3239. (sha256
  3240. (base32
  3241. "099n2g7fg6r8hqyszqw2axr775qyhyvwhsykvgw0f0s16ql48h5c"))))
  3242. (build-system go-build-system)
  3243. (arguments
  3244. '(#:import-path "github.com/spf13/viper"))
  3245. (propagated-inputs
  3246. `(("github.com/spf13/afero" ,go-github-com-spf13-afero)
  3247. ("github.com/spf13/cast" ,go-github-com-spf13-cast)
  3248. ("github.com/spf13/pflag" ,go-github-com-spf13-pflag)
  3249. ("github.com/spf13/jwalterweatherman" ,go-github-com-spf13-jwalterweatherman)
  3250. ("github.com/fsnotify/fsnotify" ,go-github-com-fsnotify-fsnotify)
  3251. ("github.com/hashicorp/hcl" ,go-github-com-hashicorp-hcl)
  3252. ("github.com/magiconair/properties" ,go-github-com-magiconair-properties)
  3253. ("github.com/mitchellh/mapstructure" ,go-github-com-mitchellh-mapstructure)
  3254. ("github.com/pelletier/go-toml" ,go-github-com-pelletier-go-toml)
  3255. ("github.com/subosito/gotenv" ,go-github-com-subosito-gotenv)
  3256. ("gopkg.in/ini.v1" ,go-gopkg-in-ini-v1)
  3257. ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
  3258. (native-inputs
  3259. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  3260. (home-page "https://github.com/spf13/viper")
  3261. (synopsis "Go configuration with fangs")
  3262. (description
  3263. "Viper is a complete configuration solution for Go applications including
  3264. 12-Factor apps. It is designed to work within an application, and can handle
  3265. all types of configuration needs and formats.")
  3266. (license license:expat)))
  3267. (define-public go-github-com-felixge-httpsnoop
  3268. (package
  3269. (name "go-github-com-felixge-httpsnoop")
  3270. (version "1.0.1")
  3271. (source
  3272. (origin
  3273. (method git-fetch)
  3274. (uri (git-reference
  3275. (url "https://github.com/felixge/httpsnoop")
  3276. (commit (string-append "v" version))))
  3277. (file-name (git-file-name name version))
  3278. (sha256
  3279. (base32
  3280. "0ncd8lar5zxiwjhsp315s4hsl4bhnm271h49jhyxc66r5yffgmac"))))
  3281. (build-system go-build-system)
  3282. (arguments
  3283. '(#:import-path "github.com/felixge/httpsnoop"))
  3284. (home-page "https://github.com/felixge/httpsnoop/")
  3285. (synopsis "Capture http related metrics")
  3286. (description
  3287. "Httpsnoop provides an easy way to capture http related
  3288. metrics (i.e. response time, bytes written, and http status code) from your
  3289. application's http.Handlers.")
  3290. (license license:expat)))
  3291. (define-public go-github-com-fsnotify-fsnotify
  3292. (package
  3293. (name "go-github-com-fsnotify-fsnotify")
  3294. (version "1.4.9")
  3295. (source
  3296. (origin
  3297. (method git-fetch)
  3298. (uri (git-reference
  3299. (url "https://github.com/fsnotify/fsnotify")
  3300. (commit (string-append "v" version))))
  3301. (file-name (git-file-name name version))
  3302. (sha256
  3303. (base32
  3304. "1i1r72knpbfwwql9frn9bqc3nhfc2ai5m6qllcyr6wban62lr40x"))))
  3305. (build-system go-build-system)
  3306. (arguments
  3307. `(#:import-path "github.com/fsnotify/fsnotify"))
  3308. (propagated-inputs
  3309. `(("golang.org/x/sys" ,go-golang-org-x-sys)))
  3310. (home-page "https://github.com/fsnotify/fsnotify")
  3311. (synopsis "File system notifications for Go")
  3312. (description "File system notifications for Go")
  3313. (license license:bsd-3)))
  3314. (define-public go-github-com-magiconair-properties
  3315. (package
  3316. (name "go-github-com-magiconair-properties")
  3317. (version "1.8.5")
  3318. (source
  3319. (origin
  3320. (method git-fetch)
  3321. (uri (git-reference
  3322. (url "https://github.com/magiconair/properties")
  3323. (commit (string-append "v" version))))
  3324. (file-name (git-file-name name version))
  3325. (sha256
  3326. (base32
  3327. "0v4agnkhc30fblbmhs0gq2bikhdnnmqmpp4phrnza68m04j5hxbn"))))
  3328. (build-system go-build-system)
  3329. (arguments
  3330. `(#:import-path "github.com/magiconair/properties"))
  3331. (home-page "https://github.com/magiconair/properties")
  3332. (synopsis "Java properties scanner for Go")
  3333. (description "Java properties scanner for Go")
  3334. (license license:bsd-2)))
  3335. (define-public go-github-com-pelletier-go-toml
  3336. (package
  3337. (name "go-github-com-pelletier-go-toml")
  3338. (version "1.9.3")
  3339. (source
  3340. (origin
  3341. (method git-fetch)
  3342. (uri (git-reference
  3343. (url "https://github.com/pelletier/go-toml")
  3344. (commit (string-append "v" version))))
  3345. (file-name (git-file-name name version))
  3346. (sha256
  3347. (base32
  3348. "0cqwnvlgs1wgdgjxlwv8j52f7d6syniadr51sjh2fya99m5wzvsn"))))
  3349. (build-system go-build-system)
  3350. (arguments
  3351. `(#:import-path "github.com/pelletier/go-toml"))
  3352. (native-inputs
  3353. `(("github.com/BurntSushi/toml" ,go-github-com-burntsushi-toml)
  3354. ("github.com/davecgh/go-spew" ,go-github-com-davecgh-go-spew)
  3355. ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
  3356. (home-page "https://github.com/pelletier/go-toml")
  3357. (synopsis "Go library for the TOML configuration language")
  3358. (description "Go library for the TOML configuration language")
  3359. (license license:expat)))
  3360. (define-public go-github-com-subosito-gotenv
  3361. (package
  3362. (name "go-github-com-subosito-gotenv")
  3363. (version "1.2.0")
  3364. (source
  3365. (origin
  3366. (method git-fetch)
  3367. (uri (git-reference
  3368. (url "https://github.com/subosito/gotenv")
  3369. (commit (string-append "v" version))))
  3370. (file-name (git-file-name name version))
  3371. (sha256
  3372. (base32
  3373. "0mav91j7r4arjkpq5zcf9j74f6pww8ic53x43wy7kg3ibw31yjs5"))))
  3374. (build-system go-build-system)
  3375. (arguments
  3376. `(#:import-path "github.com/subosito/gotenv"))
  3377. (native-inputs
  3378. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  3379. (home-page "https://github.com/subosito/gotenv")
  3380. (synopsis "Go library for loading environment variables from files")
  3381. (description "Go library for loading environment variables from files")
  3382. (license license:expat)))
  3383. (define-public go-github-com-sirupsen-logrus
  3384. (package
  3385. (name "go-github-com-sirupsen-logrus")
  3386. (version "1.8.1")
  3387. (source
  3388. (origin
  3389. (method git-fetch)
  3390. (uri (git-reference
  3391. (url "https://github.com/sirupsen/logrus")
  3392. (commit (string-append "v" version))))
  3393. (file-name (git-file-name name version))
  3394. (sha256
  3395. (base32
  3396. "0rvqzic2zz7fpxyizmqxwmhv1m52ii9bgxnqa6km8wsa0l08wh42"))))
  3397. (build-system go-build-system)
  3398. (propagated-inputs
  3399. `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)
  3400. ("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)
  3401. ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
  3402. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  3403. ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  3404. (arguments
  3405. '(#:import-path "github.com/sirupsen/logrus"))
  3406. (home-page "https://github.com/sirupsen/logrus")
  3407. (synopsis "Structured, pluggable logging for Go")
  3408. (description "Logrus is a structured logger for Go, completely API
  3409. compatible with the standard library logger.")
  3410. (license license:expat)))
  3411. (define-public go-github-com-rifflock-lfshook
  3412. (package
  3413. (name "go-github-com-rifflock-lfshook")
  3414. (version "2.4")
  3415. (source (origin
  3416. (method git-fetch)
  3417. (uri (git-reference
  3418. (url "https://github.com/rifflock/lfshook")
  3419. (commit (string-append "v" version))))
  3420. (file-name (git-file-name name version))
  3421. (sha256
  3422. (base32
  3423. "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc"))))
  3424. (build-system go-build-system)
  3425. (arguments
  3426. `(#:import-path "github.com/rifflock/lfshook"))
  3427. (propagated-inputs
  3428. `(("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)))
  3429. (home-page "https://github.com/rifflock/lfshook")
  3430. (synopsis "Local File System hook for Logrus logger")
  3431. (description "This package provides a hook for Logrus to write directly to
  3432. a file on the file system. The log levels are dynamic at instantiation of the
  3433. hook, so it is capable of logging at some or all levels.")
  3434. (license license:expat)))
  3435. (define-public go-github-com-kardianos-osext
  3436. (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
  3437. (revision "1"))
  3438. (package
  3439. (name "go-github-com-kardianos-osext")
  3440. (version (git-version "0.0.0" revision commit))
  3441. (source (origin
  3442. (method git-fetch)
  3443. (uri (git-reference
  3444. (url "https://github.com/kardianos/osext")
  3445. (commit commit)))
  3446. (file-name (git-file-name name version))
  3447. (sha256
  3448. (base32
  3449. "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
  3450. (build-system go-build-system)
  3451. (arguments
  3452. `(#:import-path "github.com/kardianos/osext"
  3453. ;; The tests are flaky:
  3454. ;; <https://github.com/kardianos/osext/issues/21>
  3455. #:tests? #f))
  3456. (synopsis "Find the running executable")
  3457. (description "Osext provides a method for finding the current executable
  3458. file that is running. This can be used for upgrading the current executable or
  3459. finding resources located relative to the executable file.")
  3460. (home-page "https://github.com/kardianos/osext")
  3461. (license license:bsd-3))))
  3462. (define-public go-github-com-ayufan-golang-kardianos-service
  3463. (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
  3464. (revision "0"))
  3465. (package
  3466. (name "go-github-com-ayufan-golang-kardianos-service")
  3467. (version (git-version "0.0.0" revision commit))
  3468. (source
  3469. (origin
  3470. (method git-fetch)
  3471. (uri (git-reference
  3472. (url
  3473. "https://github.com/ayufan/golang-kardianos-service")
  3474. (commit commit)))
  3475. (file-name (git-file-name name version))
  3476. (sha256
  3477. (base32
  3478. "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
  3479. (build-system go-build-system)
  3480. (native-inputs
  3481. `(("go-github-com-kardianos-osext"
  3482. ,go-github-com-kardianos-osext)))
  3483. (arguments
  3484. '(#:tests? #f ;FIXME tests fail: Service is not running.
  3485. #:import-path "github.com/ayufan/golang-kardianos-service"))
  3486. (home-page "https://github.com/ayufan/golang-kardianos-service")
  3487. (synopsis "Go interface to a variety of service supervisors")
  3488. (description "This package provides @code{service}, a Go module that can
  3489. run programs as a service using a variety of supervisors, including systemd,
  3490. SysVinit, and more.")
  3491. (license license:zlib))))
  3492. (define-public go-github-com-docker-distribution
  3493. (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
  3494. (revision "0"))
  3495. (package
  3496. (name "go-github-com-docker-distribution")
  3497. (version (git-version "0.0.0" revision commit))
  3498. (source
  3499. ;; FIXME: This bundles many things, see
  3500. ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
  3501. (origin
  3502. (method git-fetch)
  3503. (uri (git-reference
  3504. (url "https://github.com/docker/distribution")
  3505. (commit commit)))
  3506. (file-name (git-file-name name version))
  3507. (sha256
  3508. (base32
  3509. "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
  3510. (build-system go-build-system)
  3511. (native-inputs
  3512. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
  3513. ("go-github-com-sirupsen-logrus"
  3514. ,go-github-com-sirupsen-logrus)
  3515. ("go-golang-org-x-crypto"
  3516. ,go-golang-org-x-crypto)))
  3517. (arguments
  3518. '(#:import-path "github.com/docker/distribution"
  3519. #:phases
  3520. (modify-phases %standard-phases
  3521. (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
  3522. (lambda* (#:key outputs #:allow-other-keys)
  3523. (map (lambda (file)
  3524. (make-file-writable file))
  3525. (find-files
  3526. (assoc-ref outputs "out")
  3527. ".*\\.gz$"))
  3528. #t)))))
  3529. (home-page
  3530. "https://github.com/docker/distribution")
  3531. (synopsis "This package is a Docker toolset to pack, ship, store, and
  3532. deliver content")
  3533. (description "Docker Distribution is a Docker toolset to pack, ship,
  3534. store, and deliver content. It contains Docker Registry 2.0 and libraries
  3535. to interact with distribution components.")
  3536. (license license:asl2.0))))
  3537. (define-public go-github-com-docker-go-connections
  3538. (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
  3539. (revision "0"))
  3540. (package
  3541. (name "go-github-com-docker-go-connections")
  3542. (version (git-version "0.0.0" revision commit))
  3543. (source
  3544. (origin
  3545. (method git-fetch)
  3546. (uri (git-reference
  3547. (url "https://github.com/docker/go-connections")
  3548. (commit commit)))
  3549. (file-name (git-file-name name version))
  3550. (sha256
  3551. (base32
  3552. "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
  3553. (build-system go-build-system)
  3554. (arguments
  3555. '(#:import-path "github.com/docker/go-connections"))
  3556. (home-page "https://github.com/docker/go-connections")
  3557. (synopsis "Networking library for Go")
  3558. (description
  3559. "This package provides a library to work with network connections in
  3560. the Go language. In particular it provides tools to deal with network address
  3561. translation (NAT), proxies, sockets, and transport layer security (TLS).")
  3562. (license license:asl2.0))))
  3563. (define-public go-github-com-docker-machine
  3564. (let ((commit "7b7a141da84480342357c51838be142bf183b095")
  3565. (revision "0"))
  3566. (package
  3567. (name "go-github-com-docker-machine")
  3568. (version (git-version "0.0.0" revision commit))
  3569. (source
  3570. (origin
  3571. (method git-fetch)
  3572. (uri (git-reference
  3573. (url "https://github.com/docker/machine")
  3574. (commit commit)))
  3575. (file-name (git-file-name name version))
  3576. (sha256
  3577. (base32
  3578. "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
  3579. (build-system go-build-system)
  3580. (arguments
  3581. '(#:import-path "github.com/docker/machine"))
  3582. (home-page "https://github.com/docker/machine")
  3583. (synopsis "Machine management for a container-centric world")
  3584. (description
  3585. "@dfn{Machine} lets you create Docker hosts on your computer, on
  3586. hosting providers, and inside your data center. It creates servers, installs
  3587. Docker on them, then configures the Docker client to talk to them.")
  3588. (license license:asl2.0))))
  3589. (define-public go-github-com-gorhill-cronexpr
  3590. (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
  3591. (revision "0"))
  3592. (package
  3593. (name "go-github-com-gorhill-cronexpr")
  3594. (version (git-version "0.0.0" revision commit))
  3595. (source
  3596. (origin
  3597. (method git-fetch)
  3598. (uri (git-reference
  3599. (url "https://github.com/gorhill/cronexpr")
  3600. (commit commit)))
  3601. (file-name (git-file-name name version))
  3602. (sha256
  3603. (base32
  3604. "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
  3605. (build-system go-build-system)
  3606. (arguments
  3607. '(#:import-path "github.com/gorhill/cronexpr"))
  3608. (home-page "https://github.com/gorhill/cronexpr")
  3609. (synopsis "Cron expression parser in the Go language")
  3610. (description
  3611. "This package provides a cron expression parser in the Go language.
  3612. Given a cron expression and a time stamp, you can get the next time stamp
  3613. which satisfies the cron expression.")
  3614. (license (list license:gpl3+
  3615. license:asl2.0)))))
  3616. (define-public go-gopkg-in-check-v1
  3617. (package
  3618. (name "go-gopkg-in-check-v1")
  3619. (version "1.0.0-20201130134442-10cb98267c6c")
  3620. (source
  3621. (origin
  3622. (method git-fetch)
  3623. (uri (git-reference
  3624. (url "https://github.com/go-check/check")
  3625. (commit (go-version->git-ref version))))
  3626. (file-name (git-file-name name version))
  3627. (sha256
  3628. (base32
  3629. "1jwxndf8rsyx0fgrp47d99rp55yzssmryb92jfj3yf7zd8rjjljn"))))
  3630. (build-system go-build-system)
  3631. (arguments
  3632. '(#:import-path "gopkg.in/check.v1"))
  3633. (propagated-inputs
  3634. `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
  3635. (home-page "https://gopkg.in/check.v1")
  3636. (synopsis "Test framework for the Go language")
  3637. (description "This package provides a test library for the Go language.")
  3638. (license license:bsd-2)))
  3639. (define-public go-gopkg-in-ini-v1
  3640. (package
  3641. (name "go-gopkg-in-ini-v1")
  3642. (version "1.56.0")
  3643. (source
  3644. (origin
  3645. (method git-fetch)
  3646. (uri (git-reference
  3647. (url "https://github.com/go-ini/ini")
  3648. (commit (string-append "v" version))))
  3649. (file-name (git-file-name name version))
  3650. (sha256
  3651. (base32
  3652. "0j5z0cngg6mq2f9id083jcdi7k6r2h35714pashv6sdv2q7bmfc5"))))
  3653. (build-system go-build-system)
  3654. (arguments
  3655. '(#:import-path "gopkg.in/ini.v1"
  3656. ;; Requires large unpackaged test framework
  3657. #:tests? #f))
  3658. (home-page "https://gopkg.in/ini.v1")
  3659. (synopsis "Go library for ini files")
  3660. (description "Go library for ini files")
  3661. (license license:asl2.0)))
  3662. (define-public go-gopkg-in-yaml-v2
  3663. (package
  3664. (name "go-gopkg-in-yaml-v2")
  3665. (version "2.2.2")
  3666. (source
  3667. (origin
  3668. (method git-fetch)
  3669. (uri (git-reference
  3670. (url "https://gopkg.in/yaml.v2.git")
  3671. (commit (string-append "v" version))))
  3672. (file-name (git-file-name name version))
  3673. (sha256
  3674. (base32
  3675. "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
  3676. (build-system go-build-system)
  3677. (arguments
  3678. '(#:import-path "gopkg.in/yaml.v2"))
  3679. (native-inputs
  3680. `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
  3681. (home-page "https://gopkg.in/yaml.v2")
  3682. (synopsis "YAML reader and writer for the Go language")
  3683. (description
  3684. "This package provides a Go library for encode and decode YAML
  3685. values.")
  3686. (license license:asl2.0)))
  3687. (define-public go-gopkg-in-yaml-v3
  3688. (package
  3689. (name "go-gopkg-in-yaml-v3")
  3690. (version "3")
  3691. (source
  3692. (origin
  3693. (method git-fetch)
  3694. (uri (git-reference
  3695. (url "https://gopkg.in/yaml.v3")
  3696. (commit (string-append "v" version))))
  3697. (file-name (git-file-name name version))
  3698. (sha256
  3699. (base32 "06f4lnrp494wqaygv09dggr2dwf3z2bawqhnlnnwiamg5y787k4g"))))
  3700. (build-system go-build-system)
  3701. (arguments
  3702. '(#:import-path "gopkg.in/yaml.v3"))
  3703. (native-inputs
  3704. `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
  3705. (home-page "https://gopkg.in/yaml.v3")
  3706. (synopsis "YAML reader and writer for the Go language")
  3707. (description
  3708. "This package provides a Go library for encode and decode YAML values.
  3709. The yaml package supports most of YAML 1.2, but preserves some behavior from
  3710. 1.1 for backwards compatibility.")
  3711. (license license:asl2.0)))
  3712. (define-public go-github-com-mattn-go-isatty
  3713. (package
  3714. (name "go-github-com-mattn-go-isatty")
  3715. (version "0.0.11")
  3716. (source
  3717. (origin
  3718. (method git-fetch)
  3719. (uri (git-reference
  3720. (url "https://github.com/mattn/go-isatty")
  3721. (commit (string-append "v" version))))
  3722. (file-name (git-file-name name version))
  3723. (sha256
  3724. (base32
  3725. "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"))))
  3726. (build-system go-build-system)
  3727. (propagated-inputs
  3728. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  3729. (arguments
  3730. '(#:import-path "github.com/mattn/go-isatty"))
  3731. (home-page "https://github.com/mattn/go-isatty")
  3732. (synopsis "Provide @code{isatty} for Golang")
  3733. (description "This package provides @code{isatty}, a Go module that can
  3734. tell you whether a file descriptor points to a terminal and the type of the
  3735. terminal.")
  3736. (license license:expat)))
  3737. (define-public go-github-com-mattn-go-colorable
  3738. (package
  3739. (name "go-github-com-mattn-go-colorable")
  3740. (version "0.1.8")
  3741. (home-page "https://github.com/mattn/go-colorable")
  3742. (source
  3743. (origin
  3744. (method git-fetch)
  3745. (uri (git-reference
  3746. (url home-page)
  3747. (commit (string-append "v" version))))
  3748. (file-name (git-file-name name version))
  3749. (sha256
  3750. (base32
  3751. "0q34zqwbnls72md8q8mhj368s7p3i4xspvs3rk8fs76s0pn7dr2l"))))
  3752. (build-system go-build-system)
  3753. (native-inputs
  3754. `(("go-github-com-mattn-go-isatty"
  3755. ,go-github-com-mattn-go-isatty)))
  3756. (arguments
  3757. '(#:import-path "github.com/mattn/go-colorable"))
  3758. (synopsis "Handle ANSI color escapes on Windows")
  3759. (description "This package provides @code{colorable}, a module that
  3760. makes it possible to handle ANSI color escapes on Windows.")
  3761. (license license:expat)))
  3762. (define-public go-github-com-mattn-go-pointer
  3763. (let ((commit "a0a44394634f41e4992b173b24f14fecd3318a67")
  3764. (revision "1"))
  3765. (package
  3766. (name "go-github-com-mattn-go-pointer")
  3767. (version (git-version "0.0.0" revision commit))
  3768. (source
  3769. (origin
  3770. (method git-fetch)
  3771. (uri (git-reference
  3772. (url "https://github.com/mattn/go-pointer")
  3773. (commit commit)))
  3774. (sha256
  3775. (base32
  3776. "09w7hcyc0zz2g23vld6jbcmq4ar27xakp1ldjvh549i5izf2anhz"))
  3777. (file-name (git-file-name name version))))
  3778. (build-system go-build-system)
  3779. (arguments
  3780. '(#:import-path "github.com/mattn/go-pointer"))
  3781. (home-page "https://github.com/mattn/go-pointer")
  3782. (synopsis "Utility for cgo")
  3783. (description
  3784. "This package allows for a cgo argument to be passed a Go pointer.")
  3785. (license license:expat))))
  3786. (define-public go-github-com-mgutz-ansi
  3787. (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
  3788. (revision "0"))
  3789. (package
  3790. (name "go-github-com-mgutz-ansi")
  3791. (version (git-version "0.0.0" revision commit))
  3792. (source
  3793. (origin
  3794. (method git-fetch)
  3795. (uri (git-reference
  3796. (url
  3797. "https://github.com/mgutz/ansi")
  3798. (commit commit)))
  3799. (file-name (git-file-name name version))
  3800. (sha256
  3801. (base32
  3802. "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
  3803. (build-system go-build-system)
  3804. (native-inputs
  3805. `(("go-github-com-mattn-go-isatty"
  3806. ,go-github-com-mattn-go-isatty)
  3807. ("go-github-com-mattn-go-colorable"
  3808. ,go-github-com-mattn-go-colorable)))
  3809. (arguments
  3810. '(#:import-path "github.com/mgutz/ansi"))
  3811. (home-page "https://github.com/mgutz/ansi")
  3812. (synopsis "Small, fast library to create ANSI colored strings and codes")
  3813. (description "This package provides @code{ansi}, a Go module that can
  3814. generate ANSI colored strings.")
  3815. (license license:expat))))
  3816. (define-public go-github-com-aarzilli-golua
  3817. (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
  3818. (revision "0"))
  3819. (package
  3820. (name "go-github-com-aarzilli-golua")
  3821. (version (git-version "0.0.0" revision commit))
  3822. (source
  3823. (origin
  3824. (method git-fetch)
  3825. (uri (git-reference
  3826. (url
  3827. "https://github.com/aarzilli/golua")
  3828. (commit commit)))
  3829. (file-name (git-file-name name version))
  3830. (sha256
  3831. (base32
  3832. "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
  3833. (build-system go-build-system)
  3834. ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
  3835. ;; when this package required as input for another one, it will have to
  3836. ;; be built again. Thus its CGO requirements must be made available in
  3837. ;; the environment, that is, they must be propagated.
  3838. (propagated-inputs
  3839. `(("lua" ,lua)))
  3840. (arguments
  3841. `(#:unpack-path "github.com/aarzilli/golua"
  3842. #:import-path "github.com/aarzilli/golua/lua"
  3843. #:phases
  3844. (modify-phases %standard-phases
  3845. ;; While it's possible to fix the CGO_LDFLAGS with the "-tags"
  3846. ;; command line argument, go-1.10+ does not re-use the produced pkg
  3847. ;; for dependencies, which means we would need to propagate the
  3848. ;; same "-tags" argument to all golua referrers. A substitution is
  3849. ;; more convenient here. We also need to propagate the lua
  3850. ;; dependency to make it available to referrers.
  3851. (add-after 'unpack 'fix-lua-ldflags
  3852. (lambda _
  3853. (substitute* "src/github.com/aarzilli/golua/lua/lua.go"
  3854. (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3")
  3855. "#cgo linux,!llua,!luaa LDFLAGS: -llua")))))))
  3856. (home-page "https://github.com/aarzilli/golua")
  3857. (synopsis "Go Bindings for the Lua C API")
  3858. (description "This package provides @code{lua}, a Go module that can
  3859. run a Lua virtual machine.")
  3860. (license license:expat))))
  3861. (define-public go-gitlab-com-ambrevar-golua-unicode
  3862. (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
  3863. (revision "0"))
  3864. (package
  3865. (name "go-gitlab-com-ambrevar-golua-unicode")
  3866. (version (git-version "0.0.0" revision commit))
  3867. (source
  3868. (origin
  3869. (method git-fetch)
  3870. (uri (git-reference
  3871. (url
  3872. "https://gitlab.com/ambrevar/golua")
  3873. (commit commit)))
  3874. (file-name (git-file-name name version))
  3875. (sha256
  3876. (base32
  3877. "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
  3878. (build-system go-build-system)
  3879. (native-inputs
  3880. `(("lua" ,lua)
  3881. ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
  3882. (arguments
  3883. `(#:unpack-path "gitlab.com/ambrevar/golua"
  3884. #:import-path "gitlab.com/ambrevar/golua/unicode"
  3885. #:phases
  3886. (modify-phases %standard-phases
  3887. (replace 'check
  3888. (lambda* (#:key import-path #:allow-other-keys)
  3889. (setenv "USER" "homeless-dude")
  3890. (invoke "go" "test" import-path))))))
  3891. (home-page "https://gitlab.com/ambrevar/golua")
  3892. (synopsis "Add Unicode support to Golua")
  3893. (description "This extension to Arzilli's Golua adds Unicode support to
  3894. all functions from the Lua string library. Lua patterns are replaced by Go
  3895. regexps. This breaks compatibility with Lua, but Unicode support breaks it
  3896. anyways and Go regexps are more powerful.")
  3897. (license license:expat))))
  3898. (define-public go-github-com-yookoala-realpath
  3899. (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
  3900. (revision "0"))
  3901. (package
  3902. (name "go-github-com-yookoala-realpath")
  3903. (version (git-version "0.0.0" revision commit))
  3904. (source
  3905. (origin
  3906. (method git-fetch)
  3907. (uri (git-reference
  3908. (url
  3909. "https://github.com/yookoala/realpath")
  3910. (commit commit)))
  3911. (file-name (git-file-name name version))
  3912. (sha256
  3913. (base32
  3914. "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
  3915. (build-system go-build-system)
  3916. (arguments
  3917. `(#:import-path "github.com/yookoala/realpath"))
  3918. (home-page "https://github.com/yookoala/realpath")
  3919. (synopsis "@code{realpath} for Golang")
  3920. (description "This package provides @code{realpath}, a Go module that
  3921. when provided with a valid relative path / alias path, it will return you with
  3922. a string of its real absolute path in the system.")
  3923. (license license:expat))))
  3924. (define-public go-gitlab-com-ambrevar-damerau
  3925. (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
  3926. (revision "0"))
  3927. (package
  3928. (name "go-gitlab-com-ambrevar-damerau")
  3929. (version (git-version "0.0.0" revision commit))
  3930. (source
  3931. (origin
  3932. (method git-fetch)
  3933. (uri (git-reference
  3934. (url
  3935. "https://gitlab.com/ambrevar/damerau")
  3936. (commit commit)))
  3937. (file-name (git-file-name name version))
  3938. (sha256
  3939. (base32
  3940. "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
  3941. (build-system go-build-system)
  3942. (arguments
  3943. `(#:import-path "gitlab.com/ambrevar/damerau"))
  3944. (home-page "https://gitlab.com/ambrevar/damerau")
  3945. (synopsis "Damerau-Levenshtein distance for Golang")
  3946. (description "This is a spelling corrector implementing the
  3947. Damerau-Levenshtein distance. Takes a string value input from the user.
  3948. Looks for an identical word on a list of words, if none is found, look for a
  3949. similar word.")
  3950. (license license:expat))))
  3951. (define-public go-github-com-stevedonovan-luar
  3952. (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
  3953. (revision "0"))
  3954. (package
  3955. (name "go-github-com-stevedonovan-luar")
  3956. (version (git-version "0.0.0" revision commit))
  3957. (source
  3958. (origin
  3959. (method git-fetch)
  3960. (uri (git-reference
  3961. (url
  3962. "https://github.com/stevedonovan/luar")
  3963. (commit commit)))
  3964. (file-name (git-file-name name version))
  3965. (sha256
  3966. (base32
  3967. "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
  3968. (build-system go-build-system)
  3969. (native-inputs
  3970. `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
  3971. (arguments
  3972. `(#:tests? #f ; Upstream tests are broken.
  3973. #:import-path "github.com/stevedonovan/luar"))
  3974. (home-page "https://github.com/stevedonovan/luar")
  3975. (synopsis "Lua reflection bindings for Go")
  3976. (description "Luar is designed to make using Lua from Go more
  3977. convenient. Go structs, slices and maps can be automatically converted to Lua
  3978. tables and vice-versa. The resulting conversion can either be a copy or a
  3979. proxy. In the latter case, any change made to the result will reflect on the
  3980. source.
  3981. Any Go function can be made available to Lua scripts, without having to write
  3982. C-style wrappers.
  3983. Luar support cyclic structures (lists, etc.).
  3984. User-defined types can be made available to Lua as well: their exported
  3985. methods can be called and usual operations such as indexing or arithmetic can
  3986. be performed.")
  3987. (license license:expat))))
  3988. (define-public go-github-com-michiwend-golang-pretty
  3989. (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
  3990. (revision "0"))
  3991. (package
  3992. (name "go-github-com-michiwend-golang-pretty")
  3993. (version (git-version "0.0.0" revision commit))
  3994. (source
  3995. (origin
  3996. (method git-fetch)
  3997. (uri (git-reference
  3998. (url
  3999. "https://github.com/michiwend/golang-pretty")
  4000. (commit commit)))
  4001. (file-name (git-file-name name version))
  4002. (sha256
  4003. (base32
  4004. "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
  4005. (build-system go-build-system)
  4006. (native-inputs
  4007. `(("go-github-com-kr-text" ,go-github-com-kr-text)))
  4008. (arguments
  4009. `(#:tests? #f ; Upstream tests seem to be broken.
  4010. #:import-path "github.com/michiwend/golang-pretty"))
  4011. (home-page "https://github.com/michiwend/golang-pretty")
  4012. (synopsis "Pretty printing for Go values")
  4013. (description "Package @code{pretty} provides pretty-printing for Go
  4014. values. This is useful during debugging, to avoid wrapping long output lines
  4015. in the terminal.
  4016. It provides a function, @code{Formatter}, that can be used with any function
  4017. that accepts a format string. It also provides convenience wrappers for
  4018. functions in packages @code{fmt} and @code{log}.")
  4019. (license license:expat))))
  4020. (define-public go-github-com-michiwend-gomusicbrainz
  4021. (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
  4022. (revision "0"))
  4023. (package
  4024. (name "go-github-com-michiwend-gomusicbrainz")
  4025. (version (git-version "0.0.0" revision commit))
  4026. (source
  4027. (origin
  4028. (method git-fetch)
  4029. (uri (git-reference
  4030. (url
  4031. "https://github.com/michiwend/gomusicbrainz")
  4032. (commit commit)))
  4033. (file-name (git-file-name name version))
  4034. (sha256
  4035. (base32
  4036. "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
  4037. (build-system go-build-system)
  4038. (native-inputs
  4039. `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
  4040. ("go-github-com-kr-text" ,go-github-com-kr-text)))
  4041. (arguments
  4042. `(#:import-path "github.com/michiwend/gomusicbrainz"))
  4043. (home-page "https://github.com/michiwend/gomusicbrainz")
  4044. (synopsis "MusicBrainz WS2 client library for Golang")
  4045. (description "Currently GoMusicBrainz provides methods to perform search
  4046. and lookup requests. Browse requests are not supported yet.")
  4047. (license license:expat))))
  4048. (define-public go-github-com-wtolson-go-taglib
  4049. (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
  4050. (revision "0"))
  4051. (package
  4052. (name "go-github-com-wtolson-go-taglib")
  4053. (version (git-version "0.0.0" revision commit))
  4054. (source
  4055. (origin
  4056. (method git-fetch)
  4057. (uri (git-reference
  4058. (url
  4059. "https://github.com/wtolson/go-taglib")
  4060. (commit commit)))
  4061. (file-name (git-file-name name version))
  4062. (sha256
  4063. (base32
  4064. "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
  4065. (build-system go-build-system)
  4066. ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
  4067. ;; when this package required as input for another one, it will have to
  4068. ;; be built again. Thus its CGO requirements must be made available in
  4069. ;; the environment, that is, they must be propagated.
  4070. (propagated-inputs
  4071. `(("pkg-config" ,pkg-config)
  4072. ("taglib" ,taglib)))
  4073. (arguments
  4074. `(#:import-path "github.com/wtolson/go-taglib"
  4075. ;; Tests don't pass "vet" on Go since 1.11. See
  4076. ;; https://github.com/wtolson/go-taglib/issues/12.
  4077. #:phases
  4078. (modify-phases %standard-phases
  4079. (replace 'check
  4080. (lambda* (#:key import-path #:allow-other-keys)
  4081. (invoke "go" "test"
  4082. "-vet=off"
  4083. import-path))))))
  4084. (home-page "https://github.com/wtolson/go-taglib")
  4085. (synopsis "Go wrapper for taglib")
  4086. (description "Go wrapper for taglib")
  4087. (license license:unlicense))))
  4088. (define-public go-github-com-gogo-protobuf
  4089. (package
  4090. (name "go-github-com-gogo-protobuf")
  4091. (version "1.3.1")
  4092. (source (origin
  4093. (method git-fetch)
  4094. (uri (git-reference
  4095. (url "https://github.com/gogo/protobuf")
  4096. (commit (string-append "v" version))))
  4097. (file-name (git-file-name name version))
  4098. (sha256
  4099. (base32
  4100. "0x77x64sxjgfhmbijqfzmj8h4ar25l2w97h01q3cqs1wk7zfnkhp"))))
  4101. (build-system go-build-system)
  4102. (arguments
  4103. `(#:import-path "github.com/gogo/protobuf"
  4104. ; Source-only package
  4105. #:tests? #f
  4106. #:phases
  4107. (modify-phases %standard-phases
  4108. (delete 'build))))
  4109. (synopsis "Protocol Buffers for Go with Gadgets")
  4110. (description "Gogoprotobuf is a fork of golang/protobuf with extra code
  4111. generation features. This code generation is used to achieve:
  4112. @itemize
  4113. @item fast marshalling and unmarshalling
  4114. @item more canonical Go structures
  4115. @item goprotobuf compatibility
  4116. @item less typing by optionally generating extra helper code
  4117. @item peace of mind by optionally generating test and benchmark code
  4118. @item other serialization formats
  4119. @end itemize")
  4120. (home-page "https://github.com/gogo/protobuf")
  4121. (license license:bsd-3)))
  4122. (define-public go-github-com-libp2p-go-flow-metrics
  4123. (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
  4124. (revision "0"))
  4125. (package
  4126. (name "go-github-com-libp2p-go-flow-metrics")
  4127. (version (git-version "0.2.0" revision commit))
  4128. (source
  4129. (origin
  4130. (method git-fetch)
  4131. (uri (git-reference
  4132. (url "https://github.com/libp2p/go-flow-metrics")
  4133. (commit commit)))
  4134. (file-name (git-file-name name version))
  4135. (sha256
  4136. (base32
  4137. "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
  4138. (build-system go-build-system)
  4139. (arguments
  4140. `(#:import-path "github.com/libp2p/go-flow-metrics"
  4141. ;; TODO: Tests hang.
  4142. #:tests? #f))
  4143. (home-page
  4144. "https://github.com/libp2p/go-flow-metrics")
  4145. (synopsis "Simple library for tracking flow metrics")
  4146. (description "A simple alternative to rcrowley's @command{go-metrics}
  4147. that's a lot faster (and only does simple bandwidth metrics).")
  4148. (license license:expat))))
  4149. (define-public go-github-com-davecgh-go-spew
  4150. (package
  4151. (name "go-github-com-davecgh-go-spew")
  4152. (version "1.1.1")
  4153. (source
  4154. (origin
  4155. (method git-fetch)
  4156. (uri (git-reference
  4157. (url "https://github.com/davecgh/go-spew")
  4158. (commit (string-append "v" version))))
  4159. (file-name (git-file-name name version))
  4160. (sha256
  4161. (base32
  4162. "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"))))
  4163. (build-system go-build-system)
  4164. (arguments
  4165. '(#:unpack-path "github.com/davecgh/go-spew"
  4166. #:import-path "github.com/davecgh/go-spew/spew"))
  4167. (home-page "https://github.com/davecgh/go-spew")
  4168. (synopsis "Deep pretty printer for Go data structures to aid in debugging")
  4169. (description "Package @command{spew} implements a deep pretty printer
  4170. for Go data structures to aid in debugging.
  4171. A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
  4172. @itemize
  4173. @item Pointers are dereferenced and followed.
  4174. @item Circular data structures are detected and handled properly.
  4175. @item Custom Stringer/error interfaces are optionally invoked, including on
  4176. unexported types.
  4177. @item Custom types which only implement the Stringer/error interfaces via a
  4178. pointer receiver are optionally invoked when passing non-pointer variables.
  4179. @item Byte arrays and slices are dumped like the hexdump -C command which
  4180. includes offsets, byte values in hex, and ASCII output (only when using Dump
  4181. style).
  4182. @end itemize\n")
  4183. (license license:isc)))
  4184. (define-public go-github-com-btcsuite-btclog
  4185. (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
  4186. (revision "0"))
  4187. (package
  4188. (name "go-github-com-btcsuite-btclog")
  4189. (version (git-version "0.0.3" revision commit))
  4190. (source
  4191. (origin
  4192. (method git-fetch)
  4193. (uri (git-reference
  4194. (url "https://github.com/btcsuite/btclog")
  4195. (commit commit)))
  4196. (file-name (git-file-name name version))
  4197. (sha256
  4198. (base32
  4199. "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
  4200. (build-system go-build-system)
  4201. (arguments
  4202. '(#:import-path "github.com/btcsuite/btclog"))
  4203. (home-page "https://github.com/btcsuite/btclog")
  4204. (synopsis "Subsystem aware logger for Go")
  4205. (description "Package @command{btclog} defines a logger interface and
  4206. provides a default implementation of a subsystem-aware leveled logger
  4207. implementing the same interface.")
  4208. (license license:isc))))
  4209. (define-public go-github-com-btcsuite-btcd-btcec
  4210. (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
  4211. (revision "0"))
  4212. (package
  4213. (name "go-github-com-btcsuite-btcd-btcec")
  4214. (version (git-version "0.12.0-beta" revision commit))
  4215. (source
  4216. (origin
  4217. (method git-fetch)
  4218. (uri (git-reference
  4219. (url "https://github.com/btcsuite/btcd")
  4220. (commit commit)))
  4221. (file-name (git-file-name name version))
  4222. (sha256
  4223. (base32
  4224. "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
  4225. (build-system go-build-system)
  4226. (arguments
  4227. '(#:unpack-path "github.com/btcsuite/btcd"
  4228. #:import-path "github.com/btcsuite/btcd/btcec"))
  4229. (native-inputs
  4230. `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
  4231. (home-page "https://github.com/btcsuite/btcd")
  4232. (synopsis "Elliptic curve cryptography to work with Bitcoin")
  4233. (description "Package @command{btcec} implements elliptic curve
  4234. cryptography needed for working with Bitcoin (secp256k1 only for now). It is
  4235. designed so that it may be used with the standard crypto/ecdsa packages
  4236. provided with Go. A comprehensive suite of test is provided to ensure proper
  4237. functionality. Package @command{btcec} was originally based on work from
  4238. ThePiachu which is licensed under the same terms as Go, but it has
  4239. significantly diverged since then. The @command{btcsuite} developers original
  4240. is licensed under the liberal ISC license.
  4241. Although this package was primarily written for btcd, it has intentionally
  4242. been designed so it can be used as a standalone package for any projects
  4243. needing to use secp256k1 elliptic curve cryptography.")
  4244. (license license:isc))))
  4245. (define-public go-github-com-minio-sha256-simd
  4246. (package
  4247. (name "go-github-com-minio-sha256-simd")
  4248. (version "0.1.1")
  4249. (source
  4250. (origin
  4251. (method git-fetch)
  4252. (uri (git-reference
  4253. (url "https://github.com/minio/sha256-simd")
  4254. (commit (string-append "v" version))))
  4255. (file-name (git-file-name name version))
  4256. (sha256
  4257. (base32
  4258. "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp"))))
  4259. (build-system go-build-system)
  4260. (arguments
  4261. '(#:import-path "github.com/minio/sha256-simd"))
  4262. (home-page "https://github.com/minio/sha256-simd")
  4263. (synopsis "Accelerate SHA256 computations in pure Go")
  4264. (description "Accelerate SHA256 computations in pure Go using AVX512 and
  4265. AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
  4266. improvement (over 3 GB/s per core) in comparison to AVX2.
  4267. This package is designed as a replacement for @command{crypto/sha256}. For
  4268. Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
  4269. supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
  4270. of the SHA2 instructions resulting in a massive performance improvement.
  4271. This package uses Golang assembly. The AVX512 version is based on the Intel's
  4272. \"multi-buffer crypto library for IPSec\" whereas the other Intel
  4273. implementations are described in \"Fast SHA-256 Implementations on Intel
  4274. Architecture Processors\" by J. Guilford et al.")
  4275. (license license:asl2.0)))
  4276. (define-public go-github-com-libp2p-go-libp2p-crypto
  4277. (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
  4278. (revision "0"))
  4279. (package
  4280. (name "go-github-com-libp2p-go-libp2p-crypto")
  4281. (version (git-version "2.0.1" revision commit))
  4282. (source
  4283. (origin
  4284. (method git-fetch)
  4285. (uri (git-reference
  4286. (url "https://github.com/libp2p/go-libp2p-crypto")
  4287. (commit commit)))
  4288. (file-name (git-file-name name version))
  4289. (sha256
  4290. (base32
  4291. "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
  4292. (build-system go-build-system)
  4293. (arguments
  4294. '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
  4295. (native-inputs
  4296. `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  4297. ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
  4298. ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
  4299. ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
  4300. (home-page
  4301. "https://github.com/libp2p/go-libp2p-crypto")
  4302. (synopsis "Various cryptographic utilities used by IPFS")
  4303. (description "Various cryptographic utilities used by IPFS")
  4304. (license license:expat))))
  4305. (define-public go-github-com-mr-tron-base58
  4306. (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
  4307. (revision "0"))
  4308. (package
  4309. (name "go-github-com-mr-tron-base58")
  4310. (version (git-version "1.1.0" revision commit))
  4311. (source
  4312. (origin
  4313. (method git-fetch)
  4314. (uri (git-reference
  4315. (url "https://github.com/mr-tron/base58")
  4316. (commit commit)))
  4317. (file-name (git-file-name name version))
  4318. (sha256
  4319. (base32
  4320. "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
  4321. (build-system go-build-system)
  4322. (arguments
  4323. `(#:unpack-path "github.com/mr-tron/base58"
  4324. #:import-path "github.com/mr-tron/base58/base58"))
  4325. (home-page "https://github.com/mr-tron/base58")
  4326. (synopsis "Fast implementation of base58 encoding on Golang")
  4327. (description "Fast implementation of base58 encoding on Golang. A
  4328. trivial @command{big.Int} encoding benchmark results in 6 times faster
  4329. encoding and 8 times faster decoding.")
  4330. (license license:expat))))
  4331. (define-public go-github-com-gxed-hashland-keccakpg
  4332. (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
  4333. (revision "0"))
  4334. (package
  4335. (name "go-github-com-gxed-hashland-keccakpg")
  4336. (version (git-version "0.0.0" revision commit))
  4337. (source
  4338. (origin
  4339. (method git-fetch)
  4340. (uri (git-reference
  4341. (url "https://github.com/gxed/hashland")
  4342. (commit commit)))
  4343. (file-name (git-file-name name version))
  4344. (sha256
  4345. (base32
  4346. "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
  4347. (build-system go-build-system)
  4348. (arguments
  4349. '(#:unpack-path "github.com/gxed/hashland"
  4350. #:import-path "github.com/gxed/hashland/keccakpg"))
  4351. (home-page "https://github.com/gxed/hashland")
  4352. (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
  4353. (description "Package @command{keccak} implements the Keccak (SHA-3)
  4354. hash algorithm. See http://keccak.noekeon.org.")
  4355. (license license:expat))))
  4356. (define-public go-github-com-minio-blake2b-simd
  4357. (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
  4358. (revision "0"))
  4359. (package
  4360. (name "go-github-com-minio-blake2b-simd")
  4361. (version (git-version "0.0.0" revision commit))
  4362. (source
  4363. (origin
  4364. (method git-fetch)
  4365. (uri (git-reference
  4366. (url "https://github.com/minio/blake2b-simd")
  4367. (commit commit)))
  4368. (file-name (git-file-name name version))
  4369. (sha256
  4370. (base32
  4371. "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
  4372. (build-system go-build-system)
  4373. (arguments
  4374. '(#:import-path "github.com/minio/blake2b-simd"))
  4375. (home-page "https://github.com/minio/blake2b-simd")
  4376. (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
  4377. (description "This package was initially based on the pure go BLAKE2b
  4378. implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
  4379. optimized BLAKE2 implementation (which in turn is based on the official
  4380. implementation. It does so by using Go's Assembler for amd64 architectures
  4381. with a golang only fallback for other architectures.
  4382. In addition to AVX there is also support for AVX2 as well as SSE. Best
  4383. performance is obtained with AVX2 which gives roughly a 4X performance
  4384. increase approaching hashing speeds of 1GB/sec on a single core.")
  4385. (license license:asl2.0))))
  4386. (define-public go-github-com-spaolacci-murmur3
  4387. (package
  4388. (name "go-github-com-spaolacci-murmur3")
  4389. (version "1.1.0")
  4390. (source
  4391. (origin
  4392. (method git-fetch)
  4393. (uri (git-reference
  4394. (url "https://github.com/spaolacci/murmur3")
  4395. (commit (string-append "v" version))))
  4396. (file-name (git-file-name name version))
  4397. (sha256
  4398. (base32
  4399. "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
  4400. (build-system go-build-system)
  4401. (arguments
  4402. '(#:import-path "github.com/spaolacci/murmur3"))
  4403. (home-page "https://github.com/spaolacci/murmur3")
  4404. (synopsis "Native MurmurHash3 Go implementation")
  4405. (description "Native Go implementation of Austin Appleby's third MurmurHash
  4406. revision (aka MurmurHash3).
  4407. Reference algorithm has been slightly hacked as to support the streaming mode
  4408. required by Go's standard Hash interface.")
  4409. (license license:bsd-3)))
  4410. (define-public go-github-com-twmb-murmur3
  4411. (package
  4412. (name "go-github-com-twmb-murmur3")
  4413. (version "1.1.3")
  4414. (source
  4415. (origin
  4416. (method git-fetch)
  4417. (uri (git-reference
  4418. (url "https://github.com/twmb/murmur3")
  4419. (commit (string-append "v" version))))
  4420. (file-name (git-file-name name version))
  4421. (sha256
  4422. (base32
  4423. "00riapwkyf23l5wyis47mbr8rwr4yrjw491jfc30wpzs111c1gyy"))))
  4424. (build-system go-build-system)
  4425. (arguments
  4426. '(#:import-path "github.com/twmb/murmur3"))
  4427. (home-page "https://github.com/twmb/murmur3")
  4428. (synopsis "Native MurmurHash3 Go implementation")
  4429. (description "Native Go implementation of Austin Appleby's third
  4430. MurmurHash revision (aka MurmurHash3).
  4431. Reference algorithm has been slightly hacked as to support the streaming mode
  4432. required by Go's standard Hash interface.")
  4433. (license license:bsd-3)))
  4434. (define-public go-github-com-multiformats-go-multihash
  4435. (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
  4436. (revision "0"))
  4437. (package
  4438. (name "go-github-com-multiformats-go-multihash")
  4439. (version (git-version "1.0.8" revision commit))
  4440. (source
  4441. (origin
  4442. (method git-fetch)
  4443. (uri (git-reference
  4444. (url "https://github.com/multiformats/go-multihash")
  4445. (commit commit)))
  4446. (file-name (git-file-name name version))
  4447. (sha256
  4448. (base32
  4449. "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
  4450. (build-system go-build-system)
  4451. (arguments
  4452. '(#:import-path "github.com/multiformats/go-multihash"))
  4453. (native-inputs
  4454. `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
  4455. ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
  4456. ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
  4457. ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
  4458. ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
  4459. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  4460. (home-page "https://github.com/multiformats/go-multihash")
  4461. (synopsis "Multihash implementation in Go")
  4462. (description "Multihash implementation in Go.")
  4463. (license license:expat))))
  4464. (define-public go-github-com-libp2p-go-libp2p-peer
  4465. (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
  4466. (revision "0"))
  4467. (package
  4468. (name "go-github-com-libp2p-go-libp2p-peer")
  4469. (version (git-version "2.3.8" revision commit))
  4470. (source
  4471. (origin
  4472. (method git-fetch)
  4473. (uri (git-reference
  4474. (url "https://github.com/libp2p/go-libp2p-peer")
  4475. (commit commit)))
  4476. (file-name (git-file-name name version))
  4477. (sha256
  4478. (base32
  4479. "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
  4480. (build-system go-build-system)
  4481. (arguments
  4482. '(#:import-path "github.com/libp2p/go-libp2p-peer"))
  4483. (native-inputs
  4484. `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
  4485. ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
  4486. ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
  4487. ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
  4488. ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
  4489. ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
  4490. ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
  4491. ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
  4492. ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
  4493. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  4494. (home-page "https://github.com/libp2p/go-libp2p-peer")
  4495. (synopsis "PKI based identities for use in go-libp2p")
  4496. (description "PKI based identities for use in @command{go-libp2p}.")
  4497. (license license:expat))))
  4498. (define-public go-github-com-libp2p-go-libp2p-protocol
  4499. (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
  4500. (revision "0"))
  4501. (package
  4502. (name "go-github-com-libp2p-go-libp2p-protocol")
  4503. (version (git-version "1.0.0" revision commit))
  4504. (source
  4505. (origin
  4506. (method git-fetch)
  4507. (uri (git-reference
  4508. (url "https://github.com/libp2p/go-libp2p-protocol")
  4509. (commit commit)))
  4510. (file-name (git-file-name name version))
  4511. (sha256
  4512. (base32
  4513. "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
  4514. (build-system go-build-system)
  4515. (arguments
  4516. '(#:import-path
  4517. "github.com/libp2p/go-libp2p-protocol"))
  4518. (home-page "https://github.com/libp2p/go-libp2p-protocol")
  4519. (synopsis "Type for protocol strings in Golang")
  4520. (description "Just a type for protocol strings. Nothing more.")
  4521. (license license:expat))))
  4522. (define-public go-github-com-libp2p-go-libp2p-metrics
  4523. (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
  4524. (revision "0"))
  4525. (package
  4526. (name "go-github-com-libp2p-go-libp2p-metrics")
  4527. (version (git-version "2.1.6" revision commit))
  4528. (source
  4529. (origin
  4530. (method git-fetch)
  4531. (uri (git-reference
  4532. (url "https://github.com/libp2p/go-libp2p-metrics")
  4533. (commit commit)))
  4534. (file-name (git-file-name name version))
  4535. (sha256
  4536. (base32
  4537. "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
  4538. (build-system go-build-system)
  4539. (arguments
  4540. '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
  4541. (native-inputs
  4542. `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
  4543. ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
  4544. ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
  4545. ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
  4546. ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
  4547. ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
  4548. ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
  4549. ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
  4550. ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
  4551. ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
  4552. ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
  4553. ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
  4554. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  4555. (home-page "https://github.com/libp2p/go-libp2p-metrics")
  4556. (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
  4557. (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
  4558. statistics for wrapped connections.")
  4559. (license license:expat))))
  4560. (define-public go-github-com-mitchellh-go-homedir
  4561. (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
  4562. (revision "0"))
  4563. (package
  4564. (name "go-github-com-mitchellh-go-homedir")
  4565. (version (git-version "1.0.0" revision commit))
  4566. (source
  4567. (origin
  4568. (method git-fetch)
  4569. (uri (git-reference
  4570. (url "https://github.com/mitchellh/go-homedir")
  4571. (commit commit)))
  4572. (file-name (git-file-name name version))
  4573. (sha256
  4574. (base32
  4575. "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
  4576. (build-system go-build-system)
  4577. (arguments
  4578. (quote (#:import-path "github.com/mitchellh/go-homedir"
  4579. ;; TODO: Tests fail because it tries to access home.
  4580. #:tests? #f)))
  4581. (home-page "https://github.com/mitchellh/go-homedir")
  4582. (synopsis "Go library for detecting and expanding the user's home directory without cgo")
  4583. (description "This is a Go library for detecting the user's home
  4584. directory without the use of @command{cgo}, so the library can be used in
  4585. cross-compilation environments.
  4586. Usage is simple, just call homedir.Dir() to get the home directory for a user,
  4587. and homedir.Expand() to expand the @command{~} in a path to the home
  4588. directory.
  4589. Why not just use @command{os/user}? The built-in @command{os/user} package
  4590. requires cgo on Darwin systems. This means that any Go code that uses that
  4591. package cannot cross compile. But 99% of the time the use for
  4592. @command{os/user} is just to retrieve the home directory, which we can do for
  4593. the current user without cgo. This library does that, enabling
  4594. cross-compilation.")
  4595. (license license:expat))))
  4596. (define-public go-github-com-mitchellh-mapstructure
  4597. (package
  4598. (name "go-github-com-mitchellh-mapstructure")
  4599. (version "1.1.2") ;; NOTE: Updating to 1.3.1 breaks tests on viper-1.7.0
  4600. (source
  4601. (origin
  4602. (method git-fetch)
  4603. (uri (git-reference
  4604. (url "https://github.com/mitchellh/mapstructure")
  4605. (commit (string-append "v" version))))
  4606. (file-name (git-file-name name version))
  4607. (sha256
  4608. (base32
  4609. "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr"))))
  4610. (build-system go-build-system)
  4611. (arguments
  4612. `(#:import-path "github.com/mitchellh/mapstructure"))
  4613. (home-page "https://github.com/mitchellh/mapstructure")
  4614. (synopsis "Go library for decoding generic map values")
  4615. (description "Go library for decoding generic map values")
  4616. (license license:expat)))
  4617. (define-public go-github-com-mitchellh-reflectwalk
  4618. (package
  4619. (name "go-github-com-mitchellh-reflectwalk")
  4620. (version "1.0.1")
  4621. (source (origin
  4622. (method git-fetch)
  4623. (uri (git-reference
  4624. (url "https://github.com/mitchellh/reflectwalk")
  4625. (commit (string-append "v" version))))
  4626. (file-name (git-file-name name version))
  4627. (sha256
  4628. (base32
  4629. "0pa6a3nhzwv5s5yqcmsmsfhdp5ggxsg2wa86f3akawxrhrkjarnx"))))
  4630. (build-system go-build-system)
  4631. (arguments
  4632. `(#:import-path "github.com/mitchellh/reflectwalk"))
  4633. (home-page "https://github.com/mitchellh/reflectwalk/")
  4634. (synopsis "Walk a value in Go using reflection")
  4635. (description "reflectwalk is a Go library for \"walking\" a value in Go
  4636. using reflection, in the same way a directory tree can be \"walked\" on the
  4637. file system. Walking a complex structure can allow you to do manipulations on
  4638. unknown structures such as those decoded from JSON.")
  4639. (license license:expat)))
  4640. (define-public go-github-com-mitchellh-copystructure
  4641. (package
  4642. (name "go-github-com-mitchellh-copystructure")
  4643. (version "1.0.0")
  4644. (source
  4645. (origin
  4646. (method git-fetch)
  4647. (uri (git-reference
  4648. (url "https://github.com/mitchellh/copystructure")
  4649. (commit (string-append "v" version))))
  4650. (file-name (git-file-name name version))
  4651. (sha256
  4652. (base32
  4653. "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr"))))
  4654. (build-system go-build-system)
  4655. (arguments
  4656. `(#:import-path "github.com/mitchellh/copystructure"))
  4657. (native-inputs
  4658. `(("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)))
  4659. (home-page "https://github.com/mitchellh/copystructure")
  4660. (synopsis "Go library for decoding deep copying values")
  4661. (description "@code{copystructure} is a Go library for deep copying values
  4662. in Go.
  4663. This allows you to copy Go values that may contain reference values such as
  4664. maps, slices, or pointers, and copy their data as well instead of just their
  4665. references.")
  4666. (license license:expat)))
  4667. (define-public go-github-com-multiformats-go-multiaddr
  4668. (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
  4669. (revision "0"))
  4670. (package
  4671. (name "go-github-com-multiformats-go-multiaddr")
  4672. (version (git-version "1.3.0" revision commit))
  4673. (source
  4674. (origin
  4675. (method git-fetch)
  4676. (uri (git-reference
  4677. (url "https://github.com/multiformats/go-multiaddr")
  4678. (commit commit)))
  4679. (file-name (git-file-name name version))
  4680. (sha256
  4681. (base32
  4682. "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
  4683. (build-system go-build-system)
  4684. (arguments
  4685. '(#:import-path
  4686. "github.com/multiformats/go-multiaddr"))
  4687. (native-inputs
  4688. `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
  4689. ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
  4690. ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
  4691. ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
  4692. ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
  4693. ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
  4694. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  4695. (home-page "https://github.com/multiformats/go-multiaddr")
  4696. (synopsis "Composable and future-proof network addresses")
  4697. (description "Multiaddr is a standard way to represent addresses that
  4698. does the following:
  4699. @itemize
  4700. @item Support any standard network protocols.
  4701. @item Self-describe (include protocols).
  4702. @item Have a binary packed format.
  4703. @item Have a nice string representation.
  4704. @item Encapsulate well.
  4705. @end itemize\n")
  4706. (license license:expat))))
  4707. (define-public go-github-com-multiformats-go-multiaddr-net
  4708. (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
  4709. (revision "0"))
  4710. (package
  4711. (name "go-github-com-multiformats-go-multiaddr-net")
  4712. (version (git-version "1.6.3" revision commit))
  4713. (source
  4714. (origin
  4715. (method git-fetch)
  4716. (uri (git-reference
  4717. (url "https://github.com/multiformats/go-multiaddr-net")
  4718. (commit commit)))
  4719. (file-name (git-file-name name version))
  4720. (sha256
  4721. (base32
  4722. "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
  4723. (build-system go-build-system)
  4724. (arguments
  4725. (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
  4726. ;; TODO: Tests fail because they try to access the network.
  4727. #:tests? #f)))
  4728. (native-inputs
  4729. `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
  4730. ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
  4731. ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
  4732. ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
  4733. ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
  4734. ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
  4735. ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
  4736. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  4737. (home-page "https://github.com/multiformats/go-multiaddr-net")
  4738. (synopsis "Multiaddress net tools")
  4739. (description "This package provides Multiaddr specific versions of
  4740. common functions in stdlib's @command{net} package. This means wrappers of
  4741. standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
  4742. as conversion to and from @command{net.Addr}.")
  4743. (license license:expat))))
  4744. (define-public go-github-com-whyrusleeping-tar-utils
  4745. (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
  4746. (revision "0"))
  4747. (package
  4748. (name "go-github-com-whyrusleeping-tar-utils")
  4749. (version (git-version "0.0.0" revision commit))
  4750. (source
  4751. (origin
  4752. (method git-fetch)
  4753. (uri (git-reference
  4754. (url "https://github.com/whyrusleeping/tar-utils")
  4755. (commit commit)))
  4756. (file-name (git-file-name name version))
  4757. (sha256
  4758. (base32
  4759. "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
  4760. (build-system go-build-system)
  4761. (arguments
  4762. '(#:import-path
  4763. "github.com/whyrusleeping/tar-utils"))
  4764. (home-page "https://github.com/whyrusleeping/tar-utils")
  4765. (synopsis "Tar utilities extracted from go-ipfs codebase")
  4766. (description "Tar utilities extracted from @command{go-ipfs} codebase.")
  4767. (license license:expat))))
  4768. (define-public go-github-com-cheekybits-is
  4769. (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
  4770. (revision "0"))
  4771. (package
  4772. (name "go-github-com-cheekybits-is")
  4773. (version (git-version "0.0.0" revision commit))
  4774. (source
  4775. (origin
  4776. (method git-fetch)
  4777. (uri (git-reference
  4778. (url "https://github.com/cheekybits/is")
  4779. (commit commit)))
  4780. (file-name (git-file-name name version))
  4781. (sha256
  4782. (base32
  4783. "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
  4784. (build-system go-build-system)
  4785. (arguments
  4786. '(#:import-path "github.com/cheekybits/is"))
  4787. (home-page "https://github.com/cheekybits/is")
  4788. (synopsis "Mini testing helper for Go")
  4789. (description "A mini testing helper for Go.
  4790. @itemize
  4791. @item It has a simple interface (@command{is.OK} and @command{is.Equal}).
  4792. @item It plugs into existing Go toolchain (uses @command{testing.T}).
  4793. @item It's obvious for newcomers.
  4794. @item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
  4795. - because testing panics is ugly.
  4796. @end itemize\n")
  4797. (license license:expat))))
  4798. (define-public go-github-com-sabhiram-go-gitignore
  4799. (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
  4800. (revision "0"))
  4801. (package
  4802. (name "go-github-com-sabhiram-go-gitignore")
  4803. (version (git-version "1.0.2" revision commit))
  4804. (source
  4805. (origin
  4806. (method git-fetch)
  4807. (uri (git-reference
  4808. (url "https://github.com/sabhiram/go-gitignore")
  4809. (commit commit)))
  4810. (file-name (git-file-name name version))
  4811. (sha256
  4812. (base32
  4813. "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
  4814. (build-system go-build-system)
  4815. (arguments
  4816. '(#:import-path
  4817. "github.com/sabhiram/go-gitignore"))
  4818. (native-inputs
  4819. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  4820. (home-page "https://github.com/sabhiram/go-gitignore")
  4821. (synopsis "Gitignore parser for Go")
  4822. (description "A @command{.gitignore} parser for Go.")
  4823. (license license:expat))))
  4824. (define-public go-github-com-urfave-cli
  4825. (package
  4826. (name "go-github-com-urfave-cli")
  4827. (version "1.22.2")
  4828. (source
  4829. (origin
  4830. (method git-fetch)
  4831. (uri (git-reference
  4832. (url "https://github.com/urfave/cli")
  4833. (commit (string-append "v" version))))
  4834. (file-name (git-file-name name version))
  4835. (sha256
  4836. (base32
  4837. "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc"))
  4838. (patches (search-patches "go-github-com-urfave-cli-fix-tests.patch"))))
  4839. (build-system go-build-system)
  4840. (arguments
  4841. '(#:import-path "github.com/urfave/cli"))
  4842. (propagated-inputs
  4843. `(("go-github-com-go-md2man" ,go-github-com-go-md2man)))
  4844. (home-page "https://github.com/urfave/cli")
  4845. (synopsis "Simple, fast, and fun package for building command line apps in Go")
  4846. (description "@command{cli} is a simple, fast, and fun package for
  4847. building command line apps in Go. The goal is to enable developers to write
  4848. fast and distributable command line applications in an expressive way.")
  4849. (license license:expat)))
  4850. (define-public go-github-com-urfave-cli-v2
  4851. (package
  4852. (inherit go-github-com-urfave-cli)
  4853. (name "go-github-com-urfave-cli-v2")
  4854. (version "2.3.0")
  4855. (source
  4856. (origin
  4857. (method git-fetch)
  4858. (uri (git-reference
  4859. (url "https://github.com/urfave/cli")
  4860. (commit (string-append "v" version))))
  4861. (file-name (git-file-name name version))
  4862. (sha256
  4863. (base32 "08pvn7gyfznni72xrxfh2x6xxa8ykr7l1ka278js8g8qkh71bj8l"))
  4864. ;; XXX: Remove patch when updating.
  4865. (patches
  4866. (search-patches "go-github-com-urfave-cli-v2-fix-tests.patch"))))
  4867. (arguments
  4868. '(#:import-path "github.com/urfave/cli/v2"))))
  4869. (define-public go-github-com-go-md2man
  4870. (package
  4871. (name "go-github-com-go-md2man")
  4872. (version "2.0.0")
  4873. (source
  4874. (origin
  4875. (method git-fetch)
  4876. (uri (git-reference
  4877. (url "https://github.com/cpuguy83/go-md2man")
  4878. (commit (string-append "v" version))))
  4879. (file-name (git-file-name name version))
  4880. (sha256
  4881. (base32
  4882. "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"))
  4883. (modules '((guix build utils)))
  4884. (snippet '(begin
  4885. (delete-file-recursively "vendor")
  4886. #t))))
  4887. (build-system go-build-system)
  4888. (arguments
  4889. '(#:import-path "github.com/cpuguy83/go-md2man"))
  4890. (propagated-inputs
  4891. `(("go-github-com-russross-blackfriday" ,go-github-com-russross-blackfriday)))
  4892. (home-page "https://github.com/cpuguy83/go-md2man")
  4893. (synopsis "Convert markdown into roff")
  4894. (description "Go-md2man is a Go program that converts markdown to roff for
  4895. the purpose of building man pages.")
  4896. (license license:expat)))
  4897. (define-public go-github-com-russross-blackfriday
  4898. (package
  4899. (name "go-github-com-russross-blackfriday")
  4900. (version "2.0.1")
  4901. (source
  4902. (origin
  4903. (method git-fetch)
  4904. (uri (git-reference
  4905. (url "https://github.com/russross/blackfriday")
  4906. (commit (string-append "v" version))))
  4907. (file-name (git-file-name name version))
  4908. (sha256
  4909. (base32
  4910. "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"))))
  4911. (build-system go-build-system)
  4912. (arguments
  4913. '(#:import-path "github.com/russross/blackfriday"))
  4914. (propagated-inputs
  4915. `(("go-github-com-shurcool-sanitized-anchor-name"
  4916. ,go-github-com-shurcool-sanitized-anchor-name)))
  4917. (native-inputs
  4918. `(("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)))
  4919. (home-page "https://github.com/russross/blackfriday")
  4920. (synopsis "Markdown processor in Go")
  4921. (description "Blackfriday is a Markdown processor in Go.")
  4922. (license license:bsd-2)))
  4923. (define-public go-github-com-shurcool-sanitized-anchor-name
  4924. (package
  4925. (name "go-github-com-shurcool-sanitized-anchor-name")
  4926. (version "1.0.0")
  4927. (source
  4928. (origin
  4929. (method git-fetch)
  4930. (uri (git-reference
  4931. (url "https://github.com/shurcooL/sanitized_anchor_name")
  4932. (commit (string-append "v" version))))
  4933. (file-name (git-file-name name version))
  4934. (sha256
  4935. (base32
  4936. "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"))))
  4937. (build-system go-build-system)
  4938. (arguments
  4939. '(#:import-path "github.com/shurcooL/sanitized_anchor_name"))
  4940. (home-page "https://github.com/shurcooL/sanitized_anchor_name")
  4941. (synopsis "Create sanitized anchor names")
  4942. (description "This package provides a Go program for creating sanitized
  4943. anchor names.")
  4944. (license license:expat)))
  4945. (define-public go-github-com-pmezard-go-difflib
  4946. (package
  4947. (name "go-github-com-pmezard-go-difflib")
  4948. (version "1.0.0")
  4949. (source (origin
  4950. (method git-fetch)
  4951. (uri (git-reference
  4952. (url "https://github.com/pmezard/go-difflib")
  4953. (commit (string-append "v" version))))
  4954. (file-name (git-file-name name version))
  4955. (sha256
  4956. (base32
  4957. "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"))))
  4958. (build-system go-build-system)
  4959. (arguments
  4960. '(#:import-path "github.com/pmezard/go-difflib/difflib"
  4961. #:unpack-path "github.com/pmezard/go-difflib/"))
  4962. (home-page "https://github.com/pmezard/go-difflib")
  4963. (synopsis "Go diff implementation")
  4964. (description "This package provides unified and context-aware diffs in Go.")
  4965. (license license:bsd-3)))
  4966. (define-public go-github-com-whyrusleeping-json-filter
  4967. (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
  4968. (revision "0"))
  4969. (package
  4970. (name "go-github-com-whyrusleeping-json-filter")
  4971. (version (git-version "0.0.0" revision commit))
  4972. (source
  4973. (origin
  4974. (method git-fetch)
  4975. (uri (git-reference
  4976. (url "https://github.com/whyrusleeping/json-filter")
  4977. (commit commit)))
  4978. (file-name (git-file-name name version))
  4979. (sha256
  4980. (base32
  4981. "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
  4982. (build-system go-build-system)
  4983. (arguments
  4984. '(#:import-path
  4985. "github.com/whyrusleeping/json-filter"))
  4986. (home-page "https://github.com/whyrusleeping/json-filter")
  4987. (synopsis "Library to query JSON objects marshalled into map[string]interface")
  4988. (description "A library to query JSON objects marshalled into
  4989. @command{map[string]interface{}}.")
  4990. (license license:expat))))
  4991. (define-public go-github-com-whyrusleeping-progmeter
  4992. (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
  4993. (revision "0"))
  4994. (package
  4995. (name "go-github-com-whyrusleeping-progmeter")
  4996. (version (git-version "0.0.0" revision commit))
  4997. (source
  4998. (origin
  4999. (method git-fetch)
  5000. (uri (git-reference
  5001. (url "https://github.com/whyrusleeping/progmeter")
  5002. (commit commit)))
  5003. (file-name (git-file-name name version))
  5004. (sha256
  5005. (base32
  5006. "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
  5007. (build-system go-build-system)
  5008. (arguments
  5009. '(#:import-path
  5010. "github.com/whyrusleeping/progmeter"))
  5011. (home-page "https://github.com/whyrusleeping/progmeter")
  5012. (synopsis "Progress meter for Go")
  5013. (description "Progress meter for Go.")
  5014. (license license:expat))))
  5015. (define-public go-github-com-whyrusleeping-stump
  5016. (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
  5017. (revision "0"))
  5018. (package
  5019. (name "go-github-com-whyrusleeping-stump")
  5020. (version (git-version "0.0.0" revision commit))
  5021. (source
  5022. (origin
  5023. (method git-fetch)
  5024. (uri (git-reference
  5025. (url "https://github.com/whyrusleeping/stump")
  5026. (commit commit)))
  5027. (file-name (git-file-name name version))
  5028. (sha256
  5029. (base32
  5030. "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
  5031. (build-system go-build-system)
  5032. (arguments
  5033. '(#:import-path "github.com/whyrusleeping/stump"))
  5034. (home-page "https://github.com/whyrusleeping/stump")
  5035. (synopsis "Very basic logging package for Go")
  5036. (description "A simple log library, for when you don't really care to
  5037. have super fancy logs.")
  5038. (license license:expat))))
  5039. (define-public go-github-com-kr-fs
  5040. (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
  5041. (revision "0"))
  5042. (package
  5043. (name "go-github-com-kr-fs")
  5044. (version (git-version "0.1.0" revision commit))
  5045. (source
  5046. (origin
  5047. (method git-fetch)
  5048. (uri (git-reference
  5049. (url "https://github.com/kr/fs")
  5050. (commit commit)))
  5051. (file-name (git-file-name name version))
  5052. (sha256
  5053. (base32
  5054. "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
  5055. (build-system go-build-system)
  5056. (arguments
  5057. '(#:import-path "github.com/kr/fs"))
  5058. (home-page "https://github.com/kr/fs")
  5059. (synopsis "File-system-related functions for Go")
  5060. (description
  5061. "The fs package provides file-system-related Go functions.")
  5062. (license license:bsd-3))))
  5063. (define-public go-github-com-direnv-go-dotenv
  5064. (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
  5065. (revision "0"))
  5066. (package
  5067. (name "go-github-com-direnv-go-dotenv")
  5068. (version (git-version "0.0.0" revision commit))
  5069. (source
  5070. (origin
  5071. (method git-fetch)
  5072. (uri (git-reference
  5073. (url "https://github.com/direnv/go-dotenv")
  5074. (commit commit)))
  5075. (file-name (git-file-name name version))
  5076. (sha256
  5077. (base32
  5078. "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
  5079. (build-system go-build-system)
  5080. (arguments
  5081. '(#:import-path "github.com/direnv/go-dotenv"))
  5082. (home-page "https://github.com/direnv/go-dotenv")
  5083. (synopsis "Go dotenv parsing library")
  5084. (description "This package provides a library for parsing the dotenv
  5085. format in Go.")
  5086. (license license:expat))))
  5087. (define-public go-github-com-kr-pretty
  5088. (package
  5089. (name "go-github-com-kr-pretty")
  5090. (version "0.2.1")
  5091. (source (origin
  5092. (method git-fetch)
  5093. (uri (git-reference
  5094. (url "https://github.com/kr/pretty")
  5095. (commit (string-append "v" version))))
  5096. (file-name (git-file-name name version))
  5097. (sha256
  5098. (base32
  5099. "0vzfz06y9q8gs2nxx0kys0591vzp78k0fvpb8digi5n15h3b25hy"))))
  5100. (build-system go-build-system)
  5101. (propagated-inputs
  5102. `(("go-github-com-kr-text" ,go-github-com-kr-text)))
  5103. (arguments
  5104. '(#:import-path "github.com/kr/pretty"))
  5105. (synopsis "Pretty printer for Go values")
  5106. (description "This package provides a pretty printer for Go values.")
  5107. (home-page "https://github.com/kr/pretty")
  5108. (license license:expat)))
  5109. (define-public go-github-com-kylelemons-godebug
  5110. (package
  5111. (name "go-github-com-kylelemons-godebug")
  5112. (version "1.1.0")
  5113. (source
  5114. (origin
  5115. (method git-fetch)
  5116. (uri (git-reference
  5117. (url "https://github.com/kylelemons/godebug")
  5118. (commit (string-append "v" version))))
  5119. (file-name (git-file-name name version))
  5120. (sha256
  5121. (base32
  5122. "0dkk3friykg8p6wgqryx6745ahhb9z1j740k7px9dac6v5xjp78c"))))
  5123. (build-system go-build-system)
  5124. (arguments
  5125. '(#:import-path "github.com/kylelemons/godebug/diff"
  5126. #:unpack-path "github.com/kylelemons/godebug"))
  5127. (home-page "https://github.com/kylelemons/godebug")
  5128. (synopsis "Pretty printer for Go values.")
  5129. (description
  5130. "This package will pretty print a compact representation of a Go data
  5131. structure. It can also produce a much more verbose, one-item-per-line
  5132. representation suitable for computing diffs.")
  5133. (license license:asl2.0)))
  5134. (define-public go-github-com-kr-text
  5135. (package
  5136. (name "go-github-com-kr-text")
  5137. (version "0.1.0")
  5138. (source (origin
  5139. (method git-fetch)
  5140. (uri (git-reference
  5141. (url "https://github.com/kr/text")
  5142. (commit (string-append "v" version))))
  5143. (file-name (git-file-name name version))
  5144. (sha256
  5145. (base32
  5146. "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
  5147. (build-system go-build-system)
  5148. (arguments
  5149. '(#:import-path "github.com/kr/text"))
  5150. (synopsis "Text formatting in Go")
  5151. (description "This package provides a text formatting functions in Go.")
  5152. (home-page "https://github.com/kr/text")
  5153. (license license:expat)))
  5154. (define-public go-golang-org-sql-mock
  5155. (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
  5156. (version "1.3.3")
  5157. (revision "1"))
  5158. (package
  5159. (name "go-golang-org-sql-mock")
  5160. (version (git-version version revision commit))
  5161. (source (origin
  5162. (method git-fetch)
  5163. (uri (git-reference
  5164. (url "https://github.com/DATA-DOG/go-sqlmock")
  5165. (commit commit)))
  5166. (file-name (git-file-name name version))
  5167. (sha256
  5168. (base32
  5169. "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
  5170. (build-system go-build-system)
  5171. (arguments
  5172. '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
  5173. (synopsis "Mock library implementing @code{sql/driver}")
  5174. (description "This library simulates SQL-driver behavior in tests
  5175. without requiring a real database connection.")
  5176. (home-page "https://github.com/DATA-DOG/go-sqlmock")
  5177. (license license:expat))))
  5178. (define-public go-github-com-go-sql-driver-mysql
  5179. (package
  5180. (name "go-github-com-go-sql-driver-mysql")
  5181. (version "1.5.0")
  5182. (source
  5183. (origin
  5184. (method git-fetch)
  5185. (uri (git-reference
  5186. (url "https://github.com/go-sql-driver/mysql")
  5187. (commit (string-append "v" version))))
  5188. (file-name (git-file-name name version))
  5189. (sha256
  5190. (base32
  5191. "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v"))))
  5192. (build-system go-build-system)
  5193. (arguments
  5194. '(#:tests? #f ;; tests require a network connection
  5195. #:import-path "github.com/go-sql-driver/mysql"))
  5196. (home-page "https://github.com/go-sql-driver/mysql")
  5197. (synopsis "MySQL driver for golang")
  5198. (description
  5199. "This is a pure Go implementation of the MySQL API, compatible with
  5200. golang's database/sql package.")
  5201. (license license:mpl2.0)))
  5202. (define-public go-golang-org-colorful
  5203. (package
  5204. (name "go-golang-org-colorful")
  5205. (version "1.0.2")
  5206. (source (origin
  5207. (method git-fetch)
  5208. (uri (git-reference
  5209. (url "https://github.com/lucasb-eyer/go-colorful")
  5210. (commit (string-append "v" version))))
  5211. (file-name (git-file-name name version))
  5212. (sha256
  5213. (base32
  5214. "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
  5215. (build-system go-build-system)
  5216. (arguments
  5217. '(#:import-path "github.com/lucasb-eyer/go-colorful"))
  5218. (native-inputs
  5219. `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
  5220. (synopsis "Convert between colorspaces and generate colors")
  5221. (description "This package implements Go's @code{color.Color} interface
  5222. and provides a means of converting colors stored as RGB to various
  5223. colorspaces.")
  5224. (home-page "https://github.com/lucasb-eyer/go-colorful")
  5225. (license license:expat)))
  5226. (define-public go-github-com-gdamore-encoding
  5227. (package
  5228. (name "go-github-com-gdamore-encoding")
  5229. (version "1.0.0")
  5230. (source
  5231. (origin
  5232. (method git-fetch)
  5233. (uri (git-reference
  5234. (url "https://github.com/gdamore/encoding")
  5235. (commit (string-append "v" version))))
  5236. (file-name (git-file-name name version))
  5237. (sha256
  5238. (base32
  5239. "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
  5240. (build-system go-build-system)
  5241. (arguments
  5242. '(#:import-path "github.com/gdamore/encoding"))
  5243. (inputs
  5244. `(("go-golang-org-x-text" ,go-golang-org-x-text)))
  5245. (home-page "https://github.com/gdamore/encoding")
  5246. (synopsis "Provide encodings missing from Go")
  5247. (description "This package provides useful encodings not included in the
  5248. standard @code{Text} package, including some for dealing with I/O streams from
  5249. non-UTF-friendly sources.")
  5250. (license license:expat)))
  5251. (define-public go-github-com-gdamore-tcell
  5252. (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
  5253. (version "1.1.2")
  5254. (revision "1"))
  5255. (package
  5256. (name "go-github-com-gdamore-tcell")
  5257. (version (git-version version revision commit))
  5258. (source
  5259. (origin
  5260. (method git-fetch)
  5261. (uri (git-reference
  5262. (url "https://github.com/gdamore/tcell")
  5263. (commit commit)))
  5264. (file-name (git-file-name name version))
  5265. (sha256
  5266. (base32
  5267. "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
  5268. (build-system go-build-system)
  5269. (arguments
  5270. `(#:import-path "github.com/gdamore/tcell"
  5271. #:phases
  5272. (modify-phases %standard-phases
  5273. (add-before 'reset-gzip-timestamps 'make-files-writable
  5274. (lambda* (#:key outputs #:allow-other-keys)
  5275. ;; Make sure .gz files are writable so that the
  5276. ;; 'reset-gzip-timestamps' phase can do its work.
  5277. (let ((out (assoc-ref outputs "out")))
  5278. (for-each make-file-writable
  5279. (find-files out "\\.gz$"))
  5280. #t))))))
  5281. (inputs
  5282. `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
  5283. ("go-golang-org-colorful" ,go-golang-org-colorful)
  5284. ("go-golang-org-x-text" ,go-golang-org-x-text)
  5285. ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
  5286. (home-page "https://github.com/gdamore/tcell")
  5287. (synopsis "Provide a cell-based view for text terminals")
  5288. (description "This package includes a full parser and expander for
  5289. terminfo capability strings to avoid hard-coding escape strings for
  5290. formatting. It also favors portability, and includes support for all POSIX
  5291. systems.")
  5292. (license license:asl2.0))))
  5293. (define-public go-github-com-gdamore-tcell-v2
  5294. (package
  5295. (inherit go-github-com-gdamore-tcell)
  5296. (name "go-github-com-gdamore-tcell")
  5297. (version "2.3.1")
  5298. (source
  5299. (origin
  5300. (method git-fetch)
  5301. (uri (git-reference
  5302. (url "https://github.com/gdamore/tcell")
  5303. (commit (string-append "v" version))))
  5304. (file-name (git-file-name name version))
  5305. (sha256
  5306. (base32
  5307. "0ypbl5080q9sd3irad8mv7zlg4242i8pmg5xyhbyq95kymwibaid"))))
  5308. (arguments
  5309. `(#:import-path "github.com/gdamore/tcell/v2"
  5310. #:phases
  5311. (modify-phases %standard-phases
  5312. (add-before 'reset-gzip-timestamps 'make-files-writable
  5313. (lambda* (#:key outputs #:allow-other-keys)
  5314. ;; Make sure .gz files are writable so that the
  5315. ;; 'reset-gzip-timestamps' phase can do its work.
  5316. (let ((out (assoc-ref outputs "out")))
  5317. (for-each make-file-writable
  5318. (find-files out "\\.gz$"))))))))
  5319. (propagated-inputs
  5320. `(("go-golang-org-x-term" ,go-golang-org-x-term)
  5321. ("go-golang-org-x-sys" ,go-golang-org-x-sys)
  5322. ,@(package-inputs go-github-com-gdamore-tcell)))))
  5323. (define-public go-github-com-mattn-go-shellwords
  5324. (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
  5325. (version "1.0.5")
  5326. (revision "1"))
  5327. (package
  5328. (name "go-github-com-mattn-go-shellwords")
  5329. (version (git-version version revision commit))
  5330. (source
  5331. (origin
  5332. (method git-fetch)
  5333. (uri (git-reference
  5334. (url "https://github.com/mattn/go-shellwords")
  5335. (commit commit)))
  5336. (file-name (git-file-name name version))
  5337. (sha256
  5338. (base32
  5339. "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
  5340. (build-system go-build-system)
  5341. (arguments
  5342. `(#:import-path "github.com/mattn/go-shellwords"
  5343. ;; TODO: can't make homeless-shelter:
  5344. ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
  5345. ;; initialization failure: mkdir /homeless-shelter: permission denied
  5346. ;; This doesn't seem to work:
  5347. ;; #:phases
  5348. ;; (modify-phases %standard-phases
  5349. ;; (replace 'check
  5350. ;; (lambda* (#:key import-path #:allow-other-keys)
  5351. ;; (setenv "HOME" "/tmp")
  5352. ;; (invoke "go" "test" import-path))))
  5353. ;; TODO: There are also a couple of tests that have stymied Debian in
  5354. ;; the past. They seem to work when run locally.
  5355. #:tests? #f
  5356. ))
  5357. (home-page "https://github.com/mattn/go-shellwords")
  5358. (synopsis "Parse lines into shell words")
  5359. (description "This package parses text into shell arguments. Based on
  5360. the @code{cpan} module @code{Parse::CommandLine}.")
  5361. (license license:expat))))
  5362. (define-public go-github-com-burntsushi-locker
  5363. (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
  5364. (revision "0"))
  5365. (package
  5366. (name "go-github-com-burntsushi-locker")
  5367. (version (git-version "0.0.0" revision commit))
  5368. (source
  5369. (origin
  5370. (method git-fetch)
  5371. (uri (git-reference
  5372. (url "https://github.com/BurntSushi/locker")
  5373. (commit commit)))
  5374. (file-name (git-file-name name version))
  5375. (sha256
  5376. (base32
  5377. "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
  5378. (build-system go-build-system)
  5379. (arguments
  5380. '(#:import-path "github.com/BurntSushi/locker"))
  5381. (home-page "https://github.com/BurntSushi/locker")
  5382. (synopsis "Manage named ReadWrite mutexes in Go")
  5383. (description "Golang package for conveniently using named read/write
  5384. locks. These appear to be especially useful for synchronizing access to
  5385. session based information in web applications.
  5386. The common use case is to use the package level functions, which use a package
  5387. level set of locks (safe to use from multiple goroutines
  5388. simultaneously). However, you may also create a new separate set of locks
  5389. test.
  5390. All locks are implemented with read-write mutexes. To use them like a regular
  5391. mutex, simply ignore the RLock/RUnlock functions.")
  5392. (license license:unlicense))))
  5393. (define-public go-github-com-marten-seemann-qtls
  5394. (package
  5395. (name "go-github-com-marten-seemann-qtls")
  5396. (version "0.4.1")
  5397. (source (origin
  5398. (method git-fetch)
  5399. (uri (git-reference
  5400. (url "https://github.com/marten-seemann/qtls")
  5401. (commit (string-append "v" version))))
  5402. (file-name (git-file-name name version))
  5403. (sha256
  5404. (base32
  5405. "0dz60y98nm7l70hamq0v2vrs2dspyr5yqhnrds2dfh7hchxvq76j"))))
  5406. (build-system go-build-system)
  5407. (arguments
  5408. '(#:import-path "github.com/marten-seemann/qtls"
  5409. ;; The test suite requires networking.
  5410. #:tests? #f))
  5411. (propagated-inputs
  5412. `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  5413. (synopsis "TLS 1.3 with QUIC in Go")
  5414. (description "This package provides @code{qtls}, a QUIC-capable variant of
  5415. the Go standard library's TLS 1.3 implementation.")
  5416. (home-page "https://github.com/marten-seemann/qtls")
  5417. (license license:bsd-3)))
  5418. (define-public go-github-com-marten-seemann-chacha20
  5419. (package
  5420. (name "go-github-com-marten-seemann-chacha20")
  5421. (version "0.2.0")
  5422. (source (origin
  5423. (method git-fetch)
  5424. (uri (git-reference
  5425. (url "https://github.com/marten-seemann/chacha20")
  5426. (commit (string-append "v" version))))
  5427. (file-name (git-file-name name version))
  5428. (sha256
  5429. (base32
  5430. "0x1j4cvbap45zk962qkjalc1h3axhzzdy9cdzhcjmprmm1ql4gjm"))))
  5431. (build-system go-build-system)
  5432. (arguments
  5433. '(#:import-path "github.com/marten-seemann/chacha20"))
  5434. (synopsis "ChaCha20 in Go")
  5435. (description "This package is an external copy of the Go standard library's
  5436. internal ChaCha20 package.")
  5437. (home-page "https://github.com/marten-seemann/chacha20")
  5438. (license license:bsd-3)))
  5439. (define-public go-github-com-cheekybits-genny
  5440. (package
  5441. (name "go-github-com-cheekybits-genny")
  5442. (version "1.0.0")
  5443. (source (origin
  5444. (method git-fetch)
  5445. (uri (git-reference
  5446. (url "https://github.com/cheekybits/genny")
  5447. (commit (string-append "v" version))))
  5448. (file-name (git-file-name name version))
  5449. (sha256
  5450. (base32
  5451. "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
  5452. (build-system go-build-system)
  5453. (arguments
  5454. '(#:import-path "github.com/cheekybits/genny"))
  5455. (propagated-inputs
  5456. `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
  5457. (synopsis "Generics for Go")
  5458. (description "This package provides @code{genny}, a Go language
  5459. implementation of generics.")
  5460. (home-page "https://github.com/cheekybits/genny/")
  5461. (license license:expat)))
  5462. (define-public go-github-com-lucas-clemente-quic-go
  5463. (package
  5464. (name "go-github-com-lucas-clemente-quic-go")
  5465. (version "0.14.4")
  5466. (source (origin
  5467. (method git-fetch)
  5468. (uri (git-reference
  5469. (url "https://github.com/lucas-clemente/quic-go")
  5470. (commit (string-append "v" version))))
  5471. (file-name (git-file-name name version))
  5472. (sha256
  5473. (base32
  5474. "04l3gqbc3gh079n8vgnrsf8ypgv8sl63xjf28jqfrb45v2l73vyz"))))
  5475. (build-system go-build-system)
  5476. (arguments
  5477. '(#:import-path "github.com/lucas-clemente/quic-go"
  5478. ;; XXX More packages required...
  5479. #:tests? #f))
  5480. (propagated-inputs
  5481. `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  5482. ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
  5483. ("go-github-com-marten-seemann-chacha20" ,go-github-com-marten-seemann-chacha20)
  5484. ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)
  5485. ("go-github-com-golang-protobuf-proto" ,go-github-com-golang-protobuf-proto)))
  5486. (synopsis "QUIC in Go")
  5487. (description "This package provides a Go language implementation of the QUIC
  5488. network protocol.")
  5489. (home-page "https://github.com/lucas-clemente/quic-go")
  5490. (license license:expat)))
  5491. (define-public go-github-com-francoispqt-gojay
  5492. (package
  5493. (name "go-github-com-francoispqt-gojay")
  5494. (version "1.2.13")
  5495. (source (origin
  5496. (method git-fetch)
  5497. (uri (git-reference
  5498. (url "https://github.com/francoispqt/gojay")
  5499. (commit (string-append "v" version))))
  5500. (file-name (git-file-name name version))
  5501. (sha256
  5502. (base32
  5503. "1ix95qdyajfmxhf9y52vjrih63f181pjs4v5as8905s4d5vmkd06"))))
  5504. (build-system go-build-system)
  5505. (arguments
  5506. '(#:import-path "github.com/francoispqt/gojay"))
  5507. (propagated-inputs
  5508. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  5509. (synopsis "JSON encoder/decoder with powerful stream API for Golang")
  5510. (description "GoJay is a performant JSON encoder/decoder for Golang. It has
  5511. a simple API and doesn't use reflection. It relies on small interfaces to
  5512. decode/encode structures and slices.")
  5513. (home-page "https://github.com/francoispqt/gojay")
  5514. (license license:expat)))
  5515. (define-public go-github-com-pkg-errors
  5516. (package
  5517. (name "go-github-com-pkg-errors")
  5518. (version "0.9.1")
  5519. (source (origin
  5520. (method git-fetch)
  5521. (uri (git-reference
  5522. (url "https://github.com/pkg/errors")
  5523. (commit (string-append "v" version))))
  5524. (file-name (git-file-name name version))
  5525. (sha256
  5526. (base32
  5527. "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"))))
  5528. (build-system go-build-system)
  5529. (arguments
  5530. `(#:import-path "github.com/pkg/errors"))
  5531. (synopsis "Go error handling primitives")
  5532. (description "This package provides @code{error}, which offers simple
  5533. error handling primitives in Go.")
  5534. (home-page "https://github.com/pkg/errors")
  5535. (license license:bsd-2)))
  5536. (define-public go-github-com-maruel-panicparse
  5537. (package
  5538. (name "go-github-com-maruel-panicparse")
  5539. (version "1.3.0")
  5540. (source (origin
  5541. (method git-fetch)
  5542. (uri (git-reference
  5543. (url "https://github.com/maruel/panicparse")
  5544. (commit (string-append "v" version))))
  5545. (file-name (git-file-name name version))
  5546. (sha256
  5547. (base32
  5548. "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
  5549. (build-system go-build-system)
  5550. (arguments
  5551. '(#:import-path "github.com/maruel/panicparse"))
  5552. (synopsis "Toolkit for parsing Go stack traces")
  5553. (description "This package provides a toolkit for parsing Go language panic
  5554. stack traces. It simplifies the traces to make salient information more visible
  5555. and aid debugging.")
  5556. (home-page "https://github.com/maruel/panicparse")
  5557. (license license:asl2.0)))
  5558. (define-public go-github-com-robfig-cron
  5559. (package
  5560. (name "go-github-com-robfig-cron")
  5561. (version "3.0.1")
  5562. (source
  5563. (origin
  5564. (method git-fetch)
  5565. (uri (git-reference
  5566. (url "https://github.com/robfig/cron")
  5567. (commit (string-append "v" version))))
  5568. (file-name (git-file-name name version))
  5569. (sha256
  5570. (base32
  5571. "1agzbw2dfk2d1mpmddr85s5vh6ygm8kqrvfg87i9d2wqnlsnliqm"))))
  5572. (build-system go-build-system)
  5573. (arguments
  5574. `(#:import-path "github.com/robfig/cron"))
  5575. (home-page "https://godoc.org/github.com/robfig/cron")
  5576. (synopsis "Cron library for Go")
  5577. (description "This package provides a cron library for Go. It implements
  5578. a cron spec parser and job runner.")
  5579. (license license:expat)))
  5580. (define-public go-github-com-shirou-gopsutil
  5581. (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
  5582. (revision "0"))
  5583. (package
  5584. (name "go-github-com-shirou-gopsutil")
  5585. (version (git-version "v2.19.7" revision commit))
  5586. (source (origin
  5587. (method git-fetch)
  5588. (uri (git-reference
  5589. (url "https://github.com/shirou/gopsutil")
  5590. (commit commit))) ; XXX
  5591. (file-name (git-file-name name version))
  5592. (sha256
  5593. (base32
  5594. "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
  5595. (build-system go-build-system)
  5596. (arguments
  5597. '(#:import-path "github.com/shirou/gopsutil"))
  5598. (synopsis "Process and system monitoring in Go")
  5599. (description "This package provides a library for retrieving information
  5600. on running processes and system utilization (CPU, memory, disks, network,
  5601. sensors).")
  5602. (home-page "https://github.com/shirou/gopsutil")
  5603. (license license:bsd-3))))
  5604. (define-public go-github-com-danwakefield-fnmatch
  5605. (let ((commit "cbb64ac3d964b81592e64f957ad53df015803288")
  5606. (revision "0"))
  5607. (package
  5608. (name "go-github-com-danwakefield-fnmatch")
  5609. (version (git-version "0.0.0" revision commit))
  5610. (source
  5611. (origin
  5612. (method git-fetch)
  5613. (uri (git-reference
  5614. (url "https://github.com/danwakefield/fnmatch")
  5615. (commit commit)))
  5616. (sha256
  5617. (base32
  5618. "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz"))
  5619. (file-name (git-file-name name version))))
  5620. (build-system go-build-system)
  5621. (arguments
  5622. '(#:import-path "github.com/danwakefield/fnmatch"))
  5623. (home-page "https://github.com/danwakefield/fnmatch")
  5624. (synopsis "Updated clone of kballards golang fnmatch gist")
  5625. (description "This package provides an updated clone of kballards golang
  5626. fnmatch gist (https://gist.github.com/kballard/272720).")
  5627. (license license:bsd-2))))
  5628. (define-public go-github-com-ddevault-go-libvterm
  5629. (let ((commit "b7d861da381071e5d3701e428528d1bfe276e78f")
  5630. (revision "0"))
  5631. (package
  5632. (name "go-github-com-ddevault-go-libvterm")
  5633. (version (git-version "0.0.0" revision commit))
  5634. (source
  5635. (origin
  5636. (method git-fetch)
  5637. (uri (git-reference
  5638. (url "https://github.com/ddevault/go-libvterm")
  5639. (commit commit)))
  5640. (sha256
  5641. (base32
  5642. "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6"))
  5643. (file-name (git-file-name name version))))
  5644. (build-system go-build-system)
  5645. (arguments
  5646. '(#:import-path "github.com/ddevault/go-libvterm"))
  5647. (propagated-inputs
  5648. `(("go-github-com-mattn-go-pointer" ,go-github-com-mattn-go-pointer)))
  5649. (home-page "https://github.com/ddevault/go-libvterm")
  5650. (synopsis "Go binding to libvterm")
  5651. (description
  5652. "This is a fork of another go-libvterm library for use with aerc.")
  5653. (license license:expat))))
  5654. (define-public go-github-com-emersion-go-imap
  5655. (package
  5656. (name "go-github-com-emersion-go-imap")
  5657. (version "1.0.0")
  5658. (source
  5659. (origin
  5660. (method git-fetch)
  5661. (uri (git-reference
  5662. (url "https://github.com/emersion/go-imap")
  5663. (commit (string-append "v" version))))
  5664. (sha256
  5665. (base32
  5666. "1id8j2d0rn9sj8y62xhyygqpk5ygrcl9jlfx92sm1jsvxsm3kywq"))
  5667. (file-name (git-file-name name version))))
  5668. (build-system go-build-system)
  5669. (arguments
  5670. '(#:import-path "github.com/emersion/go-imap"))
  5671. (native-inputs
  5672. `(("go-golang-org-x-text" ,go-golang-org-x-text)))
  5673. (home-page "https://github.com/emersion/go-imap")
  5674. (synopsis "IMAP4rev1 library written in Go")
  5675. (description "This package provides an IMAP4rev1 library written in Go. It
  5676. can be used to build a client and/or a server.")
  5677. (license license:expat)))
  5678. (define-public go-github-com-emersion-go-sasl
  5679. (let ((commit "240c8404624e076f633766c16adbe96c7ac516b7")
  5680. (revision "0"))
  5681. (package
  5682. (name "go-github-com-emersion-go-sasl")
  5683. (version (git-version "0.0.0" revision commit))
  5684. (source
  5685. (origin
  5686. (method git-fetch)
  5687. (uri (git-reference
  5688. (url "https://github.com/emersion/go-sasl")
  5689. (commit commit)))
  5690. (sha256
  5691. (base32
  5692. "1py18p3clp474xhx6ypyp0bgv6n1dfm24m95cyyqb0k3vibar6ih"))
  5693. (file-name (git-file-name name version))))
  5694. (build-system go-build-system)
  5695. (arguments
  5696. '(#:import-path "github.com/emersion/go-sasl"))
  5697. (home-page "https://github.com/emersion/go-sasl")
  5698. (synopsis "SASL library written in Go")
  5699. (description "This package provides a SASL library written in Go.")
  5700. (license license:expat))))
  5701. (define-public go-github-com-emersion-go-imap-idle
  5702. (let ((commit "2704abd7050ed7f2143753554ee23affdf847bd9")
  5703. (revision "0"))
  5704. (package
  5705. (name "go-github-com-emersion-go-imap-idle")
  5706. (version (git-version "0.0.0" revision commit))
  5707. (source
  5708. (origin
  5709. (method git-fetch)
  5710. (uri (git-reference
  5711. (url "https://github.com/emersion/go-imap-idle")
  5712. (commit commit)))
  5713. (sha256
  5714. (base32
  5715. "0blwcadmxgqsdwgr9m4jqfbpfa2viw5ah19xbybpa1z1z4aj5cbc"))
  5716. (file-name (git-file-name name version))))
  5717. (build-system go-build-system)
  5718. (arguments
  5719. '(#:import-path "github.com/emersion/go-imap-idle"))
  5720. (native-inputs
  5721. `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
  5722. ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
  5723. ("go-golang-org-x-text" ,go-golang-org-x-text)))
  5724. (home-page "https://github.com/emersion/go-imap-idle")
  5725. (synopsis "IDLE extension for go-imap")
  5726. (description "This package provides an IDLE extension for go-imap.")
  5727. (license license:expat))))
  5728. (define-public go-github-com-fatih-color
  5729. (package
  5730. (name "go-github-com-fatih-color")
  5731. (version "1.8.0")
  5732. (source (origin
  5733. (method git-fetch)
  5734. (uri (git-reference
  5735. (url "https://github.com/fatih/color")
  5736. (commit (string-append "v" version))))
  5737. (file-name (git-file-name name version))
  5738. (sha256
  5739. (base32
  5740. "1zc0zlilf03h121f9jqq3ar0hfm7706547zysxp2qxbm920pz7h0"))))
  5741. (build-system go-build-system)
  5742. (arguments
  5743. '(#:import-path "github.com/fatih/color"))
  5744. (synopsis "Print colored text in Go")
  5745. (description "This package provides an ANSI color package to output
  5746. colorized or SGR defined output to the standard output.")
  5747. (home-page "https://godoc.org/github.com/fatih/color")
  5748. (license license:expat)))
  5749. (define-public go-github-com-google-go-cmp-cmp
  5750. (package
  5751. (name "go-github-com-google-go-cmp-cmp")
  5752. (version "0.5.2")
  5753. (source (origin
  5754. (method git-fetch)
  5755. (uri (git-reference
  5756. (url "https://github.com/google/go-cmp")
  5757. (commit (string-append "v" version))))
  5758. (file-name (git-file-name name version))
  5759. (sha256
  5760. (base32
  5761. "0qchy411jm9q2l9mf7x3ry2ycaqp9xdhf2nx14qrpzcxfigv2705"))))
  5762. (build-system go-build-system)
  5763. (arguments
  5764. '(#:import-path "github.com/google/go-cmp/cmp"
  5765. #:unpack-path "github.com/google/go-cmp"))
  5766. (propagated-inputs
  5767. `(("go-golang-org-x-xerrors" ,go-golang-org-x-xerrors)))
  5768. (synopsis "Determine equality of values in Go")
  5769. (description "This package provides a more powerful and safer
  5770. alternative to @code{reflect.DeepEqual} for comparing whether two values
  5771. are semantically equal in Go (for writing tests).")
  5772. (home-page "https://godoc.org/github.com/google/go-cmp/cmp")
  5773. (license license:asl2.0)))
  5774. (define-public go-github-com-google-uuid
  5775. (package
  5776. (name "go-github-com-google-uuid")
  5777. (version "1.1.1")
  5778. (source (origin
  5779. (method git-fetch)
  5780. (uri (git-reference
  5781. (url "https://github.com/google/uuid")
  5782. (commit (string-append "v" version))))
  5783. (file-name (git-file-name name version))
  5784. (sha256
  5785. (base32
  5786. "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb"))))
  5787. (build-system go-build-system)
  5788. (arguments
  5789. '(#:import-path "github.com/google/uuid"))
  5790. (home-page "https://github.com/google/uuid/")
  5791. (synopsis "Generate and inspect UUIDs based on RFC 4122 and DCE 1.1")
  5792. (description "The uuid package generates and inspects UUIDs based on RFC
  5793. 4122 and DCE 1.1: Authentication and Security Services.")
  5794. (license license:bsd-3)))
  5795. (define-public go-github-com-google-goterm
  5796. (let ((commit "fc88cf888a3fa99ecc23d1efc1a44284268457d3")
  5797. (revision "1"))
  5798. (package
  5799. (name "go-github-com-google-goterm")
  5800. (version (git-version "0.0.1" revision commit))
  5801. (source (origin
  5802. (method git-fetch)
  5803. (uri (git-reference
  5804. (url "https://github.com/google/goterm")
  5805. (commit commit)))
  5806. (file-name (git-file-name name version))
  5807. (sha256
  5808. (base32
  5809. "0809sf02dhg2bjhsz43pmlb5d7nbsnwxls3lw01zw5p7ri9bqwfb"))))
  5810. (build-system go-build-system)
  5811. (arguments
  5812. `(#:import-path "github.com/google/goterm/term"
  5813. #:unpack-path "github.com/google/goterm"))
  5814. (home-page "https://github.com/google/goterm/")
  5815. (synopsis "PTY creation and termios get/set attributes")
  5816. (description "The term package implements PTY creation and termios get/set
  5817. attributes. It also contains some convenience functions for colors, SSH to
  5818. and from termios translations, readCh, reading passwords, etc.")
  5819. (license license:bsd-3))))
  5820. (define-public go-github-com-google-go-querystring
  5821. (let ((commit "992e8021cf787c100d55520d5c906e01536c0a19") ;fix format in tests
  5822. (revision "1"))
  5823. (package
  5824. (name "go-github-com-google-go-querystring")
  5825. (version "1.0.0")
  5826. (source (origin
  5827. (method git-fetch)
  5828. (uri (git-reference
  5829. (url "https://github.com/google/go-querystring")
  5830. (commit commit)))
  5831. (file-name (git-file-name name version))
  5832. (sha256
  5833. (base32
  5834. "0mbx4jvf7nz4sk2fgqfq1llz4xb3vc4625b4x398mspr3a5077rs"))))
  5835. (build-system go-build-system)
  5836. (arguments
  5837. `(#:import-path "github.com/google/go-querystring/query"
  5838. #:unpack-path "github.com/google/go-querystring"))
  5839. (home-page "https://github.com/google/go-querystring/")
  5840. (synopsis "Library for encoding structs into URL query parameters")
  5841. (description "@code{go-querystring} is Go library for encoding structs
  5842. into URL query parameters.")
  5843. (license license:bsd-3))))
  5844. (define-public go-github-com-google-go-github
  5845. (package
  5846. (name "go-github-com-google-go-github")
  5847. (version "26.1.3")
  5848. (source (origin
  5849. (method git-fetch)
  5850. (uri (git-reference
  5851. (url "https://github.com/google/go-github")
  5852. (commit (string-append "v" version))))
  5853. (file-name (git-file-name name version))
  5854. (sha256
  5855. (base32
  5856. "0x0zz1vcmllp6r6l2qin9b2llm5cxbf6n84rf99h8wrmhvzs2ipi"))))
  5857. (build-system go-build-system)
  5858. (arguments
  5859. `(#:tests? #f ;application/octet-stream instead of text/plain
  5860. #:import-path "github.com/google/go-github/v26/github"
  5861. #:unpack-path "github.com/google/go-github/v26"))
  5862. (native-inputs
  5863. `(("go-github-com-google-go-querystring" ,go-github-com-google-go-querystring)
  5864. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  5865. (home-page "https://github.com/google/go-github/")
  5866. (synopsis "Client library for accessing the GitHub API v3")
  5867. (description "@code{go-github} is a Go client library for accessing the
  5868. GitHub API v3.")
  5869. (license license:bsd-3)))
  5870. (define-public go-github-com-google-renameio
  5871. (package
  5872. (name "go-github-com-google-renameio")
  5873. (version "0.1.0")
  5874. (source (origin
  5875. (method git-fetch)
  5876. (uri (git-reference
  5877. (url "https://github.com/google/renameio")
  5878. (commit (string-append "v" version))))
  5879. (file-name (git-file-name name version))
  5880. (sha256
  5881. (base32
  5882. "1ki2x5a9nrj17sn092d6n4zr29lfg5ydv4xz5cp58z6cw8ip43jx"))))
  5883. (build-system go-build-system)
  5884. (arguments
  5885. `(#:import-path "github.com/google/renameio"))
  5886. (home-page "https://github.com/google/renameio/")
  5887. (synopsis "Atomically create or replace a file or symbolic link")
  5888. (description "@code{renameio} Go package provides a way to atomically
  5889. create or replace a file or symbolic link.")
  5890. (license license:asl2.0)))
  5891. (define-public go-golang.org-x-sync-errgroup
  5892. (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
  5893. (revision "0"))
  5894. (package
  5895. (name "go-golang.org-x-sync-errgroup")
  5896. (version (git-version "0.0.0" revision commit))
  5897. (source (origin
  5898. (method git-fetch)
  5899. (uri (git-reference
  5900. (url "https://go.googlesource.com/sync")
  5901. (commit commit)))
  5902. (file-name (git-file-name name version))
  5903. (sha256
  5904. (base32
  5905. "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
  5906. (build-system go-build-system)
  5907. (arguments
  5908. '(#:import-path "golang.org/x/sync/errgroup"
  5909. #:unpack-path "golang.org/x/sync"))
  5910. (synopsis "Synchronization, error propagation, and Context cancellation
  5911. for groups of goroutines working on subtasks of a common task.")
  5912. (description "This package provides synchronization, error propagation,
  5913. and Context cancellation for groups of goroutines working on subtasks of a
  5914. common task.")
  5915. (home-page "https://godoc.org/golang.org/x/sync/errgroup")
  5916. (license license:bsd-3))))
  5917. (define (go-gotest-tools-source version sha256-base32-hash)
  5918. (origin
  5919. (method git-fetch)
  5920. (uri (git-reference
  5921. (url "https://github.com/gotestyourself/gotest.tools")
  5922. (commit (string-append "v" version))))
  5923. (file-name (git-file-name "go-gotest-tools" version))
  5924. (sha256
  5925. (base32 sha256-base32-hash))))
  5926. ;; Note that version 3.0.0 is incompatible to 2.3.0.
  5927. ;; See also <https://github.com/gotestyourself/gotest.tools/issues/166>.
  5928. (define (go-gotest-tools-package suffix)
  5929. (package
  5930. (name (string-append "go-gotest-tools-"
  5931. (string-replace-substring suffix "/" "-")))
  5932. (version "2.3.0")
  5933. (source
  5934. (go-gotest-tools-source version
  5935. "0071rjxp4xzcr3vprkaj1hdk35a3v45bx8v0ipk16wwc5hx84i2i"))
  5936. (build-system go-build-system)
  5937. (arguments
  5938. `(#:import-path ,(string-append "gotest.tools/" suffix)
  5939. #:unpack-path "gotest.tools"))
  5940. (synopsis "@code{gotest-tools} part")
  5941. (description "This package provides a part of @code{gotest-tools}.")
  5942. (home-page "https://github.com/gotestyourself/gotest.tools")
  5943. (license license:asl2.0)))
  5944. (define-public go-gotest-tools-internal-format
  5945. (package (inherit (go-gotest-tools-package "internal/format"))
  5946. (native-inputs
  5947. `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
  5948. ("go-github-com-google-go-cmp-cmp"
  5949. ,go-github-com-google-go-cmp-cmp)))
  5950. (synopsis "Formats messages for use with gotest-tools")
  5951. (description "This package provides a way to format messages for use
  5952. with gotest-tools.")))
  5953. (define-public go-gotest-tools-internal-difflib
  5954. (package (inherit (go-gotest-tools-package "internal/difflib"))
  5955. (synopsis "Differences for use with gotest-tools")
  5956. (description "This package computes differences for use
  5957. with gotest-tools.")))
  5958. (define-public go-gotest-tools-internal-source
  5959. (package (inherit (go-gotest-tools-package "internal/source"))
  5960. (native-inputs
  5961. `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
  5962. ("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)))
  5963. (synopsis "Source code AST formatters for gotest-tools")
  5964. (description "This package provides source code AST formatters for
  5965. gotest-tools.")))
  5966. (define-public go-gotest-tools-assert
  5967. (package (inherit (go-gotest-tools-package "assert"))
  5968. (name "go-gotest-tools-assert")
  5969. (arguments
  5970. `(#:tests? #f ; Test failure concerning message formatting (FIXME)
  5971. #:import-path "gotest.tools/assert"
  5972. #:unpack-path "gotest.tools"))
  5973. ;(propagated-inputs
  5974. ; `(("go-gotest-tools-internal-format" ,go-gotest-tools-internal-format)))
  5975. (native-inputs
  5976. `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
  5977. ("go-github-com-google-go-cmp-cmp"
  5978. ,go-github-com-google-go-cmp-cmp)))
  5979. (synopsis "Compare values and fail a test when a comparison fails")
  5980. (description "This package provides a way to compare values and fail a
  5981. test when a comparison fails.")
  5982. (home-page "https://github.com/gotestyourself/gotest.tools")
  5983. (license license:asl2.0)))
  5984. (define-public gotestsum
  5985. (package
  5986. (name "gotestsum")
  5987. (version "0.4.0")
  5988. (source (origin
  5989. (method git-fetch)
  5990. (uri (git-reference
  5991. (url "https://github.com/gotestyourself/gotestsum")
  5992. (commit (string-append "v" version))))
  5993. (file-name (git-file-name name version))
  5994. (sha256
  5995. (base32
  5996. "0y71qr3ss3hgc8c7nmvpwk946xy1jc5d8whsv6y77wb24ncla7n0"))))
  5997. (build-system go-build-system)
  5998. (arguments
  5999. '(#:import-path "gotest.tools/gotestsum"))
  6000. (native-inputs
  6001. `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
  6002. ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
  6003. ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
  6004. ("go-github-com-sirupsen-logrus"
  6005. ,go-github-com-sirupsen-logrus)
  6006. ("go-github-com-spf13-pflag" ,go-github-com-spf13-pflag)
  6007. ("go-github-com-jonboulle-clockwork"
  6008. ,go-github-com-jonboulle-clockwork)
  6009. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  6010. ("go-gotest-tools-assert" ,go-gotest-tools-assert)
  6011. ("go-github-com-google-go-cmp-cmp"
  6012. ,go-github-com-google-go-cmp-cmp)
  6013. ;; TODO: This would be better as a propagated-input of
  6014. ;; go-gotest-tools-assert, but that does not work for
  6015. ;; some reason.
  6016. ("go-gotest-tools-internal-format"
  6017. ,go-gotest-tools-internal-format)
  6018. ("go-gotest-tools-internal-difflib"
  6019. ,go-gotest-tools-internal-difflib)
  6020. ("go-gotest-tools-internal-source"
  6021. ,go-gotest-tools-internal-source)
  6022. ("go-github-com-google-go-cmp-cmp"
  6023. ,go-github-com-google-go-cmp-cmp)))
  6024. (synopsis "Go test runner with output optimized for humans")
  6025. (description "This package provides a @code{go test} runner with output
  6026. optimized for humans, JUnit XML for CI integration, and a summary of the
  6027. test results.")
  6028. (home-page "https://github.com/gotestyourself/gotestsum")
  6029. (license license:asl2.0)))
  6030. (define-public go-github-com-golang-protobuf-proto
  6031. (package
  6032. (name "go-github-com-golang-protobuf-proto")
  6033. (version "1.3.1")
  6034. (source (origin
  6035. (method git-fetch)
  6036. (uri (git-reference
  6037. (url "https://github.com/golang/protobuf")
  6038. (commit (string-append "v" version))))
  6039. (file-name (git-file-name name version))
  6040. (sha256
  6041. (base32
  6042. "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
  6043. (build-system go-build-system)
  6044. (arguments
  6045. '(#:import-path "github.com/golang/protobuf/proto"
  6046. #:unpack-path "github.com/golang/protobuf"
  6047. ;; Requires unpackaged golang.org/x/sync/errgroup
  6048. #:tests? #f))
  6049. (synopsis "Go support for Protocol Buffers")
  6050. (description "This package provides Go support for the Protocol Buffers
  6051. data serialization format.")
  6052. (home-page "https://github.com/golang/protobuf")
  6053. (license license:bsd-3)))
  6054. (define-public go-github-com-mattn-go-zglob
  6055. (package
  6056. (name "go-github-com-mattn-go-zglob")
  6057. (version "0.0.3")
  6058. (source (origin
  6059. (method git-fetch)
  6060. (uri (git-reference
  6061. (url "https://github.com/mattn/go-zglob")
  6062. (commit (string-append "v" version))))
  6063. (file-name (git-file-name name version))
  6064. (sha256
  6065. (base32
  6066. "1923lvakm66mzy62jmngdvcmbmiqclinsvnghs3907rgygnx1qc1"))))
  6067. (build-system go-build-system)
  6068. (arguments
  6069. `(#:import-path "github.com/mattn/go-zglob"))
  6070. (home-page "https://github.com/mattn/go-zglob")
  6071. (synopsis "Glob library that descends into other directories")
  6072. (description " A glob library that implements descending into other
  6073. directories. It is optimized for filewalking. ")
  6074. (license license:expat)))
  6075. (define-public go-github-com-mattn-go-sqlite3
  6076. (package
  6077. (name "go-github-com-mattn-go-sqlite3")
  6078. (version "1.14.6")
  6079. (source (origin
  6080. (method git-fetch)
  6081. (uri (git-reference
  6082. (url "https://github.com/mattn/go-sqlite3")
  6083. (commit (string-append "v" version))))
  6084. (file-name (git-file-name name version))
  6085. (sha256
  6086. (base32
  6087. "04anvqkc37mmc3z1dy4xfa6cas67zlxnnab0ywii7sylk864mhxz"))))
  6088. (build-system go-build-system)
  6089. (arguments
  6090. `(#:import-path "github.com/mattn/go-sqlite3"))
  6091. (home-page "https://github.com/mattn/go-sqlite3")
  6092. (synopsis "Sqlite3 driver for Go")
  6093. (description "This package provides a Sqlite3 driver for Go using
  6094. @code{database/sql}.")
  6095. (license license:expat)))
  6096. (define-public go-github-com-willf-bitset
  6097. (package
  6098. (name "go-github-com-willf-bitset")
  6099. (version "1.1.10")
  6100. (source (origin
  6101. (method git-fetch)
  6102. (uri (git-reference
  6103. (url "https://github.com/willf/bitset")
  6104. (commit (string-append "v" version))))
  6105. (file-name (git-file-name name version))
  6106. (sha256
  6107. (base32
  6108. "0wpaxg6va3qwd0hq0b8rpb1hswvzzbfm2h8sjmcsdpbkydjjx9zg"))))
  6109. (build-system go-build-system)
  6110. (arguments
  6111. '(#:import-path "github.com/willf/bitset"))
  6112. (synopsis "Bitsets in Go")
  6113. (description "This package provides a Go implementation of bitsets, which
  6114. are a mapping between non-negative integers and boolean values focused on
  6115. efficient space usage.")
  6116. (home-page "https://github.com/willf/bitset")
  6117. (license license:bsd-3)))
  6118. (define-public go-github-com-willf-bloom
  6119. (package
  6120. (name "go-github-com-willf-bloom")
  6121. (version "2.0.3")
  6122. (source (origin
  6123. (method git-fetch)
  6124. (uri (git-reference
  6125. (url "https://github.com/willf/bloom")
  6126. (commit (string-append "v" version))))
  6127. (file-name (git-file-name name version))
  6128. (sha256
  6129. (base32
  6130. "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg"))))
  6131. (build-system go-build-system)
  6132. (arguments
  6133. '(#:import-path "github.com/willf/bloom"
  6134. #:phases
  6135. (modify-phases %standard-phases
  6136. (add-after 'unpack 'patch-import-path
  6137. (lambda _
  6138. ;; See 'go.mod' in the source distribution of Syncthing 1.5.0 for
  6139. ;; more information.
  6140. ;; <https://github.com/spaolacci/murmur3/issues/29>
  6141. (substitute* "src/github.com/willf/bloom/bloom.go"
  6142. (("spaolacci") "twmb"))
  6143. #t)))))
  6144. (propagated-inputs
  6145. `(("go-github-com-twmb-murmur3" ,go-github-com-twmb-murmur3)
  6146. ("go-github-com-willf-bitset" ,go-github-com-willf-bitset)))
  6147. (synopsis "Bloom filters in Go")
  6148. (description "This package provides a Go implementation of bloom filters,
  6149. based on murmurhash.")
  6150. (home-page "https://github.com/willf/bloom")
  6151. (license license:bsd-2)))
  6152. (define-public go-golang-org-rainycape-unidecode
  6153. (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
  6154. (revision "1"))
  6155. (package
  6156. (name "go-golang-org-rainycape-unidecode")
  6157. (version (git-version "0.0.0" revision commit))
  6158. (source (origin
  6159. (method git-fetch)
  6160. (uri (git-reference
  6161. (url "https://github.com/rainycape/unidecode")
  6162. (commit commit)))
  6163. (file-name (string-append "go-golang-org-rainycape-unidecode-"
  6164. version "-checkout"))
  6165. (sha256
  6166. (base32
  6167. "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5"))))
  6168. (build-system go-build-system)
  6169. (arguments
  6170. `(#:import-path "golang.org/rainycape/unidecode"))
  6171. (home-page "https://github.com/rainycape/unidecode")
  6172. (synopsis "Unicode transliterator in Golang")
  6173. (description "Unicode transliterator in Golang - Replaces non-ASCII
  6174. characters with their ASCII approximations.")
  6175. (license license:asl2.0))))
  6176. (define-public go-github-com-golang-freetype
  6177. (let ((commit "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4")
  6178. (revision "1"))
  6179. (package
  6180. (name "go-github-com-golang-freetype")
  6181. (version (git-version "0.0.0" revision commit))
  6182. (source (origin
  6183. (method git-fetch)
  6184. (uri (git-reference
  6185. (url "https://github.com/golang/freetype")
  6186. (commit commit)))
  6187. (file-name (string-append "go-github-com-golang-freetype-"
  6188. version "-checkout"))
  6189. (sha256
  6190. (base32
  6191. "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc"))))
  6192. (build-system go-build-system)
  6193. (arguments
  6194. `(#:import-path "github.com/golang/freetype"))
  6195. (propagated-inputs
  6196. `(("go-golang-org-x-image" ,go-golang-org-x-image)))
  6197. (home-page "https://github.com/golang/freetype")
  6198. (synopsis "Freetype font rasterizer in the Go programming language")
  6199. (description "The Freetype font rasterizer in the Go programming language.")
  6200. (license (list license:freetype
  6201. license:gpl2+)))))
  6202. (define-public go-github-com-fogleman-gg
  6203. (package
  6204. (name "go-github-com-fogleman-gg")
  6205. (version "1.3.0")
  6206. (source (origin
  6207. (method git-fetch)
  6208. (uri (git-reference
  6209. (url "https://github.com/fogleman/gg")
  6210. (commit (string-append "v" version))))
  6211. (file-name (git-file-name name version))
  6212. (sha256
  6213. (base32
  6214. "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n"))))
  6215. (build-system go-build-system)
  6216. (arguments
  6217. `(#:tests? #f ; Issue with test flags.
  6218. #:import-path "github.com/fogleman/gg"))
  6219. (propagated-inputs
  6220. `(("go-github-com-golang-freetype" ,go-github-com-golang-freetype)))
  6221. (home-page "https://github.com/fogleman/gg")
  6222. (synopsis "2D rendering in Go")
  6223. (description "@code{gg} is a library for rendering 2D graphics in pure Go.")
  6224. (license license:expat)))
  6225. (define-public go-github-com-gedex-inflector
  6226. (let ((commit "16278e9db8130ac7ec405dc174cfb94344f16325")
  6227. (revision "1"))
  6228. (package
  6229. (name "go-github-com-gedex-inflector")
  6230. (version (git-version "0.0.0" revision commit))
  6231. (source (origin
  6232. (method git-fetch)
  6233. (uri (git-reference
  6234. (url "https://github.com/gedex/inflector")
  6235. (commit commit)))
  6236. (file-name (string-append "go-github-com-gedex-inflector-"
  6237. version "-checkout"))
  6238. (sha256
  6239. (base32
  6240. "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks"))))
  6241. (build-system go-build-system)
  6242. (arguments
  6243. `(#:import-path "github.com/gedex/inflector"))
  6244. (home-page "https://github.com/gedex/inflector")
  6245. (synopsis "Go library that pluralizes and singularizes English nouns")
  6246. (description "Go library that pluralizes and singularizes English nouns.")
  6247. (license license:bsd-2))))
  6248. (define-public go-github-com-klauspost-cpuid
  6249. (package
  6250. (name "go-github-com-klauspost-cpuid")
  6251. (version "1.2.3")
  6252. (source (origin
  6253. (method git-fetch)
  6254. (uri (git-reference
  6255. (url "https://github.com/klauspost/cpuid")
  6256. (commit (string-append "v" version))))
  6257. (file-name (git-file-name name version))
  6258. (sha256
  6259. (base32
  6260. "1s510210wdj5dkamii1qrk7v87k4qpdcrrjzflp5ha9iscw6b06l"))))
  6261. (build-system go-build-system)
  6262. (arguments
  6263. `(#:import-path "github.com/klauspost/cpuid"))
  6264. (home-page "https://github.com/klauspost/cpuid")
  6265. (synopsis "CPU feature identification for Go")
  6266. (description "@code{cpuid} provides information about the CPU running the
  6267. current program. CPU features are detected on startup, and kept for fast access
  6268. through the life of the application. Currently x86 / x64 (AMD64) is supported,
  6269. and no external C (cgo) code is used, which should make the library very eas
  6270. to use.")
  6271. (license license:expat)))
  6272. (define-public go-github-com-pbnjay-memory
  6273. (let ((commit "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510")
  6274. (revision "1"))
  6275. (package
  6276. (name "go-github-com-pbnjay-memory")
  6277. (version (git-version "0.0.0" revision commit))
  6278. (source (origin
  6279. (method git-fetch)
  6280. (uri (git-reference
  6281. (url "https://github.com/pbnjay/memory")
  6282. (commit commit)))
  6283. (file-name (string-append "go-github-com-pbnjay-memory-"
  6284. version "-checkout"))
  6285. (sha256
  6286. (base32
  6287. "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq"))))
  6288. (build-system go-build-system)
  6289. (arguments
  6290. `(#:import-path "github.com/pbnjay/memory"))
  6291. (home-page "https://github.com/gedex/inflector")
  6292. (synopsis "Go library to report total system memory")
  6293. (description "@code{memory} provides a single method reporting total
  6294. physical system memory accessible to the kernel. It does not account for memory
  6295. used by other processes.")
  6296. (license license:bsd-3))))
  6297. (define-public go-github-com-surge-glog
  6298. (let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985")
  6299. (revision "1"))
  6300. (package
  6301. (name "go-github-com-surge-glog")
  6302. (version (git-version "0.0.0" revision commit))
  6303. (source (origin
  6304. (method git-fetch)
  6305. (uri (git-reference
  6306. (url "https://github.com/surge/glog")
  6307. (commit commit)))
  6308. (file-name (string-append "go-github-com-surge-glog-"
  6309. version "-checkout"))
  6310. (sha256
  6311. (base32
  6312. "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4"))))
  6313. (build-system go-build-system)
  6314. (arguments
  6315. `(#:import-path "github.com/surge/glog"))
  6316. (home-page "https://github.com/surge/glog")
  6317. (synopsis "Leveled execution logs for Go")
  6318. (description "Leveled execution logs for Go.")
  6319. (license license:asl2.0))))
  6320. (define-public go-github-com-surgebase-porter2
  6321. (let ((commit "56e4718818e8dc4ea5ba6348402fc7661863732a")
  6322. (revision "1"))
  6323. (package
  6324. (name "go-github-com-surgebase-porter2")
  6325. (version (git-version "0.0.0" revision commit))
  6326. (source (origin
  6327. (method git-fetch)
  6328. (uri (git-reference
  6329. (url "https://github.com/surgebase/porter2")
  6330. (commit commit)))
  6331. (file-name (string-append "go-github-com-surgebase-porter2-"
  6332. version "-checkout"))
  6333. (sha256
  6334. (base32
  6335. "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2"))))
  6336. (build-system go-build-system)
  6337. (arguments
  6338. `(#:import-path "github.com/surgebase/porter2"))
  6339. (native-inputs
  6340. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
  6341. ("go-github-com-surge-glog" ,go-github-com-surge-glog)))
  6342. (home-page "https://github.com/surgebase/porter2")
  6343. (synopsis "Go library implementing english Porter2 stemmer")
  6344. (description "Porter2 implements the
  6345. @url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english
  6346. Porter2 stemmer}. It is written completely using finite state machines to do
  6347. suffix comparison, rather than the string-based or tree-based approaches.")
  6348. (license license:asl2.0))))
  6349. (define-public go-github-com-masterminds-goutils
  6350. (package
  6351. (name "go-github-com-masterminds-goutils")
  6352. (version "1.1.1")
  6353. (source (origin
  6354. (method git-fetch)
  6355. (uri (git-reference
  6356. (url "https://github.com/Masterminds/goutils")
  6357. (commit (string-append "v" version))))
  6358. (file-name (git-file-name name version))
  6359. (sha256
  6360. (base32
  6361. "09m4mbcdlv9ng3xcrmjlxi0niavby52y9nl2jhjnbx1xxpjw0jrh"))))
  6362. (build-system go-build-system)
  6363. (arguments
  6364. `(#:import-path "github.com/Masterminds/goutils"))
  6365. (home-page "https://github.com/Masterminds/goutils/")
  6366. (synopsis "Utility functions to manipulate strings")
  6367. (description "GoUtils provides utility functions to manipulate strings in
  6368. various ways. It is a Go implementation of some string manipulation libraries
  6369. of Java Apache Commons.")
  6370. (license license:asl2.0)))
  6371. (define-public go-github-com-masterminds-semver
  6372. (package
  6373. (name "go-github-com-masterminds-semver")
  6374. (version "3.1.0")
  6375. (source (origin
  6376. (method git-fetch)
  6377. (uri (git-reference
  6378. (url "https://github.com/Masterminds/semver")
  6379. (commit (string-append "v" version))))
  6380. (file-name (git-file-name name version))
  6381. (sha256
  6382. (base32
  6383. "1g1wizfdy29d02l9dh8gsb029yr4m4swp13swf0pnh9ryh5f1msz"))))
  6384. (build-system go-build-system)
  6385. (arguments
  6386. `(#:import-path "github.com/Masterminds/semver"))
  6387. (home-page "https://github.com/Masterminds/semver/")
  6388. (synopsis "@code{semver} helps to work with semantic versions")
  6389. (description "The semver package provides the ability to work with
  6390. semantic versions. Specifically it provides the ability to:
  6391. @itemize
  6392. @item Parse semantic versions
  6393. @item Sort semantic versions
  6394. @item Check if a semantic version fits within a set of constraints
  6395. @item Optionally work with a @code{v} prefix
  6396. @end itemize\n")
  6397. (license license:expat)))
  6398. (define-public go-github-com-huandu-xstrings
  6399. (package
  6400. (name "go-github-com-huandu-xstrings")
  6401. (version "1.3.2")
  6402. (source (origin
  6403. (method git-fetch)
  6404. (uri (git-reference
  6405. (url "https://github.com/huandu/xstrings")
  6406. (commit (string-append "v" version))))
  6407. (file-name (git-file-name name version))
  6408. (sha256
  6409. (base32
  6410. "0pwar6rc0fqb6pll38a44s81g5kb65vbg71jg5lx8caphjnikq5r"))))
  6411. (build-system go-build-system)
  6412. (arguments
  6413. `(#:import-path "github.com/huandu/xstrings"))
  6414. (home-page "https://github.com/huandu/xstrings/")
  6415. (synopsis "Collection of string functions")
  6416. (description "Go package xstrings is a collection of string functions,
  6417. which are widely used in other languages but absent in Go package strings.")
  6418. (license license:expat)))
  6419. (define-public go-github-com-imdario-mergo
  6420. (package
  6421. (name "go-github-com-imdario-mergo")
  6422. (version "0.3.10")
  6423. (source (origin
  6424. (method git-fetch)
  6425. (uri (git-reference
  6426. (url "https://github.com/imdario/mergo")
  6427. (commit (string-append "v" version))))
  6428. (file-name (git-file-name name version))
  6429. (sha256
  6430. (base32
  6431. "09h765p8yby9r8s0a3hv5kl8n2i382mda76wmvk48w1cc1w9s92p"))))
  6432. (build-system go-build-system)
  6433. (arguments
  6434. `(#:import-path "github.com/imdario/mergo"))
  6435. (native-inputs
  6436. `(("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
  6437. (home-page "https://github.com/imdario/mergo/")
  6438. (synopsis "Helper to merge structs and maps in Golang")
  6439. (description "Helper to merge structs and maps in Golang. Useful for
  6440. configuration default values, avoiding messy if-statements.
  6441. Mergo merges same-type structs and maps by setting default values in
  6442. zero-value fields. Mergo won't merge unexported (private) fields. It will do
  6443. recursively any exported one. It also won't merge structs inside
  6444. maps (because they are not addressable using Go reflection).")
  6445. (license license:bsd-3)))
  6446. (define-public go-github-com-masterminds-sprig
  6447. (package
  6448. (name "go-github-com-masterminds-sprig")
  6449. (version "3.1.0")
  6450. (source (origin
  6451. (method git-fetch)
  6452. (uri (git-reference
  6453. (url "https://github.com/Masterminds/sprig")
  6454. (commit (string-append "v" version))))
  6455. (file-name (git-file-name name version))
  6456. (sha256
  6457. (base32
  6458. "0wwi8n2adjc5jlga25lqq0hrz4jcgd5vpll68y2dfji034caaq18"))))
  6459. (build-system go-build-system)
  6460. (arguments
  6461. `(#:tests? #f ;network tests only
  6462. #:import-path "github.com/Masterminds/sprig"))
  6463. (native-inputs
  6464. `(("go-github-com-masterminds-goutils" ,go-github-com-masterminds-goutils)
  6465. ("go-github-com-masterminds-semver" ,go-github-com-masterminds-semver)
  6466. ("go-github-com-google-uuid" ,go-github-com-google-uuid)
  6467. ("go-github-com-huandu-xstrings" ,go-github-com-huandu-xstrings)
  6468. ("go-github-com-imdario-mergo" ,go-github-com-imdario-mergo)
  6469. ("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)
  6470. ("go-github-com-mitchellh-copystructure" ,go-github-com-mitchellh-copystructure)
  6471. ("go-github-com-spf13-cast" ,go-github-com-spf13-cast)
  6472. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  6473. ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  6474. (home-page "https://github.com/Masterminds/sprig/")
  6475. (synopsis "Template functions for Go templates")
  6476. (description "Sprig is a library that provides more than 100 commonly used
  6477. template functions.")
  6478. (license license:expat)))
  6479. (define-public go-github-com-bmatcuk-doublestar
  6480. (package
  6481. (name "go-github-com-bmatcuk-doublestar")
  6482. (version "1.3.0")
  6483. (source (origin
  6484. (method git-fetch)
  6485. (uri (git-reference
  6486. (url "https://github.com/bmatcuk/doublestar")
  6487. (commit (string-append "v" version))))
  6488. (file-name (git-file-name name version))
  6489. (sha256
  6490. (base32
  6491. "0bk5bixl6rqa8znxghyp6zndbccx9kdyrymjahgyp6qsrp7rk144"))))
  6492. (build-system go-build-system)
  6493. (arguments
  6494. `(#:import-path "github.com/bmatcuk/doublestar"
  6495. #:phases
  6496. (modify-phases %standard-phases
  6497. (add-after 'unpack 'remove-incompatible-test
  6498. ;; This test fails with Go 1.16.
  6499. (lambda _
  6500. (substitute* "src/github.com/bmatcuk/doublestar/doublestar_test.go"
  6501. (("\\{\"a\\[\", \"a\", false, nil, false\\},.*")
  6502. "")))))))
  6503. (home-page "https://github.com/bmatcuk/doublestar/")
  6504. (synopsis "Path pattern matching and globbing supporting doublestar")
  6505. (description "@code{doublestar} is a Go implementation of path pattern
  6506. matching and globbing with support for \"doublestar\" patterns.")
  6507. (license license:expat)))
  6508. (define-public go-github-com-dlclark-regexp2
  6509. (package
  6510. (name "go-github-com-dlclark-regexp2")
  6511. (version "1.4.0")
  6512. (source (origin
  6513. (method git-fetch)
  6514. (uri (git-reference
  6515. (url "https://github.com/dlclark/regexp2")
  6516. (commit (string-append "v" version))))
  6517. (file-name (git-file-name name version))
  6518. (sha256
  6519. (base32
  6520. "1irfv89b7lfkn7k3zgx610ssil6k61qs1wjj31kvqpxb3pdx4kry"))))
  6521. (build-system go-build-system)
  6522. (arguments
  6523. `(#:import-path "github.com/dlclark/regexp2"))
  6524. (home-page "https://github.com/dlclark/regexp2/")
  6525. (synopsis "Full featured regular expressions for Go")
  6526. (description "Regexp2 is a feature-rich RegExp engine for Go.")
  6527. (license license:expat)))
  6528. (define-public go-github-com-alecthomas-colour
  6529. (package
  6530. (name "go-github-com-alecthomas-colour")
  6531. (version "0.1.0")
  6532. (source (origin
  6533. (method git-fetch)
  6534. (uri (git-reference
  6535. (url "https://github.com/alecthomas/colour")
  6536. (commit (string-append "v" version))))
  6537. (file-name (git-file-name name version))
  6538. (sha256
  6539. (base32
  6540. "10zbm12j40ppia4b5ql2blmsps5jhh5d7ffphxx843qk7wlbqnjb"))))
  6541. (build-system go-build-system)
  6542. (arguments
  6543. `(#:import-path "github.com/alecthomas/colour"))
  6544. (native-inputs
  6545. `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
  6546. (home-page "https://github.com/alecthomas/colour/")
  6547. (synopsis "Colour terminal text for Go")
  6548. (description "Package colour provides Quake-style colour formatting for
  6549. Unix terminals.
  6550. The package level functions can be used to write to stdout (or strings or
  6551. other files). If stdout is not a terminal, colour formatting will be
  6552. stripped.")
  6553. (license license:expat)))
  6554. (define-public go-github-com-alecthomas-repr
  6555. (let ((commit "4184120f674c8860a5b48142509a2411a0a1766f")
  6556. (revision "1"))
  6557. (package
  6558. (name "go-github-com-alecthomas-repr")
  6559. (version (git-version "0.0.1" revision commit))
  6560. (source (origin
  6561. (method git-fetch)
  6562. (uri (git-reference
  6563. (url "https://github.com/alecthomas/repr")
  6564. (commit commit)))
  6565. (file-name (git-file-name name version))
  6566. (sha256
  6567. (base32
  6568. "1z0gdkjryxg1ps5fh4ybzip27g9lzdldz4hxqp5j7s2frbzaa9s7"))))
  6569. (build-system go-build-system)
  6570. (arguments
  6571. `(#:import-path "github.com/alecthomas/repr"))
  6572. (native-inputs
  6573. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  6574. (home-page "https://github.com/alecthomas/repr/")
  6575. (synopsis "Represent Go values in an almost direct form")
  6576. (description "This package attempts to represent Go values in a form that
  6577. can be used almost directly in Go source code.")
  6578. (license license:expat))))
  6579. (define-public go-github-com-sergi-go-diff
  6580. (package
  6581. (name "go-github-com-sergi-go-diff")
  6582. (version "1.2.0")
  6583. (source (origin
  6584. (method git-fetch)
  6585. (uri (git-reference
  6586. (url "https://github.com/sergi/go-diff")
  6587. (commit (string-append "v" version))))
  6588. (file-name (git-file-name name version))
  6589. (sha256
  6590. (base32
  6591. "0cbj8nshllq102iiav0k1s01b8gwbkzj674g71n938qqna32y2pa"))))
  6592. (build-system go-build-system)
  6593. (arguments
  6594. `(#:import-path "github.com/sergi/go-diff/diffmatchpatch"
  6595. #:unpack-path "github.com/sergi/go-diff"))
  6596. (native-inputs
  6597. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  6598. (home-page "https://github.com/sergi/go-diff/")
  6599. (synopsis "Algorithms to perform operations for synchronizing plain text")
  6600. (description "@code{go-diff} offers algorithms to perform operations required for
  6601. synchronizing plain text:
  6602. @itemize
  6603. @item compare two texts and return their differences
  6604. @item perform fuzzy matching of text
  6605. @item apply patches onto text
  6606. @end itemize\n")
  6607. (license license:expat)))
  6608. (define-public go-github-com-alecthomas-assert
  6609. (let ((commit "405dbfeb8e38effee6e723317226e93fff912d06")
  6610. (revision "1"))
  6611. (package
  6612. (name "go-github-com-alecthomas-assert")
  6613. (version (git-version "0.0.1" revision commit))
  6614. (source (origin
  6615. (method git-fetch)
  6616. (uri (git-reference
  6617. (url "https://github.com/alecthomas/assert")
  6618. (commit commit)))
  6619. (file-name (git-file-name name version))
  6620. (sha256
  6621. (base32
  6622. "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l"))))
  6623. (build-system go-build-system)
  6624. (arguments
  6625. `(#:import-path "github.com/alecthomas/assert"))
  6626. (native-inputs
  6627. `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
  6628. ("go-github-com-alecthomas-colour" ,go-github-com-alecthomas-colour)
  6629. ("go-github-com-alecthomas-repr" ,go-github-com-alecthomas-repr)
  6630. ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
  6631. (home-page "https://github.com/alecthomas/assert/")
  6632. (synopsis "Go assertion library")
  6633. (description "Assertion library that:
  6634. @itemize
  6635. @item makes spotting differences in equality much easier
  6636. @item uses repr and diffmatchpatch to display structural differences in colour
  6637. @item aborts tests on first assertion failure
  6638. @end itemize\n")
  6639. (license license:expat))))
  6640. (define-public go-github-com-alecthomas-chroma
  6641. (package
  6642. (name "go-github-com-alecthomas-chroma")
  6643. (version "0.8.0")
  6644. (source (origin
  6645. (method git-fetch)
  6646. (uri (git-reference
  6647. (url "https://github.com/alecthomas/chroma")
  6648. (commit (string-append "v" version))))
  6649. (file-name (git-file-name name version))
  6650. (sha256
  6651. (base32
  6652. "066a6rdmf670d3v5sc7chbn7db09ldgxjympb03pcqwk644dixb1"))))
  6653. (build-system go-build-system)
  6654. (arguments
  6655. `(#:import-path "github.com/alecthomas/chroma"))
  6656. (native-inputs
  6657. `(("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
  6658. ("go-github-com-alecthomas-assert" ,go-github-com-alecthomas-assert)
  6659. ("go-github-com-alecthomas-colour" ,go-github-com-alecthomas-colour)
  6660. ("go-github-com-alecthomas-repr" ,go-github-com-alecthomas-repr)
  6661. ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
  6662. ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
  6663. (home-page "https://github.com/alecthomas/chroma/")
  6664. (synopsis "General purpose syntax highlighter in pure Go")
  6665. (description "Chroma takes source code and other structured text and
  6666. converts it into syntax highlighted HTML, ANSI-coloured text, etc.")
  6667. (license license:expat)))
  6668. (define-public go-github-com-andybalholm-cascadia
  6669. (package
  6670. (name "go-github-com-andybalholm-cascadia")
  6671. (version "1.0.0")
  6672. (source (origin
  6673. (method git-fetch)
  6674. (uri (git-reference
  6675. (url "https://github.com/andybalholm/cascadia")
  6676. (commit (string-append "v" version))))
  6677. (file-name (git-file-name name version))
  6678. (sha256
  6679. (base32
  6680. "09j8cavbhqqdxjqrkwbc40g8p0i49zf3184rpjm5p2rjbprcghcc"))))
  6681. (build-system go-build-system)
  6682. (arguments
  6683. `(#:import-path "github.com/andybalholm/cascadia"))
  6684. (native-inputs
  6685. `(("go-golang-org-x-net" ,go-golang-org-x-net)))
  6686. (home-page "https://github.com/andybalholm/cascadia/")
  6687. (synopsis "CSS selectors for HTML")
  6688. (description "The Cascadia package implements CSS selectors for use with
  6689. the parse trees produced by the html package.")
  6690. (license license:bsd-2)))
  6691. (define-public go-github-com-puerkitobio-goquery
  6692. (package
  6693. (name "go-github-com-puerkitobio-goquery")
  6694. (version "1.7.0")
  6695. (source (origin
  6696. (method git-fetch)
  6697. (uri (git-reference
  6698. (url "https://github.com/PuerkitoBio/goquery")
  6699. (commit (string-append "v" version))))
  6700. (file-name (git-file-name name version))
  6701. (sha256
  6702. (base32
  6703. "0gh1d99l5xc9hvwa4j40pfq3y9vfyq52mnrz6bf1kw2r2zr2gbcc"))))
  6704. (build-system go-build-system)
  6705. (arguments
  6706. `(#:import-path "github.com/PuerkitoBio/goquery"))
  6707. (propagated-inputs
  6708. `(("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
  6709. ("go-golang-org-x-net" ,go-golang-org-x-net)))
  6710. (home-page "https://github.com/PuerkitoBio/goquery")
  6711. (synopsis "Features similar to jQuery to the Go language")
  6712. (description "@code{goquery} brings a syntax and a set of features similar
  6713. to jQuery to the Go language.")
  6714. (license license:bsd-3)))
  6715. (define-public go-github-com-jmespath-go-jmespath
  6716. (package
  6717. (name "go-github-com-jmespath-go-jmespath")
  6718. (version "0.4.0")
  6719. (source
  6720. (origin
  6721. (method git-fetch)
  6722. (uri (git-reference
  6723. (url "https://github.com/jmespath/go-jmespath")
  6724. (commit (string-append "v" version))))
  6725. (file-name (git-file-name name version))
  6726. (sha256
  6727. (base32
  6728. "18zyr9nlywmwp3wpzcjxrgq9s9d2mmc6zg6xhsna00m663nkyc3n"))))
  6729. (build-system go-build-system)
  6730. (arguments
  6731. '(#:import-path "github.com/jmespath/go-jmespath"))
  6732. (native-inputs
  6733. `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)
  6734. ("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)
  6735. ("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
  6736. (home-page "https://github.com/jmespath/go-jmespath")
  6737. (synopsis "Golang implementation of JMESPath")
  6738. (description
  6739. "This package implements JMESPath, a query language for JSON. It
  6740. transforms one JSON document into another through a JMESPath expression.")
  6741. (license license:asl2.0)))
  6742. (define-public go-github-com-aymerick-douceur
  6743. (package
  6744. (name "go-github-com-aymerick-douceur")
  6745. (version "0.2.0")
  6746. (source (origin
  6747. (method git-fetch)
  6748. (uri (git-reference
  6749. (url "https://github.com/aymerick/douceur/")
  6750. (commit (string-append "v" version))))
  6751. (file-name (git-file-name name version))
  6752. (sha256
  6753. (base32
  6754. "1hfysznib0fqbp8vqxpk0xiggpp0ayk2bsddi36vbg6f8zq5f81n"))))
  6755. (build-system go-build-system)
  6756. (arguments
  6757. `(#:import-path "github.com/aymerick/douceur"))
  6758. (native-inputs
  6759. `(("go-github-com-puerkitobio-goquery" ,go-github-com-puerkitobio-goquery)
  6760. ("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
  6761. ("go-golang-org-x-net" ,go-golang-org-x-net)
  6762. ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)))
  6763. (home-page "https://github.com/aymerick/douceur/")
  6764. (synopsis "CSS parser and inliner")
  6765. (description "This package provides a CSS parser and inliner.")
  6766. (license license:expat)))
  6767. (define-public go-github-com-chris-ramon-douceur
  6768. (package
  6769. (name "go-github-com-chris-ramon-douceur")
  6770. (version "0.2.0")
  6771. (source (origin
  6772. (method git-fetch)
  6773. (uri (git-reference
  6774. (url "https://github.com/chris-ramon/douceur")
  6775. (commit (string-append "v" version))))
  6776. (file-name (git-file-name name version))
  6777. (sha256
  6778. (base32
  6779. "1hfysznib0fqbp8vqxpk0xiggpp0ayk2bsddi36vbg6f8zq5f81n"))))
  6780. (build-system go-build-system)
  6781. (arguments
  6782. `(#:import-path "github.com/chris-ramon/douceur"))
  6783. (native-inputs
  6784. `(("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
  6785. ("go-github-com-puerkitobio-goquery" ,go-github-com-puerkitobio-goquery)
  6786. ("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
  6787. ("go-golang-org-x-net" ,go-golang-org-x-net)
  6788. ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)))
  6789. (home-page "https://github.com/chris-ramon/douceur/")
  6790. (synopsis "CSS parser and inliner")
  6791. (description "This package provides a CSS parser and inliner.")
  6792. (license license:expat)))
  6793. (define-public go-github-com-microcosm-cc-bluemonday
  6794. (package
  6795. (name "go-github-com-microcosm-cc-bluemonday")
  6796. (version "1.0.3")
  6797. (source (origin
  6798. (method git-fetch)
  6799. (uri (git-reference
  6800. (url "https://github.com/microcosm-cc/bluemonday")
  6801. (commit (string-append "v" version))))
  6802. (file-name (git-file-name name version))
  6803. (sha256
  6804. (base32
  6805. "071ph097c1iwbcc33x6kblj9rxb1r4mp3qfkrj4qw5mg7qcqxydk"))))
  6806. (build-system go-build-system)
  6807. (arguments
  6808. `(#:import-path "github.com/microcosm-cc/bluemonday"))
  6809. (native-inputs
  6810. `(("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur)
  6811. ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
  6812. ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)
  6813. ("go-golang-org-x-net" ,go-golang-org-x-net)))
  6814. (home-page "https://github.com/microcosm-cc/bluemonday/")
  6815. (synopsis "HTML sanitizer")
  6816. (description "@code{bluemonday} is a HTML sanitizer implemented in Go.")
  6817. (license license:bsd-3)))
  6818. (define-public go-github-com-muesli-reflow-wordwrap
  6819. (package
  6820. (name "go-github-com-muesli-reflow-wordwrap")
  6821. (version "0.1.0")
  6822. (source (origin
  6823. (method git-fetch)
  6824. (uri (git-reference
  6825. (url "https://github.com/muesli/reflow")
  6826. (commit (string-append "v" version))))
  6827. (file-name (git-file-name "go-github-com-muesli-reflow" version))
  6828. (sha256
  6829. (base32
  6830. "1vhynm2n1az13fn03lp0gi28p9mznq1mblglh8f2rb9y1vkd2dqr"))))
  6831. (build-system go-build-system)
  6832. (arguments
  6833. `(#:import-path "github.com/muesli/reflow/wordwrap"
  6834. #:unpack-path "github.com/muesli/reflow"))
  6835. (native-inputs
  6836. `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
  6837. (home-page "https://github.com/muesli/reflow/")
  6838. (synopsis "Collection of methods helping to transform blocks of text")
  6839. (description "This package provides a collection of ANSI-aware methods and
  6840. io.Writers helping you to transform blocks of text.")
  6841. (license license:expat)))
  6842. (define-public go-github-com-muesli-reflow-ansi
  6843. (package
  6844. (inherit go-github-com-muesli-reflow-wordwrap)
  6845. (name "go-github-com-muesli-reflow-ansi")
  6846. (arguments
  6847. `(#:import-path "github.com/muesli/reflow/ansi"
  6848. #:unpack-path "github.com/muesli/reflow"))))
  6849. (define-public go-github-com-muesli-reflow-indent
  6850. (package
  6851. (inherit go-github-com-muesli-reflow-wordwrap)
  6852. (name "go-github-com-muesli-reflow-indent")
  6853. (arguments
  6854. `(#:import-path "github.com/muesli/reflow/indent"
  6855. #:unpack-path "github.com/muesli/reflow"))))
  6856. (define-public go-github-com-muesli-reflow-padding
  6857. (package
  6858. (inherit go-github-com-muesli-reflow-wordwrap)
  6859. (name "go-github-com-muesli-reflow-padding")
  6860. (arguments
  6861. `(#:import-path "github.com/muesli/reflow/padding"
  6862. #:unpack-path "github.com/muesli/reflow"))))
  6863. (define-public go-github-com-muesli-termenv
  6864. (package
  6865. (name "go-github-com-muesli-termenv")
  6866. (version "0.7.0")
  6867. (source (origin
  6868. (method git-fetch)
  6869. (uri (git-reference
  6870. (url "https://github.com/muesli/termenv")
  6871. (commit (string-append "v" version))))
  6872. (file-name (git-file-name name version))
  6873. (sha256
  6874. (base32
  6875. "09fwrdhy7c9qlf70h97f5inh6xvkfq1vi8fwx9q7bwmjjbiykk8m"))))
  6876. (build-system go-build-system)
  6877. (arguments
  6878. `(#:import-path "github.com/muesli/termenv"))
  6879. (native-inputs
  6880. `(("go-github-com-google-goterm" ,go-github-com-google-goterm)
  6881. ("go-golang-org-colorful" ,go-golang-org-colorful)
  6882. ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
  6883. ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
  6884. (home-page "https://github.com/muesli/termenv/")
  6885. (synopsis "Advanced styling options on the terminal")
  6886. (description "termenv lets you safely use advanced styling options on the
  6887. terminal. It gathers information about the terminal environment in terms of
  6888. its ANSI and color support and offers you convenient methods to colorize and
  6889. style your output, without you having to deal with all kinds of weird ANSI
  6890. escape sequences and color conversions.")
  6891. (license license:expat)))
  6892. (define-public go-github-com-nwidger-jsoncolor
  6893. (package
  6894. (name "go-github-com-nwidger-jsoncolor")
  6895. (version "0.3.0")
  6896. (home-page "https://github.com/nwidger/jsoncolor")
  6897. (source
  6898. (origin
  6899. (method git-fetch)
  6900. (uri (git-reference
  6901. (url home-page)
  6902. (commit (string-append "v" version))))
  6903. (file-name (git-file-name name version))
  6904. (sha256
  6905. (base32
  6906. "13rd146pnj7qm70r1333gyd1f61x40nafxlpvdxlci9h7mx8c5p8"))))
  6907. (build-system go-build-system)
  6908. (arguments
  6909. `(#:import-path "github.com/nwidger/jsoncolor"))
  6910. (native-inputs
  6911. `(("go-github-com-fatih-color" ,go-github-com-fatih-color)))
  6912. (synopsis "Colorized JSON marshalling and encoding")
  6913. (description
  6914. "@code{jsoncolor} is a drop-in replacement for @code{encoding/json}'s
  6915. @code{Marshal} and @code{MarshalIndent} functions and @code{Encoder} type
  6916. which produce colorized output using github.com/fatih/color.")
  6917. (license license:expat)))
  6918. (define-public go-github-com-olekukonko-tablewriter
  6919. (package
  6920. (name "go-github-com-olekukonko-tablewriter")
  6921. (version "0.0.4")
  6922. (source (origin
  6923. (method git-fetch)
  6924. (uri (git-reference
  6925. (url "https://github.com/olekukonko/tablewriter")
  6926. (commit (string-append "v" version))))
  6927. (file-name (git-file-name name version))
  6928. (sha256
  6929. (base32
  6930. "02r0n2b9yh3x8xyf48k17dxlwj234hlgjycylbjxi6qg08hfmz2x"))))
  6931. (build-system go-build-system)
  6932. (arguments
  6933. `(#:import-path "github.com/olekukonko/tablewriter"))
  6934. (native-inputs
  6935. `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
  6936. (home-page "https://github.com/olekukonko/tablewriter/")
  6937. (synopsis "Generate ASCII table")
  6938. (description "This package generates ASCII tables. Features:
  6939. @itemize
  6940. @item automatic Padding
  6941. @item support Multiple Lines
  6942. @item supports Alignment
  6943. @item support Custom Separators
  6944. @item automatic Alignment of numbers and percentage
  6945. @item write directly to http , file etc via @code{io.Writer}
  6946. @item read directly from CSV file
  6947. @item optional row line via @code{SetRowLine}
  6948. @item normalise table header
  6949. @item make CSV Headers optional
  6950. @item enable or disable table border
  6951. @item set custom footer support
  6952. @item optional identical cells merging
  6953. @item set custom caption
  6954. @item optional reflowing of paragrpahs in multi-line cells
  6955. @end itemize\n")
  6956. (license license:expat)))
  6957. (define-public go-github-com-yuin-goldmark
  6958. (package
  6959. (name "go-github-com-yuin-goldmark")
  6960. (version "1.2.1")
  6961. (source (origin
  6962. (method git-fetch)
  6963. (uri (git-reference
  6964. (url "https://github.com/yuin/goldmark")
  6965. (commit (string-append "v" version))))
  6966. (file-name (git-file-name name version))
  6967. (sha256
  6968. (base32
  6969. "12rsnsf65drcp0jfw2jl9w589vsn3pxdk1zh3v9q908iigngrcmy"))))
  6970. (build-system go-build-system)
  6971. (arguments
  6972. `(#:import-path "github.com/yuin/goldmark"))
  6973. (home-page "https://github.com/yuin/goldmark/")
  6974. (synopsis "Markdown parser")
  6975. (description "This package provides a markdown parser.")
  6976. (license license:expat)))
  6977. (define-public go-github-com-charmbracelet-glamour
  6978. (package
  6979. (name "go-github-com-charmbracelet-glamour")
  6980. (version "0.2.0")
  6981. (source (origin
  6982. (method git-fetch)
  6983. (uri (git-reference
  6984. (url "https://github.com/charmbracelet/glamour")
  6985. (commit (string-append "v" version))))
  6986. (file-name (git-file-name name version))
  6987. (sha256
  6988. (base32
  6989. "1idq8d13rp1hx2a1xak31fwl9fmi09p2x4ymvzl7aj850saw5w0z"))))
  6990. (build-system go-build-system)
  6991. (arguments
  6992. `(#:import-path "github.com/charmbracelet/glamour"))
  6993. (native-inputs
  6994. `(("go-github-com-alecthomas-chroma" ,go-github-com-alecthomas-chroma)
  6995. ("go-github-com-danwakefield-fnmatch" ,go-github-com-danwakefield-fnmatch)
  6996. ("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
  6997. ("go-github-com-microcosm-cc-bluemonday" ,go-github-com-microcosm-cc-bluemonday)
  6998. ("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur)
  6999. ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
  7000. ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)
  7001. ("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi)
  7002. ("go-github-com-muesli-reflow-wordwrap" ,go-github-com-muesli-reflow-wordwrap)
  7003. ("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent)
  7004. ("go-github-com-muesli-reflow-padding" ,go-github-com-muesli-reflow-padding)
  7005. ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
  7006. ("go-github-com-muesli-termenv" ,go-github-com-muesli-termenv)
  7007. ("go-github-com-google-goterm" ,go-github-com-google-goterm)
  7008. ("go-golang-org-colorful" ,go-golang-org-colorful)
  7009. ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
  7010. ("go-github-com-olekukonko-tablewriter" ,go-github-com-olekukonko-tablewriter)
  7011. ("go-github-com-yuin-goldmark" ,go-github-com-yuin-goldmark)
  7012. ("go-golang-org-x-net" ,go-golang-org-x-net)))
  7013. (home-page "https://github.com/charmbracelet/glamour/")
  7014. (synopsis "Write handsome command-line tools with glamour")
  7015. (description "@code{glamour} lets you render markdown documents and
  7016. templates on ANSI compatible terminals. You can create your own stylesheet or
  7017. use one of our glamorous default themes.")
  7018. (license license:expat)))
  7019. (define-public go-github-com-coreos-go-semver
  7020. (package
  7021. (name "go-github-com-coreos-go-semver")
  7022. (version "0.3.0")
  7023. (source (origin
  7024. (method git-fetch)
  7025. (uri (git-reference
  7026. (url "https://github.com/coreos/go-semver")
  7027. (commit (string-append "v" version))))
  7028. (file-name (git-file-name name version))
  7029. (sha256
  7030. (base32
  7031. "0770h1mpig2j5sbiha3abnwaw8p6dg9i87r8pc7cf6m4kwml3sc9"))))
  7032. (build-system go-build-system)
  7033. (arguments
  7034. `(#:import-path "github.com/coreos/go-semver"))
  7035. (home-page "https://github.com/coreos/go-semver/")
  7036. (synopsis "Semantic versioning library")
  7037. (description "@code{go-semver} is a semantic versioning library for Go.
  7038. It lets you parse and compare two semantic version strings.")
  7039. (license license:asl2.0)))
  7040. (define-public go-github-com-emirpasic-gods
  7041. (package
  7042. (name "go-github-com-emirpasic-gods")
  7043. (version "1.12.0")
  7044. (source (origin
  7045. (method git-fetch)
  7046. (uri (git-reference
  7047. (url "https://github.com/emirpasic/gods")
  7048. (commit (string-append "v" version))))
  7049. (file-name (git-file-name name version))
  7050. (sha256
  7051. (base32
  7052. "0i5qqq7ajvw3mikr95zl9rsnfsjanzwpqqs6kzzplsfgsifybar1"))))
  7053. (build-system go-build-system)
  7054. (arguments
  7055. `(#:import-path "github.com/emirpasic/gods"
  7056. ; Source-only package
  7057. #:tests? #f
  7058. #:phases
  7059. (modify-phases %standard-phases
  7060. (delete 'build))))
  7061. (home-page "https://github.com/emirpasic/gods/")
  7062. (synopsis "Implementation of various data structures and algorithms in Go")
  7063. (description "This package provides implementation of various data
  7064. structures and algorithms in Go.")
  7065. (license license:bsd-2)))
  7066. (define-public go-gopkg-in-warnings
  7067. (package
  7068. (name "go-gopkg-in-warnings")
  7069. (version "0.1.2")
  7070. (source (origin
  7071. (method git-fetch)
  7072. (uri (git-reference
  7073. (url "https://github.com/go-warnings/warnings")
  7074. (commit (string-append "v" version))))
  7075. (file-name (git-file-name name version))
  7076. (sha256
  7077. (base32
  7078. "1kzj50jn708cingn7a13c2wdlzs6qv89dr2h4zj8d09647vlnd81"))))
  7079. (build-system go-build-system)
  7080. (arguments
  7081. `(#:import-path "gopkg.in/warnings.v0"))
  7082. (home-page "https://gopkg.in/warnings.v0")
  7083. (synopsis "Error handling with non-fatal errors")
  7084. (description "Package warnings implements error handling with non-fatal
  7085. errors (warnings).")
  7086. (license license:bsd-2)))
  7087. (define-public go-github-com-go-git-gcfg
  7088. (package
  7089. (name "go-github-com-go-git-gcfg")
  7090. (version "1.5.0")
  7091. (source (origin
  7092. (method git-fetch)
  7093. (uri (git-reference
  7094. (url "https://github.com/go-git/gcfg")
  7095. (commit (string-append "v" version))))
  7096. (file-name (git-file-name name version))
  7097. (sha256
  7098. (base32
  7099. "1lb14z4j35pwz2b2rbykkpsq515spwbndb00gwn2xlrzn949xb83"))))
  7100. (arguments
  7101. `(#:import-path "github.com/go-git/gcfg"))
  7102. (native-inputs
  7103. `(("go-gopkg-in-warnings" ,go-gopkg-in-warnings)
  7104. ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
  7105. (build-system go-build-system)
  7106. (home-page "https://github.com/go-git/gcfg/")
  7107. (synopsis "Gcfg reads INI-style configuration files into Go structs")
  7108. (description "Gcfg reads INI-style configuration files into Go structs.")
  7109. (license license:bsd-3)))
  7110. (define-public go-github-com-go-git-go-billy
  7111. (package
  7112. (name "go-github-com-go-git-go-billy")
  7113. (version "5.0.0")
  7114. (source (origin
  7115. (method git-fetch)
  7116. (uri (git-reference
  7117. (url "https://github.com/go-git/go-billy")
  7118. (commit (string-append "v" version))))
  7119. (file-name (git-file-name name version))
  7120. (sha256
  7121. (base32
  7122. "1wdzczfk1n50dl2zpgf46m69b0sm8qkan5xyv82pk9x53zm1dmdx"))))
  7123. (build-system go-build-system)
  7124. (arguments
  7125. `(#:import-path "github.com/go-git/go-billy/v5"))
  7126. (native-inputs
  7127. `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
  7128. (home-page "https://github.com/go-git/go-billy/")
  7129. (synopsis "File system abstraction for Go")
  7130. (description "Billy implements an interface based on the OS's standard
  7131. library to develop applications without depending on the underlying storage.
  7132. This makes it virtually free to implement mocks and testing over
  7133. file system operations.")
  7134. (license license:asl2.0)))
  7135. (define-public go-github-com-jbenet-go-context
  7136. (let ((commit "d14ea06fba99483203c19d92cfcd13ebe73135f4")
  7137. (revision "1"))
  7138. (package
  7139. (name "go-github-com-jbenet-go-context")
  7140. (version (git-version "0.0.1" revision commit))
  7141. (source (origin
  7142. (method git-fetch)
  7143. (uri (git-reference
  7144. (url "https://github.com/jbenet/go-context")
  7145. (commit commit)))
  7146. (file-name (git-file-name name version))
  7147. (sha256
  7148. (base32
  7149. "0q91f5549n81w3z5927n4a1mdh220bdmgl42zi3h992dcc4ls0sl"))))
  7150. (build-system go-build-system)
  7151. (arguments
  7152. `(#:import-path "github.com/jbenet/go-context"
  7153. ; Source-only package
  7154. #:tests? #f
  7155. #:phases
  7156. (modify-phases %standard-phases
  7157. (delete 'build))))
  7158. (home-page "https://github.com/jbenet/go-context/")
  7159. (synopsis "@code{jbenet's} context extensions")
  7160. (description "This package provides @code{jbenet's} context
  7161. extensions.")
  7162. (license license:expat))))
  7163. (define-public go-github-com-kevinburke-ssh-config
  7164. (package
  7165. (name "go-github-com-kevinburke-ssh-config")
  7166. (version "1.0")
  7167. (source (origin
  7168. (method git-fetch)
  7169. (uri (git-reference
  7170. (url "https://github.com/kevinburke/ssh_config")
  7171. (commit version)))
  7172. (file-name (git-file-name name version))
  7173. (sha256
  7174. (base32
  7175. "05jvz5r58a057zxvic9dyr9v2wilha8l6366npwkqgxmnmk9sh5f"))))
  7176. (arguments
  7177. `(#:import-path "github.com/kevinburke/ssh_config"))
  7178. (build-system go-build-system)
  7179. (home-page "https://github.com/kevinburke/ssh_config/")
  7180. (synopsis "Parser for @file{ssh_config} files")
  7181. (description "This is a Go parser for @file{ssh_config} files.
  7182. Importantly, this parser attempts to preserve comments in a given file, so you
  7183. can manipulate a @file{ssh_config} file from a program.")
  7184. (license license:expat)))
  7185. (define-public go-github-com-xanzy-ssh-agent
  7186. (package
  7187. (name "go-github-com-xanzy-ssh-agent")
  7188. (version "0.2.1")
  7189. (source (origin
  7190. (method git-fetch)
  7191. (uri (git-reference
  7192. (url "https://github.com/xanzy/ssh-agent")
  7193. (commit (string-append "v" version))))
  7194. (file-name (git-file-name name version))
  7195. (sha256
  7196. (base32
  7197. "1chjlnv5d6svpymxgsr62d992m2xi6jb5lybjc5zn1h3hv1m01av"))))
  7198. (build-system go-build-system)
  7199. (arguments
  7200. `(#:import-path "github.com/xanzy/ssh-agent"))
  7201. (native-inputs
  7202. `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  7203. (home-page "https://github.com/xanzy/ssh-agent/")
  7204. (synopsis "Control ssh-agent from Go")
  7205. (description "Package agent implements the ssh-agent protocol, and
  7206. provides both a client and a server. The client can talk to a standard
  7207. ssh-agent that uses UNIX sockets, and one could implement an alternative
  7208. ssh-agent process using the sample server. ")
  7209. (license license:asl2.0)))
  7210. (define-public go-github-com-alcortesm-tgz
  7211. (let ((commit "9c5fe88206d7765837fed3732a42ef88fc51f1a1")
  7212. (revision "1"))
  7213. (package
  7214. (name "go-github-com-alcortesm-tgz")
  7215. (version (git-version "0.0.1" revision commit))
  7216. (source (origin
  7217. (method git-fetch)
  7218. (uri (git-reference
  7219. (url "https://github.com/alcortesm/tgz")
  7220. (commit commit)))
  7221. (file-name (git-file-name name version))
  7222. (sha256
  7223. (base32
  7224. "04dcwnz2c2i4wbq2vx3g2wrdgqpncr2r1h6p1k08rdwk4bq1h8c5"))
  7225. (modules '((guix build utils)))
  7226. (snippet
  7227. '(begin
  7228. (substitute* "tgz_test.go"
  7229. ;; Fix format error
  7230. (("t.Fatalf\\(\"%s: unexpected error extracting: %s\", err\\)")
  7231. "t.Fatalf(\"%s: unexpected error extracting: %s\", com, err)"))
  7232. #t))))
  7233. (build-system go-build-system)
  7234. (arguments
  7235. `(#:import-path "github.com/alcortesm/tgz"
  7236. #:phases
  7237. (modify-phases %standard-phases
  7238. (add-after 'unpack 'make-git-checkout-writable
  7239. (lambda* (#:key outputs #:allow-other-keys)
  7240. (for-each make-file-writable (find-files "."))
  7241. (for-each make-file-writable (find-files (assoc-ref outputs "out")))
  7242. #t)))))
  7243. (home-page "https://github.com/alcortesm/tgz/")
  7244. (synopsis "Go library to extract tgz files to temporal directories")
  7245. (description "This package provides a Go library to extract tgz files to
  7246. temporal directories.")
  7247. (license license:expat))))
  7248. (define-public go-github-com-go-git-go-git-fixtures
  7249. (package
  7250. (name "go-github-com-go-git-go-git-fixtures")
  7251. (version "4.0.1")
  7252. (source (origin
  7253. (method git-fetch)
  7254. (uri (git-reference
  7255. (url "https://github.com/go-git/go-git-fixtures")
  7256. (commit (string-append "v" version))))
  7257. (file-name (git-file-name name version))
  7258. (sha256
  7259. (base32
  7260. "002yb1s2mxq2xijkl39ip1iyc3l52k23ikyi9ijfl4bgqxy79ljg"))))
  7261. (build-system go-build-system)
  7262. (arguments
  7263. `(#:import-path "github.com/go-git/go-git-fixtures/v4"
  7264. #:phases
  7265. (modify-phases %standard-phases
  7266. (delete 'reset-gzip-timestamps))))
  7267. (native-inputs
  7268. `(("go-github-com-alcortesm-tgz" ,go-github-com-alcortesm-tgz)
  7269. ("go-github-com-go-git-go-billy" ,go-github-com-go-git-go-billy)
  7270. ("go-golang-org-x-sys" ,go-golang-org-x-sys)
  7271. ("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
  7272. (home-page "https://github.com/go-git/go-git-fixtures/")
  7273. (synopsis "Fixtures used by @code{go-git}")
  7274. (description "This package provides fixtures used by @code{go-git}.")
  7275. (license license:asl2.0)))
  7276. (define-public go-github-com-pkg-diff
  7277. (let ((commit "531926345625d489a6b56f860a569e68245ace36")
  7278. (revision "1"))
  7279. (package
  7280. (name "go-github-com-pkg-diff")
  7281. (version (git-version "0.0.1" revision commit))
  7282. (source (origin
  7283. (method git-fetch)
  7284. (uri (git-reference
  7285. (url "https://github.com/pkg/diff")
  7286. (commit commit)))
  7287. (file-name (git-file-name name version))
  7288. (sha256
  7289. (base32
  7290. "1770m7qhww6lm0wj1v3mhv6hwa2v92p4w2fqxj1xyrg5dd58d944"))))
  7291. (build-system go-build-system)
  7292. (arguments
  7293. `(#:import-path "github.com/pkg/diff"))
  7294. (native-inputs
  7295. `(("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
  7296. (home-page "https://github.com/pkg/diff/")
  7297. (synopsis "Create and print diffs")
  7298. (description
  7299. "This package provides a Go library to create and print diffs.")
  7300. (license license:bsd-3))))
  7301. (define-public go-github-com-twpayne-go-shell
  7302. (package
  7303. (name "go-github-com-twpayne-go-shell")
  7304. (version "0.3.0")
  7305. (source (origin
  7306. (method git-fetch)
  7307. (uri (git-reference
  7308. (url "https://github.com/twpayne/go-shell")
  7309. (commit (string-append "v" version))))
  7310. (file-name (git-file-name name version))
  7311. (sha256
  7312. (base32
  7313. "1hv0ggy3935iddjnmpp9vl0kqjknxpnbmm9w7xr3gds7fpbxz6yp"))))
  7314. (build-system go-build-system)
  7315. (arguments
  7316. `(#:import-path "github.com/twpayne/go-shell"))
  7317. (home-page "https://github.com/twpayne/go-shell/")
  7318. (synopsis "Shell across multiple platforms")
  7319. (description
  7320. "Package @code{shell} returns a user's shell across multiple platforms.")
  7321. (license license:expat)))
  7322. (define-public go-github-com-twpayne-go-vfs
  7323. (package
  7324. (name "go-github-com-twpayne-go-vfs")
  7325. (version "1.5.0")
  7326. (source (origin
  7327. (method git-fetch)
  7328. (uri (git-reference
  7329. (url "https://github.com/twpayne/go-vfs")
  7330. (commit (string-append "v" version))))
  7331. (file-name (git-file-name name version))
  7332. (sha256
  7333. (base32
  7334. "19dm3gi45znwaqbzxhwcgkiz8059bwa3ank80hc6qhdl579bpjnz"))))
  7335. (build-system go-build-system)
  7336. (arguments
  7337. `(#:import-path "github.com/twpayne/go-vfs"))
  7338. (native-inputs
  7339. `(("go-github-com-bmatcuk-doublestar" ,go-github-com-bmatcuk-doublestar)))
  7340. (home-page "https://github.com/twpayne/go-vfs/")
  7341. (synopsis "Abstraction of the @code{os} and @code{ioutil} Go packages")
  7342. (description "Package @code{vfs} provides an abstraction of the @code{os}
  7343. and @code{ioutil} packages that is easy to test.")
  7344. (license license:expat)))
  7345. (define-public go-github-com-twpayne-go-vfsafero
  7346. (package
  7347. (name "go-github-com-twpayne-go-vfsafero")
  7348. (version "1.0.0")
  7349. (source (origin
  7350. (method git-fetch)
  7351. (uri (git-reference
  7352. (url "https://github.com/twpayne/go-vfsafero")
  7353. (commit (string-append "v" version))))
  7354. (file-name (git-file-name name version))
  7355. (sha256
  7356. (base32
  7357. "18jwxhlrjd06z8xzg9ij0irl4f79jfy5jpwiz6xqlhzb1fja19pw"))))
  7358. (build-system go-build-system)
  7359. (arguments
  7360. `(#:import-path "github.com/twpayne/go-vfsafero"))
  7361. (native-inputs
  7362. `(("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs)
  7363. ("go-github-com-spf13-afero" ,go-github-com-spf13-afero)))
  7364. (home-page "https://github.com/twpayne/go-vfsafero/")
  7365. (synopsis "Compatibility later between @code{go-vfs} and @code{afero}")
  7366. (description
  7367. "Package @code{vfsafero} provides a compatibility later between
  7368. @code{go-github-com-twpayne-go-vfs} and @code{go-github-com-spf13-afero}.")
  7369. (license license:expat)))
  7370. (define-public go-github-com-twpayne-go-xdg
  7371. (package
  7372. (name "go-github-com-twpayne-go-xdg")
  7373. (version "3.1.0")
  7374. (source (origin
  7375. (method git-fetch)
  7376. (uri (git-reference
  7377. (url "https://github.com/twpayne/go-xdg")
  7378. (commit (string-append "v" version))))
  7379. (file-name (git-file-name name version))
  7380. (sha256
  7381. (base32
  7382. "0j8q7yzixs6jlaad0lpa8hs6b240gm2cmy0yxgnprrbpa0y2r7ln"))))
  7383. (build-system go-build-system)
  7384. (arguments
  7385. `(#:import-path "github.com/twpayne/go-xdg/v3"))
  7386. (native-inputs
  7387. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
  7388. ("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs)))
  7389. (home-page "https://github.com/twpayne/go-xdg/")
  7390. (synopsis "Functions related to freedesktop.org")
  7391. (description "Package @code{xdg} provides functions related to
  7392. @uref{freedesktop.org}.")
  7393. (license license:expat)))
  7394. (define-public go-github-com-godbus-dbus
  7395. (package
  7396. (name "go-github-com-godbus-dbus")
  7397. (version "5.0.3")
  7398. (source (origin
  7399. (method git-fetch)
  7400. (uri (git-reference
  7401. (url "https://github.com/godbus/dbus")
  7402. (commit (string-append "v" version))))
  7403. (file-name (git-file-name name version))
  7404. (sha256
  7405. (base32
  7406. "1bkc904073k807yxg6mvqaxrr6ammmhginr9p54jfb55mz3hfw3s"))))
  7407. (build-system go-build-system)
  7408. (arguments
  7409. `(#:tests? #f ;no /var/run/dbus/system_bus_socket
  7410. #:import-path "github.com/godbus/dbus"))
  7411. (native-inputs
  7412. `(("dbus" ,dbus))) ;dbus-launch
  7413. (home-page "https://github.com/godbus/dbus/")
  7414. (synopsis "Native Go client bindings for the D-Bus")
  7415. (description "@code{dbus} is a library that implements native Go client
  7416. bindings for the D-Bus message bus system.")
  7417. (license license:bsd-2)))
  7418. (define-public go-github-com-zalando-go-keyring
  7419. (package
  7420. (name "go-github-com-zalando-go-keyring")
  7421. (version "0.1.0")
  7422. (source (origin
  7423. (method git-fetch)
  7424. (uri (git-reference
  7425. (url "https://github.com/zalando/go-keyring")
  7426. (commit (string-append "v" version))))
  7427. (file-name (git-file-name name version))
  7428. (sha256
  7429. (base32
  7430. "0kj54nkiyccy6m9iy9a53f6412a54xk96j88jaiq35yzdgfa4z3p"))))
  7431. (build-system go-build-system)
  7432. (arguments
  7433. `(#:tests? #f ;XXX: Fix dbus tests
  7434. #:import-path "github.com/zalando/go-keyring"))
  7435. (native-inputs
  7436. `(("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus)
  7437. ("dbus" ,dbus)))
  7438. (home-page "https://github.com/zalando/go-keyring/")
  7439. (synopsis "Library for working with system keyring")
  7440. (description "@code{go-keyring} is a library for setting, getting and
  7441. deleting secrets from the system keyring.")
  7442. (license license:expat)))
  7443. (define-public go-etcd-io-bbolt
  7444. (package
  7445. (name "go-etcd-io-bbolt")
  7446. (version "1.3.6")
  7447. (source (origin
  7448. (method git-fetch)
  7449. (uri (git-reference
  7450. (url "https://github.com/etcd-io/bbolt")
  7451. (commit (string-append "v" version))))
  7452. (file-name (git-file-name name version))
  7453. (sha256
  7454. (base32
  7455. "0pj5245d417za41j6p09fmkbv05797vykr1bi9a6rnwddh1dbs8d"))))
  7456. (build-system go-build-system)
  7457. (arguments
  7458. `(#:import-path "go.etcd.io/bbolt"))
  7459. (propagated-inputs
  7460. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  7461. (home-page "https://pkg.go.dev/go.etcd.io/bbolt/")
  7462. (synopsis "Low-level key/value store in Go")
  7463. (description "This package implements a low-level key/value store in Go.")
  7464. (license license:expat)))
  7465. (define-public go-github-com-rogpeppe-go-internal
  7466. (package
  7467. (name "go-github-com-rogpeppe-go-internal")
  7468. (version "1.6.1")
  7469. (source (origin
  7470. (method git-fetch)
  7471. (uri (git-reference
  7472. (url "https://github.com/rogpeppe/go-internal")
  7473. (commit (string-append "v" version))))
  7474. (file-name (git-file-name name version))
  7475. (sha256
  7476. (base32
  7477. "00j2vpp1bsggdvw1winkz23mg0q6drjiir5q0k49pmqx1sh7106l"))))
  7478. (build-system go-build-system)
  7479. (arguments
  7480. `(#:import-path "github.com/rogpeppe/go-internal"
  7481. ; Source-only package
  7482. #:tests? #f
  7483. #:phases
  7484. (modify-phases %standard-phases
  7485. (delete 'build))))
  7486. (home-page "https://github.com/rogpeppe/go-internal/")
  7487. (synopsis "Internal packages from the Go standard library")
  7488. (description "This repository factors out an opinionated selection of
  7489. internal packages and functionality from the Go standard library. Currently
  7490. this consists mostly of packages and testing code from within the Go tool
  7491. implementation.
  7492. Included are the following:
  7493. @itemize
  7494. @item dirhash: calculate hashes over directory trees the same way that the Go tool does.
  7495. @item goproxytest: a GOPROXY implementation designed for test use.
  7496. @item gotooltest: Use the Go tool inside test scripts (see testscript below)
  7497. @item imports: list of known architectures and OSs, and support for reading import import statements.
  7498. @item modfile: read and write go.mod files while preserving formatting and comments.
  7499. @item module: module paths and versions.
  7500. @item par: do work in parallel.
  7501. @item semver: semantic version parsing.
  7502. @item testenv: information on the current testing environment.
  7503. @item testscript: script-based testing based on txtar files
  7504. @item txtar: simple text-based file archives for testing.
  7505. @end itemize\n")
  7506. (license license:bsd-3)))
  7507. (define-public gopkg-in-errgo-fmt-errors
  7508. (package
  7509. (name "gopkg-in-errgo-fmt-errors")
  7510. (version "2.1.0")
  7511. (source (origin
  7512. (method git-fetch)
  7513. (uri (git-reference
  7514. (url "https://github.com/go-errgo/errgo")
  7515. (commit (string-append "v" version))))
  7516. (file-name (git-file-name name version))
  7517. (sha256
  7518. (base32
  7519. "065mbihiy7q67wnql0bzl9y1kkvck5ivra68254zbih52jxwrgr2"))))
  7520. (build-system go-build-system)
  7521. (arguments
  7522. `(#:import-path "gopkg.in/errgo.v2/fmt/errors"
  7523. #:tests? #f
  7524. ;; Source-only package
  7525. #:phases
  7526. (modify-phases %standard-phases
  7527. (delete 'build))))
  7528. (home-page "https://godoc.org/gopkg.in/errgo.v2")
  7529. (synopsis "Functions that use the fmt package to format error messages")
  7530. (description "This package is the same as @code{gopkg.in/errgo.v2/errors}
  7531. except that it adds convenience functions that use the fmt package to format
  7532. error messages.")
  7533. (license license:bsd-3)))
  7534. (define-public go-github-com-arceliar-phony
  7535. (let ((commit "d0c68492aca0bd4b5c5c8e0452c9b4c8af923eaf")
  7536. (revision "0"))
  7537. (package
  7538. (name "go-github-com-arceliar-phony")
  7539. (version (git-version "0.0.0" revision commit))
  7540. (source
  7541. (origin
  7542. (method git-fetch)
  7543. (uri (git-reference
  7544. (url "https://github.com/Arceliar/phony")
  7545. (commit commit)))
  7546. (file-name (git-file-name name version))
  7547. (sha256
  7548. (base32
  7549. "0876y0hlb1zh8hn0pxrb5zfdadvaqmqwlr66p19yl2a76galz992"))))
  7550. (arguments
  7551. '(#:import-path "github.com/Arceliar/phony"))
  7552. (build-system go-build-system)
  7553. (home-page "https://github.com/Arceliar/phony")
  7554. (synopsis "Very minimal actor model library")
  7555. (description "Phony is a very minimal actor model library for Go,
  7556. inspired by the causal messaging system in the Pony programming language.")
  7557. (license license:expat))))
  7558. (define-public go-github-com-cheggaaa-pb
  7559. (package
  7560. (name "go-github-com-cheggaaa-pb")
  7561. (version "3.0.4")
  7562. (source
  7563. (origin
  7564. (method git-fetch)
  7565. (uri (git-reference
  7566. (url "https://github.com/cheggaaa/pb/")
  7567. (commit (string-append "v" version))))
  7568. (file-name (git-file-name name version))
  7569. (sha256
  7570. (base32
  7571. "0xhsv9yf3fz918ay6w0d87jnb3hk9vxvi16jk172kqq26x7jixd0"))))
  7572. (build-system go-build-system)
  7573. (arguments
  7574. '(#:import-path "github.com/cheggaaa/pb/"))
  7575. (propagated-inputs
  7576. `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
  7577. ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
  7578. ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
  7579. ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  7580. (native-inputs
  7581. `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
  7582. (home-page "https://github.com/cheggaaa/pb/")
  7583. (synopsis "Console progress bar for Go")
  7584. (description "This package is a Go library that draws progress bars on
  7585. the terminal.")
  7586. (license license:bsd-3)))
  7587. (define-public go-github-com-gologme-log
  7588. ;; this is the same as v1.2.0, only the LICENSE file changed
  7589. (let ((commit "720ba0b3ccf0a91bc6018c9967a2479f93f56a55"))
  7590. (package
  7591. (name "go-github-com-gologme-log")
  7592. (version "1.2.0")
  7593. (source
  7594. (origin
  7595. (method git-fetch)
  7596. (uri (git-reference
  7597. (url "https://github.com/gologme/log")
  7598. (commit commit)))
  7599. (file-name (git-file-name name version))
  7600. (sha256
  7601. (base32
  7602. "0z3gs5ngv2jszp42ypp3ai0pn410v3b2m674g73ma7vsbn2yjk1n"))))
  7603. (build-system go-build-system)
  7604. (arguments
  7605. '(#:import-path "github.com/gologme/log"))
  7606. (home-page "https://github.com/gologme/log/")
  7607. (synopsis
  7608. "Fork of the golang built in log package to add support for levels")
  7609. (description "This package is a drop in replacement for the built-in Go
  7610. log package. All the functionality of the built-in package still exists and
  7611. is unchanged. This package contains a series of small enhancements and
  7612. additions.")
  7613. (license license:bsd-3))))
  7614. (define-public go-github-com-frankban-quicktest
  7615. (package
  7616. (name "go-github-com-frankban-quicktest")
  7617. (version "1.11.1")
  7618. (source
  7619. (origin
  7620. (method git-fetch)
  7621. (uri (git-reference
  7622. (url "https://github.com/frankban/quicktest")
  7623. (commit (string-append "v" version))))
  7624. (file-name (git-file-name name version))
  7625. (sha256
  7626. (base32
  7627. "0b1b44b2hli2p969gqz30z8v9z6ahlklpqzi17nwk1lsjz9yv938"))))
  7628. (build-system go-build-system)
  7629. (arguments
  7630. '(#:import-path "github.com/frankban/quicktest"))
  7631. (propagated-inputs
  7632. `(("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)
  7633. ("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
  7634. (home-page "https://github.com/frankban/quicktest")
  7635. (synopsis "Quick helpers for testing Go applications")
  7636. (description
  7637. "Package quicktest provides a collection of Go helpers for writing
  7638. tests.")
  7639. (license license:expat)))
  7640. (define-public go-github-com-bep-golibsass
  7641. (package
  7642. (name "go-github-com-bep-golibsass")
  7643. (version "0.7.0")
  7644. (source
  7645. (origin
  7646. (method git-fetch)
  7647. (uri (git-reference
  7648. (url "https://github.com/bep/golibsass")
  7649. (commit (string-append "v" version))))
  7650. (file-name (git-file-name name version))
  7651. (sha256
  7652. (base32
  7653. "0xk3m2ynbydzx87dz573ihwc4ryq0r545vz937szz175ivgfrhh3"))
  7654. (modules '((guix build utils)))
  7655. (snippet
  7656. '(begin
  7657. (delete-file-recursively "libsass_src")
  7658. #t))))
  7659. (build-system go-build-system)
  7660. (arguments
  7661. '(#:import-path "github.com/bep/golibsass/libsass"
  7662. #:unpack-path "github.com/bep/golibsass"
  7663. ;; The dev build tag modifies the build to link to system libsass
  7664. ;; instead of including the bundled one (which we remove.)
  7665. ;; https://github.com/bep/golibsass/blob/v0.7.0/internal/libsass/a__cgo_dev.go
  7666. #:build-flags '("-tags" "dev")
  7667. #:phases
  7668. (modify-phases %standard-phases
  7669. (add-before 'build 'generate-bindings
  7670. ;; Generate bindings for system libsass, replacing the
  7671. ;; pre-generated bindings.
  7672. (lambda* (#:key inputs unpack-path #:allow-other-keys)
  7673. (mkdir-p (string-append "src/" unpack-path "/internal/libsass"))
  7674. (let ((libsass-src (string-append (assoc-ref inputs "libsass-src") "/src")))
  7675. (substitute* (string-append "src/" unpack-path "/gen/main.go")
  7676. (("filepath.Join\\(rootDir, \"libsass_src\", \"src\"\\)")
  7677. (string-append "\"" libsass-src "\""))
  7678. (("../../libsass_src/src/")
  7679. libsass-src)))
  7680. (invoke "go" "generate" (string-append unpack-path "/gen"))
  7681. #t))
  7682. (replace 'check
  7683. (lambda* (#:key tests? import-path #:allow-other-keys)
  7684. (if tests?
  7685. (invoke "go" "test" import-path "-tags" "dev"))
  7686. #t)))))
  7687. (propagated-inputs
  7688. `(("libsass" ,libsass)))
  7689. (native-inputs
  7690. `(("go-github-com-frankban-quicktest" ,go-github-com-frankban-quicktest)
  7691. ("libsass-src" ,(package-source libsass))))
  7692. (home-page "https://github.com/bep/golibsass")
  7693. (synopsis "Easy to use Go bindings for LibSass")
  7694. (description
  7695. "This package provides SCSS compiler support for Go applications.")
  7696. (license license:expat)))
  7697. (define-public go-github-com-hashicorp-go-syslog
  7698. (package
  7699. (name "go-github-com-hashicorp-go-syslog")
  7700. (version "1.0.0")
  7701. (source
  7702. (origin
  7703. (method git-fetch)
  7704. (uri (git-reference
  7705. (url "https://github.com/hashicorp/go-syslog")
  7706. (commit (string-append "v" version))))
  7707. (file-name (git-file-name name version))
  7708. (sha256
  7709. (base32
  7710. "09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1"))))
  7711. (build-system go-build-system)
  7712. (arguments
  7713. '(#:import-path "github.com/hashicorp/go-syslog"))
  7714. (home-page "https://github.com/hashicorp/go-syslog")
  7715. (synopsis "Golang syslog wrapper, cross-compile friendly")
  7716. (description "This package is a very simple wrapper around log/syslog")
  7717. (license license:expat)))
  7718. (define-public go-github-com-hjson-hjson-go
  7719. (package
  7720. (name "go-github-com-hjson-hjson-go")
  7721. (version "3.1.0")
  7722. (source
  7723. (origin
  7724. (method git-fetch)
  7725. (uri (git-reference
  7726. (url "https://github.com/hjson/hjson-go")
  7727. (commit (string-append "v" version))))
  7728. (file-name (git-file-name name version))
  7729. (sha256
  7730. (base32
  7731. "1dfdiahimg6z9idg8jiqxwnlwjnmasbjccx8gnag49cz4yfqskaz"))))
  7732. (build-system go-build-system)
  7733. (arguments
  7734. '(#:import-path "github.com/hjson/hjson-go"))
  7735. (home-page "https://hjson.org/")
  7736. (synopsis "Human JSON implementation for Go")
  7737. (description "Hjson is a syntax extension to JSON. It is intended to be
  7738. used like a user interface for humans, to read and edit before passing the
  7739. JSON data to the machine.")
  7740. (license license:expat)))
  7741. (define-public go-golang-zx2c4-com-wireguard
  7742. (package
  7743. (name "go-golang-zx2c4-com-wireguard")
  7744. (version "0.0.20200320")
  7745. (source
  7746. (origin
  7747. (method git-fetch)
  7748. ;; NOTE: module URL is a redirect
  7749. ;; target: git.zx2c4.com/wireguard-go
  7750. ;; source: golang.zx2c4.com/wireguard
  7751. (uri (git-reference
  7752. (url "https://git.zx2c4.com/wireguard-go/")
  7753. (commit (string-append "v" version))))
  7754. (file-name (git-file-name name version))
  7755. (sha256
  7756. (base32
  7757. "0fy4qsss3i3pkq1rpgjds4aipbwlh1dr9hbbf7jn2a1c63kfks0r"))))
  7758. (build-system go-build-system)
  7759. (arguments
  7760. '(#:import-path "golang.zx2c4.com/wireguard"))
  7761. (propagated-inputs
  7762. `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
  7763. ("go-golang-org-x-net" ,go-golang-org-x-net)
  7764. ("go-golang-org-x-sys" ,go-golang-org-x-sys)
  7765. ("go-golang-org-x-text" ,go-golang-org-x-text)))
  7766. (home-page "https://git.zx2c4.com/wireguard")
  7767. (synopsis "Implementation of WireGuard in Go")
  7768. (description "This package is a Go Implementation of WireGuard.")
  7769. (license license:expat)))
  7770. (define-public go-github-com-kardianos-minwinsvc
  7771. (package
  7772. (name "go-github-com-kardianos-minwinsvc")
  7773. (version "1.0.0")
  7774. (source
  7775. (origin
  7776. (method git-fetch)
  7777. (uri (git-reference
  7778. (url "https://github.com/kardianos/minwinsvc")
  7779. (commit (string-append "v" version))))
  7780. (file-name (git-file-name name version))
  7781. (sha256
  7782. (base32
  7783. "0z941cxymkjcsj3p5l3g4wm2da3smz7iyqk2wbs5y8lmxd4kfzd8"))))
  7784. (build-system go-build-system)
  7785. (arguments
  7786. '(#:import-path "github.com/kardianos/minwinsvc"))
  7787. (home-page "https://github.com/kardianos/minwinsvc/")
  7788. ;; some packages (Yggdrasil) need it to compile
  7789. ;; it's a tiny package and it's easier to bundle it than to patch it out
  7790. (synopsis "Minimal windows only service stub for Go")
  7791. (description "Go programs designed to run from most *nix style operating
  7792. systems can import this package to enable running programs as services without
  7793. modifying them.")
  7794. (license license:zlib)))
  7795. (define-public go-github-com-goccy-yaml
  7796. (package
  7797. (name "go-github-com-goccy-yaml")
  7798. (version "1.8.0")
  7799. (home-page "https://github.com/goccy/go-yaml")
  7800. (source
  7801. (origin
  7802. (method git-fetch)
  7803. (uri (git-reference
  7804. (url home-page)
  7805. (commit (string-append "v" version))))
  7806. (file-name (git-file-name name version))
  7807. (sha256
  7808. (base32 "1nps58dwkd915mx35h5f0dc05b880b4fdl6dcjxpfmmbzyinvg38"))))
  7809. (build-system go-build-system)
  7810. (arguments
  7811. `(#:import-path "github.com/goccy/go-yaml"))
  7812. (propagated-inputs
  7813. `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
  7814. ("go-golang-org-x-xerrors" ,go-golang-org-x-xerrors)))
  7815. (native-inputs
  7816. `(("go-gopkg-in-go-playground-validator-v9"
  7817. ,go-gopkg-in-go-playground-validator-v9)))
  7818. (synopsis "YAML support for the Go language")
  7819. (description
  7820. "This package provides features beyond the
  7821. @uref{https://github.com/go-yaml/yaml, defacto YAML library} including:
  7822. @itemize
  7823. @item Pretty format for error notifications
  7824. @item Support Scanner or Lexer or Parser as public API
  7825. @item Support Anchor and Alias to Marshaler
  7826. @item Allow referencing elements declared in another file via anchors
  7827. @item Extract value or AST by YAMLPath (YAMLPath is like a JSONPath)
  7828. @end itemize")
  7829. (license license:expat)))
  7830. (define-public go-github-com-tekwizely-go-parsing
  7831. (let ((commit "1548cfb17df54d365ce9febed0677c06a40a8ceb")
  7832. (revision "0"))
  7833. (package
  7834. (name "go-github-com-tekwizely-go-parsing")
  7835. (version (git-version "0.0.0" revision commit))
  7836. (source
  7837. (origin
  7838. (method git-fetch)
  7839. (uri (git-reference
  7840. (url "https://github.com/tekwizely/go-parsing")
  7841. (commit commit)))
  7842. (file-name (git-file-name name version))
  7843. (sha256
  7844. (base32 "0bv5amka8hb9crc7qvlzi2kbycqrnh9d46b9wgcs8wqzl0z7w609"))))
  7845. (build-system go-build-system)
  7846. (arguments
  7847. `(#:import-path "github.com/tekwizely/go-parsing"))
  7848. (home-page "https://github.com/tekwizely/go-parsing")
  7849. (synopsis "Text parsing, with lexers, parsers, and related tools")
  7850. (description
  7851. "This package provides Go modules focused on text parsing, with lexers,
  7852. parsers, and related tools.")
  7853. (license license:expat))))
  7854. (define-public go-github.com-ulikunitz-xz
  7855. (package
  7856. (name "go-github.com-ulikunitz-xz")
  7857. (version "0.5.8")
  7858. (source (origin
  7859. (method git-fetch)
  7860. (uri (git-reference
  7861. (url "https://github.com/ulikunitz/xz.git")
  7862. (commit (string-append "v" version))))
  7863. (file-name (string-append name "-" version "-checkout"))
  7864. (sha256
  7865. (base32
  7866. "1xnsymi5fmmm734bi4c6z57p5cvnyxlpi29yxs4v21w5k763aypd"))))
  7867. (build-system go-build-system)
  7868. (arguments
  7869. `(#:import-path "github.com/ulikunitz/xz"))
  7870. (synopsis "Read and write xz compressed streams in Go")
  7871. (description "This package provides a library to read and write xz
  7872. compressed streams in Go.")
  7873. (home-page "https://github.com/ulikunitz/xz")
  7874. (license license:bsd-3)))
  7875. (define-public go-github-com-songmu-gitconfig
  7876. (package
  7877. (name "go-github-com-songmu-gitconfig")
  7878. (version "0.1.0")
  7879. (home-page "https://github.com/songmu/gitconfig")
  7880. (source
  7881. (origin
  7882. (method git-fetch)
  7883. (uri (git-reference
  7884. (url home-page)
  7885. (commit (string-append "v" version))))
  7886. (file-name (git-file-name name version))
  7887. (sha256
  7888. (base32 "1y01h496a7pfj1g2bclls5b0nl3vnj7nz610jj1dzq9kxrwxk7fk"))))
  7889. (build-system go-build-system)
  7890. (arguments
  7891. `(#:import-path "github.com/Songmu/gitconfig"
  7892. ;; Package's tests appear to be hardcoded to the author's gitconfig
  7893. ;; and require network access.
  7894. #:tests? #f))
  7895. (propagated-inputs
  7896. `(("go-github-com-goccy-yaml" ,go-github-com-goccy-yaml)))
  7897. (synopsis "Go library to get configuration values from gitconfig")
  7898. (description "@{gitconfig} is a package to get configuration values from gitconfig.")
  7899. (license license:expat)))
  7900. (define-public go-github-com-operatorfoundation-ed25519
  7901. (let ((commit "b22b4bd3ddef042eec45f3ee135cd40281fde2b4")
  7902. (revision "0"))
  7903. (package
  7904. (name "go-github-com-operatorfoundation-ed25519")
  7905. (version (git-version "0.0.0" revision commit))
  7906. (source (origin
  7907. (method git-fetch)
  7908. (uri (git-reference
  7909. (url "https://github.com/OperatorFoundation/ed25519")
  7910. (commit commit)))
  7911. (file-name (git-file-name name version))
  7912. (sha256
  7913. (base32
  7914. "0xrzqrjlghkgd1cy5rj4khryn4f59vas2vzrxc6d8jpj5ijf3xkv"))))
  7915. (build-system go-build-system)
  7916. (arguments
  7917. `(#:import-path "github.com/OperatorFoundation/ed25519"
  7918. #:phases
  7919. (modify-phases %standard-phases
  7920. (add-before 'install 'remove-test-data
  7921. (lambda* (#:key import-path #:allow-other-keys)
  7922. (delete-file-recursively
  7923. (string-append "src/" import-path "/testdata"))
  7924. #t)))))
  7925. (home-page "https://github.com/OperatorFoundation/ed25519")
  7926. (synopsis "Ed25519 for go")
  7927. (description "Package ed25519 implements the Ed25519 signature
  7928. algorithm.")
  7929. (license license:bsd-3))))
  7930. (define-public go-github-com-akosmarton-papipes
  7931. (let ((commit "3c63b4919c769c9c2b2d07e69a98abb0eb47fe64")
  7932. (revision "0"))
  7933. (package
  7934. (name "go-github-com-akosmarton-papipes")
  7935. (version (git-version "0.0.0" revision commit))
  7936. (source
  7937. (origin
  7938. (method git-fetch)
  7939. (uri (git-reference
  7940. (url "https://github.com/akosmarton/papipes")
  7941. (commit commit)))
  7942. (file-name (git-file-name name version))
  7943. (sha256
  7944. (base32 "16p77p3d1v26qd3knxn087jqlad2qm23q8m796cdr66hrdc0gahq"))))
  7945. (build-system go-build-system)
  7946. (inputs
  7947. `(("pulseaudio" ,pulseaudio)))
  7948. (arguments
  7949. `(#:import-path "github.com/akosmarton/papipes"
  7950. #:phases
  7951. (modify-phases %standard-phases
  7952. (add-after 'unpack 'fix-paths
  7953. (lambda* (#:key inputs #:allow-other-keys)
  7954. (substitute* '("src/github.com/akosmarton/papipes/common.go"
  7955. "src/github.com/akosmarton/papipes/sink.go"
  7956. "src/github.com/akosmarton/papipes/source.go")
  7957. (("exec.Command\\(\"pactl\"")
  7958. (string-append "exec.Command(\""
  7959. (assoc-ref inputs "pulseaudio")
  7960. "/bin/pactl\""))))))))
  7961. (home-page "https://github.com/akosmarton/papipes")
  7962. (synopsis "Pulseaudio client library for Go")
  7963. (description
  7964. "This is a Pulseaudio client library in Golang for creating virtual
  7965. sinks and sources.")
  7966. (license license:expat))))
  7967. (define-public go-github-com-mesilliac-pulse-simple
  7968. (let ((commit "75ac54e19fdff88f4fbd82f45125134b602230b0")
  7969. (revision "0"))
  7970. (package
  7971. (name "go-github-com-mesilliac-pulse-simple")
  7972. (version (git-version "0.0.0" revision commit))
  7973. (source
  7974. (origin
  7975. (method git-fetch)
  7976. (uri (git-reference
  7977. (url "https://github.com/mesilliac/pulse-simple")
  7978. (commit commit)))
  7979. (file-name (git-file-name name version))
  7980. (sha256
  7981. (base32 "1awwczsa9yy99p035ckajqfs8m6mab0lz82mzlj1c5cj9lnmwplj"))))
  7982. (build-system go-build-system)
  7983. (propagated-inputs
  7984. `(("pkg-config" ,pkg-config)
  7985. ("pulseaudio" ,pulseaudio)))
  7986. (arguments
  7987. '(#:import-path "github.com/mesilliac/pulse-simple"))
  7988. (home-page "https://github.com/mesilliac/pulse-simple")
  7989. (synopsis "Cgo bindings to PulseAudio's Simple API")
  7990. (description
  7991. "This package provides Cgo bindings to PulseAudio's Simple API, to play
  7992. or capture raw audio.")
  7993. (license license:expat))))
  7994. (define-public go-github-com-pborman-getopt
  7995. (package
  7996. (name "go-github-com-pborman-getopt")
  7997. (version "2.1.0")
  7998. (source
  7999. (origin
  8000. (method git-fetch)
  8001. (uri (git-reference
  8002. (url "https://github.com/pborman/getopt")
  8003. (commit (string-append "v" version))))
  8004. (file-name (git-file-name name version))
  8005. (sha256
  8006. (base32 "0sacv6g8cxfibxd3gnfjnzp7fynrnc4s2aaz5wbxivqqhvflc22l"))))
  8007. (build-system go-build-system)
  8008. (arguments
  8009. '(#:import-path "github.com/pborman/getopt"))
  8010. (home-page "https://github.com/pborman/getopt")
  8011. (synopsis "Getopt style option parsing for Go")
  8012. (description
  8013. "This package provides traditional getopt processing for implementing
  8014. programs that use traditional command lines.")
  8015. (license license:bsd-3)))
  8016. (define-public go-go-uber-org-atomic
  8017. (package
  8018. (name "go-go-uber-org-atomic")
  8019. (version "1.8.0")
  8020. (source
  8021. (origin
  8022. (method git-fetch)
  8023. (uri (git-reference
  8024. (url "https://github.com/uber-go/atomic")
  8025. (commit (string-append "v" version))))
  8026. (file-name (git-file-name name version))
  8027. (sha256
  8028. (base32 "0grswsk7nkf7zmmychf6aj6032shyag1kgs6zf7qwxyn55dym1v8"))))
  8029. (build-system go-build-system)
  8030. (arguments
  8031. '(#:import-path "go.uber.org/atomic"))
  8032. (native-inputs
  8033. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
  8034. ("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
  8035. (home-page "https://go.uber.org/atomic")
  8036. (synopsis "Wrapper types for sync/atomic")
  8037. (description
  8038. "This package provides simple wrappers for primitive types to enforce
  8039. atomic access.")
  8040. (license license:expat)))
  8041. (define-public go-go-uber-org-multierr
  8042. (package
  8043. (name "go-go-uber-org-multierr")
  8044. (version "1.6.0")
  8045. (source
  8046. (origin
  8047. (method git-fetch)
  8048. (uri (git-reference
  8049. (url "https://github.com/uber-go/multierr")
  8050. (commit (string-append "v" version))))
  8051. (file-name (git-file-name name version))
  8052. (sha256
  8053. (base32 "162941s8f6a9x2w04qm4qa3zz0zylwag9149hywrj9ibp2nzcsqz"))))
  8054. (build-system go-build-system)
  8055. (arguments
  8056. '(#:import-path "go.uber.org/multierr"))
  8057. (native-inputs
  8058. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
  8059. (propagated-inputs
  8060. `(("go-go-uber-org-atomic" ,go-go-uber-org-atomic)))
  8061. (home-page "https://go.uber.org/multierr")
  8062. (synopsis "Error combination for Go")
  8063. (description
  8064. "@code{multierr} allows combining one or more Go errors together.")
  8065. (license license:expat)))
  8066. (define-public go-golang-org-x-lint
  8067. (let ((commit "83fdc39ff7b56453e3793356bcff3070b9b96445")
  8068. (revision "0"))
  8069. (package
  8070. (name "go-golang-org-x-lint")
  8071. (version (git-version "0.0.0" revision commit))
  8072. (source
  8073. (origin
  8074. (method git-fetch)
  8075. (uri (git-reference
  8076. (url "https://go.googlesource.com/lint")
  8077. (commit commit)))
  8078. (file-name (git-file-name name version))
  8079. (sha256
  8080. (base32 "0ms3rs5hvpnm9bxbr5f9743i7hn2bbmqdmvzxq6nmi0f24ypv1l3"))))
  8081. (build-system go-build-system)
  8082. (arguments
  8083. '(#:import-path "golang.org/x/lint"
  8084. #:tests? #f)) ;; TODO: Fix tests
  8085. (propagated-inputs
  8086. `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
  8087. (home-page "https://golang.org/x/lint")
  8088. (synopsis "Linter for Go source code")
  8089. (description
  8090. "This is a linter for Go source code. Unlike gofmt, it doesn't
  8091. reformat the source code, it only prints out style mistakes.")
  8092. (license license:bsd-3))))
  8093. (define-public go-github-com-kisielk-gotool
  8094. (package
  8095. (name "go-github-com-kisielk-gotool")
  8096. (version "1.0.0")
  8097. (source
  8098. (origin
  8099. (method git-fetch)
  8100. (uri (git-reference
  8101. (url "https://github.com/kisielk/gotool")
  8102. (commit (string-append "v" version))))
  8103. (file-name (git-file-name name version))
  8104. (sha256
  8105. (base32 "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn"))))
  8106. (build-system go-build-system)
  8107. (arguments
  8108. '(#:import-path "github.com/kisielk/gotool"))
  8109. (home-page "https://github.com/kisielk/gotool")
  8110. (synopsis "Go library of utility functions")
  8111. (description
  8112. "This package contains utility functions used to implement the standard
  8113. @code{cmd/go} tool, provided as a convenience to developers who want to write
  8114. tools with similar semantics.")
  8115. (license license:expat)))
  8116. (define-public go-honnef-co-go-tools
  8117. (package
  8118. (name "go-honnef-co-go-tools")
  8119. (version "0.1.3")
  8120. (source
  8121. (origin
  8122. (method git-fetch)
  8123. (uri (git-reference
  8124. (url "https://github.com/dominikh/go-tools")
  8125. (commit (string-append "v" version))))
  8126. (file-name (git-file-name name version))
  8127. (sha256
  8128. (base32 "17li8jbw3cpn59kpcl3j3r2an4wkx3fc81xn0j4xgbjpkxh9493n"))))
  8129. (build-system go-build-system)
  8130. (arguments
  8131. `(#:import-path "honnef.co/go/tools"
  8132. #:tests? #f
  8133. ;; Source-only package
  8134. #:phases
  8135. (modify-phases %standard-phases
  8136. (delete 'build))))
  8137. (propagated-inputs
  8138. `(("go-golang-org-x-tools" ,go-golang-org-x-tools)
  8139. ("go-github-com-kisielk-gotool",go-github-com-kisielk-gotool)
  8140. ("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)))
  8141. (home-page "https://honnef.co/go/tools")
  8142. (synopsis "Staticcheck advanced Go linter")
  8143. (description
  8144. "Staticcheck is a state of the art linter for the Go programming language.
  8145. Using static analysis, it finds bugs and performance issues, offers
  8146. simplifications, and enforces style rules.")
  8147. (license license:expat)))
  8148. (define-public go-go-uber-org-zap
  8149. (package
  8150. (name "go-go-uber-org-zap")
  8151. (version "1.16.0")
  8152. (source
  8153. (origin
  8154. (method git-fetch)
  8155. (uri (git-reference
  8156. (url "https://github.com/uber-go/zap")
  8157. (commit (string-append "v" version))))
  8158. (file-name (git-file-name name version))
  8159. (sha256
  8160. (base32 "05ix5wg1r8pgi7fb6084lg4x7mrkvzkh1nxa7zj337w5b9xj0myr"))))
  8161. (build-system go-build-system)
  8162. (arguments
  8163. '(#:import-path "go.uber.org/zap"
  8164. #:tests? #f)) ; TODO: Fix tests
  8165. (native-inputs
  8166. `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
  8167. ("go-golang-org-x-lint" ,go-golang-org-x-lint)
  8168. ("go-honnef-co-go-tools" ,go-honnef-co-go-tools)))
  8169. (propagated-inputs
  8170. `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
  8171. ("go-go-uber-org-atomic" ,go-go-uber-org-atomic)
  8172. ("go-go-uber-org-multierr" ,go-go-uber-org-multierr)
  8173. ("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
  8174. (home-page "https://go.uber.org/zap")
  8175. (synopsis "Logging library for Go")
  8176. (description
  8177. "This package provides a library for fast, structured, leveled logging in
  8178. Go.")
  8179. (license license:expat)))
  8180. (define-public go-github-com-davecgh-go-xdr
  8181. (package
  8182. (name "go-github-com-davecgh-go-xdr")
  8183. (version "0.0.0-20161123171359-e6a2ba005892")
  8184. (source
  8185. (origin
  8186. (method git-fetch)
  8187. (uri (git-reference
  8188. (url "https://github.com/davecgh/go-xdr")
  8189. (commit (go-version->git-ref version))))
  8190. (file-name (git-file-name name version))
  8191. (sha256
  8192. (base32
  8193. "0vifrz4iil4r7k8sz5iqlfbh80ysgs5abp2simgyhsbrkxrrsrrd"))))
  8194. (build-system go-build-system)
  8195. (arguments
  8196. '(#:import-path "github.com/davecgh/go-xdr/xdr2"
  8197. #:unpack-path "github.com/davecgh/go-xdr"))
  8198. (home-page "https://github.com/davecgh/go-xdr")
  8199. (synopsis "Pure Go implementation of the XDR standard")
  8200. (description "@code{go-xdr} implements the data representation portion of
  8201. the External Data Representation (XDR) standard protocol as specified in RFC
  8202. 4506 (obsoletes RFC 1832 and RFC 1014) in pure Go.")
  8203. (license license:isc)))
  8204. (define-public go-github-com-dustin-go-humanize
  8205. (package
  8206. (name "go-github-com-dustin-go-humanize")
  8207. (version "1.0.0")
  8208. (source
  8209. (origin
  8210. (method git-fetch)
  8211. (uri (git-reference
  8212. (url "https://github.com/dustin/go-humanize")
  8213. (commit (string-append "v" version))))
  8214. (file-name (git-file-name name version))
  8215. (sha256
  8216. (base32
  8217. "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3"))))
  8218. (build-system go-build-system)
  8219. (arguments
  8220. '(#:import-path "github.com/dustin/go-humanize"))
  8221. (home-page "https://github.com/dustin/go-humanize")
  8222. (synopsis "Humane unit formatter")
  8223. (description "@code{go-humanize} provides formatters for units to human
  8224. friendly sizes. It converts boring ugly numbers to human-friendly strings and
  8225. back.")
  8226. (license license:expat)))
  8227. (define-public go-lukechampine-com-blake3
  8228. (package
  8229. (name "go-lukechampine-com-blake3")
  8230. (version "1.1.5")
  8231. (source
  8232. (origin
  8233. (method git-fetch)
  8234. (uri (git-reference
  8235. (url "https://github.com/lukechampine/blake3")
  8236. (commit (string-append "v" version))))
  8237. (file-name (git-file-name name version))
  8238. (sha256
  8239. (base32
  8240. "1yxdwp8dpnnq2wbwsxlkbq570i99sc6781y39czjxi9jh9z5nw55"))))
  8241. (build-system go-build-system)
  8242. (arguments
  8243. '(#:import-path "lukechampine.com/blake3"))
  8244. (propagated-inputs
  8245. `(("go-github-com-klauspost-cpuid" ,go-github-com-klauspost-cpuid)))
  8246. (home-page "https://pkg.go.dev/lukechampine.com/blake3")
  8247. (synopsis "Implementation of the BLAKE3 cryptographic hash function")
  8248. (description "@code{blake3} implements the BLAKE3 cryptographic hash
  8249. function. In addition to the pure-Go implementation, this package also
  8250. contains AVX-512 and AVX2 routines (generated by avo) that greatly increase
  8251. performance for large inputs and outputs.")
  8252. (license license:expat)))
  8253. (define-public go-golang-org-x-term
  8254. (package
  8255. (name "go-golang-org-x-term")
  8256. (version "0.0.0-20210615171337-6886f2dfbf5b")
  8257. (source
  8258. (origin
  8259. (method git-fetch)
  8260. (uri (git-reference
  8261. (url "https://go.googlesource.com/term")
  8262. (commit (go-version->git-ref version))))
  8263. (file-name (git-file-name name version))
  8264. (sha256
  8265. (base32
  8266. "0661w7dp2ak1k4ii90v6chw2x8a6g4sc5j0ba58qlplaj4k5l0xs"))))
  8267. (build-system go-build-system)
  8268. (arguments '(#:import-path "golang.org/x/term"))
  8269. (propagated-inputs
  8270. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
  8271. (home-page "https://pkg.go.dev/golang.org/x/term")
  8272. (synopsis "Go terminal/console support")
  8273. (description "@code{term} provides support functions for dealing with
  8274. terminals, as commonly found on Unix systems.")
  8275. (license license:bsd-3)))
  8276. (define-public go-github-com-flynn-noise
  8277. (package
  8278. (name "go-github-com-flynn-noise")
  8279. (version "1.0.0")
  8280. (source
  8281. (origin
  8282. (method git-fetch)
  8283. (uri (git-reference
  8284. (url "https://github.com/flynn/noise")
  8285. (commit (string-append "v" version))))
  8286. (file-name (git-file-name name version))
  8287. (sha256
  8288. (base32
  8289. "1j6phxyqx06wcqxjpin696fkp85s76qcp3i2f7fv6q2fb6618f6y"))))
  8290. (build-system go-build-system)
  8291. (arguments
  8292. '(#:import-path "github.com/flynn/noise"))
  8293. (propagated-inputs
  8294. `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)
  8295. ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
  8296. (home-page "https://github.com/flynn/noise")
  8297. (synopsis "Go implementation of the Noise protocol framework")
  8298. (description "@code{noise} implements the Noise protocol framework. Noise
  8299. is a low-level framework for building crypto protocols. Noise protocols
  8300. support mutual and optional authentication, identity hiding, forward secrecy,
  8301. zero round-trip encryption, and other advanced features.")
  8302. (license license:bsd-3)))
  8303. (define-public go-github-com-klauspost-compress
  8304. (package
  8305. (name "go-github-com-klauspost-compress")
  8306. (version "1.13.1")
  8307. (source
  8308. (origin
  8309. (method git-fetch)
  8310. (uri (git-reference
  8311. (url "https://github.com/klauspost/compress")
  8312. (commit (string-append "v" version))))
  8313. (file-name (git-file-name name version))
  8314. (sha256
  8315. (base32
  8316. "0ydnf9rizlhm8rilh14674qqx272sbwbkjx06xn9pqvy6mmn2r3r"))))
  8317. (build-system go-build-system)
  8318. (arguments
  8319. `(#:import-path "github.com/klauspost/compress"
  8320. #:phases
  8321. (modify-phases %standard-phases
  8322. (add-before 'reset-gzip-timestamps 'fix-permissions
  8323. (lambda* (#:key outputs #:allow-other-keys)
  8324. ;; Provide write permissions on gzip files so that
  8325. ;; reset-gzip-timestamps has sufficient permissions.
  8326. (for-each make-file-writable
  8327. (find-files (assoc-ref outputs "out") ".gz$")))))))
  8328. (propagated-inputs
  8329. `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
  8330. (home-page "https://github.com/klauspost/compress")
  8331. (synopsis "Go compression library")
  8332. (description "@code{compress} provides various compression algorithms.")
  8333. (license license:bsd-3)))
  8334. (define-public go-github-com-oneofone-xxhash
  8335. (package
  8336. (name "go-github-com-oneofone-xxhash")
  8337. (version "1.2.8")
  8338. (source
  8339. (origin
  8340. (method git-fetch)
  8341. (uri (git-reference
  8342. (url "https://github.com/OneOfOne/xxhash")
  8343. (commit (string-append "v" version))))
  8344. (file-name (git-file-name name version))
  8345. (sha256
  8346. (base32
  8347. "0f98qk83l2fhpclvrgyxsa9b8m4pipf11fah85bnjl01wy4lvybw"))))
  8348. (build-system go-build-system)
  8349. (arguments
  8350. '(#:import-path "github.com/OneOfOne/xxhash"))
  8351. (home-page "https://github.com/OneOfOne/xxhash")
  8352. (synopsis "Go implementation of xxHash")
  8353. (description "This is a native Go implementation of the
  8354. @url{https://github.com/Cyan4973/xxHash, xxHash} algorithm, an extremely fast
  8355. non-cryptographic hash algorithm, working at speeds close to RAM limits.")
  8356. (license license:asl2.0)))
  8357. (define-public go-github-com-aswinkarthik-csvdiff
  8358. (package
  8359. (name "go-github-com-aswinkarthik-csvdiff")
  8360. (version "1.4.0")
  8361. (source
  8362. (origin
  8363. (method git-fetch)
  8364. (uri (git-reference
  8365. (url "https://github.com/aswinkarthik/csvdiff")
  8366. (commit (string-append "v" version))))
  8367. (file-name (git-file-name name version))
  8368. (sha256
  8369. (base32
  8370. "0cd1ikxsypjqisfnmr7zix3g7x8p892w77086465chyd39gpk97b"))))
  8371. (build-system go-build-system)
  8372. (arguments
  8373. '(#:import-path "github.com/aswinkarthik/csvdiff"))
  8374. (propagated-inputs
  8375. `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
  8376. ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
  8377. ("go-github-com-spf13-cobra" ,go-github-com-spf13-cobra)
  8378. ("go-github-com-spf13-afero" ,go-github-com-spf13-afero)
  8379. ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
  8380. ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
  8381. ("go-github-com-fatih-color" ,go-github-com-fatih-color)
  8382. ("go-github-com-cespare-xxhash" ,go-github-com-cespare-xxhash)
  8383. ("go-github-com-oneofone-xxhash" ,go-github-com-oneofone-xxhash)))
  8384. (home-page "https://github.com/aswinkarthik/csvdiff")
  8385. (synopsis "Fast diff tool for comparing CSV files")
  8386. (description "@code{csvdiff} is a diff tool to compute changes between two
  8387. CSV files. It can compare CSV files with a million records in under 2
  8388. seconds. It is specifically suited for comparing CSV files dumped from
  8389. database tables. GNU Diff is orders of magnitude faster for comparing line by
  8390. line. @code{csvdiff} supports
  8391. @itemize
  8392. @item Selective comparison of fields in a row
  8393. @item Specifying group of columns as primary-key to uniquely identify a row
  8394. @item Ignoring columns
  8395. @item Several output formats including colored git style output or
  8396. JSON for post-processing
  8397. @end itemize")
  8398. (license license:expat)))